« 2006年05月06日 | メイン | 2006年05月08日 »

2006年05月07日

PDFとフォント (26) フォントファイルとしてのOpenType

次にOpenTypeのフォントファイルとしての主な特徴について整理しておきます。

1.グリフのアウトライン記述形式
OpenTypeのグリフアウトラインは、TrueTypeアウトラインと、PostScriptアウトラインのどちらかを使用できます。PostScriptアウトラインは、CFF/Type2形式です。
なお、アウトライン形式に加えて、ビットマップのグリフを含めることもできます。

OpenTypeフォント・ファイルの拡張子は次のようにつけます。
・TrueTypeアウトラインの場合:.OTF、または、.TTF(過去のシステムでも使用可能にしたいとき)
・TrueTypeコレクションの場合:常に.TTC
・PostScriptアウトラインのみを含む場合:.OTF

2.cmapテーブル
フォントを使用するアプリケーション・OSで使う文字コードからグリフ番号(GID)への対応表をcmapと言います。TrueTypeと同じものと思います(推測)。

cmapは、一つのフォントファイルに複数のテーブル(cmapサブテーブル)を持つことができます。

サブテーブルは、プラットフォームID(Windows:3、Macintosh:1)と、プラットフォーム毎の符号化方式(2バイトのUnicode:1、4バイトのUnicode:10など)の順で並べます。フォントファイルに様々なOS別のサブテーブルを用意することで、一つのOpenTypeフォントをマルチ・プラットフォームで使えることになります。

cmapサブテーブルは7種類(Format:0, 2, 4, 8, 10, 12)あり、各サブテーブルの先頭に該当する種類がセットされます。

Unicodeサポートについて
UnicodeからGIDへのcmapサブテーブルは、次の3種類が使えます。
・Format4:[U+D800 - U+DFFF] (サロゲートペア)以外のUnicode領域をサポートする文字コードからGIDへの対応表(Microsoftの標準)
・Format8:16ビットと32ビット混在。サロゲートペアの文字コードは32ビット。それ以外が16ビット。
・Format12:32ビット固定長(UCS-4)の表。(サロゲートペアをサポートする時のMicrosoftの標準)

なお、サロゲートペアをサポートできるのはWindows2000以降ですが、サロゲートペアをサポートするOpenTypeフォントは、過去のOSでも使えるようにするためFormat4のcmapサブテーブルも用意しておかなければなりません。

【注意】
このように、cmapはUnicodeの全領域をサポートできそうに見えますが、OpenTypeのひとつのファイルに収容できるglyphの数は64k(65,536個)とされています。従って、UnicodeV4で定義されている全文字をひとつでサポートするOpenTypeフォントを作ることはできません。Arial Unicode MSの最新Unicode全文字版はできないということになりますね。

※参考資料
OpenType specification
特に
cmap - Character To Glyph Index Mapping Table

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック