Next: , Previous: , Up: 国際化文字セットのサポート   [Contents][Index]


22.14 フォントセットの定義

XでEmacsを実行している場合、Emacsはstandard-fontset-specの値により、スタンダードフォントセットを作成します。このフォントセットの名前は、

-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard

または単に短く‘fontset-standard’です。

GNUstep、およびmacOSではスタンダードフォントセットは、ns-standard-fontset-specの値を使って作成され、MS Windowsではw32-standard-fontset-specの値を使って作成されます。

スタンダードフォントセットのボールド、イタリック、ボールドイタリックなどの変種も自動的に作成されます。これらの変種の名前には‘medium’のかわりに‘bold’、または‘r’のかわりに‘i’、またはその両方が使われます。

Emacsは‘Font’リソース、または‘-fn’引数で指定した任意のデフォルトASCIIフォント、またはEmacsが起動時に見つけたデフォルトフォントにもとづいて、フォントセットを自動的に作成します。これがスタートアップフォントセット(startup fontset)で、名前はfontset-startupです。Emacsはcharset_registryフィールドを‘fontset’、charset_encodingフィールドを‘startup’で置き換えてフォントセットを生成して、その置き換えた文字列をフォントセットの指定に用います。

たとえば以下の形式でEmacsを起動した場合、

emacs -fn "*courier-medium-r-normal--14-140-*-iso8859-1"

Emacsは以下のフォントセットを生成して、それをXウィンドウの初期フレームに使用します:

-*-courier-medium-r-normal-*-14-140-*-*-*-*-fontset-startup

スタートアップフォントセットは、そのフォントでサポートされているすべての文字にたいして指定したフォントか、異なるregistryまたはencodingのフォントを使用し、それ以外の文字は‘fontset-default’にフォールバックして表示するでしょう。

Xリソースの‘Emacs.Font’では、フォントセット名を実際のフォント名のように指定できます。しかし‘Emacs*Font’のようなワイルドカードを使ったリソースにフォントセット名を指定しないように注意してください — ワイルドカードを使った指定は、メニューのようなフォントセットを処理できないものも含めて、 他のさまざまな目的にも適用されます。Xのオプションとリソースを参照してください。

Fontset-n’という名前のXリソースを使って、追加のフォントセットを指定できます。ここでnは0から始まる整数です。リソースの値はつぎのような形式です:

fontpattern, [charset:font]…

ここでfontpatternは、最後の2つのフィールドを除いて、標準のXフォント名の形式です(前のfontset-startupの例を参照)。最後の2つのフィールドは、‘fontset-alias’の形式をもつべきです。

すべてのフォントセットには2つの名前、長い名前と短い名前があります。長い名前はfontpatternです。短い名前は‘fontset-alias’で、これは長い名前の最後の2つのフィールドです(たとえば、スタートアップ時に自動的に作成されるフォントセットは‘fontset-startup’)。どちらの名前でもフォントセットを参照できます。

charset:font’という構成は、ある文字セットにたいして、(このフォントセットでは)どのフォントを使用するかを指定します。ここでcharsetは、文字セットの名前で、fontはその文字セットに使用するフォントです。1つのフォントセットの定義の中で、この構成を何度でも使用できます。

他の文字セットにたいしては、Emacsはfontpatternにもとづいて選択します。これは文字セットを記述する値で‘fontset-alias’を置き換えます。ASCII文字フォントにたいしては、‘fontset-alias’を‘ISO8859-1’で置き換えます。

これに加えて、複数の連続するフィールドがワイルドカードの場合、Emacsはそれらを1つのワイルドカードにまとめます。これは、オートスケールされたフォントの使用を避けるためです。大きいフォントをスケーリングしたフォントは編集に適しておらず、小さいフォントをスケーリングしたフォントも同様です。なぜならEmacsがそうするように、もともと小さなフォントを使うほうがよいからです。

したがって、fontpatternが以下の場合、

-*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24

ASCII文字にたいするフォント指定は、以下のようになるでしょう:

-*-fixed-medium-r-normal-*-24-*-ISO8859-1

そしてChinese GB2312文字にたいするフォント指定は、以下のようになるでしょう:

-*-fixed-medium-r-normal-*-24-*-gb2312*-*

上記のフォント指定に一致するChineseフォントがないかもしれません。ほとんどのXディストリビューションには、familyフィールドが‘song ti’か‘fangsong ti’のChineseフォントだけが含まれています。そのような場合、‘Fontset-n’をつぎのように指定します:

Emacs.Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24,\
        chinese-gb2312:-*-*-medium-r-normal-*-24-*-gb2312*-*

そうするとChinese GB2312の文字を除くフォント指定では、familyフィールドが‘fixed’となり、Chinese GB2312の文字に対するフォント指定では、familyフィールドが‘*’となります。

フォントセットのリソース値を処理してフォントセットを作る関数は、create-fontset-from-fontset-specと呼ばれます。フォントセットを作るために、この関数を明示的に呼ぶこともできます。

フォントの命名についての詳細は、フォントを参照してください。