ステキな98フォントを使うには 〜偏ったこだわり〜2

 ここでは今更感満載ではありますが、管理人が大好きな98x1のフォントをWindowsでそれなりに便利に使う方法を適当に紹介をいたします。定番のおっさんホイホイであります!

論より証拠

 まずはWindows10のコマンドプロンプトで98フォントを使っている風景を一つ。

DOS窓で98フォント

 さて、98フォント(正式な名前はよく分かりませんので、ここではNEC PC-98x1に搭載されているノーマルモード時の8ドットおよび16ドットのゴシック体ビットマップフォントを『98フォント』と呼称します。2016年現在、NECではFontAvenue:BMFのバリエーションの一つと定義しているようです)をWindowsで使う為に、98フォントをTTFフォント化する方法およびツールはいくつか発表されており、中でもTbwさん開発のPC-98xx series font converter set for winは簡単かつ確実に98フォントをTTF化出来る素晴らしいツールであります。
 しかしこのツールを用いて出来た98font.ttfでは、管理人の環境(Windows10)では以下の事象により常用に至りませんでした。

 このため「PC-98xx series font converter set for win」で作った98font.ttfにもう一工夫する事により、上記の事象を改善する方法を以下にご紹介します。

方法論

 Windows環境で一番安定(?)しているMS ゴシックの16x16のビットマップフォント部を、98フォントにすげ替えます。
 これにより、98フォントでカバーしきれない文字やフォントサイズは元々のMS ゴシックでカバーされるので、作業性の高いフォントとなります。
 なお、当たり前ですがこの行為は著作権法に引っかかりますので、やるなら全て自己責任です。管理人は一切責任を負いません。以下の記事は、自分で責任が取れるオトナの人だけ読んで下さいな。

作業内容

PC-98xx series font converter set for winで98font.ttfを作る

 必要なものは以下の通り。

 まずPC-98xx series font converter set for winで98font.tffを作ってください。やり方は同ツールでとても丁寧に説明されているので、そちらをご参考のこと。
 なお、あまり深い階層のフォルダ(デスクトップとか)で使うと上手く動かない様なので、ルートに近いフォルダで使用するといいでしょう。
 98font.ttfが出来たら次の処理に進みます。

98font.ttfからBDFファイルを作る

 そもそもPC-98xx series font converter set for winでは98内蔵フォントROM→FONT X形式のフォントファイル→BDF形式のフォントファイル→TTFと変換を重ねていますが、わざわざ98font.ttfを作って改めてBDFでビットマップを抜くには以下の理由があります。

 特に一つ目のマッピングの修正がとても重要です。これを手動でやるのはかなり悲惨かと思われます。各ツールの作者様には感謝です。
 ここでの処理には、以下のものが必要になります。

 Microsoft typography font toolsをダウンロードしたら適当に実行して、中身のsbit32.exeを取りだしておいてください。
 次に、sbit32.exeが利用するメトリックファイルを作成します。テキストエディタで以下の中身のテキストファイルを作り、ファイル名は「sbit32.met」で保存してください。

PPEM 16

 そして98font.ttfとsbit32.exeとsbit32.metを適当な作業フォルダ(以下の説明ではC:\font\)に配置し、以下のコマンドを実行して下さい。

C:\font\SBIT32.EXE -x 98font.ttf sbit32.met 98font.bdf

 98font.bdfが正常に作成されたら、これをテキストエディタで開いてください。そして、以下の文字列を全て→の後の様に変更してください。

FONTBOUNDINGBOX 16 16 0 0 → FONTBOUNDINGBOX 16 16 0 -2
BBX 8 16 0 0 → BBX 8 16 0 -2
BBX 16 16 0 0 → BBX 16 16 0 -2

 BBX 8 16 0 0およびBBX 16 16 0 0は98font.bdfファイル中に文字の数分(合わせて約8000個とか)あるので、一括置換で変更しないと日が暮れて98フォントが嫌いになっちゃいます。
 編集が済んだら次の作業に移ります。

MS ゴシックの16x16ドットビットマップを98font.ttfのとすげ替える

 ここでの処理には、以下のものが必要になります。

 先程のsbit32.exeのあるフォルダにY.OzさんのUniteTTC.exeを入れておき、Windowsのフォントフォルダからmsgothic.ttcをコピー。その後、UniteTTC.exeでmsgothic.ttcをTTFファイルにバラしてください。

C:\font\UniteTTC.exe msgothic.ttc

 そして今回必要な『MS ゴシック』のファイルは多分msgothic001.TTFだと思われるので(各自クリックして確かめてください)、それ以外のmsgothic00x.TTFは要らないので削除。
 次にmsgothic001.TTFから16x16ドットのビットマップフォント部を削除します。以下のコマンドを実行して下さい。

C:\font\sbit32 -d msgothic001.TTF sbit32.met out.ttf

 正常にout.ttfが作成されたら、次の作業に移ります。続けて以下のコマンドを実行して下さい。

