LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 11149|回复: 52

完美的RH8+gnome+KDE使用simsun的方案(11月13日修改)

[复制链接]
发表于 2002-10-21 13:53:46 | 显示全部楼层 |阅读模式


修改说明:
10月06日       解决Gaim不能显示GBK字符集的问题。
10月21日       进一步优化了效果和在KDE下通过。新加两张取消了字体平滑的效果图
----------------------------------------------------------------------------------------------------

经多次的修改总算完成这篇文章了,非常高兴!

首先要感谢LLC部长提供的RH8安装文件的下载。对他的这种无私奉献的精神表示敬佩。

虽然总监已提供了一个很好的美化RH8的方案但要安装补丁程序且不再使用xtt。

我的意图不安装任何补丁和不屏蔽Xft来使用simsun字库显示gnome的汉字界面,依使用XTT来为GTK1程序提供汉字驱动,不管怎说它令simsun达到很佳的显示效果。
本贴的方法在RH8的gnome和KDE下使用成功。我的显示器分辨率800x600。

本方案分为两个部份,第一部分是延续自RH71开始的汉化方案,第二部分是针对RH8的。

第一部分:为Mozilla和一些GTK程序配置xtt

一、创建simsun字库的目录和编辑fonts.dir文件。

root注册
这是第一步,目录的位置由自己定,我是放在/usr/local/下的目录名是zhfonts。为何要这样处理呢?我的Linux有两个分区,一是/分区、二是/usr/local/分区,这样做的好处是/usr/local实际上是个备份区。
编辑/usr/local/zhfonts/fonts.dir文件。这是基本功,simsun的显示效果和黑体、[斜体的产生就看它了。方法不再说明,大家看一下相关的文章
要强调的是务必要加上
  1. simsun.ttf -misc-simsun-medium-r-normal--0-0-0-0-c-0-iso10646-1
复制代码

之类的字体信息(正常体、斜体、黑体、黑斜体等)。(10.6  update)
但gnome2并不需要配置fonts.dir文件。
在/usr/local/zhfonts目录下 cp fonts.dir fonts.scale

二、修改/etc/X11/XF86Config ,/etc/gtk/gtkrc.zh_CN ,/etc/gnome/gtkrc.zh_CN 三个文件

1、/etc/X11/XF86Config
对这个文件的修改和以前一样, 大家注意在相关位置进行修改:

  1. Section "Files"

  2. RgbPath "/usr/X11R6/lib/X11/rgb"
  3. FontPath "/usr/local/zhfonts"
  4. FontPath "unix/:7100"
  5. EndSection

  6. Section "Module"

  7. Load "xtt"
  8. Load "dbe"
  9. Load "extmod"
  10. Load "fbdevhw"
  11. Load "dri"
  12. Load "glx"
  13. # Load "freetype"
  14. # Load "type1"
  15. # Load "record"
  16. EndSection
复制代码


2、 /etc/gtk/gtkrc.zh_CN

  1. style "gtk-default-zh-cn" {
  2. #        fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
  3. #                          -*-*-medium-r-normal--12-*-*-*-*-*-gbk-0,\
  4. #                          -*-*-medium-r-normal--12-*-*-*-*-*-gb2312.1980-0,\
  5. #                          -*-*-medium-r-normal--12-*-*-*-*-*-gb18030.2000-0,\
  6.           fontset = " -*-*-medium-r-normal--12-*-*-*-*-*-iso10646-1,*-r-*"
  7. }
  8. class "GtkWidget" style "gtk-default-zh-cn"
复制代码

经测试,如此修改可以很好的解决Gaim不能显示GBK字符集的问题,大家可以试试看能在Gaim中输入(拼音jun)“珺、碅、雋”吗。(10.6  update)
3、/etc/gnome/gtkrc.zh_CN
将所由字体改成
  1. fontset = "-misc-simsun-medium-r-normal--12-*-*-*-*-*-iso10646-1"
复制代码



这一步也是常规的修改,自RH71来几乎没有变化。

第二部分:为gnome2和KDE配置simsun字体
<这是我们要注意的重点,本人经过多次测试特奉献给大家。>

三、修改/etc/fonts/fonts.conf文件
这是一个很关键的文件。

必需修改的第一处:


  1. <!-- Font directory list configured on Mon Sep 9 15:24:30 EDT 2002 -->

  2. <dir>/usr/local/zhfonts</dir>
  3. <dir>/usr/X11R6/lib/X11/fonts/Type1</dir>
  4. <dir>/usr/share/fonts</dir>
  5. <dir>~/.fonts</dir>
复制代码

<dir>/usr/local/zhfonts</dir> 一行就是指定你的simsun.ttf所在的目录。

必需修改的第二处:

  1. !--
  2. If the font still has no generic name, add sans-serif
  3. -->
  4. <match target="pattern">
  5. <test qual="all" name="family" compare="not_eq">
  6. <string>Simsun</string>
  7. </test>
  8. <test qual="all" name="family" compare="not_eq">
  9. <string>Simsun</string>
  10. </test>
  11. <test qual="all" name="family" compare="not_eq">
  12. <string>Simsun</string>
  13. </test>
  14. <edit name="family" mode="append_last">
  15. <string>Simsun</string>
  16. </edit>
  17. </match>
复制代码

此处的修改可让不支持汉字的字库使用SimSun字库 ,非常有用。

此处的修改必须安装conner总监的freetype补丁才能达到很好的效果:

  1.   <match target="font">
  2.                 <test name="lang" compare="contains">
  3.                         <string>ko</string>
  4.                 </test>
  5.                 <edit name="hinting" mode="assign">
  6.                         <bool>false</bool>
  7.                 </edit>
  8.         </match>
  9.         <match target="font">
  10.                 <test name="lang" compare="contains">
  11.                         <string>zh</string>
  12.                 </test>
  13.                 <edit name="hinting" mode="assign">
  14.                         <bool>true</bool>
  15.                 </edit>
  16.         </match>
复制代码

去掉中文(zh)字体的平滑功能(将fale改成true)。
这样改了后将gnome和KDE的字迹平滑取消可达到xtt驱动simusn的效果,但无粗体和斜体。要注意如果没有装conner总监的补丁则会影响KDE的字符终端的显示。
补丁下载:
社员点击此处下载

也请注意这:

  1. <alias>
  2.                 <family>monospace</family>
  3.                 <prefer>
  4.                         <family>SimSun</family>
  5.                         <family>Luxi Mono</family>
  6.                         <family>Nimbus Mono L</family>
  7.                         <family>Kochi Gothic</family>
  8.                         <family>ZYSong18030</family>
  9.                         <family>AR PL SungtiL GB</family>
  10.                         <family>AR PL Mingti2L Big5</family>
  11.                         <family>Baekmuk Gulim</family>
  12.                         <family>Andale Mono</family>
  13.                         <family>Courier New</family>
  14.                         <family>NSimSun</family>
  15.                 </prefer>
  16.         </alias>
复制代码

此处的修改是为了在KDE`的字符终端下使用SimSun字体。


不一定要改的地方,我没有改:

  1. <!--
  2. Accept deprecated 'mono' alias, replacing it with 'monospace'
  3. -->
  4. <match target="pattern">
  5. <test qual="any" name="family">
  6. <string>mono</string>
  7. </test>
  8. <edit name="family" mode="assign">
  9. <string>Simsun</string>
  10. </edit>
  11. </match>

  12. <!--
  13. Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
  14. -->
  15. <match target="pattern">
  16. <test qual="any" name="family">
  17. <string>sans serif</string>
  18. </test>
  19. <edit name="family" mode="assign">
  20. <string>Simsun</string>
  21. </edit>
  22. </match>

  23. <!--
  24. Accept deprecated 'sans' alias, replacing it with 'sans-serif'
  25. -->
  26. <match target="pattern">
  27. <test qual="any" name="family">
  28. <string>sans</string>
  29. </test>
  30. <edit name="family" mode="assign">
  31. <string>Simsun</string>
  32. </edit>
  33. </match>
复制代码

本来sans和monospace是可以显示汉字的,经这一改它就无条件的显示SimSun了。当然这样改也许不是很有必要,多几种中文字体总是好事。我就没有改,并用sans来显示桌面的文字。

到此对文件的修改结束,可以重启X-windows进入gnome了。

四-1、在gnome内的调整。

使用“首选项”的“字体”
(可以看到字体列表里已有了SimSun)
点击“细节”进入字体绘制细节,将分辨率改成72 点击“关闭”回到字体主窗口
如果依使用分辨率96,那9号字就是相当于我说的12号字。
以下是选用的参数:

应用程序字体: Century Schoolbook L 12  反正中文是SimSun就只看英文的效果了。
桌面字体: Sans 16                                       为的是保留原RH8的风格
窗口标题字体: Century Schoolbook L 12
终端字体 : Ar PL KaitiM GB 14                 经比较它用在这最好看
字体绘制: 最佳形态
这里实际是指定英文字体,你可以反复的比较最佳的效果,但终端的字体必需支持汉字。
当然也可以将windows的一些ttf字库考出来,如果只想给gnome2用的话就不需要编辑fonts.dir文件,只要在/etc/fonts/fonts.conf文件中指出路径就可以了。
取消字体绘制总有点感到少了RH8的个性。

当然你也可以在装上freetype的补丁和修改了/etc/fonts/fonts.config的zh设置后全部使用SimSun字体,但要注意这个设置:
字体绘制: 单色
这样修改后你的gnome的汉字界面显示和Xtt驱动SimSun字体的汉字界面显示几乎没二异。效果见新加的贴图。

当你改完了这一切再来看看效果,十分的完美。

四-2、在KDE下的调整:
方法同gnome的。
也可取消字体平滑后选用SimSun字体。终端字体或等宽字体用monospace

感觉是有回到了RH73的KDE的SimSun显示效果。

五、调整mozilla字体:

将简体中文字体改为:simsun-gb18030.2000-0或simsun-gbk-0,据我的使用来看效果很好。
不推荐使用gb2312.1980字符集,在有些网站会照成汉字显示问题。

六、对miniChinput的修改:
修改/usr/lib/Chinput/Chinput.at文件
第一处修改:
  1. chinput.gb18030font = -misc-simsun-medium-r-normal--0-0-0-0-c-0-iso10646-1
复制代码

安装了freetype2的补丁包一定要改这句。
没安装补丁这一行不改也可以,我改了。
第二处修改:

  1. xft.on = YES
  2. !xft.font.family = zysong18030
  3. xft.font.family = simsun
  4. xft.font.size = 11
  5. xft.anti-aliasing = YES
复制代码


全文完

最后的美化效果见图:
点击此处看取消了字体平滑彻底使用SimSun字体的Gnome效果(10月21日加)
点击此处看取消了字体平滑彻底使用simsun字体的KDE效果(10月21日加)

下面的是以前的一些贴图:
点击此处看我的桌面,使用了字体平滑
点击此处看字符终端效果,使用了字体平滑
点击此处看Nautilus效果,使用了字体平滑
点击此处看Mozilla效果
点击此处看取消了字体平滑但英文非simsun字体的效果   (10.6  add)
发表于 2002-10-21 14:37:58 | 显示全部楼层

不错,不错。

构思巧妙,高手所为。
发表于 2002-10-21 14:51:21 | 显示全部楼层
不错,虽然我不用KDE也要收藏起来
发表于 2002-10-21 20:02:15 | 显示全部楼层
最后一张图片里有张登记照,不知道是不是翔羽兄弟哟。
 楼主| 发表于 2002-10-21 20:20:28 | 显示全部楼层

我说说。

RH8使用Xft来渲染字体是一个很大的特色。是代表了未来发展方向的。
现在看来我国自产的Linux套装产品里Xteam Linux 4.0是国内最早使用Xft技术的,但那时的支持很有限也就照成了Xteam Linux 4.0在稳定性上的欠佳。
RH8的效果比较理想,稳定性也不错,足可说明在GTK2和QT3的出现对Xft支持的完善,其卓越的性能以表现了出来。
我们可以做一个比较,同是在RH8下使用SimSin字体,屏蔽了Xft后Gnome和KDE的反应速度明显的降底,而且也增加了出现问题的机会。Xtt对中文的显示效果是目前最好的,但它的速度慢,而且据说它的兼容性欠佳。Xtt也到了被淘汰的时候。我们在RH73这个被网友们称为RH对汉字支持“极好”的版本里也不是缺省的设置,就可以说明RH对Xtt的保留。也只有国内的某些Linux套装厂商才对Xtt情有独钟。
现在的RH8是给我们这些Linux爱好者们转变看法的时候了。我自装RH8以来就深感Xft的意义,很难说RH8或MD的下一个产品里就不在包含Xtt的文件包。也有可能在过一到两年所由的X软件都是支持Xft的,到那时我们就是有Xtt的包也是白搭。
大家要适应这和新的特点,摸索Xft的特征和它的不足。Xft对汉字的支持现在还是不如Xtt的在RH8可以看出英文字体的显示极其精美,而中文字体就欠佳。当然我在《完美的RH8+gnome+KDE使用simsun的方案》一文里也最终提出了改善中文显示的方案。但这是有代价的,取消了字体平滑功能,若不取消字体平滑功能就利用Xft的字体替换功能将英文字体和中文字体巧妙组合。即是这样汉字的的斜体和黑体还是一个很大的问题。这就需要进一步对Xft本身的改进而不只是简单的修改它的配制文件。
在美化RH8的过程中我还发现Xft对gnome和KDE的效果并不一样。最后达到一样的效果是我取消了中文字体的字迹平滑功能后达到的。我不知道是不是RH将Xft对gnome优化后的效果。我将Xft的源码文件(非RH的)拖下来在自己的机器编译后使用发现simsun字体在gnome和Kde下的表现是完全一样的。当然后来我还是换回了RH自带的Xft文件。
大家要将精力放到Xft上来,我不推荐屏蔽Xft来美化RH8的方案,这也是我自10月1日来反复修改《完美的RH8+gnome+KDE使用simsun的方案》一文的原因。到10月21日我觉得这篇文章很满意意了。大家也可以看出这其间的变化。我总是认为RH在Linux世界里的作用是主导意义的,它选中的东西是必需去注重的,轻易的屏蔽是用老眼光看新事物的表现。MD在这方面也是相同的,它的新产品同样也使用了Xft。
我记得早几年,那个时候的Linux爱好者整天想的就是让Linux能显示和输入汉字,这才有了xcin、Chinput等这些著名的软件。Xtt据说是日本人弄的,对汉字的显示是个飞跃。现在是Xft了,它很有可能是多种字体渲染驱动的归结。我们必需学习和研究。如果中国人能彻底的解决Xft对汉字显示的不足那可是意义重大的。
发表于 2002-10-21 20:50:40 | 显示全部楼层

不错!

君子之言让我耳目一新,也让我见识了不少!让英文及汉字在linux下完美显示的意义非常重大!
 楼主| 发表于 2002-10-22 23:48:54 | 显示全部楼层
Xft中文化计划已启动,有兴趣的朋友不妨研究一下。
http://fontconfig.org/
这里有源代码下载
发表于 2002-10-23 06:26:12 | 显示全部楼层
我已经照兄弟的方法汉化了,为什么mozilla的英文可以,但是中文却找不到Simsun字体呢?字体现在比较虚,而且,gaim和xmms的字体也不是很好,为什么呢?
 楼主| 发表于 2002-10-23 13:10:15 | 显示全部楼层
mozilla没有simsun字体,请检查fonts.dir文件,有没写simsun的iso10646-1信息。
发表于 2002-10-23 13:51:44 | 显示全部楼层
Xft的英文字符效果的确好,但是汉字的对比度总觉得不够,像是钢笔写字在吸水纸上的那种效果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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