Sublime Text 配置 LaTeX 环境必须先验证 latexmk 可用、手动写死 tex_path 并禁用自动探测、子文件首行加 %!TEX root 注释、强制用 xelatex+ctex 处理中文、选用 Skim/SumatraPDF 等支持 SyncTeX 的预览器。

Sublime Text 能跑 LaTeX 论文,但默认装完插件就按 Ctrl+B 肯定失败——它不自带编译器,也不自动识别你系统里装的 latexmk 或 xelatex,所有报错(空白 PDF、command not found、SyncTeX 失效)都指向同一个事实:工具链断在了底层。
确认 latexmk 是否真可用,别信“我装过 TeX Live”
LaTeXTools 默认靠 latexmk 调度整个流程(含 BibTeX、多文件依赖、重编译判断),不是可选项,是刚需。
- 终端运行
latexmk -v,必须输出类似Latexmk, John Collins, 29 May 2023. Version 4.79的信息 - Windows 用户装 TeX Live 时务必勾选 “Install latexmk”;MiKTeX 用户得额外装 Perl 并手动配,不推荐
- macOS 用
brew install --cask mactex(完整版),BasicTeX不带latexmk,别省那 2GB 空间 - Linux 执行
sudo apt install latexmk,但得确认/usr/bin/latexmk存在且可执行(部分发行版需软链)
手动写死 tex_path,禁用 use_simple_detection
LaTeXTools 的自动路径探测在非标准安装(如 MacTeX 装在 /opt/texbin)、多 TeX 环境(同时有 TeX Live 和 MiKTeX)、或 Sublime 启动方式特殊(比如从 Dock 点开)时基本失效——它读不到你 shell 里设的 $PATH。
- 打开
Preferences → Package Settings → LaTeXTools → Settings – User - 粘贴完整配置,删掉所有注释和空行,尤其禁用
"use_simple_detection": true - macOS 示例:
"tex_path": "/Library/TeX/texbin" - Windows 示例:
"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"
中文论文必须用 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,二者字体机制冲突;选一个,彻底用到底 - 子文件首行加
%!TEX root = main.tex注释,否则input{chapter1}会找不到路径
PDF 预览器必须支持 SyncTeX,且配置要对上
正向(PDF 跳到源码)和反向(PDF 点击跳回 .tex 行号)失效,90% 是因为预览器不支持或没配准。
- Windows 强烈用
SumatraPDF:安装后在 LaTeXTools 设置里写"viewer": "sumatra" - macOS 必须换
Skim(Preview.app 不支持),并在 Skim 的Preferences → Sync里设 “PDF viewer” 为 Sublime Text,勾选 “Check for file changes” -
.synctex.gz和 PDF 必须在同一目录,文件名完全一致;别把 PDF 存到output/子目录里 - 确保编译命令带
-synctex=1参数(LaTeXTools 默认已加,但自定义 builder 容易漏)
最容易被忽略的是:Sublime 启动方式影响环境变量读取。从终端启动 subl 能读到 shell 的 $PATH,但从 Dock 或桌面图标点开就可能读不到——这意味着即使你在终端里能跑通 xelatex --version,Sublime 里仍可能找不到命令。











