必备工具安装
首先安装三个核心工具,缺一不可:
- 安装 LaTeX 环境
首先你得有 LaTeX 的编译环境,推荐直接装完整版的 MacTeX,这是 Mac 上最通用的 LaTeX 环境,包含了所有的编译工具和宏包。下载地址是 https://www.tug.org/mactex/,双击安装。 - 安装 VS Code 和 LaTeX Workshop
VS Code 是我们写 LaTeX 的编辑器。下载地址是 https://code.visualstudio.com/,双击安装。然后打开 VS Code 的插件市场,搜索 LaTeX Workshop,安装这个插件。 - 安装 Skim PDF 阅读器
Skim 是 Mac 上免费开源的 PDF 阅读器,专门支持 LaTeX 的 SyncTeX 同步功能,比系统自带的 Preview 好用太多了。下载地址是 https://skim-app.sourceforge.io/,双击安装。
在 VS Code 中配置 LaTeX
- 打开 VS Code,按下快捷键 Command + , 打开设置
- 点击设置页面右上角的 {} 图标,打开 settings.json 文件(这是 JSON 格式的配置文件)
- 把下面这段配置,完整的复制粘贴到你的 settings.json 里面(如果原来有其他配置,就加在大括号里面就行):
bash
// LaTeX Workshop 配置
"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.external.viewer.command": "/Applications/Skim.app/Contents/MacOS/Skim",
"latex-workshop.view.pdf.external.viewer.args": [
"-r",
"%LINE%",
"%PDF%",
"%TEX%"
],
"latex-workshop.view.pdf.ref.viewer": "external",
"latex-workshop.view.pdf.external.synctex.args": [
"-r",
"%LINE%",
"%PDF%",
"%TEX%"
],
这些配置是什么意思?解释一下,你就知道每个配置是干嘛的,不是瞎复制:
- latex-workshop.view.pdf.viewer: 把默认的 PDF 查看器,从内置预览改成外部程序
- 下面两行指定了外部程序就是 Skim,告诉 VS Code 编译完用 Skim 打开 PDF
- 最后几行是同步跳转的参数,用来实现编译完自动跳转到对应的 PDF 行
settings.json的完整代码(仅供参考)
bash
{
// ======================== LaTeX 完整配置 BEGIN ========================
// bibtex 格式化缩进
"latex-workshop.bibtex-format.tab": "tab",
// 关闭自动编译,手动控制编译时机
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.latex.autoBuild.cleanAndRetry.enabled": false,
// 编译完成后自动同步跳转到PDF
"latex-workshop.synctex.afterBuild.enabled": true,
// 公式悬浮预览
"latex-workshop.hover.preview.enabled": true,
"latex-workshop.hover.preview.scale": 0.7,
// ========== PDF 查看器配置:使用外部 Skim ==========
"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.ref.viewer": "external",
// Skim 正向同步专用工具(编译后自动跳行)
"latex-workshop.view.pdf.external.viewer.command": "/Applications/Skim.app/Contents/SharedSupport/displayline",
"latex-workshop.view.pdf.external.viewer.args": [
"-r",
"%LINE%",
"%PDF%",
"%TEX%"
],
// Skim 同步命令配置
"latex-workshop.view.pdf.external.synctex.command": "/Applications/Skim.app/Contents/SharedSupport/displayline",
"latex-workshop.view.pdf.external.synctex.args": [
"-r",
"%LINE%",
"%PDF%",
"%TEX%"
],
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
// ========== 编译工具配置 ==========
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "biber",
"command": "biber",
"args": [
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
},
{
"name": "makeglossaries",
"command": "makeglossaries",
"args": [
"%DOCFILE%"
]
}
],
// ========== 编译方案(中文论文推荐使用 xelatex 系列) ==========
"latex-workshop.latex.recipes": [
{
"name": "pdf->bibtex->pdf->pdf",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "xe->bibtex->xe->xe",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdf->biber->pdf->pdf",
"tools": [
"pdflatex",
"biber",
"pdflatex",
"pdflatex"
]
},
{
"name": "xe->biber->xe->xe",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
},
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
}
],
// 清理中间文件(保留同步必需文件,不删除 synctex.gz)
"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",
"*.bcf",
"*.run.xml"
],
// ======================== LaTeX 设置 END ========================
"workbench.sideBar.location": "right",
"files.autoSave": "afterDelay",
"security.promptForLocalFileProtocolHandling": false
}
保存配置文件,使其生效。
配置 Skim 的反向搜索
这部分比你想象的简单 100 倍,不用自己填任何命令和参数,新版本的 Skim 已经帮你做好了:
- 打开 Skim,按下快捷键 Command + , 打开选项
- 点击顶部的 同步 标签(英文是 Sync)
- 最上面的 预设(Preset)下拉框,你直接选 Visual Studio Code 就行!
就这一步!选完之后,下面的命令和参数会自动帮你填好,完全不用你自己动手改,也不用管什么路径,Skim 自己会找到 VS Code 的位置。
测试一下配置是否生效
现在所有配置都搞定了,我们来测试一下能不能用:
- 新建一个简单的 LaTeX 文件,比如 test.tex,内容随便写点,比如:
bash
\documentclass{article}
\begin{document}
Hello World!
This is a test.
\end{document}
- 按下 Command + S 保存,然后编译一下(LaTeX Workshop 默认保存就会自动编译)
- 这时候你会发现,PDF 自动用 Skim 打开了!
- 你在源码里把光标放到第二行,重新编译,会发现 Skim 自动跳转到了 PDF 的第二行,这就是正向同步生效了!
- 然后你在 Skim 里,按住 Command + Shift,点击 PDF 的某一行,会发现 VS Code 自动跳转到了对应的源码行,这就是反向同步生效了!
如果这两步都没问题,那恭喜你,配置成功了!
常见问题
- 为什么我用系统自带的 Preview 不行?
因为 Preview 不支持 SyncTeX 同步协议!这是 Preview 本身的功能限制,不管你怎么配置,都没法实现双向同步,所以必须用 Skim 才行。 - 我之前用的是 SumatraPDF,现在换 Mac 了不习惯?
不用不习惯,Skim 的体验比 SumatraPDF 在 Mac 上好用太多了,而且配置完同步之后,写 LaTeX 的效率会高很多。 - 编译完还是用内置预览打开?
检查一下 VS Code 的 settings.json 有没有写错,是不是把配置加对地方了,有没有打错逗号或者引号。确认你装的是 LaTeX Workshop 插件,不是别的 LaTeX 插件。