TrueType
読み:トゥルータイプ
外語:TrueType
アウトラインフォント
(スケーラブルフォント)技術の一つ。
目次
概要
特徴
対応環境
曲線
仕様
基本仕様
構造
cmap
基本的な種類
異体字セレクター
概要
Apple Computer
が設計し
Microsoft
と共同で開発した。
Adobe Systems
の
PostScript
に対抗する意図があった。
Mac OS
のSystem 7(漢字TALK 7)と、
Windows 3.1
から採用された。
後継は
OpenType
で、PostScriptとTrueTypeを統一のファイル形式で扱えるようにした。
特徴
対応環境
元々は
Mac OS
と
Microsoft Windows
で使われるために開発されたが、広く普及したために多くのフォントが開発され、その資源は非常に大きなものとなった。
そこで前記の二環境以外の環境、例えば
UNIX
の
X Window System
でも利用できるよう、
VFlib
や
X-TT
といったソフトウェアが開発されている。
また国産OSとして有名な
BTRON
「
超漢字
」もTrueTypeに対応している。
曲線
TrueTypeフォントは、
ベジェ曲線
で記述されている
PostScript
フォントと違い、
スプライン曲線
で記述されている。そのためファイルあたりのサイズが2割ほど大きい。
また、Mac OSのQuickDrawはTrueTypeフォントを600dpiまでしか
ラスタライズ
できず、さらにPostScript変換にかかる演算が膨大なため、クリエイターや印刷会社からは嫌われている。
しかしMac OSがPostScriptフォントの
レンダリング
に対応せず、Microsoft WindowsやX Window Systemでも対応していない実状から、TrueTypeフォントが普及している。
仕様
基本仕様
主な
仕様
は次の通りである。
グリフは
B-スプライン曲線
で記述
1ファイルに収録可能なグリフ数は、65,535グリフ
1ファイルの最大サイズは4Gバイト
構造
TrueTypeフォントファイルは、テーブルディレクトリから始まる。
12オクテットのオフセットテーブルがあり、次いでオフセットテーブルに書かれた数のぶんだけテーブルディレクトリエントリーがある。
テーブルディレクトリエントリーは、各4オクテット構造で、タグ、
チェックサム
、オフセット、長さ、と続く。タグがテーブルの種類を表わす。ディレクトリエントリーは、タグの昇順でソートして格納されなければならない。
様々なテーブルがあるが、次が必須とされる。
cmap: character to glyph mapping
glyf: glyph data
head: font header
hhea: horizontal header
hmtx: horizontal metrics
loca: index to location
maxp: maximum profile
name: naming table
post: PostScript information
OS/2: OS/2 and Windows specific metrics
TrueType 1.0 Revision 1.66時点で、次のオプションテーブルが定義されている。
cvt: Control Value Table
EBDT: Embedded bitmap data
EBLC: Embedded bitmap location data
EBSC: Embedded bitmap scaling data
fpgm: font program
gasp: grid-fitting and scan conversion procedure (grayscale)
hdmx: horizontal device metrics
kern: kerning
LTSH: Linear threshold table
prep: CVT Program
PCLT: PCL5
VDMX: Vertical Device Metrics table
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
TrueTypeが出来た当時のUnicodeと現在のUnicodeには大きな違いが生じており、Unicodeも16ビットでは収まらなくなった。ID=1は16ビットが前提に作られたテーブルであるので対応できない。
BMP外の文字はID=10となるが、これはTrueTypeの仕様にはなく、後継OpenTypeでの拡張となっている。
異体字セレクター
Unicodeには更なる問題として、
異体字セレクター
というものが登場した。これに関する情報も、新たなcmapのテーブルに情報を加えることで対応することになった。
但しこれもTrueTypeの仕様にはなく、後継OpenTypeでの拡張となっている。
再検索