华宇拼音输入法论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 33066|回复: 59
打印 上一主题 下一主题

彻底消除候选框开天窗现象

[复制链接]
跳转到指定楼层
1
发表于 2009-9-23 13:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  安装了海峰五笔配套的国际标准超大字符集字体支持包,仍有可能部分字符(特别是偏旁部首)无法在候选栏中显示,出现开天窗现象。我就遭遇这种情况,为此专门请教ZXD4G。经老左指点,我电脑这个问题已经解决。不敢独享,特发帖共享——问题产生原因和解决方法。
  
  关于候选栏中的字符显示
  字符的显示不由输入法控制,全由操作系统把持,任何一个字库文件,都没有覆盖unicode中的所有字符,那么如何用一种字体设置来显示所有的字符呢?在windows中,是通过“字体链接”的手段达成的,详见如下网页(关于国际化,有七篇文章,都是值得看一看的)。
  http://msdn.microsoft.com/zh-cn/goglobal/bb688134.aspx
  安装海峰五笔提供的超大字库,将同时完成若干字体链接的操作,使得宋体等五六种字体与Sun-ExtA和Sun-ExtB链接起来,那么,设置字体为宋体时,操作系统将会在宋体字库中查找欲显示字的形状信息,没有的话,再去与之链接的若干种字体中去寻找。
  由于前述的对于汉字的判断方法有些缺陷,不在CJK基本集合中的汉字被认为是英文,输入法就尝试用英文字体去显示它,而英文的某个字体可能没有与Sun-ExtA、Sun-ExtB链接起来。手工添加若干种字体链接后,就能以英文字体来显示CJK Ext-A、CJK Ext-B和unicode自定义区的汉字了,原理和方法可见上列网页,也可仿照末尾我采用的办法。
  在6.6正式发布时,一定会对汉字判别的函数加以更正的,我最近还在研究字体探究的方法,想在输入法安装时对用户是否装有超大字库进行识别,必要时提示用户安装,并检查输入法外观字体是否与大字库链接,如不安装或没有链接,则可能出个选项(大约会叫做“过滤系统不能显示的汉字”或“过滤系统字库中没有的字符”),在候选栏中屏蔽那些当前系统中无法显示形状的字符,让那些缺省的方框形状在视野中消失,也可当用户外观字体设置改变时,再次检查该字体是否具备显示所有字符的能力,必要时进行字体链接的设置。
  
  我的输入法外观设置中,英文字体选的是“Arial Narrow”(安装OFFICE会添加该字体),看起来苗条一些,于是,安装大字库之后,手工实现“Arial Narrow”和Sun-ExtA、Sun-ExtB等的链接,操作步骤如下:
  1.打开注册表编辑器(运行regedit.exe)
  2.展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
  NT\CurrentVersion\FontLink\SystemLink
  3.双击Arial项,弹出对话框“编辑多字符串”(安装海峰大字库后,Arial会和Sun-ExtA等链接),按CTRL-C键复制内容
  4.新建“多字符串值”,以你想要链接的字体为名,然后双击再次弹出对话框进行编辑,按CTRL-V粘贴上一步复制的内容
  5.关闭注册表编辑器,如需链接更多的字体,重复执行第四步即可
  6.重启系统(这个机制是操作系统较为底层的支持,需要重新启动才能生效
)




  【为减少候选栏开天窗现象,安装国际标准超大字符集字体支持包后,请检查系统字体文件夹内有无Arial Unicode MS这一款字体,该字体文件名为ARIALUNI.TTF。如没有,或从网络下载,或从Office2003安装盘(网上的安装盘映像文件也可)提取,或者进入添加/删除程序界面(选中Office2003,选择“修改”,根据提示选取“国际性支持-通用字体”)。提供本人的系统字体链接注册表文件FontLink.reg(适用Windows XP系统,干净、安全),导入即可。

   如有必要,请参见第35、58楼的建议方法。

[ 本帖最后由 sanwsw 于 2010-5-24 16:36 编辑 ]
2
 楼主| 发表于 2009-9-23 13:33:23 | 只看该作者
英文字体喜欢用Arial Unicode MSSegoe UI这两款字体的,如出现少量天窗,需要检查有无做好字体链接。对照一楼方法完成注册表中的字体链接,就可消除开天窗现象。

[ 本帖最后由 sanwsw 于 2009-9-23 14:53 编辑 ]
3
发表于 2009-9-23 14:31:36 | 只看该作者
STUDY



