5.20.1 Changing the Type Size

Request: .ps [size]
Request: .ps +size
Request: .ps -size
Escape sequence: \ssize
Register: \n[.s]

Set (increase, decrease) the type size to (by) size scaled points. ps with no argument restores the previous size. The ps request’s default scaling unit is ‘z’. The requested size is rounded to the nearest valid size (with ties rounding down) within the limits supported by the device. If the requested size is non-positive, it is treated as 1u.

Type size alteration is incorrectly documented in the AT&T troff manual, which claims “if [the requested size] is invalid, the next larger valid size will result, with a maximum of 36”.101

The read-only string-valued register .s interpolates the type size in points as a decimal fraction; it is associated with the environment (see Environments). To obtain the type size in scaled points, interpolate the .ps register instead (see Using Fractional Type Sizes).

The \s escape sequence supports a variety of syntax forms.

\sn

Set the type size to n scaled points. n must be a single digit.102 If n is ‘0’, restore the previous size.

\s+n
\s-n

Increase or decrease the type size by n scaled points. n must be exactly one digit.

\s(nn

Set the type size to nn scaled points. nn must be exactly two digits. If n is ‘00’, restore the previous size.

\s+(nn
\s-(nn
\s(+nn
\s(-nn

Alter the type size in scaled points by the two-digit value nn.

See Using Fractional Type Sizes, for further syntactical forms of the \s escape sequence that additionally accept decimal fractions.

snap, snap,
.ps +2
grin, grin,
.ps +2
wink, wink, \s+2nudge, nudge,\s+8 say no more!
.ps 10

\s is not tokenized when GNU troff reads its input; it instead updates the environment. It thus can be used in requests that expect a single-character argument. We can thus alter the type size when writing a margin character as follows (see Miscellaneous).

.mc \s[20]x\s[0]
Request: .sizes s1 s2 … sn [0]

The DESC file specifies which type sizes are allowed by the output device; see DESC File Format. Use the sizes request to change this set of permissible sizes. Arguments are in scaled points; see Using Fractional Type Sizes. Each can be a single type size (such as ‘12000’), or a range of sizes (such as ‘4000-72000’). You can optionally end the list with a ‘0’.