如何逃避手册页中的新行

时间:2015-10-29 20:46:43

标签: unix man groff troff

我重构了一个手册页的段落,以便每个句子都是它自己的行。使用man ./somefile.3进行渲染时输出略有不同。

让我举个例子:

This is line 1. This is line 2.

VS

This is line 1.
This is line 2.

渲染是这样的:

首先:

This is line 1. This is line 2.

第二

This is line 1.  This is line 2.

句子之间有一个额外的空格。请注意,我已确保没有额外的空白区域。我有更多使用Latex,asciidoc和markdown的经验,我可以控制那里,是否可以使用troff / groff?如果可能的话,我想避免这种情况。我不认为应该在那里。

2 个答案:

答案 0 :(得分:1)

troff输入标准是在每个句子的末尾添加换行符,并让排版员在填写时完成其工作。 (虽然我怀疑这是意图,它确实使它在源代码控制方面发挥得更好。)因此,它认为句子结尾位于以句点结尾的行尾(或?或{{1 },并且可选地后跟!'"*]或†)。它还认为句子之间应该有两个空格。这几乎肯定来自贝尔实验室当时的排版标准;很奇怪这种行为不能通过任何填充模式设置。

)确实提供了一种设置“句子间”间距的方法,使用扩展的.ss request

  

.ss word_space_size [sentence_space_size]

     

更改单词之间的空格大小。它将单位作为一个单位   当前字体的空间宽度参数的第十二个。原来   word_space_size和sentence_space_size都是12.在填充模式下,   值指定最小距离。

     

如果ss请求有两个参数,则第二个参数设置   句子空间大小。如果没有给出第二个参数,则判刑   space size设置为word_space_size。使用句子空间大小   在两种情况下:如果一个句子的结尾发生在一个结尾   在填充模式中行,然后是单词间空格和句子空间   被添加;如果两个空格跟在句子中间的句子末尾   一行,然后第二个空格是一个句子空间。如果一秒钟   参数永远不会给ss请求,UNIX troff的行为   与GNU troff展示的相同。在GNU troff中,与在UNIX中一样   troff,一句话应该总是后面跟一个换行符   空格。

因此,您可以通过发出请求

来指定“句子空间”应为零宽度
groff

据我所知,这是一个延伸;传家宝troff支持它,但较旧的dwb派生版本可能不支持。

示例:

.ss 12 0

结果:

This is line 1. This is line 2.

This is line 1.  This is line 2.

This is line 1.
This is line 2.

SET SENTENCE SPACING

.ss 12 0
This is line 1. This is line 2.

This is line 1.  This is line 2.

This is line 1.
This is line 2.

答案 1 :(得分:0)

所以以下内容可行,但我希望有更好的选择。

This is line 1. \
This is line 2.

呈现为

This is line 1. This is line 2.