付録 D. Fluxbox で Artwiz フォントを使うには

はじめに

いわゆる Artwiz フォントは、 自身を Artwiz と呼んでいる人物が(驚くべきことに)たった一人で作成しました。 フォントは、Oliwier Ptak (aleczapka) のプロジェクトページ (artwiz-aleczapka - Artwiz font revisited) から gtk2/kde3 アプリケーション互換のもの [訳注: fontconfig を介して利用できるように改良されている] か、旧形式のものを Han のアーカイブ からダウンロードできます。

Mandrake の RPM を持っているなら、 そのフォントもその中に含まれているので手作業でインストールする必要はありません [訳注: また Debian でもパッケージ(xfonts-artwiz) が存在するようです]。 そうではない方のために、ここで、インストール方法について説明しましょう。 artwiz フォントのインストールには、 システム共有と特定のユーザのみの利用の二つの方法があります。

システム共有インストール

システム上のすべてのユーザ向けにフォントをインストールするには、 アーカイブを /tmp/ [訳注: かどこか他の適当な場所] にダウンロードして、[訳注: root (スーパーユーザー) になって] 次のようにします:

    # 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

[訳注: chkfontpath はおそらく Red Hat などに固有のフォントを管理するコマンドでしょう。 このセクション自体、日本語グリフが含まれるはずもない Artwiz フォントについてのものですからあまり深くはふれませんが、 疑問点などがあれば JF 等にある、 フォント関連の日本語の文書を参照した方がよいでしょう。 なお参考までに前述の artwiz-aleczapka パッケージに含まれる README の INSTALL の節も簡潔でわかりやすくて良いと思います。]

そしてフォントサーバを再起動します [訳注: xfs (X フォントサーバ)を使っていない場合は必要ありません]。 ディストリビューションによってはシステム共有フォントの位置が異なる、例えば /usr/share/fonts であるかもしれないことに注意して下さい。 しかし上述のディレクトリは常識的なものであるはずです。

ユーザインストール

一人のユーザーのためだけにフォントをインストールしたいということなら話はずっと簡単になります。 ホームディレクトリにアーカイブをダウンロードし、次のようにします:

    $ tar xjf artwiz-fonts.tar.bz2
    $ mv fluxbox-artwiz-fonts .fonts
    $ mkfontdir $HOME/.fonts

.xinitrc.xsession ファイル (どのように X11 を起動しているかに依ります) を編集して、 他のプログラムを呼び出す前に次の行を挿入します:

    xset +fp $HOME/.fonts

それから X11 を(再)起動し、xlsfontsxfontsel でフォントが認識されているかどうか確認します。

不具合

artwiz フォントは時にあなたのロカール設定と衝突を起すことがあります。 その場合きちんと動作するようにするには、以下の行を .xinitrc.xsession の冒頭に追加する必要があるかもしれません:

    export LC=C
    export LC_ALL=C

[訳注: 最初の一行は何だかよくわかりませんが必要ないはずです。 ロカールの設定は LC_ALL、LC_各カテゴリ(例: MESSAGES)、LC_* のどれも未設定の場合に最終的に LANG、という順に評価されます (つまり、よく言う LANG をまず設定しろというのは厳密には嘘です)。 ちなみに当然のことながら LC_ALL が C なら日本語の入力や表示に多大な悪影響が出ますので、 完全に英語環境で使うのならともかく、この設定はお勧めしかねます。]

これはロカールに対するものですので、 もし他のフォントにまつわる問題やロカール関連の問題があるようなら再度上述の行を削除して下さい。 以下に aleczapka が示唆してくれた別解を示します:

ロカール機能を有効にしつつ、Artwiz フォントを Fluxbox で使えるようにする方法は次のとおりです。

ロカール設定の修正

解決方法は非常に単純なものです。必要なのは 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

最後に iso646 ではないエンコーディングのフォントを使うために fonts.alias ファイルを修正します。

構文は フォント別名 フォント名となっていて、 例えば artwiz フォントを ISO-8859-2 エンコーディングで使うには次のような別名を定義します (すべて一行に収める必要があります)。

-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.dirfonts.alias ファイルを参考までに。 ISO-8859-1, ISO-8859-2 そして iso10646-1 (UTF-8) をサポートしています。 上述のように設定できれば環境変数 LC_* を C あるいは POSIX に変更する必要はありません。 そして Fluxbox だけでなくすべてのアプリケーションが "can't convert character set" といったメッセージを出すことなく、しかるべき動作をするはずです。