用True Type字体让X-Windows靓起来

Author: 郑岩龙 Date: 2001年 10期

    TrueType字体是源于Mac OS的一种矢量字体文件,它是能缩放的,所以在放大时不会出现锯齿,很美观,而它们在缩小的时候依然很清晰。Linux下的图形界面X-Window使用的是Type1、Freetype等矢量字体,但是要寻找相应的中文字体文件就比较困难了。这里我要介绍一种让Linux支持常用的TrueType字体的方法,让X-window中的汉字不会糊成一团,真正靓丽起来。
      下面,我以Red Hat 6.2版本为例具体说明一下设置的步骤。
      1.取得TrueType字体文件
      在我们常用的Windows系统中都内含了Times New Roman和Courier New等美观实用的TrueType字体,它们就在Windows安装目录下的fonts子目录中,那些后缀为ttf的文件都是TrueType字体。当然我们钟爱的中文TrueType字体也在这里,simsun.ttf是宋体,simkai.ttf是楷体,等等;如果你安装了繁体中文支持,那么你还可以看到一个文件mingliu.ttf,那就是繁体中文的字体文件。这么多好东西,尽管放心地拿来用吧!
      2.在Linux下建立、设置字体的目录
      $ mkdir -p /usr/local/share/fonts/TrueType
      将你选定的TrueType字体拷贝到上述目录下,在这里有一个重要的步骤是将字体文件的名称全部修改为小写字母。
      在新建的字体目录下,还需要生成一些文件指示字体的信息,我们可以借助一些实用程序,运行以下命令:
      $ ttmkfdir -o fonts.scale
      将生成字体说明文件:fonts.scale。遗憾的是对于中文字体文件,自动生成的信息不对,好在这是一个文本文件,我们可以人工编辑。我们先来看看fonts.scale文件的例子:
      4
      simsun.ttf  -misc-Simsun- medium-r -normal--0-0-0-0-p-0-ascii-0
      simsun.ttf  -misc-Simsun- medium-r -normal--0-0-0-0-p-0-gb2312-0
      simkai.ttf  -misc-Sim Kai GB2312- medium-r -normal--0-0-0-0-p-0-ascii-0
      simkai.ttf  -misc-Sim Kai GB2312- medium-r -normal--0-0-0-0-p-0-gb2312-0
      第一行的数字代表了本文件中字体信息的行数。从第二行开始每一行说明一种字体,由于即使在同一个字体文件中,不同语言的字符在Linux中都认为是不同的字体,所以一个字体文件的说明可能有好几行。在上面的例子中,定义了四种字体,它们是宋体英文字母、宋体汉字、楷体英文字母和楷体汉字。
      看起来好像很复杂,其实看不懂没有关系,真正需要我们进行的修改非常简单,找到中文TrueType字体所在的行,程序自动生成的信息会有英文字母(ascii-0)的那一行,我们只要将该行复制到新的一行,然后将ascii-0替换成gb2312-0即可(对繁体中文应该是big5-0)。别忘了对第一行的数字进行相应的修改,增加了几行就加几。最后一步很简单:
      $ mkfontdir
      将上面我们得到的fonts.scale文件复制到fonts.dir中。现在目录下有了fonts.scale和fonts.dir两个文件,字体目录设置完成。
      3.字体服务器xfs的设置
      Red Hat Linux 6.x通过字体服务器xfs来提供对TrueType字体的支持,因此还必须对xfs进行设置才能让X-Window正常使用TrueType字体。运行下面的命令添加新的字体目录:
      $ chkfontpath --add /usr/local/share/fonts/TrueType
      接着,更新xfs字体服务器:
      $ /etc/rc.d/init.d/xfs restart
      如果字体目录设置正确,将可以使用新的字体了。如果不行可以试着重新启动X-Xindow。
      如果发现没有安装xfs,它是在 XFree86-xfs*rpm中,马上放入安装盘添加。然后设置让它开机后自动启动:
      $ chkconfig --add xfs
      接着检查在 /etc/X11/XF86Config 文件中的X-Window的字体目录是否有包含有
      FontPath   “unix/:-1”
      这是使用xfs必须的,否则xfs即使运行也无法提供字体给X-Window使用。