ブログ

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

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

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

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

今回は、
(3)フォントファイルに収録されている情報に基づいて⽂字を変形する
について説明したいと思います。

⽂字の変形は、⾳節の中だけで起こります。
⾳節について詳しく知りたい⽅は3.<ミャンマー語の⽂字結合のしくみ1>を復習してください。

■フォントファイルに収録されている情報について■
フォントファイルには「GSUB」と呼ばれる⽂字変形情報が含まれています。
「GSUB」は「Glyph substitution data」の略です。ここでは、「グリフ置換情報」と呼びます。ミャンマー語では、前後の⽂字によって基本の⽂字の形を変形させる必要があるため、この「グリフ置換情報」が不可⽋です。

簡単に「グリフ置換情報」の中⾝を説明します。
ミャンマー語で使⽤する「グリフ置換情報」は、置換データが固定であるフォーマットと、置換データが可変となるフォーマットの⼆種類があります。ここでは置換データが固定のフォーマットを「①固定フォーマット」可変のフォーマットを「②可変フォーマット」として使い⽅を説明していきます。
ここでは「グリフ置換情報」の⼀部のみを紹介しています。「グリフ置換情報」のデータ数は、フォントにより異なります。ミャンマー語フォントの場合は、4000 程度の基本データを持ち、この基本データを動的に組み合わせて使⽤します。

①固定フォーマット
固定フォーマットの例と、使⽤⽅法について説明します。
ミャンマー語の⾳節中の⽂字列と、下表を照らし合わせて、⽂字列中に、「⽂字1,⽂字2」の並びがあった場合は、「置換⽂字No」に対応する⽂字を結果の⽂字と置き換えます。
<GSUB 固定フォーマットデータ例>Index001 は、
ミャンマー語の⾳節内に、blog-myanmar_01 blog-myanmar_02の並びがあった場合、blog-myanmar_01blog-myanmar_03に置き換える
という指⽰を表します。

<GSUB 固定フォーマットデータ例>20191028blog01

②可変フォーマット
可変フォーマットの例と、使⽤⽅法について説明します。
ミャンマー語の⾳節中の⽂字列と、下表を照らし合わせて、⽂字列中に「⽂字1, ⽂字2, ⽂字3 を組み合わせた置換データのいずれか」の並びがあった場合は、「置換⽂字No」に対応する⽂字を結果の⽂字と置き換えます。

<GSUB 可変フォーマットデータ例1>20191028blog02

このままではわかりにくいため、<GSUB 可変フォーマットデータ例1>を使⽤して、「⽂字1, ⽂字2, ⽂字3 を組み合わせた置換データ」を作成してみます。
⽂字1が1つ、⽂字2が5つ、⽂字3が2つの⽂字を持っているため、組み合わせた置換データの数は1×5×2=10 個です。
<GSUB 可変フォーマットデータ例1の置換データ>Index001 は、

ミャンマー語の⾳節内に、blog-myanmar_01 blog-myanmar_04 blog-myanmar_05の並びがあった場合、blog-myanmar_01blog-myanmar_06に置き換える
という指⽰を表します。

<GSUB 可変フォーマットデータ例1の置換データ>20191028blog03

■⽂字を変形してみよう■
3.<ミャンマー語の⽂字結合のしくみ1>4.<ミャンマー語の⽂字結合のしくみ2>でも取り上げた単語を使って、⽂字の変形を⾒ていきましょう。

例1)ミャンマー語で「学⽣」という単語blog-myanmar_001gakusei

①ミャンマー語の単語を⾳節で区切る
3 ⾳節に区切ることができます。20191028blog04

②変形しやすいように並べ替える
1⾳節⽬のみ、⽂字の位置が変わります。20191028blog05

③フォントファイルに収録されている情報に基づいて⽂字を変形する
<GSUB 固定フォーマットデータ例>を元に⽂字を置き換えます。
⽂字の置き換えは⾳節ごとに⾏います。

<GSUB 固定フォーマットデータ例>20191028blog06

・1⾳節⽬は、2⽂字⽬、3⽂字⽬が、<GSUB 固定フォーマットデータ例>中のIndex001の「⽂字1,⽂字2」と⼀致するため、置き換えが起こります。

置き換え後の⽂字はこのようになります。20191028blog07

・2⾳節⽬は、<GSUB 固定フォーマットデータ例>中の「⽂字1,⽂字2」に該当する並びがないため、置き換えは起こりません。
・3⾳節⽬も、<GSUB 固定フォーマットデータ例>中の「⽂字1,⽂字2」に該当する並びがないため、置き換えは起こりません。

以上で、⽂字の変形は終わりです。
もう1つ、可変フォーマットを使⽤した例もみてみましょう。

例2)ミャンマー語で「町」という単語blog-myanmar_002machi

①ミャンマー語の単語を⾳節で区切る
この単語の⾳節は1つです。20191028blog08

②変形しやすいように並べ替える
1⽂字⽬と2⽂字⽬の位置が⼊れ変わります。20191028blog09

③フォントファイルに収録されている情報に基づいて⽂字を変形する
<GSUB 可変フォーマットデータ例1><GSUB 可変フォーマットデータ例2>を元に⽂字を置き換えます。

<GSUB 可変フォーマットデータ例1>20191028blog10

・まず、<GSUB 可変フォーマットデータ例1>と⾳節を照らし合わせます。
⾳節の1〜3 ⽂字⽬が、<GSUB 可変フォーマットデータ例1>の⽂字1〜3 と⼀致するため、置換⽂字No の⽰す⽂字1にあたる先頭⽂字を、結果の⽂字と⼊れ替えます。
⼊れ替え後の⽂字列は次のようになります。20191028blog11

<GSUB 可変フォーマットデータ例2>20191028blog12

・次に<GSUB 可変フォーマットデータ例2>と⾳節を照らし合わせます。
⾳節の1〜4 ⽂字⽬が、<GSUB 可変フォーマットデータ例2>の⽂字1〜4 と⼀致するため、置換⽂字No の⽰す⽂字1にあたる4 番⽬の⽂字を、結果の⽂字と⼊れ替えます。
⼊れ替え後の⽂字列は次のようになります。20191028blog13

⻑くなりましたが、以上で⽂字の変形の説明は終了です。
例1、例2とも、⼀番初めの基本の⽂字と、⽂字の変形を⾏ったあとの⽂字列を⾒⽐べてみましょう。

例1)ミャンマー語で「学⽣」という単語20191028blog14

例2)ミャンマー語で「町」という単語20191028blog15

少しずつ結合⽂字に近づいているのがわかると思います。
次回はミャンマー語の⽂字が結合するための最後の⼿順について説明したいと思います。

カルチスタッフ

関連記事

カルチ発行書籍

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