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



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

在GSUB表中用特征"liga"和脚本"lega"定义了连字;DFLT{DFLT}latn{DFLT}grek{DFLT{";。在Fontforge中的Metrics预览中,结扎符按预期呈现,只是在编译为WOFF2并在Chrome中使用时没有。

如果我只把字符θ改成拉丁字符,那么连字就会像预期的那样出现,所以我的工作理论是,这个问题是因为θ是Unicode定义的唯一在希腊语范围内的字符,而所有其他连字都在定义为拉丁语的字符之间。有人能解释这种行为或提供解决方案吗?

一种选择是用拉丁字符替换字符θ,但这在一定程度上破坏了IPA的支持,所以这是不可取的,所以我更愿意找到一种允许Chrome识别此类连字的方法(例如"θu"(。

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

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

最新更新