Next: , Previous: , Up: テキスト   [Contents][Index]


33.11 fill

フィル(fill: 充填)とは、指定された最大幅付近(ただし超過せず)に、(行ブレークを移動することにより)行の長さを調整することを意味します。加えて複数行を位置揃え(justify)することもできます。位置揃えとはスペースを挿入して左および/または右マージンを正確に整列させることを意味します。その幅は変数fill-columnにより制御されます。読みやすくするために行の長さは70列程度を超えないようにするべきです。

テキストの挿入とともに自動的にテキストをフィルするAuto Fillモードを使用できますが、既存テキストの変更では不適切にフィルされたままになるかもしれません。その場合にはテキストを明示的にフィルしなければなりません。

このセクションのコマンドのほとんどは有意な値をリターンしません。フィルを行うすべての関数はカレント左マージン、カレント右マージン、カレント位置揃えスタイルに留意します(fillのマージンを参照)。カレント位置揃えスタイルがnoneなら、フィル関数は実際には何も行いません。

フィル関数のいくつかは引数justifyを受け取ります。これが非nilなら、それは何らかの類の位置揃えを要求します。特定の位置揃えスタイルを要求するためにleftrightfullcenterを指定できます。これがtなら、それはそのテキスト部分にたいしてカレント位置揃えスタイルを使用することを意味します(以下のcurrent-justificationを参照)。その他すべての値はfullとして扱われます。

インタラクティブにフィル関数を呼び出すには際、プレフィクス引数の使用はjustifyにたいして暗に値fullを指定します。

Command: fill-paragraph &optional justify region

このコマンドはポイント位置、またはその後のパラグラフ(paragraph: 段落)をフィルする。justifyが非nilなら、同様に各行が位置揃えされる。これはパラグラフ境界を探すために、通常のパラグラフ移動コマンドを使用する。Paragraphs in The GNU Emacs Manualを参照のこと。

もしregionが非nilで、Transient Markモードが有効かつマークがアクティブなら、このコマンドはカレントパラグラフのみフィルするかわりに、リージョン内すべてのパラグラフをフィルするためにコマンドfill-regionを呼び出す。このコマンドがインタラクティブに呼び出された際は、regiont

Command: fill-region start end &optional justify nosqueeze to-eop

このコマンドはstartからendのリージョン内のすべてのパラグラフをフィルする。justifyが非nilなら同様に位置揃えも行う。

nosqueezeが非nilなら、それは行ブレーク以外の空白文字を残すことを意味する。to-eopが非nilなら、それはパラグラフ終端(以下のuse-hard-newlinesが有効なら次のhard改行)までのフィルを維持することを意味する。

変数paragraph-separateはパラグラフを分割する方法を制御する。編集で使用される標準的な正規表現を参照のこと。

Function: pixel-fill-region start end pixel-width

Emacsのほとんどのバッファーでは文字数とchar-widthにもとづいて(fill-regionのような)fill関数が機能するように、等幅(monospace)のテキストを使用する。しかしEmacsは可変幅フォント(proportional font)を使ったイメージを含むテキストのような、他のタイプのオブジェクトを描画でき、正にこれを処理するために存在するのがpixel-fill-regionである。これはstartendの間にあるリージョンのテキストをピクセル単位の粒度でfillするので、可変ピッチのフォントや異なるいくつかのフォントはサイズに関わらずfillされるようになる。引数pixel-widthはfill後に線に許容される最大のピクセル幅を指定する。これはfill-regionにおけるfill-columnのピクセル解像度に相当する。以下のLispコードはプロポーショナルフォントを用いてテキストを挿入してから、300ピクセルを超えない幅になるようにfillする例である:

(insert (propertize
	 "This is a sentence that's ends here."
	 'face 'variable-pitch))
(pixel-fill-region (point) (point-max) 300)

startが行頭にある場合には、後続行のインデントのプレックスとしてstartの水平位置をピクセル単位に変換した値が用いられる。

pixel-fill-widthはピクセル幅を計算するために使用できるヘルパー関数である。引数なしならカレントウィンドウの幅より若干小さい値をリターンする。1つ目のオプションcolumnsの値には、fill-columnが用いる標準的なモノスペースフォントによる列数を指定する。2つ目のオプションの値は使用するウィンドウである。典型的には以下のように使用する:

(pixel-fill-region
  start end (pixel-fill-width fill-column))
Command: fill-individual-paragraphs start end &optional justify citation-regexp

このコマンドはリージョン内の各パラグラフを、それの固有なフィルプレフィクスに応じてフィルする。したがってパラグラフの行がスペースでインデントされていれば、フィルされたパラグラフは同じ様式でインデントされた状態に保たれるだろう。

