Sublime Text本身不编译LaTeX,90%问题源于latexmk或xelatex未被系统识别;须在终端执行latexmk -v和xelatex --version验证,失败则重装对应发行版并正确配置PATH,装完重启Sublime;随后手动写死tex_path、禁用use_simple_detection、子文件首行加%!TEX root = main.tex、builder设为latexmk,并在builder_settings中显式指定-pdfxe和-synctex=1。

Sublime Text 本身不编译 LaTeX,所有“Ctrl+B 没反应”“PDF 空白”“点不了 SyncTeX”的问题,90% 都卡在 latexmk 或 xelatex 根本没被系统识别——不是插件坏了,是命令调不动。
怎么确认 latexmk 和 xelatex 真的可用
这是最常跳过的一步,但决定后续一切是否有效。打开终端(macOS/Linux)或 PowerShell(Windows),逐行执行:
-
latexmk -v—— 必须输出类似Latexmk, John Collins, 29 May 2023. Version 4.79 -
xelatex --version—— 中文论文必须用xelatex或lualatex;pdflatex默认不加载系统字体,硬上必出方块
任一报 command not found,说明:
- Windows:重装 MiKTeX,安装时务必勾选「Add MiKTeX to the system PATH」
- macOS:重装 MacTeX 后,确认
/Library/TeX/texbin已写入~/.zshrc,并执行source ~/.zshrc - Linux:补装
sudo apt install latexmk texlive-lang-chinese biber
装完必须重启 Sublime,否则它读不到新 PATH。
tex_path 必须手动写死,禁用 use_simple_detection
LaTeXTools 默认的自动路径探测在多 TeX 版本、自定义路径、含空格路径下 100% 失效。进 Preferences → Package Settings → LaTeXTools → Settings – User,粘贴最小必要配置(别留空字段):
- macOS + MacTeX:
"tex_path": "/Library/TeX/texbin" - Windows + MiKTeX 2023:
"tex_path": "C:\texlive\2023\bin\win32"(注意双反斜杠) - Linux + TeX Live:
"tex_path": "/usr/local/texlive/2023/bin/x86_64-linux"
务必检查并删除配置中任何 "use_simple_detection": true 字段——它会覆盖你手动设的 tex_path。同时加一行:"builder": "latexmk",确保走完整调度链(含 BibTeX/Biber)。
子文件第一行必须写 %!TEX root = main.tex
论文项目必然拆成 main.tex + ch1.tex + refs.bib 等。LaTeXTools 不会自动识别主文档。你在 ch1.tex 里按 Ctrl+B,默认只编译它自己,include{}、ibliography{} 全部失效。
- 在
ch1.tex、refs.bib等所有子文件顶部,**第一行且仅一行**写:%!TEX root = main.tex - 等号两边不能有空格;路径必须相对当前文件可解析(如
../main.tex也合法) - 整个项目路径不能含中文、空格或特殊字符;
latexmk极易因此静默失败
builder_settings 要显式指定 -pdfxe 和 -synctex=1
默认配置走 pdflatex,中文会炸、数学符号漏字、参考文献不生成——这不是字体问题,是引擎不支持 UTF-8 和系统字体。
- 在用户配置里补全:
"builder_settings": { "cmd": ["latexmk", "-pdfxe", "-synctex=1", "-interaction=nonstopmode", "-quiet", "$file"] } -
-pdfxe强制走 XeLaTeX,绕过pdflatex的字体限制 -
-synctex=1是反向搜索(PDF 点击跳回源码)的前提,漏了就永远点不动 - 现代中文论文基本都用
biber处理参考文献,配置里加"bibtex_tool": "biber",bibtex会乱码
复杂点在于:Sublime 启动方式影响它能否读到 shell 的 PATH。如果从 Dock 或桌面图标启动,它可能看不到你 ~/.zshrc 里写的路径——这时必须从终端执行 subl 启动,才能继承真实环境变量。


















