Emacsが特定のテキストを表示する際、そのテキストの視覚的な外観は、異なるソースから描画されたフェイスによって決定されることがあります。これらのさまざまなソースが特定の文字に対して複数のフェイスを指定している場合、Emacsは各フェイスの属性を統合します。以下に、優先度の高い順にEmacsがフェイスを統合する順序を示します。
regionフェイスを用いてそれをハイライトします。The GNU
Emacs ManualのStandard
Facesを参照してください。
nil face
以外のプロパティを持つオーバーレイ内にある場合、Emacs はそのプロパティで指定されたフェイスを適用します。オーバーレイが mouse-face プロパティを持ち、マウスがオーバーレイに十分近い場合は、代わりに mouse-face プロパティで指定されたフェイスまたはフェイス属性を適用します。オーバーレイプロパティ を参照してください。
複数のオーバーレイが同じ文字を覆っている場合、優先度の高いオーバーレイが優先度の低いものを上書きします。オーバーレイを参照してください。
face または mouse-face プロパティが含まれている場合、Emacs
は指定されたフェイスとフェイス属性を適用します。特別な意味を持つプロパティを参照してください。(これが Font Lock
モードのフェイスが適用される仕組みです。Font Lock
モードを参照してください。)
mode-lineフェイスを適用します。選択されていないウィンドウのモードラインの場合、Emacsはmode-line-inactiveフェイスを適用します。ヘッダー行の場合、Emacsはheader-lineフェイスを適用します。タブ行の場合、Emacsはtab-lineフェイスを適用します。
before-string または after-string プロパティ(オーバーレイプロパティ
を参照)によるオーバーレイ文字列、あるいはディスプレイ文字列(その他のディスプレイ仕様 を参照)に由来し、その文字列に face または mouse-face
プロパティが含まれていないか、あるいはこれらのプロパティによって一部のフェイス属性が未定義のままであるものの、オーバーレイ/ディスプレイプロパティの影響を受けるバッファテキストがフェイスまたはそれらの属性を定義している場合、Emacs
は「基底」となるバッファテキストのフェイス属性を適用します。ただし、これはディスプレイマージンに表示される文字列には適用されず、それらは代わりに
margin フェイスをベースとして使用します(マージンへの表示 を参照)。
marginフェイスをベースとして使用するため、文字列自身のフェイスで指定されていない属性はすべてmarginフェイスから取得されます。
defaultフェイスの属性を適用します。
各ステージにおいて、フェイスに有効な :inherit 属性がある場合、Emacs は unspecified
値を持つあらゆる属性を、親フェイス(群)から対応する値が引き継がれたものとして扱います。フェイス属性
を参照してください。なお、親フェイス(群)が属性を未指定のままにする場合もあり、その場合、次のフェイスマージレベルにおいても属性は未指定のままとなります。