1

概要

来自(1):

-l

格式化并显示本地手册文件,而不是搜索系统的手册集合。

-t

使用groff -mandoc将手册页格式化为标准输出。

来自groff_tmac (5):

纸张大小

这个宏文件在启动时已经由troff加载,所以没有必要显式调用它。它提供了一个界面来使用选项-dpaper= size在命令行上设置纸张 大小。可能的大小值与 DESC 文件中预定义的纸张大小值相同(仅小写;有关更多信息,请参见groff_font (5)),但a7 –<strong>d7 除外。附加的l (ell) 字符表示横向。示例: a4c3lletterl

大多数输出​​驱动程序需要额外的命令行开关-p-l来覆盖驱动程序特定 DESC 文件中设置的默认纸张长度和方向。例如,将以下内容用于横向 A4 纸上的 PS 输出:

sh# groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps

问题

我想用这些来格式化本地和系统手册页以打印出来,但想将纸张尺寸从信纸切换到 A4。不幸的是,我在man (1)中找不到任何关于将选项传递给底层roff格式化程序的内容。

现在我可以使用

zcat `man -w man` | groff -tman -dpaper=a4 -P-pa4

格式化man (1) on stdout,但这有点长,如果可以的话,我宁愿让man为我构建管道。此外,上述管道可能需要针对更复杂的手册页进行更改,虽然我可以使用grog,但即使它没有检测到重音字符之类的东西(对于groff-k选项),而man可以(可能使用语言环境设置) .

4

1 回答 1

0

man命令通常仅用于在 TTY 设备上搜索和显示手册页,而不用于生成排版和纸质打印输出。

根据主机系统和/或感兴趣的程序,有时可以在编译程序(或整个系统)时生成完全排版的可打印形式的手册页。这在系统文档中更常见,但在手册页中不太常见。

请注意,根据您尝试打印的手册页,可能需要执行其他步骤。传统上,以下管道将用于覆盖所有基础:

grap $MANFILE | pic | tbl | eqn /usr/pub/eqnchar | troff -tman -Tps | lpr -Pps

简化命令行的最佳解决方案可能是编写一个小脚本来封装您正在做的事情。请注意,man -w可能会找到几个不同的文件名,因此您可能希望分别打印每个文件名(或者可能只打印第一个文件名)。

于 2020-02-20T03:51:23.210 回答