GROFF_OUT(5) GROFF_OUT(5)
NAME
groff_out - format of groff output
DESCRIPTION
The output format used by groff is very similar to that
used by device-independent troff. Only the differences are
documented here.
The argument to the s command is in scaled points (units
of points/n, where n is the argument to the sizescale com-
mand in the DESC file.) The argument to the x Height
command is also in scaled points.
The first three output commands are guaranteed to be:
x T device
x res n h v
x init
If the tcommand line is present in the DESC file, troff
will use the following two commands
txxx xxx is any sequence of characters terminated by a
space or a newline; the first character should be
printed at the current position, the the current
horizontal position should be increased by the
width of the first character, and so on for each
character. The width of the character is that
given in the font file, appropriately scaled for
the current point size, and rounded so that it is a
multiple of the horizontal resolution. Special
characters cannot be printed using this command.
un xxx This is same as the t command except that after
printing each character, the current horizontal
position is increased by the sum of the width of
that character and n.
Note that single characters can have the eighth bit set,
as can the names of fonts and special characters.
The names of characters and fonts an be of arbitrary
length; drivers should not assume that they will be only
two characters long.
When a character is to be printed, that character will
always be in the current font. Unlike device-independent
troff, it is not necessary for drivers to search special
fonts to find a character.
The D drawing command has been extended. These extensions
will only be used by pic -x option is given.
Df n\n Set the shade of gray to be used for filling solid
Groff Version 1.05 November 22, 1992 1
GROFF_OUT(5) GROFF_OUT(5)
objects to n; n must be an integer between 0 and
1000, where 0 corresponds solid white and 1000 to
solid black, and values in between correspond to
intermediate shades of gray. This applies only to
solid circles, solid ellipses and solid polygons.
By default, a level of 1000 will be used. Whatever
color a solid object has, it should completely
obscure everything beneath it. A value greater
than 1000 or less than 0 can also be used: this
means fill with the shade of gray that is currently
being used for lines and text. Normally this will
be black, but some drivers may provide a way of
changing this.
DC d\n Draw a solid circle with a diameter of d with the
leftmost point at the current position.
DE dx dy\n
Draw a solid ellipse with a horizontal diameter of
dx and a vertical diameter of dy with the leftmost
point at the current position. delim $$
Dp $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx
sub n$ $dy sub n$\n
Draw a polygon with, for $i = 1 ,..., n+1$, the i-
th vertex at the current position $+ sum from j=1
to i-1 ( dx sub j , dy sub j )$. At the moment,
pic only uses this command to generate triangles
and rectangles.
DP $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx
sub n$ $dy sub n$\n
Like Dp but draw a solid rather than outlined poly-
gon.
Dt n\n Set the current line thickness to n machine units.
Traditionally troff drivers use a line thickness
proportional to the current point size; drivers
should continue to do this if no Dt command has
been given, or if a Dt command has been given with
a negative value of n. A zero value of n selects
the smallest available line thickness.
A difficulty arises in how the current position should be
changed after the execution of these commands. This is
not of great importance since the code generated by pic
does not depend on this. Given a drawing command of the
form
\D'c $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$
$x sub n$ $y sub n$'
where c is not one of c, e, l, a or ~, troff will treat
each of the $x sub i$ as a horizontal quantity, and each
Groff Version 1.05 November 22, 1992 2
GROFF_OUT(5) GROFF_OUT(5)
of the $y sub i$ as a vertical quantity and will assume
that the width of the drawn object is $sum from i=1 to n x
sub i$, and that the height is $sum from i=1 to n y sub
i$. (The assumption about the height can be seen by exam-
ining the st and sb registers after using such a D command
in a \w escape sequence.) This rule also holds for all
the original drawing commands with the exception of De.
For the sake of compatibility troff also follows this
rule, even though it produces an ugly result in the case
of the Df, Dt, and, to a lesser extent, DE commands. Thus
after executing a D command of the form
Dc $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x
sub n$ $y sub n$\n
the current position should be increased by $( sum from
i=1 to n x sub i , sum from i=1 to n y sub i )$.
There is a continuation convention which permits the argu-
ment to the x X command to contain newlines: when out-
putting the argument to the x X command, troff will follow
each newline in the argument with a + character (as usual,
it will terminate the entire argument with a newline);
thus if the line after the line containing the x X command
starts with +, then the newline ending the line containing
the x X command should be treated as part of the argument
to the x X command, the + should be ignored, and the part
of the line following the + should be treated like the
part of the line following the x X command.
SEE ALSO
grofffont(5)
Groff Version 1.05 November 22, 1992 3