GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Pixel-Specification.html ・ emacs-doc.conao3.com

42.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 がバッファローカルバインディングを持つシンボルである別のコンスセルを含む)のいずれかとなります。

in、mm、およびcm単位は、それぞれ1インチ、1ミリメートル、および1センチメートルあたりのピクセル数を指定します。widthおよびheight単位は、現在のフェイスのデフォルトの幅と高さに対応します。(image . props)形式の画像指定(画像記述子を参照)は、指定された画像の幅または高さに対応します。同様に、(xwidget . props)形式のxwidget指定は、指定されたxwidgetの幅または高さを表します。組み込みネイティブウィジェットを参照してください。

要素 left-fringe、right-fringe、left-margin、right-margin、scroll-bar、および text は、ウィンドウの対応する領域の幅を指定します。ウィンドウに行番号が表示される場合(表示テキストのサイズ を参照)、text 領域の幅は、行番号表示が占める画面領域分だけ減少します。

left、center、およびrightの位置は、:align-toと組み合わせて、テキスト領域の左端、中央、または右端を基準とした位置を指定するために使用できます。ウィンドウに行番号が表示される場合で、バッファテキストの表示プロパティ(後述のヘッダー行とは異なります)に:align-toが使用されているとき、leftおよびcenterの位置は、行番号表示が占有する画面領域を考慮してオフセットされます。具体的には、このときcenterは編集可能なテキスト領域の中央、すなわち行番号表示を除いたテキスト領域を表します。

上記のウィンドウ要素(textを除く)はいずれも:align-toと併用でき、位置が指定された領域の左端を基準とすることを指定できます。相対位置の基準オフセットが(これらの記号のいずれかが最初に出現した時点で)設定されると、それ以降のこれらの記号の出現は、指定された領域の幅として解釈されます。例えば、左マージンの中央に揃えるには、

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

配置に特定のベースオフセットが設定されていない場合、常にテキスト領域の左端を基準とします。例えば、‘:align-to 0’はテキスト領域の最初のテキスト列に配置されます。ウィンドウに行番号が表示される場合、テキストは行番号表示用のスペースが終わる位置から始まるものとみなされます。

(num . expr) という形式の値は、num と expr の値の積を表します。例えば、(2 . in) は幅 2 インチを指定し、(0.5 . image) は指定された image(画像仕様で指定されるべきもの)の幅(または高さ)の半分を指定します。

(+ expr ...) という形式は、式の値を加算します。(- expr ...) という形式は、式の値を符号反転させるか、あるいは減算します。

ヘッダー行に表示され、:align-to の表示指定を使用しているテキストは、display-line-numbers-mode のオン・オフを切り替えた際や、ディスプレイ上の行番号の幅が変更された際に、自動的に再配置されません。ヘッダー行のテキスト配置を更新し、ヘッダー行のテキストをバッファテキストと揃えたままにするには、バッファで header-line-indent-mode を有効にし、その2つの変数 header-line-indent と header-line-indent-width を表示指定で使用してください。ウィンドウヘッダー行 を参照してください。以下に簡単な例を示します。

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

これにより、display-line-numbers-modeの有効・無効にかかわらず、また行番号表示の幅が変更された場合でも、ヘッダー行のテキスト ‘Column’ がバッファテキストの10列目と揃い続けます。