Sublime Text 本身不处理排版,所有“自动化论文排版”都靠 Pandoc 驱动;没装对 Pandoc + LaTeX 引擎 + 中文字体,点 Ctrl+B 只会静默失败或生成乱码 PDF。

Sublime Text 本身不处理排版,所有“自动化论文排版”都靠 Pandoc 驱动;没装对 Pandoc + LaTeX 引擎 + 中文字体,点 Ctrl+B 只会静默失败或生成乱码 PDF。
为什么 Ctrl+B 导出 PDF 后是空白页或方块字
这不是 Sublime 抽风,而是 Pandoc 渲染链断在了某一层:
-
pandoc --version在终端能跑,但 Sublime 构建系统里报command not found—— macOS 上 brew 安装的 pandoc 默认路径是/opt/homebrew/bin/pandoc,而 Sublime 不读 shell profile,必须显式写死路径或补全path字段 - 用了
--pdf-engine=lualatex却没加-V mainfont="Noto Sans CJK SC"—— lualatex 默认不认中文字体,中文直接 fallback 成方块 - 系统里压根没装 Noto Sans CJK SC(macOS/Linux)或 SimSun(Windows),
fc-list | grep "Noto"查不到,Pandoc 就会静默跳过字体设置,输出默认拉丁字体 - 构建系统里漏了
-s(standalone)参数,生成的是 fragment HTML,不是完整 PDF 文档结构,结果就是空白页
构建系统必须填对的三个字段
新建 Tools → Build System → New Build System…,保存为 Markdown2PDF.sublime-build,内容里这三项不能错:
-
"cmd":必须用 pandoc 全路径,比如"/opt/homebrew/bin/pandoc";只写"pandoc"就会找不到命令 -
"selector":必须是"source.gfm";设成"text.html.markdown"或留空,按 Ctrl+B 根本不触发构建 -
"path":要列全 pandoc 和 latex 引擎所在目录,多个路径用英文冒号分隔,例如"/opt/homebrew/bin:/usr/local/texlive/2025/bin/universal-darwin";少一个,lualatex就调不动
导出 Word 时参考文献和公式消失
纯 Markdown 文件不含元数据和引用逻辑,Pandoc 不知道该插哪儿、怎么格式化:
- 没加
--filter pandoc-citeproc参数,@author2024这类 citekey 就原样输出,不会变成上标数字 - 没指定
bibliography: refs.bibYAML 头,pandoc-citeproc就没数据可查,参考文献列表为空 - 数学公式用
$$...$$写法,但没加-f markdown+tex_math_dollars,Pandoc 默认当普通文本处理,Word 里就只剩两个美元符号 - Word 模板没指定,Pandoc 用默认样式,标题层级塌陷、编号丢失;得加
--reference-doc=template.docx,且模板里标题样式名必须匹配(如 “Heading 1”)
YAML 元数据头怎么写才真正生效
不是贴上去就行,Pandoc 对 YAML 块位置和语法极其敏感:
- 必须放在文件最开头,且前后各空一行;顶格写或前面有空格,整个 YAML 块会被忽略
- 作者多个时用短横线加空格:
author:下一行写- 张伟明,不能写成author: 张伟明, Maria Gonzalez - 日期必须是 ISO 格式:
date: "2026-06-30",写成2026/06/30或Jun 30, 2026,Pandoc 不识别 - abstract 段落要用
|符号加缩进,否则换行丢失;关键词数组写成keywords: [量子计算, 纠缠态],不能带中文顿号
真正卡住人的从来不是语法,是 pandoc 调用链里任意一环的路径、字体、权限或空格——尤其是 ${file} 里含中文或空格时没加双引号,或者 template.docx 文件权限被锁死,这些细节不爆错、不报红,只默默产出废文件。


















