如果您查看man(1)
(可能在/usr/share/man/man1/man.1.gz
)using 的文档源,您会注意到这样的行 -
.IR page [.\| section \|]\ \|.\|.\|.\|]\ \.\|.\|.\&
这由 man 2.8.3 渲染为
page[.section] ...] ...
---- -------
其中-
表示下划线。我理解这个工作的方式是,未转义的空格被剥离,并在(因为斜体不可用,也许它会下划线)和(这是正常的罗马字体)IR
之间交替,并且使用.基于此,我希望渲染看起来像 -I
R
\|
page[.section] ...] ...
---- ------- - - ?-
但为什么事实并非如此呢?
答案1
问题在于误解了字符代码的实际作用。如果您查看 Ossanna 和 Kernighan 的 Troff 用户手册,您会看到 -
\| 1/6 em narrow space character (zero width in nroff)
所以它实际上并没有自己改变字体,它只是引入了稀疏的空间。字体交替发生的原因是空间在正文中(参见男人(7))--
.IR page [.\| section \|]\ \|.\|.\|.\|]\ \.\|.\|.\&
这被分成 4 块
page
[.\|
section
\|]\ \|.\|.\|.\|]\ \.\|.\|.\&
字体在它们之间交替,给出您所看到的渲染,其中页面和部分带有下划线,而其他块则没有。