« 2006年01月21日 | メイン | 2006年01月23日 »

2006年01月22日

PDFと文字 (30) – アラビア文字Harakatの結合処理

さて、アラビア文字の検討で、1月20日アラビア文字のプログラム処理でHarakat(母音記号)とリガチャが出てきました。この二つについて、Unicodeによる取り扱いをもう少し検討してみます。

まず、Harakatについて検討します。次の画像をご覧ください。
Quran.PNG

これは、聖典クルアーンの一部ですが、文字の上と下に記号が付加されています。アラビア語では、原則として子音を文字として筆記する方式です。ビジネス文書や操作説明書などではそれで十分なようですが、クルアーンなどでは読み方を明確にするため、母音記号や子音の発音のバリエーションを示すための記号類を付加することがあります。

このオプションとして使われる記号類を総称してHarakatと言います。上の例では、右から次のような文字を見ることができます。

名称 役割 コードポイントと文字
Hamza Below 声門閉鎖音を表す U+0655.PNG
Kasra 短母音iを表す U+0650.PNG
Shadda 子音の連続(重子音)を表す U+0651.PNG
Fatha 短母音aを表す U+064E.PNG

上のような文字は、一般に結合文字(Combining Character)と呼ばれています。表示したり、印刷・PDF作成したりするときは先行する基底文字の上または下に配置します。

そうしますと、先頭(右)からUnicodeの文字列として表しますと、次のようになるでしょう。

A. U+0627.PNGU+0655.PNGU+0650.PNGU+0628.PNGU+0651.PNGU+064E.PNGU+0627.PNG

最初の2文字を結合した文字は、結合した形のコードポイントも与えられていますので、次のようにあらわすこともできます。

B. U+0625.PNGU+0650.PNGU+0628.PNGU+0651.PNGU+064E.PNGU+0627.PNG

このように、Unicodeでは基底文字と結合文字の組によっては、結合済の形でコードポイントを与えれられているものもあります。その場合、基底文字と結合文字を分離したものと同等になります。すなわち、上のAとBの文字列は同等として扱わねばなりません。

上の文字列を実際に表示・PDF化しますと次のようになります。
Quran-sample.PNG
※Arabic Typesettingフォントを指定

※ご注意
私は、アラビア語はわかりませんので、上の説明の中でアラビア語に関する部分の説明は、必ずしも正確でないかもしれません。ここでは、Unicodeのアラビア文字でどうやってアラビア語を表すかという例としてご理解ください。また、誤りがありましたらご指摘いただければありがたいです。

投票をお願いいたします

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