試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

bdf2ttfでmilkjfのttfファイルを作ってみたが...

  1. 仕様
  2. ビルド
  3. フォント情報ファイルの作成
  4. 変換
  5. 表示の実験(Wine)
  6. GTK+のフォント選択ではダメ

bdf2ttfというツールを使用することで、BDF形式のビットマップフォントを、TTF形式の内蔵ビットマップを使用する形で、TTF形式に変換することができる。
...のだが、実際にmilkjfフォント(配布サイト 設定)をTTF形式に変換してみたところ、あまり使えそうにはないということが分かった。

仕様

指定したサイズ以外を指定しても何も表示されない。アウトラインフォントへ変換するようなこともせず、単純に、指定されたサイズの内蔵ビットマップとして変換するのみ。

ビルド

x86_64環境で(64bit版を)ビルドすると、出力されるフォントに不具合が出るのか、Wineで使用すると落ちるため、GCC-m32オプションを渡すようにする。

$ tar jxf bdf2ttf-2.0.tar.bz2
$ cd bdf2ttf-2.0/
$ make gcc CFLAGS=-m32 LFLAGS=-m32

フォント情報ファイルの作成

フォント名だけ付けてみた。書式はsample.iniREADME_j.txtを参照。
[任意]ファイル名: milkjf.ini

Fontname = Milkjf
FontnameCP = Milkjf

変換

作業は、bdf2ttf-2.0/ディレクトリ上で行う。
実行する書式は

$ ./bdf2ttf [TTFファイル].ttf [設定ファイル].ini [BDFフォント...]

で、下の例では、1つ上の階層にmilkjf.iniと、BDF形式のmilkjfフォントファイルを用意している。

$ ./bdf2ttf milkjf.ttf ../milkjf.ini ../milkjf_8x16.bdf ../milkjf_k16.bdf
Input files:
  ../milkjf_8x16.bdf
  ../milkjf_k16.bdf

これで、半角英数とかな/漢字部分を含めたmilkjf.ttfが生成されるので、${HOME}/.fonts/に入れる。

フォント情報を色々と変更するときは、

$ fc-cache -rv ~/.fonts/

で、フォント情報のキャッシュを再作成する必要があるかもしれない。

表示の実験(Wine)

Wineのフォント選択では、サイズを(元は16のはずなのだが)12にしたときのみ表示がされる。フォント名は若干おかしいが、下でも書いているとおり、GTK+でもおかしいので、フォントの情報自体がおかしいという可能性が高い。
Regular以外が選択できるようにはなっているが、何も変化はない。

メモ帳での表示は下のようになった。xfontselの出力と並べてみるが、ここでの表示自体には問題がないことが分かった。


この文字列もせっかくなので貼っておく。

あいうえおかきくけこさしすせそた
ちつてとなにぬねのはひふへほまみ
陰韻右烏迂雨鵜丑臼嘘欝鰻厩瓜噂運
荏営影曳永泳洩瑛盈穎衛液駅越厭円

GTK+のフォント選択ではダメ

どのサイズを指定しても、プレビューを見ると、別のフォントが使用され、使えていない。更に、日本語のフォント名をテストしてみたところ(「FontnameCP = テスト」と書いて、iniファイルのエンコーディングUTF-8にする)

このように、フォント情報が正常に扱えていない(「Regularテストテスト2」を見れば分かる)。GTK+側の問題というより、生成されたフォント側の問題である可能性が高い(ビットマップを使用した別のフォントでは表示されていたりするものがあるため)。
また、iniファイルに

  • Copyright
  • Fontname
  • Version
  • Trademark

を入れたりしてみても結果は同様だった。

使用したバージョン:

  • bdf2ttf 2.0