提要
来自man(1):
-l
格式化和显示本地手动文件,而不是搜索系统的手动集合。
-t
使用groff -mandoc将手册页格式化为stdout。
来自groff_tmac(5):
纸号
这个宏文件已经由troff在启动时加载,因此没有必要显式地调用它。它提供了一个接口,通过选项-dpaper=size在命令行上设置纸张大小。大小的可能值与groff_font(5)文件中预定义的纸质值相同(仅小写,请参阅a7–d7.除外)。附加的l (ell)字符表示景观方向。例子:a4,c3l,letterl。
大多数输出驱动程序需要额外的命令行开关、-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)格式化到stdout上,但这有点长,如果可以的话,我宁愿让man为我构建管道。此外,上面的管道可能需要对更复杂的手册页进行更改,虽然我可以使用grog,但即使它也不能检测到重音字符(对于groff的-k选项),而 man 可以检测到(可能使用区域设置)。
发布于 2020-02-20 03:51:23
man命令通常只用于在TTY设备上搜索和显示手动页面,而不是用于生成排版和打印的纸张输出。
根据主机系统和/或感兴趣的程序,有时可以在编译程序(或整个系统)时生成手动页面的完全排版打印形式。但是,这种情况在系统文档中更为常见,而在手动页面中则不常见。
注意,根据您要打印的手册页,可能需要其他步骤。传统上,将使用以下管道覆盖所有基地:
grap $MANFILE | pic | tbl | eqn /usr/pub/eqnchar | troff -tman -Tps | lpr -Pps简化命令行的最佳解决方案可能是编写一个很小的脚本来封装您正在做的事情。请注意,man -w可能会找到几个不同的文件名,因此您可能希望分别打印每个文件名(或者只打印第一个文件名)。
https://stackoverflow.com/questions/59943109
复制相似问题