Previous: Motion Quanta, Up: Measurements [Contents][Index]
A general-purpose register (one created or updated with the nr
request; see see Registers) 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 (see Numeric Expressions).
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.