FreeBSD ハンドブック
Prev | Chapter 5. X Window System | Next

# 5.5. XFree86 でのフォントの使用

寄稿: Murray Stokely.

## 5.5.1. Type1 フォント

XFree86 に付いてくるデフォルトのフォントは通常のデスクトップパブリッシングアプリケーションにとっては理想的とは言えない程度のものです。 文字を大きくするとジャギーになりプロフェッショナルとは言えないようなものになりますし、 Netscape での小さなフォントは頭が悪そうに見えます。 しかし、世の中には質の高い Type1 (PostScript) フォントがいくつかあり、 XFree86 ではバージョン 3.X でも 4.X でもそれらを簡単に利用することができます。 例えば、URW フォントコレクション (`x11-fonts/urwfonts`) には高品質の Type1 フォント (Times Roman、Helvetica、Palatino など) が含まれています。 freefont コレクション (`x11-fonts/freefont`) にはもっとたくさんのフォントが含まれていますが、 それらは Gimp のようなグラフィックソフトウェアで使用するためのものであり、 スクリーンフォントとしては十分ではありません。さらに、XFree86 は簡単に TrueType フォントを使うように設定することも可能です。 後に出てくる TrueType フォントのセクション を参照してください。

上記の Type1 フォントコレクションを ports から入れる場合には次のコマンドを実行してください。

    # cd /usr/ports/x11-fonts/urwfonts
    # make install clean

freefont や他のコレクションでも同じようにします。 X サーバにこれらのフォントがあることを教えるには (XFree86 バージョン 3 の場合は `/etc/`、 バージョン 4 では `/etc/X11/` にある) `XF86Config` の適切な場所に次のような行を加えます。

    FontPath "/usr/X11R6/lib/X11/fonts/URW/"

別の方法としては、X のセッション中に次のようなコマンドラインを実行します。

    % xset fp+ /usr/X11R6/lib/X11/fonts/URW
    % xset fp rehash

これは動くのですが、X のセッションが終了すると消えてしまいます。 消えないようにするには X の起動時に読み込まれるファイル (通常の `startx` セッションの場合は `~/.xinitrc`, XDM のようなグラフィカルなログインマネージャを通してログインする時は `~/.xsession`) に加えておきます。 三番目の方法は新しい `XftConfig` ファイルを使うことです。 これに関しては アンチエイリアスのセクションを参照してください。

## 5.5.2. TrueType フォント

XFree86 4.X には TrueType フォントのレンダリング機能が組み込まれています。 この機能を実現するために二つの異なるモジュールがあります。 ここでは、freetype のほうが他のフォントレンダリングバックエンドと整合性が高いので、 このモジュールを使うことにします。 freetype モジュールを使うためには `/etc/X11/XF86Config` ファイルの `"Module"` セクションに以下の行を追加するだけです。

    Load  "freetype"

XFree86 3.3.X の場合、 TrueType フォントサーバが別に必要となります。 Xfstt がよく使われるものです。 Xfstt をインストールするのは簡単で、 `x11-servers/Xfstt` ポートを利用してください。

さて、まずは TrueType フォント用のディレクトリ (例えば `/usr/X11R6/lib/X11/fonts/TrueType`) を作り、そこに TrueType フォントを全て放り込みましょう。 Macintosh の TrueType フォントは、そのままでは使うことができませんので注意してください。 XFree86 で使うには Unix/DOS/Windows 用のフォーマットでなければなりません。 ファイルを置いたら ttmkfdir を使って `fonts.dir` ファイルを作ってください。 このファイルにより、X は新しいファイルがイントールされたことを理解します。 `ttmkfdir` は FreeBSD Ports コレクション、 `x11-fonts/ttmkfdir`、からインストールできます。

    # cd /usr/X11R6/lib/X11/fonts/TrueType
    # ttmkfdir > fonts.dir

次に TrueType フォントのディレクトリをフォントパスに追加します。 上の Type1 フォントの場合と同じように、

    % xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
    % xset fp rehash

とするか、もしくは `XF86Config` ファイルに `FontPath` 行を追加するのです。

これで終わりです。Netscapeや Gimp、StarOffice といった全ての X アプリケーションから TrueType フォントを使うことができます。 (高解像度なディスプレイで見る Web ページ上のテキストみたいな) とても小さなフォントや (StarOffice にあるような) 非常に大きなフォントもかなり綺麗に見えるようになることでしょう。

## 5.5.3. フォントのアンチエイリアス

