我一直使用 groff 制作 ps 文件,并使用 -man 标志进行打印。如果我想转换其他内容(例如头文件或 ls -l 或其他程序的输出),则换行符会被忽略,从而产生混乱。如何让 groff 看到并尊重 shell 中使用的换行符?
这会产生输出,但是标签会混乱:
groff -mom hexd.c > out.ps
但这会使制表符和换行符混乱:
cat hexd.c | groff -mom > out.ps
我真正想要的是这样的:
man -t gdb | open -f -a preview
这会在 max os 上的预览中打开 man 页面的完美 post script 版本。顺便说一下,这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。