替代方案:使用系统字体xelatex

替代方案:使用系统字体xelatex

我花了两个小时尝试将字体系列简单地更改为无衬线字体,但无论我怎么尝试,它总是以衬线字体结束......

我的设置是安装了 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 的文档 ( )。

相关内容