Next: Tabs and Fields, Previous: Manipulating Hyphenation, Up: GNU troff Reference [Contents][Index]
A break causes the formatter to update the vertical drawing position at which the new text baseline is aligned. You can alter this location.
Break and move the next text baseline down by distance, or until
springing a page location trap.62
If invoked with the no-break control character, sp
moves the
pending output line’s text baseline by distance. A negative
distance will not reduce the position of the text baseline below
zero. Inside a diversion, any distance argument is ignored. The
default scaling unit is ‘v’. If distance is not specified,
‘1v’ is assumed.
.pl 5v \" Set page length to 5 vees. .de xx \-\-\- . br .. .wh 0 xx \" Set a trap at the top of the page. foo on page \n% .sp 2v bar on page \n% .sp 50v \" This will cause a page break. baz on page \n% .pl \n(nlu \" Truncate page to current position. ⇒ --- ⇒ foo on page 1 ⇒ ⇒ ⇒ bar on page 1 ⇒ --- ⇒ baz on page 2
You might use the following macros to set the baseline of the next
output text at a given distance from the top or the bottom of the page.
We subtract one line height (\n[.v]
) because the |
operator moves to one vee below the page top (recall Numeric Expressions).
.de y-from-top-down . sp |\\$1-\\n[.v]u .. . .de y-from-bot-up . sp |\\n[.p]u-\\$1-\\n[.v]u ..
A call to ‘.y-from-bot-up 10c’ means that the next text baseline will be 10 cm from the bottom edge of the paper.
Set the line spacing; add count-1 blank lines after each
line of text. With no argument, GNU troff
uses the previous
value before the last ls
call. The default is 1
.
The read-only register .L
contains the current line spacing; it
is associated with the environment (see Environments).
The ls
request is a coarse mechanism. See Changing the Type Size, for the requests vs
and pvs
as alternatives to
ls
.
'
spacing'
Sometimes, an output line requires additional vertical spacing, for
instance to allow room for a tall construct like an inline equation with
exponents or subscripts (particularly if they are iterated). The
\x
escape sequence takes a delimited measurement (like
‘\x'3p'’) to increase the vertical spacing of the pending output
line. The default scaling unit is ‘v’. If the measurement is
positive, extra vertical space is inserted below the current line; a
negative measurement adds space above. If \x
is applied to the
pending output line multiple times, the maxima of the positive and
negative adjustments are separately applied. The delimiter need not be
a neutral apostrophe; see Delimiters.
The .a
read-only register contains the extra vertical spacing
after the text baseline of the most recently emitted output line.
(In other words, it is the largest positive argument to \x
encountered on that line.) This quantity is exposed via a register
because if an output line requires this “extra post-vertical line
spacing”, and the subsequent output line requires “extra pre-vertical
line spacing” (a negative argument to \x
), then applying both
can lead to excessive spacing between the output lines. Text that is
piling high on line n might not require (as much) extra
pre-vertical line spacing if line n-1 carries extra
post-vertical line spacing.
Use of \x
can be necessary in combination with the
bracket-building escape sequence \b
,63 as the following example shows.
.nf This is a test of \[rs]b (1). This is a test of \[rs]b (2). This is a test of \b'xyz'\x'-1m'\x'1m' (3). This is a test of \[rs]b (4). This is a test of \[rs]b (5). ⇒ This is a test of \b (1). ⇒ This is a test of \b (2). ⇒ x ⇒ This is a test of y (3). ⇒ z ⇒ This is a test of \b (4). ⇒ This is a test of \b (5).
Without \x
, the backslashes on the lines marked ‘(2)’ and
‘(4)’ would be overprinted.
Enable no-space mode. Vertical spacing, whether by sp
requests or blank input lines, is disabled. The bp
request to
advance to the next page is also disabled, unless it is accompanied by a
page number (see Page Control). No-space mode ends automatically
when text64 is formatted for output 65 or the rs
request is invoked, which ends
no-space mode. The read-only register .ns
interpolates a Boolean
value indicating the enablement of no-space mode.
A paragraphing macro might ordinarily insert vertical space to separate
paragraphs. A section heading macro could invoke ns
to suppress
this spacing for the first paragraph in a section.
Next: Tabs and Fields, Previous: Manipulating Hyphenation, Up: GNU troff Reference [Contents][Index]