欢迎来到天天文库
浏览记录
ID:8971022
大小:39.50 KB
页数:5页
时间:2018-04-13
《linuxgtk字体美化原理》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.GTK1的程序是不支持Fontconfig的。所以有点麻烦。拿到一个字体,你首先要让X找到它对吧?这一步就是在/etc/X11/XF86config的Section"files"段里面的Fontpath属性里说明的详细后面会讲。好了,X现在知道字体在哪里了。那gtk1的程序还不能直接使用它们,因为我们还没有给它们"注册",这就需要在前面设定的Fontpath里生成两个文件fonts.dirfonts.scale这两个文件里有Fontpath下所有字体的列表信息,就是一个"索引"。有了这个"索引",
2、gtk1的程序就可以找到相应的字体了。生成这两个文件的工具有mkfontdir,mkfontscale,ttmkfdir等等。好了,上面两步如果正确完成了,你的gtk1程序现在就可以正常显示汉字了。常见的gtk1程序有xmms,gimp.....2.GTK2和QT程序可以使用Fontconfig。Fontconfig是一个把字体选择出来,并且决定怎么显示这些字体的东东。类似于前面提到的XF86config里的Fontpath属性以及fonts.dir和fonts.scale的功能,就是让程序找到这些字
3、体。所以,对于GTK2和QT程序XF86config和fonts.dir就没有用了。所以对于这类程序来说,主要的Linux配置文件是/etc/fonts/fonts.conf。Fontconfig的高级功能有很多,详细的说明可以参考这里:http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=48331GTK2和QT的程序就很多了,KDE,GNOME,Firebird............上面的两段提到的只是让程序
4、找到字体,并不负责具体的显示工作。它们只能保证你的程序能找到字体不会出现乱码现象,也就是所谓的"汉化"至于freetype/Xft或者xtt是什么?我的理解它们是负责具体把字体显示到屏幕上的东西,决定了你看到的字体是个什么效果。著名的"firefly美化包"就做了很多改善中文显示效果的工作。也就是所谓的"美化"到此你应该对汉化,美化有了一个大概的概念。接下来就是具体的操作具体在Slackware9.1上实现freetype/fontconfig/xft汉化美化工作我用的是Slackware9.1,但是
5、对其它发行版,美化汉化的原理都是大同小异的。看了文章再通过实践加以理解,应该能够灵活应用其它发行版上的。以下命令以#开头表示是以root身份操作,$开头则是以普通用户身份操作。Step1.准备TrueType字体,常用的如simsun.ttftahoma.ttfverdana.ttf等等。然后决定你要把字体放在哪个目录里。这个目录随你喜欢,我把它们放在/usr/X11R6/lib/X11/fonts/TTF/里。比如你下载来的的ttf字体都在/home/username/myfonts/下面,就做如下
6、操作#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/"当然,如果里面已经有了你放字体的路径就不用加了,如果你的路径和我不一样,那就写
7、你的路径,你也可以随时添加自己的字体路径,道理都一样。如果你在XF86config里发现了Load"xtt"这行,把它注释掉。我是不用xtt的接下来当然是准备fonts.dir和fonts.scale了。生成这两个的文件工具前面说了。Slackware自带的是mkfontdir和mkfontscale,我个人强烈不推荐这两个工具,它们生成的fonts.dir很不爽,simsun.ttf里找不出gbk的encoding。你可以去下载一个叫ttmkfdir的工具:ftp://216.254.0.38/li
8、nux/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.ttfx
此文档下载收益归作者所有