巧用FontSubstitutes替换SimSun

Telegram的中文字体一直饱受吐槽,好在有网友开发了FontMod这样的插件可以替换字体。但其他拥有相同毛病的程序(比如PLEX)就不一定能靠FontMod来解决了。

偶然跟网友聊起了这个问题,当提到SimSun(中易宋体)时,网友竟勃然大怒,表示就是受不了Windows的字体机制才转向了macOS,并劝我早日弃暗投明。

恰好我也忍受PLEX很久了,由于平时不会主动去用SimSun,又不希望程序用它来显示字体,那么干脆直接干掉它?

于是尝试在注册表修改Fonts的引用路径,将simsun.ttc修改为msyh.ttc,重启后成功翻车,画面非常美丽。

百思不得其解之余搜索了一通,发现Windows有着非常复杂的字体回退机制和各种字体链接,暴力修改字体就会牵一发动全身导致部分字符胡乱显示。

准备放弃之余,我发现了一个叫Font Substitution的东东,一种将一种字体的请求转化到另一种字体的机制。

那就来试试马当成活马医,regedit,进入下述位置

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes

新建一个字符串值SimSun,数值数据为Microsoft Yahei UI

重启后TG文本变成了微软雅黑,漂亮了不少,而PLEX依旧是下面的惨样

重新打开注册表,回到字体项

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

将SimSun & NSimSun (TrueType)的数值数据留空

继续重启,小功告成。

PS.干掉SimSun后可能会产生一些显示问题,目前发现控制台的点阵字体显示有误(大概是非等宽字体的原因)。

好在命令行工具和其他一些类似的场景大多都可以自己更换字体

换上Yahei Mono后效果还是不错的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注