XでTrueTypeフォントを使う


 XでTrueTypeフォントを使うには、今のところ、Xサーバーにパッチをあてて直接TrueTypeフォントを扱えるようにするという方法と、Xフォントサーバーにパッチを当てて、そっちでTrueTypeフォントを扱えるようにするという方法の二通りある。
 どちらにしても、The X-TrueType Server Projectの成果物を利用するのだが、PotatoではTrueTypeフォントに対応したXフォントサーバーがパッケージとして準備されているので、それを利用するのが一番手軽だろう。

 インストール自体は至って簡単で、
# apt-get install xfs-xtt
でよい。
 次に設定なのだが、まずはXサーバーにXフォントサーバーの居場所を教えてやらないといけないので、/etc/X11/XF86Configの"Files"セクションに
FontPath "unix/:7100"
の一行を加える。
 次に、Xフォントサーバーの設定ファイルに実際にフォントを置いてあるディレクトリを書き加える。/etc/X11/xfs/configの
catalogue = ……
の部分がフォントディレクトリの設定なので、そこにカンマで区切ってディレクトリをフルパスで並べておけば良い。

 最後に、このままだとXがフォントを要求したときに全ての文字をレンダリングしてしまい、日本語のフォントとかだと物凄く時間がかかってしまうので、必要になったときに必要な文字だけレンダリングをするように設定しておく。
 /etc/X11/xfs/configの"deferglyphs"の値を16かallにしておき、Xサーバーの起動時に、
$ startx -- -deferglyphs 16(もしくはall)
と指定してやれば良い。
 ディスプレイマネージャを使っている場合は、ディスプレイマネージャの種類のよるのだが、例えばgdmの場合は/etc/X11/gdm/gdm.confのserversセクションで、
0=/usr/bin/X11/X vt7 -deferglyphs 16
のように設定すればよい。
 また、xdmの場合は、/etc/X11/xdm/Xserversに
:0 local /usr/bin/X11/X vt7 -deferglyphs 16
のように書いておけば良い。
 以上でサーバー側の設定は終わり。

 で、次にフォントの設定。ここでは、ライセンス上の問題はとりあえず置いておくとして、Windowsに付属のmsgothic.ttcとmsmincho.ttcを例にとって説明する。
 フォントを置いてあるディレクトリに、fonts.dirというファイルを作ってどういうフォントがあるのかを記述してやる必要がある。このファイルは手で書くこともできるけど、mkttfdirというfonts.dir自動生成スクリプトがここで配布されているので、それを使ってもいい。ただし、このmkttfdir、このままだとmakeの途中でエラーが出るので、若干手直ししてやる必要がある。(includeのディレクトリがまずい。あと、perlのディレクトリも違う。)

 これは、msgothic.ttcとmsmincho.ttcの場合のfonts.dirの一例。(あまりいい例ではないと思う。要らない設定しすぎかも(^^;)

 普通のfonts.dirとの違いは、フォントファイル名より前のフィールド(TTCapと言う)と、あとはサイズに関する部分が全部0でいいと言うことくらい。TTCapに関しては、X-TTのオフィシャルサイトのインストールマニュアルに解説がある。


追記:どうやら大抵のフォントではfn=0に固定幅、fn=1にプロポーショナルのフォント情報を格納しているらしい。(fnはFace Number)プロポーショナルフォントを使うときは注意。

Debian雑記帳に戻る