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
发表回复