コマンドプロンプトで使用するフォント

〔2007.03.12記〕〔2007.03.12追記〕〔2007.03.15追記

digitalbox(デジタルボックス)』(ハコさん)の「meiryoKeGothic のインストール・その後」という記事で、「"Associated DefaultFonts" の "AssocSystemFont" を "meiryoKeGothic.ttc" に、"FontPackage" を "MeiryoKe_Gothic" に変更してみたのですが、…」「FixedSys と Terminal がどうしてもジャギったまんまになってしまいます」というご指摘がありました。つまり、英数・記号(いわゆる ASCII文字)はビットマップのままで、日本語(全角文字)部分は ClearType の効いていないやせ細ったギザギザの状態で表示されてしまうということです。

私もこれは確認済みで、コマンドプロンプト(Console)や端末エミュレーション(Terminal)は VGA が前提で、フォントはサイズ固定(12pxまたは14px)のビットマップ(.fon)だから日本語部分にいくら ttf を指定しても無意味なんだろうとあきらめていました。しかし、Terminal の方はまったく疎いので私にはどうにも扱いようがないと思ったものの、コマンドプロンプトについてはときどきはお世話になっているのでちょっと調べてみたところ、WindowsXP では VGA ではなく SVGA で実行されているということでした。それなら ttf の ClearType が効いてもよさそうなものだと思って、コマンドプロンプトやファイラーの Shell から開く DOS窓のプロパティを開いてみたところ、どちらにも「フォント」タブがあって、私の場合そこでの指定が「ラスタ フォント」になっていたのですが、そこでは "MeiryoKe_Console" と "MS ゴシック" も選択できるようになっていました(サイズも選択できる)。下の左側がコマンドプロンプト、右が Shell から開いた DOS窓のプロパティです。

 

[Associated DefaultFonts] では "MeiryoKe_Console" 以外にも "MeiryoKe_Gothic" や他の ttfフォントをいくつか指定したはずなのになぜ "MeiryoKe_Console" だけが…、という疑問は残ります。なぜなら現在私は "MS Gothic" を指定しているからです。試しに他のフォントをいくつか指定してみたのですが選択肢はやはり "MeiryoKe_Console" と "MS ゴシック" だけです。

その謎解きはまたの機会にということで、 "MeiryoKe_Console" と "MS ゴシック" を選択した場合の違いを下に示します。なお、私は "MeiryoKe_Gothic" を "MS ゴシック" と偽っていますので、"MS ゴシック" を選択すると "MeiryoKe_Gothic" で表示されます。左が "MeiryoKe_Console"、右が "MS ゴシック"(実体は "MeiryoKe_Gothic")です。ディセンダ/アセンダの違いが行間隔の差となって表れているようです。また、 ASCII文字の部分の違いも分かります。

 

〔2007.03.12追記

大ボケをかましてしまったみたいです。「謎解き」はハコさんが「コマンドプロンプトで使用するフォントの追加」ですでになさっていたのですね。しかも私はその部分を読んで、書いてある通りにレジストリの追加をしておきながら、その内容をきちんと理解しないままに「コマンドプロンプト(Console)や端末エミュレーション(Terminal)は VGA が前提で、フォントはサイズ固定(12pxまたは14px)のビットマップ(.fon)だから日本語部分にいくら ttf を指定しても無意味なんだ」という思い込みに災いされて「コマンドプロンプトのプロパティから追加された MeiryoKe_Console を選択すればOK」の部分を読み落としていたことに気がつかなかったのです。

というわけで、コマンドプロンプトの「フォントタブ」で "MeiryoKe_Console" が選択可能になっていたのはハコさんの記事の追記部分に従って下のように [TrueTypeFont] エントリーに値を追加していたためでした。すっかり忘れておりました。


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Console\TrueTypeFont]

"932."="MeiryoKe_Console" ←この値を追加

とんだ醜態で、面目ありません。まあそのおかげで、WindowsXP ではコマンドプロンプトVGA ではなく SVGA で実行されているということが調べて分かったのだから、それでよしということにして自分を慰めることにします。

〔2007.03.15追記

"932.."="MeiryoKe_Gothic"」,「"932..."="TBゴシックR"」,… という風に値を追加することによってコマンドプロンプトで使うフォントを追加することができました(下図)。いずれも等幅フォントですが、たとえ等幅フォントであっても使えないものもあるようです。どんな条件が必要なのかは分かりません。

(参照した記事)