news 2026/8/24 12:23:37

VSCode / Cursor 中 LaTeX Workshop 的 settings.json 配置:编译与 SyncTeX 跳转

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VSCode / Cursor 中 LaTeX Workshop 的 settings.json 配置:编译与 SyncTeX 跳转

文章目录

    • 完整配置
    • 配置解析
      • 1. 右键菜单与自动编译
      • 2. PDF 预览设置
      • 3. SyncTeX 跳转设置
      • 4. 常用编译参数
    • 编译方式配置
      • 1. recipes:定义编译方案
      • 2. tools:定义具体命令
      • 3. latexmk 与手动流程的区别
      • 4. pdflatex 与 xelatex 怎么选
    • 推荐日常用法
    • 总结

在 VSCode 或 Cursor 中写 LaTeX,LaTeX 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","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"pdflatex","command":"pdflatex","args":["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"bibtex","command":"bibtex","args":["%DOCFILE%"]},{"name":"xelatexmk","command":"latexmk","args":["-xelatex","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"xelatex","command":"xelatex","args":["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]}]// <<<<<<<<<< latex 配置 <<<<<<<<<<}

配置解析

1. 右键菜单与自动编译

"latex-workshop.showContextMenu":true,"latex-workshop.latex.autoBuild.run":"onSave","latex-workshop.latex.recipe.default":"lastUsed"

latex-workshop.showContextMenu用于开启右键菜单。开启后,在.tex文件中右键可以看到:

Build LaTeX project SyncTeX from cursor

latex-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":"right"

latex-workshop.view.pdf.viewer设置 PDF 打开方式。这里使用:

"tab"

表示在 VSCode / Cursor 的编辑器 tab 中打开 PDF。

latex-workshop.view.pdf.tab.editorGroup设置 PDF 打开位置。这里使用:

"right"

表示 PDF 默认在右侧编辑器组打开,方便形成左侧源码、右侧 PDF 的布局。

常见取值包括:

"current""left""right""above""below"

3. SyncTeX 跳转设置

"latex-workshop.view.pdf.internal.synctex.keybinding":"double-click","latex-workshop.synctex.indicator":"rectangle"

latex-workshop.view.pdf.internal.synctex.keybinding控制 PDF 到源码的反向跳转方式。这里设置为:

"double-click"

表示在 PDF 中双击某个位置,可以跳回对应的.tex源码位置。另一个常见值是:

"ctrl-click"

表示使用Ctrl + Click跳转。

latex-workshop.synctex.indicator控制源码跳到 PDF 时的提示样式。可选值包括:

"none""circle""rectangle"

这里使用:

"rectangle"

表示在 PDF 中用矩形标出跳转位置。

源码跳 PDF 可以在.tex文件中右键选择:

SyncTeX from cursor

也可以在命令面板中执行:

LaTeX Workshop: SyncTeX from cursor

4. 常用编译参数

下面几个参数通常建议保留:

"-synctex=1","-interaction=nonstopmode","-file-line-error"

-synctex=1用于生成 SyncTeX 文件,支持 PDF 和源码双向跳转。开启后通常会生成:

main.synctex.gz

-interaction=nonstopmode表示编译遇到错误时不要停下来等待用户输入。没有这个参数时,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.tex

2. tools:定义具体命令

"latex-workshop.latex.tools":[{"name":"latexmk-pdf","command":"latexmk","args":["-pdf","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"pdflatex","command":"pdflatex","args":["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"bibtex","command":"bibtex","args":["%DOCFILE%"]},{"name":"xelatexmk","command":"latexmk","args":["-xelatex","-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]},{"name":"xelatex","command":"xelatex","args":["-synctex=1","-interaction=nonstopmode","-file-line-error","%DOC%"]}]

tools定义具体执行的命令。recipe 中引用的是 tool 的name

例如:

{"name":"latexmk (pdf)","tools":["latexmk-pdf"]}

会调用:

{"name":"latexmk-pdf","command":"latexmk"}

实际执行的命令大致是:

latexmk-pdf-synctex=1-interaction=nonstopmode -file-line-error main.tex

3. latexmk 与手动流程的区别

使用:

"tools":["latexmk-pdf"]

表示交给latexmk自动判断编译流程。它会自动处理:

  • 是否需要多次运行pdflatex
  • 是否需要运行bibtex
  • 参考文献是否更新
  • 交叉引用是否稳定

使用:

"tools":["pdflatex","bibtex","pdflatex","pdflatex"]

表示固定执行四步。

固定流程更直观,但不如latexmk智能。日常写论文时,更推荐使用latexmk

4. pdflatex 与 xelatex 怎么选

pdflatex是英文论文中最常见的编译方式,适合大多数期刊模板。

xelatex常用于:

  • 中文文档
  • 需要系统字体
  • Unicode 字符较多
  • 使用fontspecxeCJK等宏包

如果没有特殊字体或中文需求,默认使用latexmk (pdf)通常最稳妥。

推荐日常用法

日常写 LaTeX 时,推荐使用默认方案:

"latex-workshop.latex.recipe.default":"latexmk (pdf)"

保存文件后自动编译:

"latex-workshop.latex.autoBuild.run":"onSave"

PDF 预览放在右侧:

"latex-workshop.view.pdf.tab.editorGroup":"right"

PDF 跳源码使用双击:

"latex-workshop.view.pdf.internal.synctex.keybinding":"double-click"

总结

这份settings.json的核心思路是:

  • latexmk (pdf)作为默认编译方式
  • -synctex=1支持 PDF 和源码双向跳转
  • -interaction=nonstopmode避免编译出错时卡住
  • -file-line-error提供清晰的错误定位
  • 用右侧 tab 预览 PDF
  • 用双击实现 PDF 到源码的反向跳转

对于大多数英文论文和期刊模板,latexmk (pdf)是最省心、最稳定的默认选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 12:22:41

GitHub开源C盘清理工具指南:安全释放Windows系统空间

在 Windows 系统长期使用后&#xff0c;C 盘空间告急是一个普遍且棘手的问题。手动清理不仅效率低下&#xff0c;而且风险极高&#xff0c;误删系统文件可能导致系统不稳定甚至无法启动。因此&#xff0c;一款安全、高效、易用的 C 盘清理工具成为许多开发者和普通用户的刚需。…

作者头像 李华
网站建设 2026/8/24 12:20:52

基于DeepSeek Harness构建Obsidian智能助手:私有知识库的AI Agent实践

1. 这篇文章真正要解决的问题如果你是一个重度使用 Obsidian 的知识工作者或开发者&#xff0c;你是否曾有过这样的体验&#xff1a;面对一个凌乱的笔记库&#xff0c;想快速找到某个概念的定义&#xff0c;却需要手动翻阅多个笔记&#xff1b;或者&#xff0c;你想基于已有的笔…

作者头像 李华
网站建设 2026/8/24 12:18:52

闭源大模型API实战避坑:Token计费、模型漂移与监控审计方案

这类闭源大模型服务&#xff0c;最让开发者头疼的不是功能不够强&#xff0c;而是你根本不知道它背后在干什么。网络断了还在后台扣你的Token额度&#xff0c;训练集和测试集边界模糊&#xff0c;参数调整像开盲盒——这些问题不是猜测&#xff0c;而是很多一线开发者和团队在对…

作者头像 李华
网站建设 2026/8/24 12:17:52

Java PDF处理:用 PDFBox 三步跑通文本提取、合并拆分与页面渲染

Java PDF处理&#xff1a;用 PDFBox 三步跑通文本提取、合并拆分与页面渲染 【免费下载链接】pdfbox Mirror of Apache PDFBox 项目地址: https://gitcode.com/gh_mirrors/pd/pdfbox PDFBox 是 Apache 基金会出品的 Java PDF 处理库&#xff0c;也是目前 Java 生态里最成…

作者头像 李华
网站建设 2026/8/24 12:16:57

智能体框架防遗忘机制:从任务隔离到知识路由的工程实践

1. 先搞清楚“防遗忘”到底防的是什么智能体框架的持续学习&#xff0c;核心痛点不是学不会新东西&#xff0c;而是“学新忘旧”。你花大力气训练或配置了一个能处理A任务的智能体&#xff0c;当你想让它学会B任务时&#xff0c;它很可能把A任务的能力给忘了。这不是模型本身的…

作者头像 李华