ctrl+b报错command not found: latexmk,本质是sublime无法调用系统命令,须先在终端验证latexmk -v和xelatex --version是否成功,再手动配置tex_path、禁用use_simple_detection、子文件首行声明%!tex root = main.tex,并选用支持synctex的pdf查看器。

Ctrl+B 报错 command not found: latexmk,先验证终端是否真能调用
这不是插件没装好,是 Sublime 根本找不到 latexmk 或 xelatex。跳过这步,后面所有配置都白搭。
打开终端(macOS/Linux)或 PowerShell(Windows),逐行执行:
-
latexmk -v——必须输出版本号,比如Latexmk, John Collins, 29 May 2023. Version 4.79 -
xelatex --version——必须返回引擎版本,不是command not found -
which latexmk(macOS/Linux)或where latexmk(Windows)——确认路径真实存在
任一失败说明:macOS 没装 MacTeX 或 /Library/TeX/texbin 没写进 ~/.zshrc;Windows MiKTeX 安装时没勾选「Add MiKTeX to the system PATH」;Linux 缺 latexmk 包,得补装:sudo apt install latexmk。装完必须重启 Sublime Text,否则它读不到新 $PATH。
LaTeXTools 设置里必须手动写死 tex_path,禁用 use_simple_detection
LaTeXTools 的自动路径探测在多 TeX 版本、路径含空格、MacTeX 默认安装位置等场景下 100% 失效。别信默认值,也别留空字段。
进 Preferences → Package Settings → LaTeXTools → Settings – User,粘贴最小必要配置(删掉所有注释和空行):
- macOS(MacTeX):
"tex_path": "/Library/TeX/texbin" - Windows(MiKTeX 2023):
"tex_path": "C:\texlive\2023\bin\win32"(注意双反斜杠) - Linux(TeX Live):
"tex_path": "/usr/local/texlive/2023/bin/x86_64-linux"
同时确保配置中包含:"builder": "latexmk",并彻底删除任何 "use_simple_detection": true 字段——它会覆盖你手动设的 tex_path。
子文件第一行必须加 %!TEX root = main.tex
Sublime 不靠文件名判断主文档,而是靠这行声明。不加这句,Ctrl+B 编译子文件时,latexmk 会找不到主文件,BibTeX/Biber 不触发,中文宏包加载失败,SyncTeX 跳转失效。
这个声明必须放在子文件(如 chapter1.tex)的**第一行**,且不能有任何空格或注释前置。例如:
%!TEX root = thesis.tex
section{引言}
...
如果主文件名改了,所有子文件这行也得同步改。别指望插件自动识别或推导。
PDF 查看器必须支持 SyncTeX,且反向搜索命令要匹配 subl
Preview.app(macOS)、Edge(Windows)、Document Viewer(Linux)都不支持反向搜索。点 PDF 行号跳不回源码,99% 是查看器不兼容。
推荐方案:
- macOS:用
Skim,在Preferences → Sync中选Sublime Textpreset,确保Command是subl(不是open -a Sublime Text) - Windows:用
SumatraPDF,运行命令配置反向搜索:SumatraPDF.exe -inverse-search "subl.exe -n -w --line %l "%f"",前提是subl.exe已加入系统 PATH - Linux:用
zathura+zathura-synctex插件,LaTeXTools 配置中设"viewer": "zathura"
最关键的是:必须从终端启动 Sublime(subl 命令),而不是桌面图标——否则 subl 命令不可用,反向搜索直接失效。











