gpt4 book ai didi

fonts - GSUB 表是否广泛填充 TrueType 字体?

转载 作者:行者123 更新时间:2023-12-02 02:57:22 26 4
gpt4 key购买 nike

长话短说,我在不使用 FreeType 或 HarfBuzz(出于各种原因)的情况下渲染字体,通过手动解析 TrueType 和衍生格式来提取元数据和字形信息,以便稍后从其轮廓构建位图和距离场运行。我担心的是必要时可靠的字形替换,即某些序列必须根据语言规则被另一个序列替换。

我不清楚的是 GSUB 表通常可以被假设为有多可靠。换句话说,例如,期望阿拉伯字体应该提供包含阿拉伯文字所需的替换的填充 GSUB 表是否合理?或者,考虑到这是按脚本进行的,通常是否假设字体仅提供特殊的按字体替换,而整形引擎则假定将任何按脚本替换作为全局规则处理?我不担心替换的字形可能不可用,因为系统会在这种情况下搜索后备,否则将恢复到原始序列。

显然,为每个脚本设置一个全局规则集作为后备是完全可靠的,但我希望尽可能减少它。抱歉,这不完全是一个经验问题,但我很难找到这方面的大量信息,除非需要实际检查各种字体的大量样本。 This overview似乎表明将定义每个脚本的替换,但鉴于表是模块化的,当然不能保证甚至会有一个表,更不用说所需的定义了。如果做不到这一点,是否有任何已知的各种脚本的替代数据库?

最佳答案

说 OpenType 字体是一个完全独立的排版程序,并且“文本整形器只能‘按照字体的指示进行操作’”是不准确的。特别是对于像阿拉伯语或梵文这样的脚本,在文本整形器中实现的字体之间存在非常重要的共同逻辑。

这意味着支持阿拉伯语之类的东西根本不像实现解析“GSUB”和“GPOS”表并在其中应用查找(操作)的逻辑那么简单。这绝对不是一项小任务,我当然会寻找现有的实现来重用。

您提到您已选择不使用 Harfbuzz。我建议您重新考虑这一点。

What I'm unclear about is how reliable the GSUB table can generally be assumed to be. In other words, is it reasonable to expect that an Arabic font, for example, should provide a populated GSUB table containing the substitutions required for an Arabic script?

绝对是!阿拉伯字体必须具有“GSUB”、“GPOS”和“GDEF”表才能正确显示阿拉伯文本。原则上不可能按脚本/跨字体替换,更不用说在实践中了。

您可能会发现一些有用的资源 - 有些资源已经过时(MS Typography 网站已重新发布,因此页面上的日期并不总是反射(reflect)原始发布日期),但内容仍然相关。虽然可能引用了 Windows,但它适用于任何 OpenType 布局引擎。

关于fonts - GSUB 表是否广泛填充 TrueType 字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60822708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com