groff: Fractional Type Sizes
5.18.2 Fractional Type Sizes
----------------------------
A "scaled point" is equal to 1/SIZESCALE points, where SIZESCALE is
specified in the 'DESC' file (1 by default). There is a new scale
indicator 'z', which has the effect of multiplying by SIZESCALE.
Requests and escape sequences in 'gtroff' interpret arguments that
represent a point size as being in units of scaled points, but they
evaluate each such argument using a default scale indicator of 'z'.
Arguments treated in this way are the argument to the 'ps' request, the
third argument to the 'cs' request, the second and fourth arguments to
the 'tkf' request, the argument to the '\H' escape sequence, and those
variants of the '\s' escape sequence that take a numeric expression as
their argument (see below).
For example, suppose SIZESCALE is 1000; then a scaled point is
equivalent to a millipoint; the request '.ps 10.25' is equivalent to
'.ps 10.25z' and thus sets the point size to 10250 scaled points, which
is equal to 10.25 points.
'gtroff' disallows the use of the 'z' scale indicator in instances
where it would make no sense, such as a numeric expression whose default
scale indicator was neither 'u' nor 'z'. Similarly it would make no
sense to use a scaling indicator other than 'z' or 'u' in a numeric
expression whose default scale indicator was 'z', and so 'gtroff'
disallows this as well.
There is also new scale indicator 's', which multiplies by the number
of units in a scaled point. So, for example, '\n[.ps]s' is equal to
'1m'. Be sure not to confuse the 's' and 'z' scale indicators.
-- Register: \n[.ps]
A read-only number register returning the point size in scaled
points.
'.ps' is associated with the current environment (
Environments).
-- Register: \n[.psr]
-- Register: \n[.sr]
The last-requested point size in scaled points is contained in the
'.psr' read-only number register. The last requested point size in
points as a decimal fraction can be found in '.sr'. This is a
string-valued read-only number register.
Note that the requested point sizes are device-independent, whereas
the values returned by the '.ps' and '.s' registers are not. For
example, if a point size of 11pt is requested, and a 'sizes'
request (or a 'sizescale' line in a 'DESC' file) specifies 10.95pt
instead, this value is actually used.
Both registers are associated with the current environment (
Environments).
The '\s' escape has the following syntax for working with fractional
type sizes:
'\s[N]'
'\s'N''
Set the point size to N scaled points; N is a numeric expression
with a default scale indicator of 'z'.
'\s[+N]'
'\s[-N]'
'\s+[N]'
'\s-[N]'
'\s'+N''
'\s'-N''
'\s+'N''
'\s-'N''
Increase or or decrease the point size by N scaled points; N is a
numeric expression (which may start with a minus sign) with a
default scale indicator of 'z'.
Font Files.