Previous: Motion Quanta, Up: Measurements [Contents][Index]
A general-purpose register
(one created or updated with the
nr
request42)
is implicitly dimensionless,
or reckoned in basic units if interpreted in a measurement context.
But it is convenient for many requests and escape sequences
to infer a scaling unit for an argument if none is specified.
An explicit scaling unit
(not after a closing parenthesis)
can override an undesirable default.
Effectively,
the default unit is suffixed to the expression
if a scaling unit is not already present.
GNU
troff’s use of integer arithmetic
should also be kept in mind.43
The ll request interprets its argument in ems by default.
Consider several attempts to set a line length of 3.5 inches when
the type size is 10 points on a terminal device with a resolution
of 240 basic units and horizontal motion quantum of 24. Some
expressions become zero; the request clamps them to that quantum.
.ll 3.5i \" 3.5i (= 840u) .ll 7/2 \" 7u/2u -> 3u -> 3m -> 0, clamped to 24u .ll (7 / 2)u \" 7u/2u -> as above .ll 7/2i \" 7u/2i -> 7u/480u -> 0 -> as above .ll 7i/2 \" 7i/2u -> 1680u/2m -> 1680u/24u -> 35u .ll 7i/2u \" 3.5i (= 840u)
The safest way to specify measurements is to attach a scaling unit. To multiply or divide by a dimensionless quantity, use ‘u’ as its scaling unit.