2015-10-29 21 views
1

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

让我给个例子:

This is line 1. This is line 2. 

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和降价有更多的经验,我可以控制那里,可以用troff/groff?如果可能,我想避免这种情况。我不想认为它应该在那里。

+1

注追随者为每个标签的非常低的计数。鉴于'groff/troff',我会添加一个'[unix]'标签,而不是linux。下面有很好的侦探工作。有时候这就是你所得到的,但是我很久没有使用'troff'了。祝你好运! – shellter

+0

哦,上帝@shellter你是正确的感谢信息。 – mmlb

回答

1

troff输入标准是必须在每一个句子的结尾换行,并让排版完成其工作与灌装。 (尽管我怀疑它是否是意图,但它确实使它在源代码控制方面表现更好)。因此,它认为句子结束于以句点结束的行的末尾(或?!,并且可选地跟着'"*],)或者†)。它也认为句子之间应该有两个空格。这几乎肯定来自当时贝尔实验室的印刷标准;这很奇怪,这种行为是而不是可以通过任何填充模式设置。

groff确实提供了一种方式来设置 “句帧间” 间距,与延伸.ss request

.SS word_space_size [sentence_space_size]

变化单词之间的空间的大小。它将其单位作为当前字体的空间宽度参数的十二分之一 。最初 word_space_size和sentence_space_size都是12.在填充模式下,值为 指定最小距离。

如果对ss请求给出两个参数,则第二个参数设置句子空间大小 。如果没有给出第二个参数,则将句子 的空间大小设置为word_space_size。在两种情况下使用句子空间大小 :如果句子结尾在填充模式下出现在 行的末尾,则添加词间空间和句子空间 ;如果两个空格跟在 中间的句子结尾处,则第二个空格是句子空间。如果第二个 参数从未提供给ss请求,那么UNIX troff 的行为与GNU troff展示的行为相同。在GNU troff中,正如在UNIX troff中,句子后面应该总是跟着一个换行符或两个 之间的空格。

所以,你可以指定由提出请求

.ss 12 0 

据我知道,“一句话空间”应该是零宽度,这是一个groff的扩展;传家宝troff支持它,但更老的dwb衍生版本可能不支持。

例子:

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. 

结果:

$ groff -T ascii spaces.tr |sed -n -e/./p 
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 
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

所以下面的工作,但我希望有一个更好的选择。

This is line 1. \ 
This is line 2. 

呈现为

This is line 1. This is line 2.