UTR#50は、草稿なので今後さらに変わる可能性がありますが、それを前提にした上で原案を検討します。
狙い
この文書は、特に、「日本語組版処理の要件」(JLREQ)を参照して、二つのこと、つまり日本語の(1)文字と文字の間の空き量をどう変えるべきか、(2)縦組みのときの字の方向と字形をどうすべきかを決めようとしています。
[疑問点
日本語組版における文字間の空きの調整の問題は縦組みだけではなく、横組みにも適用されるものなので、なぜ縦組みの文脈で提示しているのか理解できません。また、文字の方向性と空きを単一の文書で論議するのは少し無理があるように感じます。しかし、そのことはここでは問いません。とりあえず、本論では(2)だけ取り上げることにします。
]
適用範囲
この仕様はプレーン・テキストにも適用可能としています。従って、この仕様は日本語の縦組みを特別なマークアップなしで表示するときの文字の挙動を決めることになります。
EAC特性
UTR#50の4.項では次のように文字のEAC特性を決めています。EAC特性は文字間の空き調整のための特性ですが、次のEAO特性に関係するので説明します。
- JRREQの「付属書A 文字クラス一覧」を援用して文字のEACクラス値としてcl-01~cl-27を規定します(4.2項)。
- 日本語組版でいつも用いる各文字にはクラス値をcl-01~cl-19に割り当てます。但し、JRREQの「付属書A 文字クラス一覧」には、半角文字・全角文字の使い分け規定はないので、UTR#50では、基本ラテン文字(英数字を含む)は全角文字に置き換え、つまり、英数字の全角文字にcl-01~cl-19を割り当てます。
- それ以外の文字は、cl-26(欧文間隔)とcl-27(欧文用文字)に割り当てます。
方向に関する文字の特性(EAO特性)
5.項でEAO(East Asian Orientation)特性を定義しています。これは文字単位に次のように分類します。
表:EOA特性値
分類 説明 説明(英文)
U 直立する文字 characters which are displayed upright
S 横倒しになる文字 characters which are displayed sideways
SB 横倒しになる括弧 brackets which are displayed sideways
T 単に上とか横ではなく、別のグリフが必要な文字 characters which are not just upright or sideways, but require a different glyph
SBは、既存のフォントとの一定の互換性の維持のために導入したもので、Sの部分クラス。
EAOはEACを利用して次のように各文字の方向特性値を与えます。
- EACでcl-27に分類される文字(欧文用文字)はすべてS(横倒し)
- cl-11(小書きの仮名とカタカナ)に分類される文字は正立
- cl-01, cl-02に分類される文字(開き括弧、閉じ括弧)は横倒しになる括弧
- cl-19(漢字等)は正立
- Tのグリフ入れ替えが必要なクラスは、5.4で一覧があります。
英数字の方向
UTR#50は英数字について、半角文字と全角文字を使い分けて、半角文字はS(横倒し)、全角文字はUまたはSまたはTの方向特性を与えています。
JLREQでは半角文字・全角文字と言う用語を用いていません。また、「付属書A」で文字コードを一覧する際も全角文字の文字コードは示していません。JLREQでは半角文字・全角文字という表現ではなく、半角形・全角形という表現を使っており、JLREQの要求は文字の使い分けではなく表示する形の使い分けです。組版処理の要求なのでこれは自然です。
しかし、UTR#50はJLREQからUnicodeの仕様を作り出すために、形の使い分けから文字(つまりコードポイント)の使い分けへのすり替えを行なっています。
このあたりの議論は文字とその形(グリフ)に関する知識がないと直ちには理解できないと思います。詳細は「PDFインフラストラクチャ解説」を参照してください。