关于-pandoc-无法处理中文

原本想将 markdown 文件转换成 pdf 文件, 结果遇到了:
pandoc error

参考1

由于编译 pandoc 默认的 latex 引擎是 pdflatex, 其不支持中文.

需要手动设置编译时所引用的引擎, 改为 xelatex:

1
$ pandoc infile.md -o outfile.pdf --latex-engine=xelatex

还需设置中文字体. 需和系统中已装的字体相同.

如:

1
$ pandoc infile.md -o outfile.pdf --latex-engine=xelatex -V mainfont="SimSun"

参考2

Pandoc 将 Markdown 文件转为 PDF 文件的步骤:

  • 将 Markdown 文件转为 LaTeX 源文件
  • 调用系统的 pdflatex, xelatex 或其他命令, 将 .tex 文件转换为最终的 PDF 文件.

使用 CJKmainfont 指定字体.

1
$ pandoc --pdf-engine=xelatex -V CJKmainfont="font name" test.md -o test1.pdf

可使用 fc-list 来查看系统中安装的字体.

1
$ fc-list :lang=zh

使用技巧

Pandoc 支持 YAML 格式的 header, 通过 header 可以指定文章的标题, 作者, 更新时间等信息.

如:

1
2
3
4
5
---
title:
author:
date:
---

测试

我使用:

1
$ pandoc --pdf-engine=xelatex -V CJKmainfont="WenQuanYi Zen Hei Mono" solution.md -o test.pdf

这行命令, 能够正确识别和显示中文, 就是排版出了大问题.


关于-pandoc-无法处理中文
http://example.com/2022/10/07/关于-pandoc-无法处理中文/
作者
Jie
发布于
2022年10月7日
许可协议