在编写命令的手册页时,SYNOPSIS 包含:
.RB [ \-v
.IR version ]
不幸的是,在格式化 SYNOPSIS 时,“[-v”和“version]”之间有一个换行符。
我怎样才能避免这种情况?
添加明显
根据多次要求,这里是一个较长的示例输入,因为缺乏想象力,以及显示问题的屏幕截图:
这是来源:
.TH FOOBAR-DEMO 8 2022-03-16 "Charlie Brown" "System Administration"
.\"
.SH NAME
foobar-demo \- demonstration of manual formatting
.\"
.SH SYNOPSIS
.na
.nr hy-mode-save \n[.hy]
.hy 0
.B foobar-demo123
.RB [ \-a
.IR match_spec ]
.RB [ \-\-resource-agent
.IR match_spec ]
.RB [ \-v
.IR version ]
.RB [ \-\-version
.IR version ]
.hy \n[hy-mode-save]
.ad b
.\"
.SH DESCRIPTION
The purpose of this page is none...
宏妨碍了。您可以使用转义空格(不会拆分行)来解决问题,如下所示:
Thomas Dickey 有一个正确(且可移植)的解决方案,但像您一样,由于字体选择转义序列,我发现它有点不受欢迎。我更喜欢man (7) 的字体样式宏。
此外,
\
(反斜杠空格)转义序列也可能很丑陋,因为它的牢不可破的空间是固定宽度的;在经过调整的线路上,这可能是显而易见的和不和谐的。因此,我建议使用输出行继续转义序列
\c
来允许输入行结束而不会导致插入可破坏的空间,并使用\~
转义序列用于不可破坏但可调整的空间。您在示例中关闭了调整,但正如我将展示的那样,这不是必需的。通过使用
\~
,可以在大纲的各行之间均匀地进行调整,而不会造成问题。此转义序列可移植到所有当前维护的troff项目,除了 Illumos 中的项目。 groff从 1991 年开始(至少),Heirloom Doctools 从 2005 年 9 月开始,mandoc(它不是troff,但会解析手册页)从 2009 年 9 月开始,netroff从 2016 年 9 月开始,以及来自用户空间的 Plan 9 troff截至 8 月2022 年。在您的示例中,您使用了groff寄存器
.hy
和groff的扩展插值语法来实现它。如果您正在使用groff,您可能需要考虑它的SY
/对man (7) 宏包的YS
扩展来设置您的命令概要。2 (这些宏还为您保存和恢复断字模式。)最有可能的是,您在该行中有一个 CRLF,而不是 LF。