文章目录完整配置配置解析1. 右键菜单与自动编译2. PDF 预览设置3. SyncTeX 跳转设置4. 常用编译参数编译方式配置1. recipes定义编译方案2. tools定义具体命令3. latexmk 与手动流程的区别4. pdflatex 与 xelatex 怎么选推荐日常用法总结在 VSCode 或 Cursor 中写 LaTeXLaTeX Workshop是必备扩展支持编译、PDF 预览、错误定位以及 PDF 和源码之间的双向跳转。本文仅介绍其settings.json配置适用于已安装 LaTeX Workshop 扩展与 TeX Live / MiKTeX 的场景。完整配置LaTeX Workshop 的配置可以放入项目级配置文件.vscode/settings.json也可以放入用户级settings.json中。一般建议和项目编译方式强相关的配置放在项目级.vscode/settings.json中个人通用习惯放在用户级settings.json中。个人使用配置如下{// latex 配置 latex-workshop.showContextMenu:true,latex-workshop.latex.autoBuild.run:onSave,latex-workshop.latex.recipe.default:lastUsed,latex-workshop.view.pdf.viewer:tab,latex-workshop.view.pdf.tab.editorGroup:right,latex-workshop.view.pdf.internal.synctex.keybinding:double-click,latex-workshop.synctex.indicator:rectangle,latex-workshop.latex.recipes:[{name:latexmk (pdf),tools:[latexmk-pdf]},{name:pdflatex - bibtex - pdflatex * 2,tools:[pdflatex,bibtex,pdflatex,pdflatex]},{name:latexmk (xelatex),tools:[xelatexmk]},{name:xelatex - bibtex - xelatex * 2,tools:[xelatex,bibtex,xelatex,xelatex]}],latex-workshop.latex.tools:[{name:latexmk-pdf,command:latexmk,args:[-pdf,-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:pdflatex,command:pdflatex,args:[-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:bibtex,command:bibtex,args:[%DOCFILE%]},{name:xelatexmk,command:latexmk,args:[-xelatex,-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:xelatex,command:xelatex,args:[-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]}]// latex 配置 }配置解析1. 右键菜单与自动编译latex-workshop.showContextMenu:true,latex-workshop.latex.autoBuild.run:onSave,latex-workshop.latex.recipe.default:lastUsedlatex-workshop.showContextMenu用于开启右键菜单。开启后在.tex文件中右键可以看到Build LaTeX project SyncTeX from cursorlatex-workshop.latex.autoBuild.run设置自动编译时机。这里使用onSave表示保存.tex文件时自动编译。常见取值还有never表示不自动编译只手动编译。onFileChange表示文件变化时自动编译触发更频繁。latex-workshop.latex.recipe.default设置默认编译方案。这里默认使用latexmk (pdf)这个名字必须和latex-workshop.latex.recipes中某个 recipe 的name完全一致。2. PDF 预览设置latex-workshop.view.pdf.viewer:tab,latex-workshop.view.pdf.tab.editorGroup:rightlatex-workshop.view.pdf.viewer设置 PDF 打开方式。这里使用tab表示在 VSCode / Cursor 的编辑器 tab 中打开 PDF。latex-workshop.view.pdf.tab.editorGroup设置 PDF 打开位置。这里使用right表示 PDF 默认在右侧编辑器组打开方便形成左侧源码、右侧 PDF 的布局。常见取值包括currentleftrightabovebelow3. SyncTeX 跳转设置latex-workshop.view.pdf.internal.synctex.keybinding:double-click,latex-workshop.synctex.indicator:rectanglelatex-workshop.view.pdf.internal.synctex.keybinding控制 PDF 到源码的反向跳转方式。这里设置为double-click表示在 PDF 中双击某个位置可以跳回对应的.tex源码位置。另一个常见值是ctrl-click表示使用Ctrl Click跳转。latex-workshop.synctex.indicator控制源码跳到 PDF 时的提示样式。可选值包括nonecirclerectangle这里使用rectangle表示在 PDF 中用矩形标出跳转位置。源码跳 PDF 可以在.tex文件中右键选择SyncTeX from cursor也可以在命令面板中执行LaTeX Workshop: SyncTeX from cursor4. 常用编译参数下面几个参数通常建议保留-synctex1,-interactionnonstopmode,-file-line-error-synctex1用于生成 SyncTeX 文件支持 PDF 和源码双向跳转。开启后通常会生成main.synctex.gz-interactionnonstopmode表示编译遇到错误时不要停下来等待用户输入。没有这个参数时LaTeX 出错可能会卡在终端中。-file-line-error表示错误信息中包含文件名和行号方便 VSCode / Cursor 定位错误。%DOC%是 LaTeX Workshop 的占位符表示当前主.tex文件。%DOCFILE%表示主文件名不带扩展名常用于bibtex。编译方式配置1. recipes定义编译方案latex-workshop.latex.recipes:[{name:latexmk (pdf),tools:[latexmk-pdf]},{name:pdflatex - bibtex - pdflatex * 2,tools:[pdflatex,bibtex,pdflatex,pdflatex]},{name:latexmk (xelatex),tools:[xelatexmk]},{name:xelatex - bibtex - xelatex * 2,tools:[xelatex,bibtex,xelatex,xelatex]}]recipes用来定义“编译方案”。每个 recipe 可以调用一个或多个 tool。这里配置了四种常见方案latexmk (pdf)推荐默认方案自动处理多次编译、参考文献和交叉引用。pdflatex - bibtex - pdflatex * 2传统 BibTeX 编译流程。latexmk (xelatex)使用latexmk调用xelatex。xelatex - bibtex - xelatex * 2传统xelatex bibtex编译流程。传统 BibTeX 流程等价于手动执行pdflatex main.tex bibtex main pdflatex main.tex pdflatex main.tex2. tools定义具体命令latex-workshop.latex.tools:[{name:latexmk-pdf,command:latexmk,args:[-pdf,-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:pdflatex,command:pdflatex,args:[-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:bibtex,command:bibtex,args:[%DOCFILE%]},{name:xelatexmk,command:latexmk,args:[-xelatex,-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]},{name:xelatex,command:xelatex,args:[-synctex1,-interactionnonstopmode,-file-line-error,%DOC%]}]tools定义具体执行的命令。recipe 中引用的是 tool 的name。例如{name:latexmk (pdf),tools:[latexmk-pdf]}会调用{name:latexmk-pdf,command:latexmk}实际执行的命令大致是latexmk-pdf-synctex1-interactionnonstopmode -file-line-error main.tex3. latexmk 与手动流程的区别使用tools:[latexmk-pdf]表示交给latexmk自动判断编译流程。它会自动处理是否需要多次运行pdflatex是否需要运行bibtex参考文献是否更新交叉引用是否稳定使用tools:[pdflatex,bibtex,pdflatex,pdflatex]表示固定执行四步。固定流程更直观但不如latexmk智能。日常写论文时更推荐使用latexmk。4. pdflatex 与 xelatex 怎么选pdflatex是英文论文中最常见的编译方式适合大多数期刊模板。xelatex常用于中文文档需要系统字体Unicode 字符较多使用fontspec、xeCJK等宏包如果没有特殊字体或中文需求默认使用latexmk (pdf)通常最稳妥。推荐日常用法日常写 LaTeX 时推荐使用默认方案latex-workshop.latex.recipe.default:latexmk (pdf)保存文件后自动编译latex-workshop.latex.autoBuild.run:onSavePDF 预览放在右侧latex-workshop.view.pdf.tab.editorGroup:rightPDF 跳源码使用双击latex-workshop.view.pdf.internal.synctex.keybinding:double-click总结这份settings.json的核心思路是用latexmk (pdf)作为默认编译方式用-synctex1支持 PDF 和源码双向跳转用-interactionnonstopmode避免编译出错时卡住用-file-line-error提供清晰的错误定位用右侧 tab 预览 PDF用双击实现 PDF 到源码的反向跳转对于大多数英文论文和期刊模板latexmk (pdf)是最省心、最稳定的默认选择。