ブログ

5.nameテーブル

こんにちは、カルチスタッフです。

前回、TTFファイルフォーマットのOS/2テーブルについてお話ししました。

今回は、nameテーブルの構成について見ていきたいと思います。

nameテーブルは、フォントファミリ名・フォントの著作権注釈など、フォントに関する文字列データを定義するテーブルです。

  <<nameテーブル>>

名前Byte数説明
Vertion2テーブルのバージョン(=0)
Count2Nameレコードの数
StringOffset2テーブルの先頭からの文字列ストレージへのオフセット(バイト)
nameRecords[count] nameレコードの配列
  実際の文字列データのストレージ

 

<<nameレコード配列>>

名前Byte数説明
platformID2プラットフォームID
encodingID2プラットフォーム固有のエンコーディングID。
languageID2言語ID
nameID2名前ID。文字列データの内容を表すID
length2文字列の長さ(バイト)
offset2文字列ストレージの先頭からの文字列へのオフセット

①プラットフォーム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ファイルのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。

カルチスタッフ

関連記事

カルチ発行書籍

  1. KEISコードブック_表紙
    2016年1月15日にKEISコードブックを発売しました。
ページ上部へ戻る