export to pdf菜单灰色是因为sublime找不到pandoc,需确保其可执行、path正确且构建系统selector设为source.gfm;导出word/pdf时须处理空格路径、中文乱码及字体配置。

Export to PDF菜单灰色?先确认pandoc是否真能被Sublime调用
菜单灰掉不是插件没开,是Sublime根本找不到pandoc。终端里pandoc --version有输出 ≠ Sublime能调用它——GUI应用不继承shell的PATH,尤其macOS上brew install pandoc后路径常是/opt/homebrew/bin/pandoc,而Sublime默认只查/usr/bin。
- Windows用户:安装pandoc时务必勾选「Add to system PATH」;否则得在构建系统里写死全路径,比如
"cmd": ["C:\Program Files\pandoc\bin\pandoc.exe", ...] - macOS/Linux用户:检查
echo $PATH是否含pandoc所在目录;若用zsh/bash,GUI启动的Sublime可能没加载~/.zshrc,临时解法是在.sublime-build里填"path": "/opt/homebrew/bin:/usr/local/bin" - 别碰已废弃的
MarkdownPDF插件:它硬编码调用淘汰多年的phantomjs,2026年起完全失效
用自定义.sublime-build导出Word(.docx)要防路径崩和中文乱码
直接按Ctrl+B导出Word,最常卡在空格路径和字体缺失。pandoc命令里${file}含空格就崩,不加引号会静默失败;中文文档没指定参考模板或字体,生成的.docx里文字变方块或挤成一团。
- 基础命令必须带双引号:
"shell_cmd": "pandoc "${file}" -o "${file_path}/${file_base_name}.docx"" - 含中文/公式/引用时加参数:
--filter pandoc-citeproc -f markdown+tex_math_dollars - 想控制样式(标题字体、页边距等)?必须加
--reference-doc指向本地.docx模板文件,例如--reference-doc "/Users/me/template.docx" - Windows路径含空格时,反斜杠要转义:
C:\Program Files\...或改用正斜杠:C:/Program Files/...
导出PDF时中文乱码?关键在LaTeX引擎和字体声明
用pandoc导PDF,乱码不是Sublime问题,是LaTeX渲染链缺中文字体。lualatex/xelatex默认fallback到拉丁字体,-V mainfont=xxx这个参数漏了,或者系统根本没装对应字体,就会出方块。
- macOS/Linux推荐用
Noto Sans CJK SC:-V mainfont="Noto Sans CJK SC",先运行fc-list | grep "Noto"确认存在 - Windows可用
SimSun或Microsoft YaHei,但需确保字体已安装(控制面板→字体里能搜到) -
--pdf-engine=lualatex比xelatex对中文支持更稳,别省略 - 如果只想要轻量PDF且不依赖LaTeX,改用
wkhtmltopdf:它走HTML转PDF路线,无需字体配置,但CSS分页、flex布局支持弱
构建系统selector设错,Ctrl+B就触发不了
写了.sublime-build却按Ctrl+B没反应?大概率是selector没匹配当前文件语法。Sublime靠这个字段判断“该不该用这个构建系统”,设成source.md或text.html都无效,必须是source.gfm(GitHub Flavored Markdown)。
- 右键当前.md文件 → Set Syntax → 选
Markdown (GFM),这是硬性前提 - 构建系统里
"selector": "source.gfm"不能写成"source.markdown"或漏掉 - 如果同时用多个构建系统(如PDF/Word/HTML各一个),每个都得单独配
selector,避免冲突 - 调试技巧:在
.sublime-build里把"cmd"改成["echo", "test"],按Ctrl+B看底部状态栏是否输出test,快速验证是否触发











