我可以覆盖由 ttf-mscorefonts-installer 安装的字体,更喜欢 Liberation 字体吗?

con*_*_bw 5 fonts .ttf

我不得不在 Ubuntu 12.04/12.10 上 apt-get install ttf-mscorefonts-installer。简短的版本是我需要将 PDF 文件从需要这些字体用于某些字形的应用程序中导出。

运行此命令后的问题是,我的 Web 浏览器(和一些 Java 应用程序)中的字体现在“丑陋”了。显然这是一种主观意见,但这是我所持有的。

我希望在大多数情况下使用旧字体(Liberation、DejaVu、Ubuntu 等)。我不确定如何最好地描述这一点,但这里有一个例子:

Webbrowser 中的 CSS 示例

font-family: Verdana,Arial,sans-serif;

没有 ttf-mscorefonts-installer(案例 1):

    $ fc-match Verdana
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match Arial
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`
Run Code Online (Sandbox Code Playgroud)

使用 ttf-mscorefonts-installer(案例 2):

    $ fc-match Verdana
    Verdana.ttf: "Verdana" "Normal"

    $ fc-match Arial
    Arial.ttf: "Arial" "Normal"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`
Run Code Online (Sandbox Code Playgroud)

我想要(情况 1)。或者,我希望(案例 2)中的字体不要看起来“丑陋”的 IE。它们比我的网络浏览器中的免费替代品更参差不齐,更不流畅。

这可能吗?

fun*_*orn 4

fontconfig 采用一套完整的字体替换系统。字体定义有不同级别:字体名称和字体系列。给定一个特定的字体,fontconfig 使用同名的字体(如果可用),然后寻找同名的字体系列。如果仍然没有匹配,则使用标准字体系列定义作为替换,即 Sans、Sans-serif 和 Mono。

Ubuntu 在“/etc/fonts/conf.d/45-latin.conf”中定义了字体系列“Verdana”,其中“Verdana”默认设置为“Sans-serif”,这意味着Sans-serif 用于“默认情况下为 Verdana。但如果安装了“Verdana.ttf”,则会使用它。

在您的系统中,Sans-serif 系列中的首选字体是“Liberation Sans”,因此,如果没有同名字体,则fontconfig 使用“Liberation Sans”替代“Verdana” ,而使用“Verdana.ttf”如果它在搜索路径中。这解释了您发布的内容。

因此,问题的解决方案是,您必须将字体“Verdana”重新映射到其他字体,或者映射到一组为“Liberation Sans”分配最高优先级的字体。(推荐后一种情况)

打开或创建文件 ~/.config/fontconfig/fonts.conf,附加以下内容:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<match>
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Liberation Sans</string>
        <string>Verdana</string>
    </edit>
</match>

</fontconfig>
Run Code Online (Sandbox Code Playgroud)

请注意, ~/.fonts.conf 现已弃用,如果您已经有用户定义的 fonts.conf,请删除页眉和页脚,仅保留“匹配”部分。如果在“Arial”上演示相同的解决方法,那就太啰嗦了。我相信你可以自己找到它。