CFF2で廃止されたオペレータと代替取得方法

えーと、暑いんだか涼しいんだかよくわからない昨今ですが、いかがお過ごしでしょうか。

最近少し忙しくなってきたので、疲れました。

で、なんてことはないんですけど、Open Type Fontテーブル関連調べててCFF2でCFFにあったオペレータがごっそり削除されたのでちょっとメモしておきます。

1バイトオペレータ

  • 0x00…version
  • 0x01…Notice

nameテーブルのCopyright文字列(name ID 0)及びTrademark文字列(name ID 7)を参照。

  • 0x02…FullName

nameテーブルのFull Name文字列(name ID 4)を参照。

  • 0x03…Family Name

nameテーブルのTypographic Family Name文字列(name ID 16)を参照。存在しない場合はFamly Name文字列(name ID 1)を参照。

  • 0x04…Weight

OS/2テーブルのusWeightClassを参照。

  • 0x05…FontBox

headテーブルのxMin、xMax、yMin、およびyMaxフィールドの組み合わせより生成します。これらはデフォルト値のみの場合であり、概算にすぎませんが、CFF1インタープリターでの値を導びくにはは十分な精度があります。
一部のインタープリターはこれらの値を使用してグローバルカラーリングのヒントに影響を与え、この数値を利用してフラット化パラメーターを設定します。

  • 0x18…Copyrigh

nameテーブルのCopyright文字列(name ID 0)を参照。

  • 0xd(13)…UniqueID

元来はプリンター側でフォントをキャッシュする際に利用されていましたがサードパーティ製フォントのコンフリクトによる信頼性の低下とハードウェア性能の向上によるキャッシュパフォーマンスの相対的な低下等の理由により廃止されました。

  • 0xe(14)…XUID

不要。UniqueID参照のこと。

  • 0xf(15)…charset

必要な場合、グリフ名をver.2.0のpostテーブルに盛り込む事が可能です。

  • 0x10(16)…Encoding

cmapテーブルを参照。

  • 0x12(18)…Private

不要。CFF2では、PrivateDICTは常にFontDICTINDEXのFontDICTから参照されます。

 

2バイトオペレータ

  • 0x0c01…IsFixedPitch

postテーブルのisFixedPitchを参照。

  • 0x0c02…italicAngle

postテーブルのitalicAngleを参照。

  • 0x0c03…UnderlinePosition

postテーブルのunderlinePositionを参照。

  • 0x0c04…UnderlineThickness

postテーブルのunderlineThicknessを参照。

  • 0x0c05…PaintType

CFF2では相当するものがありません。CFF1互換フォントインスタンスを生成する場合はCFF1のデフォルトである0が選択されます。

  • 0x0c14…SyntheticBase

CFF2では相当するものがありません。

  • 0x0c08…StrokeWidth

CFF2では相当するものがありません。

CFF1フォントでは、PaintType 2にのみ使用されますが、CFF1互換フォントインスタンスを生成を生成する場合は、PaintType0を使用する必要があります。

  • 0xc15…PostScript

CFF1ではPostscriptコードの埋め込みが可能でしたがCFF2では廃止されました。

CFF1ではTop DICTにFSTypeキーを用意し、OS/2テーブルのfsTypeフィールドからフォント埋め込み権限を伝達していました。CFF1へ変換を行う場合は、OS/2テーブルのfsTypeから値を得られます。

  • 0x0c16…BaseFontName

CFF2フォントに相当するものはありません。

  • 0x0c17(12 23)…BaseFontBlend

CFF2フォントに相当するものはありません。

  • 0x0c1e(12 30)…ROS

CFF2フォントに相当するものがありません。Font DICTINDEXに複数のFontDICTがあるCFF2バリアブルフォントからCFF1互換フォントインスタンスを生成する場合、変換されたCFF1フォントはCIDキー付きフォントとして生成する必要があり、使用するROSはAdobe-Identity-0である必要があります。これにより、すべてのGIDが同じ値のCIDにマップされ、セマンティックコンテンツは含まれません。

  • 0x0c1f(12 31)…CIDFontVersion 12 31

CFF2フォントに相当するものはありません。CFF1フォントインスタンスを生成する場合デフォルト値である0に設定します。

  • 0x0c20(12 32)…CIFFontRevision 12 32

CFF2フォントに相当するものはありません。CFF1フォントインスタンスを生成する場合デフォルト値である0に設定します。

  • 0x0c21(12 33)…CIDFontType

CFF2フォントに相当するものはありません。CFF1フォントインスタンスを生成する場合デフォルト値である0に設定します。

  • 0x0c22(12 34)…CIDCount

maxpテーブルのnumGlyphsを参照。

  • 0x0c23(12 35)…UIDBase

不要。UniqueID参照のこと。

コメントを残す

メールアドレスが公開されることはありません。