> 技术文档 > 2025-04-03 Latex学习1——本地配置Latex + VScode环境_vscode latex

2025-04-03 Latex学习1——本地配置Latex + VScode环境_vscode latex


文章目录

  • 1 安装 Latex
  • 2 安装 VScode
  • 3 配置环境
    • 3.1 汉化 VScode
    • 3.2 安装 latex 插件
    • 3.3 配置解释
  • 4 编译示例
  • 5 加快你的编译
    • 5.1 取消压缩
    • 5.2 使用 PDF 代替图片
  • 6 参考文章

1 安装 Latex

本文配置环境:

  • Windows11
  1. 打开清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/,下载 texlive.iso 文件

image-20250403014514681

  1. 使用资源管理器打开。

image-20250403014807757

  1. 右键“install-tl-windows.bat”文件,选择以管理员身份运行(进行安装),需等待一会儿。

image-20250403015801578

  1. 进行如下配置:

    • installation root:修改安装路径。
    • 安装 TeXworks 前端:取消勾选(使用 VScode 就不用这个)。

    设置完成后点击安装。

image-20250403020125123

  1. 点击键盘上的菜单按键,输入“pow”,打开 Windows PoeweShell。

    输入命令 “latex”,检查是否安装成功。

image-20250403020436968 image-20250403020534047

2 安装 VScode

  1. 打开 VScode 官网:https://code.visualstudio.com/,下载安装包。

image-20250403020642486

  1. 运行安装包,勾选“创建桌面快捷方式”和“添加到系统 PATH”。

    安装路径自行修改(严禁路径含中文或空格)。

image-20250403021117253 image-20250403021132885

3 配置环境

3.1 汉化 VScode

  1. 打开 VScode,点击左侧插件图标,搜索“chinese”,安装汉化插件。

image-20250403021348922

  1. 安装完成后,点击重启,启用汉化。

image-20250403021502864

3.2 安装 latex 插件

  1. 点击左侧插件图标,搜索“latex”,安装“LaTeX Workshop”插件。

image-20250403021609172

  1. 点击左下角设置按钮,选择设置,打开设置面板。

image-20250403021858105

  1. 点击右上角文件按钮,打开设置的 json 配置文件。

