Xwindow读书笔记5
时间:2005-12-10 来源:rickyweiwei
列出可用的字型
xlsfonts程式一行行的列出server上可用的字型
观察一个特定的字型
xfd (X font displayer 的缩写) 程式由引数(argument)得到字型的名称之後,建立一个视窗并且在视窗中显示此名称之字元字型,例如:xfd -fn "*symbol*-180-*"
以X程式使用字型
大多数的X程式使用文字,并且允许你指定使用的字型,如何使用的详细节可能因不同的程式而异,如果有问题的话可以看指南页。但是几乎都是以命令列中选项 -fn fontname 或 -font fontname 来指定字型名称,bitmap、
xclock、xterm、xload、xmb 和 xedit都是这样操作的。例如假设你是为了展示的缘故,以很大的字型执行xterm ,你可以用下列命令列:
xterm -fn "*courier-bold-r-*-240-*"
字型如何命名
在X中,字型可以取成任何名称,但几乎所有的字型均依照它们的本质来命名,这样的命名方式,名字是由几个不相关的部份组合而成,而我们在使用
应用程式时,光凭著字型名称便可以大略了解字型的内涵。
组件之间是由短横线(-)所分开的,而且可以包含空白,字型名称对字元大小写并不会区别,□例如下:
-adobe-times-bold-normal--12-120-75-75-p-67-iso8859-1
adobe :字型的制造厂商。
times :型态家族(type family) ,其它尚包含courier ,helvetica 和 new century schoolbook。
bold :粗体字,其它包含light (细)和medium(中等)。
r :字体倾斜的型态,r 是roman (罗马体),其它是 i(italic意大利体),o (oblique 倾斜体)。
12 :字元的高度,单位为像素。
120 :字型的点尺寸(point-size),为点的10倍(120 意为12点,一点约为1/72英□宽)。
75-75 :字型被设计在显示装置上的水平和垂直的解析度(每□若干点)。
p :字和字之间的间隙,p 是proportional(成比例的),相对的是m (monospaced固定宽度)。
如果你对某一栏有特别的兴趣,在本版的说明文件档$TOP/doc/fontnames/fname.txt 中,有对每一个组件完整的说明。
通用字元和字型名称 *-times-bold-r-*-120-*
在显示器上一个给定点尺寸的字型对不同的解析度有不同的像素尺寸,所以用通用字元指定点尺寸可以造成与装备无关的效果
列出可用的字型 -- xlsfonts
xlsfonts "*-times-*-180-*" 列出所有18点Times的字型。
xlsfonts "*-adobe-*"
xlsfonts -fn "-adobe-*"
字型储存在何处 -- 字型目录
字型被储存在server上某一个或多个字型目录(font directory)中,字型目录由三个部份组成:
1. 一个普通的目录,为包含著字型的SNF 档案之所在。
2. 一个被X使用,将SNF 档案名称对应到字型名称的资料库。
3. 一个可选择性的别名档(aliase file) ,可以让你用一个以上的名称参考到同一字型(不论你使用了多少个目录,你只需要一个别名档)。
维护字型目录 -- mkfontdir
mkfontdir 设定新的字型目录并且可以修改它:
1. 在档案目录中搜集了所有你要使用字型的档案,档案可以是BDF 档(通常档名结尾为.bdf),SNF 档案(.snf)或被压缩的SNF 档(.snf.Z),mkfontdir
会自动将非SNF 档案转换为SNF 档案。(被压缩的档案是被BSD 压缩程式执行过用以节省档案空间。)
2. 如果你要使用别名,需要在字型目录中建立(或编辑)一个名为fonts.aliase的档案。有关此档案格式的细节部份在指南页中有说明,简单地
说,它的格式为每行以空白间隔出两个栏位,第一栏是别名的名称,第二栏则是字型的名称(可包含通用字元),例如: tbi12 *-times-bold-i*-120*
3. 执行mkfontdir ,需把档案名称当成引数输入,以你使用预设的X建构为例 :
mkfontdir /usr/lib/x11/fonts/misc /usr/lib/x11/fonts/75dpi /usr/lib/x11/fonts/100dpi(如果档案目录中没有包含字型资料库,mkfontdir 会忽略它。)
注意:建立一个字型目录并不会导致server”注意”它,你必需重新启动server或重设字型搜寻路径(search path)
字型搜寻路径 -- xset
查看你目前的字型路径:使用命令xset q,如此会印出一大堆资讯;你可以使用任何数目的字型目录,但如果它们有任何和预设建构不同的地方,你需明确的告诉server,这些字型目录的列表称之为字型搜寻路径(fontsearch path)或字型路径(font path) ,你可以设定这个一连串以逗点为区隔
的档案目录。
设定不同的字型路径:使用命令xset fp new-path,例如,如果你有大量本地字型且不欲使用多数的标准字型: xset fp /usr/local/xfonts, /usr/lib/x11/fonts/75dpi
当你想重新设定server对字型路径的预设值时,使用命令: xset fp default
告诉server重新读入字型的目录,使用命令: xset fp rehash
在现存的路径加入新的字型目录,使用命令: xset +fp dirlist
加入一列由逗号分隔的目录列(dirlist) 在现存路径之左,而xset fp+ dirlist 则将目录列加到路径之右。
字型目录自路径移去:下两个命令列
xset -fp dirlist
xset fp- dirlist
均可将在dirlist 中的目录自现有路径移去。注意:字型路径由server所掌握,而被所有使用该server的client所应用。
你可以利用这个原则来安排最适合你的显示器解析度的字型。假设你的显示器解析度为100dpi,则将100dpi字型设在75dpi 之前,例如: xset fp /usr/lib/x11/fonts/100dpi/,
/usr/lib/x11/fonts/75dpi/
如果你指定字型为: * -times-bold-r-*-120-*
虽然字型有75dpi 和100dpi两种版本,但你会用到100dpi的字型,这正是你所需要的。
增加新字型至你的server
我们以Sun所提供的字型为例,将它转换至BDF ,然後装设(install)
它,字型开始时在:
/usr/lib/fonts/fixedwidthfonts/screen.r.7
欲将Sun 的字型转换成BDF ,我们需使用contrib 版的软体程式vtobdf(其它系统也有类似的工具)。vtobdf有两个引数,分别是输入档档名和欲建立
之BDF 档档名,我们可以事先自contrib 磁带取得此程式,编译它,而後加入我们可执行的目录中,我们就可以使用它了,我们将或多或少依据X的标准来
命名这个新的字型,我们喜欢把输出档的档尾名用.bdf,但由於vtobdf会在字型名称後自动产生.bdf,所以可以省略它,但在稍後之重定名称则不可省略。
venus% cd/tmp
venus% vtobdf /usr/lib/fonts/fixedwidthfonts/screen.r.7
-sun-screen--r-normal---70-75-75-m---
现在重新命名档案,并将其搬入字型目录:
venus% mv- -sun-screen--r-normal---70-75-75-m---
/usr/lib/x11/fonts/misc/-sun-screen--r-normal---70-75-75-m---.bdf
最後,执行mkfontdir 和告诉server重新读入字型目录以便能使用此字型:
venus% mkfontdir
venus% xset fp rehash
检查一下此字型是否真的可用:
venus% xlsfonts "*-sun_screen*"
-sun-screen--r-normal---70-75-75-m---
注意:你的字型可能可以取代其它的预设字型,但这些字型档案可能因有保护而无法更改,必须问一下你的系统管理者。
X色彩资料库
要在你的资料库中加入一个新的色彩,先用文字编辑器将色彩输入rgb.txt 档,然後:
venus% cd usr/lib/x11
venus% $TOP/rgb/rgb < rgb.txt
rgb 并不需要每次均重建内部资料库,只需加入新增(或修改)的项目即可,所以你可以用标准输入来输入色彩:
venus% $TOP/rgb/rgb
255 50 50 mypink
小结 如何命名和储存字型,如何找到可用的字型及字型的内容,在X应用程式中如何使用字型,和如何在你的系统中加入新的字型。