1.182024
4.OS/2テーブル
こんにちは、カルチスタッフです。
前回、TTFファイルフォーマットのタグテーブルの概要についてお話ししました。
タブテーブルには、たくさんの種類がありますが、今回からはタグテーブルのうち、比較的構成が単純なテーブルをいくつかご紹介したいと思います。
はじめは、OS/2テーブルです。
OS/2テーブルはOS/2・Windows固有の情報を定義するテーブルです。
主な設定項目を一覧でご紹介します。
名前 | Byte数 | 説明 |
Version | 2 | テーブルバージョン(0~5のいずれかを指定する) |
xAvgCharWidth | 2 | 小文字アルファベット26文字+スペースの文字送り装置幅の平均を指定する。 |
usWeightClass | 2 | フォントの太さを表す。
windows.hで定義されているFW_NORMALやFW_BOLD等の値をとる。 |
usWidthClass | 2 | 高さに対する幅を指定する。 |
fsType | 2 | 字体の特徴と性質。フォントを他の文書(プリンタ、PDFなど)に埋め込むことを許可するかどうかの権限などを設定する。未定義ビットは0 |
ySubscriptXSize | 2 | 下つき文字(H_2Oの_2など)のための推奨されるピクセル幅サイズを指定する。 |
ySubscriptYSize | 2 | 下つき文字(H_2Oの_2など)のための推奨されるピクセル縦サイズを指定する。 |
ySubscriptXOffset | 2 | 下つき文字(H_2Oの_2など)のための推奨される水平面位置。 |
ySubscriptYOffset | 2 | 下つき文字(H_2Oの_2など)のための推奨される垂直面位置。 |
ySuperscriptXSize | 2 | 上つき文字(べき乗など)のための推奨されるピクセル幅サイズを指定する。 |
ySuperscriptYSize | 2 | 上つき文字(べき乗など)のための推奨されるピクセル縦サイズを指定する。 |
ySuperscriptXOffset | 2 | 上つき文字(べき乗など)のための推奨される水平面位置。 |
ySuperscriptYOffset | 2 | 上つき文字(べき乗など)のための推奨される垂直面位置。 |
yStrikeoutSize | 2 | 打ち消し線の幅を指定する。 |
yStrikeoutPosition | 2 | 基線に対する打ち消し線の位置を指定する。 |
sFamilyClass | 2 | フォントファミリーを分類する |
panose[10] | 1 | 次の10項目について設定する
ファミリータイプ、セリフスタイル、重み、プロポーション…プロポーショナルかどうか、 コントラスト、ストロークバリエーション、アームスタイル、レターフォーム、 中間ライン、高さ |
ulUnicodeRange[4] | 4 | フォントファイルに含まれるユニコードブロックか、範囲(言語)を指定する。
下位96ビットは、フォントファイルに含まれるユニコードブロックを指定する。 上位32ビットは、フォントファイルに含まれるキャラクタかスクリプトセットを指定する。 |
achVendID[4] | 1 | フォントベンダーのための識別子。予約語以外は好きな値を指定することができる。 |
fsSelection | 2 | フォントのスタイルを表す。 |
usFirstCharIndex | 2 | Cmapサブテーブルが、【PID:3】【EID:0か1】の値をとる場合の文字コードの最小値。
ほとんどの場合0x0020 |
usLastCharIndex | 2 | Cmapサブテーブルが、【PID:3】【EID:0か1】の値をとる場合の文字コードの最大値。
どの文字集合をサポートするかに依存する。 |
sTypoAscender | 2 | プラットフォームがMacの場合のアセンダ(基準線より上) の高さを指定する。 |
sTypoDescender | 2 | プラットフォームがMacの場合のディセンダ゙(基準線より下) の高さを指定する。 |
sTypoLineGap | 2 | 行間のスペースサイズ |
usWinAscent | 2 | プラットフォームがWinの場合のアセンダ(基準線より上) の高さを指定する。 |
usWinDescent | 2 | プラットフォームがWinの場合のディセンダ゙(基準線より下) の高さを指定する。 |
CodePage Range[2] | 4 | ファイルに含まれているコードページを指定する。 |
たくさんの設定項目がありますが、特に重要なのは、【sTypoAscender】【sTypoDescender】、【usWinAscent】【usWinDescent】、【ulUnicodeRange】【CodePage Range】などです。
Ascender、Descenderは、文字のデザインに大きく影響しますし、CodePageに正しい値が設定されていないと、アプリケーションで文字が表示されないなどの問題がおこります。
OS/2はフォント全体の表示に関わる設定をするテーブルと言えるでしょう。
ここまで、OS/2テーブルについて説明しました。
TTFファイルのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。
カルチスタッフ