このセクションでは名前つきフェイスの属性に直接アクセスしたり変更する関数を説明します。
この関数はframe上のfaceにたいする属性attributeの値をリターンする。サポートされている属性についてはフェイスの属性See フェイスの属性を参照のこと。
frameが省略かnil
なら選択されたフレームを意味する(入力のフォーカスを参照)。frameがt
なら、この関数は新たに作成されるフレームにたいして指定された属性の値、すなわちフェイスのdefface
定義(フェイスの定義を参照)の中のフェイスspecを適用する前、またはface-spec-set
でセットしたspecの属性の値。。このattributeのデフォルト値は下記のset-face-attribute
を使用して何らかの値を指定していなければ通常はunspecified
。
inheritがnil
ならfaceにより定義される属性だけが考慮されるのでリターンされる値はunspecified
、または相対的な値かもしれない。inheritが非nil
ならfaceのattributeの定義が、:inherit
属性で指定されたフェイスとマージされる。しかしリターンされる値は依然としてunspecified
、または相対的な値かもしれない。inheritがフェイスかフェイスのリストなら、指定された絶対的な値になるまで結果はそのフェイス(1つ以上)と更にマージされる。
リターン値が指定されていて、かつ絶対的であることを保証するためにはinheritにたいしてdefault
の値を使用すること。(常に完全に指定される)default
フェイスとマージすることにより、すべての未指定や相対的な値は解決されるだろう。
たとえば
(face-attribute 'bold :weight) ⇒ bold
この関数はvalueがフェイス属性attributeの値として使用された際に相対的なら非nil
をリターンする。これはフェイスリスト内の後続のフェイス、または継承した他のフェイスが由来となる任意の値で完全にオーバーライドするのではなく、それが変更されるであろうことを意味する。
すべての属性にたいしてunspecified
は相対的な値。:height
にたいしては浮動小数点数と関数値も相対的である。
たとえば:
(face-attribute-relative-p :height 2.0) ⇒ t
この関数はfaceの属性のalistをリターンする。結果の要素は(attr-name . attr-value)
という形式の名前/値ペアー。オプション引数frameはリターンするべきfaceの定義をもつフレームを指定する。省略かnil
ならリターン値には新たに作成されるフレームにたいするfaceのデフォルト属性、すなわちフェイスのdefface
定義の中のフェイスspecを適用する前、またはface-spec-set
でセットしたspecの属性の値が記述される。。このattributeのデフォルト値は下記のset-face-attribute
を使用して何らかの値を指定していなければ通常はunspecified
。
value1がフェイス属性attributeにたいして相対的な値なら、基礎的な値value2とマージしてリターンする。それ以外の場合にはvalue1がフェイス属性attributeにたいして絶対的な値ならvalue1を変更せずにリターンする。
Emacsは通常は各フレームのフェイス属性を自動的に計算するために、各フェイスのフェイスspecを使用します(フェイスの定義を参照)。関数set-face-attribute
は特定またはすべてのフレームのフェイスに直接属性を割り当てることにより、この計算をオーバーライドできます。この関数は主として内部的な使用を意図したものです。
この関数はframeにたいするfaceの1つ以上の属性をセットする。この方法で指定された属性はfaceに属するフェイスspec(1つ以上)をオーバーライドする。サポートされている属性についてはフェイスの属性を参照のこと。
余分の引数argumentsはセットするべき属性と値を指定する。これらは(:family
や:underline
のような)属性名と値が交互になるように構成されていること。つまり、
(set-face-attribute 'foo nil :weight 'bold :slant 'italic)
これは属性:weight
をbold
、属性:slant
をitalic
にセットする。
frameがt
なら、この関数は新たに作成するフレームにデフォルトの属性をセットする。これらはdefface
によって指定された属性値を効果的にオーバーライドする。frameがnil
の場合には、この関数は既存のフレームすべてにたいして、新たに作成するフレームと同じように属性をセットする。
属性の値をリセットする、つまりそのフェイスが属性の値を独自に指定しないことを示すにはframeにnil
をセットしてこの関数を呼び出すことに加えて、更に属性にたいして特別な値であるunspecified
(nil
ではない!)、frame引数にt
をセットしてこの関数を呼び出す必要がある。これは新たにフレームが作成される際のデフォルト属性はdefface
内のフェイスspecとマージされるためであり、新たに作成されたフレームのデフォルト属性にunspecified
をもつことによってdefface
をオーバーライドできなくなる。この関数にたいして上述した特別な呼び出しを行うことによって、defface
がオーバーライドされるように調整を行う。
属性と値のペアーは最初に評価される:family
および:foundry
の属性以外は指定された順に評価されることに注意。これはもし特定の属性を2回以上指定すると、最後に指定した値が使用されること、更にある場合においては異なる属性順によって異なる結果が生成されるかもしれないことをも意味している。たとえば:weight
の前に:font
があると指定したフォントにウェイトの値が適用されるが、:font
の前に:weight
がある場合にはそのフェイスのカレントフォントにウェイトの値が適用されて、もしかしたらそのフォントで利用できるもっとも近いウェイトに丸められるかもしれない。
以下のコマンドと関数は主として古いバージョンのEmacsにたいする互換性のために提供されます。これらはset-face-attribute
を呼び出すことにより機能します。これらのframe引数にたいする値t
とnil
(や省略)はset-face-attribute
やface-attribute
の場合と同様に処理されます。コマンドがインタラクティブに呼び出されるとミニバッファーを使用して引数を読み取ります。
これらはそれぞれfaceの:foreground
属性、または:background
属性にcolorをセットする。
これはfaceの:stipple
属性にpatternをセットする。
faceのフォント関連の属性をfont
(文字列かフォントオブジェクト)の属性に変更する。font引数でアポートされるフォーマットについてはface-font-attributeを参照のこと。この関数はフェイスの:font
属性、および間接的に:family
、:foundry
、:width
、:height
、:weight
、:slant
の属性もそのフォントで定義された値にセットする。frameが非nil
なら、指定したフレームの属性だけを変更する。
これはfaceの:weight
属性にたいしてbold-pがnil
ならnormal、それ以外ならboldをセットする。
これはfaceの:slant
属性にたいしてitalic-pがnil
ならnormal、それ以外ならitalicをセットする。
これはfaceの:underline
属性にunderlineをセットする。
これはfaceの:inverse-video
属性にinverse-video-pをセットする。
これはフェイスfaceのフォアグラウンドカラーとバックグラウンドカラーを交換する。
これはfaceの:extend
属性にextendをセットする。
以下はフェイスの属性を調べる関数です。これらは主として古いバージョンのEmacsとの互換性のために提供されます。これらにたいしてframeを指定しなければ選択されたフレーム、t
なら新たなフレームにたいするデフォルトデータを参照します。フェイスがその属性にたいして何の値も定義していなければunspecified
がリターンされます。inheritがnil
ならそのフェイスにより直接定義された属性だけがリターンされます。inheritが非nil
ならそのフェイスの:inherit
属性により指定される任意のフェイス、inheritがフェイスまたはフェイスのリストなら指定された属性が見つかるまでそれらも考慮します。リターンされる値が常に指定された値であることを保証するためにはinheritに値default
を使用してください。
この関数は指定されたfaceが使用するフォント名をリターンする。
オプション引数frameが指定されたら、そのフレームのfaceのフォント名をリターンする。frameが省略かnil
ならデフォルトは選択されたフレーム。frameがt
なら、この関数は新たに作成されたフレームがfaceにたいして使用するデフォルトフォントについて報告する。
デフォルトではASCII文字表示用のフォントをリターンするが、frameがt
以外で3つ目のオプション引数characterが与えられた場合には、その文字にたいしてfaceが使用するフォント名をリターンする。
これらの関数はそれぞれフェイスfaceのフォアグラウンドカラーまたはバックグラウンドカラーを文字列としてリターンする。カラーが未指定ならをリターンする。
この関数はフェイスfaceのバックグラウンド点描パターンの名前、もしなければnil
をリターンする。
この関数はfaceの:weight
属性がnormalよりbold寄り(semi-bold
、bold
、extra-bold
、ultra-bold
のいずれか)なら非nil
、それ以外ならnil
をリターンする。
この関数はfaceの:slant
属性がitalic
かoblique
なら非nil
、それ以外ならnil
をリターンする。
この関数はフェイスfaceが非nil
の:underline
属性を指定すれば非nil
をリターンする。
この関数はフェイスfaceが非nil
の:inverse-video
属性を指定すれば非nil
をリターンする。
この関数はフェイスfaceが非nil
の:extend
属性を指定すれば非nil
をリターンする。inherit引数はface-attribute
に渡される。