pandoc中文pdf转换攻略
王福强
按照pandoc官方网站说明,下载BasicTex以及MacTeX-Additions, 不管三七二十一,一并装了,才占用几百M,在这个年月,“洒洒水”啦~
装完后,运行pandoc --latex-engine=xelatex -V mainfont=Hei 统一投放平台规划与设想.md -o tek.pdf
, 发现tnd不给换行,太长的行直接截断,好啦,第一个症状出现了…
遂Google之, 发现了这篇https://groups.google.com/forum/#!topic/pandoc-discuss/GIy4crum8II, 但貌似还是没有答案,也不知道纠结了多久,在pandoc官网导航栏里,点了[Extras], 寻摸, 突然发现接近页尾的地方有中文翻译的pandoc文档项目,有转换时用的命令行说明以及其他几个文档,点进https://github.com/tzengyuxio/pages/blob/gh-pages/pandoc/convert.sh,发现如下命令赫然在目:
pandoc pandoc.markdown -o pandoc-zhtw.pdf --toc --smart --template=pm-template --latex-engine=xelatex -V mainfont='LiHei Pro'
哈哈, 太爽了, 马上git clone
这个项目到本地,查看输出的pdf,发现格式完全没有问题,我直接把模板拿过来用不就搞定了嘛,so:
pandoc --latex-engine=xelatex -V mainfont='LiHei Pro' --template=pm-template 统一投放平台规划与设想.md -o tek.pdf
But, Shit happens…
pandoc: Error producing PDF from TeX source. ! LaTeX Error: File `titling.sty' not found. Type X to quit orto proceed, or enter new name. (Default extension: sty) Enter file name: ! Emergency stop. l.65 \setlength
没关系, 继续google, 嗯,貌似是某个Latex包没有, 发现CTAN有这么个包下载,可下下来也不会安装啊,应该有现成的包管理器吧?! 搜来搜去,果然有,嘿嘿:
sudo tlmgr install titling
继续运行, 发现还缺“lastpage.sty”, 同理安装, 再运行, No news is good news, 命令运行成功, 马上查看运行结果,NND,内容是生成了,咋许多汉字变成了方框啊!!!
哦,对了, LiHei Pro这个字体貌似不是完全支持中文的字体,换换命令:pandoc --latex-engine=xelatex -V mainfont=Hei --template=pm-template 统一投放平台规划与设想.md -o tek.pdf
, 换成黑体,运行后还是方框, fuck, 打开pm-template.latex,发现有字体设置的地方也是LiHei Pro,改之, 再运行, OH YEAH, 完美结果!
好啦, 最后总结一下:
- 安装BasicTex;
- 把https://github.com/tzengyuxio/pages项目中的pm-template.latex模板提前弄下来,将LiHei Pro字体改为黑体或者其它完全支持中文的字体;
- 使用tlmgr包管理器把titling.sty和lastpage.sty两个依赖装上;
- 运行pandoc生成pdf, 当然,不要忘了要使用到第二步更改过的template文件,并指定”–latex-engine=xelatex -V mainfont=Hei”
仅此文献给那些依然为相似问题而苦恼的兄弟姐妹们, 如果可以,记得请我吃饭,比如海宝同学,哈哈哈
补充部分
有些时候, 默认的repository下找不到相应的包,所以, 这个时候可以使用sudo tlmgr --repository http://mirrors.ustc.edu.cn/CTAN/systems/texlive/tlnet install CJKfntef
类似的命令来安装,但是,因为授权协议之类问题, 即使指定repository也不一定找得到, 最后就得手动安装了。
kpsewhich -var-value=TEXMFHOME
找出tex安装目录(我本地系统是在/Users/fujohnwang/Library/texmf), 然后:
sudo mkdir -p texmf/tex/latex/local/ sudo cp Downloads/CJKfntef.sty ~/Library/texmf/tex/latex/local
MMD, pandoc的markdown中如果插入图片的话,经常报错, 这个时候,检查一下图片是否是gif格式,如果是,那么将其转成png格式, 这真是一个大坑,老子耗费了差不多一天的时间来解决这个问题, 因为报错信息基本没参考价值, 就各种google, 各种装依赖尝试, 各种改模板,总之各种折腾, 最后是通过先转成latex中间格式,然后再使用xelatex从latex格式转pdf的log中才瞅出些许端倪,然后将gif改成png格式之后, 哇啦, 顺利通关!
「福强私学」来一个?
「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。
开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。