OpenType/TrueType 中复合字形的组成部分
Components of Compund Glyphs in OpenType/TrueType
我在 OpenType/TrueType glyf table 的规范中找不到任何说明复合字形的组成部分是否总是简单字形的信息,或者如果它们本身可以是复合字形(即递归复合字形)。
由于规范没有明确禁止复合字形作为组件,我认为理论上是可能的。但我的问题是:是否有任何字体实际上包含递归复合字形?是否有任何主要字体工具支持此功能?
背景是我正在编写一个简单的字体解析器,我想知道我是否需要了解递归复合字形,因为这会使算法有点复杂。
更新: 我在 maxp table 的规范中找到了一些信息。这定义了 maxComponentDepth,这是复合字形的最大递归级别。这告诉我递归复合字形是可能的。但它们真的被使用了吗?
我发现在标准的 Arial 字体中有四个复合字形,它们以另一个复合字形作为组成部分。一个例子是索引 471 处的字形,它用于 unicode U+01FB(拉丁文小写字母 a,上面有圆环和锐角)。它由 Acute 字形(简单字形)和上面带环的小拉丁文 a(复合字形)组成。
TrueType 字体 Arial 中字形 471 的组成:
所以由此得出的结论是:
- TrueType/OpenType 字体中可以使用递归复合字形。
- 这些字形存在于常见字体中。
我在 OpenType/TrueType glyf table 的规范中找不到任何说明复合字形的组成部分是否总是简单字形的信息,或者如果它们本身可以是复合字形(即递归复合字形)。
由于规范没有明确禁止复合字形作为组件,我认为理论上是可能的。但我的问题是:是否有任何字体实际上包含递归复合字形?是否有任何主要字体工具支持此功能?
背景是我正在编写一个简单的字体解析器,我想知道我是否需要了解递归复合字形,因为这会使算法有点复杂。
更新: 我在 maxp table 的规范中找到了一些信息。这定义了 maxComponentDepth,这是复合字形的最大递归级别。这告诉我递归复合字形是可能的。但它们真的被使用了吗?
我发现在标准的 Arial 字体中有四个复合字形,它们以另一个复合字形作为组成部分。一个例子是索引 471 处的字形,它用于 unicode U+01FB(拉丁文小写字母 a,上面有圆环和锐角)。它由 Acute 字形(简单字形)和上面带环的小拉丁文 a(复合字形)组成。
TrueType 字体 Arial 中字形 471 的组成:
所以由此得出的结论是:
- TrueType/OpenType 字体中可以使用递归复合字形。
- 这些字形存在于常见字体中。