显示来自Firefox中Materialized的Roboto字体的问题

时间:2016-01-12 18:48:38

标签: firefox fonts font-face materialize

我正在使用Materialize为我的某些网页设置样式。我注意到Roboto字体在Firefox(v43.0.3)中无法正确呈现,但在Chrome中看起来很好。两个浏览器都从我的服务器下载woff2字体文件,this question似乎表明它应该是现代浏览器的最佳选择。

Chrome渲染: enter image description here

Firefox渲染: enter image description here

(我意识到这些低分辨率的屏幕显示不是最好的再现,在实际的浏览器中差异更明显。)

在Firefox控制台中,我收到一串类似于以下内容的错误消息:

downloadable font: GSUB: too large substitute: 65535 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)

downloadable font: Layout: Failed to parse lookup subtable 0 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)

downloadable font: Layout: Failed to parse lookup subtable 0 (font-family: "Roboto" style:normal weight:normal stretch:normal src index:1)

Chrome没有投诉。

由于我对字体渲染的复杂性一点都不熟悉,所以我希望那些在该领域有一定知识的人可能会根据Firefox的错误消息知道问题是什么。

2 个答案:

答案 0 :(得分:6)

我终于有了一些时间来研究这个问题,看来materialize存储库中的某些字体文件存在缺陷。只需将dist/font/roboto目录中的字体文件替换为roboto-fontface-bower处可用的相同文件,我就能完全解决此问题。只需从任何版本分支v0.3.0或更好。

希望这可以帮助那些因此而感到沮丧的人。

答案 1 :(得分:2)

对我而言,看起来woff2文件对内部字体表有错误的偏移,或者Firefox在解析偏移时读取错误的偏移量。

错误消息中提到的GSUB表不能成为渲染问题的主要原因,因为它只定义了字形替换(如连字组合和分解,相同字符代码的替代字形等)。该表不包含标准字形的任何呈现信息,因此如果仅加载该表,则不应影响标准文本的呈现。有关GSUB表的详细信息,请参阅Microsoft's OTF specification

此外,我在查看此网站时收到另一条错误消息:   http://gwt-material-demo.herokuapp.com/

Firefox告诉我OS/2表(包含Windows字体指标)有问题。这是字体文件的一个完全不同的部分,它再次表明字体结构有问题或者读取字体结构。

所以你可以做两件事:

  1. 请勿使用woff2文件。

  2. 通知Roboto和Firefox开发人员有关此问题,并希望他们能找到导致此错误的原因并进行修复。