我从 19 年开始陆续有修改一些字体替换掉 Windows 的系统字体,下图是我改过的所有字体,都是用 FontCreator 修改的,除了有一个点阵字体用到 FontForge 来合成 BDF 文件。
因为这篇文章是我偶尔想到才随便写下来的,所以只列出一些修改后的截图来展示,没有和原来的对比。

Windows 11 新增的 Segoe UI 可变字体被改成 Inter Display,修改可变字体有点复杂,我用了将近一天时间研究并测试。该字体被大部分 UWP 程序使用,如开始菜单任务栏、新设置面板、应用商店,字体文件名是 SegUIVar.ttf,在用户目录 AppData\Local\Microsoft\Windows\Fonts 里也有一份,需要一并替换。


默认英文 UI 字体 Segoe UI 被替换成安卓默认字体 Roboto。我觉得 Segoe 字体设计过时,在 Windows Vista、7 的拟物时代是很搭的,但在 Windows 8、10 的平面风格之后很违和,特别在高分屏上显得笔画粗细不一,有低廉感。我在 19 年学会修改字体后的第一时间就换了这套字体。Roboto 的缺点是过于方正,现在在安卓上看腻了,觉得 Inter 更好看,但懒得改了。


菜单字体改成诺基亚塞班默认字体 Nokia Sans S60,影响桌面右键菜单、大部分程序菜单,例如 Chrome 的菜单。只需改一下注册表,可用 Winaero Tweaker 来设置。



Tahoma 替换成 Ubuntu,没有修改文件,将注册表 HKLM\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes 里的 MS Shell Dlg 和 MS Shell Dlg 2 更改即可。影响到一些旧式应用的设置窗口,比如“系统属性”。

HKLM\Software\Microsoft\Windows NT\CurrentVersion\GRE_Initialize 里的 GUIFont.Facename 被我改成 DejaVu Sans Cond,中文 Windows 这里是宋体。这是大部分 Qt 程序的默认字体,网上已经有很多问题问一些 Qt 写的应用如 Telegram、Mendeley、VirtualBox 为什么字体那么丑,就是中文系统的锅。
可以看到下图用 Qt 写的 SQL 编辑器界面字体都变成了我改的 DejaVu Sans Cond。

可能有不少人知道安卓 2.3 时期的默认中文 Droid Sans Fallback 字体是文泉驿微米黑,实际上是华康黑体-A 和 Droid Sans 的结合。该字体优点是在 2.3 时代低分辨率屏下显示清晰好看,现在看华康黑体有种很特别的时代感,但不丑,可惜没有粗体。我找了很久终于在字客网下载到华康黑体-A 的粗体字,然后和 Droid Sans 粗体缝合一下,顺便添加了韩文、拉丁扩展、CJK 扩展 B,就制作出了微米黑粗体。


我用 Ubuntu Mono 和思源黑体旧字形缝合出了“Faltu Mono”等宽字体,作为 HKLM\System\CurrentControlSet\Control\FontAssoc 里的回退字体和脚本字体,用 Ubuntu Mono 的原因是它是少见的宽度是一半,可以和中文完美匹配,另一个著名的半宽字体是 Iosevka,Ubuntu 还有一个优点是支持关闭字体平滑时的正常显示。

最后一个是我的缝合的最复杂的字体,用来替换等宽的宋体 SimSun。当初设计中易宋体的和决定采用宋体作为 Windows 默认简中的都是大罪人,对比一下其他亚洲字体如 Gulim、MS Gothic、MingLiU,它们都是非等宽和等宽组合的,平常用到非等宽,只有在命令行下或其他需要才用到等宽,而宋体全是等宽,这会造成什么后果网上已经讨论了几十年。
我制作的字体,矢量部分,英文用了 Dotum(后来嫌丑改成 Lucida Sans Unicode 并手动修改缩短了有突出的上下部分以符合宋体的 Ascent 和 Descent 设定),中文用了索尼阅读黑,该字体有喇叭口设计,而且是旧字形。
点阵字体,包含 8px 到 16 px,英文用了 Dotum,中文用的是明兰字体提取的和 Dotum 里 12px、14px的旧字形缝合,两者 Bearing 不匹配还得自己手动修改,从 20 年到最近完善了 4 次以上。
这是用到的 BDF 文件:

这是使用效果:


大于 16px 就会变回矢量字体:

以上便是我所修改的大部分字体了,要是这篇文章有缘有站友看到并留言需要的话我会附上下载链接。