C:\font\sbit32 -a out.ttf 98font.bdf sbit32.met out2.ttf

 この時点で、out2.ttfは98フォントが乗ったMS ゴシックになっています。一度クリックしてビューアで確かめて見ましょう(焦ってインストールしないように!!)。フォントサイズが12の所が98フォントになっているはずです。
 しかし、このままではWindowsに初めから入っているMS ゴシックとかち合って正常には使えません。このため、98フォントが乗ったMS ゴシックの名前を変更します。

フォント名を変える

 ここでの処理には、以下のものが必要になります。

 フォント名を変える為に、ここではシカゴ・ブルースさんのttfname3を利用します。
 ttfname3.exeを作業フォルダに入れたら、以下のコマンドを実行してください。

C:\font\ttfname3 out2.ttf

 正常に実行出来たら作業フォルダにout2.xmlが作成されているので、これをテキストエディタで開いて『MS ゴシック』になっているところを何かステキな名前に変更します。
 ここでは"MS ゴシック98"というセンスの欠片も無い名前に変更してみます。変更後は以下の通り。

<?xml version="1.0"?> <Fonts> <Font> <!-- ****************** Font(0) ****************** --> <Header Ascender="220" Descender="-36" TypoAscender="220" TypoDescender="-36" WinAscender="220" WinDescender="36" AverageCharWidth="128" Codepage1="4002009f" Codepage2="dfd70000" /> <Name> <!-- Copyright --> <T n="3,1,0409,0">c 2012 data:RICOH Co.,Ltd. typeface:RYOBI IMAGIX CO.</T> <T n="3,1,0411,0">c 2012 data:株式会社リコー typeface:リョービイマジクス(株)</T> <T n="3,10,0409,0">c 2012 data:RICOH Co.,Ltd. typeface:RYOBI IMAGIX CO.</T> <T n="3,10,0411,0">c 2012 data:株式会社リコー typeface:リョービイマジクス(株)</T> <!-- Family --> <T n="3,1,0409,1">MS Gothic98</T> <T n="3,1,0411,1">MS ゴシック98</T> <T n="3,10,0409,1">MS Gothic98</T> <T n="3,10,0411,1">MS ゴシック98</T> <!-- Subfamily --> <T n="3,1,0409,2">Regular</T> <T n="3,1,0411,2">標準</T> <T n="3,10,0409,2">Regular</T> <T n="3,10,0411,2">標準</T> <!-- UniqueIdentifier --> <T n="3,1,0409,3">Microsoft:MS Gothic98</T> <T n="3,1,0411,3">Microsoft:MS ゴシック98</T> <T n="3,10,0409,3">Microsoft:MS Gothic98</T> <T n="3,10,0411,3">Microsoft:MS ゴシック98</T> <!-- FullName --> <T n="3,1,0409,4">MS Gothic98</T> <T n="3,1,0411,4">MS ゴシック98</T> <T n="3,10,0409,4">MS Gothic98</T> <T n="3,10,0411,4">MS ゴシック98</T> <!-- Version --> <T n="1,0,0000,5">Version 5.10</T> <T n="3,1,0409,5">Version 5.10</T> <T n="3,1,0411,5">Version 5.10</T> <T n="3,10,0409,5">Version 5.10</T> <T n="3,10,0411,5">Version 5.10</T> <!-- PostscriptName --> <T n="3,1,0409,6">MS-Gothic98</T> <T n="3,1,0411,6">MS-Gothic98</T> <T n="3,10,0409,6">MS-Gothic98</T> <T n="3,10,0411,6">MS-Gothic98</T> <!-- Trademark --> <T n="3,1,0409,7">MS Gothic is a trademark of the Microsoft group of companies.</T> <T n="3,1,0411,7">MS ゴシックは米国 Microsoft Corporation の米国及びその他の国の登録商標または商標です。</T> <T n="3,10,0409,7">MS Gothic is a trademark of the Microsoft group of companies.</T> <T n="3,10,0411,7">MS ゴシックは米国 Microsoft Corporation の米国及びその他の国の登録商標または商標です。</T> </Name> </Font> </Fonts>

 編集を終えたらxmlファイルを保存し、以下のコマンドを実行してください。

C:\font\ttfname3 out2.ttf out2.xml

 正常に終了するとout2_mod.ttfが出力されるのでこのファイルの名前を適度に変え、最後に今一度ビューアで確認して見ましょう。
 無事フォント名が"MS ゴシック98"に変わっていたら、そのフォントファイルをWindowsのフォントフォルダに入れるかビューアからインストールします。
 最後に、98フォントをお気に入りのテキストエディタに設定したり、コマンドプロンプトでも使える様にレジストリを変更します。
 コマンドプロンプトで98フォントを使う為の変更点としてRegファイルの中身を晒すので、適当に変更してください。

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont] "932.1"="*MS ゴシック98"

 事前に前述のレジストリを調べておき、既に932.1があるなら932.2の様にドットの後の数字をインクリすれば、複数のフォントがコマンドプロンプトで使える様になります。
 なお、ここで出来たフォントはコマンドプロンプトやテキストエディタではほぼ問題無く使える物の、ブラウザなどでは正常に表示されないなどそれなりに問題があります。勢い余ってシステムフォントと完全にすげ替え、表示がおかしくなって画面の文字が全く読めなくなっても管理人は知りませんので、ちゃんとリスクを考えて遊んでくださいね。

