1 '\" e -- preprocess: eqn(1)
5 Copyright (c) 2014 Steffen (Daode) Nurpmeso <sdaoden@users.sf.net>.
7 Copyright (C) 1989, 2001 - 2004, 2006 - 2008
8 Free Software Foundation, Inc.
11 modified by Werner Lemberg <wl@gnu.org>
12 Bernd Warken <bwarken@mayn.de>
14 Permission is granted to copy, distribute and/or modify this document
15 under the terms of the GNU Free Documentation License, Version 1.1 or
16 any later version published by the Free Software Foundation; with the
17 Invariant Sections being this .ig-section and AUTHORS, with no
18 Front-Cover Texts, and with no Back-Cover Texts.
20 You should have received a copy of the Free Documentation License
21 as part of the file COPYING; also located in the main directory of the
22 source package of this program.
30 .\" define a string tx for the TeX logo
31 .ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
35 .\" from old groff_out.man
46 .TH @U_ROFF@_DIFF @MAN7EXT@ "@MDATE@" "@T_ROFF@ v@VERSION@"
48 @L_ROFF@_diff \- differences between @T_ROFF@ and classical troff
55 This manual page describes the language differences between
59 formatter of the freely available Unix\~7 of the 1970s, documented in
61 .I Troff User's Manual
66 This inludes the roff language as well as the intermediate output
67 format (troff output).
72 gives pointers to both the classical
80 .SH "@T_ROFF@ LANGUAGE"
83 In this section, all additional features
84 compared to the classical Unix\~7
86 are described in detail.
93 The names of number registers, fonts, strings/\:macros/\:diversions,
94 special characters (glyphs), and colors can be of any length.
96 In escape sequences, additionally to the classical `\fB(\fP\fIxx\fP'
97 construction for a two-character glyph name, you can use
98 `\fB[\fP\fIxxx\fP\fB]\fP' for a name of arbitrary length.
102 Print the special character (glyph) called
106 .BI \[rs][ "comp1 comp2 .\|.\|." ]
107 Print composite glyph consisting of multiple components.
109 Example: `\[rs][A\~ho]' is capital letter A with ogonek which finally maps
110 to glyph name `u0041_0328'.
113 .BR @L_ROFF@_char (@MAN7EXT@)
114 for a list of glyph name components used in composite glyph names
115 and details of how a glyph name for a composite glyph is constructed.
124 is a new syntax form equal to
126 i.e., to return to the previous font.
129 .BI \[rs]*[ "xxx arg1 arg2 .\|.\|." ]
140 Interpolate number register
145 .SS "Fractional point sizes"
158 There is a new scale indicator\~\c
160 that has the effect of multiplying by sizescale.
162 Requests and escape sequences in troff interpret arguments that
163 represent a point size as being in units of scaled points, but they
164 evaluate each such argument using a default scale indicator of\~\c
166 Arguments treated in this way are the argument to the
168 request, the third argument to the
170 request, the second and fourth arguments to the
172 request, the argument to the
174 escape sequence, and those variants of the
176 escape sequence that take a numeric expression as their argument.
179 For example, suppose sizescale is 1000; then a scaled point is
180 equivalent to a millipoint; the call
184 and so sets the point size to 10250 scaled points, which is equal to
190 returns the point size in points as decimal fraction.
192 There is also a new number register
194 that returns the point size in scaled points.
197 It would make no sense to use the
199 scale indicator in a numeric expression whose default scale indicator
208 Similarly it would make no sense to use a scaling indicator other than
212 in a numeric expression whose default scale indicator was\~\c
216 disallows this as well.
219 There is also new scale indicator\~\c
221 which multiplies by the number of units in a scaled point.
227 Be sure not to confuse the
235 .SS "Numeric expressions"
238 Spaces are permitted in a number expression within parentheses.
242 indicates a scale of 100ths of an em.
244 indicates a scale of 65536 units, providing fractions for color
249 For example, 0.5f = 32768u.
271 as the default scaling indicator.
275 is missing, ignore scaling indicators in the evaluation of\~\c
280 .SS "New escape sequences"
284 .BI \[rs]A' anything '
291 is or is not acceptable as the name of a string, macro, diversion, number
292 register, environment, font, or color.
299 This is useful if you want to look up user input in some sort of
303 .BI \[rs]B' anything '
310 is or is not a valid numeric expression.
322 Normally it is more convenient to use
323 .BI \[rs][ xxx ]\f[R].
326 has the advantage that it is compatible with recent versions of
328 and is available in compatibility mode.
332 This is equivalent to an escape character, but it is not interpreted in
335 For example, strings to start and end superscripting could be defined
341 \&.ds { \[rs]v'\-.3m'\[rs]s'\[rs]En[.s]*6u/10u'
342 \&.ds } \[rs]s0\[rs]v'.3m'
349 ensures that these definitions work even if
351 gets interpreted in copy mode (for example, by being used in a macro
363 This is the same as the
368 switches back to the previous color (note that
370 won't work; it selects font family `P' instead).
380 switches back to the previous color.
388 Set background color for filled objects drawn with the
389 .BI \[rs]D' .\|.\|. '
392 switches back to the previous color.
396 Typeset the glyph with index\~\c
402 Most devices only have glyphs with indices between 0 and 255.
404 If the current font does not contain a glyph with that code,
411 escape sequence can be conveniently used in conjunction with the
418 \&.char \[rs][phone] \[rs]f(ZD\[rs]N'37'
423 The index of each glyph is given in the fourth column in the font
424 description file after the
428 It is possible to include unnamed glyphs in the font description
429 file by using a name of
433 escape sequence is the only way to use these.
439 Suppress troff output.
447 are intended for internal use by
453 Disable any ditroff glyphs from being emitted to the device driver,
454 provided that the escape occurs at the outer level (see
461 Enable output of glyphs, provided that the escape occurs at the outer
467 also reset the registers
475 These four registers mark the top left and bottom right hand corners
476 of a box which encompasses all written glyphs.
480 Provided that the escape occurs at the outer level, enable output of
481 glyphs and also write out to stderr the page number and four registers
482 encompassing the glyphs previously written since the last call to
487 Begin a nesting level.
493 This is really an internal mechanism for
495 while producing images.
497 They are generated by running the troff source through
499 to the postscript device and
501 to produce images in PNG format.
505 escape starts a new page if the device is not html (to reduce the
506 possibility of images crossing a page boundary).
513 .BI \[rs]O5[ Pfilename ]
518 Provided that this escape occurs at the outer nesting level, write
522 The position of the image,
524 must be specified and must be one of
530 (left, right, centered, inline).
533 is associated with the production of the next inline image.
537 .BI \[rs]R' name\ \[+-]n '
538 This has the same effect as
542 .BI .nr\ name\ \[+-]n
549 Set the point size to
553 must be exactly two digits.
563 Set the point size to
567 is a numeric expression with a default scale indicator of\~\c
576 Interpolate the contents of the environment variable
581 is interpreted in copy mode.
589 This is approximately equivalent to
590 .BI \[rs]X'\[rs]*[ xxx ]'\f[R].
591 However the contents of the string or macro
593 are not interpreted; also it is permitted for
595 to have been defined as a macro and thus contain newlines (it is not
596 permitted for the argument to
598 to contain newlines).
600 The inclusion of newlines requires an extension to the UNIX troff
601 output format, and confuses drivers that do not know about this
605 .BI \[rs]Z' anything '
606 Print anything and then restore the horizontal and vertical position;
608 may not contain tabs or leaders.
612 The name by which the current macro was invoked.
616 request can make a macro have more than one name.
620 In a macro or string, the concatenation of all the arguments separated
625 In a macro or string, the concatenation of all the arguments with each
626 surrounded by double quotes, and separated by spaces.
630 In a macro, the representation of all parameters as if they were an
639 In a macro or string, this gives the
645 Macros and strings can have an unlimited number of arguments.
648 .BI \[rs]? anything \[rs]?
649 When used in a diversion, this transparently embeds
653 is read in copy mode.
655 When the diversion is reread,
659 may not contain newlines; use
661 if you want to embed newlines in a diversion.
665 is also recognized in copy mode and turned into a single internal
666 code; it is this code that terminates
677 \&\[rs]?\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\[rs]\c
678 \&\[rs]nx\[rs]\[rs]\[rs]\[rs]?\[rs]\[rs]?\[rs]?
699 This increases the width of the preceding glyph so that the
700 spacing between that glyph and the following glyph is
701 correct if the following glyph is a roman glyph.
704 . nop For example, if an italic\~f is immediately followed by a roman
705 . nop right parenthesis, then in many fonts the top right portion of
706 . nop the\~f overlaps the top left of the right parenthesis
707 . nop producing \f[I]f\f[R])\f[R], which is ugly.
711 . ie \n(.g \f[I]f\/\f[R])\f[R]
712 . el \f[I]f\|\f[R])\f[R]
713 . nop and avoids this problem.
715 It is a good idea to use this escape sequence whenever an italic
716 glyph is immediately followed by a roman glyph without any
721 This modifies the spacing of the following glyph so that the
722 spacing between that glyph and the preceding glyph is
723 correct if the preceding glyph is a roman glyph.
726 . nop For example, inserting
728 . nop between the parenthesis and the\~f changes
729 . nop \f[R](\f[I]f\f[R] to
730 . ie \n(.g \f[R](\,\f[I]f\f[R].
731 . el \f[R](\^\f[I]f\f[R].
733 It is a good idea to use this escape sequence whenever a roman
734 glyph is immediately followed by an italic glyph without any
741 except that it behaves like a character declared with the
743 request to be transparent for the purposes of end-of-sentence
748 This produces an unbreakable space that stretches like a normal
749 inter-word space when a line is adjusted.
753 This causes the insertion of a zero-width break point.
757 within a word but without insertion of a soft hyphen glyph.
761 Everything up to and including the next newline is ignored.
763 This is interpreted in copy mode.
769 does not ignore the terminating newline.
780 for number register object named
782 The new name and the old name are exactly equivalent.
786 is undefined, a warning of type
788 is generated, and the request is ignored.
794 for request, string, macro, or diversion object named
797 The new name and the old name are exactly equivalent (it is
798 similar to a hard rather than a soft link).
802 is undefined, a warning of type
804 is generated, and the request is ignored.
814 requests only create a new object if the name of the macro, diversion
815 or string is currently undefined or if it is defined to be a
816 request; normally they modify the value of an existing object.
822 but compatibility mode is switched off during execution.
824 To be more precise, a `compatibility save' token is inserted at the
825 beginning of the macro addition, and a `compatibility restore' token at
828 As a consequence, the requests
834 can be intermixed freely since the compatibility save/\:restore tokens
835 only affect the macro parts defined by
842 Append to macro indirectly.
846 request below for more information.
852 request but compatibility mode is switched off during execution.
858 but compatibility mode is switched off during expansion.
860 To be more precise, a `compatibility save' token is inserted at the
861 beginning of the string, and a `compatibility restore' token at the end.
863 As a consequence, the requests
869 can be intermixed freely since the compatibility save/\:restore tokens
870 only affect the (sub)strings defined by
877 This request `unformats' the diversion
881 and space characters (and some escape sequences) that were formatted
884 are treated like ordinary input characters when
887 Useful for diversions in conjunction with the
891 It can be also used for gross hacks; for example, this
913 Note that glyph information (font, font size, etc.) is not preserved;
920 Print a backtrace of the input stack on stderr.
924 Set the blank line macro to
926 If there is a blank line macro, it is invoked when a blank line
927 is encountered instead of the usual troff behaviour.
933 These requests are similar to the
937 requests with the exception that a partially filled line does not
938 become part of the diversion (i.e., the diversion always starts with a
939 new line) but is restored after ending the diversion, discarding the
940 partially filled line which possibly comes from the diversion.
944 Break out of a while loop.
952 Be sure not to confuse this with the
962 .BI .cflags\ n\ c1\ c2\|.\|.\|.\&
966 have properties determined by
968 which is ORed from the following:
972 The character ends sentences (initially characters
977 Lines can be broken before the character (initially no characters have
978 this property); a line is not broken at a character with this property
979 unless the characters on each side both have non-zero hyphenation
981 This can be overridden with value 64.
984 Lines can be broken after the character (initially characters
985 .B \-\[rs][hy]\[rs][em]
986 have this property); a line is not broken at a character with this
987 property unless the characters on each side both have non-zero
990 This can be overridden with value 64.
993 The glyph associated with this character overlaps horizontally
994 (initially characters
995 .B \[rs][ul]\[rs][rn]\[rs][ru]\[rs][radicalex]\[rs][sqrtex]
999 The glyph associated with this character overlaps vertically
1005 An end-of-sentence character followed by any number of characters with
1006 this property is treated as the end of a sentence if followed by a
1007 newline or two spaces; in other words the character is transparent for
1008 the purposes of end-of-sentence recognition; this is the same as having
1009 a zero space factor in \*[tx] (initially characters
1010 .B \[dq]')]*\[rs][dg]\[rs][rq]
1011 have this property).
1014 Ignore hyphenation code values of the surrounding characters.
1015 Use this in combination with values 2 and\~4 (initially no characters
1016 have this property).
1020 .BI .char\ c\ string
1021 [This request can both define characters and glyphs.]
1029 To be more precise, define (or even override) a roff entity which
1030 can be accessed with name\~\c
1032 on the input side, and which uses
1036 Every time glyph\~\c
1038 needs to be printed,
1040 is processed in a temporary environment and the result is
1041 wrapped up into a single object.
1043 Compatibility mode is turned off and the escape character is
1050 Any emboldening, constant spacing or track kerning is applied to
1051 this object rather than to individual glyphs in
1055 A roff object defined by this request can be used just like a
1056 normal glyph provided by the output device.
1058 In particular other characters can be translated to it with the
1060 request; it can be made the leader glyph by the
1062 request; repeated patterns can be drawn with the glyph using the
1066 escape sequences; words containing\~\c
1068 can be hyphenated correctly, if the
1070 request is used to give the object a hyphenation code.
1073 There is a special anti-recursion feature: Use of glyph within the
1074 glyph's definition is handled like normal glyphs not
1078 A glyph definition can be removed with the
1084 Chop the last element off macro, string, or diversion
1086 This is useful for removing the newline from the end of diversions
1087 that are to be interpolated as strings.
1091 Close the stream named
1094 will no longer be an acceptable argument to the
1103 .BI .composite\ glyph1\ glyph2
1109 .BI \[rs][ .\|.\|. ]
1110 with more than one component.
1114 Finish the current iteration of a while loop.
1126 is non-zero or missing, enable colors (this is the default), otherwise
1133 is non-zero or missing, enable compatibility mode, otherwise disable
1136 In compatibility mode, long names are not recognized, and the
1137 incompatibilities caused by long names do not arise.
1140 .BI .defcolor\ xxx\ scheme\ color_components
1144 can be one of the following values:
1150 (four components), and
1156 Color components can be given either as a hexadecimal string or as
1157 positive decimal integers in the range 0-65535.
1159 A hexadecimal string contains all color components concatenated; it
1160 must start with either
1164 The former specifies hex values in the range 0-255 (which are
1165 internally multiplied by\~257), the latter in the range 0-65535.
1167 Examples: #FFC0CB (pink), ##ffff0000ffff (magenta).
1169 A new scaling indicator\~\c
1171 has been introduced which multiplies its value by\~65536; this makes
1172 it convenient to specify color components as fractions in the range 0
1180 \&.defcolor darkgreen rgb 0.1f 0.5f 0.2f
1187 is the default scaling indicator for the
1189 request, thus the above statement is equivalent to
1194 \&.defcolor darkgreen rgb 0.1 0.5 0.2
1201 (which is device-specific) can't be redefined.
1203 It is possible that the default color for
1213 but compatibility mode is switched off during execution.
1215 On entry, the current compatibility mode is saved and restored at exit.
1219 Define macro indirectly.
1221 The following example
1247 request but compatibility mode is switched off during execution.
1250 .BI .device\ anything
1251 This is (almost) the same as the
1255 is read in copy mode; a leading\~\c
1261 This is the same as the
1263 escape (to embed the contents of a macro into the intermediate
1264 output preceded with `x\~X').
1270 with compatibility mode disabled.
1282 would have the same effect as
1290 except that it would work even if compatibility mode had been enabled.
1292 Note that the previous compatibility mode is restored before any files
1303 but compatibility mode is switched off during expansion.
1305 To be more precise, a `compatibility save' token is inserted at the
1306 beginning of the string, and a `compatibility restore' token at the end.
1310 Save current escape character.
1314 Restore escape character saved with
1316 Without a previous call to
1319 will be the new escape character.
1323 Copy the contents of environment
1325 to the current environment.
1327 No pushing or popping of environments is done.
1331 Set the current font family to
1333 The current font family is part of the current environment.
1336 is missing, switch back to previous font family.
1338 The value at start-up is `T'.
1340 See the description of the
1342 request for more information on font families.
1345 .BI .fchar\ c\ string
1346 Define fallback character (or glyph)\~\c
1351 The syntax of this request is the same as the
1353 request; the only difference is that a glyph defined with
1355 hides the glyph with the same name in the current font, whereas a
1358 is checked only if the particular glyph isn't found in the current font.
1360 This test happens before checking special fonts.
1364 Set the fill color to\~\c
1369 switch to the previous fill color.
1372 .BI .fschar\ f\ c\ string
1373 Define fallback character (or glyph)\~\c
1380 The syntax of this request is the same as the
1382 request (with an additional argument to specify the font); a glyph
1385 is searched after the list of fonts declared with the
1387 request but before the list of fonts declared with
1391 .BI .fspecial\ f\ s1\ s2\|.\|.\|.\&
1392 When the current font is\~\c
1397 are special, that is, they are searched for glyphs not in
1400 Any fonts specified in the
1402 request are searched after fonts specified in the
1406 Without argument, reset the list of global special fonts to be empty.
1414 Whenever a font named\~\c
1416 is referred to in an
1418 escape sequence, in the
1422 conditional operators, or in the
1438 is missing, or equal to\~\c
1451 must a non-negative integer multiple of 1/1000th.
1452 If it is missing or is equal to zero, it means the same as 1000, namely no
1455 must be a real font name, not a style.
1459 Set the glyph color to\~\c
1464 switch to the previous glyph color.
1467 .BI .hcode \ c1\ code1\ c2\ code2\|.\|.\|.\&
1468 Set the hyphenation code of character
1476 A hyphenation code must be a single input character (not a special
1477 character) other than a digit or a space.
1479 Initially each lower-case letter \%a-z has a hyphenation code, which is
1480 itself, and each upper-case letter \%A-Z has a hyphenation code which is
1481 the lower-case version of itself.
1489 Set the current hyphenation language to
1491 Hyphenation exceptions specified with the
1493 request and hyphenation patterns specified with the
1495 request are both associated with the current hyphenation language.
1499 request is usually invoked by the
1501 file to set up a default language.
1505 Set the maximum number of consecutive hyphenated lines to\~\c
1509 is negative, there is no maximum.
1511 The default value is\~\-1.
1513 This value is associated with the current environment.
1515 Only lines output from an environment count towards the maximum
1516 associated with that environment.
1518 Hyphens resulting from
1520 are counted; explicit hyphens are not.
1524 Read hyphenation patterns from
1526 this is searched for in the same way that
1528 is searched for when the
1530 option is specified.
1532 It should have the same format as (simple) \*[tx] patterns files.
1534 More specifically, the following scanning rules are implemented.
1538 A percent sign starts a comment (up to the end of the line) even if
1539 preceded by a backslash.
1542 No support for `digraphs' like
1550 (character code of\~\c
1552 in the range 0-127) are recognized; other use of\~\c
1561 checks for the expression
1562 .BR \[rs]patterns{ .\|.\|. }
1563 (possibly with whitespace before and after the braces).
1565 Everything between the braces is taken as hyphenation patterns.
1571 are not allowed in patterns.
1575 .BR \[rs]hyphenation{ .\|.\|. }
1576 gives a list of hyphenation exceptions.
1583 For backwards compatibility, if
1585 is missing, the whole file is treated as a list of hyphenation patterns
1586 (only recognizing the
1588 character as the start of a comment).
1594 request to map the encoding used in hyphenation patterns files to
1598 The set of hyphenation patterns is associated with the current language
1605 request is usually invoked by the
1607 file; a second call replaces the old patterns with the new ones.
1613 except that the hyphenation patterns from
1615 are appended to the patterns already loaded in the current language.
1618 .BI .hpfcode\ a\ b\ c\ d\ .\|.\|.
1619 After reading a hyphenation patterns file with the
1623 request, convert all characters with character code\~\c
1625 in the recently read patterns to character code\~\c
1633 Initially, all character codes map to themselves.
1637 must be integers in the range 0 to\~255.
1639 Note that it is even possible to use character codes which are otherwise
1645 .I hyphenation margin
1648 when the current adjustment mode is not\~\c
1650 the line is not 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
1727 \&.ds x a\[rs]t\[rs]c
1728 \&.ds y b\[rs]t\[rs]c
1748 In line-tabs mode, the same code gives
1758 Line-tabs mode is associated with the current environment; the
1759 read-only number register
1760 .B \[rs]n[.linetabs]
1761 is set to\~1 if in line-tabs mode, and 0 otherwise.
1769 is searched for in the same directories as macro files for the the
1771 command line option.
1773 If the file name to be included has the form
1779 instead and vice versa.
1785 This is similar to `.if\ 1'.
1791 built-in condition true and the
1793 built-in condition false.
1795 This can be reversed using the
1800 .BI .open\ stream\ filename
1803 for writing and associate the stream named
1814 .BI .opena\ stream\ filename
1819 exists, append to it instead of truncating it.
1825 directly to the intermediate output (subject to copy-mode interpretation);
1828 used at the top level.
1830 An initial double quote in
1832 is stripped off to allow initial blanks.
1836 Print the current environment and each defined environment state on
1841 Print the names and contents of all currently defined number registers
1845 .BI .psbb \ filename
1846 Get the bounding box of a PostScript image
1848 This file must conform to Adobe's Document Structuring Conventions;
1849 the command looks for a
1851 comment to extract the bounding box values.
1853 After a successful call, the coordinates (in PostScript units) of the
1854 lower left and upper right corner can be found in the registers
1862 If some error has occurred, the four registers are set to zero.
1866 This behaves like the
1868 request except that input comes from the standard output of
1873 Print the names and positions of all traps (not including input line
1874 traps and diversion traps) on stderr.
1876 Empty slots in the page trap list are printed as well, because they
1877 can affect the priority of subsequently planted traps.
1881 Set the post-vertical line space to\~\c
1883 default scale indicator is\~\c
1886 This value is added to each line after it has been output.
1888 With no argument, the post-vertical line space is set to its previous
1892 The total vertical line spacing consists of four components:
1896 with a negative value which are applied before the line is output, and
1900 with a positive value which are applied after the line is output.
1903 .BI .rchar\ c1\ c2\|.\|.\|.\&
1904 Remove the definitions of glyphs
1907 This undoes the effect of a
1913 Within a macro, return immediately.
1915 If called with an argument, return twice, namely from the current macro and
1916 from the macro one level higher.
1918 No effect otherwise.
1921 .BI .rfschar\ c1\ c2\|.\|.\|.\&
1922 Remove the font-specific definitions of glyphs
1925 This undoes the effect of a
1933 Right justify the next
1937 Without an argument right justify the next input line.
1939 The number of lines to be right justified is available in the
1943 This implicitly does
1947 request implicitly does
1952 Rename number register
1958 .BI .schar\ c\ string
1959 Define global fallback character (or glyph)\~\c
1964 The syntax of this request is the same as the
1966 request; a glyph defined with
1968 is searched after the list of fonts declared with the
1970 request but before the mounted special fonts.
1974 Set the soft hyphen character to\~\c
1978 is omitted, the soft hyphen character is set to the default
1980 The soft hyphen character is the glyph which is inserted when
1981 a word is hyphenated at a line break.
1983 If the soft hyphen character does not exist in the font of the
1984 glyph immediately preceding a potential break point, then the line
1985 is not broken at that point.
1987 Neither definitions (specified with the
1989 request) nor translations (specified with the
1991 request) are considered when finding the soft hyphen character.
1995 In a macro, shift the arguments by
1997 positions: argument\~\c
2003 are no longer available.
2007 is missing, arguments are shifted by\~1.
2009 Shifting by negative amounts is currently undefined.
2012 .BI .sizes\ s1\ s2\|.\|.\|.\|sn\ [0]
2013 This command is similar to the
2019 It sets the available font sizes for the current font to
2021 .IR s2 ,\|.\|.\|.\|,\~ sn
2024 The list of sizes can be terminated by an optional\~\c
2029 can also be a range of sizes
2032 Contrary to the font file command, the list can't extend over more
2036 .BI .special\ s1\ s2\|.\|.\|.\&
2040 are special and are searched for glyphs not in the current
2043 Without arguments, reset the list of special fonts to be empty.
2046 .BI .spreadwarn\ limit
2049 emit a warning if the additional space inserted for each space between
2050 words in an output line is larger or equal to
2053 A negative value is changed to zero; no argument toggles the warning on
2054 and off without changing
2057 The default scaling indicator is\~\c
2067 .B .spreadwarn\ 0.2m
2070 must add 0.2m or more for each interword space in a line.
2072 This request is active only if text is justified to both margins (using
2079 with font position\~\c
2081 A font position can be associated either with a font or with a style.
2083 The current font is the index of a font position and so is also either
2086 When it is a style, the font that is actually used is the font the
2087 name of which is the concatenation of the name of the current family
2088 and the name of the current style.
2090 For example, if the current font is\~1 and font position\~1 is
2091 associated with style\~\c
2093 and the current font family is\~\c
2099 If the current font is not a style, then the current family is ignored.
2108 are applied to a style, then they are applied instead to the
2109 member of the current family corresponding to that style.
2111 The default family can be set with the
2113 command line option.
2119 file controls which font positions (if any) are initially associated
2120 with styles rather than fonts.
2123 .BI .substring\ xx\ n1\ [ n2 ]
2124 Replace the string named
2126 with the substring defined by the indices
2130 The first character in the string has index\~0.
2134 is omitted, it is taken to be equal to the string's length.
2140 is negative, it is counted from the end of the string,
2143 The last character has index\~\-1, the character before the last
2144 character has index\~\-2, etc.
2147 .BI .tkf\ f\ s1\ n1\ s2\ n2
2148 Enable track kerning for font\~\c
2150 When the current font is\~\c
2152 the width of every glyph is increased by an amount between
2156 when the current point size is less than or equal to
2158 the width is increased by
2160 when it is greater than or equal to
2162 the width is increased by
2164 when the point size is greater than or equal to
2166 and less than or equal to
2168 the increase in width is a linear function of the point size.
2176 is read in copy mode and written on the standard error, but an initial
2179 is stripped off to allow initial blanks.
2185 but without writing a final newline.
2189 Transparently output the contents of file
2191 Each line is output as if preceded by
2193 however, the lines are not subject to copy-mode interpretation.
2195 If the file does not end with a newline, then a newline is added.
2197 For example, you can define a macro\~\c
2199 containing the contents of file\~\c
2216 request, the file cannot contain characters such as
2218 that are not valid troff input characters.
2222 This is the same as the
2224 request except that the
2226 request uses the character code (if any) before the character
2257 This is the same as the
2259 request except that the translations do not apply to text that is
2260 transparently throughput into a diversion with
2290 built-in condition false, and the
2292 built-in condition true.
2294 This undoes the effect of the
2300 This request `unformats' the diversion
2304 request, which tries to convert formatted elements of the diversion
2305 back to input tokens as much as possible,
2307 only handles tabs and spaces between words (usually caused by
2308 spaces or newlines in the input) specially.
2310 The former are treated as if they were input tokens, and the latter
2311 are stretchable again.
2313 Note that the vertical size of lines is not preserved.
2315 Glyph information (font, font size, space width, etc.) is retained.
2317 Useful in conjunction with the
2325 Enable vertical position traps if
2327 is non-zero, disable them otherwise.
2329 Vertical position traps are traps set by the
2337 request are not vertical position traps.
2339 The parameter that controls whether vertical position traps are
2342 Initially vertical position traps are enabled.
2348 is the sum of the numbers associated with each warning that is to be
2349 enabled; all other warnings are disabled.
2351 The number associated with each warning is listed in
2352 .BR @L_TROFF@ (@MAN1EXT@).
2356 disables all warnings, and
2358 disables all warnings except that about missing glyphs.
2362 is not given, all warnings are enabled.
2366 Set the scaling indicator used in warnings to
2379 At startup, it is set to\~\c
2383 .BI .while \ c\ anything
2390 can be any condition acceptable to an
2394 can comprise multiple lines if the first line starts with
2396 and the last line ends with
2405 .BI .write\ stream\ anything
2411 must previously have been the subject of an
2415 is read in copy mode;
2421 .BI .writec\ stream\ anything
2424 but without writing a final newline.
2427 .BI .writem\ stream\ xx
2428 Write the contents of the macro or string
2433 must previously have been the subject of an
2437 is read in copy mode.
2441 .SS "Extended escape sequences"
2445 .BR \[rs]D' .\|.\|. '
2446 All drawing commands of @L_ROFF@'s intermediate output are accepted.
2449 .B "Drawing Commands"
2450 below for more information.
2454 .SS "Extended requests"
2459 When used in a diversion, this embeds in the diversion an object
2460 which, when reread, will cause the contents of
2462 to be transparently copied through to the output.
2464 In UNIX troff, the contents of
2466 is immediately copied through to the output regardless of whether
2467 there is a current diversion; this behaviour is so anomalous that it
2468 must be considered a bug.
2478 In compatibility mode, these requests behaves similar to
2484 respectively: A `compatibility save' token is inserted at the
2485 beginning, and a `compatibility restore' token at the end, with
2486 compatibility mode switched on during execution.
2492 is not a number, this switches to a named environment called
2494 The environment should be popped with a matching
2496 request without any arguments, just as for numbered environments.
2498 There is no limit on the number of named environments; they are
2499 created the first time that they are referenced.
2503 When two arguments are given to the
2505 request, the second argument gives the
2506 .IR "sentence space size" .
2507 If the second argument is not given, the sentence space size
2508 is the same as the word space size.
2510 Like the word space size, the sentence space is in units of
2511 one twelfth of the spacewidth parameter for the current font.
2513 Initially both the word space size and the sentence
2516 Contrary to UNIX troff, @L_TROFF@ handles this request in nroff mode
2517 also; a given value is then rounded down to the nearest multiple
2520 The sentence space size is used in two circumstances.
2522 If the end of a sentence occurs at the end of a line in fill mode,
2523 then both an inter-word space and a sentence space are added; if
2524 two spaces follow the end of a sentence in the middle of a line, then
2525 the second space is a sentence space.
2527 Note that the behaviour of UNIX troff are exactly that exhibited
2528 by @L_TROFF@ if a second argument is never given to the
2532 In @L_TROFF@, as in UNIX troff, you should always follow a sentence
2533 with either a newline or two spaces.
2536 .BI .ta\ n1\ n2\|.\|.\|.nn \ T\ r1\ r2\|.\|.\|.\|rn
2537 Set tabs at positions
2539 .IR n2 ,\|.\|.\|.\|,
2541 and then set tabs at
2543 .IR nn \|+\| r2 ,\|.\|.\|.\|,
2546 .IR nn \|+\| rn \|+\| r1 ,
2547 .IR nn \|+\| rn \|+\| r2 ,\|.\|.\|.\|,
2548 .IR nn \|+\| rn \|+\| rn ,
2559 sets tabs every half an inch.
2564 .SS "New number registers"
2567 The following read-only registers are available:
2571 Within a macro call, it is set to\~1 if the macro is called with the
2572 `normal' control character (`.' by default), and set to\~0 otherwise.
2573 This allows to reliably modify requests.
2582 \&.ie \[rs]\[rs]n[.br] .bp*orig
2590 Using this register outside of a macro makes no sense (it always returns
2591 zero in such cases).
2595 1\~if compatibility mode is in effect, 0\~otherwise.
2599 The depth of the last glyph added to the current environment.
2601 It is positive if the glyph extends below the baseline.
2605 The number of lines remaining to be centered, as set by the
2611 The height of the last glyph added to the current environment.
2613 It is positive if the glyph extends above the baseline.
2617 1\~if colors are enabled, 0\~otherwise.
2621 The skew of the last glyph added to the current environment.
2625 of a glyph is how far to the right of the center of a glyph
2626 the center of an accent over that glyph should be placed.
2630 The name or number of the current environment.
2632 This is a string-valued register.
2636 The current font family.
2638 This is a string-valued register.
2642 The current (internal) real font name.
2644 This is a string-valued register.
2646 If the current font is a style, the value of
2648 is the proper concatenation of family and style name.
2652 The number of the next free font position.
2658 Macros should use this to determine whether they are running under
2663 The current height of the font as set with
2668 The current hyphenation language as set by the
2674 The number of immediately preceding consecutive hyphenated lines.
2678 The maximum allowed number of consecutive hyphenated lines, as set by
2685 The current hyphenation flags (as set by the
2691 The current hyphenation margin (as set by the
2697 The current hyphenation space (as set by the
2703 The indentation that applies to the current output line.
2707 Set to a positive value if last output line is interrupted (i.e., if
2713 1\~if pairwise kerning is enabled, 0\~otherwise.
2717 The current ligature mode (as set by the
2722 .B \[rs]n[.linetabs]
2723 The current line-tabs mode (as set by the
2729 The line length that applies to the current output line.
2733 The title length as set by the
2739 The name of the current drawing color.
2741 This is a string-valued register.
2745 The name of the current background color.
2747 This is a string-valued register.
2751 The amount of space that was needed in the last
2753 request that caused a trap to be sprung.
2755 Useful in conjunction with the
2761 1\~if no-space mode is active, 0\~otherwise.
2765 1\~during a page ejection caused by the
2767 request, 0\~otherwise.
2771 The number of the next page, either the value set by a
2773 request, or the number of the current page plus\~1.
2777 The current point size in scaled points.
2781 The last-requested point size in scaled points.
2785 The current post-vertical line space as set with the
2791 The number of lines to be right-justified as set by the
2797 The slant of the current font as set with
2802 The last requested point size in points as a decimal fraction.
2804 This is a string-valued register.
2810 These give the values of the parameters set by the first and second
2817 The current font style.
2819 This is a string-valued register.
2823 A string representation of the current tab settings suitable for use
2824 as an argument to the
2830 The amount of vertical space truncated by the most recently sprung
2831 vertical position trap, or, if the trap was sprung by a
2833 request, minus the amount of vertical motion produced by the
2837 In other words, at the point a trap is sprung, it represents the
2838 difference of what the vertical position would have been but for the
2839 trap, and what the vertical position actually is.
2841 Useful in conjunction with the
2847 Set to\~1 if in safer mode and to\~0 if in unsafe mode (as given with
2850 command line option).
2854 1\~if vertical position traps are enabled, 0\~otherwise.
2858 The sum of the numbers associated with each of the currently enabled
2861 The number associated with each warning is listed in
2862 .BR @L_TROFF@ (@MAN1EXT@).
2866 The major version number.
2868 For example, if the version number is 1.03, then
2874 The minor version number.
2876 For example, if the version number is 1.03, then
2882 The revision number of @T_ROFF@.
2886 The zoom value of the current font, in multiples of 1/1000th.
2887 Zero if no magnification.
2897 These four registers are set by the
2899 request and contain the bounding box values (in PostScript units) of a
2900 given PostScript image.
2903 The following read/\:write registers are set by the
2915 registers, but take account of the heights and depths of glyphs.
2919 The amount of horizontal space (possibly negative) that should be
2920 added to the last glyph before a subscript.
2924 How far to right of the center of the last glyph in the
2926 argument, the center of an accent from a roman font should be placed
2930 Other available read/write number registers are:
2934 The current input line number.
2936 is a read-only alias to this register.
2940 The number of hours past midnight.
2942 Initialized at start-up.
2946 The current horizontal position at input line.
2950 The number of minutes after the hour.
2952 Initialized at start-up.
2956 The number of seconds after the minute.
2958 Initialized at start-up.
2962 The return value of the system() function executed by the last
2968 If greater than\~0, the maximum number of objects on the input stack.
2970 If less than or equal to\~0, there is no limit on the number of
2971 objects on the input stack.
2973 With no limit, recursion can continue until virtual memory is
2980 Note that the traditional
2984 is the current year minus 1900.
2992 predefines a single (read/write) string-based register,
2994 which contains the argument given to the
2996 command line option, namely the current output device (for example,
3000 Note that this is not the same as the (read-only) number register
3002 which is defined to be\~1 if
3006 command line option, and zero otherwise.
3008 This behaviour is different to UNIX troff.
3011 Fonts not listed in the
3013 file are automatically mounted on the next available font position
3014 when they are referenced.
3016 If a font is to be mounted explicitly with the
3018 request on an unused font position, it should be mounted on the first
3019 unused font position, which can be found in the
3023 does not enforce this strictly, it does not allow a font to be mounted
3024 at a position whose number is much greater than that of any currently
3028 Interpolating a string does not hide existing macro arguments.
3030 Thus in a macro, a more efficient way of doing
3033 .BI . xx\ \[rs]\[rs]$@
3038 .BI \[rs]\[rs]*[ xx ]\[rs]\[rs]
3041 If the font description file contains pairwise kerning information,
3042 glyphs from that font are kerned.
3044 Kerning between two glyphs can be inhibited by placing a
3049 In a string comparison in a condition, characters that appear at
3050 different input levels to the first delimiter character are not
3051 recognized as the second or third delimiters.
3053 This applies also to the
3059 escape sequence, a character that appears at a different input level
3060 to the starting delimiter character is not recognized as the
3061 closing delimiter character.
3063 The same is true for
3075 When decoding a macro or string argument that is delimited by double
3076 quotes, a character that appears at a different input level to the starting
3077 delimiter character is not recognized as the closing delimiter
3080 The implementation of
3082 ensures that the double quotes surrounding an argument appear at the
3083 same input level, which is different to the input level of the
3086 In a long escape name
3088 is not recognized as a closing delimiter except when it occurs at
3089 the same input level as the opening\~\c
3092 In compatibility mode, no attention is paid to the input-level.
3095 There are some new types of condition:
3099 True if there is a number register named
3104 True if there is a string, macro, diversion, or request named
3109 True if there is a color named
3114 True if there is a character (or glyph)
3120 character or a glyph (special character)
3121 .BI \[rs]N' xxx '\f[R],
3124 .BI \[rs][ xxx ]\f[R];
3125 the condition is also true if
3127 has been defined by the
3138 is handled as if it was opened with the
3140 request (this is, font translation and styles are applied), without
3141 actually mounting it.
3147 has been registered.
3149 Font translation is applied.
3154 request can now map characters onto
3158 The space width emitted by the
3162 escape sequences can be controlled on a per-font basis.
3163 If there is a glyph named
3167 respectively (note the leading backslash), defined in the current font file,
3168 use this glyph's width instead of the default value.
3171 It is now possible to have whitespace between the first and second dot
3172 (or the name of the ending macro) to end a macro definition.
3181 \&. nop Hello, I'm `bar'.
3188 .SH "INTERMEDIATE OUTPUT FORMAT"
3191 This section describes the format output by @L_TROFF@.
3193 The output format used by @L_TROFF@ is very similar to that used
3194 by Unix device-independent troff.
3196 Only the differences are documented here.
3205 command is in scaled points (units of
3209 is the argument to the
3211 command in the DESC file).
3215 command is also in scaled points.
3224 Print glyph with index\~\c
3226 (a non-negative integer) of the current font.
3231 line is present in the DESC file, troff uses the following two
3237 is any sequence of characters terminated by a space or a newline (to
3238 be more precise, it is a sequence of glyphs which are accessed with
3239 the corresponding characters); the first character should be printed at
3240 the current position, the current horizontal position should be increased
3241 by the width of the first character, and so on for each character.
3243 The width of the glyph is that given in the font file,
3244 appropriately scaled for the current point size, and rounded so that
3245 it is a multiple of the horizontal resolution.
3247 Special characters cannot be printed using this command.
3253 command except that after printing each character, the current
3254 horizontal position is increased by the sum of the width of that
3259 Note that single characters can have the eighth bit set, as can the
3260 names of fonts and special characters.
3263 The names of glyphs and fonts can be of arbitrary length; drivers
3264 should not assume that they are only two characters long.
3267 When a glyph is to be printed, that glyph is always
3268 in the current font.
3270 Unlike device-independent troff, it is not necessary for drivers to
3271 search special fonts to find a glyph.
3274 For color support, some new commands have been added:
3277 \f[B]mc \f[I]cyan magenta yellow\f[R]
3281 \f[B]mg \f[I]gray\f[R]
3283 \f[B]mk \f[I]cyan magenta yellow black\f[R]
3285 \f[B]mr \f[I]red green blue\f[R]
3286 Set the color components of the current drawing color, using various
3290 resets the drawing color to the default value.
3292 The arguments are integers in the range 0 to 65536.
3297 device control command has been extended.
3300 \f[B]x u \f[I]n\f[R]
3303 is\~1, start underlining of spaces.
3307 is\~0, stop underlining of spaces.
3309 This is needed for the
3311 request in nroff mode and is ignored otherwise.
3315 .SS "Drawing Commands"
3320 drawing command has been extended.
3322 These extensions are not used by @L_P_PIC@ if the
3327 \f[B]Df \f[I]n\f[R]\*[ic]\[rs]n
3328 Set the shade of gray to be used for filling solid objects to
3331 must be an integer between 0 and 1000, where 0 corresponds solid white
3332 and 1000 to solid black, and values in between correspond to
3333 intermediate shades of gray.
3335 This applies only to solid circles, solid ellipses and solid
3338 By default, a level of 1000 is used.
3340 Whatever color a solid object has, it should completely obscure
3341 everything beneath it.
3343 A value greater than 1000 or less than\~0 can also be used: this means
3344 fill with the shade of gray that is currently being used for lines and
3347 Normally this is black, but some drivers may provide a way of
3352 .BI \[rs]D'f .\|.\|. '
3353 command shouldn't be used since its argument is always rounded to an
3354 integer multiple of the horizontal resolution which can lead to
3358 \f[B]DC \f[I]d\f[R]\*[ic]\[rs]n
3359 Draw a solid circle with a diameter of
3361 with the leftmost point at the current position.
3364 \f[B]DE \f[I]dx dy\f[R]\*[ic]\[rs]n
3365 Draw a solid ellipse with a horizontal diameter of
3367 and a vertical diameter of
3369 with the leftmost point at the current position.
3376 \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
3377 Draw a polygon with, for $i = 1 ,..., n+1$, the
3379 vertex at the current position
3381 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$.
3383 At the moment, @L_P_PIC@ only uses this command to generate triangles
3387 \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
3391 but draw a solid rather than outlined polygon.
3394 \f[B]Dt \f[I]n\f[R]\*[ic]\[rs]n
3395 Set the current line thickness to
3399 Traditionally Unix troff drivers use a line thickness proportional to
3400 the current point size; drivers should continue to do this if no
3402 command has been given, or if a
3404 command has been given with a negative value of\~\c
3408 selects the smallest available line thickness.
3411 A difficulty arises in how the current position should be changed after
3412 the execution of these commands.
3414 This is not of great importance since the code generated by @L_P_PIC@
3415 does not depend on this.
3417 Given a drawing command of the form
3419 \f[B]\[rs]D'\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\f[B]'\f[R]
3431 Unix troff treats each of the $x sub i$ as a horizontal quantity,
3432 and each of the $y sub i$ as a vertical quantity and assumes that
3433 the width of the drawn object is $sum from i=1 to n x sub i$,
3434 and that the height is $sum from i=1 to n y sub i$.
3436 (The assumption about the height can be seen by examining the
3440 registers after using such a
3446 This rule also holds for all the original drawing commands with the
3449 For the sake of compatibility @L_TROFF@ also follows this rule, even
3450 though it produces an ugly result in the case of the
3454 and, to a lesser extent,
3458 Thus after executing a
3462 \f[B]D\f[I]c\f[R] $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\[rs]n
3465 the current position should be increased by
3467 $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$.
3470 Another set of extensions is
3473 \f[B]DFc \f[I]cyan magenta yellow\f[R]\*[ic]\[rs]n
3475 \f[B]DFd\f[R]\*[ic]\[rs]n
3477 \f[B]DFg \f[I]gray\f[R]\*[ic]\[rs]n
3479 \f[B]DFk \f[I]cyan magenta yellow black\f[R]\*[ic]\[rs]n
3481 \f[B]DFr \f[I]red green blue\f[R]\*[ic]\[rs]n
3482 Set the color components of the filling color similar to the
3487 The current position isn't changed by those colour commands (contrary to
3492 .SS "Device Control Commands"
3495 There is a continuation convention which permits the argument to the
3497 command to contain newlines: when outputting the argument to the
3499 command, @L_TROFF@ follows each newline in the argument with a
3501 character (as usual, it terminates the entire argument with a
3502 newline); thus if the line after the line containing the
3506 then the newline ending the line containing the
3508 command should be treated as part of the argument to the
3512 should be ignored, and the part of the line following the
3514 should be treated like the part of the line following the
3519 The first three output commands are guaranteed to be:
3529 .SH INCOMPATIBILITIES
3532 In spite of the many extensions, @T_ROFF@ has retained compatibility to
3533 classical troff to a large degree.
3535 For the cases where the extensions lead to collisions, a special
3536 compatibility mode with the restricted, old functionality was created
3546 .B compatibility mode
3547 that allows to process roff code written for classical
3549 or for other implementations of roff in a consistent way.
3552 Compatibility mode can be turned on with the
3554 command line option, and turned on or off with the
3560 is\~1 if compatibility mode is on, 0\~otherwise.
3563 This became necessary because the concept for long names causes
3564 some incompatibilities.
3571 as defining a string
3577 mode, this is considered as a call of a macro named
3587 as references to a string or number register called\~\c
3591 takes this as the start of a long name.
3595 .IR "compatibility mode" ,
3596 these things are interpreted in the traditional way, so long
3597 names are not recognized.
3600 On the other hand, in
3602 the single-character escapes
3632 are not allowed in names of strings, macros, diversions, number
3633 registers, fonts or environments, whereas
3640 escape sequence can be helpful in avoiding these escape sequences in
3644 Fractional point sizes cause one noteworthy incompatibility.
3651 request ignores scale indicators and so
3658 sets the point size to 10\~points, whereas in native mode the
3659 point size is set to 10\~scaled points.
3664 there is a fundamental difference between unformatted input
3665 characters, and formatted output characters (glyphs).
3667 Everything that affects how a glyph is output is
3668 stored with the glyph; once a glyph has been
3669 constructed it is unaffected by any subsequent requests that are
3670 executed, including the
3680 Normally glyphs are constructed from input characters at
3681 the moment immediately before the glyph is added to the current
3684 Macros, diversions and strings are all, in fact, the same type of
3685 object; they contain lists of input characters and glyphs
3689 Special characters can be both; before being added to the output, they
3690 act as input entities, afterwards they denote glyphs.
3693 A glyph does not behave like an input character for the
3694 purposes of macro processing; it does not inherit any of the special
3695 properties that the input character from which it was constructed
3698 The following example makes things clearer.
3704 \[rs]\[rs]\[rs]\[rs]
3716 So each pair of input backslashes
3718 is turned into a single output backslash glyph
3720 and the resulting output backslashes are not interpreted as escape
3721 characters when they are reread.
3725 would interpret them as escape characters when they were reread and
3726 would end up printing a single backslash `\[rs]'.
3729 The correct way to get a printable version of the backslash
3730 character `\[rs]' is the
3732 escape sequence, but classical troff does not provide a clean feature
3733 for getting a non-syntactical backslash.
3735 A close method is the printable version of the current escape
3738 escape sequence; this works if the current escape character is not
3741 It works in both modes (including compatibility mode), while dirty tricks
3742 like specifying a sequence of multiple backslashes do not work
3743 reliably; for the different handling in diversions, macro definitions,
3744 or text mode quickly leads to a confusion about the necessary number of
3748 To store an escape sequence in a diversion that is interpreted
3749 when the diversion is reread, either the traditional
3751 transparent output facility or the
3754 escape sequence can be used.
3758 .SS "Intermediate Output"
3761 The @T_ROFF@ intermediate output format is in a state of evolution.
3763 So far it has some incompatibilities, but it is intended to establish
3764 a full compatibility to the classical troff output format.
3766 Actually the following incompatibilities exist:
3769 The positioning after the drawing of the polygons conflicts with the
3770 classical definition.
3773 The intermediate output cannot be rescaled to other devices as
3774 classical `device-independent' troff did.
3781 Copyright (c) 2014 Steffen (Daode) Nurpmeso <sdaoden@users.sf.net>.
3783 Copyright (C) 1989, 2001 - 2004, 2006 - 2008
3784 Free Software Foundation, Inc.
3787 This document is distributed under the terms of the FDL (GNU Free
3788 Documentation License) version 1.1 or later.
3790 You should have received a copy of the FDL on your system, it is also
3791 available on-line at the
3792 .UR http://\:www.gnu.org/\:copyleft/\:fdl.html
3796 This document was written by James Clark, with modifications by
3810 .BR @L_ROFF@ (@MAN1EXT@)
3811 Lists all the available documentation.
3814 .BR @L_ROFF@ (@MAN7EXT@)
3815 A description of the
3817 language, including a short, but complete reference of all predefined
3818 requests, registers and escapes.
3821 .BR roff (@MAN7EXT@)
3824 systems, including pointers to further historical documentation.
3829 .I Nroff/\:Troff User's Manual
3831 .I J.\& F.\& Ossanna
3832 of 1976 in the revision of
3835 .UR http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz
3836 classical troff documentation