cb2tt を使って日本語 TrueType font を作る

中国語圏では NTU family (National Taiwan University family) と呼ばれるフリーに入手可能な TrueType フォントが存在し, CJK TeX 等のフリーウェアで広く利用されています. これらのフォントは Lin YawJen 氏の cb2tt (Conversion from Bitmap files to Chinese TrueType) というツール群を使って作成されているようです.

cb2tt を使ったフォント作成の手順は以下のようになります.

  1. TrueType font の雛型を用意(ttfstub.exe)
  2. 字母となる 1024x1024 のビットマップを作成(dynabmp.exe, fgbmp.exe)
  3. ビットマップから輪郭を抽出 (freeman.exe)
  4. 折れ線近似 (vector.exe)
  5. Spline で fitting (spline.exe, splx.exe)
  6. TrueType 形式のグリフに変換 (toglyf.exe)
  7. 1. で用意したフォントに一文字分のグリフを追加 (add.exe)
  8. 2.〜7.の作業を必要な文字の数だけ繰り返す (batch.exe)
  9. Single byte 文字のメトリック情報を修正 (engpath.exe)
    但し,グリフデータは multi byte 用のものを流用
このうち ttfstub.exe は Big5 コードを扱うように書かれているので, 日本語フォントを作成するためには修正が必要になります. また,dynabmp.exe と fgbmp.exe は専用のハード(?)とドライバが必要なので, 別途何らかの方法で日本語の字母のビットマップデータを用意してやる必要があります.

というわけで,ttfstub.exe を Shift-JIS コード用に 改変したものを作ってみました. また,VFlib (version 2) を使ってビットマップデータを作成するツール (vflibbmp.exe) も用意してみました.

これらのツールをオリジナルの cb2tt と組み合わせることで, VFlib2 に対応したフォントを日本語 TrueType font に変換できるようになります. 書体倶楽部形式の watanabe-mincho を変換した例を以下に示します.

[sample of watanabe.ttf]

Windows98 の command.com のオーバヘッドが大きいためか, 94x94文字分を全部変換するのに 3.5 時間 (Celeron 300 MHz) ほどかかりました. 処理速度は Spline 近似等のパラメータの値によっても違うでしょう. ビットマップを介さずに直接ベクトルデータを変換できるようになれば, スピードと品質が向上するかも知れません.


関連リンク

matsuda (a) ee.noda.tus.ac.jp