export to pdf 菜单项灰色是因为当前文件语法未设为 source.gfm 或 sublime 找不到 pandoc/lualatex;mac/windows 用户需确认 path 和字体安装,并配置正确路径的 .sublime-build 文件。

Export to PDF 菜单项为什么总是灰色?
不是插件没装,是 Sublime 根本没找到 pandoc 或它依赖的 lualatex。菜单灰掉的直接原因是:当前文件语法没设为 source.gfm(右键 → Set Syntax → Markdown (GFM)),或者终端能跑 pandoc --version 但 Sublime 的环境里找不到它。
Mac 用户尤其容易栽在这里:brew install pandoc 后真实路径通常是 /opt/homebrew/bin/pandoc,而 Sublime 默认只查 /usr/bin;Windows 用户若安装时没勾选「Add to system PATH」,也会卡在这一步。
- 先在终端确认:
pandoc --version和lualatex --version都有输出才算过关 - 再检查字体:运行
fc-list | grep "Noto"(Linux/macOS)或打开字体册(macOS)确认Noto Sans CJK SC存在 - 别碰已废弃的
MarkdownPDF插件——它硬编码调用淘汰多年的phantomjs,2026 年起完全无法运行
怎么配一个真正能用的 .sublime-build?
比改 MarkdownPreview 插件设置更稳、更透明。关键字段必须对齐实际环境,少一个就导出失败。
菜单 → Tools → Build System → New Build System…,粘贴以下内容并保存为 Markdown2PDF.sublime-build:
{
"cmd": ["/opt/homebrew/bin/pandoc", "-s", "--pdf-engine=lualatex", "-V", "mainfont=Noto Sans CJK SC", "-o", "$file_base_name.pdf", "$file"],
"selector": "source.gfm",
"path": "/opt/homebrew/bin:/usr/local/bin:/usr/bin",
"working_dir": "$file_path"
}
-
cmd中的pandoc必须写全路径,不能只写"pandoc"—— 否则报command not found -
selector必须是source.gfm,否则按Ctrl+B不触发构建 -
path要列出所有可能的 bin 目录,用英文冒号分隔;不确定就全写上,避免漏掉 -
-V mainfont=...参数不能省,中文乱码、段落挤在一起,90% 是这里没填
导出 PDF 中文乱码或排版崩了怎么办?
这不是 Sublime 的问题,是 pandoc 渲染链路缺字体声明或 LaTeX 引擎配置不匹配。
如果你用的是 lualatex(推荐),必须显式指定中文字体;如果系统没装对应字体,pandoc 可能静默失败或报错 Font "Noto Sans CJK SC" not found。
- macOS/Linux 常用
Noto Sans CJK SC,Windows 可换为SimSun或Microsoft YaHei - 若需目录、页眉页脚、数学公式,
--toc和-V header-includes=...这类参数得加在cmd数组里,不能丢 - 避免用
xelatex引擎处理中文长文档——它对复杂表格和浮动体支持不稳定,lualatex更健壮
要不要用 MarkdownPreview 插件自带的 Export to PDF?
可以开,但别依赖它“自动好用”。它的 enable_pdf_export 开关只是“允许调用”,不等于“自动装好 pandoc / wkhtmltopdf / WeasyPrint”。
如果你只导技术笔记、会议纪要这类简单文档,pdf_converter 设为 wkhtmltopdf 确实更快、体积小;但只要涉及目录、公式、精确分页,就必须走 pandoc + lualatex 路线——而这条路,.sublime-build 比插件配置更可控、更易调试。
真正容易被忽略的是:每次改完 .sublime-build 或系统 PATH,都得重启 Sublime 才能生效;字体没装全、引擎报错时,pandoc 日志不会弹窗,得看 Sublime 控制台(Ctrl+`)里的原始输出。











