Sublime Text导出Markdown为PDF需依赖外部工具链,Export to PDF菜单灰色因phantomjs已淘汰或pandoc/WeasyPrint未安装及路径未配置;推荐用MarkdownPreview插件+自定义.sublime-build,指定lualatex引擎、中文字体(如Noto Sans CJK SC)和正确path路径,并验证pandoc --version与字体存在性。

Sublime Text 本身不能直接把 Markdown 转成 PDF,所有“导出 PDF”功能都依赖外部工具链,配置错一个环节就会卡在 command not found 或生成乱码 PDF。
为什么 MarkdownPreview 的 Export to PDF 菜单项是灰色的?
这不是插件没装好,而是底层工具缺失或路径没对上。
-
Export to PDF功能默认调用的是phantomjs(已淘汰)或pandoc+LaTeX,但 Sublime 不自带这些——你得自己装,并让插件找得到 - 运行
pandoc --version或weasyprint --version没输出?说明系统根本没装,先别动 Sublime 配置 - Mac 用户尤其注意:
brew install pandoc后,pandoc 实际路径常是/opt/homebrew/bin/pandoc,而 Sublime 默认只读/usr/bin,必须显式写进 build system 的path字段 - 别用老版
MarkdownPDF插件:它硬编码调用phantomjs,2026 年已完全失效,且不兼容 Sublime Text 4
怎么配一个真正能用的 Markdown → PDF 构建系统?
推荐用 MarkdownPreview 插件 + 自定义 .sublime-build,比改插件设置更稳、更透明。
- 先装好
MarkdownPreview(Package Control → Install Package → 输入MarkdownPreview) - 菜单 →
Tools → Build System → New Build System…,粘贴以下内容并保存为Markdown2PDF.sublime-build:
{
"cmd": ["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"
}
-
selector必须是source.gfm(GitHub Flavored Markdown),否则 .md 文件里点Ctrl+B不触发 -
mainfont参数不能省:中文 PDF 乱码、缺字、段落挤在一起,90% 是因为没指定中文字体;Noto Sans CJK SC是 macOS/Linux 常见字体,Windows 可换为SimSun或Microsoft YaHei -
path列出你本地 pandoc 所在的所有可能路径,用英文冒号分隔;不确定就全写上,避免漏掉
导出 HTML 再打印为 PDF 更简单,适合代码类文档
如果你只是想把带语法高亮的 Markdown(比如含代码块的笔记)转 PDF,用 ExportHtml 插件 + Chrome 打印是最少踩坑的路径。
- 安装
ExportHtml插件(Package Control 安装),它能把当前 Sublime 编辑器视图原样转成 HTML,保留主题色、行号、缩进、折叠状态 - 右键编辑区 →
ExportHtml: Export to HTML,生成的.html默认在系统临时目录,用 Chrome 打开它 -
Ctrl+P→ 勾选Background graphics→ 目标选Save as PDF;Safari 渲染 CSS 不稳定,容易高亮错位,必须用 Chrome 或 Edge - 如果代码行太长导致横向溢出,在导出的 HTML 文件里找到
<style></style>块,加一行:pre { white-space: pre-wrap; }
最易被忽略的点:PDF 导出失败时,第一反应不该是查 Sublime 设置,而是打开终端跑 pandoc --version 和 fc-list | grep -i "noto\|sim\|yahei"——工具链和字体这两关不过,后面所有配置都是空转。



















