首先看字体配置文件/etc/fonts/fonts.conf
可以看到字体所在的位置
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
下载 Source Han Sans
字体 https://github.com/adobe-fonts/source-han-sans/releases
可以看到有非常多的字体变种,我这里选择了 Region Specific Subset OTFs Simplified Chinese (简体中文)
官方有 PDF 介绍你该如何选择字体变种[1]
sudo mkdir -p /usr/share/fonts/custom
sudo mv *.otf /usr/share/fonts/custom
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv
安装字体
官方推荐是将字体安装在 <dir prefix="xdg">fonts</dir>
, 更具体地说这个字体在 ~/.local/share/fonts
目录下。
使用 fc-match sans
可以检查 alias
是否成功
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<description>Modify default font for Chinese Region</description>
<!-- Set preferred serif, sans serif, and monospace fonts. -->
<alias>
<family>serif</family>
<prefer><family>Source Han Serif SC</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Source Han Sans CN</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>Source Han Sans CN</family></prefer>
</alias>
<!-- <match target="pattern">
<test qual="any" name="family">
<string>sans</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Han Sans CN</string>
</edit>
</match> -->
<alias>
<family>monospace</family>
<prefer><family>Source Han Mono SC</family></prefer>
</alias>
</fontconfig>
开着Ubuntu的“字体”就会自动更新配置。有时候 sans 的 alias 死活都更新不了。似乎删了 /etc/fonts/conf.d/51-dejavu-sans.conf
或者开着“字体”就可以配置生效,我不确定哪个是关键。
Arch Wiki的这篇文章[2] 是最好的参考/etc/fonts/conf.d/README
会告诉你配置文件的大致分布
00 through 09 Font directories
10 through 19 system rendering defaults (AA, etc)
20 through 29 font rendering options
30 through 39 family substitution
40 through 49 generic identification, map family->generic
50 through 59 alternate config file loading
60 through 69 generic aliases, map generic->family
70 through 79 select font (adjust which fonts are available)
80 through 89 match target="scan" (modify scanned patterns)
90 through 99 font synthesis
使用 fc-cache
应用配置
使用 fc-match -v sans
检验你的配置是否已经应用
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Set preferred serif, sans serif, and monospace fonts. -->
<alias>
<family>serif</family>
<prefer><family>Source Han Serif SC</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Source Han Sans CN</family></prefer>
</alias>
<alias>
<family>sans</family>
<prefer><family>Source Han Sans CN</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Source Han Mono SC</family></prefer>
</alias>
</fontconfig>
[1]: https://github.com/adobe-fonts/source-han-serif/raw/release/download-guide-source-han.pdf
[2]: https://wiki.archlinux.org/title/font_configuration
[3]: