作者:justmoon999 | 来源:互联网 | 2023-07-31 14:22
1、介绍Windows的FontLink功能说明:如果某个字体有不能显示的字符,就用一些备用字体来替换(熟悉Java的同学,记得fontconfig.properties吧)。
1、介绍
Windows的FontLink功能说明:如果某个字体有不能显示的字符,就用一些备用字体来替换(熟悉Java的同学,记得fontconfig.properties吧)。这个可以在注册表里设置。所以如果是使用Windows字体系统的程序,都可以获得这个功能。如果把一个等宽英文字体的备选字体设为雅黑,那么只要你选择了那个英文字体,如果有中文需要显示,就不会出现框框,而是用雅黑来显示了。
2、操作
下面以Monaco和微软雅黑字体为例进行说明。
首先打开regedit,找到:
HKLM/Software/Microsoft/Windows
NT/CurrentVersion/FontLink/SystemLink
新建字符串键Monaco,双击输入:
MSYH.TTF,205,154
MSYH.TTF
设置完成,重启系统,生效
说明:MSYH.TTF后面的数字205,154代表什么意思?是GDI的scaling
factor参数,默认是128,96。Monaco字体宽度是雅黑的1.6倍,乘以1.6得到的就是205,154。
说明:为什么重复一个没有数字的MSYH.TTF?GDI+不支持scaling
factor参数就会使用第二个值MSYH.TTF。
3、讨论
这个设置还有一个比较好用的地方。例如Vim本身对字体的支持较弱,还不支持非等宽字体。所以如果使用FontLink,直接选择Monaco作为字体,一切OK。再比如把记事本字体选为Monaco,中文自然就成了雅黑。cmd和PowerShell也类似。
那么是否都以后的字体设置都省了呢?不是。只有使用Windows本身字体渲染功能的软件可以使用这个。像Emacs这种自己动手丰衣足食的,本身对字体支持非常完善,比Windows这点小东西强大得多了去了。Java也是自己渲染字体,虽然有点Buggy(例如Swing显示雅黑粗斜体的时候,居然乱码,但是normal没事;我估计现在还是这样)。
参考文章
使用Monaco和微软雅黑字体美化cmd和PowerShell
FontLink功能,布布扣,bubuko.com