附录 D. 在 Fluxbox 中使用 Artwiz 字体
简介
所谓的 Artwiz 字体其实是一个自称为 Artwiz 的家伙创造的一套字体(真够难以置信的)。 您可以前往 sf 下载与 gtk2/kde3 应用程序兼容的 aleczapka 的字体或是可能原始一点的 Han 的字体。
如果手头上有 mandrake 的 RPM 包的话,您就不必手动安装这些字体了,因为它们包含在其中了。 否则的话,嗯,没关系,让我来告诉你怎么办。有两种方法可供安装 artwiz 字体: system-wide 和 user-only。
System-wide 安装
如果您要为系统中的所有用户都装备上这套字体,请把源码包下载到 /tmp
然后像 这样做:
# cd /usr/X11R6/lib/X11/fonts # tar xjf /tmp/artwiz-fonts.tar.bz2 # cd fluxbox-artwiz-fonts # mkfontdir # chkfontpath -q -a /usr/X11R6/lib/X11/fonts/fluxbox-artwiz-fonts:unscaled
然后重启字体服务器即可。值得注意的是,您所用的发行版 可能会使用别的位置来存放系统范围的字体,像 /usr/share/fonts
。但通常上面所列出的默认位置应该不会有问题。
User 安装
如果您只想为单独一个用户配备的话,就更容易了。下载源码包到其主目录下,然后再:
$ tar xjf artwiz-fonts.tar.bz2 $ mv fluxbox-artwiz-fonts .fonts $ mkfontdir $HOME/.fonts
编辑 .xinitrc
或 .xsession
文件(依赖于您启动 X11 方式而定),在启动 其它程序前先写上下面一行:
xset +fp $HOME/.fonts
然后(重)启动 X11 并用xlsfonts
或 xfontsel
命令来检查系统是否已经识别 出了这套字体。
Bugs
artwiz 字体有时会与您的 locale 设置相冲突。要让它们正常工作的话,您得把下面这两句代码放到 您的 .xinitrc
或 .xsession
文件开头:
export LC=C export LC_ALL=C
这些设置是专门针对 locale 的。如果发现您的字体丢失或者其它与 locale 相关的问题,再把它们 去掉即可。而 aleczapka 提供了另外一种解决方案:
下面的方案可以让您在继续保留区域设置的同时也可以在 Fluxbox 中使用 Artwiz 字体。
Locale 设置的修正
解决方案其实很简单。你所要做的只是修正 fonts.alias
(和/或 fonts.dir
)文件。
这种方法也适用于其他的一些程序(比如 Evolution 和 UTF-8 )。首先您需要构造一个合适的 fonts.dir
文件。它应该位于 Artwiz 字体的安装目录。不然,就改到那个目录 并运行mkfontdir
。
该文件的语法简单易懂。第一行列出上述目录下的字体数目。接下来的每一行都是这种形式
font_filename fontname
我们在这里举一个 fonts.dir
文件的例子:
例子 D.1. fonts.dir
14 glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv nu.pcf.gz nu drift.pcf.gz drift cure.pcf.gz cure aqui.pcf.gz aqui lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
我们感兴趣的是那些由字体的简要描述所构成的条目,在此例中描述的是 Nu,Drift,Cure 和 Aqui 字体。 问题是它们缺乏完整的 X11 字体名称。
把文件改成:
14 glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv nu.pcf.gz -artwiz-nu-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv drift.pcf.gz -artwiz-drift-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv cure.pcf.gz -artwiz-cure-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv aqui.pcf.gz -artwiz-aqui-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
最后要做的是修正您的 fonts.alias
文件(以便在 iso646 之外 的其他 encoding 里也可以使用这些字体)。
语法是 字体别名 字体名
。例如,想在和 ISO-8859-2 encoding 下使用 Artwiz 字体的话,起个这样的别名(都只占用一行)。
-artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso8859-2 -artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
您也可以瞧瞧我的 fonts.dir 和 fonts.alias 文件,可以支持 ISO-8859-1,ISO-8859-2 和 iso10646-1(UTF-8)。如果按照上面的方法设置的话,您就不需要将 LC_* 标志改成 C 或 POSIX 了。之后所有的应用程序(不只是 Fluxbox )都可以正常工作了; 而不再抱怨“can't convert character set”之类的了。