Entry

FreeBSD で TrueType (前編)

2004年09月09日

我が家の X 環境は,FreeBSD 4.x の頃以来ほとんどいぢっていません。ハードウェアが変わらないもんだから,細かい不都合をちょこちょこ修正しつつ,XF86Config を使い回していたのでした。それが祟ってか,今では X 周りがどんなことになっているのかよく分からなくなっている状況です。

巷では,XFree86 project が内部分裂して X.org project ができちゃったり,フォント周りの技術もかなり複雑になってしまったりと(参照:「書体関係 Wiki - X でのフォント設定」),話題に付いていくのに一苦労です……。

ともあれ,我が家の当面の問題は TrueType フォントをまともに使えるようにすることです。一応,現在でも,ウェブからいただいてきた font.dir (後述)をつぎはぎして使えるようにはなっているんですけれど,特定のフォントで「太字」が表示されなかったり,アプリケーションが認識しなかったりと,不都合が多いのです。

そんなわけで,この際,TTCap の書き方をちゃんと調べてフォント周りの設定を書き直すことにしました。

X 環境で TrueType をつつく方法

Windows や Macintosh の環境ではおなじみの TrueType フォントも,X 環境で使うためにはかなり難儀します。その理由の一つに,TrueType フォントを使う仕組みが,もともと XFree86 の標準セットとして実装されていなかったということが挙げられます。

TrueType を扱う仕組みは,当初 X-TT project と FreeType project という二つのプロジェクトが実装したものです。現在の XFree86-4 では,どちらもモジュール提供という形で XFree86 project に吸収されています。

現在,TrueType をめぐる技術の状況を列挙すると,

  1. X フォントサーバを用いる方法(xfs)
  2. X のモジュールを使う方法(X-TT,FreeType)
  3. Xft1 を使う方法
  4. Xft2 を使う方法

と,4通りもあるんだそうです(参照:「Linux で TrueType font を使う」)。

今回は,比較的よく使われている(というか,あたしがよく使っている)XFree86 の X-TT モジュールで,TrueType を使ってみます(上記2の方法)。

X-TT で TrueType

XF86Config の設定

ご存知の通り,XFree86 の挙動を設定するには XF86Config というファイルを編集します。FreeBSD 5.x 系では,'/etc/X11/XF86Config' にあります。

X-TT はモジュールの形で提供されているから,何はともあれ,XFree86 に X-TT モジュールを組み込まなくてはいけません。組み込み方は簡単で,XF86Config の Module セクションに,

Load "xtt"

と書いておけば組み込まれます。ちなみに,X-TT モジュールを使うと,FreeType モジュールは使えません。

また,XFree86 には,フォントのファイルがある場所も教えておかなくてはいけません。XF86Config の FontPath に,インストールしたフォントがあるパスを書いておきましょう。例えば,うちでは,'/usr/X11R6/lib/X11/fonts/truetype' 以下に置いてあるので,

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

みたいなエントリを入れておきます。

fonts.dir を編集する

ここまでは,序の口です。

X-TT モジュールを組み込んで,フォントパスも設定しましたけど,これだけでは動きません。これは TrueType フォントに限らず,どんなフォントでもそうなんですけれど,xft や X-TT を使う場合は,フォントファイルを置いたディレクトリに,fonts.dir というファイルを置く必要があるんです。

fonts.dir というのは,フォントの「名前(XLFD)」と「ファイル」,それと「フォントの設定」をつなげる案内板のようなファイルです。あ,分かりにくいですか……。フォントの名前というのは,例えば,

-Ricoh-MS Gothic-medium-r-normal--0-0-0-0-c-0-jisx0208.1990-0

みたいなものです。これは,X の論理フォント名(XLFD: X Logical Font Description)と呼ばれるもので,「『MSゴシック』の JISX0208 文字セットを集めたフォント」という意味になります。フォントを扱うアプリケーションは,この名前で使うフォントを特定するわけです。

この「名前」と,フォントの「ファイル」・「設定」をつなげるというのは,

ab=y:ai=0.15:msgothic.ttc  -Ricoh-MS Gothic-bold-i-normal--0-0-0-0-c-0-jisx0208.1990-0

ということです。これは,「msgothic.ttc というファイルの太字を有効にして(ab=y),0.15 だけ傾けた(ai=0.15)たものは,『-Ricoh-MS Gothic-bold-i-normal--0-0-0-0-c-0-jisx0208.1990-0』という名前ですよ」ということを表しています。ちなみに,fonts.dir で使われる書式を,TTCap といったりします。

フォント周りの設定をする場合,この設定を延々と書く必要があります。つまり,上の例は,「太字」で「斜体」な「JISX0208.1990」の文字セットですけれど,組み合わせとしては,「普通字体」「太字」「斜体」「太字・斜体」の4通りがあります。「斜体」には他にも字体が用意されているらしいので,これらも使うとなると,かなりの分量になります。

さらに,これだけでは,「JISX0208.1990」(主に「JIS第一水準」「JIS第二水準」の漢字)の文字セットしか扱えません。「ISO8859-1」(英数字)や「JISX201.1976」(半角カナ文字)等々の文字セットについても扱うなら,同じ設定を書く必要があります。ひとつのフォントで,ここまでたくさんのエントリを書かなくてはいけないというのは,しんどいですね……。

もちろん,こういった作業は機械的なものなので,コンピュータに任せるべきです。一応,巷には mkttfdir というツールがあるので,これを使うのも一考の余地があると思います。もっとも,使ってみたところ,フォントファイル(特に ttc ファイル)にある情報を全て読んでくれるわけではなかったり,太字やバウンディングボックスなどの細かい設定などは自分でする必要があったりと,これ一つで一件落着というわけにもいかないようです。

設定の反映

おそらく,X-TT の設定で一番難儀するのは,fonts.dir を書くところだと思います。fonts.dir をどう書くのかについては,次回のお楽しみということにしておいて(まだ{実験|勉強}中なんです),とりあえず編集し終わった後の話をしておきます。

fonts.dir さえできれば,X-TT の設定は終っています。既に X が立ち上がっている場合は,おもむろに

 # xset fp rehash

と,叩いて,設定を反映させます。X が立ち上がっていないときは,そのまま startx すれば反映されるはずです。フォントが登録されているかは,xfontsel などのアプリケーションから確かめることができます。うまく登録されていたら,めでたしめでたし……これで,(X-TT を扱う)アプリケーションから TrueType フォントを使うことができるようになりました。

今回はここまで

さて……我が家のフォント事情はどうかというと,今のところ fonts.dir をはじめとした各設定ファイルを調整している最中です。例えば,Mozilla なんかは,xft2 という仕組みでアンチエイリアスなラスタライズを行っているようなので,X-TT とは別の設定をする必要があるようなのです。

今回は,X-TT の概略を説明するつもりが,あまり実のない話になってしまいました。次回は,fons.dir の詳しい書き方と,Xft2 周りの紹介ができればいいなぁ……。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN