Pandoc
如果你需要将文档从一种格式转换成另一种格式,那么Pandoc是你的一把瑞士军刀,Pandoc可以将下列格式文档进行相互转换。
Markdown
、Microsoft Word
、OpenOffice/LibreOffice
、Jupyter notebook
、HTML
、EPUB
、roff man
、LaTeX
、甚至是
安装
windows
下载地址:windows下载
也可以通过Chocolatey来安装。
choco install pandoc
# 其他Pandoc软件安装
choco install rsvg-convert python miktex
macOS
brew install pandoc
# Pandoc解析器
brew install pandoc-citeproc
# 其他Pandoc软件安装
brew install librsvg python homebrew/cask/basictex
Linux
sudo yum install pandoc
# 如果想输出PDF,可以安装TeX Live
sudo yum install texlive
Ubuntu/Debian
sudo apt install pandoc
# 如果想输出PDF,可以安装TeX Live
sudo apt install texlive
使用
经过上面的安装,我们可以使用了。
验证
[frank@LAPTOP-0OCJTGJR ~]$ pandoc --version
pandoc 1.12.3.1
Compiled with texmath 0.6.6, highlighting-kate 0.5.6.
Syntax highlighting is supported for the following languages:
actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines,
modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
octave, pascal, perl, php, pike, postscript, prolog, python, r,
relaxngcompact, restructuredtext, rhtml, roff, ruby, rust, scala, scheme,
sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl,
xml, xorg, xslt, xul, yacc, yaml
Default user data directory: /home/frank/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web: http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.
小试牛刀
虽然下面的方法不怎么常用,我们先通过命令行的一个简单例子认识一下Pandoc
例子一:markdown 转 html
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc
# 标题一
## 标题二
> 摘要
这是按下Ctrl-D,看看会发生什么?
标题一
标题二
摘要
例子二:html 转 LaTeX
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc -f html -t markdown
标题一
标题二
摘要
这时再次按下Ctrl-D,看看会发生了什么?
标题一
======
标题二
------
> 摘要
我们是不是可以将markdown转换成LaTeX了?你会怎么使用命令组合呢?
文本转换
好了,玩够了,我们正式开始
文本转换
。
编辑文档
使用任意你喜欢的文本编辑器编辑如下文档并保持为.md文件。这里保持成test1.md
---
title: Test
...
# Test!
This is a test of *pandoc*.
- list one
- list two
markdown 转 html
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -f markdown -t html -s -o test1.html
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 4
-rw-rw-r-- 1 frank frank 629 Feb 4 22:06 test1.html
-rw-rw-r-- 1 frank frank 81 Feb 4 22:05 test1.md
介绍一下参数
-s选项表示创建一个“独立”文件,其中包含页眉和页脚,而不仅仅是片段
-o test1.html 将输出放入文件中test1.html
-f markdown和-t html 表示,from markdown格式 to html格式,Pandoc模式就是从markdown转成html。
markdown 转 LaTeX
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -f markdown -t latex -s -o test1.tex
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 8
-rw-rw-r-- 1 frank frank 629 Feb 4 22:06 test1.html
-rw-rw-r-- 1 frank frank 81 Feb 4 22:05 test1.md
-rw-rw-r-- 1 frank frank 1627 Feb 4 22:17 test1.tex
当然,你也可以直接用下面的命令
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -s -o test2.tex
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 12
-rw-rw-r-- 1 frank frank 629 Feb 4 22:06 test1.html
-rw-rw-r-- 1 frank frank 81 Feb 4 22:05 test1.md
-rw-rw-r-- 1 frank frank 1627 Feb 4 22:17 test1.tex
-rw-rw-r-- 1 frank frank 1627 Feb 4 22:18 test2.tex
以为你的文件后缀是.tex,那么Pandoc就会知道你是想生成LaTeX文档,够贴心
。
markdown 转 pdf
如果想转成pdf那么我们需要安装texlive这个工具包,在安装
一节中我们已经做过这件事儿了。那么我们就直接运行吧。
[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -s -o test1.pdf
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 92
-rw-rw-r-- 1 frank frank 629 Feb 4 22:06 test1.html
-rw-rw-r-- 1 frank frank 81 Feb 4 22:05 test1.md
-rw-rw-r-- 1 frank frank 80599 Feb 4 22:20 test1.pdf
-rw-rw-r-- 1 frank frank 1627 Feb 4 22:17 test1.tex
-rw-rw-r-- 1 frank frank 1627 Feb 4 22:18 test2.tex
进阶
更高级的用法可以参考《Pandoc用户指南》