消灭中文Windows系统中Qt、KDE程序界面中的宋体

语言: CN / TW / HK

在中文版Windows 10系统中,如果安装基于Qt,或者是KDE社区的程序,并且程序中语言设置为中文,界面字体就会出现很多宋体,没有任何美观性可言。

说起来这个问题也是可以追溯到很早了,大体上与Windows系统发展、中文地区字体设计、程序开发框架等多个因素有关,并不是一个单一原因的问题。在这方面,论坛里有着各种各样的分析。这篇文章的目的不是分析这些问题,只是记录我解决这个问题的一种实践。

这里提到的一些开源软件,主要有digikam(KDE)、QGIS(基于Qt)、Kedenlive(KDE)、GIMP、Krita(KDE)、OBS Studio等。通过这篇文章的方法,能够得到较为美观的界面。如下图:

digikam kdenlive krita Gimp

安装Sarasa UI SC(更纱)字体

Sarasa Gothic 是一种无衬线字体,中文名叫更纱黑体,Github项目地址

我推荐从清华大学开源镜像站下载获取,选择右侧“获取下载链接”-“字体”-“Sarasa Gothic”-“0.18.9(ttf)”。

这里需要安装的是Sarasa UI SC这一系列的字体文件。UI表示适用于屏幕显示(例如系统、程序界面),是Sarasa Gothic的一种变体;SC则表示简体中文这种字型;而这一系列,还有多个字重的字体文件,例如Regular,Bold,Semibold。这里至少安装Regular,其他根据自己的需要选择。

对于Sarasa UI SC的特性,可以参考其他文章的介绍。任何一种字体都有对应的适用条件,没有哪一种单一的字体文件或其变体,是能够同时满足屏幕显示、纸张印刷的。所以,对于Sarasa UI SC,我认为它是目前显示屏幕上、Windows系统下,最适合界面描述的字体了。

编辑注册表

通过编辑注册表,修改Windows系统的默认GUI字体。这里的修改会影响到一部分系统界面、程序界面(包含了我预期的程序),但并非全部。

在注册表中,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize项,右侧GUIFont.Facename名称对应数值,修改为Segoe UI,Sarasa UI SC。注意逗号是英文半角,逗号左右均没有空格。

编辑注册表

重启系统生效。

软件设置

上述软件中,如果以前没有通过程序设置菜单自定义过界面字体,那么应该能直接看到效果。

如果修改过,自行备份程序设置,卸载重装。或者程序允许的话,手动把字体改为注册表中的值。(但一般程序中不允许设置两个字体值,即不支持在程序中字体fallback)。

特别的,如果是digikam,修改后界面变成了斜体:1.检查注册表,字体值之间的逗号两侧是不是有空格,如果是,修改后重启系统。2.卸载程序。3.搜索digikamrc,删除。4.重新安装,运行。