UNIXで98フォント

動機

Xに標準で付いている 16-dotフォントは見づらい.なんか,昔の98noteの,液晶用にエッジを強調したやつみたいで,美しくない.

で,なんか使えるきれいな16-dotフォントはないのか?と言うのが動機.

試行錯誤

98フォントをUNIX(というか,X)で使うには,ROMのデータをbdfに変換しないといけない.まず見つけたのがXFONT98というその名もずばりのソフト.試してみたが,どうもうまくいかない.

で,いろいろ捜し回ってるうちに,DOS/VのFONTXをbdfに変換するツールというのを見つけた.確か98のフォントをFONTX化するツールがあったはずだと思い出し,これで98ROM=>FONTX=>bdfと変換できるじゃないかと.これは名案!と感動したんですが,同じことを考えてる人がとっくにいたようです...

用意するもの

NEC PC-9800シリーズ
実機でなくても,最近はやりのエミュレータでのOKみたいです.
FONTX(のなかのmkxfnt98.exe)
98からフォントイメージを吸い出します.
fontx2bdf
FONTXのフォントファイルをbdfにしてくれます.

作業

以下の作業は,ユーザー権限で行うことを想定しています.フォントも,ホームの下に導入しています.自分しか使わないマシンならシステムに入れても問題ないでしょう.

まず,ダウンロードしたfontx2bdfをmakeします.別にinstallする必要はなさそうです(しても問題ないけど).

次に,ダウンロードしたfontx204.lzhの中のmkxfnt98.exeを98で実行し,出来たjpnhn8x.98,jpnhn16x.98,jpnhn19x.98,jpnzn8x.98,jpnzn16x.98をUNIXマシンへ持ってきます.

で,fontxをbdf経由でpcfへ変換します.

./fontx2bdf < jpnhn8x.98  | bdftopcf > jpnhn8x.pcf
./fontx2bdf < jpnhn16x.98 | bdftopcf > jpnhn16x.pcf
./fontx2bdf < jpnhn19x.98 | bdftopcf > jpnhn19x.pcf
./fontx2bdf < jpnzn8x.98  | bdftopcf > jpnzn8x.pcf
./fontx2bdf < jpnzn16x.98 | bdftopcf > jpnzn16x.pcf

これを,適当なフォントディレクトリ(~/xfonts/とか)にコピーします.

さらに,太字フォントとかも作っておくと便利かもしれません.私は,mkboldというツールを利用しました.

perl mkbold jpnzn16x.bdf > jpnzn16x_b.bdf

として,太字化しますが,フォント名 (-misc-fixed-... など) は変更してくれないので,自分で

FONT -Pc98    -Fixed-Medium-R-bold--16-150-75-75-C-160-JISX0208.1983-0

てな具合に書き換えてしまいます.そのあと,

bdftopcf jpnzn16x_b.bdf > jpnzn16x_b.pcf

とやってpcf形式にします.sedでも使えばコマンドライン1行で終わりますが,ま,これ位なら手でやっても大した手間ではありません.

フォントディレクトリに移動し,mkfontdirを実行します.これで,fonts.dirが作成されます.さらに,fonts.aliasとして,

nec16x16 "-pc98    -fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0"
nec8x16  "-pc98    -fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0"

とやっとくと便利かもしれません.

最後に,システムに登録します.

xset +fp [フォントをコピーしたディレクトリ]
xset fp rehash

私はこれを.xinitrcに書いています.

参考ページ