TrueType 与 OpenType 字体有什么区别?
作者:Erwin Denissen,发布于 2020 年 3 月 25 日 · 最后针对 FontCreator 16 复核
全球有一半以上的人每天都在使用字体。多数人并不关心其内部结构,但也有人想知道 TrueType 和 OpenType 究竟有何不同,或者能否根据文件扩展名判断哪款字体更好。
本文澄清网络上流传的关于字体格式的各种误解和错误说法。最常见的有:
- 误解:
.ttf就是 TrueType,.otf就是 OpenType。 - 误解:OTF 总是比 TTF 更专业。
- 误解:TTF 无法包含 OpenType 排版特性。
- 误解:文件扩展名能说明轮廓格式。
读到最后,您就会明白上述说法为何都不正确。首先来了解一下可缩放字体技术的背景。
PostScript Type 1
Adobe 于 1984 年推出 PostScript Type 1。它在桌面排版领域非常流行,但如今已属过时技术 — Adobe 已于 2023 年在自家应用程序中结束了对 Type 1 的支持。
TrueType
TrueType 由 Apple 于 1980 年代末开发,用以与 Adobe 的 PostScript Type 1 竞争,自 1991 年的 Apple Macintosh System 7 起可用。Apple 将 TrueType 授权给 Microsoft,1992 年起它也出现在 Microsoft Windows 3.1 上。
OpenType
1994 年,Microsoft 开发了 TrueType Open。Microsoft 与 Adobe 共同改进,于 1996 年形成 OpenType。它是 TrueType 格式的扩展:保留其基本结构,并加入大量规定排版行为的数据结构 — 连字、小型大写字母、旧式数字等 — 使字体设计者能够制作更出色的多语言与高端排版字体。TrueType 只允许 TrueType 轮廓,而 OpenType 还支持基于 Compact Font Format 的轮廓(CFF 是 Type 1 字体的一种变体)。OpenType 解决了 Macintosh 与 Windows 之间的许多兼容性问题。OpenType 自规范 1.3 版起不再支持 Multiple Master,但自 2016 年起支持 font variations(见下文)。
OpenType Font Collection
OpenType Font Collection(旧称 TrueType Collection)是一种把多个 OpenType 字体资源装进单个文件结构的方式。
OpenType Font 变体(也称可变字体)
2016 年,OpenType 规范加入了对 font variations 的支持。它让同一字体家族的多个字形可以装进单个资源中 — thin、regular、bold、heavy,以及 condensed 和 expanded 都能放在一个字体文件里 — 并支持沿所含设计轴连续变化。轮廓格式可以基于 TrueType 或 CFF,但基于 CFF 的可变字体使用新的内部 CFF2 表。由于 CFF2 表不向后兼容,多数字体设计者会制作基于 TrueType 的可变字体。关于曲线格式的取舍,请参见TrueType 与 PostScript:TTF、OTF 与曲线格式。
Web 字体
Web Open Font Format(包括 WOFF 和 WOFF2)是一种封装格式,可封装 TrueType 字体、OpenType 字体、OpenType 字体集合或可变字体。WOFF2 与 WOFF 用途相同,但采用更新、更高效的压缩。两者在所有主流浏览器中都已实现,不过非常老旧的浏览器可能只支持 WOFF,或完全不支持 Web 字体。
TrueType 字体还存在吗?
也可以说,OpenType 字体都是添加了额外数据结构的 TrueType 字体。我们更愿意把 OpenType 视为一种新格式:它确实以 TrueType 为基础,但两者并不相同。
如果接受这一定义,那么现代计算机附带的主要都是 OpenType 字体。网络上仍流传着大量老字体,其内部只包含最初 TrueType 规范定义的数据结构,但最好避免使用,因为它们已不符合当今的设计标准。
如果您想继续把所有 OpenType 字体都称为 TrueType,那又有什么意义呢?这并不能说明任何问题。而把采用 TrueType 轮廓的字体叫作「TrueType」、采用 CFF 轮廓的叫作「OpenType」,更是完全错误 — 下一节会解释原因。

