次: , 前: Fontsets, 上: International


16.11 フォントセットの定義方法

Emacsはstandard-fontset-specの値に従って、 自動的に標準フォントセットを作ります。 フォントセットの名前はつぎのとおりです。

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

または、省略して`fontset-standard'です。

標準フォントセットのボールド、イタリック、ボールドイタリックの変種も 自動的に作られます。 それらの名前は、`medium'のかわりに`bold'、 `r'のかわりに`i'、あるいは、両方ともそのようになります。

リソース`Font'やオプション`-fn'で、 デフォルトのASCIIフォントを指定すると、 Emacsはそれから自動的にフォントセットを生成します。 これが、スタートアップフォントセットで、 その名前はfontset-startupです。 これは、フォント名のフィールド、foundryfamilyadd_styleaverage_widthを`*'で、 charset_registryを`fontset'で、 charset_encodingを`startup'で置き換えて得られた文字列を フォントセットの指定に使用します。

たとえば、Emacsをつぎのように起動します。

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

Emacsがつぎのフォントセットを生成して、 Xウィンドウの初期フレームに使います。

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

Xのリソース`Emacs.Font'で、 フォントセット名を実際のフォント名のように指定できます。 しかし、`Emacs*Font'のようなワイルドカードを使ったリソースに フォントセット名を指定しないように注意してください。 ワイルドカードを使った指定は、フォントセットを扱えないメニューのような、 他のさまざまな目的にも適用されます。

`Fontset-n'という名前のXのリソースを 使って追加フォントセットを指定できます。 ただし、nは0から始まる整数です。 リソースの値はつぎのような形式でなければなりません。

     fontpattern, [charsetname:fontname]...

fontpatternは、最後の2つのフィールドを除いて、 標準のXフォント名の形式でなければなりません。 最後の2つのフィールドは、`fontset-alias'の形式を持つべきです。

フォントセットには2つの名前、長い名前と短い名前があります。 長い名前はfontpatternです。 短い名前は`fontset-alias'です。 どちらの名前でもフォントセットを参照できます。

`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*-*

上のフォント指定に一致する中国語フォントがないかもしれません。 多くのXの配布には、familyフィールドが `song ti'か`fangsong ti'の中国語フォントだけが含まれています。 そういった場合、`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です。 フォントセットを作るために、この関数を明示的に呼ぶこともできます。

Xにおけるフォントの命名法について詳しくは、See Font X