image-20250403021952462

  1. 将以下代码拷贝到 json 文件中。
{ \"workbench.colorTheme\": \"Default Light Modern\", \"editor.wordWrap\": \"on\", //------------------------------LaTeX 配置---------------------------------- // 右键菜单 \"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.outDir\": \"./build\", // 编译工具和命令 \"latex-workshop.latex.tools\": [ { \"name\": \"xelatex\", \"command\": \"xelatex\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"pdflatex\", \"command\": \"pdflatex\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"latexmk\", \"command\": \"latexmk\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"-pdf\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"bibtex\", \"command\": \"bibtex\", \"args\": [ \"%OUTDIR%/%DOCFILE%\", // \"--output-directory=%OUTDIR%\", ] } ], \"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.clean.fileTypes\": [ \"*.aux\", \"*.bbl\", \"*.blg\", \"*.idx\", \"*.ind\", \"*.lof\", \"*.lot\", \"*.out\", \"*.toc\", \"*.acn\", \"*.acr\", \"*.alg\", \"*.glg\", \"*.glo\", \"*.gls\", \"*.ist\", \"*.fls\", \"*.log\", \"*.fdb_latexmk\", // \"*.synctex.gz\" ], // 设置为 onBuilt 在构建成功后清除辅助文件 \"latex-workshop.latex.autoClean.run\": \"onBuilt\", // 使用上一个编译组合 \"latex-workshop.latex.recipe.default\": \"lastUsed\", // 设置是否自动编译 \"latex-workshop.latex.autoBuild.run\": \"never\", // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击 \"latex-workshop.view.pdf.internal.synctex.keybinding\": \"double-click\",}

​ 到此配置环境完成。

3.3 配置解释

  1. 编译输出路径

    这里设置为当前目录下的 “./build” 文件夹。设置为空则是同目录。

    // 输出路径\"latex-workshop.latex.outDir\": \"./build\",
  2. 编译工具命令

    定义了单个工具,具体内容看注释。参考文档:Compile · James-Yu/LaTeX-Workshop Wiki。

    // 编译工具和命令\"latex-workshop.latex.tools\": [ { \"name\": \"xelatex\", \"command\": \"xelatex\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"pdflatex\", \"command\": \"pdflatex\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"latexmk\", \"command\": \"latexmk\", \"args\": [ \"-synctex=1\", \"-interaction=nonstopmode\", \"-file-line-error\", \"-pdf\", \"--output-directory=%OUTDIR%\", \"%DOCFILE%\" ] }, { \"name\": \"bibtex\", \"command\": \"bibtex\", \"args\": [ \"%OUTDIR%/%DOCFILE%\", // \"--output-directory=%OUTDIR%\", ] }],
  3. 编译工具链

    定义编译工具链,由一个或多个工具组成。在插件中显示如下

    image-20250403023341603

    \"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\" ] },],

    对于最后两个编译链,解释如下(以 xeletax 为例):

    • xeletax * 1:生成辅助文件,为后续处理做准备。具体过程包括
      • 解析主 .tex 文件。
      • 生成 .aux 文件(包含引用和参考文献信息)。
      • 生成 .log 文件(日志信息)。
      • 生成 .synctex.gz 文件(用于反向搜索)。
      • 生成初步的 PDF(此时引用和参考文献标记为问号 [?])。
    • bibtex:处理参考文献。具体过程包括
      • 读取 .aux 文件中的引用信息。
      • 从 .bib 文献数据库中提取相关条目。
      • 生成 .bbl 文件(格式化后的参考文献列表)。
      • 生成 .blg 文件(bibtex 日志)。
    • xeletax * 2:将参考文献信息整合到文档中。具体过程包括
      • 读取 .bbl 文件内容。
      • 更新文档中的引用标记。
      • 重新生成 .aux 文件(现在包含正确的参考文献信息)。
      • 生成中间 PDF(此时参考文献已正确显示,但交叉引用可能仍不正确)。
    • xeletax * 3:解决所有交叉引用。具体过程包括
      • 读取更新后的 .aux 文件。
      • 解析所有交叉引用(章节、图表、公式编号等)。
      • 确保所有引用编号最终正确。
      • 生成最终 PDF(所有引用和参考文献都正确显示)。

    如果跳过某些步骤:

    • 只编译一次(xelatex):引用显示为 [?]。
    • 编译两次,无 bibtex(xelatex -> xelatex):参考文献缺失。
    • 编译两次,有 bibtex(xelatex -> bibtex -> xelatex):交叉引用可能不正确。
  4. 文件清理

    编译过程中,latex 会生成许多中间文件。

    • clean.fileTypes:定义编译完成后清理的文件后缀名。
    • autoClean.run:决定编译完成后是否清理文件。
    // 文件清理。此属性必须是字符串数组\"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\", // \"*.synctex.gz\"],// 设置为 onBuilt 在构建成功后清除辅助文件\"latex-workshop.latex.autoClean.run\": \"onBuilt\",
  5. 自动编译

    可以选择在文件内容更改时或保存文件时自动编译。

    文件较大时,编译时间会很长,个人不习惯自动编译,因此选择 never。

    // 使用上一个编译组合\"latex-workshop.latex.recipe.default\": \"lastUsed\",// 设置是否自动编译\"latex-workshop.latex.autoBuild.run\": \"never\",
  6. 反向定位

    设置从 pdf 到 tex 文件的反向定位方式,个人习惯鼠标双击定位。

    // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击\"latex-workshop.view.pdf.internal.synctex.keybinding\": \"double-click\",

​ 上述所有内容可直接在用户设置中搜索对应内容配置,并查看相关介绍。以反向定位为例:

image-20250403030453482

4 编译示例

  1. 创建文件夹 test,使用 VScode 打开该文件夹。
  2. 新建 “new.tex” 文件,输入如下内容。

image-20250403030740399

\\documentclass{article} \\begin{document}hello world!\\end{document}
  1. 进入 TEX 插件页面,选择编译方式,点击编译。这里选择 LaTeXmk。选择 XeLaTeX 或 PDFLaTeX 也可。

    若左侧没有 TEX 插件栏,新建 tex 文件即可显示。

image-20250403030949064

  1. 回到文件页面,可看到当前目录下新建了 ./build 文件夹,编译的 pdf 放在该目录中。右上角点击双栏按钮可在右侧查看编译后的 pdf。

    说明:“new.synctex.gz” 存放反向编译内容,删除后不可以双击 pdf 定位到对应 tex 位置。

image-20250403031151463

  1. 编译一次后,可点击左上角编译按钮进行快速编译,选择的编译方式由如下设置决定:

    // 使用上一个编译组合\"latex-workshop.latex.recipe.default\": \"lastUsed\",

image-20250403031742616

5 加快你的编译

5.1 取消压缩

​ 最立竿见影的方法是取消 LaTeX 编译器对 PDF 的压缩。方法是在 tex 文档开头加入如下代码:

\\documentclass{article} \\usepackage{...}\\special{dvipdfmx:config z 0} % 取消 PDF 压缩,加快速度,最终版本生成时注释该行\\begin{document}hello world!\\end{document}

​ 该方法可以将速度加快 3~5 倍(60s -> 15s),但代价是 PDF 大小会成倍增加(60MB -> 700MB)。

5.2 使用 PDF 代替图片

​ 对于图像文件,建议保存为 .pdf 。

​ 因为 .pdf 图像的编译速度比 .png 文件快,其编译过程不需要调用 libpng 库。

  • 参考链接:https://cn.overleaf.com/learn/how-to/Optimising_very_large_image_files。

6 参考文章

  • Latex和Vscode安装和配置_vscode latex-CSDN博客
  • LaTeX编译速度优化_latex自动编译-CSDN博客