GROFF_OUT(5)                                         GROFF_OUT(5)

NAME
       groff_out - groff intermediate output format

DESCRIPTION
       This manual page describes the format output by GNU troff.
       The output format used by GNU troff  is  very  similar  to
       that  used by Unix device-independent troff. Only the dif-
       ferences 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 not be used by GNU pic if the -n option is given.

       Df n\n Set  the shade of gray to be used for filling solid
              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,
              GNU pic only uses this command to  generate  trian-
              gles 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  Unix troff drivers use a line thick-
              ness  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  GNU
       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 ~, Unix troff will
       treat each of the $x sub i$ as a horizontal quantity,  and
       each  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
       examining  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 GNU troff also  fol-
       lows  this rule, even though it produces an ugly result in
       the case of the Df, Dt, and, to a lesser extent,  DE  com-
       mands.  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, GNU troff will
       follow each newline in the argument with a + character (as
       usual,  it  will terminate the entire argument with a new-
       line); 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
       groff_font(5)

Groff Version 1.11         26 June 1995                         1