linux字体配置问题之修改字族名称导致的覆盖问题

今天为了弄一个舒心的字体真是大费周折,还做了许多无用功,在这里记录下,也希望能为其他需要的人提供一个简单的指引

首先整个字体配置的核心就是fonts.conf,具体配置可以通过man fonts.conf来查看

然后就是两个重要的配置文件,

一个是系统级配置文件:/etc/fonts/fonts.conf

另一个是用户级配置文件:~/.config/fontconfig/fonts.conf

然后推荐大家优先使用用户级配置文件,原因有二,第一是系统级配置文件实际上只记录了很少的信息,大部分信息分散到了/etc/fonts/conf.d/这个目录;第二点是在使用时,用户级配置文件会自动覆盖系统级别的配置文件

安装字体最简单的方法是使用gnome自带的font-viewer,只需双击打开字体文件,点击安装即可,非常好用

安装完成后,还应根据具体需要来修改字体配置文件,字体配置文件的说明网上有很多,这里主要把自己犯的错误讲一下,自己犯的错误在于使用了如下代码

<match target="scan">
<test name="family"><string>Migu 1M</string></test>
<edit name="family"><string>Monospace</string></edit>
<edit name="lang"><langset><string>en</string></langset></edit>

</match>

关键在第二行,自己将字族名字"Migu 1M"修改为了通用名称"Monospace",Monospace是一个幽灵般地存在,在font-viewer中是不存在的,它的存在实际上是一种标志,表明该名称对应的字族为系统等宽字体默认字族,比如在tweaktool的字体设置中,当我们选择Monospace这个字体时,实际上我们选择了这个幽灵所对应的字族

联系上面绿色代码,我们是把"Migu 1M"映射给了"Monospace",当我们在tweaktool中选择了Monospace这个字体,实际上是选择了Migu字体

我之前正是因为没有搞清楚这个关系,才多走了许多弯路

顺便说一下,如果您也像我一样这样进行了修改,但还想返回系统默认的状态(在centos7中,monospace默认是绑定到DejaVu Sans Mono这个字体的),只需使用下面的代码重新映射即可

<match target="scan">
        <test name="family">
              <string>DejaVu Sans Mono</string>
        </test>
        <edit name="family">
              <string>Monospace</string>
        </edit>
</match>
<match target="scan">
<test name="family"><string>Migu 1M</string></test>
<edit name="family"><string>Migu 1M</string></edit>
<edit name="lang"><langset><string>en</string></langset></edit>
</match>

猜你喜欢

转载自blog.csdn.net/ytingone/article/details/50992431
今日推荐