« 2006年01月26日 | メイン | 2006年01月28日 »

2006年01月27日

PDFと文字 (34) – Unicodeの結合文字

ラテンアルファベット、アラビア文字を初めとして、世界の文字にはひとつの文字の上下、あるいは左右に別の文字または記号をつけて発音の変化や声調の変化を表すものが数多くあります。

これらの文字はUnicodeでは結合文字(Combining Character)と言われています。結合文字とはプレーンテキストの文字列を表示・印刷・PDFにするとき、文字列の中で先行する基底文字にくっついて図形的にひとつの塊になる文字ということができるでしょう。

結合文字には次のようなものがあります。
・アラビア文字のHarakat: 2006年01月22日PDFと文字 (30) – アラビア文字Harakatの結合処理
・ラテンアルファベットのダイアクリティカルマーク:2006年01月26日PDFと文字 (33) – ラテンアルファベット
・キリルアルファベットのダイアクリティカルマーク:例えば、ロシア語のU+0401.PNGU+0451.PNGは、基底文字E、eに結合ディアレシス(ウムラウト)U+0308.PNGを付加したもの。
・デバナガリ文字の母音記号:U+093E.PNG U+093F.PNG
・タイ文字の母音や声調記号など:U+0E34.PNG U+0E49.PNG

結合文字は、一般に、次のような特徴を持ちます。
(1)原則として単独では使われません。
(2)点線の円の位置には基底文字が置かれることを想定しています。
(3)文字の大きさやスタイルは基底文字と同じになります。

既に見ましたように、ラテンアルファベットでは、基底文字と結合文字を組み合わせて合成した文字についても沢山のコードポイントが与えられています。これらは合成済み文字(pre composed character)と言います。理論的には、任意の基底文字に結合文字を組み合わせる処理ができるはずですので、コードポイントが与えられている合成済み文字は、基底文字と結合文字の組み合わせの一部に過ぎません。合成済み文字は、既存の様々な文字規格に収録されていたものから、既存の文字規格との互換性のために採用されているとも言えるかもしれません。

結合文字の中には、基底文字の表示位置と同じ位置に表示されるものがあります。この属性をもつ結合文字は字幅のない記号(non spacing mark)といわれることもあります。

図 字幅のない結合文字
Combining-width.PNG

結合文字には字幅を取るものもあります。これは、字幅のある記号(spacing mark)です。

ところで、現在、多くのパソコンのキーボードには、チルダ、サーカムフレックスなどの結合文字と似た形をもつ文字のキーが幾つかあります。これらの文字は字幅のある文字(spacing character)とされていて、Unicodeの仕様では結合文字として扱わないとされています。対応する結合文字には別のコードポイントが与えられていますので使い分けが必要です。

字幅のある文字 類似の形の結合文字
Circumflex Accent U+005E Combining circumflex accent U+0302
Low Line U+005F Combining macron below U+0331
Combining macron low line U+0332
Grave Accent U+0060 Combining grave accent U+0300
Tilde U+007E Combining tilde U+0303
Small Tilde U+02DC
Diaeresis U+00A8 Combining diaeresis U+0308
Macron U+00AF Combining macron U+0304
Combining macron over line U+0305
Accute Accent U+00B4 Combining accute accent U+0301
Cedilla U+00B8 Combining cedilla U+0327
Degree Sign U+00B0 Combining ring above U+030A
Ring Above U+02DA

参考資料
UnicodeV4.0仕様書 より
・ダイアクリティカルマークの幅をもつクローン (pp.167)
・3.6 結合 (pp.70-71) 
 

投票をお願いいたします

投稿者 koba : 08:00 | コメント (1) | トラックバック