LinuxGTK体美化原理.docVIP

  • 24
  • 0
  • 约2.53万字
  • 约 5页
  • 2016-10-09 发布于贵州
  • 举报
LinuxGTK体美化原理

1.GTK1的程序是不支持Fontconfig的。所以有点麻烦。拿到一个字体,你首先要让X找到它对吧?这一步就是在 /etc/X11/XF86config的Section files段里面的Fontpath属性里说明的详细后面会讲。好了,X现在知道字体在哪里了。 那gtk1的程序还不能直接使用它们,因为我们还没有给它们注册,这就需要在前面设定的Fontpath里生成两个文件fonts.dir fonts.scale这两个文件里有Fontpath下所有字体的列表信息,就是一个索引。 有了这个索引,gtk1的程序就可以找到相应的字体了。生成这两个文件的工具有mkfontdir,mkfontscale,ttmkfdir等等。好了,上面两步如果正确完成了,你的gtk1程序现在就可以正常显示汉字了。 常见的gtk1程序有xmms,gimp..... 2.GTK2和QT程序可以使用Fontconfig。Fontconfig是一个把字体选择出来,并且决定怎么显示这些字体的东东。类似于前面提到的 XF86config里的Fontpath属性以及fonts.dir和fonts.scale的功能,就是让程序找到这些字体。 所以,对于GTK2和 QT程序XF86config和fonts.dir就没有用了。所以对于这类程序来说,主要的Linux配置文件是/etc/fonts/fonts.conf。 Fontconfig的高级功能有很多,详细的说明可以参考这里: /nuke/modules.php?name=Forumsfile=viewtopict=48331 GTK2和QT的程序就很多了,KDE,GNOME,Firebird............ 上面的两段提到的只是让程序找到字体,并不负责具体的显示工作。它们只能保证你的程序能找到字体不会出现乱码现象,也就是所谓的汉化 至于freetype/Xft或者xtt是什么? 我的理解它们是负责具体把字体显示到屏幕上的东西,决定了你看到的字体是个什么效果。著名的firefly美化包就做了很多改善中文显示效果的工作。也就是所谓的美化 到此你应该对汉化,美化有了一个大概的概念。 接下来就是具体的操作 具体在Slackware 9.1上实现freetype/fontconfig/xft汉化美化工作 我用的是Slackware 9.1,但是对其它发行版,美化汉化的原理都是大同小异的。看了文章再通过实践加以理解,应该能够灵活应用其它发行版上的。 以下命令以#开头表示是以root身份操作,$开头则是以普通用户身份操作。 Step1. 准备TrueType字体,常用的如simsun.ttf tahoma.ttf verdana.ttf等等。然后决定你要把字体放在哪个目录里。这个目录随你喜欢,我把它们放在/usr/X11R6/lib/X11/fonts/TTF/里。 比如你下载来的的ttf字体都在/home/username/myfonts/下面,就做如下操作 #cp /home/username/myfonts/*.ttf /usr/X11R6/lib/X11/fonts/TTF/ Step2. 让GTK1程序找到你刚才放进去的字体。上面说的方法你还没有忘吧?让我们先修改XF86config #vi /etc/X11/XF86config 找到 Section Files 这一段,在里面加上一个Fontpath属性 FontPath /usr/X11R6/lib/X11/fonts/TTF/ 当然,如果里面已经有了你放字体的路径就不用加了,如果你的路径和我不一样,那就写你的路径,你也可以随时添加自己的字体路径,道理都一样。 如果你在XF86config里发现了 Load xtt这行,把它注释掉。 我是不用xtt的接下来当然是准备fonts.dir 和fonts.scale了。生成这两个的文件工具前面说了。Slackware自带的是mkfontdir和mkfontscale,我个人强烈不推荐这两个工具,它们生成的fonts.dir很不爽,simsun.ttf里找不出gbk的encoding。 你可以去下载一个叫ttmkfdir的工具: 8/linux/rawhide/1.0/i386/Fedora/RPMS/ttmkfdir-3.0.9-7.i386.rpm 假设你已经装上了这个工具,就做如下操作 #ttmkfdir /usr/X11R6/lib/X11/fonts/TTF/ -o /usr/X11R6/lib/X11/fonts/TTF/fonts.scale 现在检查一下这个文件 #vi /usr/X11R6/lib/X11/fonts/TTF/fonts.scale 如果里面有 :1:simsun.t

文档评论(0)

1亿VIP精品文档

相关文档