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>Sin Mienglan</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> <edit name="family" mode="prepend"><string>Typography Old P</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>Sin Mienglan</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> <edit name="family" mode="prepend"><string>Typography Old P</string></edit> </match> <match> <test name="lang" compare="eq"><string>zh-cn</string></test> <test name="family" compare="eq"><string>monospace</string></test> <edit name="family" mode="prepend"><string>Sin Mienglan</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>Sin Mienglan</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>Typography Old P</string> <string>HanaMinA</string> <string>HanaMinB</string> </edit> </match> <!-- 英文的设置 --> <match> <test name="lang" compare="contains"><string>en</string></test> <test name="family" compare="eq"><string>sans-serif</string></test> <edit name="family" mode="prepend"><string>Sin Mienglan</string></edit> </match> <match> <test name="lang" compare="contains"><string>en</string></test> <test name="family" compare="eq"><string>sans-serif</string></test> <edit name="family" mode="prepend"><string>Typography Old P</string></edit> </match> <!-- 等宽字体 --> <match> <test name="family" compare="eq"><string>monospace</string></test> <edit name="family" mode="prepend" binding="strong"> <string>Inconsolata</string> </edit> </match> <!-- 绘文字 --> <match> <edit name="family" mode="prepend" binding="strong"><string>EmojiOne Color</string></edit> </match> </fontconfig>