文档特定部分的字体切换

文档特定部分的字体切换

我迷失在一个由各种不同的扭曲字体组成的迷宫中。

我需要对小说的一小部分使用不同的字体(字体系列),可能保留使用粗体/斜体修饰符的可能性。

我需要一种具有可读性草书外观的字体。我尝试使用 ITC Zapf Chancery ( \fontfamily{pzc}),它非常适合我的风格,但它似乎不支持粗体、斜体或小写字母来强调。

我尝试添加不同的字体(似乎我的 Debian Sid 框中安装了很多字体),但我不知道如何使用它们;我尝试按照这个答案,但它向我抛出了“Package fontspec Error: The font "Calibri" not be found.”(这可能是正确的,因为我确实不是有一个名为“Calibri”的字体,但我字体名称为“URW Chancery L”、“Free Chancery”和“Z003”,它们都会给出相同的错误)。

此外,我不太确定我是否可以这样做,因为我需要转换为电子书(可能使用 tex4ebook),而且我不确定这是否与 lulatex/tetex 兼容(需要\fontspec)。

我可以在我的盒子上看到很多字体(我正在使用字体管理器来显示它们),但我不确定它们如何映射到 LaTeX 名称(如果它们确实如此)。

使用类似\newfontfamily\theokritosfont{GFS Theokritos} 通常有效,但并非总是如此(我遗漏了什么?)

如果我需要使用普通的pdflatex或,我应该使用什么htlatex

我如何在\newfontfamily\myfont{Font Name}和之间进行映射\fontfamily{code}

另一个问题是半草书字体(例如:“Tex Gyre Chorus”)从不支持斜体/粗体(我可以理解斜体,因为这种字体已经倾斜并且可以通过突出显示来“纠正”它们,但为什么不允许粗体?)

我知道上面有很多问题,而 SE 通常喜欢单一的、可回答的问题,但我试图解释我确实试图了解这个问题;基本问题是:

有人可以推荐一种看起来像 Chancery 的字体,可以在 LaTeX 中使用,至少具有粗体(如果还有其他类型的强调效果就更好了)并指导我如何在实践中使用它吗?

答案1

其中有许多不同的问题。

该答案中的 Calibri 字体只是一个例子。它是 Microsoft 拥有的专有字体。只需替换您拥有的字体即可。无论如何,我肯定会避免使用 Calibri,因为它是 Microsoft Word 某些版本中的默认字体。Google 的 Carlito 是一种不错的免费替代品。(读者们,让这成为您在示例中使用标准字体和包的教训!)

我还建议您仔细考虑是否真的想在文档中使用粗体华丽的脚本字体,除非您正在模仿夸张的字体设计。

最后,我对 PDFLaTeX 兼容性的建议是:不要尝试。如果可以,就使用 LuaLaTeX。

你可以使用什么字体?你可以去以下网站字体松鼠并浏览其选择,但还有更多免费字体可供选择。您还可以浏览 Debian 软件包存储库,查看哪些字体可下载。如果您的发行版中提供了软件包,您应该从那里获取它。否则,请下载otfttfttc文件。

在这个例子中,我选择了 Palatino 的一个克隆版本作为主要字体,并将 Tangerine 下载到我的项目目录的名为 的子目录中fonts。您还可以下载任何otfttfttc文件到您的~/.fonts目录中以便为自己安装,或下载到 的子目录中/usr/local/share/fonts以便为您系统上的每个人安装。

\documentclass{book}
\usepackage{fontspec}

% Solely to produce a MWE on TeX.SX that fits in the allowed width:
\usepackage[paperwidth=10cm]{geometry}

\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{TeX Gyre Pagella}[Scale = 1.0, Numbers = OldStyle]
\newfontfamily\scriptfamily{Tangerine}[
  Path = ./fonts/ ,
  UprightFont = *_Regular ,
  BoldFont = *_Bold ,
  Extension = .ttf ]
\newfontfamily\calfamily{TeX Gyre Chorus}

\DeclareTextFontCommand\textscript{\scriptfamily}
\DeclareTextFontCommand\textcal{\calfamily}

\begin{document}
This text is in Palatino (or rather, its clone).
{\calfamily This is in Zapf Chancery (or rather, its clone).}
\textscript{And this is in Tangerine \textbf{Bold}.}
\end{document}

字体示例

在那里,我使用 TeX Gyre Chorus(Zapf Chancery 的克隆版)作为脚本字体,使用 TeX Gyre Pagella(Palatino 的克隆版)作为主文本字体。这两种设计最初都是由 Hermann Zapf 设计的,在我看来,它们搭配得很好。Zapf 的一款无衬线字体也与之相配,那就是 Zapf 的 Optima,在我看来,如果您需要等宽字体,Inconsolata 是一个不错的选择,具有人文主义风格。我还以 Tangerine 为例,说明了如何下载和使用粗体自定义脚本字体。

尽管我保持此示例的标准和简约,但您可能希望添加一行\usepackage{microtype}来打开字体扩展和突出。这大大减少了连字符和额外间距的数量,因此使大多数文档在屏幕上看起来更好。

答案2

这个问题的标题与您提出的多个问题不太相关。

说到电子书,您完全是靠自己。我怀疑任何转换器都会关注 fontspec 通过字体所做的任何事情。

当加载字体时,我建议通过文件名进行,以避免所有字体名称查找奇怪的情况。

为了在\newfontfamily和之间进行映射\fontfamily(尽管它们的名称不同,但它们在非常不同的级别上运行),您需要使用选项NFSSFamily;文档中给出的示例是:

\newfontfamily\verbatimfont[NFSSFamily=myverbatimfont]{Inconsolata.otf}
...
\fontfamily{myverbatimfont}\selectfont

但如果可能的话,最好使用\verbatimfontfontspec 为您定义的开关,因为其中包含一些额外的细节,例如必要时的字体编码切换。

相关内容