浏览器字体连字渲染 - θ 和拉丁字符之间的连字不起作用

Browser font ligature rendering - Ligatures between θ and latin characters not working

我正在使用 FontForge 开发 WOFF2 字体。所有连字在 Chrome、 中正确呈现,除了 那些在 θ 和拉丁元音之间定义的那些总是显示为单独的字符。

连字在 GSUB table 中定义,具有特征 'liga' 和脚本“DFLT{dflt} latn{dflt} grek{dflt}”。连字在 Fontforge 的 Metrics 预览中按预期呈现,只是在编译为 WOFF2 并在 Chrome.

中使用时不是

如果我除了将字符 θ 更改为拉丁字符外什么都不做,连字会按预期出现,所以我的工作理论是问题是由于 θ 是唯一被 Unicode 定义为在希腊范围内,而所有其他连字都在定义为拉丁字符之间。谁能解释这种行为或提供解决方案?

一个选项是将字符 θ 替换为拉丁字符,但这在某种程度上破坏了 IPA 支持,因此是不可取的,所以我更愿意找到一种允许 Chrome 识别此类连字的方法(例如“ θu").

与 HarfBuzz 的一位开发人员交谈后发现,这根本无法在 Chrome 中完成,因为来自不同脚本的文本在传递给 HB 之前将被分成不同的运行渲染,因此永远不会触发这样的连字。

目前的解决方案是使用 T 而不是 θ。