2 .\" The above line should force the use of eqn as a preprocessor
6 Last update : 10 Feb 2003
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, 2003 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
71 .\" Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$*
72 . Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$*
75 .c A shell command line
78 . IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
80 .c reference of a request or macro
84 .\" Text \f[CB]\*[@arg1]\f[]\$*
85 . Text \f[B]\*[@arg1]\f[]\$*
90 .c representation of an escape sequence
94 .\" Text \f[CB]\[rs]\*[@arg1]\f[]\$*
95 . Text \f[B]\[rs]\*[@arg1]\&\f[]\$*
99 .\" end of macro definitions
101 .\" from old groff_out.man
108 .\" --------------------------------------------------------------------
110 .\" --------------------------------------------------------------------
112 .TH GROFF_DIFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
114 groff_diff \- differences between GNU troff and classical troff
117 .\" --------------------------------------------------------------------
119 .\" --------------------------------------------------------------------
121 This manual page describes the language differences between
125 text processing system and the classical
127 formatter of the freely available Unix\~7 of the 1970s, documented in
129 .I Troff User's Manual
134 This inludes the roff language as well as the intermediate output
135 format (troff output).
140 gives pointers to both the classical
147 .\" --------------------------------------------------------------------
149 .\" --------------------------------------------------------------------
151 In this section, all additional features of
153 compared to the classical Unix\~7
155 are described in detail.
158 .\" --------------------------------------------------------------------
160 .\" --------------------------------------------------------------------
162 The names of number registers, fonts, strings/\:macros/\:diversions,
163 special characters (glyphs), and colors can be of any length.
165 In escape sequences, additionally to the classical
167 construction for a two-character name, you can use
169 for a name of arbitrary length, for example in
171 .TP \w'\[rs]f[xxx]'u+3n
173 Print the special character (glyph) called
183 is a new syntax equal to
185 i.e., to return to the previous font.
188 .BI \[rs]*[ "xxx arg1 arg2 .\|.\|." ]
199 Interpolate number register
203 .\" --------------------------------------------------------------------
204 .SS "Fractional pointsizes"
205 .\" --------------------------------------------------------------------
217 There is a new scale indicator
219 that has the effect of multiplying by sizescale.
221 Requests and escape sequences in troff interpret arguments that
222 represent a pointsize as being in units of scaled points, but they
223 evaluate each such argument using a default scale indicator of
225 Arguments treated in this way are the argument to the
227 request, the third argument to the
229 request, the second and fourth arguments to the
231 request, the argument to the
233 escape sequence, and those variants of the
235 escape sequence that take a numeric expression as their argument.
238 For example, suppose sizescale is 1000; then a scaled point will be
239 equivalent to a millipoint; the call
243 and so sets the pointsize to 10250 scaled points, which is equal to
249 returns the pointsize in points as decimal fraction.
251 There is also a new number register
253 that returns the pointsize in scaled points.
256 It would make no sense to use the
258 scale indicator in a numeric expression whose default scale indicator
267 Similarly it would make no sense to use a scaling indicator other than
271 in a numeric expression whose default scale indicator was
275 disallows this as well.
278 There is also new scale indicator\~\c
280 which multiplies by the number of units in a scaled point.
286 Be sure not to confuse the
293 .\" --------------------------------------------------------------------
294 .SS "Numeric expressions"
295 .\" --------------------------------------------------------------------
297 Spaces are permitted in a number expression within parentheses.
301 indicates a scale of 100ths of an em.
303 indicates a scale of 65536 units, providing fractions for color
308 For example, 0.5f = 32768u.
330 as the default scaling indicator.
334 is missing, ignore scaling indicators in the evaluation of
338 .\" --------------------------------------------------------------------
339 .SS "New escape sequences"
340 .\" --------------------------------------------------------------------
343 .BI \[rs]A' anything '
348 resp., depending on whether
350 is or is not acceptable as the name of a string, macro, diversion, number
351 register, environment, font, or color.
358 This is useful if you want to lookup user input in some sort of
362 .BI \[rs]B' anything '
367 resp., depending on whether
369 is or is not a valid numeric expression.
381 Normally it is more convenient to use
382 .BI \[rs][ xxx ]\f[R].
385 has the advantage that it is compatible with recent versions of
387 and is available in compatibility mode.
391 This is equivalent to an escape character, but it is not interpreted in
394 For example, strings to start and end superscripting could be defined
400 .Text .ds { \[rs]v'\-.3m'\[rs]s'\[rs]En[.s]*6u/10u'
402 .Text .ds } \[rs]s0\[rs]v'.3m'
408 ensures that these definitions will work even if
410 gets interpreted in copy-mode (for example, by being used in a macro
422 This is the same as the
427 switches back to the previous color (note that
429 won't work; it selects font family `P' instead).
439 switches back to the previous color.
447 Set background color for filled objects drawn with the
448 .BI \[rs]D' .\|.\|. '
451 switches back to the previous color.
455 Typeset the glyph with index
461 Most devices only have glyphs with indices between 0 and 255.
463 If the current font does not contain a glyph with that code,
470 escape sequence can be conveniently used in conjunction with the
477 .Text .char \[rs][phone] \[rs]f(ZD\[rs]N'37'
482 The index of each glyph is given in the fourth column in the font
483 description file after the
487 It is possible to include unnamed glyphs in the font description
488 file by using a name of
492 escape sequence is the only way to use these.
498 Suppressing troff output.
506 are intended for internal use by
512 Disable any ditroff glyphs from being emitted to the device driver,
513 provided that the escape occurs at the outer level (see
520 Enable output of glyphs, provided that the escape occurs at the outer
526 also reset the registers
534 These four registers mark the top left and bottom right hand corners
535 of a box which encompasses all written glyphs.
539 Provided that the escape occurs at the outer level, enable output of
540 glyphs and also write out to stderr the page number and four registers
541 encompassing the glyphs previously written since the last call to
546 Begin a nesting level.
552 This is really an internal mechanism for
554 while producing images.
556 They are generated by running the troff source through
558 to the postscript device and
560 to produce images in PNG format.
564 escape will start a new page if the device is not html (to reduce the
565 possibility of images crossing a page boundary).
572 .BI \[rs]O5[ Pfilename ]
577 Provided that this escape occurs at the outer nesting level, write
581 The position of the image,
583 must be specified and must be one of l, r, c, or i (left, right,
587 will be associated with the production of the next inline image.
591 .BI \[rs]R' name\ \[+-]n '
592 This has the same effect as
596 .BI .nr\ name\ \[+-]n
603 Set the point size to
607 must be exactly two digits.
617 Set the point size to
621 is a numeric expression with a default scale indicator of\~\c
630 Interpolate the contents of the environment variable
635 is interpreted in copy-mode.
643 This is approximately equivalent to
644 .BI \[rs]X'\[rs]*[ xxx ]'\f[R].
645 However the contents of the string or macro
647 are not interpreted; also it is permitted for
649 to have been defined as a macro and thus contain newlines (it is not
650 permitted for the argument to
652 to contain newlines).
654 The inclusion of newlines requires an extension to the UNIX troff
655 output format, and will confuse drivers that do not know about this
659 .BI \[rs]Z' anything '
660 Print anything and then restore the horizontal and vertical position;
662 may not contain tabs or leaders.
666 The name by which the current macro was invoked.
670 request can make a macro have more than one name.
674 In a macro or string, the concatenation of all the arguments separated
679 In a macro or string, the concatenation of all the arguments with each
680 surrounded by double quotes, and separated by spaces.
686 In a macro or string, this gives the
692 Macros and strings can have an unlimited number of arguments.
695 .BI \[rs]? anything \[rs]?
696 When used in a diversion, this will transparently embed
700 is read in copy mode.
702 When the diversion is reread,
706 may not contain newlines; use
708 if you want to embed newlines in a diversion.
712 is also recognised in copy mode and turned into a single internal
713 code; it is this code that terminates
725 .Text \[rs]?\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\c
726 .Text \[rs]nx\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]?\[rs]?
748 This increases the width of the preceding glyph so that the
749 spacing between that glyph and the following glyph will be
750 correct if the following glyph is a roman glyph.
753 . nop For example, if an italic f is immediately followed by a roman
754 . nop right parenthesis, then in many fonts the top right portion of
755 . nop the f will overlap the top left of the right parenthesis
756 . nop producing \f[I]f\f[R])\f[R], which is ugly.
760 . ie \n(.g \f[I]f\/\f[R])\f[R]
761 . el \f[I]f\|\f[R])\f[R]
762 . nop and avoids this problem.
764 It is a good idea to use this escape sequence whenever an italic
765 glyph is immediately followed by a roman glyph without any
770 This modifies the spacing of the following glyph so that the
771 spacing between that glyph and the preceding glyph will
772 correct if the preceding glyph is a roman glyph.
775 . nop For example, inserting
777 . nop between the parenthesis and the f changes
778 . nop \f[R](\f[I]f\f[R] to
779 . ie \n(.g \f[R](\,\f[I]f\f[R].
780 . el \f[R](\^\f[I]f\f[R].
782 It is a good idea to use this escape sequence whenever a roman
783 glyph is immediately followed by an italic glyph without any
790 except that it behaves like a character declared with the
792 request to be transparent for the purposes of end-of-sentence
797 This produces an unbreakable space that stretches like a normal
798 inter-word space when a line is adjusted.
802 This causes the insertion of a zero-width break point.
806 within a word but without insertion of a soft hyphen character.
810 Everything up to and including the next newline is ignored.
812 This is interpreted in copy mode.
818 does not ignore the terminating newline.
821 .\" --------------------------------------------------------------------
823 .\" --------------------------------------------------------------------
829 for number register object named
831 The new name and the old name will be exactly equivalent.
835 is undefined, a warning of type
837 will be generated, and the request will be ignored.
843 for request, string, macro, or diversion object named
846 The new name and the old name will be exactly equivalent (it is
847 similar to a hard rather than a soft link).
851 is undefined, a warning of type
853 will be generated, and the request will be ignored.
863 requests only create a new object if the name of the macro, diversion
864 or string diversion is currently undefined or if it is defined to be a
865 request; normally they modify the value of an existing object.
869 Append to macro indirectly.
873 request below for more information.
879 but compatibility mode is switched off during execution.
881 To be more precise, a `compatibility save' token is inserted at the
882 beginning of the macro addition, and a `compatibility restore' token at
885 As a consequence, the requests
891 can be intermixed freely since the compatibility save/\:restore tokens
892 only affect the macro parts defined by
899 This request `unformats' the diversion
903 and space characters (and some escape sequences) that were formatted
906 will be treated like ordinary input characters when
909 Useful for diversions in conjunction with the
913 It can be also used for gross hacks; for example, this
933 will set register\~\c
937 Note that glyph information (font, font size, etc.) is not preserved;
946 but compatibility mode is switched off during expansion.
948 To be more precise, a `compatibility save' token is inserted at the
949 beginning of the string, and a `compatibility restore' token at the end.
951 As a consequence, the requests
957 can be intermixed freely since the compatibility save/\:restore tokens
958 only affect the (sub)strings defined by
965 Print a backtrace of the input stack on stderr.
969 Set the blank line macro to
971 If there is a blank line macro, it will be invoked when a blank line
972 is encountered instead of the usual troff behaviour.
978 These requests are similar to the
982 requests with the exception that a partially filled line will not
983 become part of the diversion (i.e., the diversion always starts with a
984 new line) but restored after ending the diversion, discarding the
985 partially filled line which possibly comes from the diversion.
989 Break out of a while loop.
997 Be sure not to confuse this with the
1007 .BI .cflags\ n\ c1\ c2\|.\|.\|.\&
1011 have properties determined by
1013 which is ORed from the following:
1017 The character ends sentences (initially characters
1019 have this property).
1022 Lines can be broken before the character (initially no characters have
1023 this property); a line will not be broken at a character with this
1024 property unless the characters on each side both have non-zero
1028 Lines can be broken after the character (initially characters
1029 .B \-\[rs][hy]\[rs][em]
1030 have this property); a line will not be broken at a character with
1031 this property unless the characters on each side both have non-zero
1035 The character overlaps horizontally (initially characters
1036 .B \[rs][ul]\[rs][rn]\[rs][ru]\[rs][radicalex]\[rs][sqrtex]
1037 have this property).
1040 The character overlaps vertically (initially character
1045 An end-of-sentence character followed by any number of characters with
1046 this property will be treated as the end of a sentence if followed by
1047 a newline or two spaces; in other words the character is transparent
1048 for the purposes of end-of-sentence recognition; this is the same as
1049 having a zero space factor in \*[tx] (initially characters
1050 .B \[dq]')]*\[rs](dg\[rs](rq
1051 have this property).
1055 .BI .char\ c\ string
1062 needs to be printed,
1064 will be processed in a temporary environment and the result will be
1065 wrapped up into a single object.
1067 Compatibility mode will be turned off and the escape character will be
1074 Any emboldening, constant spacing or track kerning will be applied to
1075 this object rather than to individual glyphs in
1079 A glyph defined by this request can be used just like a normal
1080 glyph provided by the output device.
1082 In particular other characters can be translated to it with the
1084 request; it can be made the leader character by the
1086 request; repeated patterns can be drawn with the character using the
1090 escape sequences; words containing the character can be hyphenated
1093 request is used to give the character a hyphenation code.
1096 There is a special anti-recursion feature: Use of glyph within the
1097 glyph's definition will be handled like normal glyphs not
1101 A glyph definition can be removed with the
1107 Chop the last element off macro, string, or diversion
1109 This is useful for removing the newline from the end of diversions
1110 that are to be interpolated as strings.
1114 Close the stream named
1117 will no longer be an acceptable argument to the
1127 Finish the current iteration of a while loop.
1139 is non-zero or missing, enable colors (this is the default), otherwise
1146 is non-zero or missing, enable compatibility mode, otherwise disable
1149 In compatibility mode, long names are not recognised, and the
1150 incompatibilities caused by long names do not arise.
1153 .BI .defcolor\ xxx\ scheme\ color_components
1156 can be one of the following values:
1162 (four components), and
1168 Color components can be given either as a hexadecimal string or as
1169 positive decimal integers in the range 0-65535.
1171 A hexadecimal string contains all color components concatenated; it
1172 must start with either
1176 The former specifies hex values in the range 0-255 (which are
1177 internally multiplied by\~257), the latter in the range 0-65535.
1179 Examples: #FFC0CB (pink), ##ffff0000ffff (magenta).
1181 A new scaling indicator\~\c
1183 has been introduced which multiplies its value by\~65536; this makes
1184 it convenient to specify color components as fractions in the range 0
1192 .Text .defcolor darkgreen rgb 0.1f 0.5f 0.2f
1200 is the default scaling indicator for the
1202 request, thus the above statement is equivalent to
1207 .Text .defcolor darkgreen rgb 0.1 0.5 0.2
1215 (which is device-specific) can't be redefined.
1217 It is possible that the default color for
1225 Define macro indirectly.
1227 The following example
1256 but compatibility mode is switched off during execution.
1258 On entry, the current compatibility mode is saved and restored at exit.
1264 with compatibility mode disabled.
1277 would have the same effect as
1286 except that it would work even if compatibility mode had been enabled.
1288 Note that the previous compatibility mode is restored before any files
1299 but compatibility mode is switched off during expansion.
1301 To be more precise, a `compatibility save' token is inserted at the
1302 beginning of the string, and a `compatibility restore' token at the end.
1306 Save current escape character.
1310 Restore escape character saved with
1312 Without a previous call to
1315 will be the new escape character.
1319 Copy the contents of environment
1321 to the current environment.
1323 No pushing or popping of environments will be done.
1327 Set the current font family to
1329 The current font family is part of the current environment.
1332 is missing, switch back to previous font family.
1334 The value at start-up is `T'.
1336 See the description of the
1338 request for more information on font families.
1341 .BI .fchar\ c\ string
1342 Define fallback glyph
1347 The syntax of this request is the same as the
1349 request; the only difference is that a glyph defined with
1351 hides the glyph with the same name in the current font, whereas a
1354 is checked only if the particular glyph isn't found in the current font.
1356 This test happens before checking special fonts.
1359 .BI .fschar\ f\ c\ string
1360 Define fallback glyph
1367 The syntax of this request is the same as the
1369 request (with an additional argument to specify the font); a glyph
1372 is searched after the list of fonts declared with the
1374 request but before the list of fonts declared with
1378 .BI .fspecial\ f\ s1\ s2\|.\|.\|.\&
1379 When the current font is
1384 will be special, that is, they will searched for glyphs not in
1387 Any fonts specified in the
1389 request will be searched after fonts specified in the
1393 Without argument, reset the list of global special fonts to be empty.
1401 Whenever a font named
1403 is referred to in an
1405 escape sequence, or in the
1421 is missing, or equal to
1425 will not be translated.
1428 .BI .hcode \ c1\ code1\ c2\ code2\|.\|.\|.\&
1429 Set the hyphenation code of character
1437 A hyphenation code must be a single input character (not a special
1438 character) other than a digit or a space.
1440 Initially each lower-case letter \%a-z has a hyphenation code, which is
1441 itself, and each upper-case letter \%A-Z has a hyphenation code which is
1442 the lower-case version of itself.
1450 Set the current hyphenation language to
1452 Hyphenation exceptions specified with the
1454 request and hyphenation patterns specified with the
1456 request are both associated with the current hyphenation language.
1460 request is usually invoked by the
1466 Set the maximum number of consecutive hyphenated lines to\~\c
1470 is negative, there is no maximum.
1472 The default value is\~\-1.
1474 This value is associated with the current environment.
1476 Only lines output from an environment count towards the maximum
1477 associated with that environment.
1479 Hyphens resulting from
1481 are counted; explicit hyphens are not.
1485 Read hyphenation patterns from
1487 this will be searched for in the same way that
1489 is searched for when the
1491 option is specified.
1493 It should have the same format as (simple) \*[tx] patterns files.
1495 More specifically, the following scanning rules are implemented.
1499 A percent sign starts a comment (up to the end of the line) even if
1500 preceded by a backslash.
1503 No support for `digraphs' like
1511 (character code of\~\c
1513 in the range 0-127) are recognized; other use of
1522 checks for the expression
1523 .B \[rs]patterns{.\|.\|.}
1524 (possibly with whitespace before and after the braces).
1526 Everything between the braces is taken as hyphenation patterns.
1532 are not allowed in patterns.
1536 .B \[rs]hyphenation{.\|.\|.}
1537 gives a list of hyphenation exceptions.
1544 For backwards compatibility, if
1546 is missing, the whole file is treated as a list of hyphenation patterns
1547 (only recognizing the
1549 character as the start of a comment).
1555 request to map the encoding used in hyphenation patterns files to
1559 The set of hyphenation patterns is associated with the current language
1566 request is usually invoked by the
1568 file; a second call replaces the old patterns with the new ones.
1574 except that the hyphenation patterns from
1576 are appended to the patterns already loaded in the current language.
1579 .BI .hpfcode\ a\ b\ c\ d\ .\|.\|.
1580 After reading a hyphenation patterns file with the
1584 request, convert all characters with character code\~\c
1586 in the recently read patterns to character code\~\c
1594 Initially, all character codes map to themselves.
1598 must be integers in the range 0 to\~255.
1600 Note that it is even possible to use character codes which are invalid in
1607 .I hyphenation margin
1610 when the current adjustment mode is not\~\c
1612 the line will not be hyphenated if the line is no more than
1616 The default hyphenation margin is\~0.
1618 The default scaling indicator for this request is\~\c
1620 The hyphenation margin is associated with the current environment.
1622 The current hyphenation margin is available in the
1629 .I hyphenation space
1632 when the current adjustment mode is\~\c
1634 don't hyphenate the line if the line can be justified by adding no
1637 extra space to each word space.
1639 The default hyphenation space is\~0.
1641 The default scaling indicator for this request is\~\c
1643 The hyphenation space is associated with the current environment.
1645 The current hyphenation space is available in the
1653 for which a line interrupted with
1655 counts as one input line.
1661 is non-zero or missing, enable pairwise kerning, otherwise disable it.
1664 .BI .length\ xx\ string
1665 Compute the length of
1667 and return it in the number register
1669 (which is not necessarily defined before).
1675 is non-zero or missing, enable line-tabs mode, otherwise disable it
1676 (which is the default).
1678 In line-tabs mode, tab distances are computed relative to the
1679 (current) output line.
1681 Otherwise they are taken relative to the input line.
1683 For example, the following
1690 .Text .ds x a\[rs]t\[rs]c
1691 .Text .ds y b\[rs]t\[rs]c
1710 In line-tabs mode, the same code gives
1718 Line-tabs mode is associated with the current environment; the
1719 read-only number register
1720 .B \\[rs]n[.linetabs]
1721 is set to\~1 if in line-tabs mode, and 0 otherwise.
1729 is searched for in the same directories as macro files for the the
1731 command line option.
1733 If the file name to be included has the form
1739 instead and vice versa.
1745 This is similar to `.if\ 1'.
1751 built-in condition true and the
1753 built-in condition false.
1755 This can be reversed using the
1760 .BI .open\ stream\ filename
1763 for writing and associate the stream named
1774 .BI .opena\ stream\ filename
1779 exists, append to it instead of truncating it.
1785 directly to the intermediate output (subject to copy-mode interpretation);
1788 used at the top level.
1790 An initial double quote in
1792 is stripped off to allow initial blanks.
1796 Print the names and contents of all currently defined number registers
1800 .BI .psbb \ filename
1801 Get the bounding box of a PostScript image
1803 This file must conform to Adobe's Document Structuring Conventions;
1804 the command looks for a
1806 comment to extract the bounding box values.
1808 After a successful call, the coordinates (in PostScript units) of the
1809 lower left and upper right corner can be found in the registers
1817 If some error has occurred, the four registers are set to zero.
1821 This behaves like the
1823 request except that input comes from the standard output of
1828 Print the names and positions of all traps (not including input line
1829 traps and diversion traps) on stderr.
1831 Empty slots in the page trap list are printed as well, because they
1832 can affect the priority of subsequently planted traps.
1836 Set the post-vertical line space to
1838 default scale indicator is\~\c
1841 This value will be added to each line after it has been output.
1843 With no argument, the post-vertical line space is set to its previous
1847 The total vertical line spacing consists of four components:
1851 with a negative value which are applied before the line is output, and
1855 with a positive value which are applied after the line is output.
1858 .BI .rchar\ c1\ c2\|.\|.\|.\&
1859 Remove the definitions of glyphs
1862 This undoes the effect of a
1868 Within a macro, return immediately.
1870 No effect otherwise.
1873 .BI .rfschar\ c1\ c2\|.\|.\|.\&
1874 Remove the font-specific definitions of glyphs
1877 This undoes the effect of a
1885 Right justify the next
1889 Without an argument right justify the next input line.
1891 The number of lines to be right justified is available in the
1895 This implicitly does
1899 request implicitly does
1904 Rename number register
1910 .BI .schar\ c\ string
1911 Define global fallback glyph
1916 The syntax of this request is the same as the
1918 request; a glyph defined with
1920 is searched after the list of fonts declared with the
1922 request but before the mounted special fonts.
1926 Set the soft hyphen character to
1930 is omitted, the soft hyphen character will be set to the default
1932 The soft hyphen character is the glyph which will be inserted when
1933 a word is hyphenated at a line break.
1935 If the soft hyphen character does not exist in the font of the
1936 glyph immediately preceding a potential break point, then the line
1937 will not be broken at that point.
1939 Neither definitions (specified with the
1941 request) nor translations (specified with the
1943 request) are considered when finding the soft hyphen character.
1947 In a macro, shift the arguments by
1949 positions: argument\~\c
1955 will no longer be available.
1959 is missing, arguments will be shifted by\~1.
1961 Shifting by negative amounts is currently undefined.
1964 .BI .sizes\ s1\ s2\|.\|.\|.\|sn\ [0]
1965 This command is similar to the
1971 It sets the available font sizes for the current font to
1973 .IR s2 ,\|.\|.\|.\|,\~ sn
1976 The list of sizes can be terminated by an optional\~\c
1981 can also be a range of sizes
1984 Contrary to the font file command, the list can't extend over more
1988 .BI .special\ s1\ s2\|.\|.\|.\&
1992 are special and will be searched for glyphs not in the current
1995 Without arguments, reset the list of special fonts to be empty.
1998 .BI .spreadwarn\ limit
2001 emit a warning if the additional space inserted for each space between
2002 words in an output line is larger or equal to
2005 A negative value is changed to zero; no argument toggles the warning on
2006 and off without changing
2009 The default scaling indicator is\~\c
2019 .B .spreadwarn\ 0.2m
2020 will cause a warning if
2022 must add 0.2m or more for each interword space in a line.
2024 This request is active only if text is justified to both margins (using
2031 with font position\~\c
2033 A font position can be associated either with a font or with a style.
2035 The current font is the index of a font position and so is also either
2038 When it is a style, the font that is actually used is the font the
2039 name of which is the concatenation of the name of the current family
2040 and the name of the current style.
2042 For example, if the current font is\~1 and font position\~1 is
2043 associated with style\~\c
2045 and the current font family is\~\c
2051 If the current font is not a style, then the current family is ignored.
2060 are applied to a style, then they will instead be applied to the
2061 member of the current family corresponding to that style.
2063 The default family can be set with the
2071 file controls which font positions (if any) are initially associated
2072 with styles rather than fonts.
2075 .BI .substring\ xx\ n1\ [ n2 ]
2076 Replace the string named
2078 with the substring defined by the indices
2082 The first character in the string has index\~0.
2086 is omitted, it is taken to be equal to the string's length.
2092 is negative, it will be counted from the end of the string,
2095 The last character has index\~-1, the character before the last
2096 character has index\~-2, etc.
2099 .BI .tkf\ f\ s1\ n1\ s2\ n2
2100 Enable track kerning for font
2102 When the current font is
2104 the width of every glyph will be increased by an amount between
2108 when the current point size is less than or equal to
2110 the width will be increased by
2112 when it is greater than or equal to
2114 the width will be increased by
2116 when the point size is greater than or equal to
2118 and less than or equal to
2120 the increase in width is a linear function of the point size.
2128 is read in copy mode and written on the standard error, but an initial
2131 is stripped off to allow initial blanks.
2137 but without writing a final newline.
2141 Transparently output the contents of file
2143 Each line is output as if preceded by
2145 however, the lines are not subject to copy-mode interpretation.
2147 If the file does not end with a newline, then a newline will be added.
2149 For example, you can define a macro\~\c
2151 containing the contents of file\~\c
2170 request, the file cannot contain characters such as
2172 that are not legal troff input characters.
2176 This is the same as the
2178 request except that the
2180 request will use the character code (if any) before the character
2213 This is the same as the
2215 request except that the translations do not apply to text that is
2216 transparently throughput into a diversion with
2248 built-in condition false, and the
2250 built-in condition true.
2252 This undoes the effect of the
2258 This request `unformats' the diversion
2262 request, which tries to convert formatted elements of the diversion
2263 back to input tokens as much as possible,
2265 will only handle tabs and spaces between words (usually caused by
2266 spaces or newlines in the input) specially.
2268 The former are treated as if they were input tokens, and the latter
2269 are stretchable again.
2271 Note that the vertical size of lines is not preserved.
2273 Glyph information (font, font size, space width, etc.) is retained.
2275 Useful in conjunction with the
2283 Enable vertical position traps if
2285 is non-zero, disable them otherwise.
2287 Vertical position traps are traps set by the
2295 request are not vertical position traps.
2297 The parameter that controls whether vertical position traps are
2300 Initially vertical position traps are enabled.
2306 is the sum of the numbers associated with each warning that is to be
2307 enabled; all other warnings will be disabled.
2309 The number associated with each warning is listed in
2310 .BR @g@troff (@MAN1EXT@).
2314 will disable all warnings, and
2316 will disable all warnings except that about missing glyphs.
2320 is not given, all warnings will be enabled.
2324 Set the scaling indicator used in warnings to
2337 At startup, it is set to\~\c
2341 .BI .while \ c\ anything
2348 can be any condition acceptable to an
2352 can comprise multiple lines if the first line starts with
2354 and the last line ends with
2363 .BI .write\ stream\ anything
2369 must previously have been the subject of an
2373 is read in copy mode;
2379 .BI .writec\ stream\ anything
2382 but without writing a final newline.
2385 .BI .writem\ stream\ xx
2386 Write the contents of the macro or string
2391 must previously have been the subject of an
2395 is read in copy mode.
2398 .\" --------------------------------------------------------------------
2399 .SS "Extended requests"
2400 .\" --------------------------------------------------------------------
2404 When used in a diversion, this will embed in the diversion an object
2405 which, when reread, will cause the contents of
2407 to be transparently copied through to the output.
2409 In UNIX troff, the contents of
2411 is immediately copied through to the output regardless of whether
2412 there is a current diversion; this behaviour is so anomalous that it
2413 must be considered a bug.
2419 is not a number, this will switch to a named environment called
2421 The environment should be popped with a matching
2423 request without any arguments, just as for numbered environments.
2425 There is no limit on the number of named environments; they will be
2426 created the first time that they are referenced.
2430 When two arguments are given to the
2432 request, the second argument gives the
2433 .IR "sentence space size" .
2434 If the second argument is not given, the sentence space size
2435 will be the same as the word space size.
2437 Like the word space size, the sentence space is in units of
2438 one twelfth of the spacewidth parameter for the current font.
2440 Initially both the word space size and the sentence
2443 Contrary to UNIX troff, GNU troff handles this request in nroff mode
2444 also; a given value is then rounded down to the nearest multiple
2447 The sentence space size is used in two circumstances.
2449 If the end of a sentence occurs at the end of a line in fill mode,
2450 then both an inter-word space and a sentence space will be added; if
2451 two spaces follow the end of a sentence in the middle of a line, then
2452 the second space will be a sentence space.
2454 Note that the behaviour of UNIX troff will be exactly that exhibited
2455 by GNU troff if a second argument is never given to the
2459 In GNU troff, as in UNIX troff, you should always follow a sentence
2460 with either a newline or two spaces.
2463 .BI .ta\ n1\ n2\|.\|.\|.nn \ T\ r1\ r2\|.\|.\|.\|rn
2464 Set tabs at positions
2466 .IR n2 ,\|.\|.\|.\|,
2468 and then set tabs at
2470 .IR nn + r2 ,\|.\|.\|.\|,
2474 .IR nn + rn + r2 ,\|.\|.\|.\|,
2487 will set tabs every half an inch.
2491 .\" --------------------------------------------------------------------
2492 .SS "New number registers"
2493 .\" --------------------------------------------------------------------
2495 The following read-only registers are available:
2499 1\~if compatibility mode is in effect, 0\~otherwise.
2503 The depth of the last glyph added to the current environment.
2505 It is positive if the glyph extends below the baseline.
2509 The number of lines remaining to be centered, as set by the
2515 The height of the last glyph added to the current environment.
2517 It is positive if the glyph extends above the baseline.
2521 1\~if colors are enabled, 0\~otherwise.
2525 The skew of the last glyph added to the current environment.
2529 of a glyph is how far to the right of the center of a glyph
2530 the center of an accent over that glyph should be placed.
2534 The name or number of the current environment.
2536 This is a string-valued register.
2540 The current font family.
2542 This is a string-valued register.
2546 The current (internal) real font name.
2548 This is a string-valued register.
2550 If the current font is a style, the value of
2552 is the proper concatenation of family and style name.
2556 The number of the next free font position.
2562 Macros should use this to determine whether they are running under GNU
2567 The current hyphenation language as set by the
2573 The number of immediately preceding consecutive hyphenated lines.
2577 The maximum allowed number of consecutive hyphenated lines, as set by
2584 The current hyphenation flags (as set by the
2590 The current hyphenation margin (as set by the
2596 The current hyphenation space (as set by the
2602 The indent that applies to the current output line.
2606 Set to a positive value if last output line is interrupted (i.e., if
2612 1\~if pairwise kerning is enabled, 0\~otherwise.
2616 The current ligature mode (as set by the
2621 .B \[rs]n[.linetabs]
2622 The current line-tabs mode (as set by the
2628 The line length that applies to the current output line.
2632 The title length as set by the
2638 The amount of space that was needed in the last
2640 request that caused a trap to be sprung.
2642 Useful in conjunction with the
2648 1\~if no-space mode is active, 0\~otherwise.
2652 1\~during a page ejection caused by the
2654 request, 0\~otherwise.
2658 The number of the next page, either the value set by a
2660 request, or the number of the current page plus\~1.
2664 The current pointsize in scaled points.
2668 The last-requested pointsize in scaled points.
2672 The current post-vertical line space as set with the
2678 The number of lines to be right-justified as set by the
2684 The last requested pointsize in points as a decimal fraction.
2686 This is a string-valued register.
2692 These give the values of the parameters set by the first and second
2699 A string representation of the current tab settings suitable for use
2700 as an argument to the
2706 The amount of vertical space truncated by the most recently sprung
2707 vertical position trap, or, if the trap was sprung by a
2709 request, minus the amount of vertical motion produced by the
2713 In other words, at the point a trap is sprung, it represents the
2714 difference of what the vertical position would have been but for the
2715 trap, and what the vertical position actually is.
2717 Useful in conjunction with the
2723 1\~if vertical position traps are enabled, 0\~otherwise.
2727 The sum of the numbers associated with each of the currently enabled
2730 The number associated with each warning is listed in
2731 .BR @g@troff (@MAN1EXT@).
2735 The major version number.
2737 For example, if the version number is 1.03, then
2743 The minor version number.
2745 For example, if the version number is 1.03, then
2751 The revision number of groff.
2761 These four registers are set by the
2763 request and contain the bounding box values (in PostScript units) of a
2764 given PostScript image.
2767 The following read/write registers are set by the
2779 registers, but take account of the heights and depths of glyphs.
2783 The amount of horizontal space (possibly negative) that should be
2784 added to the last glyph before a subscript.
2788 How far to right of the center of the last glyph in the
2790 argument, the center of an accent from a roman font should be placed
2794 Other available read/write number registers are:
2798 The current input line number.
2800 is a read-only alias to this register.
2804 The number of hours past midnight.
2806 Initialized at start-up.
2810 The current horizontal position at input line.
2814 The number of minutes after the hour.
2816 Initialized at start-up.
2820 The number of seconds after the minute.
2822 Initialized at start-up.
2826 The return value of the system() function executed by the last
2832 If greater than\~0, the maximum number of objects on the input stack.
2834 If less than or equal to\~0, there is no limit on the number of
2835 objects on the input stack.
2837 With no limit, recursion can continue until virtual memory is
2844 Note that the traditional
2848 is the current year minus 1900.
2851 .\" --------------------------------------------------------------------
2853 .\" --------------------------------------------------------------------
2856 predefines a single (read/write) string-based register,
2858 which contains the argument given to the
2860 command line option, namely the current output device (for example,
2864 Note that this is not the same as the (read-only) number register
2866 which is defined to be\~1 if
2870 command line option, and zero otherwise.
2872 This behaviour is different to UNIX troff.
2875 Fonts not listed in the
2877 file are automatically mounted on the next available font position
2878 when they are referenced.
2880 If a font is to be mounted explicitly with the
2882 request on an unused font position, it should be mounted on the first
2883 unused font position, which can be found in the
2887 does not enforce this strictly, it will not allow a font to be mounted
2888 at a position whose number is much greater than that of any currently
2892 Interpolating a string does not hide existing macro arguments.
2894 Thus in a macro, a more efficient way of doing
2897 .BI . xx\ \[rs]\[rs]$@
2902 .BI \[rs]\[rs]*[ xx ]\[rs]\[rs]
2905 If the font description file contains pairwise kerning information,
2906 glyphs from that font will be kerned.
2908 Kerning between two glyphs can be inhibited by placing a
2913 In a string comparison in a condition, characters that appear at
2914 different input levels to the first delimiter character will not be
2915 recognised as the second or third delimiters.
2917 This applies also to the
2923 escape sequence, a character that appears at a different input level
2924 to the starting delimiter character will not be recognised as the
2925 closing delimiter character.
2927 The same is true for
2939 When decoding a macro or string argument that is delimited by double
2940 quotes, a character that appears at a different input level to the starting
2941 delimiter character will not be recognised as the closing delimiter
2944 The implementation of
2946 ensures that the double quotes surrounding an argument will appear the
2947 same input level, which will be different to the input level of the
2950 In a long escape name
2952 will not be recognized as a closing delimiter except when it occurs at
2953 the same input level as the opening
2956 In compatibility mode, no attention is paid to the input-level.
2959 There are some new types of condition:
2963 True if there is a number register named
2968 True if there is a string, macro, diversion, or request named
2973 True if there is a color named
2978 True if there is a glyph
2984 character or a glyph (special character)
2987 .BI \[rs][ xxx ]\f[R];
2988 the condition will also be true if
2990 has been defined by the
2997 request can now map characters onto
3001 It is now possible to have whitespace between the first and second dot
3002 (or the name of the ending macro) to end a macro definition.
3011 .Text . nop Hello, I'm `foo'.
3012 .Text . nop I will now define `bar'.
3014 .Text . nop Hello, I'm `bar'.
3023 .\" --------------------------------------------------------------------
3024 .SH "INTERMEDIATE OUTPUT FORMAT"
3025 .\" --------------------------------------------------------------------
3027 This section describes the format output by GNU troff.
3029 The output format used by GNU troff is very similar to that used
3030 by Unix device-independent troff.
3032 Only the differences are documented here.
3035 .\" --------------------------------------------------------------------
3037 .\" --------------------------------------------------------------------
3041 command is in scaled points (units of
3045 is the argument to the
3047 command in the DESC file).
3051 command is also in scaled points.
3054 .\" --------------------------------------------------------------------
3056 .\" --------------------------------------------------------------------
3060 Print glyph with index\~\c
3062 (a non-negative integer) of the current font.
3067 line is present in the DESC file, troff will use the following two
3073 is any sequence of characters terminated by a space or a newline (to
3074 be more precise, it is a sequence of glyphs which are accessed with
3075 the corresponding characters); the first character should be printed at
3076 the current position, the current horizontal position should be increased
3077 by the width of the first character, and so on for each character.
3079 The width of the glyph is that given in the font file,
3080 appropriately scaled for the current point size, and rounded so that
3081 it is a multiple of the horizontal resolution.
3083 Special characters cannot be printed using this command.
3089 command except that after printing each character, the current
3090 horizontal position is increased by the sum of the width of that
3095 Note that single characters can have the eighth bit set, as can the
3096 names of fonts and special characters.
3099 The names of glyphs and fonts can be of arbitrary length; drivers
3100 should not assume that they will be only two characters long.
3103 When a glyph is to be printed, that glyph will always be
3104 in the current font.
3106 Unlike device-independent troff, it is not necessary for drivers to
3107 search special fonts to find a glyph.
3110 For color support, some new commands have been added:
3113 .Text \f[B]mc \f[I]cyan magenta yellow\f[R]
3117 .Text \f[B]mg \f[I]gray\f[R]
3119 .Text \f[B]mk \f[I]cyan magenta yellow black\f[R]
3121 .Text \f[B]mr \f[I]red green blue\f[R]
3122 Set the color components of the current drawing color, using various
3126 resets the drawing color to the default value.
3128 The arguments are integers in the range 0 to 65536.
3133 device control command has been extended.
3136 .Text \f[B]x u \f[I]n\f[R]
3139 is\~1, start underlining of spaces.
3143 is\~0, stop underlining of spaces.
3145 This is needed for the
3147 request in nroff mode and is ignored otherwise.
3150 .\" --------------------------------------------------------------------
3151 .SS "Drawing Commands"
3152 .\" --------------------------------------------------------------------
3156 drawing command has been extended.
3158 These extensions will not be used by GNU pic if the
3163 .Text \f[B]Df \f[I]n\f[R]\*[ic]\[rs]n
3164 Set the shade of gray to be used for filling solid objects to
3167 must be an integer between 0 and 1000, where 0 corresponds solid white
3168 and 1000 to solid black, and values in between correspond to
3169 intermediate shades of gray.
3171 This applies only to solid circles, solid ellipses and solid
3174 By default, a level of 1000 will be used.
3176 Whatever color a solid object has, it should completely obscure
3177 everything beneath it.
3179 A value greater than 1000 or less than 0 can also be used: this means
3180 fill with the shade of gray that is currently being used for lines and
3183 Normally this will be black, but some drivers may provide a way of
3188 .BI \[rs]D'f .\|.\|. '
3189 command shouldn't be used since its argument is always rounded to an
3190 integer multiple of the horizontal resolution which can lead to
3194 .Text \f[B]DC \f[I]d\f[R]\*[ic]\[rs]n
3195 Draw a solid circle with a diameter of
3197 with the leftmost point at the current position.
3200 .Text \f[B]DE \f[I]dx dy\f[R]\*[ic]\[rs]n
3201 Draw a solid ellipse with a horizontal diameter of
3203 and a vertical diameter of
3205 with the leftmost point at the current position.
3211 .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
3212 Draw a polygon with, for $i = 1 ,..., n+1$, the
3214 vertex at the current position
3216 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$.
3218 At the moment, GNU pic only uses this command to generate triangles
3222 .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
3226 but draw a solid rather than outlined polygon.
3229 .Text \f[B]Dt \f[I]n\f[R]\*[ic]\[rs]n
3230 Set the current line thickness to
3234 Traditionally Unix troff drivers use a line thickness proportional to
3235 the current point size; drivers should continue to do this if no
3237 command has been given, or if a
3239 command has been given with a negative value of
3243 selects the smallest available line thickness.
3246 A difficulty arises in how the current position should be changed after
3247 the execution of these commands.
3249 This is not of great importance since the code generated by GNU pic
3250 does not depend on this.
3252 Given a drawing command of the form
3254 \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]
3266 Unix troff will treat each of the $x sub i$ as a horizontal quantity,
3267 and each of the $y sub i$ as a vertical quantity and will assume that
3268 the width of the drawn object is $sum from i=1 to n x sub i$,
3269 and that the height is $sum from i=1 to n y sub i$.
3271 (The assumption about the height can be seen by examining the
3275 registers after using such a
3277 command in a \[rs]w escape sequence).
3279 This rule also holds for all the original drawing commands with the
3282 For the sake of compatibility GNU troff also follows this rule, even
3283 though it produces an ugly result in the case of the
3285 and, to a lesser extent,
3289 Thus after executing a
3293 \f[B]D\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ \c
3294 $x sub n$ $y sub n$\[rs]n
3297 the current position should be increased by
3299 $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$.
3302 Another set of extensions is
3305 .Text \f[B]DFc \f[I]cyan magenta yellow\f[R]\*[ic]\[rs]n
3307 .Text \f[B]DFd\f[R]\*[ic]\[rs]n
3309 .Text \f[B]DFg \f[I]gray\f[R]\*[ic]\[rs]n
3311 .Text \f[B]DFk \f[I]cyan magenta yellow black\f[R]\*[ic]\[rs]n
3313 .Text \f[B]DFr \f[I]red green blue\f[R]\*[ic]\[rs]n
3314 Set the color components of the filling color similar to the
3323 The current position isn't changed by those colour commands (including
3327 .\" --------------------------------------------------------------------
3328 .SS "Device Control Commands"
3329 .\" --------------------------------------------------------------------
3331 There is a continuation convention which permits the argument to the
3333 command to contain newlines: when outputting the argument to the
3335 command, GNU troff will follow each newline in the argument with a
3337 character (as usual, it will terminate the entire argument with a
3338 newline); thus if the line after the line containing the
3342 then the newline ending the line containing the
3344 command should be treated as part of the argument to the
3348 should be ignored, and the part of the line following the
3350 should be treated like the part of the line following the
3355 The first three output commands are guaranteed to be:
3364 .\" --------------------------------------------------------------------
3365 .SH INCOMPATIBILITIES
3366 .\" --------------------------------------------------------------------
3368 In spite of the many extensions, groff has retained compatibility to
3369 classical troff to a large degree.
3371 For the cases where the extensions lead to collisions, a special
3372 compatibility mode with the restricted, old functionality was created
3376 .\" --------------------------------------------------------------------
3377 .SS "Groff Language"
3378 .\" --------------------------------------------------------------------
3382 .B compatibility mode
3383 that allows to process roff code written for classical
3385 or for other implementations of roff in a consistent way.
3388 Compatibility mode can be turned on with the
3390 command line option, and turned on or off with the
3396 is\~1 if compatibility mode is on, 0\~otherwise.
3399 This became necessary because the GNU concept for long names causes
3400 some incompatibilities.
3407 as defining a string
3413 mode, this will be considered as a call of a macro named
3423 as references to a string or number register called
3427 takes this as the start of a long name.
3431 .IR "compatibility mode" ,
3432 groff interprets these things in the traditional way; so long
3433 names are not recognized.
3436 On the other hand, groff in
3438 does not allow to use the single-character escapes
3467 (character c) in names of strings, macros, diversions, number
3468 registers, fonts or environments, whereas
3475 escape sequence can be helpful in avoiding these escape sequences in
3479 Fractional pointsizes cause one noteworthy incompatibility.
3486 request ignores scale indicators and so
3493 will set the pointsize to 10\~points, whereas in groff native mode the
3494 pointsize will be set to 10\~scaled points.
3499 mode, there is a fundamental difference between unformatted input
3500 characters, and formatted output characters (glyphs).
3502 Everything that affects how a glyph will be output is
3503 stored with the glyph; once a glyph has been
3504 constructed it is unaffected by any subsequent requests that are
3505 executed, including the
3515 Normally glyphs are constructed from input characters at
3516 the moment immediately before the glyph is added to the current
3519 Macros, diversions and strings are all, in fact, the same type of
3520 object; they contain lists of input characters and glyphs
3524 Special characters can be both; before being added to the output, they
3525 act as input entities, afterwards they denote glyphs.
3528 A glyph does not behave like an input character for the
3529 purposes of macro processing; it does not inherit any of the special
3530 properties that the input character from which it was constructed
3533 The following example will make things clearer.
3540 .Text \[rs]\[rs]\[rs]\[rs]
3551 this will be printed as
3553 So each pair of input backslashes
3555 is turned into a single output backslash glyph
3557 and the resulting output backslashes are not interpreted as escape
3558 characters when they are reread.
3562 would interpret them as escape characters when they were reread and
3563 would end up printing a single backslash
3567 In GNU, the correct way to get a printable version of the backslash
3572 escape sequence, but classical troff does not provide a clean feature
3573 for getting a non-syntactical backslash.
3575 A close method is the printable version of the current escape
3578 escape sequence; this works if the current escape character is not
3581 It works in both GNU mode and compatibility mode, while dirty tricks
3582 like specifying a sequence of multiple backslashes do not work
3583 reliably; for the different handling in diversions, macro definitions,
3584 or text mode quickly leads to a confusion about the necessary number of
3588 To store an escape sequence in a diversion that will be interpreted
3589 when the diversion is reread, either the traditional
3591 transparent output facility or the
3594 escape sequence can be used.
3597 .\" --------------------------------------------------------------------
3598 .SS "Intermediate Output"
3599 .\" --------------------------------------------------------------------
3601 The groff intermediate output format is in a state of evolution.
3603 So far it has some incompatibilities, but it is intended to establish
3604 a full compatibility to the classical troff output format.
3606 Actually the following incompatibilities exist:
3609 The positioning after the drawing of the polygons conflicts with the
3610 classical definition.
3613 The intermediate output cannot be rescaled to other devices as
3614 classical "device-independent" troff did.
3617 .\" --------------------------------------------------------------------
3619 .\" --------------------------------------------------------------------
3621 Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc.
3624 This document is distributed under the terms of the FDL (GNU Free
3625 Documentation License) version 1.1 or later.
3627 You should have received a copy of the FDL on your system, it is also
3628 available on-line at the
3629 .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
3631 This document was written by James Clark, with modifications by
3632 .MTO wl@gnu.org "Werner Lemberg"
3634 .MTO bwarken@mayn.de "Bernd Warken" .
3637 This document is part of
3639 the GNU roff distribution.
3641 Formerly, the contents of this document was kept in the manual
3643 .BR @g@troff (@MAN1EXT@).
3644 Only the parts dealing with the language aspects of the different
3646 systems were carried over into this document.
3650 command line options and warnings are still documented in
3651 .BR @g@troff (@MAN1EXT@).
3653 .\" --------------------------------------------------------------------
3655 .\" --------------------------------------------------------------------
3662 presents all groff documentation within a single document.
3665 .BR groff (@MAN1EXT@)
3666 A list of all documentation around
3670 .BR groff (@MAN7EXT@)
3671 A description of the
3673 language, including a short, but complete reference of all predefined
3674 requests, registers, and escapes of plain
3676 From the command line, this is called using
3679 .ShellCommand man\~7\~groff
3682 .BR roff (@MAN7EXT@)
3685 systems, including pointers to further historical documentation.
3690 .I Nroff/\:Troff User's Manual
3693 of 1976 in the revision of
3696 .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz \
3697 "classical troff documentation" .
3700 .\" --------------------------------------------------------------------
3702 .\" --------------------------------------------------------------------
3704 .\" Local Variables: