LaTex 衬线字体在 Pandoc 上不起作用

LaTex 衬线字体在 Pandoc 上不起作用

我有一些 markdown 文档,正在尝试使用默认的 latex 引擎 pdflatex 将其转换为 PDF。这是在 CentOS 7.9 上。

在 markdown 最小示例文件中,我有一个 yaml 标头,如下所示

---
title: First Last
fontfamily: sans
...

Heading
=======

为了转换,我使用

pandoc --latex-engine=pdflatex README.md -o README.pdf

上述命令运行正常,没有产生任何错误,但是生成的 PDF 具有 Pandoc LaTeX(拉丁现代)使用的默认衬线字体。我无法将 Latin Modern Roman 更改为计算机现代无衬线字体。我有点困惑,需要在 yaml 标头中进行哪些设置才能获得所需的结果。

任何帮助都将不胜感激

答案1

Pandoc 界面的默认模板fontfamily需要一个sty文件来从文件中加载相关字体信息fd(例如,mathpazo.sty,因此您输入fontfamily: mathpazo);并且默认引擎已经是pdflatex,因此您无需在 CLI 命令中将其指定为标志。因此,要实现您的结果,您只需说

---
title: First Last
header-includes: \renewcommand*\familydefault{\sfdefault} 
...

Heading
=======

使用\renewcommand*如上所述的方法可以使罗马字体在其他地方可用,或者如果您想完全覆盖罗马字体,\let\rmdefault\sfdefault则可以使用。\renewcommand*\familydefault{\sfdefault}

对于转换,

pandoc README.md -o README.pdf

请注意,我们不是严格设置Computer Modern Sans Serif,而是Latin Modern Sans SerifPandoc 的默认变体。您可能会看到目录的另一页

pandoc -D latex您可以通过键入和研究输出来检索 LaTeX 输出模板,从而获益。

相关内容