コーディング用のビットマップフォント Terminus-ja-JP

  • 以前アウトラインフォントを作成したりもしたけど、コーディングにはビットマップフォントがいいと思うようになった。

IPAゴシックにTerminusビットマップを埋め込む

  • http://d.hatena.ne.jp/cadr/20061009/1160376201 を参考にした。
  • http://mix-mplus-ipa.sourceforge.jp/ のTrueType版(p1)を取得して、 ipag.ttfを取り出す
  • http://www.is-vn.bg/hamster/ の http://www.is-vn.bg/hamster/terminus-font-4.30.tar.gz を取得。
  • http://www.geocities.jp/meir000/fontforge/http://www.geocities.jp/meir000/fontforge/fontforge-mingw_2009_10_28.zip を取得。
  • fontforge.bat起動して、ipag.ttfを読み込む。ビットマップは12,14,16を選択して取り込み。
  • 半角円記号は U+005cから U+00A5に移動する。右クリック/コピーして、右クリック/貼り付け。(これで ¥ で半角円記号が表示できる)
  • 半角スラッシュ「/」の文字を選択して右クリック/コピーして、半角円記号を選択して右クリック/貼り付け。ダブルクリックして文字編集。スタイル→変形→反転(水平)。文字編集ウィンドウ閉じる。(これで U+005C がバックスラッシュになる)
  • エレメント/フォント情報で、OS/2/Panose/幅の比率をMonospacedにする。(これをしないとWindows等幅フォントとして認識されない)。一般情報/解釈を日本語にする。GridFittingのFor PixelPerEMの8を11にする。(これをしないと8ポイントがギザギザになる)。あと、「名前」や「TTF名」の中身の文字列(フォント名、バージョン、著作権等)を適当に修正。
  • ファイル/取り込みで、terminus-font-4.30/ter-u12n.bdf と ter-u14n.bdf と ter-u16n.bdf を取り込み。「ビットマップを上書きしますか?」と聞かれるので「はい」
  • ファイル/フォントを出力で、「アウトラインフォントなし、BDF」を選び、12ピクセルを出力。BDFファイルをテキストエディタで開き、12→13変更して、ファイル/取り込み。(Windowsの10ポイントでもビットマップ表示にするため。ちなみにEBSCテーブル書き換えも試したがうまくいかなかった)
  • ファイル/フォントを出力で、「アウトラインフォントなし、BDF」を選び、14ピクセルを出力。BDFファイルをテキストエディタで開き、14→15変更して、ファイル/取り込み。(Windowsの11ポイントでもビットマップ表示にするため)
  • 表示/12〜16pixelビットマップ を選び、少し文字を修正する。(Terminusのままだと区別しづらい文字を変更)
  • ファイル/保存でsfdを念のため保存。ファイル/フォントを出力 で、TrueTypeにして出力。
  • 生成したttfをダブルクリックして、まともか確かめる。
  • フォントフォルダにインストール。


フォント名は Terminusと日本語フォントを組み合わせたので、最初 Terminus-IPAGothic にしようかと思ったけど、IPAフォントVer3を見るとどうもIPA側としては、改変フォントに「IPA」という文字は入れてほしくないらしい。このフォントは旧IPAフォントを基にしているので、別にVer3のライセンス条項に従う必要はないんだけど、なるべく元ライセンス保持者の意向は尊重したいので、IPAという文字をフォント名に入れないことにした。いろいろ地名とか考えたけど、わからないので、Terminus-JP でいいかと思った。でも日本語フォントなので「ja_JP」をつけようかと思ったけど、フォント名に「_」をつけると(XLFDとかで)面倒なことになるので、「ja-JP」をつけることにした。

Terminusで修正した文字

  • 14px,15px(同じ字形)は、16pxと同じ字形なのだが、16pxと異なり、Windows上で表示すると「$ @ M W m w 」は隣の文字と線がくっつく。そこですきまがあくように、左端のピクセルは使わないように修正した。すこしいびつになったが判別しやすうことを優先した。でもできれば使うときは12px(9pt)か16px(12pt)を使うことを推奨。
  • 「. : { } l ` |」の文字が、ほかの文字と判別しづらいので12〜16pxで修正した。
  • ビットマップの■○が小さいので、□●と同じ大きさにした。