以下はdisplay
テキストプロパティ内で使用できる他のディスプレイ仕様です。
string
このプロパティをもつテキストのかわりにstringを表示する。
再帰的なディスプレイ仕様はサポートされない。つまりstringのdisplay
プロパティがあっても使用されない。
(image . image-props)
この種のディスプレイ仕様はイメージディスクリプタである(イメージのディスクリプタを参照)。ディスプレイ仕様として使用時には、そのディスプレイ仕様をもつテキストのかわりに表示するイメージを意味する。
(slice x y width height)
この仕様はimage
とともに、表示するイメージのスライス(slice:
イメージの特定の領域)を指定する。要素yとxはイメージ内での左上隅、widthとheightはそのスライスの幅と高さを指定する。整数はピクセル数、0.0から1.0までの浮動小数点数はイメージ全体の幅や高さの割合を意味する。
((margin nil) string)
この形式のディスプレイ仕様は、このディスプレイ仕様をもつテキストのかわりにテキストと同じ位置に表示するstringを意味する。これは単にstringを使用するのと同じだが、マージン表示(マージン内への表示を参照)の特殊なケースとして行われる点が異なる。
(left-fringe bitmap [face])
(right-fringe bitmap [face])
テキスト行の任意の文字がこのディスプレイ仕様をもつ場合には、その文字のかわりにその行の左や右のフリンジに表示するbitmapを指定する。オプションのfaceはビットマップ表示にカラーを使用するフェイスを指定する。詳細はフリンジのビットマップを参照のこと。
テキストプロパティleft-fringe-help
とright-fringe-help
(特殊な意味をもつプロパティを参照)を使ってshow-help-function
メカニズムを通じたフリンジビットマップ用コンテキストヘルプを追加することも可能。
(space-width factor)
このディスプレイ仕様は、この仕様をもつテキスト内のすべてのスペース文字に効果を及ぼす。これらすべてのスペースは通常の幅のfactor倍の幅で表示される。要素factorは整数か浮動小数点数であること。スペース以外の文字は影響を受けない。特にこれはタブ文字に影響を与えない。
(min-width (width))
このディスプレイ仕様はテキストがwidthより短ければ、終端に空白を追加することで少なくともwidthのスペースを占めるよう保証する。このテキストはパラメーターの識別子を用いて分割される。パラメーターが1要素のリストであるのはこれが理由。たとえば:
(insert (propertize "foo" 'display '(min-width (6.0))))
これにより‘foo’の後にパディングが追加されて、合計幅が通常の文字6つ分の幅になる。影響を受ける文字はdisplayプロパティのリスト(6.0)
をeq
で比較することで識別されることに注意。要素widthはテキストに要求される最小幅を指定する整数または浮動小数点数(スペースにたいするピクセル指定を参照)。
(height height)
このディスプレイ仕様はテキストを高く(taller)、または低く(shorter)する。heightには以下を指定できる:
(+ n)
これはnステップ大きいフォントの使用を意味する。ステップは利用可能なフォントのセットから定義される。利用可能なフォントとは、具体的には、このような場合でなければ、heightを除いてそのテキストに指定されたすべての属性にマッチするフォント。適切なフォントの各サイズは別のステップとして利用可能とみなされる。nは整数であること。
(- n)
これはnステップ小さいフォントの使用を意味する。
数値factorはデフォルトフォントのfactor倍高いフォントの使用を意味する。
高さを計算する関数。この関数はカレントの高さを引数として呼び出されて、使用する新たな高さをリターンすること。
heightの値が上記のいずれにもマッチしなければ、それはフォームである。Emacsはheight
をカレントで指定されたフォントの高さにバインドして新たな高さを取得するためにフォームを評価する。
(raise factor)
この種のディスプレイ仕様は、その行のベースラインに相対的にテキストを上(raise)、または下(lower)に指定する。これは主に上付き文字と下付き文字を意図している。
factorは影響を受けるテキストの高さにたいする乗数として解釈される数値でなければならない。これが正なら上、負なら下に文字を表示することを意味する。
テキストがraise
より前(左)に指定されたheight
ディスプレイ仕様をもつ場合には、テキストが上下される量はテキストの高さにもとづくので、上下されるピクセル数にはraise
が効果をもつ。したがって通常のテキスト高さより小さい上付きや下付きで表示したければ、height
の前にraise
を指定することを考慮するべきである。
任意のディスプレイ仕様にたいして条件を作成できます。これを行うには、(when condition
.
spec)
という形式の別リスト内にパッケージします。この場合には、仕様specはconditionが非nil
値に評価されたときだけ適用されます。この評価の間にobject
は条件つきdisplay
プロパティをもつ文字列、またはバッファーにバインドされます。position
とbuffer-position
はそれぞれobject
内の位置、およびdisplay
プロパティが見つかったバッファー位置にバインドされます。object
が文字列の際には両者の位置は異なるかもしれません。
conditionはこのディスプレイ仕様が配置された箇所のテキストを再表示が調べる際だけ評価されるので、この機能は比較的安定した条件にもっとも適していることに注意してください(特定のバッファー位置それぞれにたいして評価ごとに同じ結果を取得する)。同じのテキスト位置にたいする結果が異なる、つまり結果がポイント位置に依存するようなら、この条件仕様はあなたの望むものではないかもしれません。なぜなら再表示は最後の表示サイクル以降に何かが変更されたといなす理由があるバッファーテキストの部分だけを調べるからです。