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 -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

相關內容