2 .\" The above line should force the use of eqn as a preprocessor
6 Last update : 27 May 2002
8 This file is part of groff, the GNU roff type-setting system.
9 It is the source of the man-page groff_diff(7).
11 Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc.
12 written by James Clark
14 modified by Werner Lemberg <wl@gnu.org>
15 Bernd Warken <bwarken@mayn.de>
17 Permission is granted to copy, distribute and/or modify this document
18 under the terms of the GNU Free Documentation License, Version 1.1 or
19 any later version published by the Free Software Foundation; with the
20 Invariant Sections being this .ig-section and AUTHORS, with no
21 Front-Cover Texts, and with no Back-Cover Texts.
23 A copy of the Free Documentation License is included as a file called
24 FDL in the main directory of the groff source package.
27 .\" --------------------------------------------------------------------
29 .\" --------------------------------------------------------------------
43 .\" define a string tx for the TeX logo
44 .ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
48 .\" --------------------------------------------------------------------
49 .\" start of macro definitions
67 .\" Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$*
68 . Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$*
71 .\" A shell command line
74 . IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
76 .\" reference of a request or macro
80 .\" Text \f[CB]\*[@arg1]\f[]\$*
81 . Text \f[B]\*[@arg1]\f[]\$*
86 .\" representation of an escape sequence
90 .\" Text \f[CB]\[rs]\*[@arg1]\f[]\$*
91 . Text \f[B]\[rs]\*[@arg1]\&\f[]\$*
95 .\" end of macro definitions
97 .\" from old groff_out.man
104 .\" --------------------------------------------------------------------
106 .\" --------------------------------------------------------------------
108 .TH GROFF_DIFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
110 groff_diff \- differences between GNU troff and classical troff
113 .\" --------------------------------------------------------------------
115 .\" --------------------------------------------------------------------
117 This manual page describes the language differences between
121 text processing system and the classical
123 formatter of the freely available Unix\~7 of the 1970s, documented in
125 .I Troff User's Manual
130 This inludes the roff language as well as the intermediate output
131 format (troff output).
136 gives pointers to both the classical
143 At the moment, this document is the place of the most actual
144 documentation within the
148 This might change in the future.
150 Actually, all novelties of the groff language are first described here
151 and will pervade into the other documents only at a later stage.
154 .\" --------------------------------------------------------------------
156 .\" --------------------------------------------------------------------
158 In this section, all additional features of
160 compared to the classical Unix\~7
162 are described in detail.
165 .\" --------------------------------------------------------------------
167 .\" --------------------------------------------------------------------
169 The names of number registers, fonts, strings/\:macros/\:diversions,
170 special characters, and colors can be of any length.
172 In escape sequences, additionally to the classical
174 construction for a two character name, you can use
176 for a name of arbitrary length, for example in
178 .TP \w'\[rs]f[xxx]'u+3n
180 Print the special character called
190 is a new syntax equal to
192 i.e., to return to the previous font.
201 Interpolate number register
205 .\" --------------------------------------------------------------------
206 .SS "Fractional pointsizes"
207 .\" --------------------------------------------------------------------
219 There is a new scale indicator
221 that has the effect of multiplying by sizescale.
223 Requests and escape sequences in troff interpret arguments that
224 represent a pointsize as being in units of scaled points, but they
225 evaluate each such argument using a default scale indicator of
227 Arguments treated in this way are the argument to the
229 request, the third argument to the
231 request, the second and fourth arguments to the
233 request, the argument to the
235 escape sequence, and those variants of the
237 escape sequence that take a numeric expression as their argument.
240 For example, suppose sizescale is 1000; then a scaled point will be
241 equivalent to a millipoint; the call
245 and so sets the pointsize to 10250 scaled points, which is equal to
251 returns the pointsize in points as decimal fraction.
253 There is also a new number register
255 that returns the pointsize in scaled points.
258 It would make no sense to use the
260 scale indicator in a numeric expression whose default scale indicator
269 Similarly it would make no sense to use a scaling indicator other than
273 in a numeric expression whose default scale indicator was
277 disallows this as well.
280 There is also new scale indicator\~\c
282 which multiplies by the number of units in a scaled point.
288 Be sure not to confuse the
295 .\" --------------------------------------------------------------------
296 .SS "Numeric expressions"
297 .\" --------------------------------------------------------------------
299 Spaces are permitted in a number expression within parentheses.
303 indicates a scale of 100ths of an em.
305 indicates a scale of 65536 units, providing fractions for color
310 For example, 0.5f = 32768u.
332 as the default scaling indicator.
336 is missing, ignore scaling indicators in the evaluation of
340 .\" --------------------------------------------------------------------
341 .SS "New escape sequences"
342 .\" --------------------------------------------------------------------
345 .BI \[rs]A' anything '
350 resp., depending on whether
352 is or is not acceptable as the name of a string, macro, diversion, number
353 register, environment, font, or color.
360 This is useful if you want to lookup user input in some sort of
364 .BI \[rs]B' anything '
369 resp., depending on whether
371 is or is not a valid numeric expression.
381 Typeset character named
383 Normally it is more convenient to use
384 .BI \[rs][ xxx ]\f[R].
387 has the advantage that it is compatible with recent versions of
389 and is available in compatibility mode.
393 This is equivalent to an escape character, but it is not interpreted in
396 For example, strings to start and end superscripting could be defined
402 .Text .ds { \[rs]v'\-.3m'\[rs]s'\[rs]En[.s]*6u/10u'
404 .Text .ds } \[rs]s0\[rs]v'.3m'
410 ensures that these definitions will work even if
412 gets interpreted in copy-mode (for example, by being used in a macro
424 This is the same as the
429 switches back to the previous color (note that
431 won't work; it selects font family `P' instead).
441 switches back to the previous color.
449 Set background color for filled objects drawn with the
450 .BI \[rs]D' .\|.\|. '
453 switches back to the previous color.
457 Typeset the character with code
463 Most devices only have characters with codes between 0 and 255.
465 If the current font does not contain a character with that code,
472 escape sequence can be conveniently used in conjunction with the
479 .Text .char \[rs][phone] \[rs]f(ZD\[rs]N'37'
484 The code of each character is given in the fourth column in the font
485 description file after the
489 It is possible to include unnamed characters in the font description
490 file by using a name of
494 escape sequence is the only way to use these.
500 Suppressing troff output.
508 are intended for internal use by
514 Disable any ditroff glyphs from being emitted to the device driver,
515 provided that the escape occurs at the outer level (see
522 Enable output of glyphs, provided that the escape occurs at the outer
528 also reset the registers
536 These four registers mark the top left and bottom right hand corners
537 of a box which encompasses all written glyphs.
541 Provided that the escape occurs at the outer level, enable output of
542 glyphs and also write out to stderr the page number and four registers
543 encompassing the glyphs previously written since the last call to
548 Begin a nesting level.
554 This is really an internal mechanism for
556 while producing images.
558 They are generated by running the troff source through
560 to the postscript device and
562 to produce images in PNG format.
566 escape will start a new page if the device is not html (to reduce the
567 possibility of images crossing a page boundary).
574 .BI \[rs]O5[ Pfilename ]
579 Provided that this escape occurs at the outer nesting level, write
583 The position of the image,
585 must be specified and must be one of l, r, c, or i (left, right,
589 will be associated with the production of the next inline image.
593 .BI \[rs]R' name\ \[+-]n '
594 This has the same effect as
598 .BI .nr\ name\ \[+-]n
605 Set the point size to
609 must be exactly two digits.
619 Set the point size to
623 is a numeric expression with a default scale indicator of\~\c
632 Interpolate the contents of the environment variable
637 is interpreted in copy-mode.
645 This is approximately equivalent to
646 .BI \[rs]X'\[rs]*[ xxx ]'\f[R].
647 However the contents of the string or macro
649 are not interpreted; also it is permitted for
651 to have been defined as a macro and thus contain newlines (it is not
652 permitted for the argument to
654 to contain newlines).
656 The inclusion of newlines requires an extension to the UNIX troff
657 output format, and will confuse drivers that do not know about this
661 .BI \[rs]Z' anything '
662 Print anything and then restore the horizontal and vertical position;
664 may not contain tabs or leaders.
668 The name by which the current macro was invoked.
672 request can make a macro have more than one name.
676 In a macro, the concatenation of all the arguments separated by spaces.
680 In a macro, the concatenation of all the arguments with each
681 surrounded by double quotes, and separated by spaces.
687 In a macro, this gives the
693 Macros can have an unlimited number of arguments.
696 .BI \[rs]? anything \[rs]?
697 When used in a diversion, this will transparently embed
701 is read in copy mode.
703 When the diversion is reread,
707 may not contain newlines; use
709 if you want to embed newlines in a diversion.
713 is also recognised in copy mode and turned into a single internal
714 code; it is this code that terminates
726 .Text \[rs]?\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\c
727 .Text \[rs]nx\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]?\[rs]?
749 This increases the width of the preceding character so that the
750 spacing between that character and the following character will be
751 correct if the following character is a roman character.
754 . nop For example, if an italic f is immediately followed by a roman
755 . nop right parenthesis, then in many fonts the top right portion of
756 . nop the f will overlap the top left of the right parenthesis
757 . nop producing \f[I]f\f[R])\f[R], which is ugly.
761 . ie \n(.g \f[I]f\/\f[R])\f[R]
762 . el \f[I]f\|\f[R])\f[R]
763 . nop and avoids this problem.
765 It is a good idea to use this escape sequence whenever an italic
766 character is immediately followed by a roman character without any
771 This modifies the spacing of the following character so that the
772 spacing between that character and the preceding character will
773 correct if the preceding character is a roman character.
776 . nop For example, inserting
778 . nop between the parenthesis and the f changes
779 . nop \f[R](\f[I]f\f[R] to
780 . ie \n(.g \f[R](\,\f[I]f\f[R].
781 . el \f[R](\^\f[I]f\f[R].
783 It is a good idea to use this escape sequence whenever a roman
784 character is immediately followed by an italic character without any
791 except that it behaves like a character declared with the
793 request to be transparent for the purposes of end-of-sentence
798 This produces an unbreakable space that stretches like a normal
799 inter-word space when a line is adjusted.
803 This causes the insertion of a zero-width break point.
807 within a word but without insertion of a soft hyphen character.
811 Everything up to and including the next newline is ignored.
813 This is interpreted in copy mode.
819 does not ignore the terminating newline.
822 .\" --------------------------------------------------------------------
824 .\" --------------------------------------------------------------------
830 for number register object named
832 The new name and the old name will be exactly equivalent.
836 is undefined, a warning of type
838 will be generated, and the request will be ignored.
844 for request, string, macro, or diversion object named
847 The new name and the old name will be exactly equivalent (it is
848 similar to a hard rather than a soft link).
852 is undefined, a warning of type
854 will be generated, and the request will be ignored.
864 requests only create a new object if the name of the macro, diversion
865 or string diversion is currently undefined or if it is defined to be a
866 request; normally they modify the value of an existing object.
870 Append to macro indirectly.
874 request below for more information.
880 but compatibility mode is switched off during execution.
882 To be more precise, a `compatibility save' token is inserted at the
883 beginning of the macro addition, and a `compatibility restore' token at
886 As a consequence, the requests
892 can be intermixed freely since the compatibility save/\:restore tokens
893 only affect the macro parts defined by
900 This request `unformats' the diversion
904 and space characters (and some escape sequences) that were formatted
907 will be treated like ordinary input characters when
910 Useful for diversions in conjunction with the
914 It can be also used for gross hacks; for example, this
934 will set register\~\c
938 Note that glyph information (font, font size, etc.) is not preserved;
947 but compatibility mode is switched off during expansion.
949 To be more precise, a `compatibility save' token is inserted at the
950 beginning of the string, and a `compatibility restore' token at the end.
952 As a consequence, the requests
958 can be intermixed freely since the compatibility save/\:restore tokens
959 only affect the (sub)strings defined by
966 Print a backtrace of the input stack on stderr.
970 Set the blank line macro to
972 If there is a blank line macro, it will be invoked when a blank line
973 is encountered instead of the usual troff behaviour.
979 These requests are similar to the
983 requests with the exception that a partially filled line will not
984 become part of the diversion (i.e., the diversion always starts with a
985 new line) but restored after ending the diversion, discarding the
986 partially filled line which possibly comes from the diversion.
990 Break out of a while loop.
998 Be sure not to confuse this with the
1008 .BI .cflags\ n\ c1\ c2\|.\|.\|.\&
1012 have properties determined by
1014 which is ORed from the following:
1018 The character ends sentences (initially characters
1020 have this property).
1023 Lines can be broken before the character (initially no characters have
1024 this property); a line will not be broken at a character with this
1025 property unless the characters on each side both have non-zero
1029 Lines can be broken after the character (initially characters
1030 .B \-\[rs](hy\[rs](em
1031 have this property); a line will not be broken at a character with
1032 this property unless the characters on each side both have non-zero
1036 The character overlaps horizontally (initially characters
1037 .B \[rs](ul\[rs](rn\[rs](ru
1038 have this property).
1041 The character overlaps vertically (initially character
1046 An end-of-sentence character followed by any number of characters with
1047 this property will be treated as the end of a sentence if followed by
1048 a newline or two spaces; in other words the character is transparent
1049 for the purposes of end-of-sentence recognition; this is the same as
1050 having a zero space factor in \*[tx] (initially characters
1051 .B \[dq]')]*\[rs](dg\[rs](rq
1052 have this property).
1056 .BI .char\ c\ string
1061 Every time character
1063 needs to be printed,
1065 will be processed in a temporary environment and the result will be
1066 wrapped up into a single object.
1068 Compatibility mode will be turned off and the escape character will be
1075 Any emboldening, constant spacing or track kerning will be applied to
1076 this object rather than to individual characters in
1080 A character defined by this request can be used just like a normal
1081 character provided by the output device.
1083 In particular other characters can be translated to it with the
1085 request; it can be made the leader character by the
1087 request; repeated patterns can be drawn with the character using the
1091 escape sequences; words containing the character can be hyphenated
1094 request is used to give the character a hyphenation code.
1097 There is a special anti-recursion feature: use of character within the
1098 character's definition will be handled like normal characters not
1102 A character definition can be removed with the
1108 Chop the last character off macro, string, or diversion
1110 This is useful for removing the newline from the end of diversions
1111 that are to be interpolated as strings.
1115 Close the stream named
1118 will no longer be an acceptable argument to the
1128 Finish the current iteration of a while loop.
1140 is non-zero or missing, enable compatibility mode, otherwise disable
1143 In compatibility mode, long names are not recognised, and the
1144 incompatibilities caused by long names do not arise.
1147 .BI .defcolor\ xxx\ scheme\ color_components
1150 can be one of the following values:
1156 (four components), and
1162 Color components can be given either as a hexadecimal string or as
1163 positive decimal integers in the range 0-65535.
1165 A hexadecimal string contains all color components concatenated; it
1166 must start with either
1170 The former specifies hex values in the range 0-255 (which are
1171 internally multiplied by\~257), the latter in the range 0-65535.
1173 Examples: #FFC0CB (pink), ##ffff0000ffff (magenta).
1175 A new scaling indicator\~\c
1177 has been introduced which multiplies its value by\~65536; this makes
1178 it convenient to specify color components as fractions in the range 0
1186 .Text .defcolor darkgreen rgb 0.1f 0.5f 0.2f
1194 is the default scaling indicator for the
1196 request, thus the above statement is equivalent to
1201 .Text .defcolor darkgreen rgb 0.1 0.5 0.2
1209 (which is device-specific) can't be redefined.
1211 It is possible that the default color for
1219 Define macro indirectly.
1221 The following example
1250 but compatibility mode is switched off during execution.
1252 On entry, the current compatibility mode is saved and restored at exit.
1258 with compatibility mode disabled.
1271 would have the same effect as
1280 except that it would work even if compatibility mode had been enabled.
1282 Note that the previous compatibility mode is restored before any files
1293 but compatibility mode is switched off during expansion.
1295 To be more precise, a `compatibility save' token is inserted at the
1296 beginning of the string, and a `compatibility restore' token at the end.
1300 Save current escape character.
1304 Restore escape character saved with
1306 Without a previous call to
1309 will be the new escape character.
1313 Copy the contents of environment
1315 to the current environment.
1317 No pushing or popping of environments will be done.
1321 Set the current font family to
1323 The current font family is part of the current environment.
1326 is missing, switch back to previous font family.
1328 The value at start-up is `T'.
1330 See the description of the
1332 request for more information on font families.
1335 .BI .fchar\ c\ string
1336 Define fallback character
1340 The syntax of this request is the same as the
1342 request; the only difference is that a character defined with
1344 hides the glyph with the same name in the current font, whereas a
1345 character defined with
1347 is checked only if the particular glyph isn't found in the current font.
1349 This test happens before checking special fonts.
1352 .BI .fspecial\ f\ s1\ s2\|.\|.\|.\&
1353 When the current font is
1358 will be special, that is, they will searched for characters not in
1361 Any fonts specified in the
1363 request will be searched after fonts specified in the
1373 Whenever a font named
1375 is referred to in an
1377 escape sequence, or in the
1393 is missing, or equal to
1397 will not be translated.
1400 .BI .hcode \ c1\ code1\ c2\ code2\|.\|.\|.\&
1401 Set the hyphenation code of character
1409 A hyphenation code must be a single input character (not a special
1410 character) other than a digit or a space.
1412 Initially each lower-case letter \%a-z has a hyphenation code, which is
1413 itself, and each upper-case letter \%A-Z has a hyphenation code which is
1414 the lower-case version of itself.
1422 Set the current hyphenation language to
1424 Hyphenation exceptions specified with the
1426 request and hyphenation patterns specified with the
1428 request are both associated with the current hyphenation language.
1432 request is usually invoked by the
1438 Set the maximum number of consecutive hyphenated lines to\~\c
1442 is negative, there is no maximum.
1444 The default value is\~\-1.
1446 This value is associated with the current environment.
1448 Only lines output from an environment count towards the maximum
1449 associated with that environment.
1451 Hyphens resulting from
1453 are counted; explicit hyphens are not.
1457 Read hyphenation patterns from
1459 this will be searched for in the same way that
1461 is searched for when the
1463 option is specified.
1465 It should have the same format as (simple) \*[tx] patterns files.
1467 More specifically, the following scanning rules are implemented.
1471 A percent sign starts a comment (up to the end of the line) even if
1472 preceded by a backslash.
1475 No support for `digraphs' like
1483 (character code of\~\c
1485 in the range 0-127) are recognized; other use of
1494 checks for the expression
1495 .B \[rs]patterns{.\|.\|.}
1496 (possibly with whitespace before and after the braces).
1498 Everything between the braces is taken as hyphenation patterns.
1504 are not allowed in patterns.
1508 .B \[rs]hyphenation{.\|.\|.}
1509 gives a list of hyphenation exceptions.
1516 For backwards compatibility, if
1518 is missing, the whole file is treated as a list of hyphenation patterns
1519 (only recognizing the
1521 character as the start of a comment).
1527 request to map the encoding used in hyphenation patterns files to
1531 The set of hyphenation patterns is associated with the current language
1538 request is usually invoked by the
1540 file; a second call replaces the old patterns with the new ones.
1546 except that the hyphenation patterns from
1548 are appended to the patterns already loaded in the current language.
1551 .BI .hpfcode\ a\ b\ c\ d\ .\|.\|.
1552 After reading a hyphenation patterns file with the
1556 request, convert all characters with character code\~\c
1558 in the recently read patterns to character code\~\c
1566 Initially, all character codes map to themselves.
1570 must be integers in the range 0 to\~255.
1572 Note that it is even possible to use character codes which are invalid in
1579 .I hyphenation margin
1582 when the current adjustment mode is not\~\c
1584 the line will not be hyphenated if the line is no more than
1588 The default hyphenation margin is\~0.
1590 The default scaling indicator for this request is\~\c
1592 The hyphenation margin is associated with the current environment.
1594 The current hyphenation margin is available in the
1601 .I hyphenation space
1604 when the current adjustment mode is\~\c
1606 don't hyphenate the line if the line can be justified by adding no
1609 extra space to each word space.
1611 The default hyphenation space is\~0.
1613 The default scaling indicator for this request is\~\c
1615 The hyphenation space is associated with the current environment.
1617 The current hyphenation space is available in the
1625 for which a line interrupted with
1627 counts as one input line.
1633 is non-zero or missing, enable pairwise kerning, otherwise disable it.
1636 .BI .length\ xx\ string
1637 Compute the length of
1639 and return it in the number register
1641 (which is not necessarily defined before).
1647 is non-zero or missing, enable line-tabs mode, otherwise disable it
1648 (which is the default).
1650 In line-tabs mode, tab distances are computed relative to the
1651 (current) output line.
1653 Otherwise they are taken relative to the input line.
1655 For example, the following
1662 .Text .ds x a\[rs]t\[rs]c
1663 .Text .ds y b\[rs]t\[rs]c
1682 In line-tabs mode, the same code gives
1690 Line-tabs mode is associated with the current environment; the
1691 read-only number register
1692 .B \\[rs]n[.linetabs]
1693 is set to\~1 if in line-tabs mode, and 0 otherwise.
1701 is searched for in the same directories as macro files for the the
1703 command line option.
1705 If the file name to be included has the form
1711 instead and vice versa.
1717 This is similar to `.if\ 1'.
1723 built-in condition true and the
1725 built-in condition false.
1727 This can be reversed using the
1732 .BI .open\ stream\ filename
1735 for writing and associate the stream named
1746 .BI .opena\ stream\ filename
1751 exists, append to it instead of truncating it.
1757 directly to the intermediate output (subject to copy-mode interpretation);
1760 used at the top level.
1762 An initial double quote in
1764 is stripped off to allow initial blanks.
1768 Print the names and contents of all currently defined number registers
1772 .BI .psbb \ filename
1773 Get the bounding box of a PostScript image
1775 This file must conform to Adobe's Document Structuring Conventions;
1776 the command looks for a
1778 comment to extract the bounding box values.
1780 After a successful call, the coordinates (in PostScript units) of the
1781 lower left and upper right corner can be found in the registers
1789 If some error has occurred, the four registers are set to zero.
1793 This behaves like the
1795 request except that input comes from the standard output of
1800 Print the names and positions of all traps (not including input line
1801 traps and diversion traps) on stderr.
1803 Empty slots in the page trap list are printed as well, because they
1804 can affect the priority of subsequently planted traps.
1808 Set the post-vertical line space to
1810 default scale indicator is\~\c
1813 This value will be added to each line after it has been output.
1815 With no argument, the post-vertical line space is set to its previous
1819 The total vertical line spacing consists of four components:
1823 with a negative value which are applied before the line is output, and
1827 with a positive value which are applied after the line is output.
1830 .BI .rchar\ c1\ c2\|.\|.\|.\&
1831 Remove the definitions of characters
1834 This undoes the effect of a
1840 Within a macro, return immediately.
1842 No effect otherwise.
1848 Right justify the next
1852 Without an argument right justify the next input line.
1854 The number of lines to be right justified is available in the
1858 This implicitly does
1862 request implicitly does
1867 Rename number register
1874 Set the soft hyphen character to
1878 is omitted, the soft hyphen character will be set to the default
1880 The soft hyphen character is the character which will be inserted when
1881 a word is hyphenated at a line break.
1883 If the soft hyphen character does not exist in the font of the
1884 character immediately preceding a potential break point, then the line
1885 will not be broken at that point.
1887 Neither definitions (specified with the
1889 request) nor translations (specified with the
1891 request) are considered when finding the soft hyphen character.
1895 In a macro, shift the arguments by
1897 positions: argument\~\c
1903 will no longer be available.
1907 is missing, arguments will be shifted by\~1.
1909 Shifting by negative amounts is currently undefined.
1912 .BI .sizes\ s1\ s2\|.\|.\|.\|sn\ [0]
1913 This command is similar to the
1919 It sets the available font sizes for the current font to
1921 .IR s2 ,\|.\|.\|.\|,\~ sn
1924 The list of sizes can be terminated by an optional\~\c
1929 can also be a range of sizes
1932 Contrary to the font file command, the list can't extend over more
1936 .BI .special\ s1\ s2\|.\|.\|.\&
1940 are special and will be searched for characters not in the current
1944 .BI .spreadwarn\ limit
1947 emit a warning if the additional space inserted for each space between
1948 words in an output line is larger or equal to
1951 A negative value is changed to zero; no argument toggles the warning on
1952 and off without changing
1955 The default scaling indicator is\~\c
1965 .B .spreadwarn\ 0.2m
1966 will cause a warning if
1968 must add 0.2m or more for each interword space in a line.
1970 This request is active only if text is justified to both margins (using
1977 with font position\~\c
1979 A font position can be associated either with a font or with a style.
1981 The current font is the index of a font position and so is also either
1984 When it is a style, the font that is actually used is the font the
1985 name of which is the concatenation of the name of the current family
1986 and the name of the current style.
1988 For example, if the current font is\~1 and font position\~1 is
1989 associated with style\~\c
1991 and the current font family is\~\c
1997 If the current font is not a style, then the current family is ignored.
2006 are applied to a style, then they will instead be applied to the
2007 member of the current family corresponding to that style.
2009 The default family can be set with the
2017 file controls which font positions (if any) are initially associated
2018 with styles rather than fonts.
2021 .BI .substring\ xx\ n1\ [ n2 ]
2022 Replace the string in register
2024 with the substring defined by the indices
2028 The first character in the string has index one.
2032 is omitted, it is taken to be equal to the string's length.
2038 is negative or zero, it will be counted from the end of the string,
2041 The last character has index\~0, the character before the last
2042 character has index\~-1, etc.
2045 .BI .tkf\ f\ s1\ n1\ s2\ n2
2046 Enable track kerning for font
2048 When the current font is
2050 the width of every character will be increased by an amount between
2054 when the current point size is less than or equal to
2056 the width will be increased by
2058 when it is greater than or equal to
2060 the width will be increased by
2062 when the point size is greater than or equal to
2064 and less than or equal to
2066 the increase in width is a linear function of the point size.
2074 is read in copy mode and written on the standard error, but an initial
2077 is stripped off to allow initial blanks.
2083 but without writing a final newline.
2087 Transparently output the contents of file
2089 Each line is output as if preceded by
2091 however, the lines are not subject to copy-mode interpretation.
2093 If the file does not end with a newline, then a newline will be added.
2095 For example, you can define a macro\~\c
2097 containing the contents of file\~\c
2116 request, the file cannot contain characters such as
2118 that are not legal troff input characters.
2122 This is the same as the
2124 request except that the
2126 request will use the character code (if any) before the character
2159 This is the same as the
2161 request except that the translations do not apply to text that is
2162 transparently throughput into a diversion with
2194 built-in condition false, and the
2196 built-in condition true.
2198 This undoes the effect of the
2204 This request `unformats' the diversion
2208 request, which tries to convert formatted elements of the diversion
2209 back to input tokens as much as possible,
2211 will only handle tabs and spaces between words (usually caused by
2212 spaces or newlines in the input) specially.
2214 The former are treated as if they were input tokens, and the latter
2215 are stretchable again.
2217 Note that the vertical size of lines is not preserved.
2219 Glyph information (font, font size, space width, etc.) is retained.
2221 Useful in conjunction with the
2229 Enable vertical position traps if
2231 is non-zero, disable them otherwise.
2233 Vertical position traps are traps set by the
2241 request are not vertical position traps.
2243 The parameter that controls whether vertical position traps are
2246 Initially vertical position traps are enabled.
2252 is the sum of the numbers associated with each warning that is to be
2253 enabled; all other warnings will be disabled.
2255 The number associated with each warning is listed in
2256 .BR @g@troff (@MAN1EXT@).
2260 will disable all warnings, and
2262 will disable all warnings except that about missing characters.
2266 is not given, all warnings will be enabled.
2270 Set the scaling indicator used in warnings to
2283 At startup, it is set to\~\c
2287 .BI .while \ c\ anything
2294 can be any condition acceptable to an
2298 can comprise multiple lines if the first line starts with
2300 and the last line ends with
2309 .BI .write\ stream\ anything
2315 must previously have been the subject of an
2319 is read in copy mode;
2325 .BI .writec\ stream\ anything
2328 but without writing a final newline.
2331 .BI .writem\ stream\ xx
2332 Write the contents of the macro or string
2337 must previously have been the subject of an
2341 is read in copy mode.
2344 .\" --------------------------------------------------------------------
2345 .SS "Extended requests"
2346 .\" --------------------------------------------------------------------
2350 When used in a diversion, this will embed in the diversion an object
2351 which, when reread, will cause the contents of
2353 to be transparently copied through to the output.
2355 In UNIX troff, the contents of
2357 is immediately copied through to the output regardless of whether
2358 there is a current diversion; this behaviour is so anomalous that it
2359 must be considered a bug.
2365 is not a number, this will switch to a named environment called
2367 The environment should be popped with a matching
2369 request without any arguments, just as for numbered environments.
2371 There is no limit on the number of named environments; they will be
2372 created the first time that they are referenced.
2376 When two arguments are given to the
2378 request, the second argument gives the
2379 .IR "sentence space size" .
2380 If the second argument is not given, the sentence space size
2381 will be the same as the word space size.
2383 Like the word space size, the sentence space is in units of
2384 one twelfth of the spacewidth parameter for the current font.
2386 Initially both the word space size and the sentence
2389 Contrary to UNIX troff, GNU troff handles this request in nroff mode
2390 also; a given value is then rounded down to the nearest multiple
2393 The sentence space size is used in two circumstances.
2395 If the end of a sentence occurs at the end of a line in fill mode,
2396 then both an inter-word space and a sentence space will be added; if
2397 two spaces follow the end of a sentence in the middle of a line, then
2398 the second space will be a sentence space.
2400 Note that the behaviour of UNIX troff will be exactly that exhibited
2401 by GNU troff if a second argument is never given to the
2405 In GNU troff, as in UNIX troff, you should always follow a sentence
2406 with either a newline or two spaces.
2409 .BI .ta\ n1\ n2\|.\|.\|.nn \ T\ r1\ r2\|.\|.\|.\|rn
2410 Set tabs at positions
2412 .IR n2 ,\|.\|.\|.\|,
2414 and then set tabs at
2416 .IR nn + r2 ,\|.\|.\|.\|,
2420 .IR nn + rn + r2 ,\|.\|.\|.\|,
2433 will set tabs every half an inch.
2437 .\" --------------------------------------------------------------------
2438 .SS "New number registers"
2439 .\" --------------------------------------------------------------------
2441 The following read-only registers are available:
2445 1\~if compatibility mode is in effect, 0\~otherwise.
2449 The depth of the last character added to the current environment.
2451 It is positive if the character extends below the baseline.
2455 The number of lines remaining to be centered, as set by the
2461 The height of the last character added to the current environment.
2463 It is positive if the character extends above the baseline.
2467 The skew of the last character added to the current environment.
2471 of a character is how far to the right of the center of a character
2472 the center of an accent over that character should be placed.
2476 The name or number of the current environment.
2478 This is a string-valued register.
2482 The current font family.
2484 This is a string-valued register.
2488 The current (internal) real font name.
2490 This is a string-valued register.
2492 If the current font is a style, the value of
2494 is the proper concatenation of family and style name.
2498 The number of the next free font position.
2504 Macros should use this to determine whether they are running under GNU
2509 The current hyphenation language as set by the
2515 The number of immediately preceding consecutive hyphenated lines.
2519 The maximum allowed number of consecutive hyphenated lines, as set by
2526 The current hyphenation flags (as set by the
2532 The current hyphenation margin (as set by the
2538 The current hyphenation space (as set by the
2544 The indent that applies to the current output line.
2548 Set to a positive value if last output line is interrupted (i.e., if
2554 1\~if pairwise kerning is enabled, 0\~otherwise.
2558 The current ligature mode (as set by the
2563 .B \[rs]n[.linetabs]
2564 The current line-tabs mode (as set by the
2570 The line length that applies to the current output line.
2574 The title length as set by the
2580 The amount of space that was needed in the last
2582 request that caused a trap to be sprung.
2584 Useful in conjunction with the
2590 1\~if no-space mode is active, 0\~otherwise.
2594 The number of the next page, either the value set by a
2596 request, or the number of the current page plus\~1.
2600 The current pointsize in scaled points.
2604 The last-requested pointsize in scaled points.
2608 The current post-vertical line space as set with the
2614 The number of lines to be right-justified as set by the
2620 The last requested pointsize in points as a decimal fraction.
2622 This is a string-valued register.
2628 These give the values of the parameters set by the first and second
2635 A string representation of the current tab settings suitable for use
2636 as an argument to the
2642 The amount of vertical space truncated by the most recently sprung
2643 vertical position trap, or, if the trap was sprung by a
2645 request, minus the amount of vertical motion produced by the
2649 In other words, at the point a trap is sprung, it represents the
2650 difference of what the vertical position would have been but for the
2651 trap, and what the vertical position actually is.
2653 Useful in conjunction with the
2659 1\~if vertical position traps are enabled, 0\~otherwise.
2663 The sum of the numbers associated with each of the currently enabled
2666 The number associated with each warning is listed in
2667 .BR @g@troff (@MAN1EXT@).
2671 The major version number.
2673 For example, if the version number is 1.03, then
2679 The minor version number.
2681 For example, if the version number is 1.03, then
2687 The revision number of groff.
2697 These four registers are set by the
2699 request and contain the bounding box values (in PostScript units) of a
2700 given PostScript image.
2703 The following read/write registers are set by the
2715 registers, but take account of the heights and depths of characters.
2719 The amount of horizontal space (possibly negative) that should be
2720 added to the last character before a subscript.
2724 How far to right of the center of the last character in the
2726 argument, the center of an accent from a roman font should be placed
2727 over that character.
2730 Other available read/write number registers are:
2734 The current input line number.
2736 is a read-only alias to this register.
2740 The current horizontal position at input line.
2744 The return value of the system() function executed by the last
2750 If greater than\~0, the maximum number of objects on the input stack.
2752 If less than or equal to\~0, there is no limit on the number of
2753 objects on the input stack.
2755 With no limit, recursion can continue until virtual memory is
2762 Note that the traditional
2766 is the current year minus 1900.
2769 .\" --------------------------------------------------------------------
2771 .\" --------------------------------------------------------------------
2774 predefines a single (read/write) string-based register,
2776 which contains the argument given to the
2778 command line option, namely the current output device (for example,
2782 Note that this is not the same as the (read-only) number register
2784 which is defined to be\~1 if
2788 command line option, and zero otherwise.
2790 This behaviour is different to UNIX troff.
2793 Fonts not listed in the
2795 file are automatically mounted on the next available font position
2796 when they are referenced.
2798 If a font is to be mounted explicitly with the
2800 request on an unused font position, it should be mounted on the first
2801 unused font position, which can be found in the
2805 does not enforce this strictly, it will not allow a font to be mounted
2806 at a position whose number is much greater than that of any currently
2810 Interpolating a string does not hide existing macro arguments.
2812 Thus in a macro, a more efficient way of doing
2815 .BI . xx\ \[rs]\[rs]$@
2820 .BI \[rs]\[rs]*[ xx ]\[rs]\[rs]
2823 If the font description file contains pairwise kerning information,
2824 characters from that font will be kerned.
2826 Kerning between two characters can be inhibited by placing a
2831 In a string comparison in a condition, characters that appear at
2832 different input levels to the first delimiter character will not be
2833 recognised as the second or third delimiters.
2835 This applies also to the
2841 escape sequence, a character that appears at a different input level
2842 to the starting delimiter character will not be recognised as the
2843 closing delimiter character.
2845 The same is true for
2857 When decoding a macro argument that is delimited by double quotes, a
2858 character that appears at a different input level to the starting
2859 delimiter character will not be recognised as the closing delimiter
2862 The implementation of
2864 ensures that the double quotes surrounding an argument will appear the
2865 same input level, which will be different to the input level of the
2868 In a long escape name
2870 will not be recognized as a closing delimiter except when it occurs at
2871 the same input level as the opening
2874 In compatibility mode, no attention is paid to the input-level.
2877 There are some new types of condition:
2881 True if there is a number register named
2886 True if there is a string, macro, diversion, or request named
2891 True if there is a color named
2896 True if there is a character
2902 character or a special character
2905 .BI \[rs][ xxx ]\f[R];
2906 the condition will also be true if
2908 has been defined by the
2915 request can now map characters onto
2919 It is now possible to have whitespace between the first and second dot
2920 (or the name of the ending macro) to end a macro definition.
2929 .Text . nop Hello, I'm `foo'.
2930 .Text . nop I will now define `bar'.
2932 .Text . nop Hello, I'm `bar'.
2941 .\" --------------------------------------------------------------------
2942 .SH "INTERMEDIATE OUTPUT FORMAT"
2943 .\" --------------------------------------------------------------------
2945 This section describes the format output by GNU troff.
2947 The output format used by GNU troff is very similar to that used
2948 by Unix device-independent troff.
2950 Only the differences are documented here.
2953 .\" --------------------------------------------------------------------
2955 .\" --------------------------------------------------------------------
2959 command is in scaled points (units of
2963 is the argument to the
2965 command in the DESC file).
2969 command is also in scaled points.
2972 .\" --------------------------------------------------------------------
2974 .\" --------------------------------------------------------------------
2978 Print character with index\~\c
2980 (a non-negative integer) of the current font.
2985 line is present in the DESC file, troff will use the following two
2991 is any sequence of characters terminated by a space or a newline; the
2992 first character should be printed at the current position, the current
2993 horizontal position should be increased by the width of the first
2994 character, and so on for each character.
2996 The width of the character is that given in the font file,
2997 appropriately scaled for the current point size, and rounded so that
2998 it is a multiple of the horizontal resolution.
3000 Special characters cannot be printed using this command.
3006 command except that after printing each character, the current
3007 horizontal position is increased by the sum of the width of that
3012 Note that single characters can have the eighth bit set, as can the
3013 names of fonts and special characters.
3016 The names of characters and fonts can be of arbitrary length; drivers
3017 should not assume that they will be only two characters long.
3020 When a character is to be printed, that character will always be
3021 in the current font.
3023 Unlike device-independent troff, it is not necessary for drivers to
3024 search special fonts to find a character.
3027 For color support, some new commands have been added:
3030 .Text \f[B]mc \f[I]cyan magenta yellow\f[R]
3034 .Text \f[B]mg \f[I]gray\f[R]
3036 .Text \f[B]mk \f[I]cyan magenta yellow black\f[R]
3038 .Text \f[B]mr \f[I]red green blue\f[R]
3039 Set the color components of the current drawing color, using various
3043 resets the drawing color to the default value.
3045 The arguments are integers in the range 0 to 65536.
3050 device control command has been extended.
3053 .Text \f[B]x u \f[I]n\f[R]
3056 is\~1, start underlining of spaces.
3060 is\~0, stop underlining of spaces.
3062 This is needed for the
3064 request in nroff mode and is ignored otherwise.
3067 .\" --------------------------------------------------------------------
3068 .SS "Drawing Commands"
3069 .\" --------------------------------------------------------------------
3073 drawing command has been extended.
3075 These extensions will not be used by GNU pic if the
3080 .Text \f[B]Df \f[I]n\f[R]\*[ic]\[rs]n
3081 Set the shade of gray to be used for filling solid objects to
3084 must be an integer between 0 and 1000, where 0 corresponds solid white
3085 and 1000 to solid black, and values in between correspond to
3086 intermediate shades of gray.
3088 This applies only to solid circles, solid ellipses and solid
3091 By default, a level of 1000 will be used.
3093 Whatever color a solid object has, it should completely obscure
3094 everything beneath it.
3096 A value greater than 1000 or less than 0 can also be used: this means
3097 fill with the shade of gray that is currently being used for lines and
3100 Normally this will be black, but some drivers may provide a way of
3104 .Text \f[B]DC \f[I]d\f[R]\*[ic]\[rs]n
3105 Draw a solid circle with a diameter of
3107 with the leftmost point at the current position.
3110 .Text \f[B]DE \f[I]dx dy\f[R]\*[ic]\[rs]n
3111 Draw a solid ellipse with a horizontal diameter of
3113 and a vertical diameter of
3115 with the leftmost point at the current position.
3121 .Text \f[B]Dp\f[R] $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\[rs]n
3122 Draw a polygon with, for $i = 1 ,..., n+1$, the
3124 vertex at the current position
3126 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$.
3128 At the moment, GNU pic only uses this command to generate triangles
3132 .Text \f[B]DP\f[R] $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\[rs]n
3136 but draw a solid rather than outlined polygon.
3139 .Text \f[B]Dt \f[I]n\f[R]\*[ic]\[rs]n
3140 Set the current line thickness to
3144 Traditionally Unix troff drivers use a line thickness proportional to
3145 the current point size; drivers should continue to do this if no
3147 command has been given, or if a
3149 command has been given with a negative value of
3153 selects the smallest available line thickness.
3156 A difficulty arises in how the current position should be changed after
3157 the execution of these commands.
3159 This is not of great importance since the code generated by GNU pic
3160 does not depend on this.
3162 Given a drawing command of the form
3164 \f[B]\[rs]D\[fm]\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\[fm]
3176 Unix troff will treat each of the $x sub i$ as a horizontal quantity,
3177 and each of the $y sub i$ as a vertical quantity and will assume that
3178 the width of the drawn object is $sum from i=1 to n x sub i$,
3179 and that the height is $sum from i=1 to n y sub i$.
3181 (The assumption about the height can be seen by examining the
3185 registers after using such a
3187 command in a \[rs]w escape sequence).
3189 This rule also holds for all the original drawing commands with the
3192 For the sake of compatibility GNU troff also follows this rule, even
3193 though it produces an ugly result in the case of the
3195 and, to a lesser extent,
3199 Thus after executing a
3203 \f[B]D\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ \c
3204 $x sub n$ $y sub n$\[rs]n
3207 the current position should be increased by
3209 $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$.
3212 Another set of extensions is
3215 .Text \f[B]DFc \f[I]cyan magenta yellow\f[R]\*[ic]\[rs]n
3217 .Text \f[B]DFd\f[R]\*[ic]\[rs]n
3219 .Text \f[B]DFg \f[I]gray\f[R]\*[ic]\[rs]n
3221 .Text \f[B]DFk \f[I]cyan magenta yellow black\f[R]\*[ic]\[rs]n
3223 .Text \f[B]DFr \f[I]red green blue\f[R]\*[ic]\[rs]n
3224 Set the color components of the filling color similar to the
3233 The current position isn't changed by those colour commands.
3236 .\" --------------------------------------------------------------------
3237 .SS "Device Control Commands"
3238 .\" --------------------------------------------------------------------
3240 There is a continuation convention which permits the argument to the
3242 command to contain newlines: when outputting the argument to the
3244 command, GNU troff will follow each newline in the argument with a
3246 character (as usual, it will terminate the entire argument with a
3247 newline); thus if the line after the line containing the
3251 then the newline ending the line containing the
3253 command should be treated as part of the argument to the
3257 should be ignored, and the part of the line following the
3259 should be treated like the part of the line following the
3264 The first three output commands are guaranteed to be:
3273 .\" --------------------------------------------------------------------
3274 .SH INCOMPATIBILITIES
3275 .\" --------------------------------------------------------------------
3277 In spite of the many extensions, groff has retained compatibility to
3278 classical troff to a large degree.
3280 For the cases where the extensions lead to collisions, a special
3281 compatibility mode with the restricted, old functionality was created
3285 .\" --------------------------------------------------------------------
3286 .SS "Groff Language"
3287 .\" --------------------------------------------------------------------
3291 .B compatibility mode
3292 that allows to process roff code written for classical
3294 or for other implementations of roff in a consistent way.
3297 Compatibility mode can be turned on with the
3299 command line option, and turned on or off with the
3305 is\~1 if compatibility mode is on, 0\~otherwise.
3308 This became necessary because the GNU concept for long names causes
3309 some incompatibilities.
3316 as defining a string
3322 mode, this will be considered as a call of a macro named
3332 as references to a string or number register called
3336 takes this as the start of a long name.
3340 .IR "compatibility mode" ,
3341 groff interprets these things in the traditional way; so long
3342 names are not recognized.
3345 On the other hand, groff in
3347 does not allow to use the single-character escapes
3376 (character c) in names of strings, macros, diversions, number
3377 registers, fonts or environments, whereas
3384 escape sequence can be helpful in avoiding these escape sequences in
3388 Fractional pointsizes cause one noteworthy incompatibility.
3395 request ignores scale indicators and so
3402 will set the pointsize to 10\~points, whereas in groff native mode the
3403 pointsize will be set to 10\~scaled points.
3408 mode, there is a fundamental difference between unformatted input
3409 characters, and formatted output characters.
3411 Everything that affects how an output character will be output is
3412 stored with the character; once an output character has been
3413 constructed it is unaffected by any subsequent requests that are
3414 executed, including the
3424 Normally output characters are constructed from input characters at
3425 the moment immediately before the character is added to the current
3428 Macros, diversions and strings are all, in fact, the same type of
3429 object; they contain lists of input characters and output characters
3433 An output character does not behave like an input character for the
3434 purposes of macro processing; it does not inherit any of the special
3435 properties that the input character from which it was constructed
3438 The following example will make things clearer.
3445 .Text \[rs]\[rs]\[rs]\[rs]
3456 this will be printed as
3458 So each pair of input backslashes
3460 is turned into a single output backslash
3462 and the resulting output backslashes are not interpreted as escape
3463 characters when they are reread.
3467 would interpret them as escape characters when they were reread and
3468 would end up printing a single backslash
3472 In GNU, the correct way to get a printable version of the backslash
3477 escape sequence, but classical troff does not provide a clean feature
3478 for getting a non-syntactical backslash.
3480 A close method is the printable version of the current escape
3483 escape sequence; this works if the current escape character is not
3486 It works in both GNU mode and compatibility mode, while dirty tricks
3487 like specifying a sequence of multiple backslashes do not work
3488 reliably; for the different handling in diversions, macro definitions,
3489 or text mode quickly leads to a confusion about the necessary number of
3493 To store an escape sequence in a diversion that will be interpreted
3494 when the diversion is reread, either the traditional
3496 transparent output facility or the
3499 escape sequence can be used.
3502 .\" --------------------------------------------------------------------
3503 .SS "Intermediate Output"
3504 .\" --------------------------------------------------------------------
3506 The groff intermediate output format is in a state of evolution.
3508 So far it has some incompatibilities, but it is intended to establish
3509 a full compatibility to the classical troff output format.
3511 Actually the following incompatibilities exist:
3514 The positioning after the drawing of the polygons conflicts with the
3515 classical definition.
3518 The intermediate output cannot be rescaled to other devices as
3519 classical "device-independent" troff did.
3522 .\" --------------------------------------------------------------------
3524 .\" --------------------------------------------------------------------
3526 Copyright (C) 1989, 2001, 2002 Free Software Foundation, Inc.
3529 This document is distributed under the terms of the FDL (GNU Free
3530 Documentation License) version 1.1 or later.
3532 You should have received a copy of the FDL on your system, it is also
3533 available on-line at the
3534 .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
3536 This document was written by James Clark, with modifications by
3537 .MTO wl@gnu.org "Werner Lemberg"
3539 .MTO bwarken@mayn.de "Bernd Warken" .
3542 This document is part of
3544 the GNU roff distribution.
3546 Formerly, the contents of this document was kept in the manual
3548 .BR @g@troff (@MAN1EXT@).
3549 Only the parts dealing with the language aspects of the different
3551 systems were carried over into this document.
3555 command line options and warnings are still documented in
3556 .BR @g@troff (@MAN1EXT@).
3558 .\" --------------------------------------------------------------------
3560 .\" --------------------------------------------------------------------
3567 presents all groff documentation within a single document.
3570 .BR groff (@MAN1EXT@)
3571 A list of all documentation around
3575 .BR groff (@MAN7EXT@)
3576 A description of the
3578 language, including a short, but complete reference of all predefined
3579 requests, registers, and escapes of plain
3581 From the command line, this is called using
3584 .ShellCommand man\~7\~groff
3587 .BR roff (@MAN7EXT@)
3590 systems, including pointers to further historical documentation.
3595 .I Nroff/\:Troff User's Manual
3598 of 1976 in the revision of
3601 .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz \
3602 "classical troff documentation" .
3605 .\" --------------------------------------------------------------------
3607 .\" --------------------------------------------------------------------
3609 .\" Local Variables: