字体故障,已被 fontconfig 折磨死,汉字变成日本语了

事情是这样的:
十一假期我吃饱了撑的安装了一个叫 wesnoth 的游戏,它有个依赖叫 sazanami-fonts. 安装后执行了某个脚本,结果,电脑上的汉字很多显示成日本语那种 “明体” 了,就比如说 “高” 字,下面的 “口” 比上面的小,甚不雅观。

我有一个问题,某个汉字被东亚语言共用,为什么首先被匹配成了日语?可以修改哪个 fontconfig 文件把优先级改一改吗?

救命啊!

你可以先把 sazanami-fonts 的 rpm 下载下来研究一下里面的脚本,看它是怎么改的

如果是 rpm 的话,不用下载 rpm 文件的。

用 rpm -q --scripts sazanami-fonts 就可以查到其所有脚本,一般安装后的在 postinstall scriptlet 段开头。

Tumbleweed 下可以装 yast2-fonts 直观调整全局字体匹配顺序,把中文字体优先级调高即可,不用手敲配置文件了。

感谢各位!我研究了一下 rpm 里面的脚本,只不过是一般的字体包里面都有的那种,看不出来有什么异样。
至于 fontconfig, 配置实在太难写了,果断放弃,剩下的唯一方法是卸掉日语字体,不过重新安装后,中文仍显示为熟悉的思源字体。
另外,我用的是 Leap, 不过据说可以用 Fontweak 配置,我学习学习。
方法应该就是在 sans-serif, serif, monospace 三栏先放上拉丁字母字体,后面排中文就好。

找到一个旧贴:

可以抄下 archwiki 上的配置:https://wiki.archlinux.org/title/Font_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#fontconfig%E9%85%8D%E7%BD%AE%E7%9A%84%E4%BE%8B%E5%AD%90