複数行にまたがる括弧はなぜズレるのか
- InD-Boardで出ていた「複数行にまたがる括弧」の話が興味深かったので、ちょっと調べてみた。皆さんの指摘に付け加えるような知見はないのだけれど、以下、文字コード的な雑談として。
- Unicodeには、複数行にまたがる丸括弧、角括弧、波括弧がある(下図)。このうち2文字で作る波括弧は、左上と右下、左下と右上のパーツが共通なので、文字数としては、ここまでで16文字。
- これらの括弧には、拡張用の直線パーツ(下図、グレー地)が用意されている。丸括弧用と角括弧用はそれぞれ左右別々、波括弧用のみ左右共通で、文字数としては5文字。しかしAdobe-Japan1では、これら5文字がすべてCID+12167に集約されており、区別してデザインすることができない。
- 下図は小塚明朝。角括弧の拡張はうまくいっているが、丸括弧と波括弧は直線部分がズレている。また、2文字分の波括弧のパーツは、おそらく左右共用ではなく左専用としてデザインされており、右に使うと中央が空いてしまう。
- ヒラギノ明朝のズレる箇所は、小塚明朝と同じ(下図)。
- リュウミンは、ズレのないデザイン(下図)*1。ただ、複数行にまたがる角括弧は、(丸括弧のセンターが太さの基準となるため)通常の角括弧と比べて太さが目立ち、CID+12167のみですべての直線パーツをまかなうのは、明朝体では苦しい気がする。
- 小塚ゴシックは、丸括弧の直線パーツがズレない(下図)。一方、デザイン的に無理があるわけでもなさそうな波括弧は、微妙にズレている。
- 以上見てきたすべてのフォントで、拡張用の直線パーツは角括弧にフィットしている。その理由は、Adobe-Japan1におけるグリフの並び順にありそうだ。下図は「複数行にまたがる括弧」のパーツを、Adobe-Japan1の視点でまとめたもの。この位置関係から考えると、CID+12167が角括弧および亀甲括弧用を拡張することが期待されていることは明らかであり、丸括弧については微妙。波括弧は遠く離れた箇所にある。
- 複数行にまたがる括弧がUnicodeに入ったのはバージョン3.2(2002年3月)であり、Adobe-Japan1-4のリリース(2000年3月)のほうが2年早い。Unicode 3.2が出る以前のAdobe-Japan1-4の実装が、現在の視点からは若干奇妙に見えるということなのだろう。上図でCIDをグレーとしたのはUnicodeマッピングのないグリフ。赤字はAdobe-Japan1-4のグリフだがUnicodeマッピングはAdobe-Japan1-5以降のcmap(UniJIS-UTF32系)で追加されたもの*2。