Migdal

Mira
Mira

Posted on

アラビア語っぽいフォントを作りたい人のためのFontforge設定メモ

初めに

  • Fontforge チョットデキルな人を対象にしています。
  • 本記事はとりあえずアウトプットのために書いているので、不完全な可能性があります。もっといい方法をご存じの方がいればコメントで教えてください。

何ができるか?

  • 全部の文字に語頭/語中/語末形のある文字を作成できるようなります。
  • 文字の向きは左から右です。

というわけで手順です

独立形を作る

ラテン語転写の場合は対応するアルファベットに独立形を登録します。

独立形を登録

語頭/語中/語末形を作る

「エンコーディング」→「エンコーディングスロットの追加」で1文字につき3つスロットを追加します。

エンコーディングスロットの追加
追加された未使用スロット

追加したスロット(?になっているもの)を右クリックし、「グリフの情報」をクリックしてください。
その後、グリフに関する情報ダイアログの「Glyph name:」を語頭形/語中形/語末形でそれぞれ以下のように設定してください。

追加する文字の例 語頭形 (.init) 語中形 (.medi) 語末形 (.fina) 備考
b b.init b.medi b.fina ASCII 範囲は単純に文字の名前で OK です。
Á(Aacute) Aacute.init Aacute.medi Aacute.fina Fontforge に文字の名前が設定されているものはそれを使用する必要があります。文字の名前は元の文字にカーソルを合わせて確認することができます。
ẞ(uni1E9E) uni1E9E.init uni1E9E.medi uni1E9E.fina 文字によっては UNICODE コードポイントを指定する必要があります。これも元の文字にカーソルを合わせて確認することができます。

グリフ名の変更

変更すると文字のタイトルが基となる文字のものに変わります。

変更したグリフの見え方

すべての文字について上記を実施した後、各字形バリエーションを追加してください。

文字バリエーションの追加

文字組の設定

文字の字形変化の関連付けの設定

「エレメント」→「フォント情報」をクリックします。
フォント情報ダイアログが開くので「Lookups」をクリックしてください。
Lookups タブ

まず語頭形の字形変化の関連付けを行います。
「Add Lookup」をクリックして Lookup ダイアログを開きます。
その後、種類の中から「単純置換」を選択します。
種類

続いて機能の下の「<New>」をクリックして「init 語頭形」を選択します。
機能

Lookup Name は何でもいいのですが、後で設定に使うのでなるべく短めにしてください。長いと設定が見づらくなります。ここでは「init」と入れた場合で説明しています。
母音記号を付けたい場合はここで併せて「結合型マークを無視する」にチェックを入れておくとよいです。
Lookup Name

「Add Subtable」をクリックしてサブテーブルを追加します。この名前はデフォルトのままで OK です。
add subtables

サブテーブルを追加すると「Lookup Subtable」ダイアログが表示されます。
Default using suffix に init と入れ、「Default using suffix」ボタンをクリックしてください。
Lookup subtable

そうすると b.init などの名前を付けた文字が自動的に関連付けられます。
Lookup subtable -automation

同じように「medi」と「fina」も Lookup を作成してください。
作成すると以下のようになるはずです。
Lookups タブ 文字の字形変化の関連付けの設定

ここまで出来たらいったんフォント情報ダイアログを「OK」で閉じ、ファイルを保存しておいてください。Fontforge はこの手の作業をするとよく落ちる気がします。

文字の置換ルールの設定

再びフォント情報ダイアログの Lookups タブで「Add Lookup」をクリックしてください。
その後、種類から「文脈依存の置換」を選択してください。
Image description

続いて機能の下の「<New>」をクリックして「init 語頭形」を選択します。
ここでも母音記号を付けたい場合は併せて「結合型マークを無視する」にチェックを入れておいてください。
Lookup Name は何でもいいのですが、ここでは「calt」と入れた場合で説明しています。
Image description

「Add Subtable」をクリックしてサブテーブルを追加します。この名前はデフォルトのままで OK です。
Image description

文脈依存の置換を編集ダイアログが出てきます。チェックボックスはデフォルトでよいと思いますが、念のため以下と同じか確認して「次」をクリックしてください。
Image description

次に置換ルールの 2 表を編集します。
まず下の一致テーブルに以下の 3 行を追加してください。

Name Glyphs in the class Glyphs in the class の例 備考
C 独立形として登録した文字をすべて選択してください。 b c Name は上の表で使うので短いほうがいいです。C は Character の略です。
I 語頭形として登録した文字をすべて選択してください。 b.init c.init I は Initial-form の略です。
M 語中形として登録した文字をすべて選択してください。 b.medi c.medi M は Medial-form の略です。

続いて上の表に以下の 5 行を追加してください。

Matching rules based on list of classes 備考
I | C @<medi> | C 「|」や「I」「C」「M」や「@<...>」の前後に必ずスペースを入れてください。
M | C @<medi> | C
| C @<init> | C 語頭形の設定は必ず語中形の設定より下にしてください。そうしないと語中形が正しく変換されません。
I | C @<fina> | C
M | C @<fina> | C

すべて設定すると以下のようになります。
Image description

ちなみに「@<init>」などは「Add Lookup」から選択することができます。
Image description

最終的に Lookups は以下のようになります。「OK」を押していったんファイルを保存しましょう。
Image description

設定ができたらメトリックダイアログなどで確認してみてください。
Image description

これで完成です🎉

Top comments (0)