1

Javascript で TrueType フォントの解析/レンダリング エンジンに取り組んでいます。ソースはここにあります。

私の問題は、spaceほとんどの場合、グリフがlocaゼロ幅としてテーブルにインデックス付けされていることです。つまり、オフセットでグリフを検索すると、グリフのlocaオフセットが取得されexclamます。場所テーブルの仕様は次のように述べています。

欠落している文字のアウトラインがフォントに含まれていない場合、1 番目と 2 番目のオフセットは同じ値にする必要があります。これは、スペース文字など、アウトラインのない他の文字にも当てはまります。グリフにアウトラインがない場合、その長さはゼロでなければなりません。

.notdefそのため、スペース文字にはアウトラインがないように見えますが、グリフを描画したくありません。グリフのアウトラインが設定されていない場合、何を描画するか (または少なくとも水平方向にオフセットするか) を決定するにはどうすればよいですか?

4

2 に答える 2

1

この文字の幅はhmtxテーブルで設定されており、アウトラインが定義されているかどうかに関係なく、グリフはその幅でレンダリングする必要があります。

于 2012-09-25T22:35:05.777 に答える
1

グリフはゼロ幅ではありません - ゼロバイトで定義されています。あなたはそれのために何も描きません。送り幅は他のテーブル (通常は hmtx) で定義されます。高度なタイポグラフィ コントロールは、他のグリフと同様に、この幅を変更する場合があります。

于 2013-07-07T19:07:31.453 に答える