ブログ

6.headテーブル

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

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

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

headテーブルも、OS/2テーブルと同じく、フォント全体の表示に関する項目を設定します。

名前Byte数説明
Version4テーブルバージョン
fontRevision4フォントメーカのための領域
checkSumAdjustment4チェックサム。 フォント全体をULONGに分割し、個々の値の合計をだす。 それに0xB1B0AFBAを足したもの。
magicNumber40x5f0f3cf5をセットする
flags2Bit0=ベースラインが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を設定する
unitsPerEm21emに対するunit数を指定する。16~16384の範囲を指定する
created8作成した日付。8バイトの国際標準表記
modified8修正した日付。8バイトの国際標準表記
xMin2全ての字形を納めることができるバウンディングボックス値
yMin2全ての字形を納めることができるバウンディングボックス値
xMax2全ての字形を納めることができるバウンディングボックス値
yMax2全ての字形を納めることができるバウンディングボックス値
macStyle2スタイルを設定する
lowestRecPPEM2読み取り可能なピクセルサイズの最小値を設定する
fontDirectionHint2文字が進む方向を示す
0 =すべての方向を含む
1 =左から右のみ
2 =1と同様だが、方向性のないキャラクタを含む
-1=右から左のみ
-2=-1と同様だが、方向性のないキャラクタを含む
indexToLocFormat2locaテーブルのフォーマットを指定する 0=shortオフセット, 1=longオフセット
glyfDataFormat2固定値【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ファイルのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。

カルチスタッフ

関連記事

カルチ発行書籍

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