「OpenTypeフォント」の版間の差分
提供: 個人的記録
(→TTFファイルのヘッダ構造) |
(→TTFファイルのヘッダ構造) |
||
8行目: | 8行目: | ||
= TTFファイルのヘッダ構造 = | = TTFファイルのヘッダ構造 = | ||
{| class="wikitable" style="width: 75%;" | {| class="wikitable" style="width: 75%;" | ||
− | |+ | + | |+ ヘッダ |
|- | |- | ||
!オフセット||型||説明 | !オフセット||型||説明 | ||
|- | |- | ||
− | |0|| | + | |0||4バイト||TTFヘッダのバージョン、TrueTypeフォント(ttfファイル)なら 0x00010000 が、PostScriptフォント(otfファイル)なら 0x4F54544F ('OTTO') が格納されている |
|- | |- | ||
|4||2バイト整数||格納されているテーブルの数 | |4||2バイト整数||格納されているテーブルの数 | ||
26行目: | 26行目: | ||
{| | {| | ||
{| class="wikitable" style="width: 75%;" | {| class="wikitable" style="width: 75%;" | ||
− | |+ | + | |+ オフセットテーブル |
|- | |- | ||
!オフセット||型||説明 | !オフセット||型||説明 | ||
|- | |- | ||
− | |0|| | + | |0||4バイト文字列||テーブル識別子。4バイトのASCII文字列。テーブルに記述されている内容の種別が記録されている。 |
|- | |- | ||
|4||4バイト符号なし整数||チェックサム | |4||4バイト符号なし整数||チェックサム | ||
|- | |- | ||
− | |8||4バイト符号なし整数|| | + | |8||4バイト符号なし整数||ファイル先頭からデータ部分までのオフセット。 |
|- | |- | ||
− | |12||4バイト符号なし整数|| | + | |12||4バイト符号なし整数||データ部分の長さ。 |
|} | |} | ||
+ | |||
+ | |||
+ | == テーブル識別子 == | ||
+ | オフセットテーブルに指定されているテーブル識別子でデータ部分に何が含まれているかを判断できる。<br> | ||
+ | テーブル識別子の一覧の以下のようになっている。 | ||
+ | |||
+ | {| | ||
+ | {| class="wikitable" style="width: 75%;" | ||
+ | |+ テーブル識別子 | ||
+ | |- | ||
+ | !識別子||説明 | ||
+ | |- | ||
+ | !colspan="2"|以下の識別子は必須 | ||
+ | |- | ||
+ | ||cmap||文字コードからグリフIDへの変換 | ||
+ | |- | ||
+ | ||head||基本的な情報 | ||
+ | |- | ||
+ | ||hhea||水平レイアウトの情報 | ||
+ | |- | ||
+ | ||hmtx||水平グリフの送り幅などの情報 | ||
+ | |- | ||
+ | ||maxp||色々な最大値の定義 | ||
+ | |- | ||
+ | ||name||フォント名など | ||
+ | |- | ||
+ | ||OS/2||OS/2 と Windows の情報 | ||
+ | |- | ||
+ | ||post||PostScript 情報 | ||
+ | |- | ||
+ | !colspan="2"|TrueType アウトラインの場合のみ | ||
+ | |- | ||
+ | ||cvt ||グリフの制御データ (option) | ||
+ | |- | ||
+ | ||fpgm||Font program (option) | ||
+ | |- | ||
+ | ||glyf||グリフデータ | ||
+ | |- | ||
+ | ||loca||各グリフのオフセット位置 | ||
+ | |- | ||
+ | ||prep||CVT Program (option) | ||
+ | |- | ||
+ | ||gasp||Grid-fitting/Scan-conversion (option) | ||
+ | |- | ||
+ | !colspan="2"|CFF アウトラインの場合のみ | ||
+ | |- | ||
+ | ||CFF ||Compact Font Format 1.0 | ||
+ | |- | ||
+ | ||CFF2||Compact Font Format 2.0 | ||
+ | |- | ||
+ | ||VORG||縦書き時の各グリフごとのY原点 (option) | ||
+ | |- | ||
+ | !colspan="2"|SVG アウトライン | ||
+ | |- | ||
+ | ||SVG ||SVG | ||
+ | |- | ||
+ | !colspan="2"|ビットマップグリフ | ||
+ | |- | ||
+ | ||EBDT||埋め込みビットマップ データ | ||
+ | |- | ||
+ | ||EBLC||埋め込みビットマップ location data | ||
+ | |- | ||
+ | ||EBSC||埋め込みビットマップ scaling data | ||
+ | |- | ||
+ | ||CBDT||カラービットマップ データ | ||
+ | |- | ||
+ | ||CBLC||カラービットマップ location data | ||
+ | |- | ||
+ | ||sbix||PNG/JPEG/TIFF などの形式のビットマップデータ | ||
+ | |- | ||
+ | !colspan="2"|OpenType 拡張 | ||
+ | |- | ||
+ | ||BASE||各言語ごとのベースライン情報 | ||
+ | |- | ||
+ | ||GDEF||個々のグリフに関する情報。 | ||
+ | |- | ||
+ | !colspan="2"|タイプ、合字キャレットなど。 | ||
+ | |- | ||
+ | ||GPOS||グリフ配置。濁点の配置や文字間隔の調整など。 | ||
+ | |- | ||
+ | ||GSUB||グリフ置換。縦書き変換や合字など。 | ||
+ | |- | ||
+ | ||JSTF||行揃え | ||
+ | |- | ||
+ | ||MATH||数式レイアウト情報 | ||
+ | |- | ||
+ | !colspan="2"|OpenType バリエーション | ||
+ | |- | ||
+ | ||avar||Axis variations | ||
+ | |- | ||
+ | ||cvar||CVT variations (TrueType アウトラインのみ) | ||
+ | |- | ||
+ | ||fvar||Font variations | ||
+ | |- | ||
+ | ||gvar||Glyph variations (TrueType アウトラインのみ) | ||
+ | |- | ||
+ | ||HVAR||水平レイアウト | ||
+ | |- | ||
+ | ||MVAR||Metrics variations | ||
+ | |- | ||
+ | ||STAT||スタイル属性。 | ||
+ | |- | ||
+ | !colspan="2"|非バリエーションフォントでもオプションとして使われる。 | ||
+ | |- | ||
+ | ||VVAR||垂直レイアウト | ||
+ | |- | ||
+ | !colspan="2"|カラーフォント | ||
+ | |- | ||
+ | ||COLR||カラーテーブル | ||
+ | |- | ||
+ | ||CPAL||カラーパレットテーブル | ||
+ | |- | ||
+ | ||CBDT||カラービットマップ データ | ||
+ | |- | ||
+ | ||CBLC||カラービットマップ location data | ||
+ | |- | ||
+ | !colspan="2"|ほか | ||
+ | |- | ||
+ | ||DSIG||デジタル署名 | ||
+ | |- | ||
+ | ||hdmx||特定のピクセルサイズ時の各グリフの水平レイアウト幅 | ||
+ | |- | ||
+ | ||kern||カーニング | ||
+ | |- | ||
+ | ||LTSH||Linear threshold data | ||
+ | |- | ||
+ | ||MERG||アンチエイリアス処理時、各グリフを個別に実行するか、特定のグリフペアを一緒に処理するかの指定 | ||
+ | |- | ||
+ | ||meta||メタデータ | ||
+ | |- | ||
+ | ||PCLT||PCL 5 データ | ||
+ | |- | ||
+ | ||VDMX||Vertical device metrics | ||
+ | |- | ||
+ | ||vhea||垂直レイアウトの情報 | ||
+ | |- | ||
+ | ||vmtx||垂直グリフの情報 | ||
+ | |- | ||
= 使用ツール = | = 使用ツール = |
2021年10月31日 (日) 07:32時点における版
TrueTypeFontについて調査。
TTFの仕様
TTFファイルのヘッダ構造
オフセット | 型 | 説明 |
---|---|---|
0 | 4バイト | TTFヘッダのバージョン、TrueTypeフォント(ttfファイル)なら 0x00010000 が、PostScriptフォント(otfファイル)なら 0x4F54544F ('OTTO') が格納されている |
4 | 2バイト整数 | 格納されているテーブルの数 |
6 | 2バイト整数 | search Range 「(Maximum power of 2 <= numTables) x 16.」と説明にあるがよくわからない |
8 | 2バイト整数 | entrySelector 「Log2(maximum power of 2 <= numTables).」と説明にあるがよくわからない |
10 | 2バイト整数 | rangeShift「NumTables x 16-searchRange」と説明にあるがよくわからない |
上記ヘッダの後に、ヘッダに記載のテーブル数だけ以下の構造が続く
オフセット | 型 | 説明 |
---|---|---|
0 | 4バイト文字列 | テーブル識別子。4バイトのASCII文字列。テーブルに記述されている内容の種別が記録されている。 |
4 | 4バイト符号なし整数 | チェックサム |
8 | 4バイト符号なし整数 | ファイル先頭からデータ部分までのオフセット。 |
12 | 4バイト符号なし整数 | データ部分の長さ。 |
テーブル識別子
オフセットテーブルに指定されているテーブル識別子でデータ部分に何が含まれているかを判断できる。
テーブル識別子の一覧の以下のようになっている。
識別子 | 説明 |
---|---|
以下の識別子は必須 | |
cmap | 文字コードからグリフIDへの変換 |
head | 基本的な情報 |
hhea | 水平レイアウトの情報 |
hmtx | 水平グリフの送り幅などの情報 |
maxp | 色々な最大値の定義 |
name | フォント名など |
OS/2 | OS/2 と Windows の情報 |
post | PostScript 情報 |
TrueType アウトラインの場合のみ | |
cvt | グリフの制御データ (option) |
fpgm | Font program (option) |
glyf | グリフデータ |
loca | 各グリフのオフセット位置 |
prep | CVT Program (option) |
gasp | Grid-fitting/Scan-conversion (option) |
CFF アウトラインの場合のみ | |
CFF | Compact Font Format 1.0 |
CFF2 | Compact Font Format 2.0 |
VORG | 縦書き時の各グリフごとのY原点 (option) |
SVG アウトライン | |
SVG | SVG |
ビットマップグリフ | |
EBDT | 埋め込みビットマップ データ |
EBLC | 埋め込みビットマップ location data |
EBSC | 埋め込みビットマップ scaling data |
CBDT | カラービットマップ データ |
CBLC | カラービットマップ location data |
sbix | PNG/JPEG/TIFF などの形式のビットマップデータ |
OpenType 拡張 | |
BASE | 各言語ごとのベースライン情報 |
GDEF | 個々のグリフに関する情報。 |
タイプ、合字キャレットなど。 | |
GPOS | グリフ配置。濁点の配置や文字間隔の調整など。 |
GSUB | グリフ置換。縦書き変換や合字など。 |
JSTF | 行揃え |
MATH | 数式レイアウト情報 |
OpenType バリエーション | |
avar | Axis variations |
cvar | CVT variations (TrueType アウトラインのみ) |
fvar | Font variations |
gvar | Glyph variations (TrueType アウトラインのみ) |
HVAR | 水平レイアウト |
MVAR | Metrics variations |
STAT | スタイル属性。 |
非バリエーションフォントでもオプションとして使われる。 | |
VVAR | 垂直レイアウト |
カラーフォント | |
COLR | カラーテーブル |
CPAL | カラーパレットテーブル |
CBDT | カラービットマップ データ |
CBLC | カラービットマップ location data |
ほか | |
DSIG | デジタル署名 |
hdmx | 特定のピクセルサイズ時の各グリフの水平レイアウト幅 |
kern | カーニング |
LTSH | Linear threshold data |
MERG | アンチエイリアス処理時、各グリフを個別に実行するか、特定のグリフペアを一緒に処理するかの指定 |
meta | メタデータ |
PCLT | PCL 5 データ |
VDMX | Vertical device metrics |
vhea | 垂直レイアウトの情報 |
vmtx | 垂直グリフの情報 |