pandoc转换中文pdf攻略
本文记录的在Mac下pandoc转换markdown输出含中文的文本,包含一些依赖的安装以及命令使用,最后的参考文档给了我很大帮助。
pandoc的安装
简要记录安装步骤如下:
按照pandoc官方网站说明, 下载安装pandoc
按照pandoc官方网站说明,转换输出PDF时,需要LaTeX,下载安装MacTex-Additions和BasicTex
在tzengyuxio的开源项目中下载pm-template.latex pdf中文模板,将该模板中setCJKmainfont字段值LiHei Pro修改为电脑上带有的中文字体,我的自己安装了微软雅黑字体,于是修改成了
Microsoft YaHei
使用tlmgr工具安装依赖titling和lastpage
1 | $sudo tlmgr install titling |
- 使用命令
pandoc --latex-engine=xelatex --template=pm-template markdown_strict.md -o markdown.pdf
转换输出pdf, 可将pm-template.latex文件放置任意处,只是需要使用--template参数指定其路径.
我在安装上述包时出现找不到相应包的情况,即使使用
sudo tlmgr option --repository http://mirrors.ustc.edu.cn/CTAN/systems/texlive/tlnet
修改repository之后也不行,于是手动安装。先下载titling和lastpage, 然后运行kpsewhich -var-value=TEXMFHOME
命令找出tex安装目录,进入该目录,如没有则创建之,接着执行以下命令:
1 | sudo mkdir -p texmf/tex/latex/local/ |
安装titling和lastpage时直接根据其安装指导安装即可,需要先经历一些简单的*.sty文件生成,zip解压及文件移动等操作
转换pdf常用参数
- --latex-engine=pdflatex|lualatex|xelatex
--latex-engine用来指定转换PDF格式时LaTeX引擎,默认情况下是pdflatex,但是由于pdflatex不支持中文,因此需要将引擎设置为xelatex
- --template=FILE
使用FILE指定的文件作为输出文档的自定义模板。可将模板文件放置任意处,只是指定FILE时需要该FILE的路径。
- --toc, --table-of-contents
使用该参数后,会在输出文档开头自动产生文件目录,对于输出格式是man, docbook, slidy, slideous, s5, docx 或者odt的文档,该参数不起任何作用。
- --toc-depth=NUMBER
指定文件目录中包含的章节级别,默认NUMBER=3,表示一级标题、二级标题、三级标题都会被在目录中展示。
- -V KEY[=VAL], --variable=KEY[:VAL]
当渲染standalone模式下文档时,设置模板变量KEY的值为VAL。pandoc会自动设置默认模板中的这些变量,因此该选项这通常在使用--template选项指定自定义模板时有用,如果没有指定VAL值,那么该KEY会被赋予值true。
- -s, --standalone
转换输出文档时会自动加上合适的header和footer(例如standalone HTML, LaTeX, RTF).该选择在转换输出pdf,epub,epub3,fb2,docx,odt格式文件时会被自动设置,因此如果转换输出上述格式文件,则不用显示指定该选项。
- -N, --number-sections
对于转换输出LaTeX, ConTeXt, HTML, EPUB格式文档时,对文中章节进行编号。默认情况下,文章的章节是不会被编号的。对于使用了class unnumbered 的章节肯定不会被标号,即使使用了--number-sections选项。
参考: pandoc中文pdf转换攻略
我的博客: http://liumh.com