XFree86 では 4.0.2 以降でフォントのアンチエイリアスをサポートしています。 今のところ、ほとんど全てのソフトがこの新しい機能を使うメリットを亨受するようにはなっていません。 しかし、Qt (KDE デスクトップ用のツールキット) はサポートしていますので、 XFree86 4.0.2 以降と Qt 2.3 以降及び KDE を使う場合には全ての KDE/Qt アプリケーションでアンチエイリアスなフォントを使うことができます。

アンチエイリアスを使うように設定するには、 `/usr/X11R6/lib/X11/XftConfig` ファイルを作ります (既にある場合には編集してください)。 このファイルを使えばいくつかの先進的な機能を使うことができるのですが、 このセクションでは最も簡単なところだけを解説します。

まず、X サーバに対してアンチエイリアスをかけるべきフォントを指定します。 それぞれのフォントディレクトリに対して次のような行を加えます。

    dir "/usr/X11R6/lib/X11/Type1"

アンチエイリアスをかけたい他のフォントのディレクトリ (URW や TrueType など) についても同じようにします。 アンチエイリアスはスケーラブルなフォント (基本的には Type1 と TrueType) にのみ有効ですので、ビットマップフォントのディレクトリは加えないようにしてください。 ここに含めたディレクトリは `XF86Config` ではコメントアウトします。

アンチエイリアスをかけることによって境界が少しぼやけ、 そのためにとても小さなテキストはさらに読みやすくなり、 大きなフォントでは“ギザギザ”が消えるのです。 しかし、普通のテキストにかけた場合には目が疲れることになります。 9から13ポイントのサイズのフォントについて、アンチエイリアスをかけないようにするには次の行を加えます。

    match
        any size > 8
        any size < 14
        edit
        antialias = false;

いくつかの等幅フォントは、 アンチエイリアスをかけるとスペーシングがうまくいかなくなる場合があります。 特に KDE でその傾向があるようです。 解決策の一つとして、そういったフォントのスペーシングを100に設定する方法があります。 そうするためには次の行を加えてください。

    match any family == "fixed"      edit family =+ "mono";
        match any family == "console"    edit family =+ "mono";

(これは fixed というフォントに、 `"mono"` という一般名を別名として付けます)。 そして次の行も加えてください。

    match any family == "mono" edit spacing = 100;

等幅フォントが必要な時にはつねに `Lucidux` を使うように (このフォントは実際見目もよく、スペーシングの問題もありません) するためには最後の行を次のように変更します (最後の行は異なるものに同じファミリー名を付けています)。

    match any family == "mono"       edit family += "LuciduxMono";
        match any family == "Lucidux Mono"      edit family += "LuciduxMono";
        match any family == "LuciduxMono"       edit family =+ "Lucidux Mono";

最後に、このファイルを自分の `.xftconfig` として保存し、次のコマンドを追加します。

    includeif  "~/.xftconfig"

最後に一つ。LCD スクリーンではサブピクセルサンプリングが必要な場合があります。 これは、基本的には (水平方向に分かれている) 赤、緑、 青の各コンポーネントを別々に扱うことによって水平方向の解像度を良くするというもので、 そうすることによって劇的な結果が得られます。 これを有効にするには `XftConfig` ファイルに次の行を加えます (ディスプレイの種類にもよりますが最後は “rgb” ではなく “bgr” や “vrgb”, “vbgr” の場合もあるので、試してみて最も良いものを使ってください)。

    match edit rgba=rgb;

アンチエイリアスは、次に X サーバを立ち上げた時から有効になります。 しかし、上でも述べたようにその恩恵を受けるにはプログラム側での対処も必要です。 今のところ Qt は対応しているため、KDE 環境全体でアンチエイリアスのかかったフォントを用いることができます (KDE についての詳しいことは Section 5.7.3.2 をご覧ください)。 GTK+ を同じようにするパッチもありますので、そのパッチを当てた GTK+ を使ってコンパイルし直せば GNOME 環境や Mozilla もまたアンチエイリアスなフォントを使うことができます。 実際には `x11/gdkxft` という port があり、 リコンパイルしなくてもアンチエイリアスなフォントを使うことができます。 詳しくは Section 5.7.1.3 をご覧ください。

アンチエイリアスは、FreeBSD や XFree86 ではまだ新しい機能ですが、その設定はもっと簡単になるでしょうし、 すぐにもっとたくさんのアプリケーションがサポートするようになるでしょう。

Prev | Home | Next
XFree86 の設定 | Up | X ディスプレイマネージャ