Windows Vistaの日本語フォントの内部には,jp90タグという仕掛けが実装されていて,Windows XPの字体に戻すことができるらしい。それは本当だろうか。そもそもjp90とはいったい何なんだろう。この疑問に答えるためには,JISにおける漢字コード規格の歴史を理解する必要がある。

 JISの漢字コード規格は,大きく4種類ある。古いほうから順に,JIS X 0208(旧称JIS C 6226),JIS X 0212,JIS X 0221,JIS X 0213の4種類だ。このうちJIS X 0221は,Unicodeの翻訳規格みたいなものなので,とりあえず置いておくことにして,残りの3種類の漢字コード規格について,表1を見ながら,ざっと歴史を追ってみよう。

表1●JIS 漢字コードの歴史
  第一水準
漢字
第二水準
漢字
補助
漢字
第三水準
漢字
第四水準
漢字
非漢字 制定(改正)
年月日
タグ
JIS C 6226-1978 2965字 3384字 453字 1978年1月1日 jp78
JIS C 6226-1983 2965字 3388字 524字 1983年9月1日 jp83
JIS X 0208-1983 2965字 3388字 524字 1987年3月1日
JIS X 0208-1990 2965字 3390字 524字 1990年9月1日 jp90
JIS X 0212-1990 5801字 266字 1990年10月1日 hojo
JIS X 0208:1997 2965字 3390字 524字 1997年1月20日
JIS X 0213:2000 2965字 3390字 1249字 2436字 1183字 2000年1月20日
JIS X 0213:2004 2965字 3390字 1259字 2436字 1183字 2004年2月20日 jp04

 JIS C 6226が最初に制定されたのは1978年。6802字を収録した漢字コードとして制定され,規格票の例示字体は写研の石井明朝体で印刷された。ところがJIS C 6226は,1983年に改正された際,漢字300字の字体を変更した。この改正で「同じ文字コードでも違う字が表示されてしまう」という現象が頻繁に起こった。いわゆる「83JIS改正の悪夢」だ。

 さらにJIS C 6226は,1987年にJIS X 0208という名前に変わっているが,このときには規格そのものの変更は一切おこなわれていない。次の1990年の改正では,規格票例示字体を平成明朝体に変えたので,1983年版とは微妙に字体が変わってしまった。これに懲りて,1997年の改正では,規格票例示字体は一切いじることなく,字数も全く変更せず,あくまで規格そのものの明確化につとめた。

 一方,1990年にはJIS X 0212(補助漢字)が制定された。JIS X 0212に収録されている文字は当時のJIS X 0208とは一切ダブっていない,ということになっている。これに対し,2000年に制定されたJIS X 0213は,JIS X 0208を拡張した漢字コードだ。JIS X 0213とJIS X 0212との間には,基本的には何の関係もないが,JIS X 0213の第三水準と第四水準には,JIS X 0212から2700字強が選ばれている。さらに,JIS X 0213は2004年の改正で,第一水準や第二水準の例示字体を,160字ほど変更してしまった。2004年の字体変更はかなりドラスティックなもので,「83JISの悪夢再び」とまで言われた。

 このようにJISの漢字コード規格では,規格票の例示字体がコロコロ変わっている。一つの文字コードに対して,規格の時期によって異なる字体が例示されているのだ。これが,フォント制作者には頭痛のタネだった。というのも,表示・印刷においては,ユーザーによって1990年版の規格票に沿った字体が欲しかったり,あるいは2004年版の規格票例示字体が必要だったりするのだ。そういう要求を受けて,OpenTypeフォントのGSUBテーブルに導入されたのが,jp78,jp83,jp90,hojo,jp04という5種類のタグである。すなわち,jp78はJIS C 6226の1978年版,jp83はJIS X 0208の1983年版,jp90はJIS X 0208の1990年版,hojoはJIS X 0212の1990年版,jp04はJIS X 0213の2004年版,それぞれにおける規格票例示字体を意味するタグだ。これらのタグが,フォント内部に正しく実装されていれば,一つの文字コードに対する,それぞれの時期の規格票例示字体が,表示・印刷されるはずなのである。

 では,なぜWindows Vistaの日本語フォントでjp90タグを使うと,Windows XPの字体に戻すことができるのか。この話には,実は微妙に嘘が含まれている。Windows Vistaの日本語フォントは,基本的にJIS X 0213:2004の例示字体(すなわちjp04)に沿ってデザインされており,デフォルトではjp04字形が表示・印刷される。jp90タグは,それを「JIS X 0208-1990の字体に変える」というだけのことだ。ただ,Windows XPの日本語フォントが,JIS X 0208-1990の例示字体に準拠してデザインされていたので,結果として,あたかも「Vista+jp90=XP」であるかのようにふるまうだけである。

 しかしながら,Windows XPの日本語フォント(MSゴシックVer2.30とMS明朝Ver2.31)は,必ずしもJIS X 0208-1990の例示字体と合致してはいない。また,Windows Vistaの日本語フォント(メイリオVer5.00とMSゴシックVer5.00とMS明朝Ver5.00)は,jp90タグへの対応の度合いが,それぞれ異なっている。この結果,一部の文字では「Vista+jp90≠XP」が発生してしまう。

 メイリオVer5.00では,jp90タグが156字に,jp83タグが375字に,jp78タグが384字に対して実装されており,hojoタグは使われていない。MSゴシックVer5.00では,jp90タグが122字に対して実装されており,jp83,jp78,hojoタグは使われていない。MS明朝Ver5.00では,jp90タグが122字に対して実装されており,jp83,jp78,hojoタグは使われていない。

 メイリオVer5.00とMSゴシックVer5.00とMS明朝Ver5.00のすべてにおいて,jp90タグがサポートされている121字を図1~4に示す。これら121字については「Vista+jp90=XP」は正しいといえる。ただし,「筵」のjp90字形のうち,MSゴシックVer5.00とMS明朝Ver5.00のものは,JIS X 0208-1990の例示字体を充分フォローできていない。

