标签: 文档转换

  • 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