前言
在使用linux的过程中,由于很多文档中都是用的微软字体,所以通常会把windows的字体安装到linux中以能够正常的显示字体,但是把windows中的字体直接复制到linux中,会出现中文字体不一的现象,不同的字体混在一起。
出现这个问题的原因是因为linux中的默认字体一般是英文字体,没有对应的中文则会按照一定的顺序从已有的中文字体中选择渲染,复制windows的字体后,没有调整原来的渲染顺序,中文字体的选择会错乱,这种情况手动调整中文字体的渲染顺序就可以了。
调整方法
在 /usr/share/fontsfonfig/
中的65nolatin
文件中就是在非拉丁该字体的渲染顺序,有的linux发行版可能不是这个名字,找到有nolatin
这个的文件就没错,可以看到,把字体分成了几类,有,其中列出字体的顺序为对应类别字体的渲染顺序,把你想要显示的中文字体放到最前面就可以了,系统就会优先用这个来渲染中文,如果这个字体没有对应的字,就会按照顺序找其它的字体。如果没有你的字体,可以按照文件原来的格式手动添加进去,注意添加的字体要是你安装过的字体,就可以了。
详解
我用的是manjaro,看到这个文件65-nolatin.conf
是打开是这样的, 不同的linux发行版这个文件名不一定一样,主要看nolatin这个词,是非拉丁文的意思,一般在linux中默认的各种字体基本都是英文字体,当没有对应的中文字体时就是按照这个文件里面的顺序去寻找字体来渲染,可以看到,在这个文件中字体被分成了好几类,每类都有自己的沉浸顺序如
如一般在终端中用的是等宽字体,它默认字体在没有对应中文字体的时候就会到这个monospace
中按从上到下的顺序去选择字体,直到遇到的字体有这个字,就用这个字体来渲染这个字。
所以,把你想让显示的中文字体往前放,可以放在第一个就可以了,这个第一指的是每个类的第一,如果都想用这个字体要把每个类的第一个都设为添加上这个字体 。
结语
在linux中,一般中文字体所带的英文字体都不太好看,为了取得较好的字体效果,默认字体一般设为英文字体,中文字体再到这个文件中去设置,把想用的字体放在就前面可以了。
虽然这个问题很好解决,但我在网上查找了不少,没找到的详细的解决方法,于是记录下来,以供它从参考。