.TTF ファイルとは何ですか?
拡張子が .ttf のファイルは、TrueType 仕様のフォント テクノロジに基づくフォント ファイルを表します。当初は Apple Computer, Inc によって Mac OS 用に設計および発売され、後に Microsoft によって Windows OS 用に採用されました。 TrueType フォントは、解像度に依存することなく、コンピューター画面とプリンターで最高品質の表示を提供します。フォントを使用する最新のアプリケーションはすべて、TTF ファイルを処理できます。 TTF フォント ファイルはインターネット上で無料で入手でき、OTF や WOFF などの他のフォント ファイル形式に変換することもできます。
簡単な歴史
1980 年代に Apply Computer, Inc によって MacOS 用に設計された TTF フォント形式は、Adobe の Type 1 形式によるいくつかの技術的制限を解決することを目的としていました。 Apple は 1991 年に Mac に TrueType フォントのサポートを含めました。TTF フォントの背後にある設計目標は、ストレージと処理の効率、および拡張性でした。この拡張性に基づいて、既存のフォントを TrueType 形式に変換できます。
Microsoft は、1992 年 4 月に Windows 3.1 で TrueType フォントを初めて使用しました。これは、Apple が Microsoft に TrueType のライセンスを供与することに同意した後のことです。ラスタライズ メカニズムが改善され、その効率とパフォーマンスが向上しました。
True Type ファイル形式の仕様
TrueType フォント ファイルは、連結された一連のテーブルで構成されるバイナリ ファイルです。各テーブルは一連の単語であり、「Tag」と呼ばれる名前が付いています。各タグは uint32 データ型で、4 文字で構成されます。ファイルの最初のテーブルは、フォント ファイル内の他のテーブルへのアクセスを提供するフォント ディレクトリです。フォント データは、フォント ディレクトリ テーブルの後に続く他のテーブルに含まれます。各テーブルはそのタグでアクセスできるため、テーブルはファイル内で任意の順序で表示できます。
必要なテーブルとそのタグ名を次の表に示します。
タグ | テーブル |
---|---|
‘cmap’ | 文字からグリフへのマッピング |
‘グリフ’ | グリフデータ |
‘頭’ | フォントヘッダー |
‘へへ’ | 水平ヘッダー |
‘hmtx’ | 水平指標 |
‘場所’ | ロケーションへのインデックス |
‘maxp’ | 最大プロファイル |
‘名前’ | ネーミング |
‘投稿’ | ポストスクリプト |
データ型
TrueType フォントは、次の表に示すように、標準の整数型と追加のデータ型を使用します。
データ型 | 説明 |
---|---|
ショートフラック | 16 ビットの符号付き小数 |
固定 | 16.16 ビットの符号付き固定小数点数 |
フォワード | em 空間で測定可能な最小距離である FUnits で数量を表す 16 ビットの符号付き整数。 |
uFWord | em 空間で測定可能な最小距離である FUnits で数量を表す 16 ビットの符号なし整数。 |
F2Dot14 | 下位 14 ビットが分数を表す 16 ビットの符号付き固定数。 |
長い日付時間 | 1904 年 1 月 1 日午前 0 時からの日付の長い内部形式 (秒単位)。符号付き 64 ビット整数として表されます。 |
フォント ディレクトリ
TrueType フォントの最初のテーブルは、他のテーブルのデータにアクセスするために必要な情報へのアクセスを提供するフォント ディレクトリです。さらに、次のもので構成されます。
Offset subtable
- フォント内の表の記録を保持し、ディレクトリ内の各表にアクセスするためのオフセット情報を提供しますTable Directory
- フォント内の各テーブルのエントリが含まれています
オフセット サブテーブル
オフセット サブテーブルを以下に示します。
タイプ | 名前 | 説明 |
---|---|---|
uint32 | スケーラータイプ | このフォントをラスタライズするために使用される OFA スケーラーを示すタグ。詳細については、以下のスケーラー タイプに関する注意を参照してください。 |
uint16 | テーブル数 | テーブル数 |
uint16 | 検索範囲 | (2 の最大べき乗 <= numTables)*16 |
uint16 | エントリーセレクター | log2(2 の最大べき乗 <= numTables) |
uint16 | レンジシフト | numTables*16-searchRange |
テーブル ディレクトリ
テーブル ディレクトリは、オフセット サブテーブルの直後にあります。その構造は次の表のとおりです。
タイプ | 名前 | 説明 |
---|---|---|
uint32 | タグ | 4 バイトの識別子 |
uint32 | チェックサム | このテーブルのチェックサム |
uint32 | オフセット | sfnt |
uint32 | 長さ | このテーブルの長さ (バイト単位) (実際の長さはパディングされた長さではありません) |
フォント ファイル内の各テーブルには、独自のテーブル ディレクトリ エントリが必要です。テーブル内のエントリは、タグの昇順で並べ替える必要があります。