fontconfig 是用来配置字体的玩意。系统字体安装后,会有一个 .conf 配置文件安装在 /etc/fonts/conf.d 下。因为没有其他信息,所以由 fontconfig 自行决定字体顺序,所以偶尔会出现字体混用之错乱情况;或者字体显示效果不佳,心中不爽;或者选择了另外一种语言的字体(尤其是中日字体)。这时,就必须亲自动手撰写 fonts.conf 文件(放在 ~/.config/fontconfig 下)。
详细见 man fonts-conf (中文翻译)。
下面是一个自用配置,放在这里也是为了备份。这里选择思源黑体为中日无衬线默认字体,花园明朝体为有衬线默认字体。
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- 别名设置: serif ☚ 宋体、SongTi、simsun、ming、明體 sans-serif ☚ 黑体、黑體、heiti、simhei --> <match> <test name="family" compare="eq"><string>宋体</string></test> <test name="family" compare="eq"><string>SongTi</string></test> <test name="family" compare="eq"><string>simsun</string></test> <test name="family" compare="eq"><string>ming</string></test> <test name="family" compare="eq"><string>明體</string></test> <edit name="family" mode="assign"><string>serif</string></edit> </match> <match> <test name="family" compare="eq"><string>黑体</string></test> <test name="family" compare="eq"><string>黑體</string></test> <test name="family" compare="eq"><string>heiti</string></test> <test name="family" compare="eq"><string>simhei</string></test> <edit name="family" mode="assign"><string>sans-serif</string></edit> </match> <!-- 日语的设置 --> <match> <test name="lang" compare="eq"><string>jp</string></test> <test name="family"><string>sans-serif</string></test> <edit name="family" mode="prepend"><string>Source Han Sans</string></edit> </match> <match> <test name="lang" compare="eq"><string>jp</string></test> <test name="family"><string>serif</string></test> <edit name="family" mode="prepend"><string>HanaMinB</string></edit> <edit name="family" mode="prepend"><string>HanaMinA</string></edit> </match> <!-- 简体中文的设置 --> <match> <test name="lang" compare="eq"><string>zh-cn</string></test> <test name="family"><string>sans-serif</string></test> <edit name="family" mode="prepend"><string>Source Han Sans SC</string></edit> </match> <match> <test name="lang" compare="eq"><string>zh-cn</string></test> <test name="family"><string>serif</string></test> <edit name="family" mode="prepend"><string>HanaMinB</string></edit> <edit name="family" mode="prepend"><string>HanaMinA</string></edit> </match> <!-- 繁体中文的设置 --> <match> <test name="lang" compare="eq"><string>zh-tw</string></test> <test name="lang" compare="eq"><string>zh-hk</string></test> <test name="family"><string>sans-serif</string></test> <edit name="family" mode="prepend"><string>Source Han Sans TC</string></edit> </match> <match> <test name="lang" compare="eq"><string>zh-tw</string></test> <test name="lang" compare="eq"><string>zh-hk</string></test> <test name="family"><string>serif</string></test> <edit name="family" mode="prepend"><string>HanaMinB</string></edit> <edit name="family" mode="prepend"><string>HanaMinA</string></edit> </match> </fontconfig>