如何使非抗锯齿文本在 Mac OS X 上的 Firefox 中看起来不错?

Kay*_* II 14 mac firefox fonts anti-aliasing macos

在过去 10 年成为 Windows 用户后,我得到了一台 MacBook Pro,我正在根据自己的喜好进行配置。

我发现小尺寸的抗锯齿文本模糊且难以阅读,因此我通常将其禁用。我在通用控制面板中找到了设置,并使用 TinkerTool 将抗锯齿阈值大小增加到 18pt。Mac OS X 和其他应用程序似乎尊重这些设置。

使用 Firefox 时出现问题。默认情况下,它被配置为忽略 Mac OS 抗锯齿设置。这是通过转到 about:config 并设置gfx.use_text_smoothing_setting= true(默认为false)来更改的。但是,即使使用此设置,Firefox 似乎仍然在假设字体将被抗锯齿的情况下呈现字体,这会导致非常奇怪和不均匀的间距,如您在此示例中看到的(注意“禁用”中的“s”):

使用抗锯齿:

在此处输入图片说明

没有抗锯齿:

无抗锯齿

如何将 Firefox 配置为既不使用抗锯齿使用正确的字体间距?

我使用的是 Mac OS X Lion 和 Firefox 5。

Kay*_* II 0

后来我问了一个关于 Windows 7 上的字体平滑的类似问题,我最终自己回答了这个问题,因为我对这个问题有了更多的了解。

我在这里重新发布这个答案,因为它可能与 Mac OS X 和 Windows 一样相关:


因此,我可能应该发布自从最初提出问题以来我学到的答案。

tl;dr:创建在屏幕分辨率下渲染良好且不进行字体平滑的字体的成本很高,因此大多数网络字体制造商甚至不会尝试。如果不进行字体平滑处理,就无法使带有严重暗示的字体看起来可以接受。

核心问题是,创建一种在屏幕上看起来不错的字体似乎很昂贵。字母的形状存储为数学定义的曲线,可以缩放到任何分辨率,但在低分辨率下,这些曲线不能很好地落在正确的像素上,因此它们需要一种称为字体提示的东西才能清晰显示。字体提示可以手动完成,也可以通过计算机程序(例如ttfautohint )自动完成。

最好的结果来自手动提示的字体。微软花了很多钱来手动提示 Windows 中传统上包含的字体,因此即使没有 ClearType/Font Smoothing,它们也能很好地显示。

自动提示字体的效果要差很多。它们中的大多数需要某种 ClearType/Font Smoothing 才能在低分辨率下获得可接受的显示结果,因为它们的原始形式看起来就像我在原始问题中包含的屏幕截图中的垃圾,带有双粗线等。

这曾经不是一个很大的问题,因为大多数网页设计时都使用用户计算机上已有的字体,而且这些字体通常是高质量的。然后发明了网络字体,这让每个网站设计者都可以忽略用户的高质量本地字体,而是使用一些他们喜欢的低质量字体。这也鼓励了UI 图标和徽标等自定义字体的使用。

因此,如果您讨厌 ClearType/Font Smoothing 并拥有标准分辨率的显示器,那么除非您尝试从正在查看的网页中夺取对字体选择的控制权,否则您就是 SOL。这将是一场艰难而漫长的战斗,因为文本通常使用本地字体可以完美呈现,但您仍然需要图标的网络字体。您可能不想使用浏览器标志来完全禁用网络字体。这里有一些有用的工具。

Chrome:字体拦截器。该工具将允许右键单击某些文本并阻止使用的自定义字体。它可以在许多网页上运行,但谷歌的属性越来越多地出现问题。

Firefox:字体拦截器foxified。该工具似乎与上面的 Chrome 扩展相同,但针对 Firefox 进行了打包。它的工作原理是一样的。

我确实希望有人能为网络字体创建类似广告拦截器的东西,它将使用社区管理的字体替换和页面修复列表来使网络无需非图标网络字体即可轻松浏览。

最终,向更高显示像素密度的转变将使这个问题变得毫无意义。