display テキストプロパティで使用できるその他の表示仕様を以下に示します。
stringこのプロパティを持つテキストの代わりに string を表示します。
再帰的な表示指定はサポートされていません—string’のdisplayプロパティ(もしあれば)は使用されません。
(image . image-props)このような表示指定は画像記述子(画像記述子を参照)です。表示指定として使用される場合、表示指定が付与されたテキストの代わりに画像を表示することを意味します。
(slice x y
width height)この仕様は image とともに、表示する画像のスライス(部分的な領域)を指定します。より正確には、この仕様は以下の形式となるべきです。
((slice x y width height) image-desc)
ここで image-desc は前述の画像記述子である。要素 x および y は画像内におけるスライスの左上隅を指定し、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)この表示仕様により、テキストの高さを高くしたり低くしたりできます。heightで指定可能な値は以下の通りです。
(+ n)これは、nステップ大きいフォントを使用することを意味します。ステップとは、利用可能なフォントの集合――具体的には、高さ以外のすべての属性において、このテキストに指定された内容と一致するフォント――によって定義されます。適切なフォントが存在するサイズごとに、それぞれが1ステップとしてカウントされます。nは整数である必要があります。
(- n)これは、nステップ小さいフォントを使用することを意味します。
数値 factor は、デフォルトのフォントより factor 倍の高さのフォントを使用することを意味します。
シンボルは高さを計算する関数です。現在の高さを引数として呼び出され、使用すべき新しい高さを返す必要があります。
height の値が前述のいずれにも当てはまらない場合は、フォームとなります。Emacs
はこれを評価して新しい高さを算出し、シンボル height
を現在指定されているフォントの高さにバインドします。
(raise factor)この種の表示指定は、行のベースラインを基準に、適用対象のテキストを上下に移動させます。主に下付き文字や上付き文字の表示をサポートすることを目的としています。
factor は数値である必要があり、これは対象テキストの高さの倍数として解釈されます。正の値の場合は文字を高く表示し、負の値の場合は低く表示します。
なお、テキストに height の表示指定があり、それが raise
よりも前(つまり左側)に指定されている場合、後者はテキストの上昇高さに基づいてピクセル単位の上げ下げ量を決定するため、その影響を受けることになります。したがって、通常のテキスト高さよりも小さい下付き文字や上付き文字を表示したい場合は、height よりも前に raise
を指定することを検討してください。
任意の表示指定を条件付きにすることができます。そのためには、それを (when condition . spec)
形式の別のリストでラップします。すると、指定 spec は、condition が nil
以外の値と評価された場合にのみ適用されます。評価中、object には条件付きプロパティ display を持つ文字列またはバッファがバインドされます。position と buffer-position
には、それぞれ object 内の位置と、display プロパティが見つかったバッファ位置がバインドされます。object が文字列の場合、これら2つの位置は異なる場合があります。
なお、condition が評価されるのは、redisplay がこの表示指定が配置されている箇所のテキストを検査する時のみであるため、この機能は比較的安定した条件、すなわち各バッファ位置において、評価のたびに同一の結果が得られるような条件に最適です。同じテキスト位置であっても結果が変わる場合(例えば、結果が point の位置に依存する場合など)、条件指定では意図した動作にならない可能性があります。というのも、redisplay は、前回の表示サイクルから何らかの変更があったと想定できるバッファテキストの部分のみを検査するためです。