我花了两个小时尝试将字体系列简单地更改为无衬线字体,但无论我怎么尝试,它总是以衬线字体结束......
我的设置是安装了 Pandoc 的 Mac。我想使用 markdown 文件创建 PDF。在文件中,我使用我想要的选项设置了一个 YAML 块。但是我找不到已安装的 Sans Serif 字体。
我用的是这个:
---
title: bla
fontfamily: merriweather
---
然而这总是行不通,我得到的是带有衬线字体的 merriweather。如果我尝试设置“merriweathersans”,它会抛出错误消息:“merriweathersans.sty”未安装。但是sudo tlmgr 安装 merriweathersans无论如何我都找不到这个要安装的包。
而我尝试的所有其他 Sans Serif 包总是以彻底的灾难告终(例如 fontfamily:arev;这将以“LaTeX 错误:此 NFSS 系统未正确设置”告终。
答案1
您需要fontfamilyoptions: sfdefault
在 YAML 标头中指定。
如果你直接使用 LaTeX,则必须写入以下行:
\usepackage[sfdefault]{merriweather}
方括号内是包选项,您必须指定它才能将无衬线文本作为默认文本。大多数无衬线字体包都是这种情况(请参阅LaTeX 字体目录)。
---
title: bla
fontfamily: merriweather
fontfamilyoptions: sfdefault
...
# Test
Hello, world!
texdoc merriweather
请注意,每个包的包选项并不相同。您可以查看上面链接的字体目录,也可以使用终端中的命令阅读包文档(例如)。
替代方案:使用系统字体xelatex
以上答案假设您(或您的编辑器)使用pdflatex
编译为 PDF。然后您必须选择具有适当选项的 LaTeX 字体包之一。
如果你可以使用xelatex
进行编译,那么你就可以使用系统上安装的任何字体(包括 TeXLive 安装附带的 True-Type 和 Open-Type 字体),而不必担心软件包。然后在你的 YAML 标头中,你只需写入以下内容:
---
mainfont: Source Sans Pro
...
要转换文档,现在您必须在命令行上指定非默认引擎。您可能可以在编辑器的配置中设置它。
pandoc --latex-engine xelatex file.md -o file.pdf
如果您直接使用xelatex
(正如 Pandoc 现在在后台所做的那样),您将包含以下命令:
\usepackage{fontspec}
\setmainfont{Source Sans Pro}
man pandoc
有关更多信息,请参阅 Pandoc 的文档 ( )。