Groff はシェルからの改行を無視します

Groff はシェルからの改行を無視します

私は、-man フラグを使用して印刷用の ps ファイルを作成するために groff を使用しています。ヘッダー ファイルや、ls -l または他のプログラムからの出力など、他のものを変換する場合、改行は無視され、混乱が生じます。シェルで使用されている改行を groff に認識させて尊重させるにはどうすればよいですか?

出力は生成されますが、タブが乱れてしまいます:

groff -mom hexd.c > out.ps

しかし、これはタブと改行の両方に影響します。

cat hexd.c | groff -mom > out.ps

私が本当に欲しいのは、次のようなものです:

man -t gdb | open -f -a preview

これにより、max os のプレビューでマニュアル ページの完全なポスト スクリプト バージョンが開きます。ちなみに、これは次man -tと同等です。

groff  -Tps  -mandoc -c

答え1

groffはタイプセッティング言語であり、プレーンテキストではなく、その言語での入力を期待しています。enscriptまたはa2ps(ascii-to-postscript) のようなものを探している可能性があります。

答え2

.nf「埋めない」には低レベルの troff コマンドを使用できます。

例えば

$ ls -l | sed '1i\
.nf\
.fam C' | groff > out.ps

マクロパッケージ.lには、コードリスト用の独自のコマンドもあります。-mk

関連情報