[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 fmt: パラグラフに分かれたテキストを整形し直す

fmt は行を折り返したり、結合したりして、出力する各行が指定された文字数に納まるように調整する。 1 行のデフォルトはアスキー文字で 75 文字である。 (訳注: 日本語のテキストは、通常単語を空白で区切らないので、うまく整形できない。)

書式:

 
fmt [option]… [file]…

fmt は、指定された引数 file から (指定されていない場合は、標準出力から) テキストを読み込んで、標準出力に書き出す。

デフォルトでは、空行、単語間の空白、インデント (字下げ) は、出力でもそのまま維持される。 インデントの違う入力行が連続する場合は、行の結合は行われない。 タブは入力のときにスペースに展開され、出力でタブに戻される。

fmt は、できるだけ文の終わりで改行しようとする。 また、文の最初の単語の直後や、文の最後の単語の直前で改行するのは避けようとする。 「文の終わり (sentence break)」の定義は、パラグラフがそこで終わっているか、 あるいは、単語の末尾に ‘.?!’ のどれかが付き、さらにスペースが 2 個続くか、 行末が来ることである。後者の場合、ピリオドなどとスペース 2 個、あるいは行末の間にカッコや引用符が入っていてもよい。 TeX と同様、fmt は、どこで行を折り返すかを決める前に、パラグラフ全体を読み込む。 使用しているアルゴリズムは、Donald E. Knuth と Michael F. Plass が “Breaking Paragraphs Into Lines” で提示しているものに変更を加えたものである (‘Software—Practice & Experience 誌’、第 11 巻 第 11 号 (November 1981) 1119-1184 ページ)。

このプログラムでは以下のオプションが使用できる。参照: 共通オプション.

-c
--crown-margin

クラウンマージン・モード (Crown margin mode) である。 パラグラフの最初の 2 行のインデントはそのまま踏襲し、それに続く各行の左の余白を 2 行目のインデントに揃える。

-t
--tagged-paragraph

タグ付きパラグラフ・モード (Tagged paragraph mode)。 クラウンマージン・モードに似ているが、次の点が違う。 パラグラフの最初の行と二番目の行のインデントが同じ場合、最初の行は 1 行からなるパラグラフとして扱われる。

-s
--split-only

行の分割のみを行う。短い行を結合して、長い行を作ることはしない。 その結果、サンプル・コードの行のような、すでに整形されたテキストをむやみに結合しないで済む。

-u
--uniform-spacing

空白の数を一定にする。すなわち、単語間の空白は 1 個に、文の間の空白は 2 個にする。

-width
-w width
--width=width

出力する各行を、長くても width 文字までにする (デフォルトは 75 文字。goal が指定されている場合は、goal プラス 10 文字)。

-g goal
--goal=goal

とりあえず、各行を goal 文字の長さにしてみようとする。 これは、デフォルトでは width より 7% 短い。

-p prefix
--prefix=prefix

prefix で始まる行のみを整形の対象にする (prefix の前にホワイトスペースがあってもよい)。prefix とそれに先行するホワイトスペースは、整形の際に取り除かれ、整形後に各出力行に付け直される。 このオプションの用途を一つ挙げると、プログラムのコメントのような行だけを整形し、 コードには手を加えないことが考えられる。

終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on August 15, 2017 using texi2html 1.82.