Pandoc 入门指南:打造自动化、跨平台的文档生产力工具

Pandoc 被誉为文档界的“瑞士军刀”,是一个强大的通用文档转换工具(Universal Document Converter)。它不仅能实现多种标记语言与出版格式之间的高保真转换,更能通过过滤器(Filters)和模板(Templates)系统,构建出一套自动化、可扩展的文档生产流水线。

  • 多格式支持:涵盖 Markdown, LaTeX, HTML, Word (docx), EPUB, PDF 等数十种格式。
  • 专业级排版:集成 XeLaTeX / LuaLaTeX 引擎,支持复杂公式、中英混排及学术参考文献。
  • 高度可扩展:支持通过 Lua 或 Python 编写过滤器,对文档 AST(抽象语法树)进行深度定制。
  • 自动化友好:命令行操作,可轻松集成至 CI/CD 流程、GitHub Actions 或个人知识管理系统。

实际应用

  • 学术论文:Markdown / LaTeX 写作 → PDF / DOCX / HTML,自动管理文献引用。
  • 技术文档:统一 Markdown 源文件 → 多格式输出(HTML、PDF、EPUB);可集成 CI/CD 自动发布。
  • 电子书与报告:EPUB、PDF、HTML 输出,自定义模板实现品牌风格。
  • 知识管理:Obsidian、Joplin 等笔记 Markdown → 高质量 PDF 输出,便于归档和分享。

常用命令

Pandoc 的基本语法结构为:pandoc [输入文件] -o [输出文件] [参数]

1. 基础转换(Markdown 转 PDF/Word)

默认情况下,PDF 导出需要系统安装了 LaTeX 环境。

  • 转为 PDF
pandoc input.md -o output.pdf
  • 转为 Word (docx)
pandoc input.md -o output.docx

2. 中文 PDF 排版优化(重点)

直接导出中文 PDF 常会遇到乱码或字体问题,建议指定 xelatex 引擎并配置中文字体。

pandoc input.md -o output.pdf --pdf-engine=xelatex -V mainfont="Noto Sans SC" -V CJKmainfont="Noto Sans SC" -V geometry:margin=1in

参数说明--pdf-engine 指定引擎;-V 用于定义变量(字体、页边距等)。

3. 多文件合并处理

如果你正在写一本书或长篇报告,可以将多个 Markdown 文件合并导出一个文件。

pandoc chapter1.md chapter2.md chapter3.md -o full_book.pdf

4. 学术写作:参考文献与引用

配合 .bib 文献数据库文件,Pandoc 可以自动生成符合标准的引用格式。

pandoc input.md --bibliography=refs.bib --citeproc -o output.pdf

注意:较新版本的 Pandoc 使用 --citeproc 代替了旧版的 --filter pandoc-citeproc

5. 自定义模板转换

当你需要高度定制的画风(如公司固定报告格式)时,可以使用自定义模板。

pandoc input.md --template=mytemplate.tex -o output.pdf

6. 网页与独立文档

如果你想生成一个可以直接在浏览器打开的 HTML 文件,记得加上 --standalone 以包含 CSS 和头部信息。

  • 输出 HTML
pandoc input.md -t html -o output.html --standalone
  • 带元数据的 Word 导出
pandoc input.md -o output.docx --standalone

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注