使用Pandoc做些很酷的事 stay foolish, stay hungry
文/甄谨言
Pandoc
使用Haskell语言编写,跨平台,可以转换几乎所有你能想到的文件格式,真的是转换神器。Haskell语言据说是一群高智商群体玩的东西,函数式编程语言的典范,而Pandoc
则是这门语言的优秀作品之一。
光说它由多强大不足以信服人,我们在终端输入
pandoc --help
于是开始显摆它的万能了
Input formats: docbook, docx, epub, haddock, html, json, latex, markdown,
markdown_github, markdown_mmd, markdown_phpextra,
markdown_strict, mediawiki, native, opml, org, rst, t2t,
textile, twiki
Output formats: asciidoc, beamer, context, docbook, docx, dokuwiki, dzslides,
epub, epub3, fb2, haddock, html, html5, icml, json, latex, man,
markdown, markdown_github, markdown_mmd, markdown_phpextra,
markdown_strict, mediawiki, native, odt, opendocument, opml,
org, pdf*, plain, revealjs, rst, rtf, s5, slideous, slidy,
texinfo, textile
[*for pdf output, use latex or beamer and -o FILENAME.pdf]
本文目录
1. Pandoc 的安装
Pandoc
有两种安装方式
- 去网站Releases · jgm/pandoc下载安装包
- 通过Haskell平台安装,此方式适合于想学习Haskell这门编程语言的人, 安装参考http://www.yangzhiping.com/tech/pandoc.html
2. Pandoc的配置
Pandoc
的一切命令可以在 shell 中完成,但是为了能够实时修改编辑的效果,我们需要和其他编辑器、软件搭配起来使用,下面给出一些建议
- 作者用的是textmate + Marked 2
- 多数Pandoc用户使用的是vim-pandoc
- Linux/windows 用户可以考虑使用Smark
3. Pandoc的使用
3.1 .markdown to .tex
学院工作者用来发文章用的最多的恐怕就是 Latex 了,Latex 可以排版出优美的数学公式,几乎是科学期刊和大型图书的标准规范。但是, 学习Latex并不像 Microsoft Word 那样所见即所得、容易上手。相信平时写些总结、report、博客 之类的都很难用 Latex,转而用语法比较简单地 markdown 和 Word。Pandoc
就提供了一种把这效率和形式结合起来的可能性,你可以用 markdown 写文章,然后用Pandoc
转换为.tex 和.docx 进行编辑,.markdown to .tex使公式排版可以依然使用 Latex 语言。
pandoc -N --toc --latex-engine=xelatex --template=pmtemplate.latex input.md -o output.tex
下面对其中的命令分别说明下
-N
:为每个章节加上编号--toc
:增添目录--latex-engine=xelatex
:用 XeLatex 编译--template=pmtemplate.latex
:使用当前目录下地模板-o
:后面紧接你要输出的文件名及类型 点击下载pmtemplate.latex模板
3.2 使用 Pandoc 做一些很酷的事
1.用 markdown 语言写 PPT 的提纲,然后输出 PPT 的 pdf 格式,
pandoc --template=beamer-template.tex --latex-engine=xelatex -s -i -t beamer [SLIDES.md](http://johnmacfarlane.net/pandoc/demo/SLIDES) -o output.pdf
对上面命令行用到的参数进行说明
-s
:加上页眉、页尾-i
: PPT 放映采用渐进式-t beamer
: 输出采用幻灯片样式
2.用 markdown 语言写 PPT 的提纲,然后输出 PPT 的 Html 格式,并且有多种模板选择
目前Pandoc包含了对五种HTML幻灯片框架的支持:
S5、Slideous、reveal.js需要安装,安装过程可以参考http://www.soimort.org/posts/165/ 下面直接把坐着常用的写下来
pandoc -s --latexmathml --self-contained -i -t dzslides SLIDES.md -o SLIDESa.html
pandoc -s --latexmathml --self-contained -i -t slidy SLIDES.md -o SLIDESb.html
pandoc -s --latexmathml --self-contained -i -t revealjs SLIDES.md -o SLIDESc.html
pandoc -s --latexmathml --self-contained -i -t s5 SLIDES.md -o output.html
点击查看文件效果
注意:要使 Latex公式 编译成功,还需要去A Brief Introduction to LaTeXMathML下载下面两个文档到当前文件夹,
并且在生成后的 html 文件写入
<script type="text/javascript" src="LaTeXMathML.js"></script>
<link rel="stylesheet" type="text/css" href="LaTeXMathML.standardarticle.css"/>