LinuxGTK字体美化原理.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)

yd327298 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档