図1●Vistaの日本語フォントでjp90フルサポートの121字(うち1面16~22区の29字)
[画像のクリックで全体拡大表示]

図2●Vistaの日本語フォントでjp90フルサポートの121字(うち1面23~33区の29字)
[画像のクリックで全体拡大表示]

図3●Vistaの日本語フォントでjp90フルサポートの121字(うち1面34~40区の30字)
[画像のクリックで全体拡大表示]

図4●Vistaの日本語フォントでjp90フルサポートの121字(うち1面41~82区の33字)
[画像のクリックで全体拡大表示]

 次に,メイリオVer5.00だけがjp90タグをサポートしている35字を図5に示す。これら35字の中には,MSゴシックVer5.00とVer2.30の間,あるいはMS明朝Ver5.00とVer2.31の間に,微妙な字体差を含むものがあり,「Vista+jp90≠XP」になってしまっている。なお,メイリオVer5.00における「竈」のjp83タグは,jp78タグの間違いだと思われる。

図5●メイリオVersion 5.00だけがjp90タグをサポートしている35字
[画像のクリックで全体拡大表示]

 メイリオVer5.00がjp83タグをサポートしている漢字のうち,jp83字形のほうが,よりWindows XPでの字形に近いと思える23字を図6に示す。これら23字に関しては,MSゴシックVer2.30やMS明朝Ver2.31のデザインが,JIS X 0208-1990よりむしろJIS X 0208-1983の例示字体に近かった,ということであろう。なお,MSゴシックVer5.00とMS明朝Ver5.00における「喩」のjp90字形は,JIS X 0208-1983の例示字体にむしろ近いので,本来はjp83タグとjp78タグでサポートすべきものだ。

