Qt 4.8 支持哪些 OpenType GSUB 功能?

Which OpenType GSUB features does Qt 4.8 support?

Qt 4.8 中的文本渲染支持哪些字形替换功能?我正在招聘一位字体设计师来创建需要 OpenType 字形替换 (GSUB) 的字体,这个人想知道他可以使用哪些功能。

我指的是标准连字 (liga)、自由连字 (dlig)、所有替代 (aalt) 等功能。 GSUB 功能扫描的完整(?)列表可在本文末尾找到:http://ilovetypography.com/OpenType/opentype-features.html


我联系了 OpenType 邮件列表和一位 Qt 开发人员(Jiang)并了解了详细信息:

  • 我可以通过使用 "-qt-harfbuzz" 配置重新编译 Qt,在 Qt 5.3 中获得扩展的 OpenType 功能。这启用了实验性 Harfbuzz-NG 支持,然后涵盖以下 GSUB 功能:CALT、CCMP、CLIG、CURS、KERN、LIGA、LOCL、MARK、MKMK、RLIG。 Qt 5.3 的默认构建仅支持 CCMP、LIGA 和 CLIG。

  • Windows 和 Linux 上的 Qt 4.8 仍然使用旧的 Harfbuzz,只有少数可用的 GSUB 功能(CCMP、LIGA、CLIG)。 Qt 4.8 中没有实验性 Harfbuzz-NG 选项。有可能在旧的 Harfbuzz 源代码(Qt 的一部分)中启用更多功能并重新编译 Qt,但这尚未得到验证。我现在正在测试这个。

  • Mac 上的 Qt 是另一回事。它默认支持 Qt 4.8 和 5.3 中的更多 GSUB 功能,包括 CALT。以下是江的解释:"据我所知,Qt 4.8 Mac 是这里的异常值,因为它默认使用 Core Text,而在 Linux 和 Windows 上使用旧的 HarfBuzz。Core Text 应用了自己的 OpenType 功能集,因此结果与旧的 HarfBuzz 不同,默认情况下可能不应用 calt。"