Pandoc 文档转换
Pandoc 是一个开源的文档转换工具,可以实现多种文档格式之间的转换。
1. 简介
Pandoc 官网 首页列出了其所支持的所有格式,并分别标注了各个格式的输入和输出支持情况。
可以说,只要你的文档内容不是太复杂,并且较为规范,那么 Pandoc 就可以帮你实现各种格式之间的转换。例如常见的,你若使用 Markdown 编写了一篇文章,想要将其转换为 Latex 或 HTML 格式,并进一步转化为 PDF,或直接转换为 PDF,那么 Pandoc 就可以帮你实现这一转换。
但如果你使用的是 Word 文档,并且使用很多特殊功能和自定义格式,而不是使用规范的标题/正文/列表等格式,那么 Pandoc 可能就无法帮你实现转换。同样的,如果你使用的是 Latex 文档,并且使用了很多自定义的宏包和格式,那么 Pandoc 也可能无法帮你实现转换。(当然也可能是我不会用,哈哈,你也可以自行探索用法)
2. 使用场景
总之在我看来,Pandoc 最佳使用场景就是对 Markdown 文档的转化和导出。
因为 Markdown 本身是一种语法规范且特性几乎是各种格式的交集的格式,他只是渲染的时候格式不统一且很难保证样式的一致和美观,尤其是需要导出成 PDF 或其他分页格式的时候(因为导出渲染成 PDF 还是有很多非常好用的工具的,HTML/CSS 的可控性也更强,虽然要使其精致还是需要一些工作量)。
而 Pandoc 支持的导出格式中,Latex、Docx、Typst 都是样式和格式比较统一,且可控性较强的格式,不仅精致,而且可以很方便的进行修改和扩展,也有各种工具和模板可以使用。所以我个人认为,Pandoc 最适合用来将 Markdown 文档转换为这些格式,进而修改扩展,再生成导出 PDF。
3. 安装与简单使用
安装的话,可以按照操作系统直接跟着官网 Pandoc 安装指南 安装即可,由于现在各个操作系统的包管理器都比较成熟了,无论是 Windows 的 winget、Mac 的 brew 还是 Linux 的 apt、yum 等等,都可以很方便的安装。
唯一要注意的是,Pandoc 本身只支持各个标记语言的转换,如果需要将其转换为 PDF 等格式,还需要安装对应的工具,比如各个 Latex 发行版的编译器(如 pdfLatex、XeLatex)等。
在安装好后,可以使用以下命令进行简单的转换:
pandoc 会自动识别输入输出的格式,如果需要指定格式,可以使用 -f
和 -t
参数,如:
如果需要转换为 PDF,可以使用以下命令:
pandoc 会先将 Markdown 转换为 Latex,然后再将 Latex 转换为 PDF,默认使用 pdflatex 编译器,如果需要使用其他编译器,可以使用 --pdf-engine
参数,如:
所有转换进行时 pandoc 会调用默认的模板,可以前往 Pandoc Repo 查看,也可以根据这些模板来自定义模板使用。详细内容以及其他用法可以阅读文档或阅读以下相关文章。
4. 相关文章
关于 Markdown 转换为 Latex 和 PDF 相关的内容,可以参考我的另一篇文章:Markdown 快速生成 LaTeX 和 PDF。
关于 Typst 与 Markdown、Latex 相关的内容,可以参考这篇文章:Typst 介绍与使用。