2013年4月9日火曜日

Chrome 26:U+2588をpepflashplayerでも全角幅で表示させるテスト

Chrome(というかpepflashplayer)ではIEのようなフォント変化が起きません。しかしIEとは全く異なる、独特のフォント変化は起きるようです。その一端が垣間見えたので。

下図は「ABCDE」の途中に半角の半濁点U+FF9Fが置いてあります。
先頭の「A」に合成用文字U+0304をくっつけると、ChromeではU+FF9Fが豆腐になってしまいます。


比較のため右側にIEでの表示も示しました。
豆腐になる理由はわかりませんが、この部分だけフォントが変わったということでしょう。どうも合成用文字はフォント変化のトリガーになることがあるみたいです。

次に、下図は「A」とU+0304を合成させた状態で、「ABCDE」の後ろに罫線記号U+2500・U+2501をつけたところです。2つの記号の違いは、U+2500がArialであるのに対してU+2501はArialにはなく、Lucida Sans Unicodeにフォールバックしているのではないかと思われる点です。


ChromeではU+2501をつけた方の「ABCDE」が違うフォントになってしまいました。Times New Roman?でしょうか。U+2501自体は豆腐になってます。


この合成用文字とLucida Sans Unicodeの組み合わせによるフォント変化は、特殊文字でも起きました。下図はニコニコマークU+263Aで試したところです。


ChromeではU+2501をつけた方がLucida Sans Unicodeと思われる字形に変化しています。


なおIEではU+2500もU+2501もゴシックで、U+263Aはそれに従っているのだろうと思われます。
と言うことはChromeではArialで表示され、縮んでしまったブロック文字U+2588も変化させられるのでは?というわけで試したところ。


U+2501をつけた方は全角の字形にになりました。これもLucidaだろうと思います。


ただしIEではU+2588が豆腐になっています。これはU+0304がよくなかったようで、U+0323に替えると豆腐にはなりませんでした。


IEではU+2588が豆腐になっただけでなく、U+0304もフォントが変わっていたのだと思います。U+0304とU+0323の違いはWindowsコードページの定義の有無にあります。

ダイアクリティカルマークのブロック(U+0300~U+036F)において、U+0300・U+0301・U+0303・U+0309・U+0323についてはコードページ1258に定義があります。このためIEではArialから変化しないはずです。
一方U+0304を始めとする他の文字はコードページの定義がなく、Arialから他のフォントに変わることがありえます。U+2588との組み合わせではそれが起きたのかなと思います。U+0300・U+0301・U+0303・U+0309を使った場合はU+0323と同様、それ以外は(全部は試してませんが)U+0304と同様の結果でした。

下図はChromeだと縮んでしまうU+2584・U+2588を全角に変化させて、コメントの幅をIEと合わせたところ。


U+2585・U+2586・U+2587はArialになく、始めからLucidaなのがポイントなんじゃないかと思います。
下図はU+2592を全角にしているところ。


だいぶデザインが変わっちゃいますが・・・縮むよりはマシかなと。以上、とりあえずWindows 7でしか試してません。

0 件のコメント:

コメントを投稿