FontLink功能

1、介绍

  Windows的FontLink功能说明:如果某个字体有不能显示的字符,就用一些备用字体来替换(熟悉Java的同学,记得fontconfig.properties吧)。这个可以在注册表里设置。所以如果是使用Windows字体系统的程序,都可以获得这个功能。如果把一个等宽英文字体的备选字体设为雅黑,那么只要你选择了那个英文字体,如果有中文需要显示,就不会出现框框,而是用雅黑来显示了。

2、操作

  下面以Monaco和微软雅黑、Menlo和微软雅黑为例进行说明。

  首先打开regedit,找到:
     HKLM/Software/Microsoft/Windows NT/CurrentVersion/FontLink/SystemLink

  新建字符串键Monaco,双击输入:
    MSYH.TTF,205,154
    MSYH.TTF
  新建字符串Menlo,双击输入:
    MSYH.TTF,154,116
    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

 

 

posted @ 2014-03-23 17:57  南山的鱼  阅读(4672)  评论(0编辑  收藏  举报