図6●メイリオVersion 5.00のjp83字形がXPに近い23字
[画像のクリックで全体拡大表示]

 メイリオVer5.00のjp78タグは,図2の「煽」や図5の「隙」などのjp78字形を見るかぎり,JIS C 6226-1978の例示字体にかなり忠実なようだが,実は100字ほど問題がある。筆者が見つけた101字を図7~9に示す。これらの多くは,jp78字形が「jp04に同じ」ものになってしまっている(jp78タグの付け忘れに起因する)。ただし,「嗤」「幤」「藜」「雎」については誤字形(JIS C 6226-1978の第1刷[1978年2月1日発行]には誤植が多く,その後に訂正がおこなわれた。ちなみに本稿の図に使用したのは,JIS C 6226-1978第10刷[1982年9月20日発行]すなわち最終刷の例示字体)がjp78字形として実装されており,注意を要する。

図7●メイリオVersion 5.00でjp78字形に問題がある101字(うち1面16~33区の34字)
[画像のクリックで全体拡大表示]

図8●メイリオVersion 5.00でjp78字形に問題がある101字(うち1面34~57区の34字)
[画像のクリックで全体拡大表示]

図9●メイリオVersion 5.00でjp78字形に問題がある101字(うち1面59~82区の33字)
[画像のクリックで全体拡大表示]

 図10~11に示した48字は,Windows Vistaの日本語フォントと,Windows XPの日本語フォントとの間で,何がしかの字体差があるにもかかわらず,タグが全くサポートされていない漢字である。これらのうち「栃」「卻」「郤」などは,字形に対するバグフィクスのように見える。それ以外の多くは,JIS X 0212-1990とJIS X 0213:2004の例示字体の差に起因しており,本来ならばhojoタグで対応すべきものだ。しかしながら,メイリオVer5.00もMSゴシックVer5.00もMS明朝Ver5.00も,これらの文字に対してはタグを一切サポートしておらず,結果として「Vista+jp90≠XP」とならざるを得ない。

図10●字体が異なっているがタグサポートがない48字(うち第一~第三水準の23字)
[画像のクリックで全体拡大表示]

図11●字体が異なっているがタグサポートがない48字(うち第四水準の25字)
[画像のクリックで全体拡大表示]

 ちなみに,MSゴシックとMS明朝にはそれぞれVer2.50の「JIS90互換フォント」がある。これらはWindows Vistaに対して提供されるもので,「VistaをXPと同等にするフォント」という位置付けになっている。各図には,これらVer2.50フォントの字形も併記しておいた。図1~4の121字では,Ver2.50の字形はVer2.3xと全く同じであり,「VistaをXPと同等にするフォント」として使えそうである。しかし,図5~11では,かなりの文字でVer2.50とVer2.3xに違いが見られることから,Ver2.50を「VistaをXPと同等にするフォント」として使うには難がある。

 さらにVer2.50では,Ver2.3xになかった漢字が900字以上も追加されている。Ver2.50でこれらの漢字(図12~13に例を示す)を使ってしまうと,従来のVer2.3xを搭載したWindows XPでは表示できない。この点においても,Ver2.50を「VistaをXPと同等にするフォント」とするには危険がある。

図12●Version 2.50で追加された人名用漢字73字(うち1面14~87区の37字)
[画像のクリックで全体拡大表示]

図13●Version 2.50で追加された人名用漢字73字(うち1面88~94区の36字)
[画像のクリックで全体拡大表示]

 まとめると,Windows VistaとWindows XPの表示・印刷字体を統一する際に,「Vista+jp90」や「JIS90互換フォント」を用いるという方法は,現実には微妙な字体差を生じてしまう。しかも,Windows XPでは表示できない漢字を使ってしまう可能性があり,正直なところオススメできない。

 それよりは,Windows XP上にVer5.00の「JIS2004対応フォント」をインストールし,Windows Vistaと完全に同じ字体にしてしまうほうが,「統一」という意味でも安全だし,長期的に見ても安定した方法だ。読者諸氏も,手元のWindowsパソコンをすべてVer5.00フォントで統一すべく,検討してほしい。


安岡孝一(やすおか こういち)
京都大学人文科学研究所附属漢字情報研究センターの助教授。1965年生。1990年京都大学大学院工学研究科情報工学専攻修士課程を修了し,同年京都大学大型計算機センター助手に就任。1997年に同助教授となる。2000年に現職に就き現在に至る。京都大学博士(工学)。文字コードに関して多数の著書がある。