bdf2ttfでmilkjfのttfファイルを作ってみたが...
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.iniやREADME_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