OpenType
読み:オープンタイプ
外語:OpenType
アウトラインフォント
(スケーラブルフォント)技術の一つ。
目次
概要
特徴
対応環境
仕様
基本仕様
構造
全体構造
必須テーブル
TrueType用テーブル
PostScript用テーブル
ビットマップグリフ用テーブル
Advanced Typographic Tables
その他OpenTypeテーブル
cmap
基本的な種類
異体字セレクター
概要
TrueType
の後継として
Adobe Systems
と
Microsoft
が共同で設計し、これに
Apple Computer
(現
Apple
)が賛同することで開発された。
基本的なファイル形式はTrueTypeフォントと同様だが、PostScriptフォント(のうちのType 1)も扱うことができるようになった。
但し、TrueTypeとType 1は技術的に異なるものであり、利用するにはそれぞれのラスタライザーが必要になる。
特徴
対応環境
Microsoft Windows
や
OS X
で採用されている。
Linux等ではまだ対応がないため、TrueTypeへのコンバーターが存在する。
OSがOpenTypeに対応をすると、従来のTrueTypeのみならず、
PostScript
用のフォントも利用可能となる。また、PostScriptプリンターがOpenTypeに対応しTrueTypeフォントのラスタライザーを搭載すれば、従来のType 1のみならずTrueTypeも利用可能になる。
仕様
基本仕様
主な
仕様
は次の通りである。
グリフは、TrueTypeは
B-スプライン曲線
、PostScriptは
スプライン曲線
で記述
1ファイルに収録可能なグリフ数は、65,535グリフ
1ファイルの最大サイズは4Gバイト
構造
全体構造
OpenTypeフォントファイルは、テーブルディレクトリから始まる。
12オクテットのオフセットテーブルがあり、次いでオフセットテーブルに書かれた数のぶんだけテーブルディレクトリエントリーがある。
テーブルディレクトリエントリーは、各4オクテット構造で、タグ、
チェックサム
、オフセット、長さ、と続く。タグがテーブルの種類を表わす。ディレクトリエントリーは、タグの昇順でソートして格納されなければならない。
必須テーブル
様々なテーブルがあるが、次が必須とされる。
cmap: character to glyph mapping
head: font header
hhea: horizontal header
hmtx: horizontal metrics
maxp: maximum profile
name: naming table
post: PostScript information
OS/2: OS/2 and Windows specific metrics
TrueType用だったglyfとlocaが必須から外されている。
以降は任意のテーブルである。
TrueType用テーブル
cvt: Control Value Table
fpgm: Font program
glyf: Glyph data
loca: Index to location
prep: CVT Program
PostScript用テーブル
CFF: PostScript font program (compact font format)
VORG: Vertical Origin
ビットマップグリフ用テーブル
EBDT: Embedded bitmap data
EBLC: Embedded bitmap location data
EBSC: Embedded bitmap scaling data
Advanced Typographic Tables
BASE: Baseline data
GDEF: Glyph definition data
GPOS: Glyph positioning data
GSUB: Glyph substitution data
JSTF: Justification data
その他OpenTypeテーブル
DSIG: Digital signature
gasp: Grid-fitting/Scan-conversion
hdmx: Horizontal device metrics
kern: Kerning
LTSH: Linear threshold data
PCLT: PCL 5 data
VDMX: Vertical device metrics
vhea: Vertical Metrics header
vmtx: Vertical Metrics
cmap
基本的な種類
フォントファイル内に格納される字形は
グリフ
といい、16ビットの一意の番号(グリフインデックス)で管理される。
実際に実用的に使うためには、グリフインデックスと一般の文字コードとの変換表が必要になるが、これがcmapである。複数の変換表を格納できるように、プラットフォームID、プラットフォーム特有符号化IDの二種類のIDで種類分け可能になっている。Microsoft Windowsの場合、次のようなものがある。最初の数字がプラットフォームID、プラットフォーム特有符号化IDである。
3‐0: Symbol
3‐1: Unicode BMP (UCS-2)
3‐2: ShiftJIS
3‐3: Big5
3‐4: PRC
3‐5: Wansung
3‐6: Johab
3‐7: (予約)
3‐8: (予約)
3‐9: (予約)
3‐10: Unicode UCS-4
TrueTypeが出来た当時のUnicodeと現在のUnicodeには大きな違いが生じており、Unicodeも16ビットでは収まらなくなった。ID=1は16ビットが前提に作られたテーブルであるので対応できない。
そこで、OpenTypeではTrueTypeにはないID=10が新たに作られている。
仕様書によれば、ID=1の対応は必須でBMPの文字はこれで提供され、BMP外の文字はID=10が必要になる、としている。
異体字セレクター
Unicodeには更なる問題として、
異体字セレクター
というものが登場した。これに関する情報も、新たなcmapのテーブルに情報を加えることで対応することになった。
プラットフォームID=0、エンコーディングID=5、フォーマット=14というテーブルに情報が格納される。これもTrueType 1.0 Revision 1.66には記載が無く、OpenTypeから追加された。
異体字セレクターが昇順でソートされてテーブル化され、それぞれに対してDefault UVS TableとNon-Default UVS Tableのオフセットが指定される。異体字セレクター対応のフォントを作る場合はDefault UVS Tableを使用してはならず、Non-Default UVS Tableを使用する。
Default UVS Tableは、Unicodeのベース文字とグリフIDのペアを並べただけのテーブルである。これが異体字セレクターごとに用意されることになる。
再検索