当前位置:Linux教程 - Gnome - 完美的RH8+gnome+KDE使用simsun的方案

完美的RH8+gnome+KDE使用simsun的方案

By 翔羽


  我的意图不安装任何补丁和不屏蔽Xft来使用simsun字库显示gnome和KDE的汉字界面,而保留了RH8使用Xft的速度性能。依使用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的显示效果和黑体、斜体的产生就看它了。方法不再说明,大家看一下相关的文章

  要强调的是务必要加上

  simsun.ttf -misc-simsun-medium-r-normal--0-0-0-0-c-0-iso10646-1

  之类的字体信息(正常体、斜体、黑体、黑斜体等)。

  但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

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


  Section ""Files""
    RgbPath ""/usr/X11R6/lib/X11/rgb""
    FontPath ""/usr/local/zhfonts""
    FontPath ""unix/:7100""
  EndSection

  Section ""Module""
    Load ""xtt""
    Load ""dbe""
    Load ""extmod""
    Load ""fbdevhw""
    Load ""dri""
    Load ""glx""
    # Load ""freetype""
    # Load ""type1""
    # Load ""record""
  EndSection



  2、 /etc/gtk/gtkrc.zh_CN


  style ""gtk-default-zh-cn"" {
    -*-*-medium-r-normal--12-*-*-*-*-*-iso10646-1,*-r-*""
  }
  class ""GtkWidget"" style ""gtk-default-zh-cn""



  经测试,如此修改可以很好的解决Gaim不能显示GBK字符集的问题,大家可以试试看能在Gaim中输入(拼音jun)“珺、碅、雋”吗。

  3、/etc/gnome/gtkrc.zh_CN

  将所由字体改成


  fontset = ""-misc-simsun-medium-r-normal--12-*-*-*-*-*-iso10646-1""



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

第二部分:为gnome2和KDE配置simsun字体

  这是我们要注意的重点,本人经过多次测试特奉献给大家。

  三、修改/etc/fonts/fonts.conf文件

  这是一个很关键的文件。

  必需修改的第一处:


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

  < dir >/usr/local/zhfonts< /dir >
  < dir >/usr/X11R6/lib/X11/fonts/Type1< /dir >
  < dir >/usr/share/fonts< /dir >
  < dir >~/.fonts< /dir >

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



  必需修改的第二处:


  < !--
  If the font still has no generic name, add sans-serif
  -- >
  < match target=""pattern"" >
  < test qual=""all"" name=""family"" compare=""not_eq"" >
    < string >Simsun< /string >
  < /test >
  < test qual=""all"" name=""family"" compare=""not_eq"" >
    < string >Simsun< /string >
  < /test >
  < test qual=""all"" name=""family"" compare=""not_eq"" >
    < string >Simsun< /string >
  < /test >
  < edit name=""family"" mode=""append_last"" >
    < string >Simsun< /string >
  < /edit >
  < /match >



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

  此处也很有必要修改:


   < match target=""font"" >
< test name=""lang"" compare=""contains"" >
< string >ko< /string >
< /test >
< edit name=""hinting"" mode=""assign"" >
< bool >false< /bool >
< /edit >
< /match >
< match target=""font"" >
< test name=""lang"" compare=""contains"" >
< string >zh< /string >
< /test >
< edit name=""hinting"" mode=""assign"" >
< bool >true< /bool >
< /edit >
< /match >



  去掉中文(zh)字体的平滑功能(将fale改成true)。

  不一定要改的地方:


  < !--
  Accept deprecated ''mono'' alias, replacing it with ''monospace''
  -- >
  < match target=""pattern"" >
    < test qual=""any"" name=""family"" >
      < string >mono< /string >
    < /test >
    < edit name=""family"" mode=""assign"" >
      < string >Simsun< /string >
    < /edit >
  < /match >

  < !--
  Accept alternate ''sans serif'' spelling, replacing it with ''sans-serif''
  -- >
  < match target=""pattern"" >
    < test qual=""any"" name=""family"" >
      < string >sans serif< /string >
    < /test >
    < edit name=""family"" mode=""assign"" >
      < string >Simsun< /string >
    < /edit >
  < /match >

  < !--
  Accept deprecated ''sans'' alias, replacing it with ''sans-serif''
  -- >
  < match target=""pattern"" >
    < test qual=""any"" name=""family"" >
      < string >sans
    < /test >
    < edit name=""family"" mode=""assign"" >
      < string >Simsun< /string >
    < /edit >
  < /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的个性。

  当然你也可以全部使用SimSun字体,但要注意这个设置:

  字体绘制: 单色

  这样修改后你的gnome和KDE的汉字界面显示和Xtt驱动SimSun字体的汉字界面显示几乎没二异。

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

  四-2、在KDE下的调整:

  取消字体平滑后选用SimSun字体。

  五、调整mozilla字体:

  将简体中文字体改为:simsun-gb18030.2000-0或simsun-gbk-0,据我的使用来看效果很好。

  不推荐使用gb2312.1980字符集,在有些网站会照成汉字显示问题。

  六、对miniChinput的修改:

  修改/usr/lib/Chinput/Chinput.at文件

  第一处修改:


  chinput.gb18030font = -misc-simsun-medium-r-normal--0-0-0-0-c-0-iso10646- 1



  这一行如不改也可以,但我是改了的。

  第二处修改:


  xft.on = YES
  !xft.font.family = zysong18030
  xft.font.family = simsun
  xft.font.size = 11
  xft.anti-aliasing = YES