【发布时间】:2021-08-04 17:17:27
【问题描述】:
OpenType documentation 声明对于 4.1 类型的 GPOS 查找(Mark-to-Base Attachment Positioning),应用程序必须执行以下操作:
要识别与标记组合的基本字形, 文本处理客户端必须从 标记到前面的基本字形。
但是我需要回顾多远?这总是前面的字符吗?或者我是否需要跳过标记覆盖表中的所有字形?还是返回直到我在基本覆盖率表中找到一个字形?
【问题讨论】:
OpenType documentation 声明对于 4.1 类型的 GPOS 查找(Mark-to-Base Attachment Positioning),应用程序必须执行以下操作:
要识别与标记组合的基本字形, 文本处理客户端必须从 标记到前面的基本字形。
但是我需要回顾多远?这总是前面的字符吗?或者我是否需要跳过标记覆盖表中的所有字形?还是返回直到我在基本覆盖率表中找到一个字形?
【问题讨论】:
MarkBasePosFormat1 表有一个基本覆盖子表,它指定一组要匹配的字形。在确定是否将应用给定查找时,您希望匹配以基本覆盖子表中指定的字形之一开头的字形序列。
从另一个方向,从标记向后,您跳过在 GDEF 表的 Glyph Class Definition 子表中标识为标记字形的任何字形。当您找到候选字形时,您需要检查它是否包含在基本覆盖率表中。
我看到Harfbuzz implementation 在向后扫描时会检查其他一些细节,您可能想检查一下:在 MarkBasePosFormat1 结构中查找 apply 方法。 (我并不是说 Harfbuzz 是定义规范意图的参考实现;但它被广泛使用并且可以作为开源使用。)
【讨论】: