|
|
第 1 帖 | |
|
|
标题: 初探Debian的字体管理 Linux下做汉化经常被字体搞得晕乎乎的,一般都是跟着帖子依葫芦画瓢,也不知道为什么,一旦出问题就傻眼了,这种感觉实在不好,这段时间就硬着头皮看了点E文和以前兄弟们的文章,也不知道对不对,就斗胆做个总结后拿来跟兄弟们讨论了,不许笑话啊:-)希望能抛砖引玉,让我们对字体有个彻底的了解。
1、要构造一个可用的字体需要a)字体库,比如我们经常用到的.ttf或.ttc文件,当然还有其它格式的;b)有关该字体的配制文件,也就是fonts.dir、fonts.scale和fonts.alias,每个字体目录都是由这三个文件及文件中所描述到的字体文件组成;c)渲染该字体的后台引擎,如xtt、freetype、type1和speedo等;d)最后要告诉X服务器可用的字体目录,这里有两种方式,一是直接写在XF86Config-4文件的Files段,另外如果是使用xfs服务器,则要写在/etc/X11/fs/config文件的catalogue段。 2、对于字体库现在大家用得比较多的是微软的simsun.ttc和RedHat8中自带的zysong.ttc,如果大家的Windows是正版的,当然可以用simsun了,但如果不是,建议还是用zysong,既然有Linux了,我们就不应再用盗版软件了,我一直觉得那很不光彩。 3、fonts.dir和fonts.scale的语法,这两个文件一模一样,我到现在还没搞清为什么?言归正传,它们的语法具体如下(这是iceblood兄的原文,写得很好,我就照抄了:-) fonts.dir的第一行一般是告诉Xwindows一共有多少行字体信息,从第二行开始起就是正式的字体设置信息了,一般分两部分,第一部分为参数部分,是配合第二部分来定义的,现在分析下面一行字体信息给大家一个参考: ab=y:ai=-0.2:sw=1:bw=0.5:simsun.ttf-misc-simsun-bold-ro-normal--0-0-0-0-p-0-gb18030.2000-0 ab=y 启用粗体字,默认ab=n 既当没有设置的时候是不启用粗体的,配合bold同时使用. ai=-0.4 左倾斜一个字的0.4的宽度,如果ai=0.4就是右倾斜一个字的0.4宽度,默认ai=0.请配合o或者i同时使用,由于这里是负的所以这里还需要配合r使用,所以后面是ro. sw=1 字体宽度为1,默认为0.这个一般配合后面的p使用,使用p的时候,由于占用的是字符宽度,所以可能显示出来的字叠在一起,加上这个后就会把字和字的距离拉开. bw=0.5 字体间距离为0.5个字的宽度,默认为0,假设你要使用斜体,由于斜体占的宽度比较宽,比如上面的bw=-0.4也就是说字体的上边部分左移0.4个字的宽度,那么我们为了看字的方便,需要吧字体宽度为之为bw=0.5这样有0.1之间的距离,不会导致字和字之间看起来重叠. simsun.ttf 字体文件名,这个不用解释了. misc 字体制造商 simsun 字体明称,这个我们可以随便修改,比如改成song,那么当我们在Xwindows里设置字体的时候找song字体就行了. bold 粗体,这个还有一个选项medium(普通)假如使用了bold请同时把ab=y加上才起作用. ro 反斜,其中r(Roman罗马体),i(Italic斜体),o(Oblique倾斜)当r和其他两个一起使用的时候为反斜.当使用i,o,ro,ri等的时候,请使用ai=n,其中n=0.2,-0.2,0.4,-0.4等.如果不设置ai=n,那么这些也都失去效果. normal 字符集宽度为标准, 此外还有 condensed(压缩), narrow(窄), double(两倍宽) 0 像素大小,这个字体服务器会自动修改,所以一般为0. 0 点大小,同上. 0 X轴解析度,同上. 0 Y轴解析度,同上. c 字间距为c,即一个字的距离,另外还有p,即字符距离 0 平均宽度,这个字体服务器会自动修改,所以一般为0. asccii-0 字符集为asccii-0,其它还可以有很多,比如:gb2312.1980-0,gb18030.2000-1,gb18030.2000-0,gbk-0等 4、字体引擎xtt和freetype、type1不能同时使用,她们都是渲染truetype字体的引擎但用的方法不一样。对于simsun字体用xtt渲染效果最好,而zysong则要用freetype。但我碰到一个奇怪的问题,在Debian下用freetype渲染的zysong,字体效果不如RH8里的。 5、/etc/pango/pangox.aliases这个文件好像是用来定义系统中使用的sans、serif和monospace字体和真实字体的对应关系。 6、Debian通过引入defoma来简化字体管理,下面以为系统增加zysong.ttc为例来说明。 #defoma-hints truetype /usr/share/fonts/TrueType/zysong.ttc > zysong.hints 上面这条命令会启动一个交互的方式引导我们生成关于zysong.ttc的字体设定信息,并将该信息存在zysong.hints中,其中truetype告诉程序要配置的字体类型。 #defoma-font reregister-all zysong.hints 根据zysong.hints中的设定自动生成字体配置信息并存入/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType目录中的fonts.alias、fonts.dir、fonts.scale,也就是通过它我们不用再手动设置这三个文件了,然后她会在该目录下生成一个到zysong.ttc的链接。另外她还会自动更改pangox.aliases中的内容,如果还有其它程序设置为让defoma自动管理字体,她也会自动为其更新相应的内容,而这需要该程序提供相应的脚本,并向defoma注册。而要撤消一个字体则只需执行下面这个命令 #defoma-font unreregister-all zysong.hints 另外你必须将上面那个defoma用来存放字体信息的目录告诉Xserver。 因此总的来说defoma为我们简化了上面提到的1.b和5这两步。 另外,为了让defoma生成hints文件,你还要安装相应的脚本文件;而为了自动fonts.dir等字体配置信息文件,你要安装x-ttcidfont-conf包,同时要告诉她你是使用xtt或freetype来渲染字体。 7、对于gtk1.x的程序,如xmms和mozilla其界面的默认字体在/etc/gtk/gtkrc.zh_CN文件中定义,一般如下: style "gtk-default-zh-cn" { fontset = "-misc-simsun-medium-r-normal--16-*-*-*-*-*-iso8859-1,\ -misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*" } class "GtkWidget" style "gtk-default-zh-cn" 对于gtk2.x的程序直接在桌面首选项的字体中定义。 8、如果使用freetype的渲染引擎,则在mozilla的安装设置中要记得打开对freetype的支持,否则无法在网页中使用安装的字体。 9、KDE的字体设置,请教兄弟们 10、WMaker的字体设置,同上 11、XFCE的字体设置,同上 12、Enlightment的字体设置,同上
__________________
为Linux的文明,我们一起努力 Jabber: bowill@jabber.org.uk MSN: happy_star@163.net 此帖于 02-11-23 04:39 被 witkey 编辑. |
|
|
|
|
|
|
|
第 2 帖 | |
|
|
pango是渲染字体用的底层库,用来支持多国字体, 使用UNICODE编码
可以在/usr/lib & /usr/X11R6/lib/modules/下面找到。
__________________
发行版再好,不如自己做的lfs好。 此帖于 02-11-23 09:08 被 doooom 编辑. |
|
|
|
|
|
|
|
第 3 帖 | |
|
|
doooom兄,你给我们讲讲pangox.aliases文件吧,我现在还有点糊涂。
|
|
|
|
|
|
|
|
第 4 帖 | |
|
|
我的总的感觉就是PANGO只是被GTK依赖,真正其作用的只是那些LIB文件。真正的模块里面连ZH_CN都没有的。这个可以去他那个目录下面看(具体路径不确定,手边没LINUX没法查)。我的观点是这个文件对我们汉化没什么作用。而且我看过无数的汉化文章,各种版本的LINUX下的,都没有提到过这个文件。
|
|
|
|
|
|
|
|
第 5 帖 | |
|
|
复杂复杂啊……还是我比较懒,全用gtk1的程序
![]()
__________________
wellcome to www.linuxidea.org |
|
|
|
|
|
|
|
第 6 帖 | |
|
|
另外,defoma的字体管理还有一个前端工具
dfontmgr,不过这家伙胃口真大,居然要了我10M空间,哈哈我是唯美主义者:-) |
|
|
|
|
|
|
|
第 7 帖 | |
|
|
witkey兄能否写篇——Debian下中文环境的实现思路 的文章?我在这方面的知识又杂又碎,缺乏整体认识,我想也有不少人也和我一样吧?呵呵,请大家帮助!
__________________
http://211.92.88.40/~lyoo/bookmark/bookmark.html |
|
|
|
|
|
|
|
第 8 帖 | |
|
|
很专业!
|
|
|
|
|
|
|
|
第 9 帖 | |
|
|
好!!! 顶一下!!!
![]()
__________________
My Dear bring me a copy of Mac OS X ... |
|
|
|
|
|
|
|
第 10 帖 | |
|
|
哈哈,不好意思,其实我是小菜鸟一只,接触Linux也就几个月时间,我是做市场营销的,Linux只是个人爱好,另外我真的不想再用盗版软件了,想想以前因买不起正版而不得不到处去买盗版软件的感觉实在不好,跟作贼似的,咱好歹也是受过高等教育的人,还知道点羞耻,现在好了,Linux已经让我彻底跟Windows说再见了,再也不用当小偷了,向一个合格的知识分子靠近了,真是舒服!!!
啊,扯远了。言归正传,要写一篇比较系统的有关Debian汉化的文章,嘿嘿,对我要求就高了,还得另请高明!不过如果只想对整个框架有个了解,建议看这两篇文章,虽然不是针对Debian的,但原理都一样。 1、http://www-900.ibm.com/developerWork...30/index.shtml 2、http://www-900.ibm.com/developerWork...t1/index.shtml |
|
|
|
|
|
|
|
第 11 帖 | |
|
|
另外,现在最新的Debian字体管理已经都改用XFT2和fontconfig了,因此上面介绍的有些东西已经过时了,如defoma可能以后就不怎么需要了。
新的字体管理配置都在/etc/fonts/fonts.conf文件中,比以前更简单了,大家可以看看帮助文件。 |
|
|
|
|
|
|
|
第 12 帖 | |
|
|
现在也只有gnome2.2跟kde3.1的软件用xft2和fontconfig
defoma对于大部份基于gtk1和X的软件还是很有用的 关于用defoma安装中文字体的文章在一年半前就发表在摩托学园里了 就是这里 -- http://moto.chuany.net/
__________________
Aoccdrnig to a rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht frist and lsat ltteer is at the rghit pclae. |
|
|
|
|
|
|
|
第 13 帖 | |
|
|
好文章!正是我想看的,非常感谢!
moto.chuany.net也很不错,不过论坛好象比较冷清,不过好文章不少... |
|
|
|
|
|
|
|
第 14 帖 | |
|
|
中易的字体也不是免费的,请大家不要在为取得授权的情况下使用。
|
|
|
|
|
|
|
|
第 15 帖 | |
|
|
过时的帖子 , 拜托不要顶上来了
现在主流是 fontconfig + xft 帖子内容不再适用了
__________________
- 每日抽一刻钟解答 ML 中初学者的问题, 每周抽两小时整理新学知识,发表体验 Blog/Wiki/mail 分享出去, 每周至少抽四个小时来翻译自个儿喜欢的自由软件的文档, 每月至少抽八小时编程,推进自个儿的项目, 每年至少参加一次自由软件的活动,传播自由软件思想,发展一名自由人………… 只要我们每个人都坚持下去! 10年!就可以改变中国软件的整体风貌! ── woodpecker.org.cn ─────────────────── linux.hiweed.com ubuntu.org.cn sf.net/projects/pycds |
|
|
|
|
|