Windows 10/11下使用VSCode进行LaTeX编辑与编译

内容目录

系统与软件版本

  • Windows 11 23H2 22631.3296
  • VSCode version 1.87.0 (user setup)
  • LaTeX Workshop (VSCode Plugin) v9.19.1

开始前准备

  • 确认VSCode已安装并可以正常使用
  • 确认LaTeX发行版已安装并已添加进系统环境变量(或用户环境变量),若成功,则可以在命令行中看到如下结果
    • 如果安装 MiKTeX
      $ xelatex -version
      MiKTeX-XeTeX 4.10 (MiKTeX 24.1)
      © 1994-2008 SIL International, © 2009-2023 Jonathan Kew, © 2010-2012 Hàn Thế Thành, © 2012-2013 Khaled Hosny
      ...
      compiled with zlib version 1.2.13; using 1.2.13
      $ pdflatex -version
      MiKTeX-pdfTeX 4.18 (MiKTeX 24.1)
      © 1982 D. E. Knuth, © 1996-2023 Hàn Thế Thành
      ...
      compiled with zlib version 1.2.13; using 1.2.13
    • 如果安装 TeXLive
      $ xelatex -version
      XeTeX 3.141592653-2.6-0.999995 (TeX Live 2023)
      kpathsea version 6.3.5
      ...
      Compiled with fontconfig version 2.14.2; using 2.14.2
      $ pdflatex -version
      pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2023)
      kpathsea version 6.3.5
      ...
      Compiled with xpdf version 4.04

VSCode的相关配置

  1. 安装LaTeX Workshop插件
    file

  2. 新建或打开文件夹作为LaTeX开发的工作区

  3. 新建一个测试文件hello.tex,例如

    \documentclass{article}
    
    \begin{document}
    ''Hello world!''from \LaTeX.
    \end{document}
  4. 在工作区的根目录中创建.vscode文件夹,并在其中创建settings.json文件,此时工作区文件结构如下图所示
    file

  5. 复制以下内容到文件中
    settings.json:

    {
    "[latex]": {
        "editor.formatOnPaste": false,
        "editor.suggestSelection": "recentlyUsedByPrefix"
    },
    "latex-workshop.latex.clean.fileTypes": [
        // "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        // "*.out",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.fls",
        "*.fdb_latexmk",
        "*.snm",
        "*.synctex(busy)",
        "*.synctex.gz(busy)"
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex*2",
            "tools": [
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "latexmk(xelatex)",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "pdflatex",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-xelatex",
                "-halt-on-error",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-output-directory=out/%DOCFILE%",
                "%DOC%"
            ]
        },
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-output-directory=out/%DOCFILE%",
                "%DOC%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-output-directory=out/%DOCFILE%",
                "%DOC%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    "latex-workshop.intellisense.package.enabled": true,
    "latex-workshop.latex.outDir": "./out/%DOCFILE%/",
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "workbench.editorAssociations": {
        "*.pdf": "default"
    }
    }

编译与预览

  1. 打开hello.tex文件,如果LaTeX Workshop插件安装且加载成功,左侧侧边栏会多出TEX字样的图标,点击图标可以看到如下界面
    file

  2. 点击Recipe: xelatex*2即可编译文件。

    • 编译时,左下角状态栏会显示Build: 1/2(xelatex)字样;
    • 编译成功后,状态栏显示
    • 若编译失败,状态栏显示×,并且会弹出报错弹窗,可以打开输出查看具体错误信息。
  3. 点击View LaTeX PDF即可在侧边栏查看编译好的PDF文档,至此,VSCode已配置成功。
    file

  4. 一些小技巧

    • 正向搜索:当光标聚焦在<filename>.tex文件上时,按Ctrl+Alt+J,可以跳转到编译好的PDF文件的对应位置;
    • 反向搜索:双击PDF文件,可以跳转到<filename>.tex文件的对应位置;
    • Alt+Shift+F可以对代码进行格式化(需要latexindent宏包,需要安装perl)
  5. 其他功能说明

    • xelatex*2: 可满足大多数文档的编译需求
    • latexmk: 一种更现代的latex编译程序,但需要安装perl
    • pdflatex: latex编译程序,但对中文(CJK字符)的支持不好
    • pdflatex -> bibtex -> pdflatex*2: 当文章存在参考文献与交叉引用时使用,但对中文(CJK字符)的支持不好
    • STRUCTURE: 当文档有章节层级时,可以在该区域显示,并且可以跳转对应章节位置
    • Symbols: 一些常用符号的LaTeX命令,忘记的时候可以看看
    • TikZ: 画流程图可用
  6. (可选)可以安装插件LaTeX Utilities(也需要安装perl),该插件可以帮助管理Zotero引用、文字计数等

Windows 10/11下使用VSCode进行LaTeX编辑与编译》有1条留言

留下回复