sublime text 编译 latex 前必须确保系统已安装并可调用 latexmk 和 xelatex,验证方式为终端执行 which/where latexmk 和 xelatex --version;失败则重装对应发行版并重启 sublime;随后手动配置 tex_path、禁用 use_simple_detection、设 builder 为 latexmk、启用 -pdfxe 和 -synctex=1,并在子文件首行添加 %!tex root 注释。

latexmk 找不到就别配插件——Sublime Text 本身不编译 LaTeX,它只调用系统命令;终端里输 latexmk --version 报错,那 Ctrl+B 一定失败。
先确认 latexmk 和 xelatex 能在终端直接运行
这是所有配置的前提,跳过这步,后面全白搭。
- 打开终端(macOS/Linux)或 CMD/PowerShell(Windows),逐条执行:
which latexmk或where latexmk—— 必须返回一个路径,比如/Library/TeX/texbin/latexmk或C: exlive‚3inwin32latexmk.bat -
xelatex --version—— 必须输出版本号,不能是 “command not found” -
echo $PATH(macOS/Linux)或echo %PATH%(Windows)—— 确认上一步返回的路径确实在里面
任一失败:Mac 用户重装 brew install --cask mactex;Windows 用户重装 MiKTeX 并勾选「Add to PATH」;Linux 用户补装 sudo apt install latexmk texlive-latex-recommended texlive-fonts-recommended texlive-lang-chinese biber。装完必须重启 Sublime,否则它看不到新 PATH。
手动写死 tex_path,禁用 use_simple_detection
use_simple_detection 是个陷阱。它扫描 PATH 却忽略你实际 bin 目录的位置,尤其在 MacTeX 路径含空格、或 TeX Live 多版本共存时,100% 失效。
- 进
Preferences → Package Settings → LaTeXTools → Settings – User - 粘贴完整配置(按你系统改):
macOS + MacTeX:"tex_path": "/Library/TeX/texbin"
Windows + MiKTeX:"tex_path": "C:\texlive\2023\bin\win32"(注意双反斜杠)
Linux + TeX Live:"tex_path": "/usr/local/texlive/2023/bin/x86_64-linux" - 删掉配置里任何
"use_simple_detection": true字段 - 加一行:
"builder": "latexmk",确保走完整调度链
强制用 xelatex 引擎,配好 biber 和 synctex
默认 pdflatex 对中文、Unicode、字体支持差,参考文献也容易崩。不是“字体问题”,是引擎根本不支持。
- 在
Settings – User中添加:"builder_settings": { "cmd": ["latexmk","-pdfxe","-quiet","-synctex=1","-interaction=nonstopmode","$file"], "bibtex_tool":"biber" } -
-pdfxe强制用 XeLaTeX,绕过pdflatex + ctex的字体探测陷阱 -
-synctex=1是反向搜索(PDF 点击跳回源码)的前提,漏了就永远点不动 - 如果用 BibTeX(不是 biber),把
"bibtex_tool": "biber"换成"bibtex_tool": "bibtex",且导言区有ibliographystyle{unsrt}
PDF 查看器必须匹配且启用 SyncTeX
编译出 PDF 但不弹窗、点击 PDF 没反应、跳转到错误行——90% 是查看器没对上,不是插件 bug。
- macOS:必须用
Skim,不能用Preview.app;Skim → Preferences → Sync → 勾选 “Enable SyncTeX”,并在 “PDF viewer” 下拉菜单选 “Sublime Text” - Windows:用
SumatraPDF,安装后在 CMD 中执行:SumatraPDF.exe -inverse-search ""C:path osubl.exe" "%f:%l""(路径按你实际改) - Linux:推荐
zathura,需装zathura-pdf-mupdf插件并启用synctex - 所有平台都要求:PDF 和
.synctex.gz必须在同一目录,文件名完全一致;别把 PDF 存到output/子目录里
多文件项目最容易被忽略的是子文件首行缺 %!TEX root = main.tex——没有这行,latexmk 就不知道该编译谁。











