2014年9月10日水曜日

Chrome 37:U+3099の合成

下図の上下段のコメントは、見た目同じですが一箇所だけ異なります。

見た目同じなのは、おそらく上段のU+3046(「う」)とU+3099(合成用濁点)の組み合わせが描画の際にU+3094(濁点付き「う」)に置換されているからではないかと思います。

下図は濁点なしの文字それぞれの後ろにU+3099をつけたものです。
元々濁点付きの文字がある「す」 「う」「か」はIEでもChromeでも同じ表示になっています。いずれも濁点付きの文字に置換されているように見えます。
一方、濁点付きの文字がない「ぇ」「ら」では表示が異なっています。


IEでは濁点付きの文字がなくても、強制的に合成して描画しているようです。濁点の字形が切れちゃってますが、後ろに別の文字があればちゃんと表示されます。


以前「Lucida化」と呼んでいた現象を調べていた時に、Chromeでもこの強制的な合成が起こることに気づきました。他の言語の特定の合成用文字を後ろに置くだけでいいようです。
下図はU+3099の後ろにヘブライ語のU+05B9を置いたところです。


IE・ChromeともU+3099は合成され、この部分はゼロ幅になっています。ただしU+05B9の字形(小さな点1つですが)が濁点の斜め下に少し表示されてしまっています。
どの合成用文字でもこのような挙動になるわけではありません。経験から、たぶんコードページ1250~1258に定義がある文字だろうと当たりをつけ、表示が目立たないものを選びました。

もっとも何故このような挙動を取るのかはわかりませんし、いずれ「Lucida化」のように起こらなくなるのかもしれません。
※本日WindowsとFlash Playerの月例更新、Chromeの更新がありましたが特に変化はありませんでした。

0 件のコメント:

コメントを投稿