Groff 忽略了我的 shell 中的换行符

Groff 忽略了我的 shell 中的换行符

我一直使用 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是一种排版语言,它需要以其语言输入,而不是纯文本。您可能正在寻找类似enscripta2ps(ascii-to-postscript)的内容。

答案2

您可以使用低级.nftroff 命令来实现“不填充”。

例如

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

宏包也有自己的代码列表命令,.l例如-mk

相关内容