vscode+latex workstation配置文件输出目录

背景(vscode中的latex环境配置)

        关于在vscode中基于扩展功能(extensions)“LaTeX Workshop”将tex文件编译成pdf,网上已经有很多教程,如:

【1】Visual Studio Code (vscode)配置LaTeX - 知乎 (zhihu.com)

        就很详细地介绍了“下载texlive-安装LaTeX Workshop扩展+settings.json文件编写”的一整套流程,本人就是基于这套流程成功在本地进行了相关配置,将tex文件编译并生成了pdf文件。

【注】该教程关于sumatraPDF反向搜索的配置有些问题,可参考下述资料修复:

【2】Sumatra PDF 找不到 设置反向搜索命令行_sumatrapdf反向搜索命令行不显示-CSDN博客

(如果你下载好SumatraPDF却没有在“设置-选项”中找到“设置反向搜索命令行”的选项,可通过在“设置-高级选项”里面把EnableTeXEnhancements改为True来修复) 

【3】VS Code+Sumatra PDF正反向搜索_sumatrapdf反向搜索-CSDN博客

(在“设置-选项-设置反向搜索命令行”中输入:

"C:\Users\AppData\Local\Programs\Microsoft VS Code\Code.exe" "C:\Users\AppData\Local\Programs\Microsoft VS Code\resources\app\out\cli.js" --ms-enable-electron-run-as-node -r -g "%f":"%l"

,注意,要把双引号也要输入,且需要将C:\Users\AppData\Local\Programs\Microsoft VS Code改成本地的实际安装路径) 

问题描述        

在正确配置完成后,确实可以按照知乎教程里展示地那样基于tex文件输出pdf文本:

编译器产生的中间文件、pdf和tex文件混在一起,不便管理

但编译器产生的所有文件都输出到了tex文件的同一文件夹下,不便管理。于是希望

(1)编译器可以将所有文件(包括pdf文件)都生成到tex路径下的由用户自己创建的文件夹里(如图中我自己创建的./tmp文件夹);

(2)对于生成在新路径下的pdf文件,sumatraPDF仍然能正确地找到并打开。

解决方案

与GPT3.5的一条聊天记录

最终在chatGPT的帮助下,我找到了如下解决方案:

1)如图所示,先按ctrl+shift+P,找到“首选项:打开用户设置(JSON)/Preferences: Open User Settings(JSON)”。【注】这一步及后续都是对LaTeX Workshop的设置代码做修改,主体代码已经在遵照知乎教程【1】配置latex环境时写好。

打开settings.json

打开之后可以看到之前写好的代码

2)如下图所示,将xelatex配置中的"command": "xelatex"修改成"command": "xelatex -output-directory=tmp" 。配置了这一步,编译器就会将中间文件和pdf文件输出到./tmp路径。但是sumatraPDF仍然只会在tex文件那一级的路径下查找对应的pdf文件,因此还需进一步设置,使其能够在tmp文件夹下搜索新生成的pdf文件。

【注】必须提前在tex文件的同级路径下创建tmp文件夹。如果没有tmp文件夹就开始编译,编译器不会帮你新建,而是会报错。

不要忘了指令末尾的英文逗号

3)在"latex-workshop.latex.recipes":[\\一段无关的代码],后增加:"latex-workshop.latex.outDir": "%DIR%/tmp",,如同我和chatGPT的对话中提到的,加上这句话,LaTeX Workshop就知道了编译器新的输出路径,从而会在调用sumatraPDF.exe时将%PDF%占位符替换成正确的pdf文件输出路径/存放路径。

不要忘记行尾的英文逗号

4)完成上述配置并开始编译,就发现新生成的全部文件都会放到./tmp路径下,点击预览按钮也可以顺利通过sumatraPDF进行预览: 

最终效果

最后是我的settings.json文件内容,涉及latex的部分主要来自最开始提到的知乎文章[1]。