.
4
发表于 2009-9-23 15:12:26 | 只看该作者
高深…………学习了~
5
发表于 2009-9-23 16:48:50 | 只看该作者
按CTRL-C键复制内容
复制什么内容,粘贴到哪?看了半天,还是不会弄啊
6
发表于 2009-9-23 18:02:47 | 只看该作者
没有Arial 项,自己新建,链接了Sun-ExtA.ttf,Sun-ExtB.ttf,貌似还是那样
7
 楼主| 发表于 2009-9-23 19:53:49 | 只看该作者
原帖由 fengyu29 于 2009-9-23 16:48 发表
按CTRL-C键复制内容
复制什么内容,粘贴到哪?看了半天,还是不会弄啊

第三、四步,你的不明白?
8
发表于 2009-9-23 20:19:05 | 只看该作者
我的理解:每个字体A都有无法显示的字符,但字体B当中有这些字符,所以将文本中A字体无法显示的字符用B字体中的字符显示。如下图所示:

外观设置为微软雅黑,所以11号的“林”显示为雅黑,就是雅黑字体里面的字符。对于一些雅黑字体里面没有的字符,例如12,13等外观明显不同,就是使用了另外的字体。如下图,雅黑链接了好几个字体:



HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink下面,就是系统的字体A;双击字体出现一个对话框,里面一行一行的,逗号前面是字体文件B,逗号后面就是字体的名称B,有的后面还有数字,应该是链接的文字编码吧?

[ 本帖最后由 kingdick 于 2009-9-23 20:28 编辑 ]

字体链接.png (6.92 KB, 下载次数: 1400)

字体链接.png

雅黑链接的其它字体.png (18.23 KB, 下载次数: 1372)

雅黑链接的其它字体.png
9
发表于 2009-9-23 20:30:01 | 只看该作者
个人窃以为,还是不要随便改动为好~
10
发表于 2009-9-23 20:42:53 | 只看该作者
顶一下!
11
 楼主| 发表于 2009-9-23 21:16:41 | 只看该作者
能够显示70000多汉字是硬道理!
适用Windows XP的系统字体链接注册表文件(安装超大字符集字体支持包,双击导入即可): FontLink.reg.rar (1.63 KB, 下载次数: 941)

[ 本帖最后由 fengyu29 于 2009-9-24 07:29 编辑 ]
12
发表于 2009-9-23 21:56:03 | 只看该作者
技术贴,现收藏
不过对普通人是太深奥了
13
发表于 2009-9-24 16:22:06 | 只看该作者
sanwsw版主,海峰的大字符集也装了,你给的注册表文件也导入了,也重启过系统了,不知为何还是没有效果。
14
 楼主| 发表于 2009-9-24 18:20:28 | 只看该作者
原帖由 fengyu29 于 2009-9-24 16:22 发表
sanwsw版主,海峰的大字符集也装了,你给的注册表文件也导入了,也重启过系统了,不知为何还是没有效果。

不知就里,根据经验建议你:
1.删除安装Office后的默认字体“宋体-方正超大字符集”,重启;

2.安装UniFonts5.4.exe(建议按默认选项安装),重启;

3.如你选用的紫光华宇皮肤中、英文字体没添加字体链接,按老左提示方法添加字体链接;

应该能够解决天窗问题。第一步,记得是使用UniFonts5.4.exe的重要要求之一。
15
发表于 2009-9-25 21:06:43 | 只看该作者
那些不能显示的方框就是天窗……

正常的应该如下:


16
发表于 2009-9-25 22:46:11 | 只看该作者
这个输入叠字是否需要设置哟。 我得Dmu 怎么只是出来汉字呀!
17
 楼主| 发表于 2009-9-26 00:25:28 | 只看该作者
等待6.6版发布,当可享用。或者搜索本坛帖子,下载本人编辑的叠字快输自定义短语方案。在6.5.0.23中使用。可能需要重启或注销,安装字体支持包可获得更佳效果。
18
发表于 2009-9-28 07:01:33 | 只看该作者
在6.5版中使用是有前提的:使用sanwsw版的“叠字快输自定义短语方案”;或等待6.6版发布。
19
发表于 2009-10-26 12:41:13 | 只看该作者
原帖由 332211 于 2009-10-26 12:33 发表
什么呀?在紫光拼音输入法安装过程中为何不自动检测一下是否安装了以上必须的字库呢?为何不能更为人性化一点儿呢?难道还要用户自己来考虑是否安装了必须的字库之类?

这个功能正在开发中,正式版中一定会有的。
20
发表于 2009-10-28 12:34:25 | 只看该作者
强力技术帖,该顶。

