2 .\" The above line should force the use of eqn as a preprocessor
6 Last update : 07 Jan 2004
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, 2004 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 .\" --------------------------------------------------------------------
31 .do nr groff_diff_C \n[.C]
46 .\" define a string tx for the TeX logo
47 .ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
51 .\" --------------------------------------------------------------------
52 .\" start of macro definitions
74 .\" Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$*
75 . Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$*
78 .c A shell command line
81 . IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
83 .c reference of a request or macro
87 .\" Text \f[CB]\*[@arg1]\f[]\$*
88 . Text \f[B]\*[@arg1]\f[]\$*
93 .c representation of an escape sequence
97 .\" Text \f[CB]\[rs]\*[@arg1]\f[]\$*
98 . Text \f[B]\[rs]\*[@arg1]\&\f[]\$*
102 .\" end of macro definitions
104 .\" from old groff_out.man
111 .\" --------------------------------------------------------------------
113 .\" --------------------------------------------------------------------
115 .TH GROFF_DIFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
117 groff_diff \- differences between GNU troff and classical troff
120 .\" --------------------------------------------------------------------
122 .\" --------------------------------------------------------------------
124 This manual page describes the language differences between
128 text processing system and the classical
130 formatter of the freely available Unix\~7 of the 1970s, documented in
132 .I Troff User's Manual
137 This inludes the roff language as well as the intermediate output
138 format (troff output).
143 gives pointers to both the classical
150 .\" --------------------------------------------------------------------
152 .\" --------------------------------------------------------------------
154 In this section, all additional features of
156 compared to the classical Unix\~7
158 are described in detail.
161 .\" --------------------------------------------------------------------
163 .\" --------------------------------------------------------------------
165 The names of number registers, fonts, strings/\:macros/\:diversions,
166 special characters (glyphs), and colors can be of any length.
168 In escape sequences, additionally to the classical
170 construction for a two-character name, you can use
172 for a name of arbitrary length.
176 Print the special character (glyph) called
180 .BI \[rs][ "comp1 comp2 .\|.\|." ]
181 Print composite glyph consisting of multiple components.
183 Example: `\[rs][A\~ho]' is capital letter A with ogonek which finally maps
184 to glyph name `u0041_0328'.
188 for details how a glyph name for a composite glyph is constructed, and
189 .BR groff_char (@MAN7EXT@)
190 for list of glyph name components used composite glyph names.
199 is a new syntax equal to
201 i.e., to return to the previous font.
204 .BI \[rs]*[ "xxx arg1 arg2 .\|.\|." ]
215 Interpolate number register
219 .\" --------------------------------------------------------------------
220 .SS "Fractional pointsizes"
221 .\" --------------------------------------------------------------------
233 There is a new scale indicator
235 that has the effect of multiplying by sizescale.
237 Requests and escape sequences in troff interpret arguments that
238 represent a pointsize as being in units of scaled points, but they
239 evaluate each such argument using a default scale indicator of
241 Arguments treated in this way are the argument to the
243 request, the third argument to the
245 request, the second and fourth arguments to the
247 request, the argument to the
249 escape sequence, and those variants of the
251 escape sequence that take a numeric expression as their argument.
254 For example, suppose sizescale is 1000; then a scaled point will be
255 equivalent to a millipoint; the call
259 and so sets the pointsize to 10250 scaled points, which is equal to
265 returns the pointsize in points as decimal fraction.
267 There is also a new number register
269 that returns the pointsize in scaled points.
272 It would make no sense to use the
274 scale indicator in a numeric expression whose default scale indicator
283 Similarly it would make no sense to use a scaling indicator other than
287 in a numeric expression whose default scale indicator was
291 disallows this as well.
294 There is also new scale indicator\~\c
296 which multiplies by the number of units in a scaled point.
302 Be sure not to confuse the
309 .\" --------------------------------------------------------------------
310 .SS "Numeric expressions"
311 .\" --------------------------------------------------------------------
313 Spaces are permitted in a number expression within parentheses.
317 indicates a scale of 100ths of an em.
319 indicates a scale of 65536 units, providing fractions for color
324 For example, 0.5f = 32768u.
346 as the default scaling indicator.
350 is missing, ignore scaling indicators in the evaluation of
354 .\" --------------------------------------------------------------------
355 .SS "New escape sequences"
356 .\" --------------------------------------------------------------------
359 .BI \[rs]A' anything '
364 resp., depending on whether
366 is or is not acceptable as the name of a string, macro, diversion, number
367 register, environment, font, or color.
374 This is useful if you want to lookup user input in some sort of
378 .BI \[rs]B' anything '
383 resp., depending on whether
385 is or is not a valid numeric expression.
397 Normally it is more convenient to use
398 .BI \[rs][ xxx ]\f[R].
401 has the advantage that it is compatible with recent versions of
403 and is available in compatibility mode.
407 This is equivalent to an escape character, but it is not interpreted in
410 For example, strings to start and end superscripting could be defined
416 .Text .ds { \[rs]v'\-.3m'\[rs]s'\[rs]En[.s]*6u/10u'
418 .Text .ds } \[rs]s0\[rs]v'.3m'
424 ensures that these definitions will work even if
426 gets interpreted in copy-mode (for example, by being used in a macro
438 This is the same as the
443 switches back to the previous color (note that
445 won't work; it selects font family `P' instead).
455 switches back to the previous color.
463 Set background color for filled objects drawn with the
464 .BI \[rs]D' .\|.\|. '
467 switches back to the previous color.
471 Typeset the glyph with index
477 Most devices only have glyphs with indices between 0 and 255.
479 If the current font does not contain a glyph with that code,
486 escape sequence can be conveniently used in conjunction with the
493 .Text .char \[rs][phone] \[rs]f(ZD\[rs]N'37'
498 The index of each glyph is given in the fourth column in the font
499 description file after the
503 It is possible to include unnamed glyphs in the font description
504 file by using a name of
508 escape sequence is the only way to use these.
514 Suppressing troff output.
522 are intended for internal use by
528 Disable any ditroff glyphs from being emitted to the device driver,
529 provided that the escape occurs at the outer level (see
536 Enable output of glyphs, provided that the escape occurs at the outer
542 also reset the registers
550 These four registers mark the top left and bottom right hand corners
551 of a box which encompasses all written glyphs.
555 Provided that the escape occurs at the outer level, enable output of
556 glyphs and also write out to stderr the page number and four registers
557 encompassing the glyphs previously written since the last call to
562 Begin a nesting level.
568 This is really an internal mechanism for
570 while producing images.
572 They are generated by running the troff source through
574 to the postscript device and
576 to produce images in PNG format.
580 escape will start a new page if the device is not html (to reduce the
581 possibility of images crossing a page boundary).
588 .BI \[rs]O5[ Pfilename ]
593 Provided that this escape occurs at the outer nesting level, write
597 The position of the image,
599 must be specified and must be one of l, r, c, or i (left, right,
603 will be associated with the production of the next inline image.
607 .BI \[rs]R' name\ \[+-]n '
608 This has the same effect as
612 .BI .nr\ name\ \[+-]n
619 Set the point size to
623 must be exactly two digits.
633 Set the point size to
637 is a numeric expression with a default scale indicator of\~\c
646 Interpolate the contents of the environment variable
651 is interpreted in copy-mode.
659 This is approximately equivalent to
660 .BI \[rs]X'\[rs]*[ xxx ]'\f[R].
661 However the contents of the string or macro
663 are not interpreted; also it is permitted for
665 to have been defined as a macro and thus contain newlines (it is not
666 permitted for the argument to
668 to contain newlines).
670 The inclusion of newlines requires an extension to the UNIX troff
671 output format, and will confuse drivers that do not know about this
675 .BI \[rs]Z' anything '
676 Print anything and then restore the horizontal and vertical position;
678 may not contain tabs or leaders.
682 The name by which the current macro was invoked.
686 request can make a macro have more than one name.
690 In a macro or string, the concatenation of all the arguments separated
695 In a macro or string, the concatenation of all the arguments with each
696 surrounded by double quotes, and separated by spaces.
702 In a macro or string, this gives the
708 Macros and strings can have an unlimited number of arguments.
711 .BI \[rs]? anything \[rs]?
712 When used in a diversion, this will transparently embed
716 is read in copy mode.
718 When the diversion is reread,
722 may not contain newlines; use
724 if you want to embed newlines in a diversion.
728 is also recognised in copy mode and turned into a single internal
729 code; it is this code that terminates
741 .Text \[rs]?\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\c
742 .Text \[rs]nx\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]?\[rs]?
764 This increases the width of the preceding glyph so that the
765 spacing between that glyph and the following glyph will be
766 correct if the following glyph is a roman glyph.
769 . nop For example, if an italic f is immediately followed by a roman
770 . nop right parenthesis, then in many fonts the top right portion of
771 . nop the f will overlap the top left of the right parenthesis
772 . nop producing \f[I]f\f[R])\f[R], which is ugly.
776 . ie \n(.g \f[I]f\/\f[R])\f[R]
777 . el \f[I]f\|\f[R])\f[R]
778 . nop and avoids this problem.
780 It is a good idea to use this escape sequence whenever an italic
781 glyph is immediately followed by a roman glyph without any
786 This modifies the spacing of the following glyph so that the
787 spacing between that glyph and the preceding glyph will
788 correct if the preceding glyph is a roman glyph.
791 . nop For example, inserting
793 . nop between the parenthesis and the f changes
794 . nop \f[R](\f[I]f\f[R] to
795 . ie \n(.g \f[R](\,\f[I]f\f[R].
796 . el \f[R](\^\f[I]f\f[R].
798 It is a good idea to use this escape sequence whenever a roman
799 glyph is immediately followed by an italic glyph without any
806 except that it behaves like a character declared with the
808 request to be transparent for the purposes of end-of-sentence
813 This produces an unbreakable space that stretches like a normal
814 inter-word space when a line is adjusted.
818 This causes the insertion of a zero-width break point.
822 within a word but without insertion of a soft hyphen character.
826 Everything up to and including the next newline is ignored.
828 This is interpreted in copy mode.
834 does not ignore the terminating newline.
837 .\" --------------------------------------------------------------------
839 .\" --------------------------------------------------------------------
845 for number register object named
847 The new name and the old name will be exactly equivalent.
851 is undefined, a warning of type
853 will be generated, and the request will be ignored.
859 for request, string, macro, or diversion object named
862 The new name and the old name will be exactly equivalent (it is
863 similar to a hard rather than a soft link).
867 is undefined, a warning of type
869 will be generated, and the request will be ignored.
879 requests only create a new object if the name of the macro, diversion
880 or string diversion is currently undefined or if it is defined to be a
881 request; normally they modify the value of an existing object.
887 but compatibility mode is switched off during execution.
889 To be more precise, a `compatibility save' token is inserted at the
890 beginning of the macro addition, and a `compatibility restore' token at
893 As a consequence, the requests
899 can be intermixed freely since the compatibility save/\:restore tokens
900 only affect the macro parts defined by
907 Append to macro indirectly.
911 request below for more information.
917 request but compatibility mode is switched off during execution.
923 but compatibility mode is switched off during expansion.
925 To be more precise, a `compatibility save' token is inserted at the
926 beginning of the string, and a `compatibility restore' token at the end.
928 As a consequence, the requests
934 can be intermixed freely since the compatibility save/\:restore tokens
935 only affect the (sub)strings defined by
942 This request `unformats' the diversion
946 and space characters (and some escape sequences) that were formatted
949 will be treated like ordinary input characters when
952 Useful for diversions in conjunction with the
956 It can be also used for gross hacks; for example, this
976 will set register\~\c
980 Note that glyph information (font, font size, etc.) is not preserved;
987 Print a backtrace of the input stack on stderr.
991 Set the blank line macro to
993 If there is a blank line macro, it will be invoked when a blank line
994 is encountered instead of the usual troff behaviour.
1000 These requests are similar to the
1004 requests with the exception that a partially filled line will not
1005 become part of the diversion (i.e., the diversion always starts with a
1006 new line) but restored after ending the diversion, discarding the
1007 partially filled line which possibly comes from the diversion.
1011 Break out of a while loop.
1019 Be sure not to confuse this with the
1029 .BI .cflags\ n\ c1\ c2\|.\|.\|.\&
1033 have properties determined by
1035 which is ORed from the following:
1039 The character ends sentences (initially characters
1041 have this property).
1044 Lines can be broken before the character (initially no characters have
1045 this property); a line will not be broken at a character with this
1046 property unless the characters on each side both have non-zero
1050 Lines can be broken after the character (initially characters
1051 .B \-\[rs][hy]\[rs][em]
1052 have this property); a line will not be broken at a character with
1053 this property unless the characters on each side both have non-zero
1057 The character overlaps horizontally (initially characters
1058 .B \[rs][ul]\[rs][rn]\[rs][ru]\[rs][radicalex]\[rs][sqrtex]
1059 have this property).
1062 The character overlaps vertically (initially character
1067 An end-of-sentence character followed by any number of characters with
1068 this property will be treated as the end of a sentence if followed by
1069 a newline or two spaces; in other words the character is transparent
1070 for the purposes of end-of-sentence recognition; this is the same as
1071 having a zero space factor in \*[tx] (initially characters
1072 .B \[dq]')]*\[rs](dg\[rs](rq
1073 have this property).
1077 .BI .char\ c\ string
1084 needs to be printed,
1086 will be processed in a temporary environment and the result will be
1087 wrapped up into a single object.
1089 Compatibility mode will be turned off and the escape character will be
1096 Any emboldening, constant spacing or track kerning will be applied to
1097 this object rather than to individual glyphs in
1101 A glyph defined by this request can be used just like a normal
1102 glyph provided by the output device.
1104 In particular other characters can be translated to it with the
1106 request; it can be made the leader character by the
1108 request; repeated patterns can be drawn with the character using the
1112 escape sequences; words containing the character can be hyphenated
1115 request is used to give the character a hyphenation code.
1118 There is a special anti-recursion feature: Use of glyph within the
1119 glyph's definition will be handled like normal glyphs not
1123 A glyph definition can be removed with the
1129 Chop the last element off macro, string, or diversion
1131 This is useful for removing the newline from the end of diversions
1132 that are to be interpolated as strings.
1136 Close the stream named
1139 will no longer be an acceptable argument to the
1148 .BI .composite\ glyph1\ glyph2
1155 with more than one component.
1159 Finish the current iteration of a while loop.
1171 is non-zero or missing, enable colors (this is the default), otherwise
1178 is non-zero or missing, enable compatibility mode, otherwise disable
1181 In compatibility mode, long names are not recognised, and the
1182 incompatibilities caused by long names do not arise.
1185 .BI .defcolor\ xxx\ scheme\ color_components
1188 can be one of the following values:
1194 (four components), and
1200 Color components can be given either as a hexadecimal string or as
1201 positive decimal integers in the range 0-65535.
1203 A hexadecimal string contains all color components concatenated; it
1204 must start with either
1208 The former specifies hex values in the range 0-255 (which are
1209 internally multiplied by\~257), the latter in the range 0-65535.
1211 Examples: #FFC0CB (pink), ##ffff0000ffff (magenta).
1213 A new scaling indicator\~\c
1215 has been introduced which multiplies its value by\~65536; this makes
1216 it convenient to specify color components as fractions in the range 0
1224 .Text .defcolor darkgreen rgb 0.1f 0.5f 0.2f
1232 is the default scaling indicator for the
1234 request, thus the above statement is equivalent to
1239 .Text .defcolor darkgreen rgb 0.1 0.5 0.2
1247 (which is device-specific) can't be redefined.
1249 It is possible that the default color for
1259 but compatibility mode is switched off during execution.
1261 On entry, the current compatibility mode is saved and restored at exit.
1265 Define macro indirectly.
1267 The following example
1296 request but compatibility mode is switched off during execution.
1302 with compatibility mode disabled.
1315 would have the same effect as
1324 except that it would work even if compatibility mode had been enabled.
1326 Note that the previous compatibility mode is restored before any files
1337 but compatibility mode is switched off during expansion.
1339 To be more precise, a `compatibility save' token is inserted at the
1340 beginning of the string, and a `compatibility restore' token at the end.
1344 Save current escape character.
1348 Restore escape character saved with
1350 Without a previous call to
1353 will be the new escape character.
1357 Copy the contents of environment
1359 to the current environment.
1361 No pushing or popping of environments will be done.
1365 Set the current font family to
1367 The current font family is part of the current environment.
1370 is missing, switch back to previous font family.
1372 The value at start-up is `T'.
1374 See the description of the
1376 request for more information on font families.
1379 .BI .fchar\ c\ string
1380 Define fallback glyph
1385 The syntax of this request is the same as the
1387 request; the only difference is that a glyph defined with
1389 hides the glyph with the same name in the current font, whereas a
1392 is checked only if the particular glyph isn't found in the current font.
1394 This test happens before checking special fonts.
1397 .BI .fschar\ f\ c\ string
1398 Define fallback glyph
1405 The syntax of this request is the same as the
1407 request (with an additional argument to specify the font); a glyph
1410 is searched after the list of fonts declared with the
1412 request but before the list of fonts declared with
1416 .BI .fspecial\ f\ s1\ s2\|.\|.\|.\&
1417 When the current font is
1422 will be special, that is, they will searched for glyphs not in
1425 Any fonts specified in the
1427 request will be searched after fonts specified in the
1431 Without argument, reset the list of global special fonts to be empty.
1439 Whenever a font named
1441 is referred to in an
1443 escape sequence, or in the
1459 is missing, or equal to
1463 will not be translated.
1466 .BI .hcode \ c1\ code1\ c2\ code2\|.\|.\|.\&
1467 Set the hyphenation code of character
1475 A hyphenation code must be a single input character (not a special
1476 character) other than a digit or a space.
1478 Initially each lower-case letter \%a-z has a hyphenation code, which is
1479 itself, and each upper-case letter \%A-Z has a hyphenation code which is
1480 the lower-case version of itself.
1488 Set the current hyphenation language to
1490 Hyphenation exceptions specified with the
1492 request and hyphenation patterns specified with the
1494 request are both associated with the current hyphenation language.
1498 request is usually invoked by the
1504 Set the maximum number of consecutive hyphenated lines to\~\c
1508 is negative, there is no maximum.
1510 The default value is\~\-1.
1512 This value is associated with the current environment.
1514 Only lines output from an environment count towards the maximum
1515 associated with that environment.
1517 Hyphens resulting from
1519 are counted; explicit hyphens are not.
1523 Read hyphenation patterns from
1525 this will be searched for in the same way that
1527 is searched for when the
1529 option is specified.
1531 It should have the same format as (simple) \*[tx] patterns files.
1533 More specifically, the following scanning rules are implemented.
1537 A percent sign starts a comment (up to the end of the line) even if
1538 preceded by a backslash.
1541 No support for `digraphs' like
1549 (character code of\~\c
1551 in the range 0-127) are recognized; other use of
1560 checks for the expression
1561 .B \[rs]patterns{.\|.\|.}
1562 (possibly with whitespace before and after the braces).
1564 Everything between the braces is taken as hyphenation patterns.
1570 are not allowed in patterns.
1574 .B \[rs]hyphenation{.\|.\|.}
1575 gives a list of hyphenation exceptions.
1582 For backwards compatibility, if
1584 is missing, the whole file is treated as a list of hyphenation patterns
1585 (only recognizing the
1587 character as the start of a comment).
1593 request to map the encoding used in hyphenation patterns files to
1597 The set of hyphenation patterns is associated with the current language
1604 request is usually invoked by the
1606 file; a second call replaces the old patterns with the new ones.
1612 except that the hyphenation patterns from
1614 are appended to the patterns already loaded in the current language.
1617 .BI .hpfcode\ a\ b\ c\ d\ .\|.\|.
1618 After reading a hyphenation patterns file with the
1622 request, convert all characters with character code\~\c
1624 in the recently read patterns to character code\~\c
1632 Initially, all character codes map to themselves.
1636 must be integers in the range 0 to\~255.
1638 Note that it is even possible to use character codes which are invalid in
1645 .I hyphenation margin
1648 when the current adjustment mode is not\~\c
1650 the line will not be hyphenated if the line is no more than
1654 The default hyphenation margin is\~0.
1656 The default scaling indicator for this request is\~\c
1658 The hyphenation margin is associated with the current environment.
1660 The current hyphenation margin is available in the
1667 .I hyphenation space
1670 when the current adjustment mode is\~\c
1672 don't hyphenate the line if the line can be justified by adding no
1675 extra space to each word space.
1677 The default hyphenation space is\~0.
1679 The default scaling indicator for this request is\~\c
1681 The hyphenation space is associated with the current environment.
1683 The current hyphenation space is available in the
1691 for which a line interrupted with
1693 counts as one input line.
1699 is non-zero or missing, enable pairwise kerning, otherwise disable it.
1702 .BI .length\ xx\ string
1703 Compute the length of
1705 and return it in the number register
1707 (which is not necessarily defined before).
1713 is non-zero or missing, enable line-tabs mode, otherwise disable it
1714 (which is the default).
1716 In line-tabs mode, tab distances are computed relative to the
1717 (current) output line.
1719 Otherwise they are taken relative to the input line.
1721 For example, the following
1728 .Text .ds x a\[rs]t\[rs]c
1729 .Text .ds y b\[rs]t\[rs]c
1748 In line-tabs mode, the same code gives
1756 Line-tabs mode is associated with the current environment; the
1757 read-only number register
1758 .B \\[rs]n[.linetabs]
1759 is set to\~1 if in line-tabs mode, and 0 otherwise.
1767 is searched for in the same directories as macro files for the the
1769 command line option.
1771 If the file name to be included has the form
1777 instead and vice versa.
1783 This is similar to `.if\ 1'.
1789 built-in condition true and the
1791 built-in condition false.
1793 This can be reversed using the
1798 .BI .open\ stream\ filename
1801 for writing and associate the stream named
1812 .BI .opena\ stream\ filename
1817 exists, append to it instead of truncating it.
1823 directly to the intermediate output (subject to copy-mode interpretation);
1826 used at the top level.
1828 An initial double quote in
1830 is stripped off to allow initial blanks.
1834 Print the names and contents of all currently defined number registers
1838 .BI .psbb \ filename
1839 Get the bounding box of a PostScript image
1841 This file must conform to Adobe's Document Structuring Conventions;
1842 the command looks for a
1844 comment to extract the bounding box values.
1846 After a successful call, the coordinates (in PostScript units) of the
1847 lower left and upper right corner can be found in the registers
1855 If some error has occurred, the four registers are set to zero.
1859 This behaves like the
1861 request except that input comes from the standard output of
1866 Print the names and positions of all traps (not including input line
1867 traps and diversion traps) on stderr.
1869 Empty slots in the page trap list are printed as well, because they
1870 can affect the priority of subsequently planted traps.
1874 Set the post-vertical line space to
1876 default scale indicator is\~\c
1879 This value will be added to each line after it has been output.
1881 With no argument, the post-vertical line space is set to its previous
1885 The total vertical line spacing consists of four components:
1889 with a negative value which are applied before the line is output, and
1893 with a positive value which are applied after the line is output.
1896 .BI .rchar\ c1\ c2\|.\|.\|.\&
1897 Remove the definitions of glyphs
1900 This undoes the effect of a
1906 Within a macro, return immediately.
1908 If called with an argument, return twice, namely from the current macro and
1909 from the macro one level higher.
1911 No effect otherwise.
1914 .BI .rfschar\ c1\ c2\|.\|.\|.\&
1915 Remove the font-specific definitions of glyphs
1918 This undoes the effect of a
1926 Right justify the next
1930 Without an argument right justify the next input line.
1932 The number of lines to be right justified is available in the
1936 This implicitly does
1940 request implicitly does
1945 Rename number register
1951 .BI .schar\ c\ string
1952 Define global fallback glyph
1957 The syntax of this request is the same as the
1959 request; a glyph defined with
1961 is searched after the list of fonts declared with the
1963 request but before the mounted special fonts.
1967 Set the soft hyphen character to
1971 is omitted, the soft hyphen character will be set to the default
1973 The soft hyphen character is the glyph which will be inserted when
1974 a word is hyphenated at a line break.
1976 If the soft hyphen character does not exist in the font of the
1977 glyph immediately preceding a potential break point, then the line
1978 will not be broken at that point.
1980 Neither definitions (specified with the
1982 request) nor translations (specified with the
1984 request) are considered when finding the soft hyphen character.
1988 In a macro, shift the arguments by
1990 positions: argument\~\c
1996 will no longer be available.
2000 is missing, arguments will be shifted by\~1.
2002 Shifting by negative amounts is currently undefined.
2005 .BI .sizes\ s1\ s2\|.\|.\|.\|sn\ [0]
2006 This command is similar to the
2012 It sets the available font sizes for the current font to
2014 .IR s2 ,\|.\|.\|.\|,\~ sn
2017 The list of sizes can be terminated by an optional\~\c
2022 can also be a range of sizes
2025 Contrary to the font file command, the list can't extend over more
2029 .BI .special\ s1\ s2\|.\|.\|.\&
2033 are special and will be searched for glyphs not in the current
2036 Without arguments, reset the list of special fonts to be empty.
2039 .BI .spreadwarn\ limit
2042 emit a warning if the additional space inserted for each space between
2043 words in an output line is larger or equal to
2046 A negative value is changed to zero; no argument toggles the warning on
2047 and off without changing
2050 The default scaling indicator is\~\c
2060 .B .spreadwarn\ 0.2m
2061 will cause a warning if
2063 must add 0.2m or more for each interword space in a line.
2065 This request is active only if text is justified to both margins (using
2072 with font position\~\c
2074 A font position can be associated either with a font or with a style.
2076 The current font is the index of a font position and so is also either
2079 When it is a style, the font that is actually used is the font the
2080 name of which is the concatenation of the name of the current family
2081 and the name of the current style.
2083 For example, if the current font is\~1 and font position\~1 is
2084 associated with style\~\c
2086 and the current font family is\~\c
2092 If the current font is not a style, then the current family is ignored.
2101 are applied to a style, then they will instead be applied to the
2102 member of the current family corresponding to that style.
2104 The default family can be set with the
2112 file controls which font positions (if any) are initially associated
2113 with styles rather than fonts.
2116 .BI .substring\ xx\ n1\ [ n2 ]
2117 Replace the string named
2119 with the substring defined by the indices
2123 The first character in the string has index\~0.
2127 is omitted, it is taken to be equal to the string's length.
2133 is negative, it will be counted from the end of the string,
2136 The last character has index\~-1, the character before the last
2137 character has index\~-2, etc.
2140 .BI .tkf\ f\ s1\ n1\ s2\ n2
2141 Enable track kerning for font
2143 When the current font is
2145 the width of every glyph will be increased by an amount between
2149 when the current point size is less than or equal to
2151 the width will be increased by
2153 when it is greater than or equal to
2155 the width will be increased by
2157 when the point size is greater than or equal to
2159 and less than or equal to
2161 the increase in width is a linear function of the point size.
2169 is read in copy mode and written on the standard error, but an initial
2172 is stripped off to allow initial blanks.
2178 but without writing a final newline.
2182 Transparently output the contents of file
2184 Each line is output as if preceded by
2186 however, the lines are not subject to copy-mode interpretation.
2188 If the file does not end with a newline, then a newline will be added.
2190 For example, you can define a macro\~\c
2192 containing the contents of file\~\c
2211 request, the file cannot contain characters such as
2213 that are not legal troff input characters.
2217 This is the same as the
2219 request except that the
2221 request will use the character code (if any) before the character
2254 This is the same as the
2256 request except that the translations do not apply to text that is
2257 transparently throughput into a diversion with
2289 built-in condition false, and the
2291 built-in condition true.
2293 This undoes the effect of the
2299 This request `unformats' the diversion
2303 request, which tries to convert formatted elements of the diversion
2304 back to input tokens as much as possible,
2306 will only handle tabs and spaces between words (usually caused by
2307 spaces or newlines in the input) specially.
2309 The former are treated as if they were input tokens, and the latter
2310 are stretchable again.
2312 Note that the vertical size of lines is not preserved.
2314 Glyph information (font, font size, space width, etc.) is retained.
2316 Useful in conjunction with the
2324 Enable vertical position traps if
2326 is non-zero, disable them otherwise.
2328 Vertical position traps are traps set by the
2336 request are not vertical position traps.
2338 The parameter that controls whether vertical position traps are
2341 Initially vertical position traps are enabled.
2347 is the sum of the numbers associated with each warning that is to be
2348 enabled; all other warnings will be disabled.
2350 The number associated with each warning is listed in
2351 .BR @g@troff (@MAN1EXT@).
2355 will disable all warnings, and
2357 will disable all warnings except that about missing glyphs.
2361 is not given, all warnings will be enabled.
2365 Set the scaling indicator used in warnings to
2378 At startup, it is set to\~\c
2382 .BI .while \ c\ anything
2389 can be any condition acceptable to an
2393 can comprise multiple lines if the first line starts with
2395 and the last line ends with
2404 .BI .write\ stream\ anything
2410 must previously have been the subject of an
2414 is read in copy mode;
2420 .BI .writec\ stream\ anything
2423 but without writing a final newline.
2426 .BI .writem\ stream\ xx
2427 Write the contents of the macro or string
2432 must previously have been the subject of an
2436 is read in copy mode.
2439 .\" --------------------------------------------------------------------
2440 .SS "Extended escape sequences"
2441 .\" --------------------------------------------------------------------
2444 .BI \[rs]D' .\|.\|. '
2445 All drawing commands of groff's intermediate output are accepted.
2448 .B "Drawing Commands"
2449 below for more information.
2452 .\" --------------------------------------------------------------------
2453 .SS "Extended requests"
2454 .\" --------------------------------------------------------------------
2458 When used in a diversion, this will embed in the diversion an object
2459 which, when reread, will cause the contents of
2461 to be transparently copied through to the output.
2463 In UNIX troff, the contents of
2465 is immediately copied through to the output regardless of whether
2466 there is a current diversion; this behaviour is so anomalous that it
2467 must be considered a bug.
2473 is not a number, this will switch to a named environment called
2475 The environment should be popped with a matching
2477 request without any arguments, just as for numbered environments.
2479 There is no limit on the number of named environments; they will be
2480 created the first time that they are referenced.
2484 When two arguments are given to the
2486 request, the second argument gives the
2487 .IR "sentence space size" .
2488 If the second argument is not given, the sentence space size
2489 will be the same as the word space size.
2491 Like the word space size, the sentence space is in units of
2492 one twelfth of the spacewidth parameter for the current font.
2494 Initially both the word space size and the sentence
2497 Contrary to UNIX troff, GNU troff handles this request in nroff mode
2498 also; a given value is then rounded down to the nearest multiple
2501 The sentence space size is used in two circumstances.
2503 If the end of a sentence occurs at the end of a line in fill mode,
2504 then both an inter-word space and a sentence space will be added; if
2505 two spaces follow the end of a sentence in the middle of a line, then
2506 the second space will be a sentence space.
2508 Note that the behaviour of UNIX troff will be exactly that exhibited
2509 by GNU troff if a second argument is never given to the
2513 In GNU troff, as in UNIX troff, you should always follow a sentence
2514 with either a newline or two spaces.
2517 .BI .ta\ n1\ n2\|.\|.\|.nn \ T\ r1\ r2\|.\|.\|.\|rn
2518 Set tabs at positions
2520 .IR n2 ,\|.\|.\|.\|,
2522 and then set tabs at
2524 .IR nn + r2 ,\|.\|.\|.\|,
2528 .IR nn + rn + r2 ,\|.\|.\|.\|,
2541 will set tabs every half an inch.
2545 .\" --------------------------------------------------------------------
2546 .SS "New number registers"
2547 .\" --------------------------------------------------------------------
2549 The following read-only registers are available:
2553 1\~if compatibility mode is in effect, 0\~otherwise.
2557 The depth of the last glyph added to the current environment.
2559 It is positive if the glyph extends below the baseline.
2563 The number of lines remaining to be centered, as set by the
2569 The height of the last glyph added to the current environment.
2571 It is positive if the glyph extends above the baseline.
2575 1\~if colors are enabled, 0\~otherwise.
2579 The skew of the last glyph added to the current environment.
2583 of a glyph is how far to the right of the center of a glyph
2584 the center of an accent over that glyph should be placed.
2588 The name or number of the current environment.
2590 This is a string-valued register.
2594 The current font family.
2596 This is a string-valued register.
2600 The current (internal) real font name.
2602 This is a string-valued register.
2604 If the current font is a style, the value of
2606 is the proper concatenation of family and style name.
2610 The number of the next free font position.
2616 Macros should use this to determine whether they are running under GNU
2621 The current height of the font as set with
2626 The current hyphenation language as set by the
2632 The number of immediately preceding consecutive hyphenated lines.
2636 The maximum allowed number of consecutive hyphenated lines, as set by
2643 The current hyphenation flags (as set by the
2649 The current hyphenation margin (as set by the
2655 The current hyphenation space (as set by the
2661 The indent that applies to the current output line.
2665 Set to a positive value if last output line is interrupted (i.e., if
2671 1\~if pairwise kerning is enabled, 0\~otherwise.
2675 The current ligature mode (as set by the
2680 .B \[rs]n[.linetabs]
2681 The current line-tabs mode (as set by the
2687 The line length that applies to the current output line.
2691 The title length as set by the
2697 The name of the current drawing color.
2699 This is a string-valued register.
2703 The name of the current background color.
2705 This is a string-valued register.
2709 The amount of space that was needed in the last
2711 request that caused a trap to be sprung.
2713 Useful in conjunction with the
2719 1\~if no-space mode is active, 0\~otherwise.
2723 1\~during a page ejection caused by the
2725 request, 0\~otherwise.
2729 The number of the next page, either the value set by a
2731 request, or the number of the current page plus\~1.
2735 The current pointsize in scaled points.
2739 The last-requested pointsize in scaled points.
2743 The current post-vertical line space as set with the
2749 The number of lines to be right-justified as set by the
2755 The slant of the current font as set with
2760 The last requested pointsize in points as a decimal fraction.
2762 This is a string-valued register.
2768 These give the values of the parameters set by the first and second
2775 A string representation of the current tab settings suitable for use
2776 as an argument to the
2782 The amount of vertical space truncated by the most recently sprung
2783 vertical position trap, or, if the trap was sprung by a
2785 request, minus the amount of vertical motion produced by the
2789 In other words, at the point a trap is sprung, it represents the
2790 difference of what the vertical position would have been but for the
2791 trap, and what the vertical position actually is.
2793 Useful in conjunction with the
2799 1\~if vertical position traps are enabled, 0\~otherwise.
2803 The sum of the numbers associated with each of the currently enabled
2806 The number associated with each warning is listed in
2807 .BR @g@troff (@MAN1EXT@).
2811 The major version number.
2813 For example, if the version number is 1.03, then
2819 The minor version number.
2821 For example, if the version number is 1.03, then
2827 The revision number of groff.
2837 These four registers are set by the
2839 request and contain the bounding box values (in PostScript units) of a
2840 given PostScript image.
2843 The following read/write registers are set by the
2855 registers, but take account of the heights and depths of glyphs.
2859 The amount of horizontal space (possibly negative) that should be
2860 added to the last glyph before a subscript.
2864 How far to right of the center of the last glyph in the
2866 argument, the center of an accent from a roman font should be placed
2870 Other available read/write number registers are:
2874 The current input line number.
2876 is a read-only alias to this register.
2880 The number of hours past midnight.
2882 Initialized at start-up.
2886 The current horizontal position at input line.
2890 The number of minutes after the hour.
2892 Initialized at start-up.
2896 The number of seconds after the minute.
2898 Initialized at start-up.
2902 The return value of the system() function executed by the last
2908 If greater than\~0, the maximum number of objects on the input stack.
2910 If less than or equal to\~0, there is no limit on the number of
2911 objects on the input stack.
2913 With no limit, recursion can continue until virtual memory is
2920 Note that the traditional
2924 is the current year minus 1900.
2927 .\" --------------------------------------------------------------------
2929 .\" --------------------------------------------------------------------
2932 predefines a single (read/write) string-based register,
2934 which contains the argument given to the
2936 command line option, namely the current output device (for example,
2940 Note that this is not the same as the (read-only) number register
2942 which is defined to be\~1 if
2946 command line option, and zero otherwise.
2948 This behaviour is different to UNIX troff.
2951 Fonts not listed in the
2953 file are automatically mounted on the next available font position
2954 when they are referenced.
2956 If a font is to be mounted explicitly with the
2958 request on an unused font position, it should be mounted on the first
2959 unused font position, which can be found in the
2963 does not enforce this strictly, it will not allow a font to be mounted
2964 at a position whose number is much greater than that of any currently
2968 Interpolating a string does not hide existing macro arguments.
2970 Thus in a macro, a more efficient way of doing
2973 .BI . xx\ \[rs]\[rs]$@
2978 .BI \[rs]\[rs]*[ xx ]\[rs]\[rs]
2981 If the font description file contains pairwise kerning information,
2982 glyphs from that font will be kerned.
2984 Kerning between two glyphs can be inhibited by placing a
2989 In a string comparison in a condition, characters that appear at
2990 different input levels to the first delimiter character will not be
2991 recognised as the second or third delimiters.
2993 This applies also to the
2999 escape sequence, a character that appears at a different input level
3000 to the starting delimiter character will not be recognised as the
3001 closing delimiter character.
3003 The same is true for
3015 When decoding a macro or string argument that is delimited by double
3016 quotes, a character that appears at a different input level to the starting
3017 delimiter character will not be recognised as the closing delimiter
3020 The implementation of
3022 ensures that the double quotes surrounding an argument will appear the
3023 same input level, which will be different to the input level of the
3026 In a long escape name
3028 will not be recognized as a closing delimiter except when it occurs at
3029 the same input level as the opening
3032 In compatibility mode, no attention is paid to the input-level.
3035 There are some new types of condition:
3039 True if there is a number register named
3044 True if there is a string, macro, diversion, or request named
3049 True if there is a color named
3054 True if there is a glyph
3060 character or a glyph (special character)
3063 .BI \[rs][ xxx ]\f[R];
3064 the condition will also be true if
3066 has been defined by the
3073 request can now map characters onto
3077 It is now possible to have whitespace between the first and second dot
3078 (or the name of the ending macro) to end a macro definition.
3087 .Text . nop Hello, I'm `foo'.
3088 .Text . nop I will now define `bar'.
3090 .Text . nop Hello, I'm `bar'.
3099 .\" --------------------------------------------------------------------
3100 .SH "INTERMEDIATE OUTPUT FORMAT"
3101 .\" --------------------------------------------------------------------
3103 This section describes the format output by GNU troff.
3105 The output format used by GNU troff is very similar to that used
3106 by Unix device-independent troff.
3108 Only the differences are documented here.
3111 .\" --------------------------------------------------------------------
3113 .\" --------------------------------------------------------------------
3117 command is in scaled points (units of
3121 is the argument to the
3123 command in the DESC file).
3127 command is also in scaled points.
3130 .\" --------------------------------------------------------------------
3132 .\" --------------------------------------------------------------------
3136 Print glyph with index\~\c
3138 (a non-negative integer) of the current font.
3143 line is present in the DESC file, troff will use the following two
3149 is any sequence of characters terminated by a space or a newline (to
3150 be more precise, it is a sequence of glyphs which are accessed with
3151 the corresponding characters); the first character should be printed at
3152 the current position, the current horizontal position should be increased
3153 by the width of the first character, and so on for each character.
3155 The width of the glyph is that given in the font file,
3156 appropriately scaled for the current point size, and rounded so that
3157 it is a multiple of the horizontal resolution.
3159 Special characters cannot be printed using this command.
3165 command except that after printing each character, the current
3166 horizontal position is increased by the sum of the width of that
3171 Note that single characters can have the eighth bit set, as can the
3172 names of fonts and special characters.
3175 The names of glyphs and fonts can be of arbitrary length; drivers
3176 should not assume that they will be only two characters long.
3179 When a glyph is to be printed, that glyph will always be
3180 in the current font.
3182 Unlike device-independent troff, it is not necessary for drivers to
3183 search special fonts to find a glyph.
3186 For color support, some new commands have been added:
3189 .Text \f[B]mc \f[I]cyan magenta yellow\f[R]
3193 .Text \f[B]mg \f[I]gray\f[R]
3195 .Text \f[B]mk \f[I]cyan magenta yellow black\f[R]
3197 .Text \f[B]mr \f[I]red green blue\f[R]
3198 Set the color components of the current drawing color, using various
3202 resets the drawing color to the default value.
3204 The arguments are integers in the range 0 to 65536.
3209 device control command has been extended.
3212 .Text \f[B]x u \f[I]n\f[R]
3215 is\~1, start underlining of spaces.
3219 is\~0, stop underlining of spaces.
3221 This is needed for the
3223 request in nroff mode and is ignored otherwise.
3226 .\" --------------------------------------------------------------------
3227 .SS "Drawing Commands"
3228 .\" --------------------------------------------------------------------
3232 drawing command has been extended.
3234 These extensions will not be used by GNU pic if the
3239 .Text \f[B]Df \f[I]n\f[R]\*[ic]\[rs]n
3240 Set the shade of gray to be used for filling solid objects to
3243 must be an integer between 0 and 1000, where 0 corresponds solid white
3244 and 1000 to solid black, and values in between correspond to
3245 intermediate shades of gray.
3247 This applies only to solid circles, solid ellipses and solid
3250 By default, a level of 1000 will be used.
3252 Whatever color a solid object has, it should completely obscure
3253 everything beneath it.
3255 A value greater than 1000 or less than 0 can also be used: this means
3256 fill with the shade of gray that is currently being used for lines and
3259 Normally this will be black, but some drivers may provide a way of
3264 .BI \[rs]D'f .\|.\|. '
3265 command shouldn't be used since its argument is always rounded to an
3266 integer multiple of the horizontal resolution which can lead to
3270 .Text \f[B]DC \f[I]d\f[R]\*[ic]\[rs]n
3271 Draw a solid circle with a diameter of
3273 with the leftmost point at the current position.
3276 .Text \f[B]DE \f[I]dx dy\f[R]\*[ic]\[rs]n
3277 Draw a solid ellipse with a horizontal diameter of
3279 and a vertical diameter of
3281 with the leftmost point at the current position.
3287 .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
3288 Draw a polygon with, for $i = 1 ,..., n+1$, the
3290 vertex at the current position
3292 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$.
3294 At the moment, GNU pic only uses this command to generate triangles
3298 .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
3302 but draw a solid rather than outlined polygon.
3305 .Text \f[B]Dt \f[I]n\f[R]\*[ic]\[rs]n
3306 Set the current line thickness to
3310 Traditionally Unix troff drivers use a line thickness proportional to
3311 the current point size; drivers should continue to do this if no
3313 command has been given, or if a
3315 command has been given with a negative value of
3319 selects the smallest available line thickness.
3322 A difficulty arises in how the current position should be changed after
3323 the execution of these commands.
3325 This is not of great importance since the code generated by GNU pic
3326 does not depend on this.
3328 Given a drawing command of the form
3330 \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]
3342 Unix troff will treat each of the $x sub i$ as a horizontal quantity,
3343 and each of the $y sub i$ as a vertical quantity and will assume that
3344 the width of the drawn object is $sum from i=1 to n x sub i$,
3345 and that the height is $sum from i=1 to n y sub i$.
3347 (The assumption about the height can be seen by examining the
3351 registers after using such a
3353 command in a \[rs]w escape sequence).
3355 This rule also holds for all the original drawing commands with the
3358 For the sake of compatibility GNU troff also follows this rule, even
3359 though it produces an ugly result in the case of the
3363 and, to a lesser extent,
3367 Thus after executing a
3371 \f[B]D\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ \c
3372 $x sub n$ $y sub n$\[rs]n
3375 the current position should be increased by
3377 $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$.
3380 Another set of extensions is
3383 .Text \f[B]DFc \f[I]cyan magenta yellow\f[R]\*[ic]\[rs]n
3385 .Text \f[B]DFd\f[R]\*[ic]\[rs]n
3387 .Text \f[B]DFg \f[I]gray\f[R]\*[ic]\[rs]n
3389 .Text \f[B]DFk \f[I]cyan magenta yellow black\f[R]\*[ic]\[rs]n
3391 .Text \f[B]DFr \f[I]red green blue\f[R]\*[ic]\[rs]n
3392 Set the color components of the filling color similar to the
3397 The current position isn't changed by those colour commands (contrary to
3401 .\" --------------------------------------------------------------------
3402 .SS "Device Control Commands"
3403 .\" --------------------------------------------------------------------
3405 There is a continuation convention which permits the argument to the
3407 command to contain newlines: when outputting the argument to the
3409 command, GNU troff will follow each newline in the argument with a
3411 character (as usual, it will terminate the entire argument with a
3412 newline); thus if the line after the line containing the
3416 then the newline ending the line containing the
3418 command should be treated as part of the argument to the
3422 should be ignored, and the part of the line following the
3424 should be treated like the part of the line following the
3429 The first three output commands are guaranteed to be:
3438 .\" --------------------------------------------------------------------
3439 .SH INCOMPATIBILITIES
3440 .\" --------------------------------------------------------------------
3442 In spite of the many extensions, groff has retained compatibility to
3443 classical troff to a large degree.
3445 For the cases where the extensions lead to collisions, a special
3446 compatibility mode with the restricted, old functionality was created
3450 .\" --------------------------------------------------------------------
3451 .SS "Groff Language"
3452 .\" --------------------------------------------------------------------
3456 .B compatibility mode
3457 that allows to process roff code written for classical
3459 or for other implementations of roff in a consistent way.
3462 Compatibility mode can be turned on with the
3464 command line option, and turned on or off with the
3470 is\~1 if compatibility mode is on, 0\~otherwise.
3473 This became necessary because the GNU concept for long names causes
3474 some incompatibilities.
3481 as defining a string
3487 mode, this will be considered as a call of a macro named
3497 as references to a string or number register called
3501 takes this as the start of a long name.
3505 .IR "compatibility mode" ,
3506 groff interprets these things in the traditional way; so long
3507 names are not recognized.
3510 On the other hand, groff in
3512 does not allow to use the single-character escapes
3541 (character c) in names of strings, macros, diversions, number
3542 registers, fonts or environments, whereas
3549 escape sequence can be helpful in avoiding these escape sequences in
3553 Fractional pointsizes cause one noteworthy incompatibility.
3560 request ignores scale indicators and so
3567 will set the pointsize to 10\~points, whereas in groff native mode the
3568 pointsize will be set to 10\~scaled points.
3573 there is a fundamental difference between unformatted input
3574 characters, and formatted output characters (glyphs).
3576 Everything that affects how a glyph will be output is
3577 stored with the glyph; once a glyph has been
3578 constructed it is unaffected by any subsequent requests that are
3579 executed, including the
3589 Normally glyphs are constructed from input characters at
3590 the moment immediately before the glyph is added to the current
3593 Macros, diversions and strings are all, in fact, the same type of
3594 object; they contain lists of input characters and glyphs
3598 Special characters can be both; before being added to the output, they
3599 act as input entities, afterwards they denote glyphs.
3602 A glyph does not behave like an input character for the
3603 purposes of macro processing; it does not inherit any of the special
3604 properties that the input character from which it was constructed
3607 The following example will make things clearer.
3614 .Text \[rs]\[rs]\[rs]\[rs]
3625 this will be printed as
3627 So each pair of input backslashes
3629 is turned into a single output backslash glyph
3631 and the resulting output backslashes are not interpreted as escape
3632 characters when they are reread.
3636 would interpret them as escape characters when they were reread and
3637 would end up printing a single backslash
3641 In GNU, the correct way to get a printable version of the backslash
3646 escape sequence, but classical troff does not provide a clean feature
3647 for getting a non-syntactical backslash.
3649 A close method is the printable version of the current escape
3652 escape sequence; this works if the current escape character is not
3655 It works in both GNU mode and compatibility mode, while dirty tricks
3656 like specifying a sequence of multiple backslashes do not work
3657 reliably; for the different handling in diversions, macro definitions,
3658 or text mode quickly leads to a confusion about the necessary number of
3662 To store an escape sequence in a diversion that will be interpreted
3663 when the diversion is reread, either the traditional
3665 transparent output facility or the
3668 escape sequence can be used.
3671 .\" --------------------------------------------------------------------
3672 .SS "Intermediate Output"
3673 .\" --------------------------------------------------------------------
3675 The groff intermediate output format is in a state of evolution.
3677 So far it has some incompatibilities, but it is intended to establish
3678 a full compatibility to the classical troff output format.
3680 Actually the following incompatibilities exist:
3683 The positioning after the drawing of the polygons conflicts with the
3684 classical definition.
3687 The intermediate output cannot be rescaled to other devices as
3688 classical "device-independent" troff did.
3691 .\" --------------------------------------------------------------------
3693 .\" --------------------------------------------------------------------
3695 Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3698 This document is distributed under the terms of the FDL (GNU Free
3699 Documentation License) version 1.1 or later.
3701 You should have received a copy of the FDL on your system, it is also
3702 available on-line at the
3703 .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
3705 This document was written by James Clark, with modifications by
3706 .MTO wl@gnu.org "Werner Lemberg"
3708 .MTO bwarken@mayn.de "Bernd Warken" .
3711 This document is part of
3713 the GNU roff distribution.
3715 Formerly, the contents of this document was kept in the manual
3717 .BR @g@troff (@MAN1EXT@).
3718 Only the parts dealing with the language aspects of the different
3720 systems were carried over into this document.
3724 command line options and warnings are still documented in
3725 .BR @g@troff (@MAN1EXT@).
3727 .\" --------------------------------------------------------------------
3729 .\" --------------------------------------------------------------------
3736 presents all groff documentation within a single document.
3739 .BR groff (@MAN1EXT@)
3740 A list of all documentation around
3744 .BR groff (@MAN7EXT@)
3745 A description of the
3747 language, including a short, but complete reference of all predefined
3748 requests, registers, and escapes of plain
3750 From the command line, this is called using
3753 .ShellCommand man\~7\~groff
3756 .BR roff (@MAN7EXT@)
3759 systems, including pointers to further historical documentation.
3764 .I Nroff/\:Troff User's Manual
3767 of 1976 in the revision of
3770 .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz \
3771 "classical troff documentation" .
3773 .cp \n[groff_diff_C]
3775 .\" --------------------------------------------------------------------
3777 .\" --------------------------------------------------------------------
3779 .\" Local Variables: