2011年11月

タイ文字のケースをちゃんと見てなかったので。
過去に何度か書いたように、タイ文字を表示させた場合は
Windows XP:Tahoma→日本語はフォントリンクによりMS UI Gothic
Windows 7:DokChampa→日本語はフォントフォールバックによりMS Pゴシック
じゃないかということでした(記号類はMSゴシックか明朝・・・字形が同じで区別できず)。
これが8DPではまた異なりました。

下図はタイ文字U+0E01~U+0E0Aを並べて表示させているところ。

イメージ 1

8DPはDokChampaではなくCordia Newではないかと思いました。
下図はWordを使って同じフォントサイズで比較しているところ。

イメージ 2

Cordia Newはタイ文字フォントとして元々あるものです。英語版は7以前でもこういう挙動なんだろうか。
ちなみに上は8DPで見てますので、当然DokChampaもインストールされています(Tahomaも)。DokChampaと同じくフォントリンクにCordia Newの登録はありませんでした。代替表示は内部で定義されていると思われます。

下図はU+0E01の後ろにニコニコマークと「あ」をつけて試しているところ。
Tahoma、DokChampa、Cordia Newいずれにもニコニコマークや「あ」のグリフはありませんので、表示されるのは代替のはずです。

イメージ 3

7も8DPも「あ」がMS Pゴシックなのは同じです(XPはMS UI Gothic)。
しかし8DPのニコニコマークは見慣れないデザインです。これは字形を見たところ、前回までに書いたケースと同様Segoe UI Symbolのようでした。

以前サンプルにした「筆記体風Love」も試してみました。両側にU+0E01をつけています。

イメージ 4

8DPのL、o、eもSegoe UI Symbolのようでした(vはArialと思われるのでどれも表示は一緒)。

それにしても7で記号類がこのように巨大化するのは謎です。字形はMSゴシックか明朝ですけど、「あ」はふつうのサイズで表示されています。同じフォントフォールバックでもアルゴリズム的にはなんか別なんでしょう(この点が実に興味深い)。
8DPのCordia New+Segoe UI Symbolというのが仮に英語版ゆえの挙動だとしても、日本語版の8が7と同じ表示になるとは限らないなと思いました。8DPの方が表示としてはまともですよね。

ところで全然別の話ですが、この英語版Windowsではアプリケーションによって日本語が文字化けしてしまうことがあります。

イメージ 5

上の図は、画像の加工によく使うJTrimというソフトのメニュー部分です。Unicodeに対応していないためこのようなことが起こります。日本語版以外のWindowsは使ったことなかったので、直し方を知りませんでした。調べたらすぐわかりました。


日本語版のWindows 7で言うと、コントロールパネル>時計、言語、および地域>地域と言語>管理タブにある「Unicode対応でないプログラムの現在の言語」というオプションです。
下図は直ったところ。

イメージ 6

なお、この変更をした後にコメントの表示が一部変わったような気がしました。でもEnglishに戻しても再現できませんでした。気のせいだったようです。

さらに前回の続きです。「あ」を隣接させると8DPで字形が変化した件です。

今度はU+266Cで見てみます。これもGulim化文字でSimSunにはグリフがありません。
Gulimは右側が上がり、フォントリンクで表示されるMS P明朝は右側が下がった字形なので、違いがわかりやすいです。

イメージ 1

下図はSimSunのフォントリンクの設定を見ているところ(7も8DPも同じ)。
Microsoft Sans Serif(MICROSS)にもPMingLiUにもU+266Cはありませんので、次のMS P明朝が使われるということだと思います。

イメージ 2

7の表示はこれで説明できます。しかし8DPでは「あ」を隣接させると他の字形に変化しています。
横棒が水平なのが特徴。ちなみにBatangではありません。
前回の日記の前半でこれはSegoe UIじゃないかと書きましたが、Segoe UIにU+266Cはありませんでした。後半で書いたSegoe UI Symbolにはありました。

イメージ 3

U+2660もあったので、結局どうもこのSegoe UI Symbolらしい?
だとしても、なんでこのフォントがここで表示されるのか謎です。何かの代替なのかもしれませんが・・・とりあえずこの現象を「Segoe化(仮)」と呼んでおくことにします。

なお「あ」の位置を変えてU+2609に隣接させてしまうとU+266CはMS P明朝の字形になります。ここでU+2609との間に半角英数字をはさむとふたたびSegoeの字形になりました。

イメージ 4

既知のフォント変化文字の挙動と似ています。

さて、「あ」じゃなくてもこの現象は起きるのですが、文字によって起きたり起きなかったりでした。下図はCJK統合漢字の連続するコード範囲で試しているところ。

イメージ 5

