Linux 下修改(系统)字体
装了一下宋体之后,发现 Firefox 的中文字体变成了宋体,怎么设置都和原来的有点不一样。后来查了一下,发现 Firefox 是用系统字体进行渲染,那就干脆把系统字体修改一下吧。学了一下 Linux 修改系统字体的方法。
查看默认字体
设置字体经常会遇到 serif
、sans-serif
、monospace
这三个词,就可以把它理解为字体的分类形式,在西方国家罗马字母阵营中,字体分为两大种类: Sans Serif
和 Serif
,打字机体虽然也属于 Sans Serif
,但由于是等宽字体,所以另外独立出 Monospace
这一种类,例如在 Web 中,表示代码时常常要使用等宽字体。
使用下面的命令去查看系统各个默认字体是什么。
fc-match serif
fc-match sans-serif
fc-match monospace
比如我的
fc-match serif
显示是 DejaVuSerif.ttf: "DejaVu Serif" "Book"
,说明我的 serif
默认字体是 DejaVu Serif
。
修改默认字体
排查发现我的 Firefox 中文显示字体的原因是 sans-serif
这类字体导致的,默认字体是 DejaVu Sans
。
这个字体是没有中文的,所以我估计系统显示中文就会默认找个别的字体来代替。所以假如我们想要 Firefox 显示的中文字体是 微软雅黑
,那么就需要把这个字体加入到 sans-serif
的备选列表中,这样系统找中文字体会优先找这个列表(这都是我瞎猜的,很可能不对..)。
修改方式是在 .config/fontconfig/fonts.conf
这个文件中写入如下内容(没有就创建)。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>YaHei Consolas Hybrid</family>
</prefer>
</alias>
</fontconfig>
其中 YaHei Consolas Hybrid
是根据 fc-list | grep Ya
这样去找的。