文件扩展名 — TTF 与 OTF
Type 1 如今已是过时技术,旧的「纯 TrueType」字体也不是现代字体编辑器通常导出的结果。当 FontCreator 导出带有 TrueType 轮廓的 .ttf 时,它导出的仍然是 OpenType 字体 — 只不过使用的是二次 TrueType 轮廓。面向现代桌面和网络分发的新字体几乎都基于 OpenType。那么人们为何还在谈论「ttf」与「otf」之争?
大概是因为他们以为扩展名能说明内部的轮廓格式。事实并非如此,下面就来解释。
就字形轮廓格式而言,OpenType 字体有以下几种形式:
- 使用 TrueType 轮廓(二次贝塞尔曲线)的 OpenType
- 使用 CFF 轮廓(三次贝塞尔曲线,与 PostScript Type 1 相同)的 OpenType
- 同时包含 TrueType 与 CFF 轮廓的 OpenType(少见,不建议)
- 仅包含内嵌位图字形,或只有颜色数据而无常规轮廓回退的 OpenType — 属于特殊用途,不建议用于通用字体
大约 25 年前,Microsoft 主要出于兼容性考虑,决定保留原有的 TrueType 扩展名「ttf」,但仅用于采用 TrueType 轮廓的 OpenType 字体。同时引入了新的扩展名「otf」,两种形式都可以使用它。
由于以 .otf 结尾的文件既可能是带 TrueType 轮廓的 OpenType 字体,也可能是带 CFF 轮廓的字体,因此不应用扩展名来区分两者。重命名字体文件并不会改变其内部数据:编写良好的软件应当检查字体内容,而不是依赖扩展名 — 当然,扩展名作为兼容性约定仍然重要。
OpenType 官方规范是这样说的:
「在任何情况下,软件都必须根据文件内容、而非文件名扩展名来判断字体中包含的轮廓类型。」
文本排版与光栅化器
字体厂商通常提供多种字体文件供选择,这让人难以判断该用哪一个。那么真正重要的是什么?
光栅化器接收字形轮廓并将其输出到设备上。输出效果的好坏主要取决于光栅化器、轮廓本身、字号以及可选的 hinting。字体在高分辨率显示器和印刷中通常表现出色,但在过时的浏览器中可能很糟糕。因此,您需要什么样的质量和轮廓格式,取决于具体场景。
OpenType 排版特性
字体另一个非常重要的部分是它的 OpenType 特性,可让文本处理程序改善排版效果。其中若干高级排版功能对阿拉伯文等复杂文字体系的字体不可或缺,另一些则用于 Adobe InDesign 等桌面出版和排版软件中启用特定的字符变体。并非所有软件都支持全部 OpenType 排版特性,因此并非处处都能使用。请注意:无论字体使用 TrueType 还是 CFF 轮廓,这些特性都可能存在 — 它绝不是「仅 OTF 才有」的东西。
字体内部表
下面是用于标识字体具体特性的内部表的技术性汇总:
| 纯 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 |
| Web 文件扩展名 | 不适用 | .woff 或 .woff2 | .woff 或 .woff2 |
由于这些信息都深藏在字体内部,使用 MainType 这样的字体管理器来查看会方便得多。

这样便可确认您使用的是最新版本的字体,并带有最新的 OpenType 排版特性。
小结
如果有人让您用 OTF 而不用 TTF,他们大概没有看到全貌。如果他们谈的是文件扩展名、「OpenType 对 TrueType」,或内部轮廓格式(TrueType 轮廓与 CFF 轮廓),那都不是 TTF 与 OTF 的真正区别 — 请把这篇文章转给他们。如果他们真正想要的是 OpenType 排版特性,那么那才是应该问的问题。
旧的纯 TrueType 字体已属过时。在 FontCreator 中进行新项目时,请在带 TrueType 轮廓的 OpenType 字体与带 CFF/CFF2 轮廓的 OpenType 字体之间选择。我们喜欢把 TrueType 字体比作一个正方形,而 OpenType 则是在其上加了一个顶点 — 正方形由此变成金字塔。底面仍是正方形,但看到金字塔时,您会称它为正方形吗?
所以字体的文件扩展名只是提示,并不能证明其内部格式。若想确知某款字体采用哪种轮廓格式、包含哪些 OpenType 排版特性,请直接查看字体内部 — 使用 MainType 这类字体管理器会很方便。如果可以在 TrueType 轮廓字体与 CFF 轮廓字体之间选择,请选语言支持最好、OpenType 排版特性足够的那一款。另外,如果您的用户依赖 Microsoft Word 及其 PDF 导出,请仔细测试字体嵌入 — 在以 Word 为主的流程中,TrueType 轮廓字体往往是更稳妥的选择。
延伸阅读
- 应该导出哪种字体格式? — 面向 TTF、OTF、WOFF2、可变字体和彩色字体的快速选择指南。
- TrueType 与 PostScript:TTF、OTF 与曲线格式 — 深入比较二次轮廓与三次轮廓。