2.52024
5.nameテーブル
こんにちは、カルチスタッフです。
前回、TTFファイルフォーマットのOS/2テーブルについてお話ししました。
今回は、nameテーブルの構成について見ていきたいと思います。
nameテーブルは、フォントファミリ名・フォントの著作権注釈など、フォントに関する文字列データを定義するテーブルです。
<<nameテーブル>>
名前 | Byte数 | 説明 |
Vertion | 2 | テーブルのバージョン(=0) |
Count | 2 | Nameレコードの数 |
StringOffset | 2 | テーブルの先頭からの文字列ストレージへのオフセット(バイト) |
nameRecords[count] | nameレコードの配列 | |
実際の文字列データのストレージ |
<<nameレコード配列>>
名前 | Byte数 | 説明 |
platformID | 2 | プラットフォームID |
encodingID | 2 | プラットフォーム固有のエンコーディングID。 |
languageID | 2 | 言語ID |
nameID | 2 | 名前ID。文字列データの内容を表すID |
length | 2 | 文字列の長さ(バイト) |
offset | 2 | 文字列ストレージの先頭からの文字列へのオフセット |
①プラットフォームIDの値
以下のいずれかの値を設定します。
0:Unicode
1:Macintosh
3:Windows
②エンコーディングIDの値
プラットフォームIDごとに、固有のエンコーディングIDを持ちます。
プラットフォームID=0のとき、エンコーディングID=0~4のいずれかの値を取ります
プラットフォームID=1のとき、エンコーディングID=0~32のいずれかの値を取ります
プラットフォームID=3のとき、エンコーディングID=0~10のいずれかの値を取ります
③言語IDの値
プラットフォームIDごとに、固有の言語IDを持ちます。
プラットフォームID=0のとき、言語ID=0~4のいずれかの値を取ります
プラットフォームID=1のとき、言語ID=0~150のいずれかの値を取ります
プラットフォームID=3のとき、言語ID=0~150のいずれかの値を取ります
④nameIDの値
0~25まであります。主に使用されるIDを一覧に示します。
ID | 説明 |
0 | 著作権表示 |
1 | フォントのファミリー名 |
2 | フォントのサブファミリー名(ID1と組み合わせて使用し、ファミリー内のフォントを区別するウェイト等を設定します) |
3 | 一意の識別子 |
4 | 完全なフォント名 |
5 | バージョン |
6 | ポストスクリプトフォント名 |
7 | 商標情報 |
フォント名を作成する欄がいくつもありますが、それぞれ異なる意味があり、アプリケーションによっても参照する場所が異なります。アプリケーションごとに、フォント選択画面は様々なデザインがあります。1フォントファイル毎に【xxxxfont Light】【xxxxfont Regular】【xxxxfont Bold】と表示されるものもあれば、【xxxxfont 】【Light】【Regular】【Bold】と表示されるものもあります。Nameテーブルの値の設定によって、アプリケーションのフォント選択画面での表示方法が変わる場合があるので、特定のアプリケーションに特化したフォントを作成する場合には注意が必要です。
ここまででご紹介した値の詳細については、こちらをご参照下さい。
name – Naming table (OpenType 1.9) – Typography | Microsoft Learn
【Windowsで使用する】、【日本語の】、【フォントのファミリー名】を設定する場合の、【プラットフォームID】、【エンコーディングID】、【言語ID】、【nameID】は以下のようになります。
【3】,【1】,【1041】,【4】
実際のフォント名は、nameレコードの末尾に格納されます。
ここまで、nameテーブルについて説明しました。
TTFファイルのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。
カルチスタッフ