pdflatex生成空白PDF主因是编译器不匹配或路径错误;应改用lualatex/xelatex,配置LaTeXTools的builder路径,并确保PATH和字体环境一致。

LaTeX 编译命令配错,pdflatex 生成空白 PDF 怎么办
Sublime Text 本身不编译 LaTeX,靠插件调外部命令;常见问题是路径或命令写死成 pdflatex,但系统里实际是 lualatex 或 xelatex(尤其处理中文时)。Mac 用户还常因 MacTeX 装在非标准路径,导致 Sublime 找不到可执行文件。
- 检查终端是否能直接运行
lualatex --version,不能就先配好$PATH(别只改~/.bash_profile,Sublime 启动方式不同,可能读不到) - 用
LaTeXTools插件时,在Preferences → Package Settings → LaTeXTools → Settings里改"builder": "traditional",再进"traditional_builder_path"指向完整路径,比如/usr/local/texlive/2023/bin/universal-darwin/lualatex - 如果用中文,别硬套
pdflatex+ctex,容易缺字体报错;直接切到lualatex,并在导言区加\usepackage{fontspec}和中文字体设置
反向搜索(PDF 跳回源码)点不动,synctex 总失效
这是 LaTeXTools 最常被卡住的环节:PDF 点击没反应,或者跳转到错误行。根本原因不是插件坏了,而是 synctex 文件没生成、或生成位置和 PDF 不匹配。
- 确保编译命令带
-synctex=1参数(LaTeXTools默认已加,但自定义 builder 容易漏) - PDF 和
.synctex.gz必须在**同一目录**,且文件名完全一致;如果用了\includeonly{}或多文件主文档,synctex只认主文件名,别把 PDF 存到output/子目录里 - Mac 上预览器(Preview.app)不支持反向搜索,必须换
Skim,并在 Skim 的Preferences → Sync里设 “PDF viewer” 为Sublime Text,同时勾选 “Check for file changes”
中文编译报错 ! Package ctex Error: No available font found.
这个错不是缺宏包,是字体链断了。CTEX 默认找系统中文字体,但 Linux/macOS 不像 Windows 那样自带 SimSun,而 Sublime 调用命令行环境时,又不一定加载你的 shell 字体配置。
- 最稳解法:不用
ctex自动探测,改用fontspec显式指定字体路径,例如:\setmainfont{Noto Serif CJK SC}(需提前装好该字体) - Linux 用户注意:不要依赖
fc-list :lang=zh输出结果,Sublime 启动时可能没加载 Fontconfig 缓存,建议把字体文件复制到项目目录下,用相对路径引用 - 避免在导言区混用
ctex和fontspec,二者字体机制冲突;选一个,彻底用到底
多文件项目编译失败,\input{chapter1} 找不到文件
LaTeXTools 默认只把当前打开文件当主文档,\input{} 或 \include{} 的路径是相对于**主文档所在目录**,不是当前编辑的子文件。很多人把子文件单独打开、按 Ctrl+B 编译,自然找不到。
- 必须手动指定主文档:右键子文件 →
LaTeXTools: Set as Master File,或在子文件首行加注释% !TEX root = ../main.tex - 路径一律用 Unix 风格斜杠
/,Windows 也别用\,否则latexmk会解析失败 - 如果子文件在子目录(如
chapters/ch1.tex),主文档里写\input{chapters/ch1},但chapters/下不能有同名ch1.aux——aux 文件默认生成在主文档目录,冲突会导致编译中断
真正卡住人的,从来不是怎么配路径,而是 Sublime 启动时继承的环境变量和你在终端里看到的不一致。特别是 PATH、FONTCONFIG_PATH、HOME 这几个,差一点,lualatex 就找不到字体,synctex 就打不开跳转。建议先在终端里模拟 Sublime 的启动方式:open -n -a "Sublime Text" --args,再测试命令是否通。










