数字排版是我们每天都在使用的东西,但很少有人了解数字字体的工作原理。本文提供了一个基本、快速、粗略、过度简化(但希望有用)的 OpenType 介绍——它是什么,以及如何使用自由、免费和开源软件 (FLOSS) 发挥它的威力。 这里提到的所有字体也是 FLOSS。
什么是 OpenType?
在最基本的层面上,数字字体是不同字形的“容器”,以及有关如何使用它们的额外信息。每个字形都由一系列点和连接这些点的规则表示。我不会深入研究定义这些“连接”的不同方式,也不会研究我们是如何到达那里的(软件开发的历史可能很混乱),但基本上有两种规则:抛物线段(二次 贝塞尔曲线)或三次函数(三次贝塞尔曲线)。
TTF 文件格式,通常称为 TrueType 字体,只能使用二次贝塞尔曲线,而 OTF 文件格式,称为 OpenType 字体,则支持这两种曲线。
在这里我们需要小心我们所讨论的内容:“OpenType”一词不仅指文件格式,还指整个字体的先进属性(即,前面提到的“额外信息”)。
事实上,除了 OpenType 文件格式之外,还有替换表,例如,告诉使用该字体的软件用相应的印刷连字替换两个字符;一个字符的形状需要根据其周围的字符(其“上下文替代”)而改变;或者当您用希腊语书写时,单词末尾的 σ 必须替换为 ς。这就是“智能字体”的含义。
更令人困惑的是,在 TrueType 字体上包含 OpenType 表格是可能的,例如 Junicode 上发生的情况。
一个简单的例子
让我们看一个智能字体的简单用例。 这是一个 Cormorant 的例子,分别启用了 (顶部) 和禁用了 (底部) OpenType 功能

opensource.com
每个 OpenType 属性都有自己的“标签”,用于激活这些“特殊功能”。 其中一些标签默认启用(例如用于普通连字的 liga 或用于上下文连字的 clig),而另一些标签必须手动启用。
可以在 Dario Taraborelli 的 在 LaTeX 中访问 OpenType 字体特性 中找到 OpenType 标签和名称的部分列表。
查询字体
找出 OpenType 字体的特征很简单。 您所需要的只是 otfinfo 命令,该命令包含在 lcdf typetools 包中(在我的 openSUSE 系统上,它安装为 texlive-lcdftypetools)。 使用起来非常简单:在命令行中,发出类似以下命令:
otfinfo [option] /path/to/the/font
-s 选项提供字体支持的语言,而 -f 告诉我们哪些 OpenType 选项可用。 字体许可证信息通过 -i 选项显示。
如果字体的路径包含空格,请用反斜杠“转义”该空格。 例如,要知道安装在 ~/.fonts/s/ 文件夹中的 Sukhumala Regular.otf 提供了什么,只需在终端中输入
otfinfo -f ~/.fonts/s/Sukhumala\ Regular.otf
在 LibreOffice Writer 中使用 OpenType 表
LibreOffice 5.3 版本为 OpenType 提供了良好的支持。 它不是完全“用户友好”,但它并不难理解,并且它提供了如此多的排版能力,以至于不应该被忽略。
要在 Vollkorn 上同时激活“样式集”1 和 11(请参阅下面的屏幕截图),请在字体名称框中写入
Vollkorn:ss01&ss11
冒号启动扩展字体名称上的“标签部分”,而 & 符号允许我们使用多个标签。
但是还有更多。您还可以禁用任何默认选项。例如,Sukhumala 字体有一些奇怪的上下文连字,会将 aa 变成 ā,ii 变成 ī,uu 变成 ū。要禁用 Sukhumala 上的上下文连字,请在相应的 OpenType 标签 clig 前面添加一个破折号
Sukhumala:-clig
就是这样。 正如我之前所说,它不是完全用户友好的,特别是考虑到字体名称框相当小,但它可以工作!
不要忘记在样式中使用所有这些:直接格式化是良好格式化的敌人。 我的意思是,除非你正在准备一个快速的屏幕截图来展示一篇关于排版的短文。 在那种情况下,这没问题。 但只能在这种情况下。

opensource.com
还有更多
一个有趣的 OpenType 标签是“size”,遗憾的是,它在 LibreOffice 上尚不起作用。 size 功能可以自动选择 光学尺寸,这是一种字体系列,为不同的磅值提供不同的设计。 很少有字体提供此选项(一些 GUST 字体,例如 Latin Modern 或 Antykwa Półtawskiego;一个处于开发初始阶段的有趣项目,称为 Coelacanth;或者,在较小程度上,EB Garamond),但它们都很棒。 目前,享受此属性的唯一方法是通过更高级的布局系统,例如 XeTeX。 在 XeTeX 上使用 OpenType 是一个非常大的话题; fontspec 手册(处理 XeTeX 和 LuaTeX 上的字体选择和配置的包)有 120 多页,所以……今天不行。
是的,Scribus 的 1.5.3 版本增加了对 OpenType 的支持(除了脚注和其他内容),但这仍然是我需要探索的东西。
10 条评论