很多网站都在解释如今该使用哪种字体最好,但其中一些提供的信息并不准确,反而让人更加困惑。这里我们澄清真正重要的事。
世界上一半以上的人口每天使用字体。大多数人不在乎内部细节,但有些人想知道 TrueType 和 OpenType 之间是否有区别,或者他们是否可以根据文件扩展名决定哪种字体最好。
本文旨在揭穿互联网上流传的关于字体格式的神话和错误信息。例如:
| 来源 | 声明/信息 | 结论 |
|---|---|---|
| 356labs – OTF vs TTF? 有什么区别? | 带有 .ttf 文件扩展名的字体比 OTF 相对较旧 | 错误 |
| MakeUseOf – OTF vs. TTF 字体:哪个更好? | 让您相信 TrueType 字体是 ttf,OpenType 字体是 otf | 误导性 |
让我们从一些相关的定义和关于可缩放字体技术的背景信息开始:
Adobe 于 1984 年推出了 PostScript Type 1。它在桌面出版商中变得非常流行,但已被淘汰超过十年。
TrueType 由 Apple 在 1980 年代末发明,作为 Adobe 的 PostScript Type 1 的竞争产品。它自 1991 年起可用(Apple 的 Macintosh System 7)。Apple 免费向 Microsoft 许可 TrueType,并于 1992 年在 Microsoft Windows 3.1 上可用。
1994 年,Microsoft 开发了 TrueType Open。它由 Microsoft 和 Adobe 共同进一步改进,于 1996 年成为 OpenType。它是 TrueType 字体格式的扩展,保留了其基本结构,并添加了许多数据结构来规定排版行为,例如连字、小型大写字母和旧式数字,这使字体创作者能够设计更好的国际和高端排版字体。虽然 TrueType 只允许 TrueType 轮廓,但 OpenType 也支持基于紧凑字体格式的轮廓(CFF 是 Type 1 字体的变体)。OpenType 解决了 Macintosh 和 Windows 计算机之间的许多兼容性问题。OpenType 中的多主支持自规范版本 1.3 起已停止,但自 2016 年起它支持字体变体(见下文)。
OpenType 字体集合(以前称为 TrueType 集合)是在单个文件结构中提供多个 OpenType 字体资源的一种方式。
2016 年,OpenType 规范中添加了对字体变体的支持。它允许在单个字体资源中包含字体族内的多个字体,因此例如细体、常规、粗体和重型以及压缩和扩展可以包含在单个字体文件中,此外,它还允许沿包含的设计轴进行连续变化。轮廓格式可以是基于 TrueType 或 CFF 的,但对于基于 CFF 的,引入了新的内部 CFF2 表以支持可变字体。由于此 CFF2 表不向后兼容,大多数字体设计师制作基于 TrueType 的可变字体。
网络开放字体格式(WOFF 和 WOFF2 版本)是一种封装格式,封装了 TrueType 字体、OpenType 字体、OpenType 字体集合或可变字体。WOFF2 基本上等于 WOFF,但具有更好的压缩。两者都在所有主要网络浏览器中实现,尽管旧的网络浏览器可能只支持 WOFF,或者根本不支持网络字体。
您可以争辩说 OpenType 字体都是包含额外数据结构的 TrueType 字体。我们更愿意将 OpenType 视为一种新格式,当然它基于 TrueType,但它并不相同。
如果您同意此定义,那么可以安全地说所有现代计算机主要附带 OpenType 字体。互联网上仍然有许多旧字体在流传,它们内部仅包含原始 TrueType 字体规范中定义的数据结构,但最好避免使用它们,因为它们不再符合今天的设计标准。
如果您想继续对所有 OpenType 字体使用术语 TrueType,那有什么用?它不会澄清任何事情。
如果您想将带有基于 TrueType 轮廓的字体称为 TrueType,将带有基于 CFF 轮廓的字体称为 OpenType,那完全是错误的。不要这样做,而是再次阅读本文。
PostScript Type 1 和 TrueType 字体都不再制作。所有新发布的字体都是 OpenType 字体,就这样。但为什么人们仍然提到 ttf 和 otf?
可能是因为他们认为可以根据字体的文件扩展名来区分内部轮廓格式。这完全是错误的,所以让我们来解释一下。
关于字形轮廓格式,OpenType 字体有以下几种类型:
大约 25 年前,Microsoft 认为继续允许原始 TrueType 字体文件扩展名"ttf"是明智的,主要是出于兼容性原因,但仅适用于带有基于 TrueType 轮廓的 OpenType 字体。引入了新的字体文件扩展名"otf",并且允许用于两种字体类型。
由于以 .otf 结尾的文件可以是带有基于 TrueType 轮廓的 OpenType 字体,也可以是带有基于 CFF 轮廓的 OpenType 字体,因此文件扩展名不应用于区分上述 OpenType 字体类型。还要注意,如果您采用现有字体并将文件扩展名从 .otf 更改为 .ttf,它的行为仍然相同,因此文件扩展名毫无意义!
以下是官方 OpenType 规范对此的说明:
"在所有情况下,软件必须根据文件内容而不是文件扩展名来确定字体中存在的轮廓类型。"
字体供应商通常提供多个字体资源供选择。这使得很难判断应该使用哪一个。那么,什么很重要?
光栅化器获取字形轮廓并将其输出到设备上。输出效果的好坏主要取决于光栅化器、轮廓、字体大小和可选的微调。字体在高分辨率显示器上和打印时通常看起来很棒,但在过时的网络浏览器中查看时可能看起来很糟糕。因此,您需要什么质量的字体和什么轮廓格式取决于您的需求。
字体的另一个非常重要的部分是 OpenType 功能,因为它们使文本处理应用程序能够改进文本布局。其中一些高级排版功能对于复杂脚本字体(如阿拉伯语)至关重要,而其他功能则在桌面出版和排版软件(如 Adobe InDesign)中使用,以激活字体中可用的特定字符变体。并非所有软件都支持所有 OpenType 布局功能,因此并非所有功能在所有软件中都可访问。
以下是标识字体特定特征的内部字体表的技术摘要:
| 特征 | 纯 TrueType | OpenType TT | OpenType CFF |
|---|---|---|---|
| OS/2 版本 0 或 1 (OS/2) | 是 | 否 | 否 |
| OS/2 版本 3+ (OS/2) | 否 | 是 | 是 |
| 基于 TrueType 的轮廓 (glyf 和 loca) | 是 | 是 | 否 |
| 基于 CFF 的轮廓 (CFF 或 CFF2) | 否 | 否 | 是 |
| OpenType 功能 (BASE, GDEF, GPOS, GSUB, JSTF) | 否 | 可选 | 可选 |
| 桌面文件扩展名 | .ttf | .ttf 或 .otf | .otf |
| 网络文件扩展名 | 不适用 | .woff 或 .woff2 | .woff 或 .woff2 |
由于所有这些信息都深埋在字体资源内部,因此使用字体管理器(如 MainType)要方便得多:
然后您可以确保您使用的是字体的最新版本,该版本带有最新的 OpenType 布局功能。
如果人们告诉您使用 OTF 而不是 TTF,他们可能不知道他们在说什么。如果他们指的是文件扩展名,或者 OpenType 与 TrueType,或者内部轮廓格式(基于 TrueType 的轮廓与紧凑字体格式轮廓),请将他们指向本文,因为这不是 OTF 和 TTF 的内容。如果他们希望您使用包含 OpenType 布局功能的字体,那么他们应该谈论这一点。
纯 TrueType 字体是遗留字体,应该避免使用。我们喜欢将 TrueType 字体比作正方形,而 OpenType 在其顶部添加了一个顶点。有了这个新维度,它将正方形变成了金字塔。当然底部仍然是正方形,但是当您看到金字塔时,您会称它为正方形吗?
因此,字体文件扩展名毫无意义。您需要调查字体内部以确保使用什么轮廓格式以及字体附带什么 OpenType 布局功能。我们建议使用字体管理器(如 MainType)来检查您的字体。当您可以选择带有基于 TrueType 轮廓的字体和带有基于 CFF 轮廓的字体时,请选择具有最佳语言支持和足够 OpenType 布局功能的字体。如果您使用 Word,明智的做法是使用带有基于 TrueType 轮廓的 OpenType 字体,因为这些字体可以嵌入到导出的 PDF 文档中。