maxp テーブル
フォント内に含まれるグリフ数と、TrueType アウトラインに関する最大値が格納されています。
Fixed version | バージョン。 0x00005000 = 0.5 0x00010000 = 1.0 PostScript アウトラインの場合は ver 0.5、 TrueType アウトラインの場合は ver 1.0 を使う。 |
---|---|
uint16 numGlyphs | フォント内のグリフの数 |
ver 1.0 の場合、以下が続く | |
uint16 maxPoints | 複合でないグリフの最大ポイント数 |
uint16 maxContours | 複合でないグリフの最大輪郭数 |
uint16 maxCompositePoints | 複合グリフの最大ポイント数。 複合グリフとは、複数のグリフのアウトラインを使って一つのグリフを形成する方法です。 |
uint16 maxCompositeContours | 複合グリフの最大輪郭数 |
uint16 maxZones | 1 = 命令が Z0 を使用しない、2 = 使用する。 ほとんどの場合は 2 に設定する。 |
uint16 maxTwilightPoints | Z0 で使われる最大ポイント数 |
uint16 maxStorage | ストレージエリアの場所の数 |
uint16 maxFunctionDefs | FDEF の数 |
uint16 maxInstructionDefs | IDEF の数 |
uint16 maxStackElements | フォントプログラム (fpgm テーブル)、CVT プログラム (prep テーブル)、およびすべてのグリフ命令 (glyf テーブル) の最大スタック深度 |
uint16 maxSizeOfInstructions | グリフ命令の最大バイト数 |
uint16 maxComponentElements | 複合グリフの「トップレベル」で参照されるコンポーネントの最大数 |
uint16 maxComponentDepth | 再帰の最大レベル。 単純なコンポーネントの場合は1。 |
post テーブル
PostScript プリンターで使用するための追加情報です。
PostScript アウトラインとは関係なく、必須のテーブルです。
PostScript アウトラインを含む OpenType フォントは、ver 3.0 のみを使います。
基本的に、下線の値のみが設定され、他は 0 であるフォントが多いです。
等幅フォントでも、isFixedPitch は 0 に設定されていたりします。
ver 2.0/2.5 の場合は、この後に追加のデータが続く (ver 2.5 は非推奨のため、省略します)。
PostScript アウトラインとは関係なく、必須のテーブルです。
PostScript アウトラインを含む OpenType フォントは、ver 3.0 のみを使います。
基本的に、下線の値のみが設定され、他は 0 であるフォントが多いです。
等幅フォントでも、isFixedPitch は 0 に設定されていたりします。
Fixed version | バージョン。 0x00010000 = ver 1.0 0x00020000 = ver 2.0 0x00025000 = ver 2.5 (非推奨) 0x00030000 = ver 3.0 |
---|---|
Fixed italicAngle | 斜体の角度。垂直から反時計周り。 直立なら 0、右に傾いている場合は負。 |
FWord underlinePosition | 下線の位置。ベースラインから下線の上までの距離。 |
FWord underlineThickness | 下線の太さ。 一般的に、U+005F の太さと一致し、OS/2 テーブルで指定されている取り消し線の太さと一致する必要がある。 |
uint32 isFixedPitch | 0 = プロポーショナル、1 = 等幅 |
uint32 minMemType42 | OpenType フォントがダウンロードされるときの最小メモリ使用量。 不明な場合は、0。 |
uint32 maxMemType42 | OpenType フォントがダウンロードされるときの最大メモリ使用量 |
uint32 minMemType1 | OpenType フォントが Type 1 フォントとしてダウンロードされる場合の最小メモリ使用量 |
uint32 maxMemType1 | OpenType フォントが Type 1 フォントとしてダウンロードされる場合の最大メモリ使用量 |
ver 2.0/2.5 の場合は、この後に追加のデータが続く (ver 2.5 は非推奨のため、省略します)。
ver 1.0
フォントに、Mac 標準の TrueType フォントの 258 個のグリフが含まれる場合に、PostScript グリフ名を提供するために使用する。
ver 2.0
TrueType、または CFF ver 2 のアウトラインを持つフォントで使用できる。
▼ 追加データ
インデックスが 0〜257 の場合、Mac 標準の名前のインデックス。
258〜65535 の場合、258 を引いた値を names 文字列のインデックスとする。
▼ 追加データ
uint16 numGlyphs | グリフ数 (maxp テーブルの値と同じ) |
---|---|
uint16 glyphNameIndex[numGlyphs] | 各グリフの、グリフ名へのインデックス位置 |
int8 names[可変] | Pascal 文字列でのグリフ名データ (1byte len + str)。 文字は、A-Z, a-z, 0-9, '.' '_' のみで、63 文字以内。(一部の古い実装では 31 文字) |
インデックスが 0〜257 の場合、Mac 標準の名前のインデックス。
258〜65535 の場合、258 を引いた値を names 文字列のインデックスとする。
ver 3.0
TrueType、または CFF (ver 1 or 2) のアウトラインを持つフォントで使用できる。
PostScript グリフ名を含まない。
PostScript グリフ名を含まない。
プログラム
>> 07_maxp_post.c
maxp と post テーブルを表示するプログラムです。
PostScript グリフ名のデータは省略しています。
maxp と post テーブルを表示するプログラムです。
PostScript グリフ名のデータは省略しています。
---- maxp ---- version: 0x00010000 (1.0) numGlyphs: 19243 maxPoints: 706 maxContours: 41 maxCompositePoints: 0 maxCompositeContours: 0 maxZones: 2 maxTwilightPoints: 1 maxStorage: 2 maxFunctionDefs: 22 maxInstructionDefs: 0 maxStackElements: 256 maxSizeOfInstructions: 0 mmaxComponentElements: 0 maxComponentDepth: 0 ---- post ---- version: 0x00020000 (2.0) italicAngle: 0x00000000 (0.000) underlinePosition: -128 underlineThickness: 51 isFixedPitch: 0 minMemType42: 0 maxMemType42: 0 minMemType1: 0 maxMemType1: 0