红联Linux门户
Linux帮助

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

发布时间:2017-06-11 00:21:47来源:linux.cn作者:ytingone
今天为了弄一个舒心的字体真是大费周折,还做了许多无用功,在这里记录下,也希望能为其他需要的人提供一个简单的指引。
 
首先整个字体配置的核心就是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>
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31407.html