带公式的markdown转成docx和pdf

贺高杰
2023-12-01

pdf:

对公式的支持需要加入tex_math_dollars选项,
pandoc -f markdown+tex_math_dollars -t latex ./test.md -o test.pdf --latex-engine=xelatex
上面的命令转换出的pdf没有汉字,传说是因为没有指定字体,所以下面这样才行,
pandoc -f markdown+tex_math_dollars ./test.md -o test.pdf --latex-engine=xelatex -V mainfont="KaiTi"
或者,
pandoc -f markdown+tex_math_dollars ./test.md -o test.pdf --latex-engine=xelatex -V mainfont="SimSun"
查看系统支持的字体,
fc-list
fc-list >fc-list.txt
上面命令输出的pdf中文换行有问题,下面利用tzengyuxio提供的pm-template.latex解决中文换行问题,最终的完整命令
pandoc -f markdown+tex_math_dollars ./test.md -o test.pdf --latex-engine=xelatex --template=template_pdf.latex
这里把 pm-template.latex改名为template_pdf.latex,
另外,这个文件中的LiHei Pro,也就是设定中文字体这项要改为系统已安装的字体,比如KaiTi
如果不想使用这个模板文件,也可以利用pandoc生成模板文件,在其上修改:
生成模板文件,
pandoc -D latex > template.tex
在模板文件第二行加入,

\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

然后使用带参数-V mainfont="SimSun"--template=template_pdf.latex 的命令就可以了
另外还可以在模板文件中对字体进行具体的设置,参考,
http://blog.csdn.net/wppkind/article/details/51458523

docx:

pandoc -f markdown+tex_math_dollars -t docx ./test.md -o test.docx --latex-engine=xelatex
上面的命令得到的docx文件,有可能公式显示有问题,我遇到的情况是一堆问号。原因是公式字体没有安装,公式字体是Cambria,默认字体是Cambria Math,所以只要全文选中后,改变字体即可。可能只有office2007会出现这种情况。

参考:

1.http://www.cnblogs.com/loongfee/archive/2013/07/29/3223957.html

 类似资料: