Groff

如何格式化手冊頁以在自定義頁面大小上列印?

  • November 5, 2020

我知道我可以groff通過傳遞-P-p...選項來指定自定義頁面大小。當我執行以下命令時:

gunzip -dc /usr/share/man/man1/fswebcam.1.gz | groff -mandoc -P-p612p,396p >fswebcam.ps

我將手冊頁格式化為整頁格式,但隨後截斷為我的自定義頁面大小。我如何告訴groff它需要尊重新頁面大小並適當調整邊距?

設置 PostScript 頁面大小與設置 troff 頁面大小無關,這也是必須完成的。一些 groff 宏包允許你傳入選項來設置行長和頁長。man groff_man表示您可以使用-rLL=10c,例如將行長設置為 10 厘米,但沒有頁面長度選項。

在這種情況下,最簡單的做法是在傳遞文件的其餘部分之前使用基本的 troff 命令設置這些值:

( printf '.pl 612p\n.ll 396p\n'
 gunzip -dc /usr/share/man/man1/fswebcam.1.gz) |
groff -mandoc -P -p612p,396p  >fswebcam.ps

groff(1)表示使用papersize宏包,該宏包記錄在groff_tmac(5)中。

該包會自動載入,並使用paper定義來設置虛擬紙張大小,因此您可以使案例如

groff -mandoc -dpaper=a6 -P-pa6

使用 A6 紙。

引用自:https://unix.stackexchange.com/questions/618052