sublime 找不到 pdflatex 或 xelatex 的根本原因是系统 path 未生效,需先在终端验证 which xelatex 和 latexmk -v 是否有输出,再手动配置 latextools 的 "builder": "latexmk"、"tex_path"(如 macos 填 "/library/tex/texbin")、"output_directory": "out",并删除"use_simple_detection": true;中文编译必须在主文件及子文件首行分别添加%!tex program = xelatex 和%!tex root = main.tex;pdf 同步需搭配 skim(macos)或 sumatrapdf(windows)并从终端启动 sublime。

Sublime 找不到 pdflatex 或 xelatex?先看终端能不能跑
不是插件坏了,是 Sublime 根本没看见你的 LaTeX 引擎。LaTeXTools 不打包任何编译器,它只调用系统 PATH 里的 pdflatex、xelatex 或 latexmk。
必须手动验证:
- macOS/Linux:打开终端,运行
which xelatex和latexmk -v,两个都得有输出;若为空,说明路径没进 shell 环境(比如 macOS 的~/.zshrc没加/Library/TeX/texbin) - Windows:用 PowerShell 运行
where xelatex,若报错,重装 MiKTeX 时务必勾选「Add MiKTeX to the system PATH」 - Linux 用户常漏装
latexmk:运行sudo apt install latexmk补上
验证完后,**一定要从终端启动 Sublime**(比如 macOS 输入 subl),否则 GUI 双击启动不继承 shell PATH。
LaTeXTools 配置里最该改的三个字段
打开 Preferences → Package Settings → LaTeXTools → Settings – User,直接覆盖默认配置。别信“自动探测”,它在多版本、空格路径、自定义安装下 100% 失效。
关键字段必须明确写死:
-
"builder":设为"latexmk"(不是"simple"或"traditional"),它能自动调度biber/bibtex和多次编译,适合学术论文 -
"tex_path":填编译器所在完整 bin 目录,例如:
macOS:"/Library/TeX/texbin"
Windows:"C:\Program Files\MiKTeX\miktex\bin\x64"(注意双反斜杠)
Linux:"/usr/local/texlive/2023/bin/x86_64-linux" -
"output_directory":设为"out",避免生成的.aux、.log、.bbl文件污染源码目录
删掉配置里所有 "use_simple_detection": true——它会无视你手动写的 tex_path。
中文论文编译失败?八成是引擎和注释没配对
pdflatex 原生不支持 UTF-8 中文,硬编译只会报 Unicode char u8BF7 或字体错误。这不是编码或字体包问题,是引擎选错了。
两步必须同时做:
- 主文件(如
main.tex)第一行且仅一行写:%!TEX program = xelatex(注意空格、大小写、无空行) - 所有子文件(
ch1.tex、refs.bib等)顶部第一行也写同一行:%!TEX root = main.tex
LaTeXTools 依赖这两行注释识别主文档和选用引擎。缺一不可——否则你在子文件里按 Ctrl+B,插件就拿它当独立文档编译,include{} 和参考文献全失效。
PDF 不刷新、点击跳不回源码?查看器和 SyncTeX 要咬合
Sublime 不“监听”PDF 文件变化,而是靠编译完成时向 PDF 查看器发 reload 指令。指令生效取决于查看器是否支持协议,以及是否正确关联。
对应平台设置:
- macOS + Skim:Skim 的
Preferences → Sync里必须勾选"Check for file changes",且 Sublime 配置中"viewer"设为"skim" - Windows + SumatraPDF:确保 SumatraPDF 已在 PATH,或配置
"sumatra_pdf_path";执行命令注册反向搜索:SumatraPDF.exe -inverse-search ""C:Program FilesSublime Text 3sublime_text.exe" "%f:%l"" - 主文件名不能含空格、中文、特殊符号(如
实验报告_v1.tex会失败,改用report_v1.tex)
最容易被忽略的是:PDF 查看器必须处于前台运行状态,且文件已打开——否则 reload 指令直接丢弃,不会报错,只会“静默失败”。











