XFree86 のフォントについて : 背景知識と用語
Previous: XFree86 のフォントについて
Next: 新しいフォント

1. 背景知識と用語

1.1. 文字とグリフ

文字(character)は記述の体系における抽象的な単位です。 文字の例としては、ラテン文字の大文字の A やアラビア文字の jim, dingbat black scissors 等があります。

グリフ(glyph)は、ウィンドウシステムで表示する時やプリンタで印刷す るときに一つまたは複数の文字を表す形です。

グリフはほとんどの場合文字と対になっていますが、この対応は――一般的に は――一対一ではありません。例えば、一つのフォントが 色々な形の大文字の A を持っていることがありますし、 一つの合字 fi が二つの文字 f, i に対応していることがあ ります。

符号化文字集合(coded character set)は文字の集合と 整数のコード――コードポイント(codepoint)――から文字への対応を組 み合わせたものです。符号化文字集合の例としては US-ASCII, ISO 8859-1, KOI8-R, JIS X 0208(1990) があります。

符号化文字集合では、文字を指示するのに 8 ビット整数を使う必要はありま せん。古いメインフレーム機の多くは 6 ビットの文字集合を使っていました し、(漢字など)の表意文字を表すには 16 ビット(あるいはそれ以上)の 文字集合が必要です。

1.2. フォントファイル、フォント、XLFD

昔の写植工は書体(typeface)ファウント(fount) という言葉を使っていました(デジタル「フォント」と区別するため、昔の 英国式の表記の「ファウント」を使っています)。書体は Time Italic といった特定のスタイルやデザインのことであり、ファウントは 指定された書体を指定された大きさで鉛で鋳造したものです。

デジタルフォントはフォントファイルの中に入っています。 フォントファイルの中には指定された書体のグリフを生成するのに必要な全て の情報があり、フォントファイルを使うアプリケーションは任意の順序で グリフ情報にアクセスできます。

デジタルフォントにはビットマップデータを持っているものがあります。 これはビットマップフォントと呼ばれます。グリフ形状の数学表現を持っ ているフォントもあり、これはスケーラブルフォントと呼ばれます。 スケーラブルフォントファイルでよく使われるフォーマットには、 Type 1 (間違って ATM フォントPostScript フォント と呼ばれることもあります), Speedo, TrueType があります。

デジタルフォント内のグリフデータには、何らかの方法でインデックスを付け る必要があります。その方法はフォントファイルのフォーマットごとに違いま す。Type 1 フォントの場合は、グリフはグリフ名で識別されます。 TrueType フォントの場合は、いくつかあるインデックス付けの方法のうちの どれか(普通は後述の Unicode)を使って、グリフに整数値のインデックスが付 けられます。

X11 システムはフォントファイル内のデータを使って フォントインスタンスを生成します。これは指定されたエンコーディング に従ってインデックス付け、指定されたサイズであるグリフを集めたものです。 X11 のフォントインスタンスは X 論理フォント記述(XLFD, X Logical Font Description)と呼ばれる 記法で指定します。XLFD はダッシュ(`-')で始まり、 ダッシュで区切られた 14 個のフィールドを組み合わせたものです。 例:

-adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1
特に注目すべきなのは最後の二つのフィールドの `iso8859-1' です。 これはフォントインスタンスのエンコーディングを示します。

1.3. Unicode

Unicode (http://www.unicode.org) は、全てのスクリプト (現在のものも歴史的なものも含む)の文字を一意に区別できることを目的とし た符号化文字集合です。Unicode はグリフのエンコード方法と銘打って 設計されたわけではありませんが、そのように使える場合もよくあります。

Unicode はオープンな文字集合です。つまり Unicode への コードポイントの割り当てはいつでも追加できます(ただし、一度割り当てを 行うと、割り当てを変えることはできません)。そのため、Unicode の フォントはであり、Unicode の文字レジストリの一部についての グリフしか定義されていません。

Unicode 規格は ISO 10646 と並行して定義されました。 2 つの規格における割り当ては常に同じなので、この文書では ``Unicode'' と ``ISO 10646'' という用語を同じものとして扱います。

Unicode でエンコードしたフォントを X11 で使うときは、XLFD の 最後の 2 つのフィールドに `iso10646-1' を設定すべきです。


XFree86 のフォントについて : 背景知識と用語
Previous: XFree86 のフォントについて
Next: 新しいフォント