我最喜欢的 LaTeX 字体 (2022)
我最喜欢的 LaTeX 字体 (第一部分)
2022年11月21日 • Lino Ferreira
目录
Introduction Fonts Bembo Palatino Crimson Libertine
简介
TeX 及其相关系统通常与它们的默认字体相关联,即 Donald Knuth 的 Computer Modern (CM) 字体。虽然这些字体非常出色,但它们在科学界已经变得非常普遍,以至于许多 LaTeX 用户都在为他们的文档寻找替代字体。因此,在过去的 20 年里,涌现了大量的字体包,甚至还有 OpenType 兼容引擎 (XeLaTeX 和 LuaLaTeX)。 不久前,我开始探索这组庞大的 LaTeX 字体选项。我的目标是选择一小组高质量的免费字体,以便日后在排版不同的文档时可以选择。随着我搜索的进行,我也开始对不同字体设计背后的历史和原理感兴趣,这促使我为每种我喜欢的字体写一些描述性的笔记。 在下面的段落中,我列出并简要描述了七种我个人喜欢的字体(如果原始字体是商业字体,我将重点关注免费替代方案)。这些字体是:Bembo, Palatino, Crimson, Libertine, STIX, Charter 和 Utopia。我还提供了每种字体的小样本(包含文本和数学公式),以便可以轻松评估和比较不同的选择。每种字体的更长样本(代码和生成的 PDF 文件)可以在这个 GitHub repo 上找到。 使用 LaTeX 时,可以选择和常用三种类型的字体:roman 或 serif 字体,通常用于正文文本,并且应该支持数学公式;sans-serif 字体,有时用于标题;以及 monospaced 或 typewriter 字体。因此,在为文档选择字体时,重要的是要考虑字体是否支持数学字符(至少如果我们输入一些数学公式!),并且还要选择适当的 sans-serif 字体来搭配它(monospaced 字体通常与 roman 字体有更明显的不同)。 这项调查侧重于 serif 字体,因为这些字体通常是较长文档(如文章或书籍)的常用选择(尽管近年来 sans-serif 字体在较长的文本中越来越受欢迎)。但是,与上述原因一致,我还为下面七种 roman 字体选择了一些配套的 sans-serif 字体(所有这些字体都以某种形式支持数学公式)。至于 monospaced 字体,我选择了 Raph Levien 的优秀字体 Inconsolata,这不仅在 TeX 世界中很受欢迎,而且还被用作文本编辑器的主要字体。 如上所述,诸如 LuaLaTeX 之类的引擎使在 LaTeX 中使用 OpenType 字体成为可能。虽然 Type 1 字体(通常有专用的 LaTeX 包)是最容易设置的,并且在大多数发行版上都可用(这使它们成为例如在共同编写文档时的理想选择),但 OpenType 字体在其选项中更完整和可自定义,并且代表了当前数字排版的最佳标准。只要有可能(即当通过 LaTeX 包以 Type 1 提供字体,并且也可以作为 OpenType 提供),我都会提供两个样本,每个配置一个。在其余情况下,我使用任何可用的格式。我在本文的最后两节中给出了用于生成样本的配置以及样本文本来源的更多详细信息。现在开始介绍这些字体!
字体
Bembo
LuaLaTeX 中的 fbb 和 Libertinus Math
Bembo 是本次调查中最古老的字体。该字体由 Monotype Corporation 于 1929 年发布,其 roman 风格基于 Francesco Griffo(一位意大利的凿字工人,创造了第一个斜体字)大约在 1495 年的设计。Aldus Manutius,他那个时代最重要的印刷商之一,使用该字体出版了牧师 Pietro Bembo 的一篇短篇作品,Monotype 的字体就是以他的名字命名的。
Bembo 仍然是当今最受欢迎的书籍字体之一,已被诸如 Penguin Books 或 Oxford University Press 之类的出版社使用。虽然其古老的风格可能使其不适合某些文档,但 Bembo 已受到 LaTeX 社区的关注。这至少部分归功于 Edward Tufte 的工作(他以其关于数据可视化的著作而闻名),他的设计精良的 书籍 使用 Bembo 作为其正文字体。虽然这些书籍不是用 TeX 系统排版的,但它们启发了
tufte-latex
文档类的开发,以制作设计相似的书籍以及讲义。
Edward Tufte 的书籍(点击放大)。来源:Edward Tufte,通过 Fonts In Use。许可证:保留所有权利
Monotype 的 Bembo 是一种商业字体,尽管 Tufte 的书籍中使用的字体 ET Book 的 Web 字体版本已由 Tufte 本人 免费提供。一个更完整的免费替代方案是 Cardo,由 David J. Perry 开发,也基于为 Aldus Manutius 刻制的字体。Cardo 的设计考虑了经典和语言学学者的需求,并由 Michael Sharpe 进行了修改和扩展,以便通过
fbb
包 与 LaTeX 一起使用。fbb 字体有 OpenType 和 Type 1 两种格式,因此适用于 OTF 兼容系统(如 LuaLaTeX)以及 pdfLaTeX。
虽然 fbb 没有数学配套字体,但 Sharpe 建议使用 newtxmath
提供的 Libertine 风格数学字体,并在 pdfLaTeX 中使用 libertine
选项。在 LuaLaTeX 中,我改用 Libertinus Math,这是一种由 Khaled Hosny 开发的 OpenType 数学字体,将在下面介绍。
关于 Bembo 的 sans-serif 配套字体,Tufte 的书籍使用 Eric Gill 广受欢迎的 Gill Sans。与 Bembo 一样,Gill Sans 也是商业字体,因此我选择了 Gillius ADF,这是一种受 Gill Sans 启发的免费字体,并以 OpenType 格式提供,作为替代方案。gillius
包 提供了对 pdfLaTeX 以及 LuaLaTeX 和 XeLaTeX 的支持。
Palatino
LuaLaTeX 中的 TeX Gyre Pagella
Palatino 是 20 世纪使用最广泛且最容易识别的字体之一。Palatino 由 Hermann Zapf 设计,并于 1949 年首次由 Stempel 铸字厂发布,其灵感来自意大利文艺复兴时期的旧式字体,并受到 Zapf 书法专业知识的影响。该字体以 Giambattista Palatino 的名字命名,他是文艺复兴时期最著名的书法家之一。
Palatino 最初旨在用于标题和展示印刷,并旨在即使在小尺寸和劣质纸张上也能清晰可读。使其易读的两个显着特征是,与其他文艺复兴传统字体相比,它具有更大的 x-height 和更宽的 apertures。
在 TeX 世界中,Palatino 风格的字体可能是继默认 CM Roman 之后最常用的衬线字体。然而,Palatino 与 TeX 之间的密切关系不仅限于其在排版系统中的频繁使用。事实上,Donald Knuth 曾与 Zapf 讨论了 CM Roman 的设计(见下图),Zapf 后来在美国数学会 (AMS) 的委托下,在 Knuth 的帮助下创建了 AMS Euler 数学字体。Zapf 也是自 1980 年以来 TeX 用户组董事会的荣誉成员,头衔为“字体巫师”。
Donald Knuth(左)和 Hermann Zapf(右)(点击放大)。来源:Bettmann,通过 Getty Images
与 Bembo 一样,Palatino 也是一种商业字体。幸运的是,多年来已经开发了原始字体的几个克隆,并且可以轻松地与 LaTeX 集成。在 pdfLaTeX 中,我选择了
newpx
包 提供的文本字体。作为数学字体,我提供了使用同一软件包提供的数学配套字体以及 eulervm
包 提供的类似 Euler 的字体的样本。正如您在下面的示例中看到的,Euler 作为一种数学字体具有独特的外观,其字母是直立的而不是通常的斜体。在这方面,它旨在反映数学家在黑板上的典型笔迹。
pdfLaTeX 中的 New PX 和 Euler-VM
与许多仅以 Type 1 格式提供的免费字体不同,Palatino 还有一个带有数学支持的免费 OpenType 克隆:GUST 项目开发了 TeX Gyre Pagella 字体,并方便地提供了 OTF 数学配套字体(还存在另一种 Palatino 风格的免费 OTF 数学字体,名为 Asana Math)。不幸的是,没有完整的 Euler 数学字体的 OpenType 版本:只有 Khaled Hosny 开发的已废弃端口 Neo Euler 存在。因此,我没有提供 LuaLaTeX 中类似 Euler 字体的示例。
Palatino 最自然的 sans-serif 配套字体可能是 Zapf 最近的 Palatino Sans 字体。Optima 也许是他继 Palatino 之后最著名的作品,也可以很好地与之搭配。不幸的是,这两种字体都是商业字体,并且没有免费克隆可以轻松地与 LaTeX 一起使用(免费的 URW Classico,一种 Optima 克隆,可以作为 LaTeX 包 提供,但不包含在大多数发行版中)。
寻找在设计上与 serif 密切匹配的 sans-serif 字体的一种替代方法是选择一种明显不同的 sans 字体。与一种松散匹配的 sans 字体不同,其相对于 roman 字体的差异会产生不受欢迎的轻微不和谐,一种明显不同的字体可以通过使高对比度成为设计特征来缓解这种紧张感。本着这种精神,几个使用 Palatino 克隆作为其主要文本字体的 LaTeX 包选择了 Helvetica 克隆作为 sans-serif 配套字体。在这里,我遵循这种方法,选择 TeX Gyre Heros,这是一种也是由 GUST 项目开发的免费 Helvetica 克隆。Heros 有 OpenType 和 Type 1 两种格式,并且提供了一个 包 以方便后者与 pdfLaTeX 一起使用。
最后,Kp-Fonts 是一组基于 Palatino(源自 URW Palladio)但具有独特和鲜明特征的有趣字体(Johannes Kepler 项目 – 与 Robert Slimbach 的 Kepler 字体无关),由 Christophe Caignaert 开发。这套完整的字体(包含 roman、sans-serif、monospaced 和数学字体)可以通过
kpfonts
包 与 LaTeX 一起使用。这三种文本字体中的每一种都包含旧式数字和真正的小型大写字母,并且以标准粗细和较轻的粗细提供。然而,即使是 roman 字体的默认版本也比 Palatino 轻,并且在这方面更类似于 Aldus,这是 Zapf 设计的第二种字体,类似于 Palatino,但旨在用于书籍。有关 TeX 系统中使用 Aldus 字体的示例,请参阅 fontspec
包 的文档,该文档使用它作为其主要的 body 字体。
pdfLaTeX 中的 Kp-Fonts
Crimson
pdfLaTeX 中的 Cochineal
Crimson 是一种由 Sebastian Kosch 于 2010 年设计的免费开源字体。Kosch 说,当时高质量的免费文本字体很少,因此 Crimson 的开发目标是提供一种“大众化的主力字体”,这是一个值得称赞的目标。Crimson 是一种文艺复兴传统中的旧式字体,Kosch 提到,其灵感来自该时期的一些最受欢迎的 20 世纪字体复兴,例如 Robert Slimbach 的 Minion 或 Jan Tschichold 的 Sabon。
Michael Sharpe 的
cochineal
包提供了一个 Crimson 字体的分支,添加了许多字形以确保对 LaTeX 使用的适当支持。通过 newtxmath
包(带有 cochineal
选项)提供了一个数学配套字体。不幸的是,newtxmath
不是为通过 LuaLaTeX 或 XeLaTeX 将 OpenType 文本字体组合使用而设计的。因此,即使 cochineal
包含 OpenType 版本,也只提供 pdfLaTeX 样本(使用 newtxmath
配套字体)。作为 sans-serif 配套字体,Sharpe 在 cochineal
的文档中使用 Pablo Impallari 的 Cabin(另一种受 Gill Sans 启发的字体),我遵循了这个选择。
Crimson 的一个特点是它(根据 Kosch 的说法,这是巧合)与 Slimbach 的 Minion 字体相似(尽管 Crimson 的 x-height 较小且细节更精致 – 见下图)。自 1990 年首次发布以来,Minion 已成为书籍排版的标准选择(例如,它是 Robert Bringhurst 的经典文本 The Elements of Typographic Style 中使用的主要正文字体)。尽管它是一种商业字体,但 Minion(尤其是其 OpenType 版本 MinionPro)已受到 LaTeX 用户的欢迎,因为它与某些 Adobe 产品捆绑在一起,因此在某些系统上默认可用(使用与 Adobe Reader 捆绑在一起的字体的合法性 值得怀疑,但是)。虽然 Crimson 不是 Minion 的克隆,但两种字体之间的相似性可能使其成为那些寻找 Minion Pro 提供的经典外观的人的合适免费替代方案。
Minion Pro Regular(顶部)和 Crimson Text(底部)。来源:Adobe Fonts 和 Google Fonts
Libertine
LuaLaTeX 中的 Libertinus
Linux Libertine 字体系列可能是互联网时代设计的开源字体的最著名示例,并且有充分的理由,因为它是一个优秀的字体集合。虽然我们上面介绍的三种字体主要受到 15 世纪和 16 世纪旧式文艺复兴字体的启发,但 Libertine 更多地借鉴了 17 世纪的巴洛克风格以及 19 世纪和 20 世纪的现代书籍字体,因此比 Bembo 或 Crimson 具有更现代的外观。
Libertine 的开发是 Libertine Open Fonts Project 的一部分,该项目由 Philipp H. Poll 发起,目标是在 GNU 许可下发布字体。其设计的一个重要参考是 Times New Roman 及其前身 Times Roman。尽管两种字体之间存在相似之处,但也有一些明显的差异。在尺寸方面,Libertine 的 x-height 比 Times 小(Times 经过优化,以便在小尺寸下具有可读性,最初是为报纸专栏设计的),并且总体占用空间更小(见下图)。另一个重要的区别在于衬线,与 Times 棱角分明且有些三角形的衬线相比,Libertine 的衬线更平坦,也不太尖锐(有关 Libertine 设计背后的原理及其与 Times 的差异的更完整的讨论,请参阅 Poll 的 这次采访)。Libertine 系列不仅包括 Libertine roman,还包括配套的 sans-serif 字体 Linux Biolinum。
Times New Roman(顶部)和 Linux Libertine(底部)(点击放大)。来源:osp blog
Libertine 字体广泛用于开源软件中,例如包含在 Libre Office 中,并且已用于设置 Wikipedia 徽标。在 LaTeX 中,这些字体已方便地打包在
libertine
包 中,newtxmath
通过 libertine
选项提供配套的数学字体(这种字体也用作上面 fbb 的数学伴侣)。
对于本次调查的样本,我没有使用原始的 Linux Libertine 字体,而是使用了 Libertinus 系列。这是 Khaled Hosny 对 Libertine 字体的一个分支,它提供了 OpenType 数学配套字体(因此使 Libertinus 成为极少数具有 OTF 数学支持的字体之一)并修复了 Libertine 中的一些错误。除了 roman、sans-serif 和数学版本外,Libertinus 还提供 monospaced 和 display 字体,以及 serif 字体的 semibold 粗细;这种完整性是它的主要优势之一。
libertinus
包 可以在 Type 1 格式(用于 pdfLaTeX)以及 OpenType 中轻松使用 Libertinus。我们提供了一个使用 pdfLaTeX 和 LuaLaTeX 的示例。Libertinus Math 仅作为 OpenType 字体提供,因此对于 pdfLaTeX 示例,我们使用 newtxmath
。
感谢阅读,并查看本文的第二部分! © 2025 Lino A. F. Ferreira bluesky · twitter · linkedin · github