4.22024
6.headテーブル
こんにちは、カルチスタッフです。
前回、TTFファイルフォーマットのnameテーブルについてお話ししました。
今回は、headテーブルの構成について見ていきたいと思います。
headテーブルも、OS/2テーブルと同じく、フォント全体の表示に関する項目を設定します。
名前 | Byte数 | 説明 |
Version | 4 | テーブルバージョン |
fontRevision | 4 | フォントメーカのための領域 |
checkSumAdjustment | 4 | チェックサム。 フォント全体をULONGに分割し、個々の値の合計をだす。 それに0xB1B0AFBAを足したもの。 |
magicNumber | 4 | 0x5f0f3cf5をセットする |
flags | 2 | Bit0=ベースラインがy=0 Bit1=レフトサイドベアリングがx=0 Bit2=命令はポイントサイズに依存する Bit3=ppemは整数値を使用する。 ヒンティングが設定されている場合はONを推奨します。 Bit4=命令により、文字送り幅を変更する場合がある。 Bit5=OpenTypeフォントの場合はOFFにする。 Bit6~10=opentypeでは未使用。 Bit11=圧縮や変換に関する値 Bit12=変換されているフォントかどうかを設定する Bit13=クリアタイプ設定を使用する場合はONにする必要がある。埋め込みビットマップを使用する場合はOFFにする。 Bit14=cmapテーブルに関する値 Bit15=0を設定する |
unitsPerEm | 2 | 1emに対するunit数を指定する。16~16384の範囲を指定する |
created | 8 | 作成した日付。8バイトの国際標準表記 |
modified | 8 | 修正した日付。8バイトの国際標準表記 |
xMin | 2 | 全ての字形を納めることができるバウンディングボックス値 |
yMin | 2 | 全ての字形を納めることができるバウンディングボックス値 |
xMax | 2 | 全ての字形を納めることができるバウンディングボックス値 |
yMax | 2 | 全ての字形を納めることができるバウンディングボックス値 |
macStyle | 2 | スタイルを設定する |
lowestRecPPEM | 2 | 読み取り可能なピクセルサイズの最小値を設定する |
fontDirectionHint | 2 | 文字が進む方向を示す 0 =すべての方向を含む 1 =左から右のみ 2 =1と同様だが、方向性のないキャラクタを含む -1=右から左のみ -2=-1と同様だが、方向性のないキャラクタを含む |
indexToLocFormat | 2 | locaテーブルのフォーマットを指定する 0=shortオフセット, 1=longオフセット |
glyfDataFormat | 2 | 固定値【0】を指定する |
各項目の詳細については
head – Font header table (OpenType 1.9) – Typography | Microsoft Learn
をご参照下さい。
フォントを表示する際、どの項目を使用するかはアプリケーションに依存します。
特に表示に関係するのはunitsPerEm、flagsです。
unitsPerEmは、256,1024,2048など2の乗数が設定されることが推奨されています。
OS/2テーブルの【sTypoAscender】【sTypoDescender】と関連しており、この値の合計値を設定する場合が多いです。
flagsは1ビット毎に値を指定します。低ドットでも可読性のある文字を表示させるため、埋め込みビットマップフォントを利用する場合はBit13はOFFにするなど、使用環境を考慮して値を設定する必要があります。
ここまで、headテーブルについて説明しました。
TTFファイルのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。
カルチスタッフ