如何让 Firefox 为 Helvetica、Times 等使用 MS TrueType 字体?

Jon*_*nik 8 linux firefox fonts truetype ubuntu

我在我的 Ubuntu 工作站上使用 (Windows) TrueType 字体(详细信息),并且对桌面应用程序和网络(使用 Firefox)中的字体外观非常满意。

然而,在一些网页上,比如这个,字体完全糟糕:

截屏

我找到了Helvetica在该站点的 CSS 中的原因:

font-family: Helvetica,Arial,Tahoma,sans-serif;
Run Code Online (Sandbox Code Playgroud)

当我使用 Firebug 从该列表中删除 Helvetica 时,它使用 Arial 并再次看起来很漂亮:

替代文字

我的问题是,如何使使用 Helvetica(或 Times,或其他此类字体)的网页自动看起来不错?换句话说,如何将 Times 和 Helvetica 字体系列映射到 serif 和 sans-serif 默认值(在我的情况下分别是 Times New Roman 和 Arial)?

我对任何让 Firefox 在这种情况下使用 MS TrueType 字体的解决方案感兴趣,无论它是基于在 Firefox 中调整 Ubuntu 字体配置还是自定义 CSS 规则(或其他我目前一无所知的东西)。

更新:我现在已经完全解决了这个问题——这个答案描述了我需要做什么。

Jon*_*nik 8

编辑:在从同事那里得到一些突破性的建议后,我完全更新了这个答案。

这是我插入的内容/etc/fonts/local.conf(在<fontconfig>元素内):

<!-- Replace Helvetica with Arial -->
<match target="pattern">
    <test qual="any" name="family">
        <string>Helvetica</string>
    </test>
    <edit name="family" mode="assign" binding="strong">
        <string>Arial</string>
    </edit>
</match>    
Run Code Online (Sandbox Code Playgroud)

Times -> Times New Roman 也是如此。(见我全local.conf 在这里。)关键是使用绑定=“强壮”<edit>元素。(此外,使用“assign_replace”模式而不是“assign”会导致类似的情况,只是它太激进了:Verdana 也被 Arial 替换了)。

字体配置的更改立即生效。除了在 Firefox 中进行测试,您还可以检查它是否像这样工作:

$ fc-match helvetica
Arial.ttf: "Arial" "Normal"
Run Code Online (Sandbox Code Playgroud)

如果遇到问题,最好的帮助就在附近:man fonts-conf。(尽管有了文档,字体系统的工作对我来说似乎有些复杂或笨拙。)您也可以尝试使用以下命令“调试”真正发生的事情:

FC_DEBUG=4 fc-match helvetica
Run Code Online (Sandbox Code Playgroud)

此外,FC_DEBUG=1024 fc-match helvetica显示影响字体匹配的配置文件列表。