FMT(1)

名前
fmt - 簡単な最適化テキストフォーマッター

書式
fmt [-cstu] [-width] [-w width] [-p prefix] [--crown-margin] [--split-only] [--tagged-paragraph] [--uniform-spacing] [--width=width] [--prefix=prefix] [--help] [--version] [file ...]

説明
この文書はもうメンテナンスされていないので、不正確・不完全 な可能性がある。現在は texinfo 文書が正式な情報となっている。

このマニュアルページは GNU 版 fmt について記述したものである。 fmt は簡単なテキストフォーマッターで、行を結合したり隙間を埋めたりして width で指定された幅 (デフォルトは 75) を最大とする出力を生成する。 しかし簡単とはいえ、 fmt は行分割に最適化アルゴリズムを用いている。これは “Breaking Paragraphs into Lines”, Donald E. Knuth and Michael F. Plass, Software—Practice and Experience 11 (1981) 1119-1184. で示されている方法の簡易版である。

fmt は引き数で与えられている複数の file を結合する。ひとつも与えられていない場合は、標準入力からテキストを 読み込んで整形する。

空行はそのまま出力に残される。単語間のスペースも同様である ( -u が指定されなかった場合)。 BSD の fmt とは異なり、入力のタブは一度展開され、出力の際に再生成される。

段付け (indentation) も出力に保存される。入力行のうちインデントの深さ が異なるものは結合されない ( -c または -t が指定されなかった場合)。 BSD の fmt もマニュアルでは同様の動作をするように記述されているが、実は続く行のイ ンデントが浅い場合は結合してしまうことに注意。

fmt は文の最後で改行しようとする。また文の最初の単語の直後や、文の最後の単 語の直前での改行は避けようとする。文の区切りは、以下のように定義されて いる。 (1) 段落の最後。 (2) [.?!] でおわる単語に、二つのスペースまたは 行末が続いたもの。ただし括弧や引用符の内部では文区切りとはみなされない。

  オプション

-c, --crown-margin
    クラウンマージンモード (crown margin mode)。 段落の最初の二行のインデントを保存し、引き続く行の左マージンをそれぞれ第 二行のものに揃える。

-t, --tagged-paragraph
    タグ付き段落モード (tagged paragraph mode)。 クラウンモードと似ているが、段落の最初の行のインデントは第二行のものと は異なっていなければならない。同じである場合は、最初の行は一行だけから なる段落とみなされる。

-s, --split-only
    行分割だけを行う。短い行を結合して長い行を生成する作業を行わない。プロ グラムコードなどの整形されたテキストが不正に結合されるのを避けることが できる。

-u, --uniform-spacing
    一様なスペース配置 (uniform spacing)。 単語間のスペースをスペース文字ひとつに減らす。ただし文の間には二つのス ペース文字が用いられる。

-width, -w width, --width=width
    出力行を width 桁まで埋めようとする (デフォルトは 75)。 fmt は各行の長さを揃えるための空間を確保する目的から、およそ 7% ほど行を短 くする傾向にある。

-p, --prefix=prefix
    prefix で始まる行だけ (スペースが前置されていても良い) を再配置する。 prefix (と前置されるスペース) は整形前にいったん削除され、整形された出力行に 再び配置される。利用法としては、例えばある種のプログラムのコメントだけ を整形して、コード部分は変更したくない場合などが考えられる。

--help
    使い方に関するメッセージを標準出力に表示し、実行成功を返して終了する。

--version
    バージョン情報を標準出力に表示して終了する。