White space primitives

<vspace|len>

<vspace|len|min|max>
(vertical space after)

This primitive inserts an elastic vertical space after the current paragraph. All operands must be length values. The len argument specifies the default length and the min and max arguments the bounds to vertical stretching for page breaking and filling. If min and max are not specified, then they are determined implicitly from the length unit of len.

Notice that operands are not evaluated, so they must be literal strings.

<vspace*|len>

<vspace*|len|min|max>
(vertical space before)

This primitive is similar to vspace, except that the vertical space is inserted before the current paragraph. The actual vertical space between two consecutive paragraphs is the maximum, not the sum, of the vertical spaces specified by the the vspace and vspace* tags in the surrounding paragraphs.

<space|len>

<space|len|bot|top>
(rigid horizontal space)

This primitive inserts an empty box whose width is len, and whose bottom and top sides are at distances bot and top from the baseline.

If bot and top are not specified, then an empty box is inserted whose bottom is on the baseline and whose height is the same as the lowercase letter x in the current font.

Notice that operands are not evaluated, so they must be literal strings.

<hspace|len>

<hspace|len|min|max>
(stretchable horizontal space)

This primitive inserts inserts a stretchable horizontal space of nominal width len, which must be a length value. The min and max arguments specify bounds to horizontal stretching for line breaking and filling. If min and max are not specified, then they are determined implicitly from the length unit of len.

Notice that operands are not evaluated, so they must be literal strings.

<htab|min>

<htab|min|weight>
(horizontal spring)

Springs are horizontal spaces which extend so the containing paragraph takes all the available horizontal space. When a paragraph is line wrapped, split in several visual lines, only springs in the last line are extended.

A spring has a minimal width and a weight. If the weight is 0, the spring is weak, otherwise it is strong. If a line contains mixed weak and strong springs, only the strong springs extend.

The fraction of the available horizontal space taken up by each strong spring is proportional to its weight. If there are only weak springs, they share the available space evenly.

<htab|min> inserts a strong spring of minimal width min and of weight unity. The min operand must be a length value.

<htab|min|weight> specifies the weight, which can be a positive decimal number or one of the two special values documented below.

<htab|min|first> inserts a tail weak spring, only the first one in a paragraph is significant.

<htab|min|last> inserts a head weak spring, only the last one in a paragraph is significant.

Operands are not evaluated and must be literal strings.

Weak springs are useful in style-sheets. For example, tail weak springs are used to make the list environment extend to across the full paragraph, so vertical motion commands in nested lists behave as expected. In regular documents, springs are often used to place some text on the right side of the page and some other text on the left side.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".