XをTrueType化しよう

Windowsの世界では、TrueTypeフォントが標準だよね。だけど、悲しいかなXFree86は標準ではTrueTypeフォントはサポートしていない。スケーラブルフォントもないこたないんだが英数字だけだ。でもやっぱりあるところにはあった。それがx-ttだ。6/11日現在のバージョンはxtt-06だ。もうすぐx-tt07が出ると思う。どんどん進化しているのだ。xtt-03の頃からその存在を知り、使わせてもらっているけど、もうこれなしじゃX使えないってくらい良い。XFree86使っている人はだまっていれよう。

てなわけで、作り方その他を簡単に説明…といっても、けっこうコマゴマと作業が必要なので、オレごときが書くよりも、メインに開発している方々のページを紹介するから、そっちを読んでくれ(笑)

X-TrueType Server(仮称)開発のーと (x-tt本体を提供してくださっている、わたなべごうさんのページ)
Xで日本語スケーラブルフォントを使おう (x-tt MLを開いておられる、ずけらんさんのページ)
X TrueType Server のページ (ttcapその他、機能拡張パッチを提供してくださっている、しおざきさんのページ)
X-TrueType Server and TrueType fonts (jampatchを提供してくださった、Jamさんのページ)
X True Type Server ML の過去メールアーカイブ (しおざきさんが提供してくださっているMLのログ。質問する前に読もう。)

あと、当然だけど、XFree86 3.3.2 のソースが全部必要だ。intel x86用ね。ダウンロードしてもいいけど、えらい時間食うし、電話代とか考えるとUnix User誌 6月号とかを買ってCDで入手するほうがおすすめだね。

個人的には、上記のページのうち、Jamさんのページが一番オレにはわかりやすかった。Xサーバそのものをmakeしないでも、xfsだけ差し替えれば幸せになれるというのも良いよね。

ごくごく簡単な説明(手抜き&Jamさんのページのパクリ)

どこか、/usr/local/srcでも~/srcでも、書き込めるところに移動しよう。なければ掘ろう。

tar zxvf freetypr-1.1.tar.gz で展開する。
cd freetype-1.1してFreeTypeのソースツリーに入ろう。
DynaLabのフォントを使っている人は、lib/ttgload.cの98行目にあるif節をコメントするとよいらしい。
./configure ; make し、su して make install する。

作業ディレクトリに戻って
tar zxvf x332src-1.tgz
tar zxvf x332src-2.tgz
tar zxvf x332src-3.tgz でXFree86 3.3.2のソースも全部展開。
tar zxvf xtt06.tgz でxtt-06も展開だ。
cd xcしてXfree86 3.3.2のソースツリーに入ろう。
patch -p1 < xtt06/xtt06-etc.diff
patch -p1 < xtt06/xtt06-serveronly.diff
patch -p1 < xtt06/xtt06-fs.diff
patch -p1 < xtt06-ttcap-fix00.diff とパッチをあてまくる。

今後もx-ttを追いかけるなら、host.defというファイルを作成して保存しておこう。内容は

#define HasFreeType             YES
#define FreeTypeLibDir          /usr/local/lib
#define FreeTypeIncDir          /usr/local/include
#define FreeTypeLibName         ttf
#define BuildWithFreeType       YES
#define HasBlindFaithInUnicode  YES
#define XnestServer NO
こんな感じ。これをconfig/cfにコピーしておく。

コード変換部を動的にロードする機能が追加されたのだが、これは必ずしも使わなくても表面的な機能には影響はない。パッチをあてる人は、

gunzip -dc xtt06-to-modcconv01.diff.gz | patch -p1
patch -p1 < modcconv01-to-fix00.diff
patch -p1 < modcconv01fix00-to-fix01.diff

としてすべてあてよう。これはx-tt07に近々統合される予定だそうだ。

ここで、Linuxユーザの場合はdlopen、dlclose、dlsymなどのdynamic linking loader関係の関数がundefinedになってしまうので、パッチがさらに必要だ。

x-tt MLのログをもらってきて、パッチをlib/font/Imakefileにあてよう。ただしこれはあくまで暫定的なものなので注意。要はlibdl.soをlibfont.soにリンクすればよい。そしていよいよ

make Makefile.boot
make Makefiles
make includes
cd lib/fonts
make
エラーがなければ su して make install しよう。
cd ../..
cd programs/xfs
make これもエラーがなければ make intall して、やっとmakeは終り。だけどまだ使えないんぢゃよ。ふぅ。

TrueTypeなフォントを使うxfsはできたけど、肝心なフォントがないんでは話しにならないよね。Windowsから持ってきたMS MINCHOとかでもいいけど、ここはやっぱり、近所のパソコン屋さんに走って、フォントセットを買って来よう。オレなんてアメリカに住んでるにもかかわらずちゃんと買ったぞ(笑) DynaLabの15書体パックとかいうヤツを。

で、/usr/X11R6/lib/font の下に、ttfというディレクトリを掘ってそこに全部突っ込んだ。

で、fonts.dirファイルをきちんと作成して置いておかねばならないのだが… これがムズカシイのだ。
dfjmrgbd.ttc -DynaLab-DFMaruGothic-W7-r-normal--0-0-0-0-c-0-jisx0208.1983-0
こんなのをズラズラとフォントの数だけ書かなきゃいけないの(T_T) 道は遠い。が、そこに光が!

しおざきさんのページからFT.xs.19980501.tgzを取ってきて展開してインストールしよう。そして、JamさんのページからFreeTypeWrapper.pm-1.17mkttfdir.pl-1.15も取ってきてインストールしよう。

首尾良くmkttfdirがインストールできたら、おもむろに
mkttfdir -d /usr/X11R6/lib/fonts/ttf
などとしてみよう。fonts.dirに書くべき内容がズラッと出力されるはずだ。もしもされない場合は、Perl回りのインストールミスか、またはフォントのファイルそのものが読めてない。-rw-------になってるとかね。

で、TrueTypeが使えるようになると、どうオイシイか、という例をちょっと載せておこう。これは次回、書く予定のGIMPで作ったものだ。

とほほる こんなのとか、 牛ぢゃよ こんなのとか、 御意 こんなのとかが簡単に作れたりする。面白いでしょ?

メール 前へ 次へ 戻る