起因

我用 KDE 把 Archlinux 的字体换成了 Noto Sans,发现出现了一些异体字,看着浑身难受。

解决过程

我参考了 Archlinux Wiki 上的做法。

调整字体优先级

计算机依靠字体的名称顺序(按英文字母顺序)进行渲染。

如果渲染到在日语字体和简体中文字体中都有的字时,日语(JP)比简体中文(SC)先渲染。

调整 /etc/fonts/conf.d/64-language-selector-prefer.conf 中的字体顺序即可(可能计算机上没有这个文件,需手动创建):

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
</fontconfig>

让简体中文比日语先渲染解决问题。

我发现了一个问题:一些简体中文文字不能渲染(连豆腐块都没显示)。

我用 KDE 将字体改成 Noto Sans CJK SC 解决问题。

我又发现了一个问题:fcitx5 的 rime 输入法引擎输入中文时选框中都是豆腐块 :(

由于找不到解决方案,我放弃了这种方法

更改默认语言

我保持使用 Noto Sans CJK SC

修改 /etc/locale.conf 中的默认语言:

1
2
- LANG=en_US.UTF-8
+ LANG=zh_CN.UTF-8

完美解决所有问题 :)