Sublime Text本身不编译LaTeX,90%问题源于latexmk或xelatex命令未被系统识别;须在终端运行which/where latexmk和xelatex --version验证可用性,确认PATH包含其路径,装完需重启Sublime;LaTeXTools配置必须手动写死tex_path、禁用use_simple_detection、子文件首行加%!TEX root = main.tex、PDF预览器须匹配Skim/SumatraPDF/zathura且启用SyncTeX。

Sublime Text 本身不编译 LaTeX,所有“编译失败”“空白 PDF”“点不动 SyncTeX”的问题,90% 都出在 latexmk 或 xelatex 命令根本没被系统识别——插件再配得花里胡哨,也调不动不存在的程序。
怎么确认 latexmk 和 xelatex 真的可用
别跳过这步。Sublime 不读你 shell 的 PATH,但终端能反映真实环境。打开终端(macOS/Linux)或 CMD/PowerShell(Windows),逐条运行:
-
which latexmk或where latexmk(Windows)——必须返回一个路径,比如/usr/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。装完必须重启 Sublime,否则它看不到新 PATH。
LaTeXTools 配置必须手动写死 tex_path,别信自动探测
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",确保走完整调度链,而不是只跑一次 pdflatex。
子文件第一行必须有 %!TEX root 注释
论文不可能只一个 main.tex。你在 ch1.tex 里按 Ctrl+B,LaTeXTools 默认把它当主文件编译——input{refs.bib} 找不到,include{appendix} 报错,synctex 生成位置错乱,全因这个注释缺失。
在每个子文件(.tex 或 .bib)的**最顶部第一行**,且**只能有一行**,写成:
%!TEX root = main.tex
注意:main.tex 是你实际主文件名,大小写和扩展名必须完全一致;路径不能含中文或空格;不要缩进,不要加其他字符。
PDF 同步失效?不是插件问题,是预览器没对上
正向搜索(Ctrl+Click 跳转到 PDF)和反向搜索(PDF 里 Cmd/Ctrl+Click 跳回源码)依赖预览器主动通信。系统自带的 Preview(macOS)和 Edge(Windows)**完全不支持反向搜索**。
- macOS:用
Skim,并进 Skim → Preferences → Sync,勾选 “Enable SyncTeX”,设 “PDF viewer” 为 Sublime Text,“Command” 填subl,“Arguments” 填--wait --line {line} "{file}" - Windows:用
SumatraPDF,确保安装路径不含空格,且subl.exe已加入系统 PATH - Linux:用
zathura+zathura-synctex插件,LaTeXTools 配置里写"viewer": "zathura"
最后检查:main.pdf 和 main.synctex.gz 必须在同一目录,文件名严格一致——哪怕多一个空格或大小写错误,同步就静默失效。











