export to pdf菜单灰色的根本原因是sublime找不到pandoc或lualatex:需设语法为source.gfm、装markdownpreview插件、终端能运行pandoc --version和lualatex --version,且sublime环境变量中必须包含其绝对路径(如mac的/opt/homebrew/bin/pandoc),否则报command not found。

Sublime Text里Export to PDF菜单灰色,根本原因是pandoc没被正确识别
不是插件没装,是Sublime压根找不到pandoc或它依赖的lualatex。菜单灰掉的直接触发条件有四个:当前文件语法没设为source.gfm(右键 → Set Syntax → Markdown (GFM));MarkdownPreview插件已安装(别用早已废弃的MarkdownPDF);终端能跑通pandoc --version和lualatex --version;但Sublime自己的环境变量里没有这些命令的路径。
Mac用户尤其容易栽在这里:brew install pandoc后真实路径通常是/opt/homebrew/bin/pandoc,而Sublime默认只查/usr/bin;Windows用户若安装时没勾选「Add to system PATH」,也会卡在这一步。先在终端确认两个命令都有输出,再往下走。
必须用全路径写pandoc命令,不能只写命令名
自定义.sublime-build时,"cmd"字段里pandoc必须写绝对路径,比如"/opt/homebrew/bin/pandoc"(macOS)、"C:\Program Files\Pandoc\pandoc.exe"(Windows)或"/usr/bin/pandoc"(Linux)。只写"pandoc"会报command not found——Sublime不继承你的shell环境,它只按"path"字段里写的路径去搜。
-
"selector"必须是"source.gfm",否则按Ctrl+B不会触发构建 -
"path"字段要列全所有可能的bin目录,用英文冒号分隔,例如"/opt/homebrew/bin:/usr/local/bin:/usr/bin"(macOS/Linux)或"C:\Program Files\Pandoc;C:\Program Files\MiKTeX\miktex\bin\x64"(Windows) -
"working_dir"设为"$file_path",避免相对路径引用失败
--pdf-engine=lualatex和-V mainfont=缺一不可
中文乱码、段落挤在一起、数学公式渲染失败,90% 是因为没指定LaTeX引擎和中文字体。pandoc默认用pdflatex,但它不支持OpenType中文字体;必须显式加--pdf-engine=lualatex,再配-V mainfont="Noto Sans CJK SC"(macOS/Linux)或-V mainfont="SimSun"(Windows)。
字体必须系统已安装,否则pandoc会静默失败或报错Font "Noto Sans CJK SC" not found:
- macOS:打开“字体册”,搜索
Noto Sans CJK SC或Microsoft YaHei - Linux:运行
fc-list | grep "Noto"确认存在 - Windows:控制面板 → 字体,确认
SimSun或Microsoft YaHei已安装
导出PDF前务必验证LaTeX模板和元数据
学术排版需要目录、页眉页脚、参考文献,光靠基础命令不够。pandoc会用内置default.latex模板,但它的中文支持和页眉配置很弱。建议先导出默认模板并修改:
pandoc -D latex > default.latex
然后在.sublime-build的"cmd"里加--template=default.latex参数,并确保Markdown文档开头有YAML元数据块:
--- title: "论文标题" author: "作者姓名" date: "2026-07-23" mainfont: "Noto Sans CJK SC" ---
注意:mainfont字段在元数据里只是提示,真正起效的还是-V mainfont=参数;模板里如果没预留$mainfont$变量,改了也没用——所以优先靠-V传参,而不是改模板。
最易忽略的一点:LaTeX编译过程不报错不代表结果正确。生成的PDF里中文显示为方块、目录空白、页眉缺失,大概率是字体声明漏了或者lualatex路径没对上,而不是pandoc命令本身写错了。











