2012年9月23日日曜日

Chrome 21:合成用文字による幅の補完(1)

こういう方法もあるかもという話です。
Windows 7で見ただけで、よく検証したわけではありません(XPではたぶん無理?)。

下図は大文字のAの後ろに合成用文字U+0304というのをつけて入力したところです。IEとChromeいずれもU+0304はAに合成されています。形としてはChromeの方が正しいんでしょうか。


これが文字の組み合わせによっては、IEでは合成されるのにChromeでは合成されないケースもあることに気づきました。

下図はその例です。全角の大文字CをU+2587で挟んでいます。CはIEではSimSun化され、Chromeでは何も起こらずゴシックで表示されます。SimSunの全角幅のCに対して、ゴシックのCは少し幅が縮みます。
下段のコメントでは、このCにU+0301という合成用文字をつけています。


IEではCとU+0301は合成され、上下のコメント幅に差はありません。ところがChromeでは合成が起こらず、その分下段のコメント幅が長くなっています。これを利用できないだろうか。
※ちなみにIEではゴシックだった場合も合成は起こります。

下図も上と同様、U+0301をつけた場合とつけない場合とを比較しているところです。


見た目がちょっとアレですけど、あくまでコメント幅の実験なので(^ω^;)下図は2つの図を重ねてみたところ。


U+0301をつけた方はIEとChromeでほぼ同じくらいの幅になりました。

ほんとは特殊文字でこれをやりたかったのですが、豆腐になるものが多くて使えそうな組み合わせを見つけられませんでした。 ただ合成用文字はたくさんあるので、うまいこといく場合もあるのかもしれません。

0 件のコメント:

コメントを投稿