WindowsXP のシステム・フォントを変更する(3)

〔2007.02.17記〕〔2007.02.18 追記(1)〜(3)〕〔2007.02.19 追記(4)〕

WindowsXP のシステム・フォントを変更する(1)のようにレジストリ値を変更・追加してシステムフォントを MeiryoKe にしても、一部のプログラムではビットマップフォント(MS UIGothic)で表示される部分が残ります。どうやらレジストリの置換情報を参照せずに直接 MSGothic.ttc の中身のフォントを使っているようです。そうすると MS UIGothic 等にはビットマップデータ(Embedded Bitmap Data:EBDT)が含まれているため、あるサイズ以下の文字の場合は TrueType ではなくその EBDT を使って表示されるわけです。

このようなビットマップ表示の部分まで TrueType で表示させるには Fontsフォルダにある MS Gothic.ttc の中身(MS Gothic, MS PGothic, MS UIGothic)からビットマップデータ(EBDT)の部分を除去してしまえばいいのですが、あいにく私にはそれをするだけの技術と根気がありません(「MSゴシックとMS明朝で、ClearTypeを有効にする」にはその方法が詳しく書かれています)。

次善の策としては、MSGothic.ttc と同じように等幅・プロポーショナル・UI の三つのタイプのフォントを含み、かつビットマップを持たない TrueType のフォントがあり、かつ内部のフォント名が MS Gothic, MS PGothic, MS UIGothic になっているようなフォントが存在するなら、それを MS Gothic.ttc と入れ換えてしまうという方法があります(さらにそのフォントの実体が MeiryKe であれば一番ですが…。まあ、ないものねだりをしても仕方がありません)。

ところが MSGothic.ttc と入れ換えができるそのようなフォントが実はあるのですね。「WindowsXP のシステム・フォントを変更する(1)」のコメント欄(02/15)で takayukiさんに教えていただいた「MS *ゴシック Ex+ 配布ページ」にある MS *ゴシック Ex+ Ver.2.14 というのがそれです。これは SHARP のパソコンなどにインストールされている SH G30.ttc というフォントからビットマップ部分を除去し、その半角文字の部分をこれまたビットマップ部分を除去した MS Gothic のものに置き換えてつくられた合成フォントです(SH G30 から EBDT を取り除くためのパッチというのがかつて存在していて、私はそれを使って作った EBDT なしの SH G30 をしばらく愛用していました。VAIO には TBゴシック というきれいなフォントが最初から入っているのを知らなかったんですね)。

さて、上記ページにリンクされたダウンロード・ページからDLした MS-GothicExPlus.7z* という圧縮ファイルを解凍すると MS-GothicExPlus というフォルダがつくられます。そしてその中にある Install.bat を実行すると Windows\Fontsフォルダにあったオリジナルの MSGothic.ttcWindows\FontsBackup\Original にコピーされ、外面は MSGothic でありながらデータは MS *ゴシック Ex+ である MSGothic.ttcWindows\Fontsフォルダにコピーされてフォントが入れ換わります(再起動しないと有効にはなりません)。なお、オリジナルの MSGothic.ttc に戻したいときは Uninstall.bat を実行します。その他の詳しいことはダウンロードページに書いてありますのでそちらを読んでください。


* 7z(7-Zip)ファイルを解凍するソフトは "7z" で検索するといくつか見つかります。私はLhaz.exeというツールを使いました。

なお、私はバッチファイルを利用せずに手動で MSGothic.ttc の入れ換えをしましたが、オリジナルの MSGothic.ttc はきちんとバックアップをとってあります(この記事を書くために何度か入れ換え/戻しを繰り返しました)。

上記のページには外面も中身も MS *ゴシック Ex+ である普通のフォントファイル MS *ゴシック Ex+(ON) Ver.2.14 もあります。実際に入れ換えをする前にどんな字体のフォントなのかを確かめておくといいかもしれません。下の画像は入れ換えをする前の MS ゴシック系の表示と MS *ゴシック Ex+(ON) との比較です。ついでに入れ換える前の FixedSys の表示も示します。なお、「WindowsXP のシステム・フォントを変更する(1)」のレジストリ変更部分のうち FixedSys に関係する

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc\Associated DefaultFonts]

の部分は MeiryoKe_Console から元の MSGothic に戻してあります。

入れ換え前

下は入れ換え後の MS Gothic と MS *ゴシック Ex+(ON) との比較です。まったく同じになっていることが分かります。FixedSys がクリアタイプの効いていない MS *ゴシック Ex+ に変わっていることも分かります。日本語部分の丈が縮んで半角部分よりも低くなるので不格好です。

入れ換え後

さて、これで FixedSys の問題を除くとほとんどの部分が TrueType で表示され ClearType の効いた読みやすいものになりました。ぜいたくをいえば EBDT が取り除かれた MS Gothic、さらにぜいたくが許されるなら MS Gothic に化けた MeiryKe が欲しいところです。

〔2007.02.18 追記(1)〕

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc\Associated DefaultFonts]

