2012年4月4日水曜日

あらためてMingLiUについて(2)

Windows XP上のニコニコプレーヤーでは、MingLiU(PMingLiU)が表示できないわけではありません。旧ブログの時に、フォントリンクへArialを追加してリンク先に表示させたいフォントを設定するという実験をしました。この方法でなら、MingLiUも表示させることはできます。
しかしCJKフォント変化の挙動では、なぜかMingLiUだけが表示されません。フォント変化が起きないのではなく、起きているにもかかわらずArialやMS Pゴシックなど他のフォントで表示されます。7・Vistaとは字形だけでなく文字幅まで異なってしまいます。このことがコメントに利用する際ネックになると思います。

まずMingLiU化文字自体がどう表示されるか見てみます。

(1)に掲げた一覧の通り、知る限りでMingLiU化文字はU+02CD・U+2027・U+2574の三つしかありません。実はこの他にも私用領域になら多数あり(おそらくU+E865からU+F848の範囲全部?)、最初にMingLiU化を教えていただいたのもU+EF04という文字でした。しかし私用領域ということは環境によって何が表示されるか予想できず、あえて使う必要もないのかなと思います。


さてXPの表示です。各MingLiU化文字は、単独の状態および「あ」に隣接した状態では豆腐です。三番目の図は間に全角スペースをはさみました。こうすると字形が表示されています。
MingLiU化文字に隣接した「あ」(U+3042)と全角スペース(U+3000)の違いは、コードページ950での定義の有無ではないかと考えています。

Unicode CP932 CP936 CP949 CP950
U+3000 8140 A1A1 A1A1 A140
U+3042 82A0 A4A2 AAA2 -

コードページ950に定義がある文字に隣接すれば、字形が表示されるのではないかということです。ただしこれはU+3000以降の話で、それより前のコードポイントの文字では何に隣接させてもどうも豆腐のままみたいです(全部確かめたわけじゃないですが)。XPのこの挙動においては、隣接する文字がCJK文字と判別された時に変化が起きるように思います。その判別が具体的に何によるものかは今のところわかりません。

豆腐はArialの字形だと思います。Arialにこの3文字はいずれもグリフが無いため、全部豆腐なのでしょう。一方全角スペースに隣接して字形が表示された方は、調べたところMicrosoft Sans Serifでした。Microsoft Sans Serifにもこの3文字は無いのですが、フォントリンクが使われていました。


リンク先のフォントのグリフの有無は以下の通りです。

フォント名 02CD 2027 2574
MS UI Gothic -
SimSun - - -
Gulim - - -
PMingLiU

つまりU+2027・U+2574はMS UI Gothic、U+02CDはPMingLiUで表示されていると考えられます。リンク先からそれぞれ削除して確認してみました。MS UI Gothicを削除後:


U+2027・U+2574が全角の字形に変わりました。PMingLiUで表示されるようになったのでしょう。さらにPMingLiUも削除後:


3文字とも豆腐になりました。この太字で細長い字形はMicrosoft Sans Serifの豆腐だと思います。なぜここでMicrosoft Sans Serifなのかはわからないのですが、XPではSimSunでグリフの代替が行われる時にも同じ挙動があります。そういう役割のフォントなんでしょうか。

ともかく、これでU+02CDだけが7と同じPMingLiUで表示されていることがわかりました。MS UI GothicのU+2027・U+2574はPMingLiUより文字幅が縮んでしまうので、7・Vistaとコメント幅を同一にするならU+02CDを使うしかなさそうです。

ではMingLiU化文字をXP上で実際どう使ったらいいんだろうという話は、次で書きたいと思います。

0 件のコメント:

コメントを投稿