/[groff]/groff/man/groff_out.man
ViewVC logotype

Diff of /groff/man/groff_out.man

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by wlemb, Sat Jul 3 12:46:58 2004 UTC revision 1.22 by wl, Sun Jul 3 12:18:55 2005 UTC
# Line 3  Line 3 
3  .ig  .ig
4  groff_out.5  groff_out.5
5    
6  Last update: 2 Jul 2004  Last update: 2 Jul 2005
7    
8  This file is part of groff, the GNU roff type-setting system.  This file is part of groff, the GNU roff type-setting system.
9    
10  Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.  Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005
11    Free Software Foundation, Inc.
12  rewritten from scrach 2001 by Bernd Warken <bwarken@mayn.de>  rewritten from scrach 2001 by Bernd Warken <bwarken@mayn.de>
13    
14  Permission is granted to copy, distribute and/or modify this document  Permission is granted to copy, distribute and/or modify this document
# Line 255  groff_out \- groff intermediate output f Line 256  groff_out \- groff intermediate output f
256  .SH DESCRIPTION  .SH DESCRIPTION
257  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
258  .  .
259  This manual page describes the intermediate output format of the GNU  This manual page describes the
260    .I intermediate output
261    format of the GNU
262  .BR roff (@MAN7EXT@)  .BR roff (@MAN7EXT@)
263  text processing system.  text processing system
264    .BR groff (@MAN1EXT@).
265  .  .
266  This output is produced by a run of the GNU  This output is produced by a run of the GNU
267  .BR troff (@MAN1EXT@)  .BR @g@troff (@MAN1EXT@)
268  program before it is fed into a device postprocessor program.  program.
269    .
270    It contains already all device-specific information, but it is not yet
271    fed into a device postprocessor program.
272    .
273  .  .
274  .P  .P
275  As the GNU roff processor  As the GNU
276    .I roff
277    processor
278  .BR groff (@MAN1EXT@)  .BR groff (@MAN1EXT@)
279  is a wrapper program around troff that automatically calls a  is a wrapper program around
280    .B @g@troff
281    that automatically calls a
282  postprocessor, this output does not show up normally.  postprocessor, this output does not show up normally.
283  .  .
284  This is why it is called  This is why it is called
# Line 279  The Line 291  The
291  .B groff  .B groff
292  program provides the option  program provides the option
293  .B -Z  .B -Z
294  to inhibit postprocessing, such that the produced intermediate output  to inhibit postprocessing, such that the produced
295    .I intermediate output
296  is sent to standard output just like calling  is sent to standard output just like calling
297  .B troff  .B @g@troff
298  manually.  manually.
299  .  .
300    .
301  .P  .P
302  In this document, the term  In this document, the term
303  .I troff output  .I @g@troff output
304  describes what is output by the GNU troff program, while  describes what is output by the GNU
305    .B @g@troff
306    program, while
307  .I intermediate output  .I intermediate output
308  refers to the language that is accepted by the parser that prepares  refers to the language that is accepted by the parser that prepares
309  this output for the postprocessors.  this output for the postprocessors.
# Line 295  this output for the postprocessors. Line 311  this output for the postprocessors.
311  This parser is smarter on whitespace and implements obsolete elements  This parser is smarter on whitespace and implements obsolete elements
312  for compatibility, otherwise both formats are the same.  for compatibility, otherwise both formats are the same.
313  .  .
314  The pre-groff roff versions are denoted as  Both formats can be viewed directly with
315  .I classical  .BR \%gxditview (@MAN1EXT@).
316  .IR troff .  .
317  .  .
318  .P  .P
319  The main purpose of the intermediate output concept is to facilitate  The main purpose of the
320  the development of postprocessors by providing a common programming  .I intermediate output
321  interface for all devices.  concept is to facilitate the development of postprocessors by
322    providing a common programming interface for all devices.
323  .  .
324  It has a language of its own that is completely different from the  It has a language of its own that is completely different from the
325  .BR groff (@MAN7EXT@)  .BR groff (@MAN7EXT@)
# Line 311  language. Line 328  language.
328  While the  While the
329  .I groff  .I groff
330  language is a high-level programming language for text processing, the  language is a high-level programming language for text processing, the
331  intermediate output language is a kind of low-level assembler language  .I intermediate output
332  by specifying all positions on the page for writing and drawing.  language is a kind of low-level assembler language by specifying all
333    positions on the page for writing and drawing.
334    .
335  .  .
336  .P  .P
337  The intermediate output produced by  The
338  .I groff  .RI pre- groff
339    .I roff
340    versions are denoted as
341    .I classical
342    .IR troff .
343    The
344    .I intermediate output
345    produced by
346    .B groff
347  is fairly readable, while  is fairly readable, while
348  .I classical troff  .I classical troff
349  output was hard to understand because of strange habits that are  output was hard to understand because of strange habits that are
350  still supported, but not used any longer by  still supported, but not used any longer by
351  .I GNU  .I GNU
352  .IR troff .  .IR @g@troff .
353  .  .
354  .  .
355  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
# Line 330  still supported, but not used any longer Line 357  still supported, but not used any longer
357  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
358  .  .
359  During the run of  During the run of
360  .BR troff ,  .BR @g@troff ,
361  the roff input is cracked down to the information on what has to be  the
362  printed at what position on the intended device.  .I roff
363    input is cracked down to the information on what has to be printed at
364    what position on the intended device.
365  .  .
366  So the language of the intermediate output format can be quite small.  So the language of the
367    .I intermediate output
368    format can be quite small.
369  .  .
370  Its only elements are commands with or without arguments.  Its only elements are commands with or without arguments.
371  .  .
372  In this document, the term "command" always refers to the intermediate  In this document, the term "command" always refers to the
373  output language, never to the roff language used for document  .I intermediate output
374  formatting.  language, never to the
375    .I roff
376    language used for document formatting.
377  .  .
378  There are commands for positioning and text writing, for drawing, and  There are commands for positioning and text writing, for drawing, and
379  for device controlling.  for device controlling.
# Line 354  for device controlling. Line 387  for device controlling.
387  had strange requirements on whitespace.  had strange requirements on whitespace.
388  .  .
389  The  The
390  .I groff  .B groff
391  output parser, however, is smart about whitespace by making it  output parser, however, is smart about whitespace by making it
392  maximally optional.  maximally optional.
393  .  .
394  The whitespace characters, i.e.\& the  The whitespace characters, i.e., the
395  .IR tab ,  .IR tab ,
396  .IR space ,  .IR space ,
397  and  and
# Line 368  characters, always have a syntactical me Line 401  characters, always have a syntactical me
401  They are never printable because spacing within the output is always  They are never printable because spacing within the output is always
402  done by positioning commands.  done by positioning commands.
403  .  .
404    .
405  .P  .P
406  Any sequence of  Any sequence of
407  .I space  .I space
408  or  or
409  .I tab  .I tab
410  characters is treated as a single  characters is treated as a single
411  .B syntactical  .I syntactical
412  .BR space .  .IR space .
413  .  .
414  It separates commands and arguments, but is only required when there  It separates commands and arguments, but is only required when there
415  would occur a clashing between the command code and the arguments  would occur a clashing between the command code and the arguments
# Line 385  Most often, this happens when variable l Line 419  Most often, this happens when variable l
419  arguments, argument lists, or command clusters meet.  arguments, argument lists, or command clusters meet.
420  .  .
421  Commands and arguments with a known, fixed length need not be  Commands and arguments with a known, fixed length need not be
422  separated by syntactical space.  separated by
423    .I syntactical
424    .IR space .
425    .
426  .  .
427  .P  .P
428  A line break is a syntactical element, too.  A line break is a syntactical element, too.
# Line 394  Every command argument can be followed b Line 431  Every command argument can be followed b
431  newline character.  newline character.
432  .  .
433  Thus a  Thus a
434  .B syntactical line break  .I syntactical line break
435  is defined to consist of optional syntactical space that is optionally  is defined to consist of optional
436  followed by a comment, and a newline character.  .I syntactical space
437    that is optionally followed by a comment, and a newline character.
438    .
439  .  .
440  .P  .P
441  The normal commands, those for positioning and text, consist of a  The normal commands, those for positioning and text, consist of a
442  single letter taking a fixed number of arguments.  single letter taking a fixed number of arguments.
443  .  .
444  For historical reasons, the parser allows to stack such commands on  For historical reasons, the parser allows to stack such commands on
445  the same line, but fortunately, in groff intermediate output, every  the same line, but fortunately, in
446  command with at least one argument is followed by a line break, thus  .I groff intermediate
447  providing excellent readability.  .IR output ,
448    every command with at least one argument is followed by a line break,
449    thus providing excellent readability.
450  .  .
451  .P  .P
452  The other commands \[em] those for drawing and device controlling \[em]  The other commands \[em] those for drawing and device controlling \[em]
# Line 424  Only one command, Line 465  Only one command,
465  .RB ` x\ X '  .RB ` x\ X '
466  has an argument that can stretch over several lines, all other  has an argument that can stretch over several lines, all other
467  commands must have all of their arguments on the same line as the  commands must have all of their arguments on the same line as the
468  command, i.e.\& the arguments may not be splitted by a line break.  command, i.e., the arguments may not be splitted by a line break.
469  .  .
470  .P  .P
471  Empty lines, i.e.\& lines containing only space and/or a comment, can  Empty lines, i.e., lines containing only space and/or a comment, can
472  occur everywhere.  occur everywhere.
473  .  .
474  They are just ignored.  They are just ignored.
# Line 442  values in a measurement unit, but the le Line 483  values in a measurement unit, but the le
483  .I scale indicator  .I scale indicator
484  is not written with the output command arguments; see  is not written with the output command arguments; see
485  .BR groff (@MAN7EXT@)  .BR groff (@MAN7EXT@)
486  and the groff info file for more on this topic.  and the
487    .I groff info file
488    for more on this topic.
489  .  .
490  Most commands assume the scale indicator\~\c  Most commands assume the scale indicator\~\c
491  .unit u ,  .unit u ,
# Line 460  They are defined by the parameters speci Line 503  They are defined by the parameters speci
503  file; see  file; see
504  .BR groff_font (@MAN5EXT@).  .BR groff_font (@MAN5EXT@).
505  .  .
506    .
507  .P  .P
508  Note that single characters can have the eighth bit set, as can the  Note that single characters can have the eighth bit set, as can the
509  names of fonts and special characters.  names of fonts and special characters.
# Line 468  The names of characters and fonts can be Line 512  The names of characters and fonts can be
512  .  .
513  A character that is to be printed will always be in the current font.  A character that is to be printed will always be in the current font.
514  .  .
515    .
516  .P  .P
517  A string argument is always terminated by the next whitespace  A string argument is always terminated by the next whitespace
518  character (space, tab, or newline); an embedded  character (space, tab, or newline); an embedded
# Line 483  argument or command. Line 528  argument or command.
528  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
529  .SS "Document Parts"  .SS "Document Parts"
530  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
531  A correct intermediate output document consists of two parts, the  A correct
532  prologue and the body.  .I intermediate output
533    document consists of two parts, the
534    .I prologue
535    and the
536    .IR body .
537  .  .
538  .P  .P
539  The task of the  The task of the
# Line 509  is guaranteed to consist of the followin Line 558  is guaranteed to consist of the followin
558  with the arguments set as outlined in the section  with the arguments set as outlined in the section
559  .BR "Device Control Commands" .  .BR "Device Control Commands" .
560  .  .
561  But the parser for the intermediate output format is able to swallow  But the parser for the
562  additional whitespace and comments as well.  .I intermediate output
563    format is able to swallow additional whitespace and comments as well.
564    .
565  .  .
566  .P  .P
567  The  The
# Line 518  The Line 569  The
569  is the main section for processing the document data.  is the main section for processing the document data.
570  .  .
571  Syntactically, it is a sequence of any commands different from the  Syntactically, it is a sequence of any commands different from the
572  ones used in the prologue.  ones used in the
573    .IR prologue .
574  .  .
575  Processing is terminated as soon as the first  Processing is terminated as soon as the first
576  .B x\ stop  .B x\ stop
577  command is encountered; the last line of any groff intermediate output  command is encountered; the last line of any
578    .I groff intermediate output
579  always contains such a command.  always contains such a command.
580  .  .
581    .
582  .P  .P
583  Semantically, the body is page oriented.  Semantically, the
584    .I body
585    is page oriented.
586  .  .
587  A new page is started by a  A new page is started by a
588  .BR p \~command.  .BR p \~command.
# Line 547  is done relative to the current location Line 603  is done relative to the current location
603  .SH "COMMAND REFERENCE"  .SH "COMMAND REFERENCE"
604  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
605  .  .
606  This section describes all intermediate output commands, the classical  This section describes all
607  commands as well as the  .I intermediate output
608    commands, the classical commands as well as the
609  .I groff  .I groff
610  extensions.  extensions.
611  .  .
# Line 566  Ignore any characters from the Line 623  Ignore any characters from the
623  character up to the next newline character.  character up to the next newline character.
624  .  .
625  .P  .P
626  This command is the only possibility for commenting in the intermediate  This command is the only possibility for commenting in the
627  output.  .I intermediate
628    .IR output .
629  .  .
630  Each comment can be preceded by arbitrary  Each comment can be preceded by arbitrary
631  .I syntactical  .I syntactical
# Line 595  All of these commands are stackable, i.e Line 653  All of these commands are stackable, i.e
653  other simple commands or followed by arbitrary other commands on the  other simple commands or followed by arbitrary other commands on the
654  same line.  same line.
655  .  .
656  A separating syntactical space is only necessary when two integer  A separating
657  arguments would clash or if the preceding argument ends with a string  .I syntactical space
658  argument.  is only necessary when two integer arguments would clash or if the
659    preceding argument ends with a string argument.
660  .  .
661  .  .
662  .if (\n[@USE_ENV_STACK] == 1) \{\  .if (\n[@USE_ENV_STACK] == 1) \{\
# Line 622  stack as the actual device configuration Line 681  stack as the actual device configuration
681  Print a special groff character named  Print a special groff character named
682  .argument xxx .  .argument xxx .
683  .  .
684  The trailing syntactical space or line break is necessary to allow  The trailing
685  character names of arbitrary length.  .I syntactical space
686    or
687    .I line break
688    is necessary to allow character names of arbitrary length.
689  .  .
690  The character is printed at the current print position;  The character is printed at the current print position; the
691  the character's size is read from the font file.  character's size is read from the font file.
692  .  .
693  The print position is not changed.  The print position is not changed.
694  .  .
# Line 661  Move Line 723  Move
723  .unit u  .unit u
724  horizontally to the right.  horizontally to the right.
725  .  .
726  .I [54]  .I [CSTR\~#54]
727  allows negative values for  allows negative values for
728  .I n  .I n
729  also, but  also, but
# Line 681  The color components are specified as in Line 743  The color components are specified as in
743  The number of color components and their meaning vary for the  The number of color components and their meaning vary for the
744  different color schemes.  different color schemes.
745  .  .
746  These commands are generated by the groff escape sequence  These commands are generated by the
747    .I groff
748    escape sequence
749  .BR \*[@backslash]m .  .BR \*[@backslash]m .
750  .  .
751  No position changing.  No position changing.
752  .  .
753  These commands are a groff extension.  These commands are a
754    .I groff
755    extension.
756  .  .
757  .  .
758  .RS  .RS
# Line 735  For example, Line 801  For example,
801  .B N\~-193  .B N\~-193
802  represents an unbreakable space which has a width of 193u.  represents an unbreakable space which has a width of 193u.
803  .  .
804  This command is a groff extension.  This command is a
805    .I groff
806    extension.
807  .  .
808  .  .
809  .command n b\ a  .command n b\ a
810  Inform the device about a line break, but no positioning is done by  Inform the device about a line break, but no positioning is done by
811  this command.  this command.
812  .  .
813  In classical troff, the integer arguments  In
814    .I classical
815    .IR troff ,
816    the integer arguments
817  .argument b  .argument b
818  and\~\c  and\~\c
819  .argument a  .argument a
820  informed about the space before and after the current line to  informed about the space before and after the current line to
821  make the intermediate output more human readable without performing  make the
822  any action.  .I intermediate output
823    more human readable without performing any action.
824  .  .
825  In groff, they are just ignored, but they must be provided for  In
826  compatibility reasons.  .IR groff ,
827    they are just ignored, but they must be provided for compatibility
828    reasons.
829  .  .
830  .  .
831  .command p n  .command p n
# Line 778  scaled points Line 852  scaled points
852  (this is unit\~\c  (this is unit\~\c
853  .unit z  .unit z
854  in GNU  in GNU
855  .BR troff ).  .BR @g@troff ).
856  .  .
857  Classical troff used the unit  .I Classical troff
858    used the unit
859  .I points  .I points
860  (\c  (\c
861  .unit p )  .unit p )
# Line 790  instead; see section Line 865  instead; see section
865  .  .
866  .command t xxx \[la]white_space\[ra]  .command t xxx \[la]white_space\[ra]
867  .command+ t "xxx dummy_arg" \[la]white_space\[ra]  .command+ t "xxx dummy_arg" \[la]white_space\[ra]
868  Print a word, i.e.\& a sequence of characters  Print a word, i.e., a sequence of characters
869  .argument xxx  .argument xxx
870  terminated by a space character or a line break; an optional second  terminated by a space character or a line break; an optional second
871  integer argument is ignored (this allows the formatter to generate  integer argument is ignored (this allows the formatter to generate
# Line 808  Special characters cannot be printed usi Line 883  Special characters cannot be printed usi
883  .B C  .B C
884  command for named characters).  command for named characters).
885  .  .
886  This command is a groff extension; it is only used for devices whose  This command is a
887    .I groff
888    extension; it is only used for devices whose
889  .I DESC  .I DESC
890  file contains the  file contains the
891  .B tcommand  .B tcommand
# Line 828  character and\~\c Line 905  character and\~\c
905  (an integer in  (an integer in
906  basic units\~\c  basic units\~\c
907  .unit u ).  .unit u ).
908  This command is a groff extension; it is only used for devices whose  This command is a
909    .I groff
910    extension; it is only used for devices whose
911  .I DESC  .I DESC
912  file contains the  file contains the
913  .B tcommand  .B tcommand
# Line 853  down Line 932  down
932  .RI ( n  .RI ( n
933  is a non-negative integer).  is a non-negative integer).
934  .  .
935  .I [54]  .I [CSTR\~#54]
936  allows negative values for  allows negative values for
937  .I n  .I n
938  also, but  also, but
# Line 871  The spacing itself must be performed exp Line 950  The spacing itself must be performed exp
950  .SS "Graphics Commands"  .SS "Graphics Commands"
951  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
952  .  .
953  Each graphics or drawing command in the intermediate output starts  Each graphics or drawing command in the
954  with the letter\~\c  .I intermediate output
955    starts with the letter\~\c
956  .B D  .B D
957  followed by one or two characters that specify a subcommand; this  followed by one or two characters that specify a subcommand; this
958  is followed by a fixed or variable number of integer arguments that  is followed by a fixed or variable number of integer arguments that
959  are separated by a single space character.  are separated by a single space character.
960  .  .
961  A  A
962  .BR D \ command  .B D\c
963  may not be followed by another command on the same line  \~command
964  (apart from a comment), so each  may not be followed by another command on the same line (apart from a
965  .BR D \ command  comment), so each
966  is terminated by a syntactical line break.  .B D\c
967    \~command
968    is terminated by a
969    .I syntactical line
970    .IR break .
971    .
972  .  .
973  .P  .P
974  .I troff  .B @g@troff
975  output follows the classical spacing rules (no space between command  output follows the classical spacing rules (no space between command
976  and subcommand, all arguments are preceded by a single space  and subcommand, all arguments are preceded by a single space
977  character), but the parser allows optional space between the command  character), but the parser allows optional space between the command
# Line 894  letters and makes the space before the f Line 979  letters and makes the space before the f
979  .  .
980  As usual, each space can be any sequence of tab and space characters.  As usual, each space can be any sequence of tab and space characters.
981  .  .
982    .
983  .P  .P
984  Some graphics commands can take a variable number of arguments.  Some graphics commands can take a variable number of arguments.
985  .  .
# Line 912  stand for vertical distances where posit Line 998  stand for vertical distances where posit
998  .  .
999  All these distances are offsets relative to the current location.  All these distances are offsets relative to the current location.
1000  .  .
1001    .
1002  .P  .P
1003  Unless indicated otherwise, each graphics command directly corresponds  Unless indicated otherwise, each graphics command directly corresponds
1004  to a similar  to a similar
# Line 920  to a similar Line 1007  to a similar
1007  escape sequence; see  escape sequence; see
1008  .BR groff (@MAN7EXT@).  .BR groff (@MAN7EXT@).
1009  .  .
1010    .
1011  .P  .P
1012  Unknown D\~commands are assumed to be device-specific.  Unknown
1013    .B D\c
1014    \~commands are assumed to be device-specific.
1015  .  .
1016  Its arguments are parsed as strings; the whole information is then  Its arguments are parsed as strings; the whole information is then
1017  sent to the postprocessor.  sent to the postprocessor.
1018  .  .
1019    .
1020  .P  .P
1021  In the following command reference, the syntax element  In the following command reference, the syntax element
1022  .I \[la]line_break\[ra]  .I \[la]line_break\[ra]
# Line 942  then to offset Line 1033  then to offset
1033  .indexed_offset h 2 v 2  .indexed_offset h 2 v 2
1034  if given, etc.\& up to  if given, etc.\& up to
1035  .indexed_offset h n v n .  .indexed_offset h n v n .
1036  This command takes a variable number of argument pairs;  This command takes a variable number of argument pairs; the current
1037  the current position is moved to the terminal point of the drawn curve.  position is moved to the terminal point of the drawn curve.
1038  .  .
1039  .  .
1040  .Da-command  .Da-command
# Line 967  position to the rightmost point of the c Line 1058  position to the rightmost point of the c
1058  An optional second integer argument is ignored (this allows to the  An optional second integer argument is ignored (this allows to the
1059  formatter to generate an even number of arguments).  formatter to generate an even number of arguments).
1060  .  .
1061  This command is a groff extension.  This command is a
1062    .I groff
1063    extension.
1064  .  .
1065  .  .
1066  .D-command c d  .D-command c d
# Line 990  and a vertical diameter of\~\c Line 1083  and a vertical diameter of\~\c
1083  with the leftmost point at the current position; then move to the  with the leftmost point at the current position; then move to the
1084  rightmost point of the ellipse.  rightmost point of the ellipse.
1085  .  .
1086  This command is a groff extension.  This command is a
1087    .I groff
1088    extension.
1089  .  .
1090  .  .
1091  .D-command e "h v"  .D-command e "h v"
# Line 1016  The color components are specified as in Line 1111  The color components are specified as in
1111  The number of color components and their meaning vary for the  The number of color components and their meaning vary for the
1112  different color schemes.  different color schemes.
1113  .  .
1114  These commands are generated by the groff escape sequences  These commands are generated by the
1115    .I groff
1116    escape sequences
1117  .B \*[@backslash]D'F\ .\|.\|.'  .B \*[@backslash]D'F\ .\|.\|.'
1118  and  and
1119  .B \*[@backslash]M  .B \*[@backslash]M
# Line 1024  and Line 1121  and
1121  .  .
1122  No position changing.  No position changing.
1123  .  .
1124  This command is a groff extension.  This command is a
1125    .I groff
1126    extension.
1127  .  .
1128  .  .
1129  .RS  .RS
# Line 1091  Df -1 Line 1190  Df -1
1190  sets all colors to blue.  sets all colors to blue.
1191  .RE  .RE
1192  .  .
1193    .
1194  .P  .P
1195  No position changing.  No position changing.
1196  .  .
1197  This command is a groff extension.  This command is a
1198    .I groff
1199    extension.
1200  .  .
1201  .RE  .RE
1202  .  .
# Line 1129  As the polygon is closed, the end of dra Line 1231  As the polygon is closed, the end of dra
1231  the position doesn't change.  the position doesn't change.
1232  \}  \}
1233  .  .
1234  This command is a groff extension.  This command is a
1235    .I groff
1236    extension.
1237  .  .
1238  .  .
1239  .D-multiarg P  .D-multiarg P
# Line 1145  The position is changed in the same way Line 1249  The position is changed in the same way
1249  .el \  .el \
1250  No position changing.  No position changing.
1251  .  .
1252  This command is a groff extension.  This command is a
1253    .I groff
1254    extension.
1255  .  .
1256  .  .
1257  .D-command t n  .D-command t n
# Line 1175  Although this doesn't make sense it is k Line 1281  Although this doesn't make sense it is k
1281  .el \  .el \
1282  No position changing.  No position changing.
1283  .  .
1284  This command is a groff extension.  This command is a
1285    .I groff
1286    extension.
1287  .  .
1288  .  .
1289  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
# Line 1185  This command is a groff extension. Line 1293  This command is a groff extension.
1293  Each device control command starts with the letter  Each device control command starts with the letter
1294  .B x  .B x
1295  followed by a space character (optional or arbitrary space/\:tab in  followed by a space character (optional or arbitrary space/\:tab in
1296  groff) and a subcommand letter or word; each argument (if any) must be  .IR groff )
1297  preceded by a syntactical space.  and a subcommand letter or word; each argument (if any) must be
1298    preceded by a
1299    .I syntactical
1300    .IR space .
1301  .  .
1302  All  All
1303  .B x  .B x
# Line 1197  line (except a comment). Line 1308  line (except a comment).
1308  .  .
1309  .P  .P
1310  The subcommand is basically a single letter, but to increase  The subcommand is basically a single letter, but to increase
1311  readability, it can be written as a word, i.e.\& an arbitrary sequence  readability, it can be written as a word, i.e., an arbitrary sequence
1312  of characters terminated by the next tab, space, or newline character.  of characters terminated by the next tab, space, or newline character.
1313  .  .
1314  All characters of the subcommand word but the first are simply ignored.  All characters of the subcommand word but the first are simply ignored.
1315  .  .
1316  For example,  For example,
1317  .I troff  .B @g@troff
1318  outputs the initialization command  outputs the initialization command
1319  .B x\ i  .B x\ i
1320  as  as
# Line 1233  Use Line 1344  Use
1344  .argument name  .argument name
1345  as the intended name for the current file in error reports.  as the intended name for the current file in error reports.
1346  .  .
1347  This is useful for remembering the original file name when groff uses  This is useful for remembering the original file name when
1348  an internal piping mechanism.  .B groff
1349    uses an internal piping mechanism.
1350  .  .
1351  The input file is not changed by this command.  The input file is not changed by this command.
1352  .  .
1353  This command is a groff extension.  This command is a
1354    .I groff
1355    extension.
1356  .  .
1357  .  .
1358  .x-command f "n\ s"  .x-command f "n\ s"
# Line 1259  Set character height to\~\c Line 1373  Set character height to\~\c
1373  (a positive integer in scaled points\~\c  (a positive integer in scaled points\~\c
1374  .unit z ).  .unit z ).
1375  .  .
1376  Classical troff used the unit  .I Classical troff
1377  points (\c  used the unit points (\c
1378  .unit p )  .unit p )
1379  instead; see section  instead; see section
1380  .BR COMPATIBILITY .  .BR COMPATIBILITY .
# Line 1270  instead; see section Line 1384  instead; see section
1384  .xsub init  .xsub init
1385  Initialize device.  Initialize device.
1386  .  .
1387  This is the third command of the prologue.  This is the third command of the
1388    .IR prologue .
1389  .  .
1390  .  .
1391  .x-command p  .x-command p
# Line 1295  are positive integers in basic units\~\c Line 1410  are positive integers in basic units\~\c
1410  .unit u  .unit u
1411  per inch.  per inch.
1412  .  .
1413  This is the second command of the prologue.  This is the second command of the
1414    .IR prologue .
1415  .  .
1416  .  .
1417  .x-command S n  .x-command S n
# Line 1309  degrees (an integer in basic units\~\c Line 1425  degrees (an integer in basic units\~\c
1425  .x-command s  .x-command s
1426  .xsub stop  .xsub stop
1427  Terminates the processing of the current file; issued as the last  Terminates the processing of the current file; issued as the last
1428  command of any intermediate troff output.  command of any
1429    .I intermediate @g@troff
1430    .IR output .
1431  .  .
1432  .  .
1433  .x-command t  .x-command t
# Line 1317  command of any intermediate troff output Line 1435  command of any intermediate troff output
1435  Generate trailer information, if any.  Generate trailer information, if any.
1436  .  .
1437  In  In
1438  .IR groff ,  .BR groff ,
1439  this is actually just ignored.  this is actually just ignored.
1440  .  .
1441  .  .
# Line 1331  The possible device names coincide with Line 1449  The possible device names coincide with
1449  .B -T  .B -T
1450  option.  option.
1451  .  .
1452  This is the first command of the prologue.  This is the first command of the
1453    .IR prologue .
1454  .  .
1455  .  .
1456  .x-command u n  .x-command u n
# Line 1348  is\~0, stop underlining of spaces. Line 1467  is\~0, stop underlining of spaces.
1467  This is needed for the  This is needed for the
1468  .B cu  .B cu
1469  request in  request in
1470  .I nroff  .B @g@nroff
1471  mode and is ignored otherwise.  mode and is ignored otherwise.
1472  .  .
1473  This command is a groff extension.  This command is a
1474    .I groff
1475    extension.
1476  .  .
1477  .  .
1478  .x-command X anything  .x-command X anything
# Line 1380  This command is generated by the Line 1501  This command is generated by the
1501  escape sequence  escape sequence
1502  .BR \*[@backslash]X .  .BR \*[@backslash]X .
1503  .  .
1504  The line-continuing feature is a groff extension.  The line-continuing feature is a
1505    .I groff
1506    extension.
1507  .  .
1508  .  .
1509  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
# Line 1405  Move right Line 1528  Move right
1528  then print character\~\c  then print character\~\c
1529  .argument c .  .argument c .
1530  .  .
1531    .
1532  .RS  .RS
1533  .P  .P
1534  In groff, arbitrary syntactical space around and within this command  In
1535  is allowed to be added.  .IR groff ,
1536    arbitrary
1537    .I syntactical space
1538    around and within this command is allowed to be added.
1539  .  .
1540  Only when a preceding command on the same line ends with an argument  Only when a preceding command on the same line ends with an argument
1541  of variable length a separating space is obligatory.  of variable length a separating space is obligatory.
# Line 1421  spaces; this made such output almost unr Line 1548  spaces; this made such output almost unr
1548  .  .
1549  .RE  .RE
1550  .  .
1551    .
1552  .P  .P
1553  For modern high-resolution devices, this command does not make sense  For modern high-resolution devices, this command does not make sense
1554  because the width of the characters can become much larger than two  because the width of the characters can become much larger than two
1555  decimal digits.  decimal digits.
1556  .  .
1557  In groff, this is only used for the devices  In
1558    .BR groff ,
1559    this is only used for the devices
1560  .BR X75 ,  .BR X75 ,
1561  .BR X75-12 ,  .BR X75-12 ,
1562  .BR X100 ,  .BR X100 ,
# Line 1448  provide a better functionality. Line 1578  provide a better functionality.
1578  The  The
1579  .I roff  .I roff
1580  postprocessors are programs that have the task to translate the  postprocessors are programs that have the task to translate the
1581  intermediate output into actions that are sent to a device.  .I intermediate output
1582    into actions that are sent to a device.
1583  .  .
1584  A device can be some piece of hardware such as a printer, or a software  A device can be some piece of hardware such as a printer, or a software
1585  file format suitable for graphical or text processing.  file format suitable for graphical or text processing.
# Line 1458  The Line 1589  The
1589  system provides powerful means that make the programming of such  system provides powerful means that make the programming of such
1590  postprocessors an easy task.  postprocessors an easy task.
1591  .P  .P
1592  There is a library function that parses the intermediate output and  There is a library function that parses the
1593  sends the information obtained to the device via methods of a class  .I intermediate output
1594  with a common interface for each device.  and sends the information obtained to the device via methods of a
1595    class with a common interface for each device.
1596  .  .
1597  So a  So a
1598  .I groff  .I groff
# Line 1474  For details, see the reference in sectio Line 1606  For details, see the reference in sectio
1606  .SH "EXAMPLES"  .SH "EXAMPLES"
1607  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
1608  .  .
1609  This section presents the intermediate output generated from the same  This section presents the
1610  input for three different devices.  .I intermediate output
1611    generated from the same input for three different devices.
1612  .  .
1613  The input is the sentence  The input is the sentence
1614  .I hell world  .I hell world
1615  fed into groff on the command line.  fed into
1616    .B groff
1617    on the command line.
1618    .
1619  .  .
1620  .Topic  .Topic
1621  High-resolution device  High-resolution device
1622  .I ps  .I ps
1623  .  .
 .RS  
1624  .  .
1625    .RS
1626  .P  .P
1627  .ShellCommand echo "hell world" | groff -Z -T ps  .ShellCommand echo "hell world" | groff -Z -T ps
1628  .  .
1629    .
1630  .P  .P
1631  .nf  .nf
1632  .ft CB  .ft CB
# Line 1515  x stop Line 1652  x stop
1652  .fi  .fi
1653  .RE  .RE
1654  .  .
1655    .
1656  .P  .P
1657  This output can be fed into the postprocessor  This output can be fed into the postprocessor
1658  .BR grops (@MAN1EXT@)  .BR grops (@MAN1EXT@)
# Line 1525  to get its representation as a PostScrip Line 1663  to get its representation as a PostScrip
1663  Low-resolution device  Low-resolution device
1664  .I latin1  .I latin1
1665  .  .
 .RS  
1666  .  .
1667    .RS
1668  .P  .P
1669  This is similar to the high-resolution device except that the  This is similar to the high-resolution device except that the
1670  positioning is done at a minor scale.  positioning is done at a minor scale.
# Line 1536  Some comments (lines starting with Line 1674  Some comments (lines starting with
1674  were added for clarification; they were not generated by the  were added for clarification; they were not generated by the
1675  formatter.  formatter.
1676  .  .
1677    .
1678  .P  .P
1679  .ShellCommand echo "hell world" | groff -Z -T latin1  .ShellCommand echo "hell world" | groff -Z -T latin1
1680  .  .
1681    .
1682  .P  .P
1683  .nf  .nf
1684  .I "# prologue"  .I "# prologue"
# Line 1579  x stop Line 1719  x stop
1719  .fi  .fi
1720  .RE  .RE
1721  .  .
1722    .
1723  .P  .P
1724  This output can be fed into the postprocessor  This output can be fed into the postprocessor
1725  .BR grotty (@MAN1EXT@)  .BR grotty (@MAN1EXT@)
# Line 1588  to get a formatted text document. Line 1729  to get a formatted text document.
1729  .Topic  .Topic
1730  Classical style output  Classical style output
1731  .  .
 .RS  
1732  .  .
1733    .RS
1734  .P  .P
1735  As a computer monitor has a very low resolution compared to modern  As a computer monitor has a very low resolution compared to modern
1736  printers the intermediate output for the X\~devices can use the  printers the
1737  jump-and-write command with its 2-digit displacements.  .I intermediate output
1738    for the X\~devices can use the jump-and-write command with its 2-digit
1739    displacements.
1740    .
1741  .  .
1742  .P  .P
1743  .ShellCommand echo "hell world" | groff -Z -T X100  .ShellCommand echo "hell world" | groff -Z -T X100
1744  .  .
1745    .
1746  .P  .P
1747  .nf  .nf
1748  .ft CB  .ft CB
# Line 1621  x stop Line 1766  x stop
1766  .fi  .fi
1767  .RE  .RE
1768  .  .
1769    .
1770  .P  .P
1771  This output can be fed into the postprocessor  This output can be fed into the postprocessor
1772  .BR \%xditview (1x)  .BR \%xditview (1x)
# Line 1628  or Line 1774  or
1774  .BR \%gxditview (@MAN1EXT@)  .BR \%gxditview (@MAN1EXT@)
1775  for displaying in\~X.  for displaying in\~X.
1776  .  .
1777    .
1778  .P  .P
1779  Due to the obsolete jump-and-write command, the text clusters in the  Due to the obsolete jump-and-write command, the text clusters in the
1780  classical output are almost unreadable.  classical output are almost unreadable.
# Line 1637  classical output are almost unreadable. Line 1784  classical output are almost unreadable.
1784  .SH "COMPATIBILITY"  .SH "COMPATIBILITY"
1785  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
1786  .  .
1787  The intermediate output language of the  The
1788    .I intermediate output
1789    language of the
1790  .I classical troff  .I classical troff
1791  was first documented in  was first documented in
1792  .IR [97] .  .IR [CSTR\~#97] .
1793  .  .
1794  The  The
1795  .I groff  .I groff intermediate output
1796  intermediate output format is compatible with this specification  format is compatible with this specification except for the following
1797  except for the following features.  features.
1798    .
1799    .
1800  .Topic  .Topic
1801  The classical quasi device independence is not yet implemented.  The classical quasi device independence is not yet implemented.
1802  .  .
1803    .
1804  .Topic  .Topic
1805  The old hardware was very different from what we use today.  The old hardware was very different from what we use today.
1806  .  .
1807  So the groff devices are also fundamentally different from the ones in  So the
1808  classical troff.  .I groff
1809    devices are also fundamentally different from the ones in
1810    .I classical
1811    .IR troff .
1812  .  .
1813  For example, the classical PostScript device was called  For example, the classical PostScript device was called
1814  .I post  .I post
1815  and had a resolution of 720 units per inch,  and had a resolution of 720 units per inch,
1816  while groff's  while
1817    .IR groff 's
1818  .I ps  .I ps
1819  device has a resolution of 72000 units per inch.  device has a resolution of 72000 units per inch.
1820  .  .
1821  Maybe, by implementing some rescaling mechanism similar to the  Maybe, by implementing some rescaling mechanism similar to the
1822  classical quasi device independence, these could be integrated into  classical quasi device independence, these could be integrated into
1823  modern groff.  modern
1824    .IR groff .
1825    .
1826  .  .
1827  .Topic  .Topic
1828  The B-spline command  The B-spline command
1829  .B D~  .B D~
1830  is correctly handled by the intermediate output parser, but the  is correctly handled by the
1831  drawing routines aren't implemented in some of the postprocessor  .I intermediate output
1832  programs.  parser, but the drawing routines aren't implemented in some of the
1833    postprocessor programs.
1834    .
1835    .
1836  .Topic  .Topic
1837  The argument of the commands  The argument of the commands
1838  .B s  .B s
# Line 1679  and Line 1840  and
1840  .B x H  .B x H
1841  has the implicit unit scaled point\~\c  has the implicit unit scaled point\~\c
1842  .unit z  .unit z
1843  in groff, while classical troff had point (\c  in
1844    .IR groff ,
1845    while
1846    .I classical troff
1847    had point (\c
1848  .unit p ).  .unit p ).
1849  .  .
1850  This isn't an incompatibility, but a compatible extension,  This isn't an incompatibility, but a compatible extension, for both
1851  for both units coincide for all devices without a  units coincide for all devices without a
1852  .I sizescale  .I sizescale
1853  parameter, including all classical and the groff text devices.  parameter, including all classical and the
1854    .I groff
1855    text devices.
1856  .  .
1857  The few groff devices with a sizescale parameter either did  The few
1858  not exist, had a different name, or seem to have had a different  .I groff
1859  resolution.  devices with a sizescale parameter either did not exist, had a
1860    different name, or seem to have had a different resolution.
1861  .  .
1862  So conflicts with classical devices are very unlikely.  So conflicts with classical devices are very unlikely.
1863  .  .
1864    .
1865  .ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\  .ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\
1866  .Topic  .Topic
1867  The position changing after the commands  The position changing after the commands
# Line 1707  kept for compatibility reasons. Line 1876  kept for compatibility reasons.
1876  .Topic  .Topic
1877  Temporarily, there existed some confusion on the positioning after the  Temporarily, there existed some confusion on the positioning after the
1878  .B D  .B D
1879  commands that are groff extensions.  commands that are
1880    .I groff
1881    extensions.
1882  .  .
1883  This has been clarified by establishing the classical rule for all  This has been clarified by establishing the classical rule for all
1884  groff drawing commands:  groff drawing commands:
1885  .  .
1886    .
1887  .RS  .RS
1888  .P  .P
1889  .ft I  .ft I
# Line 1720  for circles and ellipses, the "end" is a Line 1892  for circles and ellipses, the "end" is a
1892  .ft  .ft
1893  .RE  .RE
1894  .  .
1895    .
1896  .P  .P
1897  From this, the positionings specified for the drawing commands above  From this, the positionings specified for the drawing commands above
1898  follow quite naturally.  follow quite naturally.
1899  .\}             \" @STUPID_DRAWING_POSITIONING  .\}             \" @STUPID_DRAWING_POSITIONING
1900  .  .
1901  .P  .P
1902  The differences between groff and classical troff are documented in  The differences between
1903    .I groff
1904    and
1905    .I classical troff
1906    are documented in
1907  .BR groff_diff (@MAN7EXT@).  .BR groff_diff (@MAN7EXT@).
1908  .  .
1909  .  .
# Line 1741  Device description file for device Line 1918  Device description file for device
1918  .  .
1919  .TP  .TP
1920  .IB \[la]groff_source_dir\[ra] /src/libs/libdriver/input.cpp  .IB \[la]groff_source_dir\[ra] /src/libs/libdriver/input.cpp
1921  Defines the parser and postprocessor for the intermediate output.  Defines the parser and postprocessor for the
1922    .I intermediate
1923    .IR output .
1924  .  .
1925  It is located relative to the top directory of the  It is located relative to the top directory of the
1926  .I groff  .I groff
# Line 1749  source tree, e.g. Line 1928  source tree, e.g.
1928  .IR @GROFFSRCDIR@ .  .IR @GROFFSRCDIR@ .
1929  .  .
1930  This parser is the definitive specification of the  This parser is the definitive specification of the
1931  .I groff  .I groff intermediate output
1932  intermediate output format.  format.
1933  .  .
1934  .  .
1935  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
# Line 1760  intermediate output format. Line 1939  intermediate output format.
1939  A reference like  A reference like
1940  .BR groff (@MAN7EXT@)  .BR groff (@MAN7EXT@)
1941  refers to a manual page; here  refers to a manual page; here
1942  .I groff  .B groff
1943  in section\~\c  in section\~\c
1944  .I @MAN7EXT@  .I @MAN7EXT@
1945  of the man-page documentation system.  of the man-page documentation system.
# Line 1768  of the man-page documentation system. Line 1947  of the man-page documentation system.
1947  To read the example, look up section\~@MAN7EXT@ in your desktop help  To read the example, look up section\~@MAN7EXT@ in your desktop help
1948  system or call from the shell prompt  system or call from the shell prompt
1949  .  .
1950    .
1951  .RS  .RS
1952  .P  .P
1953  .ShellCommand man @MAN7EXT@ groff  .ShellCommand man @MAN7EXT@ groff
1954  .RE  .RE
1955  .  .
1956    .
1957  .P  .P
1958  For more details, see  For more details, see
1959  .BR man (1).  .BR man (1).
1960  .  .
1961    .
1962  .TP  .TP
1963  .BR groff (@MAN1EXT@)  .BR groff (@MAN1EXT@)
1964  option  option
1965  .B -Z  .B -Z
1966  and further readings on groff.  and further readings on groff.
1967  .  .
1968    .
1969  .TP  .TP
1970  .BR groff (@MAN7EXT@)  .BR groff (@MAN7EXT@)
1971  for details of the  for details of the
1972  .I groff  .I groff
1973  language such as numerical units and escape sequences.  language such as numerical units and escape sequences.
1974  .  .
1975    .
1976  .TP  .TP
1977  .BR groff_font (@MAN5EXT@)  .BR groff_font (@MAN5EXT@)
1978  for details on the device scaling parameters of the  for details on the device scaling parameters of the
1979  .B DESC  .B DESC
1980  file.  file.
1981  .  .
1982    .
1983  .TP  .TP
1984  .BR troff (@MAN1EXT@)  .BR @g@troff (@MAN1EXT@)
1985  generates the device-independent intermediate output.  generates the device-independent intermediate output.
1986  .  .
1987    .
1988  .TP  .TP
1989  .BR roff (@MAN7EXT@)  .BR roff (@MAN7EXT@)
1990  for historical aspects and the general structure of roff systems.  for historical aspects and the general structure of roff systems.
1991  .  .
1992    .
1993  .TP  .TP
1994  .BR groff_diff (@MAN7EXT@)  .BR groff_diff (@MAN7EXT@)
1995  The differences between the intermediate output in groff and classical  The differences between the intermediate output in groff and classical
1996  troff.  troff.
1997  .  .
1998    .
1999    .TP
2000    .BR gxditview (@MAN1EXT@)
2001    Viewer for the
2002    .I intermediate
2003    .IR output .
2004    .
2005    .
2006  .P  .P
2007  .BR \%grodvi (@MAN1EXT@),  .BR \%grodvi (@MAN1EXT@),
2008  .BR \%grohtml (@MAN1EXT@),  .BR \%grohtml (@MAN1EXT@),
# Line 1820  troff. Line 2015  troff.
2015  the groff postprocessor programs.  the groff postprocessor programs.
2016  .RE  .RE
2017  .  .
2018    .
2019  .P  .P
2020  For a treatment of all aspects of the groff system within a single  For a treatment of all aspects of the groff system within a single
2021  document, see the  document, see the
# Line 1834  or from the shell prompt by Line 2030  or from the shell prompt by
2030  .ShellCommand info groff  .ShellCommand info groff
2031  .RE  .RE
2032  .  .
2033    .
2034  .P  .P
2035  The  The
2036  .I classical troff output language  .I classical troff output language
# Line 1841  is described in two AT&T Bell Labs CSTR Line 2038  is described in two AT&T Bell Labs CSTR
2038  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr.html \  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr.html \
2039       "Bell Labs CSTR site" .       "Bell Labs CSTR site" .
2040  .  .
2041    .
2042  .TP  .TP
2043  .I [CSTR #97]  .I [CSTR #97]
2044  .I A Typesetter-independent TROFF  .I A Typesetter-independent TROFF
# Line 1850  is the original and most concise documen Line 2048  is the original and most concise documen
2048  see  see
2049  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:97.ps.gz CSTR\~#97 .  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:97.ps.gz CSTR\~#97 .
2050  .  .
2051    .
2052  .TP  .TP
2053  .I [CSTR\~#54]  .I [CSTR\~#54]
2054  The 1992 revision of the  The 1992 revision of the
# Line 1860  and Line 2059  and
2059  .I Brian Kernighan  .I Brian Kernighan
2060  isn't as concise as  isn't as concise as
2061  .I [CSTR\~#97]  .I [CSTR\~#97]
2062  regarding the output language;  regarding the output language; see
 see  
2063  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz CSTR\~#54 .  .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz CSTR\~#54 .
2064  .  .
2065  .  .
# Line 1870  see Line 2068  see
2068  .\" --------------------------------------------------------------------  .\" --------------------------------------------------------------------
2069  .  .
2070  Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.  Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
2071    .
2072    .
2073  .P  .P
2074  This document is distributed under the terms of the FDL (GNU Free  This document is distributed under the terms of the FDL (GNU Free
2075  Documentation License) version 1.1 or later.  Documentation License) version 1.1 or later.
# Line 1878  You should have received a copy of the F Line 2078  You should have received a copy of the F
2078  available on-line at the  available on-line at the
2079  .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .  .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
2080  .  .
2081    .
2082  .P  .P
2083  This document is part of  This document is part of
2084  .IR groff ,  .IR groff ,
2085  the GNU roff distribution.  the GNU
2086    .I roff
2087    distribution.
2088  .  .
2089  It is based on a former version \- published under the GPL \- that  It is based on a former version \- published under the GPL \- that
2090  described only parts of the  described only parts of the
2091  .I groff  .I groff
2092  extensions of the output language.  extensions of the output language.
2093  .  .
2094  It has been rewritten 2002 by  It has been rewritten 2002 by \m[blue]Bernd Warken\m[] and is
2095  .MTO bwarken@mayn.de "Bernd Warken"  maintained by
 and is maintained by  
2096  .MTO wl@gnu.org "Werner Lemberg" .  .MTO wl@gnu.org "Werner Lemberg" .
2097  .  .
2098  .cp \n[groff_out_C]  .cp \n[groff_out_C]

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26