LaTeX 编译报 command not found 是因 pdflatex 未加入系统 PATH;需按系统配置 PATH、选用 xelatex/lualatex 编译中文、用 latexmk 替代 pdflatex、换 Skim/SumatraPDF 支持 SyncTeX。

LaTeX 编译命令配错,pdflatex 一运行就报 command not found
Sublime 本身不带 LaTeX 编译能力,它只负责调用系统已安装的编译器。报这个错,说明 pdflatex 命令根本没进系统 PATH,不是插件没装好,而是底层环境缺位。
实操建议:
- Mac 用户先确认是否装了 MacTeX(推荐)或 BasicTeX;仅装 TeX Live 的话,要手动把
/usr/texbin或/Library/TeX/texbin加进 shell 的 PATH(注意:Sublime 默认不读取~/.zshrc,得用launchctl setenv PATH ...或改用 Terminal 启动 Sublime) - Windows 用户检查安装时是否勾选了「Add directory to PATH」;若没勾,手动把
C:\texlive\2023\bin\win32(年份按实际)加进系统环境变量 - Linux 用户常用
sudo tlmgr path add注册路径,别只靠 symlink - 验证方式:在终端里直接敲
which pdflatex或pdflatex --version,能返回结果才算真正可用
LaTeXTools 插件里 builder 设成 simple 还是 latexmk
simple 只跑一次 pdflatex,适合单文件、无引用、无目录的极简文档;latexmk 才是科研场景的刚需——它自动判断要不要跑 BibTeX、makeindex、多遍 pdflatex,生成正确交叉引用和目录。
实操建议:
- 务必装
latexmk:Mac 用sudo tlmgr install latexmk,Windows 安装时默认包含,Linux 一般随 TeX Live 一起装 - Sublime 的 LaTeXTools 设置里,把
builder改成latexmk,并确保latexmk_path指向正确(比如/usr/texbin/latexmk) - 如果用了
biblatex+biber,要在 LaTeXTools 设置里打开use_biber,否则参考文献永远空白 - 编译慢?加
-pdfdvi或-pdfps参数反而更慢,保持默认-pdf即可
中文支持总出乱码,\usepackage{ctex} 不生效
ctex 宏包本身没问题,但 Sublime 的文件编码、引擎选择、字体配置三者必须咬合。常见现象是编译成功但 PDF 里中文变方框,或直接报 fontspec error: "font-not-found"。
实操建议:
- 文件保存编码必须是 UTF-8(Sublime 右下角看,点开选「Save with Encoding → UTF-8」)
- 不要用
pdflatex编译含 ctex 的文档——它不原生支持 OpenType 字体;改用xelatex或lualatex,并在 LaTeXTools 设置中指定program为xelatex - ctex 文档类(如
\documentclass[UTF8]{ctexrep})比\usepackage{ctex}更稳妥,避免和其它宏包冲突 - Windows 上若提示「SimSun not found」,不是字体缺失,而是 xetex 找不到系统字体路径,临时方案:在导言区加
\setmainfont{SimSun}并确认该字体已安装到系统字体目录
反向搜索(PDF 点击跳转回 .tex)失效,synctex 总是找不到
反向搜索依赖 Synctex 文件(.synctex.gz)存在且时间戳新于 PDF,并且 PDF 查看器必须支持 SyncTeX 协议。Sublime 自带的 PDF 预览器不支持,这是最大误区。
实操建议:
- 确保编译命令带
-synctex=1(latexmk 默认开启,不用额外加) - PDF 查看器必须换:Mac 推荐 Skim(需在 Skim → Preferences → Sync 中勾选「Check for file changes」并设「Sublime Text」为编辑器);Windows 推荐 SumatraPDF(设置里指定 Sublime 路径,格式为
"C:\Program Files\Sublime Text\sublime_text.exe" "%f:%l") - Sublime 的 LaTeXTools 设置中,
forward_sync_command和inverse_search_command不用手动填,Skim/Sumatra 会自动注册回调 - 如果改了文件名或移动了项目路径,旧的
.synctex.gz会失效,删掉再编译一次
真正卡住人的,往往不是某个插件没装,而是 PATH、引擎、查看器这三环里有一环脱节。尤其 Windows 用户容易忽略系统 PATH 和 Sublime 启动方式的差异,Mac 用户常栽在 shell 配置没被 GUI 应用继承上。问题看起来零碎,但每一步都有确定解法,错一个就全链路断掉。










