使用已安装的字体替换给定的未安装字体的正确 Fontconfig 语法是什么?

使用已安装的字体替换给定的未安装字体的正确 Fontconfig 语法是什么?

Fontconfig 文档相当不透明。我希望查找“Helvetica”系列的应用程序改为接收“Helvetica LT Std”系列并显示该字体,尤其是浏览器。我写入 ~/.fontconfig/fonts.conf 的最新 XML 文件是

<fontconfig>

    <match target="pattern">
        <test name="family" target="default" compare="eq">
            <string>Helvetica</string>
        </test>
        <edit name="family" mode="assign">
            <string>Helvetica LT Std</string>
        </edit>
    </match>

</fontconfig>

我做错了什么?表达这种替代的正确方法是什么?

答案1

这对我来说可以用 Ubuntu 替换 Arial

<!--?xml version="1.0"?>-->
<!--DOCTYPE fontconfig SYSTEM "fonts.dtd">-->
<!-- ~/.fonts.conf for per-user font configuration -->
<fontconfig>
<match>
    <test name="family"><string>Arial</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Ubuntu</string>
        <string>Arial</string>
    </edit>
</match>
</fontconfig>

我发现 fc-match 非常有用。

另外,我使用的是 Precise,所以我使用 ~/.fonts.conf。在 Quntal 中,我理解您应该使用 ~/.config/fontconfig/fonts.conf

答案2

这与我使用的替换完全相同!这是我的配置,但它仅在指定字体不可用时才有效。如果指定的字体可以通过 fontconfig 访问,则名为海尔维提卡,别名将不适用。但是,这在我的所有 Ubuntu 安装中都运行正常,因此我建议在使用匹配标签。

<fontconfig>

<!-- Excerpt -->

    <alias>
        <family>Helvetica</family>
        <accept>
            <family>Helvetica LT Std</family>
        </accept>
    </alias>

<!-- Excerpt -->

</fontconfig>

相关内容