华宇拼音输入法论坛

标题: “开天窗”现象释疑及解决办法(转帖) [打印本页]

作者: sanwsw    时间: 2010-5-27 18:47
标题: “开天窗”现象释疑及解决办法(转帖)
  现将超版ZXD4G一个回帖独立成帖,希望有疑问者能够明白解决之道。

1.原因
    支持7万多个汉字的输入(实际上,能够用拼音输入的只有3万左右),对系统安装的字体是有要求的,迄今为止,没有一款字体(windows目录的fonts子目录中若干.fon、.ttf等文件)收编了7万多汉字的字形信息,所以windows系统采用字体回退、链接等机制,使得显示一个汉字时,在一个字体中没有找到字形,就去别的字体中查找字形信息。
    从哪些字体中查找呢?据我们目前确知,是从与当前字体链接着的那些字体中找,这些字体文件在系统注册表中定义(位置是HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink),安装unifont5.4的作用在于两点,其一是向系统添加几个支持7万字的字体文件(拷贝到windows\fonts目录中),其二是将几种最常用的字体(宋体/arial等)与新加的字体链接起来(向上述注册表位置添加多字节字符串值)。
    unifont只做了少数几种字体的链接,当输入法界面主题中选择的字体不在已链接之列时,windows找不到字形(一般是GBK或CJK基本集合之外的字儿)时,就没有依据去查找别的字体,只好显示为空心方框,在视觉上恰似开了个天窗,虽然各个天窗背后的内码是正确的,但确实影响输入。

2.方案
    准备开一个选项,大约是“隐藏无法显示的汉字”,当用户没有安装豪华字体,或者未将界面主题字体与豪华字体链接,而又根据拼音、笔画或部首拼字枚举候选时,屏蔽那些可预见的只能以方框示人的字儿;虽然看似有所缺憾,但其实普通用户根本用不着那些GBK之外的字儿,屏蔽它们对于正常的写作、沟通没有任何影响。
    准备开发一个字体检测工具,同时具备增加字体链接的功能:在安装输入法时,如果发现用户没有安装豪华字体,则予以提示并指示独立下载的位置;当改变输入法主题字体时,检测该字体是否支持GBK之外字儿的显示,若不支持,则隐藏或创建链接。

3.应急预案
    现在字体检测和操纵链接的工具尚未完备,心急的用户可以自行操作,步骤如下:
1)安装unifont5.4
2)重启系统,必须,因HKLM\......\Windows NT属于系统核心,修改核心自然需要重启使之生效
3)运行regedit.exe,定位到上述字体链接的位置,双击Arial(unifont已经增加了其链接),将其内容复制,然后新建“多字符串值”,取名为“Arial Narrow”,粘贴复制自Arial的内容,如此便完成了手工链接Arial Narrow的操作;根据自己的需要,完成其它字体的链接
4)重启系统,理由同上


[ 本帖最后由 sanwsw 于 2010-5-27 18:55 编辑 ]
作者: 1003    时间: 2010-5-27 19:34
不错不错,学下了。
作者: ljdqe    时间: 2010-5-27 19:37
支持一下
天窗确实有碍观瞻,看着不爽
作者: 野风    时间: 2010-5-28 22:46
支持一下!
作者: 声韵拼    时间: 2010-5-29 08:15
不使用不规范的汉字就不会有天窗。




欢迎光临 华宇拼音输入法论坛 (http://bbs.pinyin.thunisoft.com/) Powered by Discuz! X3.2