ヒント (ヒンティング) について

ヒンティングについて
ヒンティング」というのは、フォントを小さい解像度で描画する際に、アウトラインの一部が崩れたり、一部の線が見えなくなったりして、見栄えが悪くなるのを防ぐための技術です。

つまり、パソコン上で描画される、メニューや UI などの比較的小さいサイズの文字を、なるべく綺麗に、ちゃんと見えるようにしようというためのものです。

実際に、ヒンティング「なし」と「あり」の状態で描画された "H" という文字を比較してみると、以下のようになります。



ヒンティングなしでは、一部が消えてしまっていますが、ヒンティングありでは、元のグリフの形とは少しバランスが異なるものの、ちゃんと形がわかるようになっています。

ヒンティングというのは、アウトラインの座標データからピクセルへと描画を行う際に、グリフのバランスを崩してでも、ピクセルのグリッドに合うように、描画結果を調整することです。

なお、ある程度大きなサイズで文字を描画する際は、元のアウトライン通りに描画すれば結果に問題はないので、ヒンティングを使う必要はありません。
ヒンティング情報
フォント内にヒンティングの情報がある場合は、ヒンティング処理を行う際にそれが使われますが、FreeType などのフォント処理を行うライブラリでは、フォントにヒンティング情報がなくても、自動で独自のヒンティングを行う場合があります。

TrueType と OpenType では、各グリフにそういったヒント情報を含めることができますが、フォントの形式ごとにヒントの情報データは異なります。
FontForge でのヒント情報
FontForge でも、グリフにヒント情報を設定することができ、アウトラインウィンドウの「ヒント」メニューで、設定を行うことが出来ます。

ただし、これらは主に、OpenType 用のヒント設定を行うためのものです。
TrueType のヒント情報
FontForge では、TrueType を開いた場合、デフォルトで、ヒント情報を読み込まずに破棄します。
(TrueType のヒント情報は複雑であり、GUI で設定するのは難しいため)

そのため、TrueType フォントを開いて編集した後に、新しく TrueType フォントを出力した場合は、ヒント情報は全く含まれない状態になります。

ただし、元のヒント情報を読み込んで、変更されていないグリフのヒント情報をそのままの形で出力することはできます。
その場合は、「ファイル」>「環境設定」で、「TTF」項目内の「TrueType 命令をコピー」を ON にします。
OpenType のヒント情報
FontForge で OpenType を開いた場合、元のヒント情報は読み込まれます。

OpenType では、基本的に、すべてのグリフに対してヒント情報が設定されているので、最終的に OpenType で出力したい場合は、各グリフを編集した後は、常にヒント情報を設定するようにした方が良いでしょう。

ただし、アウトラインを編集して、その後ヒントを更新していないグリフに関しては、OpenType 出力時に、現在のアウトラインを元に自動でヒント情報が生成されるので、ヒントの更新を忘れたとしても問題はありません。

しかし、場合によっては、手動で更新したほうがいい時もあるので、出来るだけグリフごとに設定しておいた方がいいと思います。
FontForge でのヒント設定
アウトラインウィンドウ上で、グリフのアウトラインが完成した後に、「ヒント」>「自動ヒント」を行えば、現在のアウトラインから自動でヒント情報が生成されるので、基本的には自動生成で問題ありません。

ヒント情報が設定されると、緑や紫の塗りつぶし部分や、点線、水色の数字が表示されますが、これがヒント情報です。

緑が「水平ヒント」、紫が「垂直ヒント」です。
「斜体ヒント」は OpenType (PostScript) では使われないので、無視して構いません。

少しややこしいですが、「水平ヒント」は、Y の指定位置から指定高さまでの間の情報を示します。
「垂直ヒント」は、X の指定位置から指定幅までの間の情報を示します。

この範囲内にある、四角形上の塗りつぶし部分は、ピクセルグリッドに合うように調整されることになります。

なので、常にはっきり見えるようにしたい重要な線などでは、その範囲のヒント情報を設定するようにしてください。
ヒントメニューコマンド
「ヒントを確認」で、現在設定されているヒント情報を確認できます。

「水平ステムヒントを削除」「垂直ステムヒントを削除」で、すべての水平または垂直ヒントを削除できます。
すべてのヒント情報を削除する場合は、両方実行してください。

「水平ヒントを作成」「垂直ヒントを作成」では、数値を指定して各ヒントを作成できます。

「水平ヒントを追加」「垂直ヒントを追加」は、アウトラインウィンドウで選択されている2つの点の座標を元に、各ヒントを追加します。

例えば、四角形のアウトラインのヒント情報を追加したい場合、左上と右下、または右上と左下の2点を選択した状態で、コマンドを実行します。
座標の小さいほうが基準点になり、2点間の幅が設定されます。

2点を選択するためには、Shift+左クリックで、選択を追加/解除します。