Emacsがグラフィカルなディスプレイ上で文字を描画可能になる前に、まずその文字にたいするフォント(font)を選択しなければなりません31。Fonts in The GNU
Emacs
Manualを参照してください。Emacsは通常はその文字に割り当てられたフェイス、特にフェイス属性:family
、:weight
、:slant
、:width
(フェイスの属性を参照)にもとづいて自動的にフォントを選択します。フォントの選択は表示される文字にも依存します。表示できるのは文字セットが限定されているフォントもいくつかあります。利用可能なフォントがこの要件を完全に満たさなければEmacsはもっとも近いフォント(closest
matching font)を探します。このセクション内の変数はEmacsがこの選択を行う方法を制御します。
あるfamilyが指定されたが存在しなければ、この変数は試みるべき代替えのフォントファミリーを指定する。各要素は以下の形式をもつ:
(family alternate-families...)
familyが指定されたが利用できなければ、Emacsはalternate-familiesで与えられるファミリーで存在するものが見つかるまで1つずつファミリーを試みる。
希望するすべてのフェイス属性(:width
、:height
、:weight
、:slant
)に完全にマッチするフォントが存在しなければ、この変数はもっとも近いフォントの選択時に考慮すべきこれらの属性の順序を指定する。値はこれらの属性シンボルを重要度降順で含むリストであること。デフォルトは(:width
:height :weight :slant)
。
フォント選択はまずこのリスト内の最初の属性にたいして利用可能な最適マッチを探す。その後に、この方法で最適なフォントの中から2つ目の属性にたいして最適なマッチを検索、...のように選択を行う。
属性:weight
と:width
はnormal
を中心とする範囲のようなシンボリック値をもつ。より極端(normal
から離れた)なマッチは、より極端ではない(normal
に近い)マッチより幾分優先される。これは可能なかぎり非normalなフェイスが、normalなフェイスとは対照的になることを保証するようにデザインされている。
この変数が違いを生むケースの例はデフォルトフォントに等価なイタリックがない場合である。デフォルトの順ではitalic
フェイスはデフォルトのフォントに類似した非イタリックのフォントを使用するだろう。しかし:height
の前に:slant
を配置すると、italic
フェイスはたとえheightが同じでなくともイタリックフォントを使用するだろう。
この変数はregistryが指定されたがそれが存在しない場合に試みるべき代替えのフォントレジストリーを指定する。各要素は以下の形式をもつ:
(registry alternate-registries...)
registryが指定されたが利用できなければ、Emacsはalternate-registries内で存在するレジストリーが見つかるまで他のレジストリーを1つずつ試みる。
Emacsがスケーラブルフォントを使用するようにできますがデフォルトではそれらを使用しないようになっています。
この変数はどのスケーラブルフォントを使用するかを制御する。値nil
(デフォルト)はスケーラブルフォントを使用しないことを意味する。t
はそのテキストにたいして適切と思われる任意のスケーラブルフォントを使用することを意味する。
それ以外なら値は正規表現のリストであること。その場合には名前がこのリスト内の正規表現にマッチする任意のスケーラブルフォントの使用が有効になる。たとえば、
(setq scalable-fonts-allowed '("iso10646-1$"))
これはレジストリーがiso10646-1
のようなスケーラブルフォントの使用を可能にする。
この変数は特定のフォントにたいするスケーリングを指定する。値は以下の形式の要素をもつリストであること
(fontname-regexp . scale-factor)
使用しようとするフォントの名前がfontname-regexpにマッチする場合には、これはファクターscale-factorに対応した同様な大きさのフォントの選択を指示する。特定のフォントが提示する通常のheightやwidthが大きい、または小さい場合にフォントサイズを正規化するためにこの機能を使用できるだろう。