このセクションでは名前つきフェイスの属性に直接アクセスしたり変更する関数を説明します。
この関数は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
なら、この関数は新たに作成されたフレーム同様、既存のすべてのフレームにたいして属性をセットする。ただしある属性の値にたいして新たに作成されたフレームにも効果があるような手段でunspecified
に値をリセットしたい場合には、frameにnil
をセットしてこの関数を呼び出すことに加えてframeにt
、その属性の値にunspecified
(nil
ではない!)をセットしてこの関数を明示的に呼び出さなければならない。これは新たにフレームが作成される際のデフォルト属性はdefface
内のフェイスspecとマージされるためであり、新たに作成されたフレームのデフォルト属性にunspecified
をもつことによってdefface
をオーバーライドできなくなる。この関数にたいして上述した特別な呼び出しを行うことによって、defface
がオーバーライドされるように調整を行う。
以下のコマンドと関数は主として古いバージョンの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
に渡される。