Linux: Pandoc文件转换器

pandoc https://pandoc.org/

Pandoc 是一个用于从一种标记格式转换为另一种标记格式的Haskell 库,以及一个使用该库的命令行工具。

pandoc支持多少文件格式的相互转换,基本满足日常需求。下面介绍简单的使用。

.org 文件可以很轻松的通过 org-md-export-to-markdown 生成 .md 文件。 .md 文件可以借助 Pandoc 生成 .org

#常规选项
-f <format>, -r <format>   #指定输入文件格式,默认为 Markdown;
-t <format>, -w <format>   #指定输出文件格式,默认为 HTML;
-o <file>                  #指定输出文件,该项缺省时,将输出到标准输出;

--verbose                  #开启 Verbose 模式,用于 Debug;
--list-input-formats       #列出支持的输入格式;
--list-output-formats      #列出支持的输出格式;
--list-extensions          #列出支持的 Markdown 扩展方案;
--list-highlight-languages #列出支持代码高亮的编程语言;
--list-highlight-styles    #列出支持的代码高亮主题;
-v, --version              #显示程序的版本号;
-h, --help                 #显示程序的帮助信息。
--toc                      #生成目录

#阅读器选项
--extract-media=DIR       #将源文档图像和其他媒体文件提取到DIR/media目录中,并调整文档中的图像引用。

#常规作家选项
--template=FILE            #使用自定义模板文件 (对 LaTeX, HTML, DOCX 等格式尤其有用)。
-s --standalone            #生成带有适当页眉和页脚的输出(HTML,LaTeX,TEI 或 RTF);
--wrap=auto| none|preserve #如何换行。auto(默认值),指定列宽 --columns(默认72)。none:完全不换行。preserve:保留源文档中的换行
--toc / --table-of-contents#生成目录 (适用于 HTML, LaTeX, EPUB, DOCX 等)。
--toc-depth=NUMBER         #设置目录包含的标题级别深度 (例如 --toc-depth=3 包含 H1-H3)。
-V KEY[=VAL]               #设置模板变量 (对 LaTeX 模板非常有用,如设置纸张大小 papersize, 字体大小 fontsize)
--highlight-style <style>  #设置代码高亮主题,默认为 pygments;

#影响特定作者的选项
--reference-links[=true|false] #默认情况下使用内联链接
--pdf-engine=PROGRAM       #指定生成 PDF 的引擎 (常用 pdflatex, xelatex, lualatex, wkhtmltopdf, weasyprint)
--reference-doc=文件|网址  #使用指定的文件作为生成 docx 或 ODT 文件的样式参考
-c 网址​--css=​              #链接到 CSS 样式表

#引文渲染
-C,--citeproc              #处理引用 (需要 BibTeX 或 CSL JSON 格式的参考文献数据库文件,并通过 --bibliography 指定)。
--bibliography=FILE        #指定参考文献数据库文件 (.bib 或 .json)。

#HTML 中的数学渲染
--mathml / --webtex / --mathjax / --katex: 指定数学公式的渲染方式 (适用于 HTML 输出)

范例:

#ORG, HTML 互转
pandoc -f html -t org -o h.org h.html     # html 转 org
pandoc -f org -t html -o h.html h.org     # org 转 html

#ORG, Markdown互转
pandoc -f markdown -t org -o a.org a.md   # markdown 转 org
pandoc -f org -t markdown -o a.md a.org   # org 转 markdown

#Markdown, HTML 互转
pandoc -f html -t markdown a.html -o a.md #
pandoc a.md -s -o a.html --css=styles.css --toc # markdown 转 html
#将 article.md 转为完整的 HTML 文件 article.html (-s)。链接外部 CSS 样式表 styles.css。生成目录。

#Markdown, Word (DOCX)互转
pandoc input.md -o output.docx --reference-doc=custom_template.docx --toc # markdown 转 word
#使用 custom_template.docx 文件中定义的样式、页眉页脚等。生成目录 (--toc)。

pandoc -f docx -t gfm --wrap=none --reference-links --extract-media=./  a.docx  -o b.md # word 转 markdown
pandoc -f docx -t markdown_mmd --extract-media=./  a.docx  -o d.md # word 转 markdown
#--extract-media=./  #保存图像,放到media文件夹中
#Github 的默认格式使用 gfm,它也支持表格
#MultiMarkdown 支持元数据、目录、脚注、数学、表格和 YAML

#多个输入文件合并转换:
pandoc intro.md chap1.md chap2.md refs.md -o book.docx #按顺序合并后转换为单个 Word 文档

#Markdown, PDF互转
pandoc paper.md --citeproc --bibliography=references.bib -o paper.pdf --pdf-engine=pdflatex # markdown 转 pdf
启用引用处理 (--citeproc)。指定参考文献数据库文件 references.bib (--bibliography)。

pandoc report.md -o report.pdf --pdf-engine=xelatex -V mainfont="Microsoft YaHei" -V geometry:margin=1in # pdf 转 markdown
使用 xelatex 引擎 (支持 Unicode/中文字体更好)。
设置 mainfont 变量为 "Microsoft YaHei" (确保系统有此字体)。
使用 geometry LaTeX 包变量设置页边距为 1 英寸。


#Markdown 转 Reveal.js 幻灯片
pandoc slides.md -t revealjs -s -o presentation.html -V revealjs-url=https://revealjs.com # markdown 转 revealjs 幻灯片
设置 revealjs-url 变量指向 Reveal.js 库的位置。

#Markdown 转 PowerPoint (PPTX):
pandoc p.md -o presentation.pptx  # markdown 转 PPTX
#Pandoc 会自动处理标题级别分割幻灯片。
emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike