Linux字体设置fonts.dir文件分析

系统字体配置、中文显示和输入法问题
回复
头像
snonow
帖子: 251
注册时间: 2005-09-08 9:01

Linux字体设置fonts.dir文件分析

#1

帖子 snonow » 2005-10-14 9:42

Linux字体设置fonts.dir文件分析

作者:iceblood
日期:2002-07-20

现在很多人都喜欢打造自己的linux,并且她比以前更漂亮,其中设置字体是非常重要的一步,很多人在设置fonts.dir文件的时候,一般都直接从别人那里copy,而它的结构到底如何,或有的想自己打造一个自己更加喜欢的字体出来,就不知道如何下手了,近几天我对这个文件分析了一下,把目前我所理解到的一些心得写出来给大家,让大家做个参考,希望能提供大家一个方便,由于这方面的具体资料我找了很久都没找到,所以以下都是我的个人见解,如果有不对的地方欢迎高人指出.
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等,具体可以参看

分析完一行后,现在我来写一个gb2312.1980-0的font.dir给大家使用.
22 //以下22行为字体设置
simsun.ttf -misc-simsun-medium-r-normal–0-0-0-0-p-0-gb2312.1980-0 //SIMSUN的字符设置,使用的p.
ai=0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-i-normal–0-0-0-0-p-0-gb2312.1980-0
ai=0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-o-normal–0-0-0-0-p-0-gb2312.1980-0
ai=-0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-ri-normal–0-0-0-0-p-0-gb2312.1980-0
ai=-0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-ro-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:simsun.ttf -misc-simsun-bold-r-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-r-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:ai=0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-i-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:ai=0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-o-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:ai=-0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-ri-normal–0-0-0-0-p-0-gb2312.1980-0
ab=y:ai=-0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-ro-normal–0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-simsun-medium-r-normal–0-0-0-0-c-0-gb2312.1980-0 //simsun的字设置,使用的p.
ai=0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-i-normal–0-0-0-0-c-0-gb2312.1980-0
ai=0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-o-normal–0-0-0-0-c-0-gb2312.1980-0
ai=-0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-ro-normal–0-0-0-0-c-0-gb2312.1980-0
ai=-0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-medium-ri-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:simsun.ttf -misc-simsun-bold-r-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-r-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:ai=0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-i-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:ai=0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-o-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:ai=-0.2:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-ro-normal–0-0-0-0-c-0-gb2312.1980-0
ab=y:ai=-0.4:sw=1:bw=0.5:simsun.ttf -misc-simsun-bold-ri-normal–0-0-0-0-c-0-gb2312.1980-0
有兴趣的朋友看了以上内容后可以自己添加新的字体,让大家的linux越来越中国化.也祝中国的Linux越来越繁荣.
BenQ P41-C30
\找不到64位软件已经是历史了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2005-10-14 11:20

好。就是看晕。有个gui界面的设置才好。 :lol:
● 鸣学
头像
snonow
帖子: 251
注册时间: 2005-09-08 9:01

#3

帖子 snonow » 2005-10-14 11:27

就是很郁闷,连个字符界面的设置都没有
mkfontdir命令好像没有什么参数啊
BenQ P41-C30
\找不到64位软件已经是历史了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2005-10-14 11:32

要是做成gimp那样的才好。字体大小间距都可以鼠标拖动哦。 :lol:
● 鸣学
Joshua_Zhan
帖子: 155
注册时间: 2008-01-04 20:57

#5

帖子 Joshua_Zhan » 2008-01-22 1:00

晕,看不懂 :em32
回复