设置默认衬线和无衬线的后备字体

mrd*_*iri 5 fonts

系统中使用的默认无衬线字体不包含一些来自中东语言的字符。所以我想设置一个后备字体,以便在某些符号丢失时使用。

AFAIK,它与fontconfigfonts.conf文件有关。这是我当前的fonts.conf文件:

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>sans</family>
        <prefer>
                <family>FONTNAME</family>
        </prefer>
    </alias>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

哪里FONTNAME是包含所有符号的字体。它可以工作,但是设置此后,默认字体消失,整个系统使用FONTNAME默认无字体。(请注意,FONTNAME也有拉丁字符。)

13r*_*ac1 3

如果有的话,安装您需要的字符的 Ubuntu 软件包会更容易:http://packages.ubuntu.com/precise/fonts/

否则,为了回答您的问题,首选列表中具有匹配字符/字形的第一个字体就是所使用的字体。如果您不想FONTNAME在任何地方用作默认值,那么您需要将其添加到列表中的主项之后。这应该有效:

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>sans-serif</family>
        <prefer>
                <family>ORIGINAL_SANS_FONT</family>
                <family>YOUR_FONT</family>
        </prefer>
    </alias>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

我建议使用:sans-serif而不是sans,因为它是 fontconfig 中的实际名称。sans是一个别名。


joe*_*joe 0

根据这个答案,您可以简单地找到并下载包含您需要的字形的TTF 文件(示例)。双击在字体查看器中打开字体文件,然后单击安装按钮。

您无需手动设置任何配置 - 如果默认字体缺少新字体包含的字形,系统将自动回退到您的字体。