Next: , Up: フェイス   [Contents][Index]


41.12.1 フェイスの属性

フェイス属性(Face attributes)は、フェイスの視覚的外観を決定します。以下はすべてのフェイス属性と、それらの可能な値と効果に関するテーブルです。

以下の値とは別に各フェイス属性は値unspecifiedをもつことができます。この特殊な値はフェイスがその属性を直接指定しないことを意味します。unspecified属性はEmacsにかわりに親フェイス(以下の:inherit属性の記述を参照)を参照して、それに失敗したら基礎フェイス(フェイスの表示を参照)を参照することを指示します(ただしdeffaceにおいてunspecifiedは有効な値ではない)。

フェイスの属性としてresetという値をもつこともできます。これはdefaultフェイスの相当する属性を意味する特別な値です。

defaultフェイスではすべての属性を明示的に指定しなければならずスペシャル値resetは使用できません。

これらの属性のいくつかは特定の種類のディスプレイにおいてのみ意味があります。ディスプレイが特定の属性を処理できなければ、その属性は無視されます。

:family

フォントファミリー名(文字列)。フォントファミリーに関する詳細はFonts in The GNU Emacs Manualを参照のこと。関数font-family-list (以下参照)は利用可能なファミリー名のリストをリターンする。

:foundry

:family属性により指定されるフォントファミリーにたいするフォントfoundry (文字列)。Fonts in The GNU Emacs Manualを参照のこと。

:width

相対的な文字幅。これはシンボルultra-condensedextra-condensedcondensedsemi-condensednormalregularmediumsemi-expandedexpandedextra-expandedultra-expandedのいずれかであること。

:height

フォントの高さ。もっともシンプルなケースでは1/10ポイントを単位とする整数。

値には基礎フェイス(underlying face)にたいして相対的に高さを指定する浮動小数点数、または関数も指定できる(フェイスの表示を参照)。浮動小数点数は基礎フェイスの高さをスケーリングする量を指定する。関数値は基礎フェイスの高さを単一の引数として呼び出されて、新たなフェイスの高さをリターンする。関数が整数を引数として渡された場合には整数をリターンしなければならない。

デフォルトフェイスの高さは整数を使用して指定しなければならない。浮動小数点数や関数は受け入れられない。

:weight

フォントのweight。シンボルultra-boldextra-boldboldsemi-boldnormalsemi-lightlightextra-lightultra-light (太字から細字順)のいずれか。可変輝度テキストをサポートするテキスト端末では、normalより大なweightはより高輝度、小なweightはより低輝度で表示される。

:slant

フォントのslant。シンボルitalicobliquenormalreverse-italicreverse-obliqueのいずれか。可変輝度テキストをサポートするテキスト端末ではslantされたテキストはhalf-brightで表示される。

:foreground

フォアグラウンドカラー(文字列)。値にはシステム定義済みカラー、または16進カラー仕様を指定できる。カラー名を参照のこと。白黒ディスプレイでは特定のグレー色調が点描パターンで実装されている。

:distant-foreground

代替えのフォアグラウンドカラー(文字列)。これは:foregroundと似ているが、使用されるであろうフォアグラウンドカラーがバックグラウンドカラーに近いときのみフォアグラウンドカラーとして使用される点が異なる。これはたとえばテキストをマーク時(リージョンフェイス)に有用。そのテキストがリージョンフェイスとして可視なフォアグラウンドをもつ場合には、そのフォアグラウンドが使用される。フォアグラウンドがリージョンフェイスのバックグラウンドに近ければ、テキストを可読にするために:distant-foregroundが使用される。

:background

バックグラウンドカラー(文字列)。値にはシステム定義済みカラー、または16進カラー仕様を指定できる。カラー名を参照のこと。

:underline

文字にアンダーラインを引くべきか否か、およびその方法。:underline属性として可能な値は以下のとおり:

nil

アンダーラインを引かない。

t

そのフェイスのフォアグラウンドカラーでアンダーラインを引く。

color

文字列colorで指定されたカラーでアンダーラインを引く。

(:color color :style style :position position)

colorは文字列、またはそのフェイスのフォアグラウンドカラーを意味するシンボルforeground-color。属性:colorの省略はフェイスのフォアグラウンドカラーの使用を意味する。styleは直線を意味するline、または波線を意味するwaveいずれかのシンボルであること。属性:styleの省略は直線を意味する。positionが非nilの場合には、アンダーラインをベースラインではなく、そのテキストのディセントに表示することを意味する。数値の場合には、ディセントの上方何ピクセルにアンダーラインを表示するかを指定する。

:overline

文字にオーバーラインを引くべきか否か、およびそのカラー。値がtならフェイスのフォアグラウンドカラーを使用してオーバーラインを引く。値が文字列ならそのカラーを使用してオーバーラインを引く。値nilはオーバーラインを引かないことを意味する。

:strike-through

文字に取り消し線を引くべきか否か、およびそのカラー。値は:overlineで使用される値と同じ。

:box

文字周囲に枠(box)を描画するか否か、そのカラー、枠線の幅、および3D外観。以下は:boxの可能な値と意味:

nil

枠を描画しない。

t

幅1のフォアグラウンドカラーで枠線を描画する。

color

幅1のカラーcolorで枠線を描画する。

(:line-width (vwidth . hwidth) :color color :style style)

このフォームのようなplistによって、枠(box)に関するすべての側面を明示的に指定できる。このplistの任意の要素は省略できる。