の部分はやはり MeiryoKe_Console の方がいいみたいです。Gothic に戻すと、以前 MeiryoKE で表示されていたのに MS Gothic の仮面をかぶった MS *ゴシック Ex+ で表示されるようになった部分があります。というわけで、再び MeiryoKe_Console に戻しました。

しかし、大部分が MeiryoKe で表示されている中に MS *ゴシック Ex+ が混じっているというのはやや違和感があります。MS Gothic なら見慣れているのでたとえビットマップであってもそれほど違和感はないのですが…。たぶん慣れの問題なのでしょう。

ところで、いろいろと試しているうちに奇妙な現象に出会いました。私はつぎのような手順で MSGothic.ttc の入れ換えをしています。

(1) Fontsフォルダにある MSGothic.ttc をデスクトップに移動する。

(2) 入れ換える MSGothic.ttc(これは MSGothic_org.ttc, あるいは MSGothic_ex.ttc という名前で保存用のフォルダに入れてあります)を Fontsフォルダに移動し、そこでファイル名を MSGothic.ttc に変える。

(3) 再起動後、デスクトップ上の MSGothic.ttc のファイル名を MSGothic_ex.ttc あるいは MSGothic_org.ttc に変え、保存用のフォルダに移動する。

何度か繰り返しているうち、Fontsフォルダに移動した MSGothic_org.ttc の名前を変えるのを忘れて MSGothic_org.ttc のまま再起動してしまいました。すぐに気がついたのですが、レジストリの書き換えをして MSGothic.ttc はシステムフォントではなくなっているし、中身はオリジナルの MS Gothic, MS PGothic, MS UIGothic ですから起動時にちゃんと読み込まれるだろうと思いました。ただ、ファイル名が MSGothic.ttc ではないので何らかの変化が起こるのではないかとも思っていました。

で、その結果ですが、Styler の表示がつぎの画像のようになっていました。

Styler_MsKe.png

ふつうなら MS UIGothic のビットマップで表示されるはずの部分が MeiryoKe_UIGothic になっています。ただし、下の部分が欠けていますが(ディセンダ部分の大きさの違いですね)。

それだけでなく、MS Gothic 系を指定した部分がブラウザ上で MeiryoKe 系で表示されます(下の画像)。また、私は Firefox のオプションで「Web ページが指定したフォントを優先する」にチェックを入れているので、MS Gothic で表示されるサイトがかなりあるのですが、それらのページも MeiryoKe で表示されるようになりました。思わぬ副産物ですが、副作用がないとも限りません。しばらくこの状態で様子を見てみたいと思います。

Styler_MsKe.png

というわけで、今のところ MS *ゴシック Ex+ は出番がありません。と、ふと気になって Fontsフォルダを開いてみたところ、「MS ゴシック & MS Pゴシック & MS UI Gothic」「MS Gthic & MS PGothic & MS UI Gothic」 は登録されていはいますが、ともにファイル名が MSGTHIC.TTC になっていてサイズが 0 KBです。つまり、存在していないと認識されているのですね。そのために MeiryoKe が完全にMSGothic に取って代わってしまったと思われます。ということは Fontsフォルダに MSGothic.ttc が存在していない場合にも同じ現象が起こりそうです。いずれにしても危険な香りのする実験ですので、決してお勧めできることではありません。レジストリの変更によって MeiryoKe がシステムフォントになっているからこその現象ですから、レジストリ変更をしていない場合には起動しないでしょう。無謀な冒険は避けておくのがよいと思います。

〔2007.02.18 追記(2)〕

Fontsフォルダを開くと、MS Gothic, MS PGothic, MS UIGothic が認識されるようです。閉じてからもう一度開いてみるとちゃんと認識されており、Styler の表示等も元通りになります。ブラウザでの表示も同様です。お騒がせいたしました。Fontsフォルダを開かずにいたらどうなるか、さらに実験を続けます(認識されてしまったら MSGothic_ex.ttc と MSGothic_org.ttc を交互に入れ換えて再起動。ファイル名の変更はしない)。

〔2007.02.18 追記(3)〕

エクスプローラで Fontsフォルダを開いた場合は大丈夫なようです。追記(2)は、直接 Fontsフォルダのウインドウを開いた場合です。しかし、エクスプローラや他のファイラーで MS Gothic, MS PGothic, MS UIGothic が収納されているファイルをダブルクリックして直接開こうとした場合にもおそらく認識されるだろうと思います。つまり、MS Gothic, MS PGothic, MS UIGothic を含むファイルに直接アクセスするようなアクションをすると認識されるということでしょう。私はエクスプローラをほとんど使わずに WinFD というファイラーを使っていますが、WinFDで Fontsフォルダを開いた場合もそれだけで認識されることはありません。

追記(2)を書いた後 Fontsフォルダのウインドウを開いていませんが、MS Gothic系が MeiryoKe系で表示されるという状態は維持されています。

〔2007.02.19 追記(4)〕

追記(3)を書いている段階では大丈夫だったのですが、現在は認識された状態になっています。エクスプローラで Fontsフォルダを開いた場合にも認識されるということでしょう。

(関連記事)

(トラックバックを送った記事)



Windows Font Final(まいう〜さん)