Emacsがグラフィカルディスプレイ上に文字を描画する前に、その文字に使用するフォントを選択する必要があります34。The GNU Emacs
ManualのFontsを参照してください。通常、Emacsはその文字に割り当てられたフェイス、具体的にはフェイス属性:family、:weight、:slant、および:widthに基づいてフォントを自動的に選択します(Face
Attributesを参照)。フォントの選択は表示する文字にも依存し、フォントによっては表示できる文字が限られている場合があります。利用可能なフォントの中に要件に完全に合致するものがない場合、Emacsは最も近い適合フォントを探します。このセクションの変数は、Emacsがこの選択を行う方法を制御します。
指定したフォントファミリーが存在しない場合、この変数で代替となるフォントファミリーを指定します。各要素は以下の形式とする必要があります。
(family alternate-families...)
family が指定されているが存在しない場合、Emacs は alternate-families で指定された他のファミリーを、存在するものが見つかるまで一つずつ試行します。
希望するすべての書体属性(:width、:height、:weight、:slant)に完全に一致するフォントがない場合、この変数は、最も近い一致フォントを選択する際にこれらの属性をどの順序で考慮すべきかを指定します。値は、重要度の高い順にこれら4つの属性記号を並べたリストである必要があります。デフォルトは(:width :height :weight :slant)です。
フォント選択では、まずリスト内の第1属性に対して利用可能な最適な候補を探し、次にその中で最適なフォントの中から第2属性に対する最適な候補を探し、という手順を繰り返します。
属性 :weight および :width
は、normal を中心とした範囲の記号値を持ちます。より極端な(normal から遠い)一致は、それほど極端でない(normal
に近い)一致よりもある程度優先されます。これは、可能な限り、非正常な顔が正常な顔と対比されるように設計されています。
この変数が影響を及ぼすケースの一例として、デフォルトフォントにイタリック体の対応フォントがない場合が挙げられます。デフォルトの順序では、italic フェイスはデフォルトに近い非イタリック体のフォントを使用します。しかし、:slant を :height
より前に配置すると、italic
フェイスは、たとえ高さが完全ではなくても、イタリック体のフォントを使用するようになります。
この変数を使用すると、指定したレジストリが存在しなかった場合に、試行する代替フォントレジストリを指定できます。各要素は以下の形式である必要があります:
(registry alternate-registries...)
registry が指定されているにもかかわらず利用できない場合、Emacs は alternate-registries で指定された他のレジストリを、存在するレジストリが見つかるまで一つずつ試行します。
Emacsはスケーラブルフォントを利用できますが、デフォルトでは使用しません。
この変数は、どのスケーラブルフォントを使用するかを制御します。デフォルト値である nil
は、スケーラブルフォントを使用しないことを意味します。t
は、テキストに適していると思われる任意のスケーラブルフォントを使用することを意味します。
それ以外の場合、値は正規表現のリストである必要があります。その際、フォント名がリスト内のいずれかの正規表現に一致すれば、スケーラブルフォントが使用可能になります。例えば、
(setq scalable-fonts-allowed '("iso10646-1$"))
レジストリ iso10646-1 でスケーラブルフォントの使用を可能にします。
この変数は、特定の面に対するスケーリングを指定します。その値は、次のような形式の要素からなるリストである必要があります。
(fontname-regexp . scale-factor)
fontname-regexp が使用予定のフォント名に一致する場合、係数 scale-factor に基づいて、より大きい類似フォントを選択するよう指定します。特定のフォントが、公称の高さや幅から想定されるサイズよりも大きかったり小さかったりする場合に、この機能を用いてフォントサイズを正規化できます。