我使用 groff man 宏来生成通用文档(实际上不是手册页),因为它们很容易学习和使用。不过,我希望将 postscript 页面标题控制为自由文本。
这格罗夫手册说:
使用文件 man.local 对 man 宏进行本地扩展或进行样式更改。
宏:
.PT
控制标题的内容。通常,标题在两侧打印命令名称和节号,并在中间打印 TH 的可选第五个参数。
在实践中我该如何做到这一点?
答案1
措辞晦涩,但建议是修改文件man.local
本身,而不是覆盖该文件中找到的宏。
一个好的起点是文档:5.21 编写宏(GNU Troff 手册)。这展示了如何定义宏。
实际要研究的宏在很大程度上依赖于版本。在 Debian 中,我PT
在包中找到了该宏groff-base
,位于
/usr/share/groff/1.21/tmac/an-old.tmac
作为
.\" Redefine these to customize the header & footer
.
.de1 PT
. tl '\\*[an-title](\\*[an-section])'\\*[an-extra3]'\\*[an-title](\\*[an-section])'
..
它将命名变量作为第一个参数传递给.tl
.要了解它.tl
是什么(grep 是你的朋友)以及它的作用需要一些工作(提到过这里):
你知道
.tl
(标题)由左、中、右三部分组成吗?
另一方面,groff 的文档多年来得到了改进:您可以在指数。
通常,您会发现:
- 大多数宏(您在阅读这些文件时遇到的)都没有记录
- grep 遍历宏列表(grep
-w
有帮助)是查找特定宏的唯一方法 - 某些宏的设备特定版本会覆盖通用版本
答案2
如果您想了解如何使用修改后的宏来将手册页打印为一本书,您可能想检查用于打印 Solaris 手册的宏:
https://sourceforge.net/p/schillix-on/schillix-on/ci/default/tree/usr/src/cmd/troff/troff.d/tmac.d/
将“an”文件与“ansun”宏文件进行比较。后者用于印刷书籍。
请注意,这些是原始 troff 的宏集,而不是 troff 克隆“groff”的宏集,但只要 groff 兼容,它就应该可以工作。