在X11中使用字体
上一篇 /
下一篇 2008-03-25 03:03:28
Type1字体
X11使用的默认字体不是很理想。大型的字体显得参差不齐,看起来很不专业,并且,在Netscape®中,中的小字体简直难以看懂。有好几种免费、高质量的字体可以很方便地用在X11中。例如,URW字体集合(x11-fonts/urwfonts)就包括了高质量的标准type1字体(TimesRoman®,Helvetica®,Palatino®和其他一些).在Freefont集合中(x11-fonts/freefonts)也包括更多的字体,但它们中的绝大部分使用在图形软件中,如Gimp,在屏幕字体中使用并不完美。另外,只要花很少的功夫,可以将XFree86™配置成能使用TrueType®字体。要安装上面的Type1字体,您只需要运行下面的命令:
#cd/usr/ports/x11-fonts/urwfonts#makeinstallclean
freefont或其他的字库和上面所说的大体类似。为了让X服务器能够检测到这些字体,需要在X服务器的配置文件/etc/X11/(Xorg是xorg.conf而XFree86则是XF86Config)中增加下面的配置:FontPath"/usr/X11R6/lib/X11/fonts/URW/"或者,也可以在命令行运行:
xsetfp /usr/X11R6/lib/X11/fonts/URWxsetfprehash
这样会起作用,但是当X会话结束后就会丢失,除非它被添加到启动文件(~/.xinitrc中,针对一个寻常的startx会话,或者当您通过一个类似XDM的图形登陆管理器登陆时添加到~/.xsession中)。第三种
方法是使用新的/usr/X11R6/etc/fonts/local.conf文件。
TrueType®字体XFree864.X和Xorg都已经内建了对TrueType字体的支持。有两个不同的模块能够启用这个功能。在这个例子中使用freetype这个模块,因为它与其他的字体描绘后端是兼容的。要启用freetype模块,只需要将下面这行添加到/etc/X11/XF86Config文件的"Module"部分。Load"freetype"对于XFree863.3.X,需要额外的TrueType字体
服务器。Xfstt通常被用于这个目的。要安装Xfstt,只要简单的安装portx11-servers/Xfstt.现在,为TrueType字体创建一个目录(比如,/usr/X11R6/lib/X11/fonts/TrueType)然后把所有的TrueType字体拷贝到这个目录。记住您不能直接从Macintosh®计算机中提取TrueType字体;能被X11使用的必须是UNIX®/MS-DOS®/Windows®格式的。一旦您已经拷贝了这些文件到这个目录,使用ttmkfdir来创建一个fonts.dir文件,以便让X字体引擎知道您已经安装了这些新文件。ttmkfdir可以在FreeBSDPortsCollectionx11-fonts/ttmkfdir中找到。
#cd/usr/X11R6/lib/X11/fonts/TrueType#ttmkfdir>fonts.dir现在把TrueType字体目录添加到字体路径中。这和上面Type1字体的步骤是一样的,那就是,使用xsetfp /usr/X11R6/lib/X11/fonts/TrueTypexsetfprehash
或者把FontPath这行加到xorg.conf(或XF86Config)文件中。就是这样。现在Netscape,Gimp,StarOffice™和其他所有的X应用程序应该可以认出安装的TrueType字体。一些很小的字体(如在Web页面上高分辨率显示的文本)和一些很大的字体(在StarOffice下)现在看起来已经很好了。
Anti-Aliased字体
X11从XFree864.0.2开始支持字体的反走样。但是,字体配置在XFree864.3.0之前是非常繁琐的。从XFree864.3.0开始,对于所有支持Xft的应用程序,所有放到X11/usr/X11R6/lib/X11/fonts/和~/.fonts/中的字体都自动地被加入反走样支持。并不是所有的应用程序都支持Xft,但已经有相当多的程序提供Xft支持了。支持Xft的应用程序包括Qt2.3以及更高版本(用以开发KDE桌面的工具包)、GTK 2.0和更高版本(用于开发GNOME桌面的工具包),以及Mozilla1.2和更高版本。要控制哪些字体是anti-aliased,或者配置anti-aliased特性,创建(或者编辑,如果文件已经存在的话)文件/usr/X11R6/etc/fonts/local.conf。Xft字体系统的几个高级特性都可以使用这个文件来调节;这一部分只描述几种最简单的情况。要了解更多的细节,请查看fonts-conf(5).这个文件一定是XML格式的。注意确保所有的标签都完全的关闭掉。这个文件以一个很普通的XML头开始,后跟一个DOCTYPE定义,接下来是标签:
<?xmlversion="1.0"?><!DOCTYPEfontconfigSYSTEM"fonts.dtd"><fontconfig>像前面所做的那样,在/usr/X11R6/lib/X11/fonts/和~/.fonts/目录下的所有字体已经可以被支持Xft的应用程序使用了。如果您想添加这两个目录以外的其他路径,简单的添加下面这行到/usr/X11R6/etc/fonts/local.conf文件中:
<dir>/path/to/my/fonts</dir>添加了新的字体,尤其是添加了新的字体目录后,您应该运行下面的命令重建字体缓存:
#fc-cache-fAnti-aliasing会让字体边缘有些模糊,这样增加了非常小的文本的可读性,并从大文本字体中删除“锯齿”。但如果使用普通的文本,则可能引起眼疲劳。要禁止14磅以下字体的反走样,需要增加如下配置:
<matchtarget="font"><testname="size"compare="less"><double>14</double></test><editname="antialias"mode="assign"><bool>false</bool></edit></match><matchtarget="font"><testname="pixelsize"compare="less"qual="any"><double>14</double></test><editmode="assign"name="antialias"><bool>false</bool></edit></match>用anti-aliasing来间隔一些等宽字体也是不适当的。这似乎是KDE的一个问题。要修复这个问题需要确保每个字体之间的间距保持在100。加入下面这些行:
<matchtarget="pattern"name="family"><testqual="any"name="family"><string>fixed</string></test><editname="family"mode="assign"><string>mono</string></edit></match><matchtarget="pattern"name="family"><testqual="any"name="family"><string>console</string></test><editname="family"mode="assign"><string>mono</string></edit></match>(这里把其他普通的修复的字体作为"mono"),然后加入:
<matchtarget="pattern"name="family"><testqual="any"name="family"><string>mono</string></test><editname="spacing"mode="assign"><int>100</int></edit></match>某些字体,比如Helvetica,当anti-aliased的时候可能存在问题。通常的表现为字体本身似乎被垂直的切成两半。糟糕的时候,还可能导致应用程序比如Mozilla崩溃。为了避免这样的现象,考虑添加下面几行到local.conf文件里面:
<matchtarget="pattern"name="family"><testqual="any"name="family"><string>Helvetica</string></test><editname="family"mode="assign"><string>sans-serif</string></edit></match>一旦您完成对local.conf文件的编辑,确保您使用了</fontconfig>标签来结束文件。不这样做将会导致您的更改被忽略。
X11默认的字库当使用反走样时会比较难看。更好的字库可以在x11-fonts/bitstream-veraport中找到。这个port会创建一个/usr/X11R6/etc/fonts/local.conf文件,如果这个文件不存在的话。反之,port将创建/usr/X11R6/etc/fonts/local.conf-vera文件。将其内容合并到/usr/X11R6/etc/fonts/local.conf中,则Bitstream字体将自动地代替默认的X11Serif,SansSerif,以及单倍距字体。最后,用户可以通过他们个人的.fonts.conf文件来添加自己的设定。要完成此项工作,用户只需简单地创建~/.fonts.conf并添加相关配置。此文件也必须是XML格式的。最后:对于LCD屏幕,可能希望使用子像素的取样。简单而言,这是通过分别控制(水平方向分开的)红、绿、蓝像素,来改善水平分辨率;这样做的效果一般会非常明显。要启用它,只需在local.conf文件的某个地方加入:
<matchtarget="font"><testqual="all"name="rgba"><const>unknown</const></test><editname="rgba"mode="assign"><const>rgb</const></edit></match>Note:依赖于显示器的种类,rgb可能需要被更改为bgr,vrgb或vbgr:实验一下看看那个更好。Anti-aliasing在您下次启动系统时就能用了。然而,注意您的程序必须知道如何使用它。现在,Qt工具包做到了,所以整个KDE环境能够使用anti-aliased字体。通过“Font”capplet,GTK 和GNOME也可以使用anti-aliasing。默认情况下,Mozilla1.2以及更高版本都会自动的使用anti-aliasing。要禁用它,使用-DWITHOUT_XFT选项重新编译Mozilla。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
windows
操作系统
存储
服务器