在别的输入法论坛遇到有人抱怨某字打不出来,只能告诉他和输入法无关,让他自己安装大字符集支持包。这回紫光的努力有望将这个问题纳入到输入法本身的范畴内,这种努力是令人鼓舞的。
21
 楼主| 发表于 2009-10-28 22:48:49 | 只看该作者
原帖由 332211 于 2009-10-28 22:45 发表
字体现实要统一,怎么有大有小,这算是什么呀?难道就一个半拉子的输入法?一个临时凑合着用用的?

字体大小不一,你想想或者猜猜,是不是输入法所致?
22
发表于 2009-10-29 06:28:33 | 只看该作者
23
发表于 2009-10-29 09:34:01 | 只看该作者
扫盲....什么是开天窗
24
 楼主| 发表于 2009-10-29 11:08:19 | 只看该作者
原帖由 jxm127 于 2009-10-29 09:34 发表
扫盲....什么是开天窗

因字体缺失,在文本文档中、输入法候选栏内出现?、空白、囗的现象,常被人们戏称为“开天窗”。
25
发表于 2009-11-1 08:12:39 | 只看该作者
原帖由 332211 于 2009-10-28 22:45 发表
字体现实要统一,怎么有大有小,这算是什么呀?难道就一个半拉子的输入法?一个临时凑合着用用的?


也许你需要了解一下,字体显示是归Windows系统调用字体文件来实现的,输入法不直接负责这项工作。字体有大有小,那是因为GBK区字和CJK扩展区字的显示字体本来就不统一。
26
发表于 2009-11-1 13:04:50 | 只看该作者
楼上说得正确!呵呵!
27
发表于 2009-11-11 10:38:30 | 只看该作者
每次都可以从“sanwsw”那里受教,真是良师益友呀!
28
 楼主| 发表于 2009-11-15 15:55:16 | 只看该作者
  自顶,希望使用6.6.0.12版而出现空白、“囗”的网友看到并解决这个恼人的问题。实际上,默认安装国际标准超大字符集字体支持包(Unifonts.exe)后,已经自动将相关字体做好了字体链接。根据网上的建议,卸载默认安装Office2003后进入Fonts文件夹的宋体-方正超大字符集这款字体,再安装UniFonts.exe,重启系统。

29
 楼主| 发表于 2009-11-15 16:22:21 | 只看该作者
紫光华宇拼音输入法6.6.0.12收录了包括CJK统一汉字、CJK Ext-A、CJK Ext-B在内的71599个汉字(含汉字笔画、偏旁、部首),目前任何一款字体都不能全部显示。要消除或减少候选栏“天窗”,建议任选下列方法之一种:

①下载安装“国际标准超大字符集字体支持包”(http://okuc.net/software/UniFonts.exe该地址常年提供下载,速度较快)。安装时建议一是先卸载宋体-方正超大字符集,而是选择默认安装,安装好后重启系统。在注册表中修改字体链接(参见另帖http://bbs.unispim.com/viewthread.php?tid=7112&extra=page%3D1),将输入法外观设置中选定的“中文字体”(宋体已经做好了字体链接)与Sun-ExtA.ttf和Sun-ExtB.ttf两款字体进行手工链接。可消除“天窗”现象。

②下载安装方正楷体超大字符集,下载地址是http://bbs.unispim.com/viewthrea ... D%D5%FD%BF%AC%CC%E5(见置顶帖)。注意参用http://bbs.unispim.com/viewthread.php?tid=7112&extra=page%3D1一帖方法将FZKaiS(SIP).TTF字体与FZKaiS.TTF字体做好链接;外观设置中将中文字体设为FZKaiS-Extended(即FZKaiS.TTF),重启系统。不知能否完全消除“天窗”现象。

③下载安装“方正楷体.ttf”(书同文楷体MSSong.ttf的扩展版,字体名本人修改,下载地址是http://sanwsw.ys168.com/中的“字体备份”文件夹内);外观设置中将中文字体设为“方正楷体”。应可极大减少“天窗”现象,能满足一般人日常文字输入需要。
30
发表于 2009-11-15 18:23:42 | 只看该作者
原帖由 332211 于 2009-11-15 18:16 发表
问题是紫光的输入法的编码是根据什么字库来编程的,那就提供这个字库不就成了么?否则如何确保不开天窗呢?既然有这个字库难道就不能提供?

这个和程序编程没关系的,是字符集的问题,现在的系统默认是不含这个字符集的,这个字符集是海峰五笔的作者自制的,所以要提供必须要得到允许
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|华宇拼音输入法网站  

GMT+8, 2025-12-26 02:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表