より高度な機能、合字、マークによる位置決め, 異体関係にあるグリフ

# チュートリアル (その 6)

- フォントの作成
- グリフの作成 (アウトラインのトレース) 法
- 他のグリフの呼び出し方
- 次のグリフに関して (矛盾のないパスの向き)
- 統一のとれたセリフとステムの太さ
- 合字の組み立て方
- メトリックの確認法
- カーニング
- 異体関係にあるグリフ
  - 条件つき異体字
- アンカーマーク
- 条件つき機能
- フォントのチェック法
- フォントの出力方法
- フォントファミリー
- 最後のまとめ
- スクリプト処理のチュートリアル
- 各種の用字系における注意点

## 異体関係にあるグリフ

多くの用字系では、あるグリフに対して異体関係にあるグリフがいくつか存在します。ラテンアルファベットでは、最も自明な例はすべての文字が大文字と小文字の異体を含むということです。より秘教的な例としては、ルネッサンスの時代には長い s という s の異体字が単語の頭と中間で用いられ、短い s は単語の終わりでしか用いられなかったというものがあります。

ほとんどのアラビア文字は 4 種の異なる形 (語頭、語中、語尾および独立形) をもっています。

数字にはしばしば幾つかの異なる形が設けられることがあります: 表用数字 (すべての数字が同じ送り幅をもっていて、表の数値が不揃いに見えない), プロポーショナル数字 (各数字が、それにふさわしい幅をもつ) とオールドスタイル数字 (またの名を小文字数字) () と呼ばれます。

これらの異体字のうちのいくつかは符号化された位置をもっています (大文字と小文字の区別はこれにあたります) が、その他の場合、フォントに追加情報を与え、ワードプロセッサが異体字の存在を知ることができるようにする必要があります (アラビア文字はこの二つの中間にあたり、多くの形がエンコーディングに含まれていますが、追加情報も同時に与える必要があります).

上で言及した数字の場合を考えましょう。“one”という名前のグリフが表用数字の 1 であり、“one.prop”というグリフがプロポーショナルな異体字を、“one.oldstyle" が小文字異体字を含んでいると仮定します。ここで、フォントビューから“one”を選択し、`エレメント(L)`→`グリフ情報(I)...` のダイアログで `[置換]` タブを開いて `[新規(N)...]` ボタンを押します。新しいダイアログが出てきますので、`構成要素` フィールドに“`one.prop`”と入力し、“`プロポーショナル数字`”を `タグ(T)` プルダウンリストから選択します (これは“`pnum`”となります)。それから興味のある用字系 (用字系‘latn’と言語‘dflt’は多くの場合にあてはまります) を選択します。最後に `[OK]` を押します。

幾つかの異体字は FontForge に組み込みで定義されているので、`エレメント(L)`→`組版機能(Y)`→`デフォルトのATT(D)`→`(異体字の分類名)` を選択すれば、FontForge がこの手順を自動化して行ってくれるでしょう。

(注意: Type0, Type1 および Type3 PostScript フォントにはこれを取り扱うデータ表現がありません。 これらの異体字を出力したければ、OpenType か TrueType フォントを作成する必要があります。)

### 条件つき異体字

FontForge は OpenType の条件つき置換および連鎖的条件つき置換サブテーブルをサポートしており、Apple の条件つきグリフ置換サブテーブルの機能の一部をサポートしています。これは、条件つきの異体字をフォントに含めることができると言うことを意味します。これについては次のページで詳しく解説します。

## アンカー マーク

いくつかの用字系 (アラビア, ヘブライなど) は主たるテキストグリフの回りに母音記号を置く必要があります。 その他の用字系 (ラテンとギリシャのいくつかの変種) は非常に多くの可能なアクセントの組み合わせを持っているので、すべての組み合わせをあらかじめ集めたグリフとして持っているのは非効率です。

OpenType では (ここにはマイクロソフトの TrueType フォントも含まれます) すべての基底文字が接続するべきマークと、基底文字が接続するべきすべての文字を指定することが可能です。 ですから、大文字 A の上部中央に、すべてのアクセント (アキュート、グレーブ、ウムラウト、サーカムフレックス、リング、キャロン…) の接続するべき場所を指定する 1 個のアンカーと、すべてアクセントの下にそれぞれのアンカーを置くことができます。 そのため、2 個のグリフがテキスト内で隣り合って現れたときに、ワードプロセッサは“A”の上に重なるアクセントがどこに位置するのか知ることができます。

| + |  | => |

すべてのアクセントが文字の上部中央に重なるわけではありません (ドットとオゴネクは文字の下に重ねられます) ので、異なるスタイルの接続に対してはアンカーをもう一つ定義する必要があるでしょう。

それに加え、幾つかの文字――例えば Unicode U+1EA4, サーカムフレックスとアキュートアクセントが一つずつついた A ――は複数の接続点をもつことができます。 このままではサーカムフレックスとアキュートは同じ点に接続し、醜悪で見づらいことになるでしょう。 その代わりに、異なる種類のアンカー (マークからマークへのアンカー) をサーカムフレックスの上に作成し、アキュートアクセントがそれに接続できるようにします。

まだグリフの中にアンカーを作成できるようになっていない場合は、まず、このフォントがアンカーを含んでいることを FontForge に知らせなければなりません。 接続のタイプごとにそれぞれ、アンカークラス を作成する必要があります。 ですから上の例の二つの型の接続 (一つは上、一つは下) をもつ A の場合、二つのアンカークラスを作成することになるでしょう。 この作業は `エレメント(L)`→`フォント情報(F)...`→`[アンカークラス]` ダイアログによって行えます。

それから、接続点を作成するグリフの各々において、まずアンカーを作成する場所に配置した点をクリックし、次に `点(P)`→`アンカーを追加(A)...` ダイアログを呼び出す必要があります。

`メトリック(M)`→`アンカーの制御(A)...` コマンドを使えば、そのグリフが、他のグリフと組み合わされるときにどのように嵌まり合うかを確かめることができます。

マークの接続に関する警告: 全てのソフトウェアがこれらをサポートしているわけではありません。 さらに紛らわしいことに、ソフトウェアが一部の用字系のみをサポートし、他をサポートしていないこともあります。

― 前 ― 目次 ― 次 ―