ブログ

6.<ミャンマー語の⽂字結合のしくみ4>

こんにちは、カルチスタッフです。

前回に引き続き、どのような仕組みでミャンマー語の⽂字が結合するのかを⾒ていきましょう。
⼿順は次の4つです。

(1)ミャンマー語の単語を⾳節で区切る
(2)変形しやすいように⽂字を並べ替える
(3)フォントファイルに収録されている情報に基づいて⽂字を変形する
(4)フォントファイルに収録されている情報に基づいて記号の位置を調整する

今回は、最後の項⽬です。
(4)フォントファイルに収録されている情報に基づいて記号の位置を調整する
について説明したいと思います。

■フォントファイルに収録されている情報について■

フォントファイルには「GPOS」と呼ばれる⽂字位置調整情報が含まれています。
「GPOS」は「Glyph positioning data」の略です。ここでは、「グリフ位置調整情報」と呼びます。「グリフ位置調整情報」は、画⾯上に⽂字を表⽰するときの位置を⽰したものです。

ここではわかりやすいようにビットマップで説明します。
たとえば、blog-myanmar_07blog-myanmar_08の2⽂字が⼊⼒された場合に、blog-myanmar_09を表⽰する例を取り上げます。20191105blog01⽂字にはそれぞれ幅があります。
単に並べて表⽰した場合、このようになります。20191105blog02blog-myanmar_09のように結合⽂字を表⽰させるためには、2⽂字⽬を重ねて表⽰する必要があります。
網掛けのところが重ねて表⽰している部分です。20191105blog032⽂字⽬をどの位置に重ねるかは、2つの⽂字の形によって異なります。
下の図は、blog-myanmar_10blog-myanmar_08の2⽂字が⼊⼒された場合に、blog-myanmar_11を表⽰する例です。

blog-myanmar_09の時と、2⽂字⽬の重なる位置が違っているのがわかると思います。20191105blog04

1⽂字⽬に対する、2⽂字⽬の表⽰位置を指定するための情報が「グリフ位置調整情報」です。

簡単に「グリフ位置調整情報」の中⾝を説明します。
下に⽰す表が「グリフ位置調整情報」⼀例です。ここでは「グリフ位置調整情報」の⼀部のみを紹介しています。「グリフ位置調整情報」のデータ数は、フォントにより⼤きく異なります。データ数が多いほど、きれいに重なる⽂字が多いことになりますが、フォントの容量が⼤きくなるデメリットもあります。

次に、表<GPOS データ例>をどのように使うかを説明します。
⼊⼒された単語中に、表の縦軸と横軸が連続する並びがあった場合、2⽂字⽬の表⽰位置を調整します。交点の数値分、表⽰位置を戻して、1⽂字⽬と重ねて表⽰します。
交点の数値は、⾼さ32dot のミャンマー語フォントを使って⽂字を重ねる場合の値です。

<GPOS データ例>20191105blog05

■記号の位置を調整してみよう■

例1)ミャンマー語で「学⽣」という単語blog-myanmar_001gakusei①ミャンマー語の単語を⾳節で区切る
3 ⾳節に区切ることができます。20191105blog06②変形しやすいように並べ替える
1⾳節⽬のみ、⽂字の位置が変わります。20191105blog07③フォントファイルに収録されている情報に基づいて⽂字を変形する
2⽂字⽬が変形しました。20191105blog08④フォントファイルに収録されている情報に基づいて記号の位置を調整する20191105blog09
(a)1⾳節⽬
2 ⽂字⽬と3 ⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_12が、横軸にblog-myanmar_13があるので、3⽂字⽬の始点を交点の数字である18dot 分ずらして重ねて表⽰する。
3⽂字⽬と4⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_13が、横軸にblog-myanmar_14があるので、4⽂字⽬の始点を交点の数字である3dot 分ずらして重ねて表⽰する。

(b)2⾳節⽬
1 ⽂字⽬と2 ⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_15が、横軸にblog-myanmar_16があるので、2⽂字⽬の始点を交点の数字である6dot 分ずらして重ねて表⽰する。

(c)3⾳節⽬
1⽂字⽬と2⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_17が、横軸にblog-myanmar_14があるので、2⽂字⽬の始点を交点の数字である3dot 分ずらして重ねて表⽰する。

重ねて表⽰する⽂字をまとめてみるとこのようになります。20191105blog10これで、単語中のすべての結合⽂字ができました。

例2)ミャンマー語で「町」という単語blog-myanmar_002machi①ミャンマー語の単語を⾳節で区切る
この単語の⾳節は1つです。20191105blog11②変形しやすいように並べ替える
1⽂字⽬と2⽂字⽬の位置が⼊れ変わります。20191105blog12③フォントファイルに収録されている情報に基づいて⽂字を変形する
1⽂字⽬と4⽂字⽬が変形しました。20191105blog13④フォントファイルに収録されている情報に基づいて記号の位置を調整する20191105blog14

(a)1⾳節⽬
1⽂字⽬と2⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_18が、横軸にblog-myanmar_07があるので、2⽂字⽬の始点を交点の数字である9dot 分ずらして重ねて表⽰する。
2⽂字⽬と3⽂字⽬:<GPOS データ例>の縦軸にblog-myanmar_07が、横軸にblog-myanmar_08があるので、3⽂字⽬の始点を交点の数字である10dot 分ずらして重ねて表⽰する。

重ねて表⽰する⽂字をまとめてみるとこのようになります。20191105blog15これで、単語中のすべての結合⽂字ができました。

ここまで4回に渡ってミャンマー語の⽂字結合のしくみについて説明してきました。

3.<ミャンマー語の⽂字結合のしくみ1>
4.<ミャンマー語の⽂字結合のしくみ2>
5.<ミャンマー語の⽂字結合のしくみ3>
6.<ミャンマー語の⽂字結合のしくみ4>

カルチが提供するミャンマー語レイアウトエンジン作成ガイドは今まで説明した内容をベースに、より詳しい説明を加えたドキュメントです。
⽂字の種類や組み合わせ⽅などをわかりやすく表にしているので、ミャンマー語の知識がなくてもミャンマー語表⽰プログラムを作成することができます。

ミャンマー語フォントについてご質問・ご相談などございましたら、お気軽にお問い合わせください。

カルチスタッフ

関連記事

カルチ発行書籍

  1. KEISコードブック_表紙
    2016年1月15日にKEISコードブックを発売しました。
ページ上部へ戻る