12

根据info groff(第 5.11 节字符翻译), \.应该只打印点。然而,这似乎不是发生的事情。如果我呈现这个手册页

.TH x x x x
\.SH foo

我被foo渲染为章节标题,并且.SH没有被打印出来。

那么,为什么会发生这种情况,以及如何在 groff 行的开头避开点(和撇号)?

4

2 回答 2

12

要在行首转义点,请使用\[char46]

\[char46]SH foo

印刷

.SH foo

这是预期的行为,但应在手册页中修复。是一个错误报告。

您可以在下面阅读\\(缩短的)和\. (来自信息页面)的描述。

-- Escape: \\
[...]

`\\' is a `delayed' backslash; more precisely, it is the default
escape character followed by a backslash, which no longer has
special meaning due to the leading escape character. It is _not_
an escape sequence in the usual sense! In any unknown escape
sequence `\X' the escape character is ignored and X is printed.
But if X is equal to the current escape character, no warning is
emitted.

As a consequence, only at top-level or in a diversion a backslash
glyph is printed; in copy-in mode, it expands to a single
backslash which then combines with the following character to an
escape sequence.

[...]

-- Escape: \.
Similar to `\\', the sequence `\.' isn't a real escape sequence.
As before, a warning message is suppressed if the escape character
is followed by a dot, and the dot itself is printed.
于 2012-07-19T18:13:19.653 回答
5

只需在点前面加上一个宽度为零的字符:

\&. -- this a a dot.

或暂时切换到另一个控制字符:

.cc #
. -- this is a dot.
#cc
于 2014-07-25T19:40:52.153 回答