/usr/share/i18n/charmaps の UTF-8.gz に、UTF-8の文字の幅の情報が入っているのだが、欧州仕様なので極東用にUTF-8-CJKというのが作られたようだ。
これを落としてきて、文字幅取得プログラムを書いた。
動作確認のために、自分で使いそうな文字の幅を調べてみたら、おかしな文字があった。
'✕'が半角として認識される。
実は、GoogleのMozcで、「かける」と入力した時に出てくるやつは、E2 9C 95@UTF-8(U2715:Multiplication X)という文字だった。
昔ながらのJISの乗算記号は、C3 97@UTF-8(U00D7: Multiplication sign、817E@Shift_JIS)で、なんと別の文字だった。
「乗算のX」よりも、「乗算の記号」と呼ばれるものの方がメインだと思うが、どうだろう。
Googleは何故こんなことをしたんだ。世界共通という事だろうか?
Mozcの"Character Palette"で、IPAフォントのU2715の近辺をしらべると、倍角文字と思われるグリフがたくさん入っている。
しかし、UTF-8-CJKでもその辺の文字は幅2にはなっていない。
おそらく、元々Shift_JISに存在していたもの(U00D7)は倍角文字だが、U2715はShift_JISに該当するものがないので、欧米と共通の扱いという考えで、半角なのだろう。
(MSゴシックで見ても倍角だった)
計算式を半角英数で書くのなら、演算記号も半角英数に揃えたいだろう。そのように考えれば、乗算記号も半角となる。
(過去において、半角英数と倍角の乗算器号を混ぜて書いても、見た目の不自然さはほとんど無かったが…)
ギリシャ文字は計算式によく登場するが、これはJISの頃から倍角文字だ。しかし、ギリシャ文字は欧米では半角である。
計算式に登場するものをすべて半角に揃えるとなると、ギリシャ文字も中途半端な扱いになってしまう。
簡単そうに見えて、奥が深い。
どのように扱うのが正しいことなのだろう。さらにわからなくなった。
P.S.
このU2715の扱われ方は、ソフトウエアごとに異なるようで、geditでは倍角、Gnome-Terminalでは半角になっている。
geditは可変幅フォントを可変幅として表示できるし、文字をボールドにしただけで文字幅が変わるので、倍角で扱っていると言うよりも、グリフの幅(フォントの幅)で扱っているのだろう。
0 件のコメント:
コメントを投稿