Интерактивная система просмотра системных руководств (man-ов)
>> groff_diff (7) ( FreeBSD man: Макропакеты и соглашения )
groff_diff (7) ( Linux man: Макропакеты и соглашения )
groff_diff - differences between GNU troff and classical troff
This manual page describes the language differences between
text processing system and the classical
formatter of the freely available Unix~7 of the 1970s, documented in
Troff User's Manual
This inludes the roff language as well as the intermediate output
format (troff output).
gives pointers to both the classical
and the modern
In this section, all additional features of
compared to the classical Unix~7
are described in detail.
The names of number registers, fonts, strings/:macros/:diversions,
special characters (glyphs), and colors can be of any length.
In escape sequences, additionally to the classical
construction for a two-character name, you can use
for a name of arbitrary length.
Print the special character (glyph) called
[rs][comp1 comp2 ...]
Print composite glyph consisting of multiple components.
Example: `[rs][A~ho]' is capital letter A with ogonek which finally maps
to glyph name `u0041_0328'.
groff info file
for details how a glyph name for a composite glyph is constructed, and
for list of glyph name components used composite glyph names.
is a new syntax equal to
i.e., to return to the previous font.
[rs]*[xxx arg1 arg2 ...]
Interpolate number register
is equal to
is specified in the
file (1 by default).
There is a new scale indicator
that has the effect of multiplying by sizescale.
Requests and escape sequences in troff interpret arguments that
represent a pointsize as being in units of scaled points, but they
evaluate each such argument using a default scale indicator of
Arguments treated in this way are the argument to the
request, the third argument to the
request, the second and fourth arguments to the
request, the argument to the
escape sequence, and those variants of the
escape sequence that take a numeric expression as their argument.
For example, suppose sizescale is 1000; then a scaled point will be
equivalent to a millipoint; the call
is equivalent to
and so sets the pointsize to 10250 scaled points, which is equal to
The number register
returns the pointsize in points as decimal fraction.
There is also a new number register
that returns the pointsize in scaled points.
It would make no sense to use the
scale indicator in a numeric expression whose default scale indicator
Similarly it would make no sense to use a scaling indicator other than
in a numeric expression whose defaulSegmentation fault (core dumped)