我有一些 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 Serif
Pandoc 的默认变体。您可能会看到目录的另一页
pandoc -D latex
您可以通过键入和研究输出来检索 LaTeX 输出模板,从而获益。