2006-09-23

文字クラス

この間作った文字レイアウトライブラリが気に入らない。何が気に入らないかって言うと文字クラス(文字の分類)まわり。そもそもJIS X 4051の文字クラスだけでは不十分なのは当たり前なんだよな。あれは半角とか全角とかの区別は無いし。いろいろ調べていたらInDesignの「文字組み設定の手引き」にInDesignでの文字クラスのことが書いてあった。

なのでInDesignの体験版をダウンロードしていじる。InDesignの文字クラスには読点類がある(JIS X 4051だと読点類は終わり括弧類に含まれている)。それもカンマと読点、ピリオドと句点がそれぞれ独立している。連数字をうまく扱うにはその方がいいかも。あと、半角のASCII文字は欧文用文字として扱われるみたい。ただし、半角数字は半角数字という独立したクラスが用意されている。ちなみに全角数字というクラスもある。A等の全角アルファベットはその他の和字として扱われている。それとInDesignでは文字クラスは純粋に文字間の空き量を指定するのに使われているっぽい。行の分割点を求める場合(禁則処理など)は別途指定の禁則処理セットや既定のアルゴリズムが使われているようだ。

というわけで、これらをふまえた上で、ライブラリの文字クラスを修正。半角と全角は完全に区別できるようにする。つまり、始め括弧類を半角始め括弧類と全角始め括弧類の二つに分ける、といった具合。それぞれ別の空き量を指定したいし。和字と欧字は半角か全角かで分けるのではなく、純粋に文字の意味で分ける。なのでAは(全角)欧字。文字クラスの数がかなり増えてしまうけど、ま、いいでしょ。あと、読点類と句点類の細分化で連数字まわりの曖昧性を排除。