チュートリアル (その 5)

メトリックの検査と制御

グリフの形を設計してから、次にする必要があるのはグリフの間の空間を正しく設定することです。 2 個のグリフの間の間隔はすべて、最初のグリフの後の空白と次のグリフの前の空白の 2 つの構成要素からなります。 左から右に文字を書く世界では、これらはそれぞれ右サイドベアリングと左サイドベアリングと呼ばれます。

左サイドベアリングは、簡単な操作で変更することができます。 編集(E)→選択(S)→すべて選択(A) を (アウトラインビューで) 行い、選択されたオブジェクトを適切な場所に移動します。右サイドベアリングはアドバンス幅を表す線を選択し、適切な位置に調整することによって変更できます。

しかしながら、一般的には個別のグリフのメトリックを単独で設定するのではなく、他のグリフの間に囲まれた文脈の中で眺め、その観点から設定したほうがいいのです。 ファイル(F)→メトリックウィンドウを開く(M) コマンドを使用してください。
フォントビュー内で選択された任意のグリフは (メトリックビューを呼び出したとき) メトリックビューの中に表示されます。表示されるグリフの並びは、新しくビューの最上部のテキストフィールドに文字列をタイプするか、またはフォントビューからグリフをドラッグすることによって変更することができます。

この画面から任意のグリフのメトリックを、その下のテキストフィールドに文字をタイプするか、グリフを (その画像をクリックして) 選択してから (左サイドベアリングを調整するために) 動かしたり (右サイドベアリングを調整するために) グリフの幅を表す線をドラッグしたりすることによって調整することができます。

「タイプライタ」スタイル (全てのグリフの幅が同じ) のフォントを生成したい場合、編集(E)→選択(S)→すべて選択(A) をフォントビューから実行し、次に メトリック(L)→幅を設定(W) を実行します。 これにより、すべてのグリフの幅が同じ値に設定されます。 これを行った後、メトリック(L)→幅の中央に(C) を実行して各グリフの左と右の空きを均等にしたいかもしれません。

この手動動作が複雑すぎると思う人は、 メトリック(L)→幅の自動設定(A) を試してみてください。 これは全自動で各文字の幅を設定します。この幅はプロの水準には達していませんが、一般人が見てまあまあの近似です。

縦書き用メトリック

FontForge は CJK フォントに必要な縦書きメトリックをある程度サポートしています。まず、FontForge に、このフォントが縦書きメトリックを含むことを教える必要があります。これを行うには エレメント(L)→フォント情報(F)→一般→縦書きメトリックが存在 を使用します。それからレイヤパレットで各アウトライングリフの縦書きメトリックを有効にします。

縦書きの字送りの高さを示す線がグリフの下のほうに見えるはずです。この線を、横書きの送り幅の線と同様にドラッグすることができます。

フォントのベースラインとベースラインの間隔の設定方法

この、外観上重要な意味をもつ量を設定する簡単な方法があるとお考えになるかもしれません。残念ながら無いのです。

PostScript Type1 フォント (または裸の CFF フォント) における方法
この値を設定する方法はありません。
本当に、まったく無いのです。
伝統的な活版印刷では行と行の間隔は 1em です (これは、FontForge ではフォントの高さ+深さに相当します)。いくつかのアプリケーションはこの値を使用するでしょう。他のアプリケーションはフォントのバウンディングボックス (アセンダの最大高さとディセンダの最小深さを足した数値) を使用するでしょう――非常に問題のある、しかしながら非常によく使われているアプローチです。
TrueType または OpenType フォントにおける方法
残念ながらこれはプラットフォームに依存します。
Mac
Mac では、ベースラインとベースラインの間隔は、ここでもフォントのバウンディングボックスの、'hhea' テーブルで指定されている値によって決まり、この値は行間 (FontForge では エレメント(L)→フォント情報(F)→TTFの設定値で設定できます。
Windows では
According to the OpenType spec, the baseline to baseline distance is set by the values of Typographic Ascent and Descent of the 'OS/2' table. These are the Ascent and Descent values of FontForge - - they generally sum to 1em and are equivalent to the traditional unleaded default.
OpenType の仕様書によると、ベースライン間の距離は 'OS/2' テーブルの Typpographic Ascent と Descent の値によって設定されます。これらの値は FontForge の高さと深さです――一般にこれらの合計は 1 em になり、伝統的な行間アキ無しのときのときのデフォルトです。
この値も行間 (linegap) フィールドで補正できます。 Linux/Unix では
標準的な振舞いが存在するのか疑問に思います。Unix のアプリケーションはおそらくこれらのどれか 1 つを選ぶでしょう。

タイポグラフィ上の機能が豊富なアプリケーションは、ユーザがベースライン間のスペーシングを調整できるようにしていますので、デフォルト値がどんな値でも無関係です。

カーニング

左右のサイドベアリングを注意深く設定していれば、ほとんどの場合に字間が美しく見えるようにフォントをデザインすることができるでしょう。 しかし、常にいくつかは単純に解決できない場合が存在します。

ここでは "To" や "Av" などの標準的設定が不適切な例を考えましょう。文字 "o" は、より左にずらして T" のトップバーの下にもぐり込むようにしたほうが美しく見えるでしょう。これはカーニングと呼ばれ、グリフ間の空きを各文字対に基づいて制御します。
カーニング

上の例では左の画像はカーニング無しのテキストを、右はカーニング有りのテキストを示しています。 カーニングのペアを作成するのは簡単です: 右のグリフをクリックすると、2 つのグリフの間の線 (通常は横書きの送り幅) が緑色になります。これを、空きの量が美しく見えるようになるまでドラッグしてください。

(ある種のグリフの組み合わせは、カーニングを設定するよりも合字を作成したほうが適切に扱えます)

カーニングクラス

同じようなカーニング機能をもつグリフがたくさんある場合には、それらの代わりに 1 組のカーニングクラスを作成したほうが楽でしょう (これにより A と À, Á, Â, Â, Ã Ä などがカーニングの上ですべて同じ物として扱われます)。

縦書きカーニング

FontForge は、縦書きカーニングのかなり限定されたサポートを行っています。 縦書きカーニング情報を TrueType, OpenType および SVG フォントから読み込むことができます。 水平カーニング情報を、縦無機に回転したグリフにコピーするコマンドがあります (つまり、"A" と "V" の組合せが横書きで -200 だけ詰められる場合、"A.vert" と "V.vert" は -200 だけ縦に詰められるということです)。

(縦書きカーニングは、フォントに縦書きメトリックが存在するときにかぎり利用可能です)

-- -- 目次 -- --