vwidthhwidthの値ははそれぞれ、垂直および水平方向に描画する線幅を指定する。デフォルトは(1 . 1)。負の水平または垂直幅-nは、背後にあるテキスト文字の高さや幅の増加を避けるために、テキストスペースを占める幅nの線の描画を意味する。リストのかわりに簡素化のために単一の数値nを指定でき、この場合には((abs n) . n)を指定したのと等しい。

colorの値は描画するカラーを指定する。デフォルトは3D枠線とflat-buttonではフェイスのバックグラウンドカラー、それ以外の枠線ではフェイスのフォアグラウンドカラー。

styleの値は3D枠線を描画するか否かを指定する。released-buttonなら押下された3Dボタンのような外観、pressed-buttonなら押下されていない3Dボタンのような外観、nilflat-button、または省略なら2D枠線が使用される。

もしも周辺のテキストもフェイス属性:boxをもっていて、バッファーテキストではなくテキストプロパティdisplayを通じて表示された文字にフェイス属性:boxを使用する場合には特別な配慮が適用されるかもしれない。テキストを置換するディスプレイ仕様を参照のこと。

:inverse-video

文字が反転表示されて表示されるべきか否か。値はt (反転表示する)かnil (反転表示しない)のいずれか。

:stipple

バックグラウンドの点描(ビットマップ)。

値には文字列を指定できる。外部形式Xビットマップデータを含むファイルの名前であること。ファイルは変数x-bitmap-file-pathにリストされるディレクトリー内で検索される。

かわりに(width height data)という形式のリストによりビットマップで直接値を指定できる。ここでwidthheightはピクセル単位によるサイズ、dataは行単位でビットマップのrawビットを含む文字列。各行は文字列内で連続する(width + 7) / 8バイトを占める(最善の結果を得るためにはユニバイト文字列であること)。これは各行が常に少なくとも1バイト全体を占めることを意味する。

値がnilなら点描パターンを使用しないことを意味する。

これは特定のグレー色調を処理するために自動的に使用されるので、通常はstipple属性のセットは必要ない。

:font

そのフェイスの表示に使用されるフォント。値はフォントオブジェクトかフォントセットであること。フォントオブジェクトならASCII文字の表示用フェイスに使用されるフォントを指定する。フォントオブジェクト、フォントスペース、フォントエンティティーに関する情報は低レベルのフォント表現、フォントセットに関する情報はフォントセットを参照のこと。

set-face-attributeset-face-font (フェイス属性のための関数を参照)を使用してこの属性を指定する際にはフォントspec、フォントエンティティー、または文字列を与えることもできる。Emacsはそのような値を適切なフォントオブジェクトに変換して、実際の属性値としてそのフォントオブジェクトを格納する。文字列を指定する場合には、その文字列のコンテンツはフォント名であること(Fonts in The GNU Emacs Manualを参照)。フォント名がワイルドカードを含むXLFDなら、Emacsはそれらのワイルドカードに最初にマッチするフォントを選択する。この属性の指定により:family:foundry:width:height:weight:slantの属性値も変更される。

:inherit

属性を継承するフェイス名、またはフェイス名のリスト。継承フェイス由来の属性は基礎フェイスより高い優先度で、基礎フェイスの場合と同じような方法でマージされる(フェイスの表示を参照)。継承元のフェイスがunspecifiedならEmacsは:inherit属性を決してマージしないのでnilと同様に扱われる。フェイスのリストが使用された場合には、リスト内先頭側フェイスの属性が末尾側フェイスの属性をオーバーライドする。

:extend

そのフェイスが行末を超えて拡張されるか、および行末とウィンドウのエッジの間の空スペースの表示に影響を与えるかどうか。値は行末とウィンドウのエッジの間の空スペースの表示にそのフェイスを使用するならt、使用しなければnil。Emacsが行末を超える空スペースの表示でいくつかのフォントをマージする際に、:extendが非nilのフェイスだけがマージされる。デフォルトではこの属性がセットされているのは少数のフェイス、特にregionだけである。この属性はテーマがフェイスに明示的な値を指定しない際に、値がdeffaceによるフェイスの元定義から継承される点において他の属性とは異なる(フェイスの定義を参照)。

hl-line-modeのようないくつかのモードは、カレント行全体をマークするために:extendプロパティをもつフェイスを使用する。ただしEmacsはバッファー内の最後の文字の後へのポイントの移動を常に許容するので、バッファーが改行文字で終わる場合にはバッファーの最後にある行のような場所にポイントが配置されるかもしれないことに注意。この“行”は実際は存在しない行なのでEmacsがハイライトすることはできない。

Function: font-family-list &optional frame

この関数は利用可能なフォントファミリー名のリストをリターンする。オプション引数frameはそのテキストが表示されるフレームを指定する。これがnilなら選択されたフレームが使用される。

User Option: underline-minimum-offset

この変数はアンダーラインが引かれたテキスト表示時に、ベースラインとアンダーライン間の最小距離をピクセル単位で指定する。

User Option: x-bitmap-file-path

この変数は:stipple属性のビットマップファイルを検索するディレクトリーのリストを指定する。

Function: bitmap-spec-p object

これはobject:stipple (上記参照)での使用に適した有効なビットマップ仕様ならt、それ以外ならnilをリターンする。


Next: フェイスの定義, Up: フェイス   [Contents][Index]