このセクションでは名前つきフェイスの属性に直接アクセスしたり変更する関数を説明します。
この関数は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に渡される。