数字排版是我们每天都在使用的东西,但我们很少有人了解数字字体是如何工作的。本文对 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 条评论