Microsoft の Sergey Malkin は私にこう言いました:
Uniscribe の各字形エンジンはレイアウトテーブルに対する必要事項を決めることができます――いくつかのエンジンは GSUB と GPOS を必要とし、いくつかの場合にはどちらかのテーブルが存在するだけで十分であり、またはどちらのテーブルも無くても動作可能である場合もあります。時には、チェックの目的はフォントが特定の用字系をサポートしているかを確かめることにあります――必要なテーブルが存在しなければ、それらのフォントはその字形処理エンジンによって拒絶されます。時には、字形処理エンジンは、我々がまだサポートを続ける必要がある古い字形処理技術を使用しているために、単純に拒絶するだけではすまない場合があり、そのような場合には旧式のレイアウトコードへのフォールバックを行う何らかのロジックを使用します。
あなたの場合はこれはヘブライ文字であり、OpenType 処理を使用するには両方のテーブルが必要です。アラビア文字も、両方のテーブルを必要とします。ラテン文字は GPOS を実行するために GSUB が必要です。しかし一般に言って、OpenType 字形処理 の完全な機能を利用するためには両方のテーブルを含めておくのが完全です。
そういうわけで、GPOS/GSUB 両テーブルの GPOS/GSUB は、(現在存在する字形処理に関わる文字だけでなく) フォント内に含まれる全ての文字の用字系を含んでいるべきだということになります。
(アウトラインビューで範囲選択を行っているときのふるまいは今までと同じです。ですから、あるスプラインの端点が両方選択されているときは、スプラインの長さに関わらず、全ての局所的な極値がスプラインに追加されます)。
HheadAOffset: 0 HheadDOffset: 0
を以下のようにします:
HheadAOffset: 1 HheadDOffset: 1