最初の2つの引数startendはフィルするリージョンの先頭と終端。3つ目の引数justify、4つ目の引数citation-regexpはオプション。justifyが非nilなら、そのパラグラフはフィルと同様に位置揃えも行われる。citation-regexpが非nilなら、それはこの関数がメールメッセージを処理しているのでヘッダーラインをフィルするべきではないことを意味する。citation-regexpが文字列なら、それは正規表現として扱われる。それが行の先頭にマッチすれば、その行は引用マーカー(citation marker)として扱われる。

fill-individual-paragraphsは通常はインデントの変更を新たなパラグラフの開始とみなす。fill-individual-varying-indentが非nilならセパレーターラインだけがパラグラフを分割する。その場合には、最初の行からさらにインデントが追加されたパラグラフを処理することが可能になる。

User Option: fill-individual-varying-indent

この変数は上述のようにfill-individual-paragraphsの動作を変更する。

Command: fill-region-as-paragraph start end &optional justify nosqueeze squeeze-after

このコマンドはテキストのリージョンを1つのパラグラフとみなしてそれをフィルする。そのリージョンが多数のパラグラフから構成されていたらパラグラフ間の空行は削除される。justifyが非nilならフィルとともに位置揃えも行う。

nosqueezeが非nilなら、それは改行以外の空白に手を加えずに残すことを意味する。squeeze-afterが非nilなら、それはリージョン内の位置を指定して、その位置より前にある改行以外の空白文字に手を加えず残すことを意味する。

Adaptive Fillモードでは、このコマンドはフィルプレフィクスを選択するためにデフォルトでfill-context-prefixを呼び出す。Adaptive Fillモードを参照のこと。

Command: justify-current-line &optional how eop nosqueeze

このコマンドはその行が正確にfill-columnで終わるように単語間にスペースを挿入する。リターン値はnil

引数howが非nilなら、それは位置揃えスタイルを明示的に指定する。指定できる値はleftrightfullcenter、またはnone。値がtなら指定済みの位置揃えスタイル(以下のcurrent-justificationを参照)にしたがうことを意味する。nilは位置揃えfullと同じ。

eopが非nilなら、それはcurrent-justificationがfull位置揃えを指定する場合にleft位置揃えだけを行うことを意味する。これはパラグラフ最終行にたいして使用される。パラグラフ全体がfull位置揃えだったとしても最終行はfull位置揃えであるべきではない。

nosqueezeが非nilなら、それは内部のスペースを変更しないことを意味する。

User Option: default-justification

この変数の値は位置揃えに使用するスタイルをテキストプロパティで指定しないテキストにたいするスタイルを指定する。可能な値はleftrightfullcenter、またはnone。デフォルト値はleft

Function: current-justification

この関数はポイント周辺のフィルに使用するための適正な位置揃えスタイルをリターンする。

これはポイント位置のテキストプロパティjustificationの値、そのようなテキストプロパティが存在しなければ変数default-justificationの値をリターンする。しかし“位置揃えなし”なら、noneではなくnilをリターンする。

User Option: sentence-end-double-space

この変数が非nilならピリオドの後の単一のスペースをセンテンスの終わりとみなさず、フィル関数はそのような箇所でのラインブレークを行わない。

User Option: sentence-end-without-period

この変数が非nilなら、ピリオドなしでセンテンスは終了できる。これはたとえばピリオドなしの2連スペースでセンテンスが終わるタイ語などに使用される。

User Option: sentence-end-without-space

この変数が非nilなら、それは後にスペースをともなうことなくセンテンスを終了させ得る文字列であること。

User Option: fill-separate-heterogeneous-words-with-space

この変数が非nilなら異種(たとえば英語のCJK)の2つの単語は一方が行末にあり、もう一方が次行の先頭にある場合にはフィルでの結合時にスペースで分割される。

Variable: fill-paragraph-function

この変数はパラグラフのフィルをオーバーライドする手段を提供する。この値が非nilなら、fill-paragraphはその処理を行うためにその関数を呼び出す。その関数が非nil値をリターンすると、fill-paragraphは処理が終了したとみなして即座にその値をリターンする。

この機能の通常の用途はプログラミング言語のモードにおいてコメントをフィルすることである。通常の方法でその関数がパラグラフをフィルする必要があるなら、以下のようにそれを行うことができる:

(let ((fill-paragraph-function nil))
  (fill-paragraph arg))
Variable: fill-forward-paragraph-function

この変数はfill-regionfill-paragraphのようなフィル関数が次のパラグラフへ前方に移動する方法をオーバーライドするための手段を提供する。値は移動するパラグラフの数nを唯一の引数として呼び出される関数であり、nと実際に移動したパラグラフ数の差をリターンすること。この変数のデフォルト値はforward-paragraphParagraphs in The GNU Emacs Manualを参照のこと。

Variable: use-hard-newlines

この変数が非nilなら、フィル関数はテキストプロパティhardをもつ改行を削除しない。これらのhard改行、パラグラフのセパレーターとして機能する。Hard and Soft Newlines in The GNU Emacs Manualを参照のこと。


Next: fillのマージン, Previous: アンドゥリストの保守, Up: テキスト   [Contents][Index]