跳到主内容

← 返回文章列表

制作 Pandoc reference.docx:从 Markdown 导出品牌化 Word

Markdown 管内容,交付却常绕不开 Word:字体、品牌色、页眉页脚都要对得上。Pandoc 用 reference.docx 解决这个问题——导出的每个样式都继承自它,模板质量决定成品观感。

本文讲清 reference.docx 的原理、制作步骤、最值得改的样式,以及改完就重转的测试闭环。命令行与浏览器思路一致,做好的模板通过 pandoc 的 --reference-doc 参数即可直接使用。

为什么 reference.docx 决定一切

Pandoc 生成 docx 时并不复刻 Markdown 的排版,而是新建文档并给每个元素挂命名样式:标题用 Heading 1,正文用 Body Text。样式长什么样由 Word 决定,定义正来自你提供的模板。

模板内容本身会被忽略,起作用的只有样式表和文档属性:页面尺寸、页边距、页眉页脚乃至默认语言。这种分离让体系很稳定——你只改模板一次,之后每次转换都自动继承。

做出第一个模板

第一条起点:让 Pandoc 打印自带模板——用 --print-default-data-file reference.docx 参数存成文件,再到 Word 里改样式。从 Pandoc 自己的文件起步,writer 用到的样式都已存在且命名正确。

第二条从真实输出入手:先把一篇有代表性的 Markdown 转成 docx,再打开结果直接改样式。所见即所得,你调整的正是读者将看到的那份结构,而不是抽象的示意样品。

最值得改的样式

先调标题阶梯:Heading 1 到 Heading 6 决定全篇基调,字体、字号、间距都从这里改起。Title、Subtitle、Author、Date 负责标题区,YAML front matter 写了字段就会落上去。First Paragraph 则处理标题后的第一段。

别漏掉 Compact,它作用在 Pandoc 输出的紧凑列表上;列表看着局促或松散,多半是它的问题。把这几处改到位,读者能感知的版面观感就在你的控制之内。

表格、脚注与题注

表格样式挂在 Table 上,控制边框、单元格内边距和表头底纹。Word 的表格样式编辑比较繁琐,这里花的时间可能超过标题,但收益明显:每张表格都继承一致的规则,而不是默认裸框。

脚注正文由 Footnote Text 控制,正文里的上标标记对应 Footnote Reference;图片与表格题注分别用 Image Caption 和 Table Caption。各调一次,长文档全篇一致。

代码块与公式

代码块落在 Source Code 样式里,行内代码用 Verbatim Char。给它等宽字体、浅色底纹和合适的行距,技术文档立刻显得讲究;开启语法高亮时颜色叠加在样式之上,底子不会乱。

公式走另一条路:Pandoc 把 TeX 记号转成 Word 原生的 OMML,落地是可编辑的真公式而非截图。外观跟随文档数学字体(默认 Cambria Math),公式不受段落样式体系管辖。

用上模板并闭环验证

命令行里这条链路只要一个参数:pandoc --reference-doc=custom-reference.docx input.md -o output.docx。本站的 Markdown 转 Word 目前使用 Pandoc 内置样式,Pro 模板选项接受的是 Pandoc 文本模板(用于 Markdown、HTML、RST、LaTeX 输出)——品牌化 docx 当前最稳的路径就是 reference.docx 加 CLI 参数。

测试要做成闭环:每次只改一两个样式,用同一样例重转并对比上次输出。样例要小而有代表性——两级标题、一张表、一个脚注、一段代码——几秒就能暴露问题,避免凭感觉盲改。

交给编辑与出版方

做好的模板小巧自包含,装着整套视觉规范:字体、页边距、页眉页脚、标题配色。把它与内容一起纳入版本库、命名清晰,任何同事都能从 Markdown 产出符合品牌规范的 Word,不必再碰样式面板。

编辑与出版方同样受益:文档带着真正的命名样式而来,而非直接格式化,下游模板可随时重映射或覆盖。一份 Markdown 加一个模板,就能同时服务网站、PDF 流程与 Word 交付。

继续阅读

把 Markdown 转成 Word