sublime text 的 latex 编译依赖系统工具链;必须验证 latexmk 和 xelatex 可执行,手动配置 tex_path、启用 latexmk 与 -pdfxe 引擎,子文件首行声明 %!tex root,pdf 查看器需支持 synctex 并正确绑定。

Sublime Text 本身不渲染公式、不编译 LaTeX,也不提供“实时预览”——它只调用你系统里装好的 latexmk 和 xelatex。所谓“专注公式推导”,前提是底层工具链跑通;否则你连 PDF 都打不开,更别说跳回源码行了。
验证 latexmk 和 xelatex 能否真被调用
这是所有问题的起点。Sublime 不自带编译器,插件只是外壳,命令失败就等于整个流程瘫痪。
- 关掉 Sublime,打开终端(macOS/Linux)或 PowerShell(Windows),逐行执行:
latexmk -v和xelatex --version - 两者都必须输出版本号;若报
command not found,说明不是插件没配好,而是系统根本没装或 PATH 没生效 - macOS 用户装 MacTeX 后,确认
/Library/TeX/texbin已写入~/.zshrc(不是.bash_profile),并执行source ~/.zshrc - Windows 用户重装 MiKTeX 时,安装向导里必须勾选「Add MiKTeX to the system PATH」
- Linux 用户别只装
texlive-latex-recommended,补上sudo apt install latexmk - 装完必须重启 Sublime Text——它启动时读一次 PATH,不重启就看不到新环境
LaTeXTools 配置必须写死 tex_path 并禁用自动探测
默认的 use_simple_detection 在多 TeX 版本、空格路径、非标准安装位置下 100% 失效。别信“自动识别”,手动填准才是唯一可靠路径。
- 进 Preferences → Package Settings → LaTeXTools → Settings – User
- 粘贴完整配置(按系统改,不留空字段):
macOS:"tex_path": "/Library/TeX/texbin"
Windows:"tex_path": "C:\texlive\2023\binwin32"(双反斜杠)
Linux:"tex_path": "/usr/local/texlive/2023/bin/x86_64-linux" - 删掉配置里任何
"use_simple_detection": true字段——它会直接覆盖你手动设的tex_path - 同时指定
"builder": "latexmk",别用simple;后者不调度biber或BibTeX,参考文献永远为空
子文件第一行必须写 %!TEX root = main.tex
你在 ch1.tex 里按 Ctrl+B,默认就被当主文档编译——include{appendix} 报错、ibliography{refs} 找不到、SyncTeX 行号全错,根源就在这行漏写。
- 所有
.tex子文件(含refs.bib对应的main.tex)顶部第一行且仅一行,写:%!TEX root = main.tex - 文件名大小写敏感,
main.TEX或MAIN.TEX都不行;路径不能含空格或中文 - 如果主文档在子目录(如
src/main.tex),子文件里就得写%!TEX root = src/main.tex - 这行必须是文件最开头,前面不能有空行、注释或 BOM
builder_settings 必须含 -pdfxe 和 -synctex=1
默认配置走 pdflatex,中文直接变方块、数学符号缺字、参考文献不生成——这不是字体问题,是引擎根本不支持 UTF-8 和系统字体。
- 在
Settings – User里,找到"builder": "latexmk"这行,在它下方加:"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{unsrtnat} -
$file是当前文件路径,确保.synctex.gz和 PDF 同目录、同名;别把输出塞进output/子目录
最常被忽略的是 PDF 查看器绑定:macOS 必须用 Skim(Preview.app 不支持 SyncTeX),Windows 必须用 SumatraPDF,且都要在设置里显式指向 Sublime Text。路径对了、命令对了、%!TEX root 也写了,但跳转还是失效——八成卡在这一步。