{
    "explorer.confirmDragAndDrop": false,
    "editor.fontFamily": "Terminal, 'Courier New', monospace",
    "workbench.colorTheme": "Visual Studio 2017 Dark - C++",
    "editor.minimap.enabled": false,
    "cmake.configureOnOpen": true,
    "explorer.confirmDelete": false,
    "intel-corporation.oneapi-environment-configurator.SETVARS_CONFIG": [
        "/opt/intel/oneapi/setvars.sh"
    ],
    "markdown-preview-enhanced.previewTheme": "none.css",
    "markdown-preview-enhanced.codeBlockTheme": "darcula.css",
    "markdown-preview-enhanced.revealjsTheme": "none.css",
    "window.zoomLevel": 3,
    //------------------------------LaTeX 配置----------------------------------
    // 设置是否自动编译
    "latex-workshop.latex.autoBuild.run":"onSave",
    //右键菜单
    "latex-workshop.showContextMenu":true,
    //从使用的包中自动补全命令和环境
    "latex-workshop.intellisense.package.enabled": true,
    //编译出错时设置是否弹出气泡设置
    "latex-workshop.message.error.show": false,
    "latex-workshop.message.warning.show": false,
    // 编译工具和命令
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            //"command": "xelatex",
            "command": "xelatex -output-directory=tmp",    //添加编译的参数
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "tmp/%DOCFILE%"
            ]
        }
    ],
    // 用于配置编译链
    "latex-workshop.latex.recipes": [
        {
            "name": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "BibTeX",
            "tools": [
                "bibtex"
            ]
        },
        {
            "name": "LaTeXmk",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "xelatex -> bibtex -> xelatex*2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],
    "latex-workshop.latex.outDir": "%DIR%/tmp",
    //文件清理。此属性必须是字符串数组
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.ist",
        "*.fls",
        "*.log",
        "*.fdb_latexmk"
    ],
    //设置为onFaild 在构建失败后清除辅助文件
    "latex-workshop.latex.autoClean.run": "onFailed",
    // 使用上次的recipe编译组合
    "latex-workshop.latex.recipe.default": "lastUsed",
    // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",



    //使用 SumatraPDF 预览编译好的PDF文件
    // 设置VScode内部查看生成的pdf文件
    "latex-workshop.view.pdf.viewer": "external",
    // PDF查看器用于在\ref上的[View on PDF]链接
    "latex-workshop.view.pdf.ref.viewer":"auto",
    // 使用外部查看器时要执行的命令。此功能不受官方支持。
    "latex-workshop.view.pdf.external.viewer.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe", // 注意修改路径
    // 使用外部查看器时,latex-workshop.view.pdf.external.view .command的参数。此功能不受官方支持。%PDF%是用于生成PDF文件的绝对路径的占位符。
    "latex-workshop.view.pdf.external.viewer.args": [
        "%PDF%"
    ],
    // 将synctex转发到外部查看器时要执行的命令。此功能不受官方支持。
    "latex-workshop.view.pdf.external.synctex.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe", // 注意修改路径
    // latex-workshop.view.pdf.external.synctex的参数。当同步到外部查看器时。%LINE%是行号,%PDF%是生成PDF文件的绝对路径的占位符,%TEX%是触发syncTeX的扩展名为.tex的LaTeX文件路径。
    "latex-workshop.view.pdf.external.synctex.args": [
        "-forward-search",
        "%TEX%",
        //"%PDF%",
        "%LINE%",
        "-reuse-instance",
        "-inverse-search",
        "\"D:/Software/Vscode/Microsoft VS Code/Code.exe\" \"D:/Software/Vscode/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"", // 注意修改路径
        "%PDF%"
    ],
    "git.openRepositoryInParentFolders": "always"

}

