FMT
Section: User Commands (1)
Updated: GNU Text Utilities
Index
JM Home Page
roff page
名前
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
-
バージョン情報を標準出力に表示して終了する。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:40 GMT, November 24, 2023