Next: , Previous: , Up: displayプロパティ   [Contents][Index]


41.16.3 スペースにたいするピクセル指定

プロパティ:width:align-to:height:ascentの値は再表示の間に評価される特別な種類の式です。その評価の結果はピクセルの絶対数として使用されます。

以下の式がサポートされています:

  expr ::= num | (num) | unit | elem | pos | image | xwidget | form
  num  ::= integer | float | symbol
  unit ::= in | mm | cm | width | height
  elem ::= left-fringe | right-fringe | left-margin | right-margin
        |  scroll-bar | text
  pos  ::= left | center | right
  form ::= (num . expr) | (op expr ...)
  op   ::= + | -

フォームnumはデフォルトフレームフォントの高さか幅、フォーム(num)は絶対ピクセル数を指定します。numがシンボルsymbolなら、それのバッファーローカルな変数バインディングが使用されます。このバインディングには数字か上述の形式のコンスセル(他にもバッファーローカルなバインディングをもつシンボルがcarであるような他のコンスセルも含む)が可能です。

単位inmmcmはそれぞれインチ、ミリメートル、センチメートルごとのピクセル数を指定します。単位widthheightはそれぞれカレントフェイスのデフォルトの幅と高さに対応します。(image . props)という形式のイメージ仕様は、指定されたイメージの幅や高さに対応します(イメージのディスクリプタを参照)。同様に(xwidget . props)という形式のxwidget仕様は指定されたxwidgetび幅や高さを意味します。埋め込みネイティブウィジェットを参照してください。

要素left-fringeright-fringeleft-marginright-marginscroll-bartextはそのウィンドウの対応する領域の幅を指定します。そのウィンドウで行番号(表示されるテキストのサイズを参照)を表示している際にはテキストエリアの幅は行番号の表示に要するスクリーンスペースで減じられます。

位置leftcenterrightはテキストエリアの左端、中央、右端から相対的に位置を指定するために:align-toとともに使用できます。ウィンドウで行番号を表示していて、バッファーのテキスト(ヘッダーラインではない; 以下参照)のディスプレイプロパティに:align-toが使用されている場合のleftcenterの位置は、行番号の表示に要するスクリーンスペースを考慮したオフセットになります。

(textを除いた)上記ウィンドウ要素は与えられたエリアの左端から相対的に位置を指定するために:align-toとともに使用することもできます。(最初に出現するこれらシンボルのいずれかにより)相対的位置にたいするベースオフセットが一度セットがされると、残りのシンボルは指定されたエリアの幅として解釈されます。たとえば左マージンの中央に位置揃えするには以下のようにします

:align-to (+ left-margin (0.5 . left-margin))

位置揃えにたいしてベースオフセットが何も指定されなければ、テキストエリア左端にたいして常に相対的になります。たとえば‘:align-to 0’はテキストエリアの最初のテキスト行に位置揃えします。ウィンドウで行番号を表示している際には、テキストは行番号表示の終了に使用されるスペースから開始するとみなされます。

(num . expr)という形式の値は、numexprにより生成される値を意味します。たとえば(2 . in)は2インチの幅、(0.5 . image)は指定されたimage (それのイメージspecにより与えられる必要がある)の幅(または高さ)の半分を指定します。

フォーム(+ expr ...)は式の値を合計します。フォーム(- expr ...)は式の値を符号反転または減算します。

ディスプレイ仕様:align-toを使用しているヘッダーラインに表示されているテキストは、display-line-numbers-modeのオンオフや行番号の表示幅の変更時に自動的に再度位置揃えされることはありません。ヘッダーラインのテキストの位置揃え(alignment)を更新してヘッダーラインのテキストとバッファーテキストの位置揃えを保つには、そのバッファーでheader-line-indent-modeをオンにして、ディスプレイ仕様の中でこのモードのheader-line-indentおよびheader-line-indent-widthという2つの変数を使用します。ウィンドウのヘッダーラインを参照してください。以下に単純な例を示します:

(setq header-line-format
      (concat (propertize " "
                          'display
                          '(space :align-to
                                  (+ header-line-indent-width 10)))
              "Column"))

この例ではdisplay-line-numbers-modeのオンオフや行番号の表示幅の変更とは関係なく、ヘッダーラインのテキスト‘Column’をバッファーのテキストの10列目に位置揃えしています。