4

MinionPro-Regular.otfファイルがあります。私はそれの構造で働いています。私はそれが持っていることを発見しました:

Table 'hhea': reference on 1668 metrics in 'hmtx' table. 
Table 'hmtx': 1668 pairs of hMetrics('advanceWidth', 'leftSideBearing').
Table 'CFF ': 1429 glyph names.
Table 'CFF ': param 'CharStrings' have offset to the index of 1668 elements. 
              Each element consist the Width property if it is not the same 
              as DefaultWidth.

CFF仕様では、OTFフォントの総グリフ数(またはフォントが埋め込まれている場合はPDFファイルのCFFストリームに表示される)は次のようになっている必要があります。

  1. 事前定義されたISOAdobe文字セット(228名)を使用1429 + 228 = 1649;
  2. 事前定義された「エキスパート」文字セット(115の名前)を使用1429 + 115 = 1544;
  3. 事前定義された「エキスパートサブセット」文字セット(86名)を使用し1429 + 116 = 1515ます。

1668の数値に最も近いのは1649ですが、19の違いは、このインデックス作成のアイデアで重要なものを失ったことを意味します。

質問は次のとおりです。

  1. 名前INDEXとメトリック/文字列INDEXの間の関係はどこにありますか?
  2. FLAGはどこにありますか、どのような種類の事前定義された文字セットが使用されていますか?

重要な更新

チャーセットは関係ありません!それは間違った方法でした!

4

1 に答える 1

5

OK、ついにわかりました!

高解像度:https ://docs.google.com/drawings/pub?id = 1gM7gs-ibJ_0qsUrsxIkF5rYUmC9Ix2F9WD9d3aqwc0g&w = 1209&h = 1179

仕組み:

Open Typeフォントファイル(OTF)はhhea、パラメーターnumberOfHMetricsを含むhmtxテーブルと、フォント内の各グリフの水平メトリックの配列を含むテーブルで構成されます。

CFFテーブルは文字列の配列で構成されます。0...1428のグリフ名と1429...1432の文字列があります-、、、パラメータversionNotes値。私が理解したように、この4つの文字列は常に余分です。FullNameFamilyName

これでPredefined Standard Strings、世界中のすべてのOpenTypeフォントに共通の-ができました。上記のように、テーブルには0...378の一般的なグリフ名と379...390の追加のパラメーター名があります。

次に、2つの名前のテーブルを1つの配列に結合する必要があります。事前定義された名前テーブルの最初の要素には、.nondef要素(システムは「何もない」ので奇妙ですが、水平メトリック500が表示されます)と、パラメーターの名前を除くCFF文字列配列全体が含まれます。要素の総数はである必要がありますnumberOfHMetrics

私は全体像を理解するために60時間を無駄にします。

于 2012-08-17T06:43:29.793 に答える