日本語組版で文字・記号を行に配置するときの、文字間の空き量、文字間での改行の可否、行の調整のために文字間を空けたり・詰めたりの調整などの振る舞いは文字毎に異なります。その振る舞いが同じ文字や記号ごとにグループ分けし、これを文字クラスとすることにより、組版ソフトなどが文字クラス毎に振る舞いを管理できます。
「日本語組版処理の要件」(W3C技術ノート[*1]、以下、JLreq)では付属書Aに文字クラス、および各クラスに属する文字の一覧が出ています。これを、英数字ならびに(参考のため)ギリシャ文字、キリル文字といった文字の種類毎に、どの文字クラスに属するかという観点から再整理すると次の表のようになります。
Unicode | cl-19 漢字等 | cl-24 連数字中の文字 | cl-25 単位記号中の文字 | cl-27 欧文用文字 | |
ラテンアルファベット大文字 | U+0041~U+005A | ○ | ○ | ○ | |
ラテンアルファベット小文字 | U+0061~U+007A | ○ | ○ | ○ | |
アラビア数字 | U+0030~U+0039 | ○ | ○ | U+0031~U+0034 | ○ |
ギリシャ大文字 | U+0391~U+03A9 | ○ | U+03A9 | ○ | |
ギリシャ小文字 | U+03B1~U+03C9 | ○ | U+03BC | ○ | |
キリル大文字 | U+0401 | ○ | ○ | ||
キリル大文字 | U+0410~U+042F | ○ | ○ | ||
キリル小文字 | U+0430~U+0451 | ○ | ○ |
簡単に各文字クラスの特徴をまとめます。
・漢字類は全角形で、縦組み中では正立、任意の文字と文字の間で改行することができます。
・欧文用文字はプロポーショナル形で、縦組み中では横倒し、単語間でのみ改行できます。
・連数字の中では改行はできません。
JLReqではBasicラテンのアルファベットは、漢字類、欧文用文字の両方に属し、さらに単位記号中の文字にも属します。つまり、ラテンアルファベット文字は全角形をとり、任意の文字間で改行するという漢字のような振る舞いをする一方で、プロポーショナルな字形となり、単語間でのみ改行できるという振る舞いにもなります。
Basicラテンのアラビア数字は、漢字類、欧文用文字に加えて、連数字にも属します。
JLreqの本文では、Basicラテンのアルファベットやアラビア数字が、どういう条件で漢字として振る舞い、あるいは欧文文字、連数字中の文字、単位記号中の文字として振る舞うかは明確に記述されていません。
全体としてはコンテキストによって振る舞いを変えることができるものと想定されているようですが、例えばマークアップによって切り替えるということになるのでしょう。
先日紹介した「UAX#11 East Asian Width」[*2](以下、EAW)では文字に狭い(Narrow)、広い(Wide)、曖昧(Ambiguous)という特性を分けていました。Narrowは欧文用文字の振る舞いをし、Wide文字は漢字類の振る舞いをすることになっていますので、それぞれJLreqのcl-19とcl-27に相当します。
しかし、EAW#11では、Basicラテンの文字はNarrow特性をもち、Wide特性をもたないものとしています。
このように見ますとEAWとJLReqでは、Basicラテンの文字について、対照的な考え方を採用していると言えます。
[*1]日本語組版処理の要件(日本語版)
[*2]UAX#11 East Asian Width の紹介
■CASオンラインショップでCAS-UBのユーザー登録することで、誰でも30日間だけ無償でご利用いただくことができます。