なんかランダムです。
これまで見たようにコードページの有無を調べてみてもいまいちわかりませんでした。あえて言えばGulimにグリフがあるという共通点はありました。下図の左はMS Pゴシック・SimSun・Gulim・PMingLiUのグリフインデックス、右はCJKの各コードページです。

イメージ 6

そう言えば以前、CJK統合漢字のブロックではGulimの有無=CP949の有無じゃないか?と思ったことがあったので(→この日記)CP949にあるものとも言えるかもしれないですが。

他の範囲でも見てみました。

イメージ 7

イメージ 8

イメージ 9

イメージ 10

いちおう共通点は同じです。と言っても、そもそもSimSun化の話なのになんでGulimの有無が?
まあこれだけではなんとも言えないので、またヒマな時に調べてみようと思います。

またWindows 8(DP版)の話です。
製品版でも日本語版でもないので今あまり調べてもしょうがないとは思いますが、ちょっとこれだけ気になったので。

下図はU+2660の字形の変化を見ています。
U+2660はコードページ949にだけ定義があるパターン1のGulim化文字です。2段目・3段目はコメントをSimSun化させています。SimSunにこの文字は無いので、フォントリンクでMS P明朝の字形が表示されます。

イメージ 1

7の表示はそれで説明がつきます。
問題は8DP。フォントリンクのリンク先は7も8DPも同様で、2段目は同じ表示です。しかし3段目の「あ」を隣接させたケースは全然違う字形になりました。

未知の挙動なので見た目だけの判断ですが、独特な字形からしてSegoe UIではないかと思いました。

イメージ 2

Segoe UIは新しい欧文用システムフォントとしてVistaから登場しました。メイリオの仲間みたいなもんでしょうか。なぜ「あ」を隣接させると変わるのか、なぜこのフォントなのか、調べた限りでは全くわかりませんでした。

次は「あ」を隣接させなくても7と表示が異なる例です。下図はU+266Aの変化を見ています。
U+266Aはコードページ932と949に定義があるパターン2の文字です。単独ではMS Pゴシックで表示され、Gulim化は解除できない「準」ゴシック化文字です。
SimSun・MingLiU(PMingLiU)には無いので、上のU+2660同様フォントリンクによりMS P明朝が表示されます。

イメージ 3

8 DPの方はMS P明朝と全く違う字形になっています。Arialかなと思ったけど違いました。Segoe UI Symbolというフォントにそれらしき字形を見つけました。

イメージ 4

なんであるにしろ、フォントリンクとは別のプロセスが作用しているように見えます。
特に「あ」を隣接させたことで字形が変わったのは、フォント変化にまだ自分が知らない仕組みがあるということなんでしょう。

とりあえず英語版ゆえの挙動なのか、8固有の仕様なのか・・・製品版で早く確かめたいなーと思いました。
まだ一年くらい先なんでしょうけどw

前回Windows 8(DP版)の話を書きました。
その後フォントのバージョンアップがちょっと気になり、Arialを見てみました。

とは言っても、同じOSでもフォントのバージョンに若干の違いはあるみたいです。
7のArialの場合、公式には5.05と書いてあります→Microsoft typography
でも8を入れたうちのマシンが7だった時は、たしか5.06でした。ここでは7のノートPCで見ていますが、こちらは5.10となっています。

下図はその5.10と、8の5.70とで差分を見ているところ。全部で48文字ありました。

イメージ 1

製品版までにはさらにバージョンアップしてて、差分が増えることもあるかもしれません。

差分はいずれもコードページ1250~1258には定義が無い文字でした。アラビア文字が多いようです。
気になったのはU+2070からのブロック。これは何かに使うかもしれない。下図はU+2070~U+2079の表示をXP・7と8 DPとで比較しているところです。

イメージ 2

5.10との差分が8 DPでは表示されています。
ただしU+2074だけはどちらも全角で表示されています。これはGulimだと思います。コードページ949でなぜかこれだけ定義されており、パターン1のGulim化文字です。

ちなみに「1」「2」「3」が無いのが気になりますけど、これは違うブロック(ラテン1補助)にあります。U+2071~U+2073はまた別の文字です。

XP・7では表示されないものも、全角文字と隣接させれば表示されます。これはMSゴシックにはグリフがあるからです。下図はU+2075が単独の場合と、「あ」に隣接した場合との両方を表示させているところ。
わかりやすいように全画面表示で拡大しています。

イメージ 3

8 DPで見ると、単独と隣接とでは字形が異なります。MS PゴシックとArialの違いだと思います。

イメージ 4

これが実際にはボールドで表示されてるんでしょう。下図はArialの字形を8上のWordで見ています。

イメージ 5

ってゆうか、これXPと7の差分を見る方が実用的ですねwそのうち一覧みたいのを作ってみようかしら。

↑このページのトップヘ