sublime text 本身不支持直接导出 pdf,所有“导出 pdf”功能均依赖外部工具链;export to pdf 菜单项灰色是因为 pandoc/wkhtmltopdf 等底层工具未安装或路径配置错误,而非插件未启用。

Sublime Text 本身不能直接转 PDF,所有“导出 PDF”功能都依赖外部工具链;配错一个环节——比如 pandoc 没装、路径没写对、中文字体没指定——就会卡在菜单灰色、command not found 或生成乱码 PDF。
Export to PDF 菜单项为什么是灰色的?
这不是插件没启用,而是底层工具缺失或 Sublime 找不到它。MarkdownPreview 插件默认只做 HTML 预览,"enable_pdf_export": true 开关只是“允许调用”,不等于“自动装好 pandoc/wkhtmltopdf/WeasyPrint”。
- 终端运行
pandoc --version或wkhtmltopdf --version没输出?说明系统根本没装,别急着改 Sublime 配置 - Mac 用户特别注意:
brew install pandoc后实际路径常是/opt/homebrew/bin/pandoc,而 Sublime 默认只查/usr/bin,必须显式写进配置或 build system 的path字段 - 老版
MarkdownPDF插件已彻底失效:它硬编码调用淘汰多年的phantomjs,不兼容 Sublime Text 4,2026 年起完全无法运行
用 MarkdownPreview + wkhtmltopdf 最省事(Windows/macOS/Linux 通用)
这是目前平衡易用性、输出质量和配置成本的最佳路径,适合大多数技术文档、笔记类场景。
- 去
wkhtmltopdf.org/downloads.html下载对应系统版本,安装时务必勾选「Add to system PATH」(Windows)或确认/usr/local/bin已在 shell 的$PATH中(macOS/Linux) - Sublime 中打开
Preferences → Package Settings → Markdown Preview → Settings,填入:{ "enabled_parsers": ["markdown"], "enable_pdf_export": true, "pdf_converter": "wkhtmltopdf", "wkhtmltopdf_path": "" } -
"wkhtmltopdf_path"留空即可(插件会自动查 PATH);若填了绝对路径,请确保指向可执行文件,例如/usr/local/bin/wkhtmltopdf或C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe - 该方案不依赖 LaTeX,编译快、体积小,但对复杂 CSS(如 flex 布局、自定义分页)支持有限
用自定义 .sublime-build + pandoc 实现高质量排版
需要目录、页眉页脚、数学公式、精确中文字体控制?必须走 pandoc + lualatex 路线,但代价是安装大、编译慢、字体配置稍烦。
- 菜单 →
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 主要是带语法高亮的代码笔记(比如函数说明、API 示例),这条路最稳、最少踩坑,且无需命令行工具。
- 用
ExportHtml插件(不是ExportHtml2或SublimePDF)生成 HTML:按Ctrl+Shift+P→ 输入ExportHtml: Export→ 勾选Use current color scheme和full_page,**不勾选**wrap_lines - 生成的
.html用 Chrome 或 Edge 打开(Safari/Firefox 对@media print支持弱,高亮常变浅) -
Ctrl+P→ 选择「另存为 PDF」→ 关闭页眉页脚、勾选「背景图形」、缩放选「100%」 - 如果 PDF 中文成方块:手动编辑刚生成的
.html,找到<style></style>里的font-family,替换为font-family: 'Fira Code', 'Consolas', 'Microsoft YaHei', 'STHeiti', sans-serif;
真正麻烦的从来不是“怎么点菜单”,而是让 Sublime 和命令行工具之间说同一种话——路径对不对、字体存不存在、selector 匹配不匹配,任何一个细节松动,整个链路就断在灰色菜单上。