<think>好的,用户想在CentOS系统上安装LaTeX,我需要根据提供的引用信息来给出合适的步骤。首先,我需要回忆一下CentOS的不同版本可能会有不同的安装方法。引用中提到了CentOS 6.7、7和8的情况,所以可能需要针对不同版本给出建议。 首先,用户的问题没有说明具体是CentOS哪个版本,但根据常见的系统,可能以CentOS 7或8为主。引用[2]提到在CentOS 6.7安装latex2html,而引用[3]则是在CentOS8上搭建LaTeX服务,引用[4]是CentOS7安装桌面。可能需要分版本说明安装步骤。 接下来,我需要确认LaTeX在CentOS中的主要安装方式。通常,TeX Live是常用的发行版,可以通过yum或dnf安装。CentOS 7可能使用yum,而CentOS 8可能使用dnf。此外,引用[3]提到安装latexlive,可能需要安装完整的套件,包括各种包。 另外,用户是否需要图形界面?如果系统没有安装桌面,可能需要先安装GNOME桌面,如引用[4]所述。但用户可能只需要命令行安装,所以可能需要分情况讨论。 然后,安装步骤可能包括:1. 安装基本LaTeX环境(如texlive),2. 安装额外包(texlive-*),3. 可能需要的工具如latex2html,但根据引用[2],安装latex2html可能需要额外步骤。不过用户主要问的是安装LaTeX本身,可能不需要深入latex2html,除非用户有需要。 另外,引用[1]提到处理EPS图片需要额外参数,可能需要安装相关转换工具如epstopdf,这可能在texlive的某个包中。不过这可能属于后续配置,但用户可能也需要知道如何处理常见问题。 所以,综合步骤可能是: 1. 对于CentOS 7,使用yum安装texlive和相关包。 2. 对于CentOS 8,使用dnf安装。 3. 安装完成后,验证安装。 4. 可选安装桌面环境(如果需要图形界面)。 5. 处理常见问题,如EPS图片支持。 需要确保步骤清晰,分版本说明,并引用相关的引用资料,比如在安装完成后处理EPS图片可能需要引用[1]的建议。 另外,用户可能需要知道如何验证安装是否成功,比如编译一个测试文档。还可以提到使用VSCode配置,如引用[3]中的信息,但可能属于扩展内容。 现在需要组织这些信息,用中文分步骤回答,并生成相关问题。</think>### 在CentOS系统中安装LaTeX的步骤 根据系统版本选择对应方法(以CentOS 7和8为例): #### **1. 基础安装** - **CentOS 7**: 使用`yum`安装基础TeX Live套件: ```bash yum install -y texlive texlive-latex texlive-xetex texlive-collection-latexrecommended ``` 包含常用宏包和工具[^3][^2]。 - **CentOS 8**: 使用`dnf`安装完整TeX Live(推荐): ```bash dnf install -y texlive-scheme-full ``` 该命令会安装完整的LaTeX环境及扩展包[^3]。 #### **2. 安装图形界面支持(可选)** 若需使用图形化编辑器(如TeXworks),可安装GNOME桌面: ```bash yum -y groups install "GNOME Desktop" && startx # CentOS 7 dnf group install -y "Workstation" # CentOS 8 ``` 安装后通过`startx`启动桌面[^4]。 #### **3. 验证安装** 创建测试文件`test.tex`: ```latex \documentclass{article} \begin{document} Hello, LaTeX! \end{document} ``` 编译测试: ```bash pdflatex test.tex ``` 若生成`test.pdf`则安装成功。 #### **4. 处理常见问题** - **EPS图片支持**: 编译含EPS图片的文档时,需安装`texlive-epstopdf`: ```bash yum install -y texlive-epstopdf # CentOS 7 dnf install -y texlive-epstopdf # CentOS 8 ``` 并在编译命令中添加参数: ```bash pdflatex -shell-escape file.tex ``` [^1] #### **5. 扩展工具(按需)** - **LaTeX转Word工具**: 可安装`latex2html`(需手动下载编译,参考[^2])。 - **编辑器配置**: 在VSCode中安装LaTeX插件(如LaTeX Workshop)提升效率。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值