附录 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”之类的了。