OpenType/TrueType 中复合字形的组成部分

Posted

技术标签:

【中文标题】OpenType/TrueType 中复合字形的组成部分【英文标题】:Components of Compund Glyphs in OpenType/TrueType 【发布时间】:2017-08-01 09:55:54 【问题描述】:

我在OpenType/TrueType glyf 表的规范中找不到任何信息,该表说明复合字形的组件是否始终是简单字形,或者它们是否可以是复合字形他们自己(即递归复合字形)。

由于规范没有明确禁止复合字形作为组件,我认为理论上是可能的。但我的问题是:是否有任何字体实际上包含递归复合字形?是否有任何主要的字体工具支持这一点?

背景是我正在编写一个简单的字体解析器,我想知道我是否需要了解递归复合字形,因为这会使算法更加复杂。

更新:我在 maxp table 的规范中找到了一些信息。这定义了 maxComponentDepth,它是复合字形的最大递归级别。这向我表明递归复合字形是可能的。但它们真的被使用了吗?

【问题讨论】:

【参考方案1】:

我发现在标准 Arial 字体中有四个复合字形,其中有另一个复合字形作为组件。一个例子是索引 471 处的字形,它用于 unicode U+01FB(拉丁小写字母 a,上面有圆环和锐音)。它由Acute glyph(简单字形)和上面带环的小拉丁字母a(复合字形)组成。

TrueType 字体 Arial 中字形 471 的组成:

所以由此得出的结论是:

    在 TrueType/OpenType 字体中可以使用递归复合字形。 这些字形以常见字体存在。

【讨论】:

很好的研究!我自己也想知道。顺便说一句,你的解析器进展如何?

以上是关于OpenType/TrueType 中复合字形的组成部分的主要内容,如果未能解决你的问题,请参考以下文章

自定义 OpenType / TrueType 字体不起作用且难以调试

TrueType字体文件提取关键信息

TrueType字体文件提取关键信息

使用 NodeJS 将 OpenType / TrueType 格式转换为 png 图像

TrueType字体文件提取关键信息

为啥没有包含所有 Unicode 字形的字体? [关闭]