98フォントの考察

 98フォントはコーディングを多用するテキストエディタやコマンドプロンプトに使うならば、それなりに見やすいフォントであると言えるでしょう。もちろんこの辺、記憶の美化が激しいので人によって色々意見の違うところであると思いますが。
 しかし普通のWindowsの画面で使う事を考えた場合、最新のフォントに比べて以下の特徴があると思います。(フォントが作られたのが30年以上前なので、そもそも最近のフォントと比較するのがお門違いではある)

 とは言いつつ、一定の年齢層はこのフォントばっかり見て育ったわけで、見やすさ・読みやすさとはまた違った馴染み感は抜群であると言えましょう。

もう一踏ん張り

 本ページの説明で作ったフォントには、以下の問題点があります。

 9801のフォントは78JISを元に作られたので、78JIS→83JISで入れ替えがあった漢字22字および追加になった漢字4字、記号等は現行のフォントと形が違ったり、そもそも表示されません。
 よっぽどマニアックな漢字ならば放っておくという運用も可能ですが、例えば”遥”のような普通に使う字も抜けたりするので気になると言えば気になります。
 個人的には、♪が出ないのがかなり問題でした。よく使うので。
 これら問題を直すには、それなりに作業が必要で、かつ既に公開されていないツールを使う必要がある為、ヒントだけお知らせします。

83JISで追加された記号

 PC-98xx series font converter set for winで作成されたjpnhn16x.bdfおよびjpnzn16x.bdfを、TTFTOOLSに含まれるSbitRW.exeを使って直接MSゴシックのTTFファイル(もちろん分割済み)に上書きします。もしくは上述の98font.bdfに対し、MSゴシックから作成したBDFファイルより抜けている文字のビットマップ情報をしこしこコピーします。愛があれば出来ます。管理人は出来ました。

83JIS等で追加された漢字および入れ替えされた漢字

83JIS等で入れ替えや追加が行われた漢字はJIS X 0208の附属書7に詳細がありますが、とりあえず以下の漢字が該当します。

78JIS83JIS
9C3A 鰺9BF5 鯵
9DAF 鶯9D2C 鴬
8823 蠣86CE 蛎
652A 攪64B9 撹
7AC8 竈7AC3 竃
704C 灌6F45 潅
8AEB 諫8ACC 諌
9838 頸981A 頚
7926 礦783F 砿
8602 蘂854A 蕊
9771 靱976D 靭
8CE4 賤8CCE 賎
58FA 壺58F7 壷
792A 礪783A 砺
6AAE 檮68BC 梼
6FE4 濤6D9B 涛
9087 邇8FE9 迩
8805 蠅877F 蝿
6A9C 檜6867 桧
5118 儘4FAD 侭
85EA 藪85AE 薮
7C60 籠7BED 篭

 BDFファイルでそれぞれの文字コード(表中の4文字はUnicodeです)を検索し、ビットマップを入れ替えれば大丈夫です。
 次に83JISで追加された新しい文字と入れ替えがあった物は以下の漢字が該当します。

78JIS83JIS
582F 堯5C2D 尭
69C7 槇69D9 槙
9059 遙9065 遥
7464 瑤7476 瑶

 これらの文字で83JISの方は98フォントに含まれていない(BDFファイルでは空白のビットマップになっている)ので、MSゴシック辺りのBDFからビットマップを拝借するしかありません。
(より根性があるなら、98フォントに似せて自分で字形を作るのも良いかも知れません。ちなみにNECのFAゴシックのビットマップは98フォントとは全然似ていません。まだMSゴシックの方が雰囲気が近いです。ただしMSゴシックのビットマップフォントは16ライン目が下線用に空けてある(つまり15ドットで描かれている)ため、他の98フォントと並べるとベースラインがズレてみっともなく見えます。このためビットマップをコピーするときは16ライン目の0000を1ライン目に移動し、1ライン目を空けるようにすればまだ見栄えが良くなります)
 ついでに90JISで加わった2文字も紹介します。これらもMSゴシック辺りからビットマップを拝借しましょう。

90JIS
51DC 凜
7199 熙

ブラウザでの動作

 管理人の環境では、SBIT32を使ってTTFにBDFを入れ込んだ場合、IE等で98フォントを使用したら文字がグチャグチャに崩れる事象が発生しました。
 この現象は、TTFTOOLSに入っているSbitRW(Wayback Machine)を使って98フォント用BDFをMSゴシックのTTFに上書きした場合は出なくなります。