首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人类能把一个选项传递给roff格式化程序吗?

人类能把一个选项传递给roff格式化程序吗?
EN

Stack Overflow用户
提问于 2020-01-28 06:17:39
回答 1查看 82关注 0票数 1

提要

来自man(1):

-l

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

-t

使用groff -mandoc将手册页格式化为stdout。

来自groff_tmac(5):

纸号

这个宏文件已经由troff在启动时加载,因此没有必要显式地调用它。它提供了一个接口,通过选项-dpaper=size在命令行上设置纸张大小。大小的可能值与groff_font(5)文件中预定义的纸质值相同(仅小写,请参阅a7d7.除外)。附加的l (ell)字符表示景观方向。例子:a4c3lletterl

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

代码语言:javascript
复制
sh# groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps

问题

我想使用这些格式本地和系统手册页打印出来,但希望将纸张大小从字母转换为A4。不幸的是,我在man(1)中找不到将选项传递给底层roff格式化程序的任何内容。

现在我可以用

代码语言:javascript
复制
zcat `man -w man` | groff -tman -dpaper=a4 -P-pa4

man(1)格式化到stdout上,但这有点长,如果可以的话,我宁愿让man为我构建管道。此外,上面的管道可能需要对更复杂的手册页进行更改,虽然我可以使用grog,但即使它也不能检测到重音字符(对于groff-k选项),而 man 可以检测到(可能使用区域设置)。

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 03:51:23

man命令通常只用于在TTY设备上搜索和显示手动页面,而不是用于生成排版和打印的纸张输出。

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

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

代码语言:javascript
复制
grap $MANFILE | pic | tbl | eqn /usr/pub/eqnchar | troff -tman -Tps | lpr -Pps

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59943109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档