首页 > 解决方案 > HarfBuzz - 有没有办法获得特定字体的最大前瞻/回溯字形计数?

问题描述

我们正在开发一个使用 HarfBuzz 处理 OpenType 的文本编辑程序。当用户键入时,我们正在使用 HarfBuzz 对键入后的文本进行重新分析,因此我们将获得正确的 GSUB 等等。

我们希望尽可能分析较少的文本。

我们试图找到如何使用 HarfBuzz 获取有关特定字体的信息,有关在 OpenType 表中此字体的不同查找中定义的前瞻或回溯的最大长度。

有没有办法使用 HarfBuzz 获得“lookaheadGlyphCount”和“backtrackGlyphCount”。

请参阅有关 LookupType 6 和 LookupType 8 的Microsoft 文档

编辑 :

有关更多说明,请参阅 TypeDrawers - Here上的此问题。

标签: opentypeharfbuzz

解决方案


有没有办法使用 HarfBuzz 获得“lookaheadGlyphCount”和“backtrackGlyphCount”。

不使用当前的 HarfBuzz 公共 API。

HarfBuzz 解析表并使用该信息,但出于某种原因没有公开它。您可以使用 HarfBuzz 私有 API 编写自己的解析器,但我已经与 Behdad 交谈过,有理由不公开它,这可能是它的不可靠性或其他原因。

我还应该补充一点,这是字体的非常具体的细节,GSUB/GPOS 不是构建字体的唯一方式,有没有这些字体的字体,而 AAT morx/kerx 字体有不同的故事,所以我的建议是寻找其他缓存解决方案。

Firefox、Chrome 的旧版式引擎和 Minikin 正在使用字缓存方法,https://github.com/linebender/skribo/issues/6你也许也可以使用类似的东西,或者,显然像 LayoutNG 一样单独缓存每个段落铬。


推荐阅读