sublime text 本身不编译 latex,所有“ctrl+b 没反应”“生成空白 pdf”“synctex 跳不到源码”问题,90% 源于 latexmk 不可用、tex_path 配置错误或引擎与中文宏包不匹配;须手动验证命令行中 latexmk -v 和 pdflatex --version 是否正常返回版本号,明确配置 tex_path(禁用 use_simple_detection),子文件首行添加 %!tex root = main.tex,中文项目必须用 xelatex + ctex 且顺序正确,并确保 pdf 与 .synctex.gz 同目录同名。

Sublime Text 本身不编译 LaTeX,所有“Ctrl+B 没反应”“生成空白 PDF”“点 SyncTeX 跳不到源码”问题,90% 是 latexmk 找不到、tex_path 写错、或引擎和中文宏包没对齐——不是插件坏了,是底层命令根本没跑起来。
验证 latexmk 和 pdflatex 是否真能被调用
这是最常跳过的一步,但直接决定后续是否白配。打开终端(macOS/Linux)或命令提示符(Windows),逐行执行:
-
latexmk -v—— 必须输出类似Latexmk, John Collins, 29 May 2023. Version 4.79;若报command not found,说明它没装或不在PATH -
pdflatex --version—— 同理,必须返回版本号;MacTeX 用户路径通常是/Library/TeX/texbin,但需确认该目录已加入 shell 的$PATH(运行echo $PATH查看) - Windows 用户装 MiKTeX 时,务必勾选「Add MiKTeX to the system PATH」;Linux 用户若用
apt install texlive-full,latexmk通常已含,但精简镜像(如某些 Docker)需补装:sudo apt install latexmk
手动写死 tex_path,禁用自动探测
use_simple_detection 会扫描 PATH 却忽略你实际 bin 目录的位置,尤其在多 TeX 环境、自定义路径、或 Sublime 从 Dock 启动时大概率失效。进 Preferences → Package Settings → LaTeXTools → Settings – User,粘贴完整配置(不要留空、不要依赖默认值):
- macOS(MacTeX):
"tex_path": "/Library/TeX/texbin" - Windows(TeX Live 2023):
"tex_path": "C:\texlive\2023\bin\win32"(注意双反斜杠) - Linux:
"tex_path": "/usr/local/texlive/2023/bin/x86_64-linux" - 多个路径用冒号(macOS/Linux)或分号(Windows)分隔,例如
"/usr/texbin:/opt/texbin" - 删掉配置里任何
"use_simple_detection": true字段,它会覆盖你手动设的tex_path
子文件必须加 %!TEX root = main.tex 注释
论文项目必然拆成 main.tex + ch1.tex + refs.bib 等,Sublime 不会自动识别主文件。在每个子文件(如 ch1.tex)的第一行,必须且只能有一行:
%!TEX root = main.tex
这行注释必须在文件最顶部,前面不能有空行或空格;否则 latexmk 编译时找不到主文档,include{} 或 input{} 会报错“File not found”。
中文编译必须用 xelatex + ctex,且顺序不能错
用默认 pdflatex 编译中文,轻则方块字、重则报 Package ctex Error: No available font found——这不是缺宏包,是引擎机制和字体查找路径不匹配。
- 导言区第一行必须是
documentclass[UTF8]{ctexrep}或类似,ctex宏包要放在最前,否则字体初始化失败 - 构建配置里强制走 XeLaTeX:
"builder_settings": { "cmd": ["latexmk", "-pdfxe", "-synctex=1", "-interaction=nonstopmode", "$file"] } - 别混用
ctex和fontspec,二者字体机制冲突;选一个,彻底用到底 - PDF 和
.synctex.gz必须在同一目录、同名;如果用了includeonly{}或多文件主文档,synctex只认主文件名,别把 PDF 存到output/子目录里
真正容易被忽略的是:Sublime 启动方式不同(比如从 Dock 点开),可能读不到你 shell 里设的 $PATH 和字体配置;所以 tex_path 一定要写死,%!TEX root 一定要加,synctex 参数一定要带,三者缺一不可。











