2 .TH GROFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
4 groff \- a short reference for the GNU roff language
6 .\" Before installation: <top-groff-source>/man/groff.man
7 .\" After installation: </usr or /usr/local>/share/man/man7/groff.7
9 .\" --------------------------------------------------------------------
11 .\" --------------------------------------------------------------------
14 This file is part of groff, the GNU roff type-setting system.
16 Copyright \[co] 2000-2014 Free Software Foundation, Inc.
18 Permission is granted to copy, distribute and/or modify this document
19 under the terms of the GNU Free Documentation License, Version 1.3 or
20 any later version published by the Free Software Foundation; 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. It is also
25 available in the internet at
26 .UR http://\:www.gnu.org/\:copyleft/\:fdl.html
31 This documentation was written by
32 .MT groff-bernd.warken-72@web.de
35 and is appended and maintained by
41 .\" --------------------------------------------------------------------
43 .\" --------------------------------------------------------------------
48 .\" --------------------------------------------------------------------
49 .\" start of macro definitions
54 .\" ---------------------------------------------------------------------
55 .\" .Text anything ...
57 .\" All arguments are printed as text.
63 .\" --------- command line option ---------
70 .\" --------- characters ---------
73 . Text \[oq]\f[CB]\\$1\f[]\[cq]\\$2
76 . Text \[lq]\f[CB]\\$1\f[]\[rq]\\$2
78 .\" --------- requests ---------
80 .\" synopsis of a request
86 . Text \f[CB]\\$1\~\f[]\f[I]\\$2\f[]
90 .\" reference of a request
95 .\" --------- numerical elements ---------
97 .\" number with a trailing unit
99 . Text \\$1\^\f[CB]\\$2\f[]\\$3\f[R]
103 .\" representation of units within the text
105 . Text \f[CB]\\$1\f[]\\$2\f[R]
109 .\" representation of mathematical operators within the text
115 .\" --------- escape sequences ---------
117 .\" ---------------------------------------------------------------------
120 .\" Synopsis of an escape sequence, optionally with argument
121 .\" Args : 1 or 2; `name' obligatory, `arg' optional
122 .\" name : suitable name for an escape sequence (c, (xy, [long])
123 .\" arg : arbitrary word
124 .\" Result : prints \namearg, where `name' is in CB, `arg' in I
127 . Text "\f[CB]\e\\$1\,\f[I]\\$2\/\fR"
129 .\" ---------------------------------------------------------------------
132 .\" Synopsis for escape sequence with a bracketed long argument
133 .\" Args : 2 obligatory
134 .\" name : suitable name for an escape sequence (c, (xy, [long])
135 .\" arg : arbitrary text
136 .\" Result : prints \name[arg], where `name' is in CB, `arg' in I
139 . Text "\f[CB]\e\\$1\[lB]\f[]\,\f[I]\\$2\/\f[]\f[CB]\[rB]\f[]"
141 .\" ---------------------------------------------------------------------
144 .\" Synopsis for escape sequence with a bracketed long argument
145 .\" Args : 2 obligatory
146 .\" name : suitable name for an escape sequence (c, (xy, [long])
147 .\" arg : arbitrary text
148 .\" Result : prints \name'arg', where `name' is in CB, `arg' in I
151 . Text "\f[CB]\e\\$1\[cq]\f[]\,\f[I]\\$2\/\f[]\f[CB]\[cq]\f[]"
153 .\" ---------------------------------------------------------------------
156 .\" Synopsis for escape sequence with a bracketed long argument
157 .\" Args : 1 obligatory
158 .\" arg : arbitrary text
159 .\" Result : prints `\?arg?', where the `?' are in CB, `arg' in I
162 . Text "\f[CB]\e?\,\f[I]\\$1\/\f[CB]?\f[R]"
164 .\" ---------------------------------------------------------------------
165 .\" .esc name [punct]
167 .\" Reference of an escape sequence (no args), possibly punctuation
168 .\" Args : 1 obligatory
169 .\" name : suitable name for an escape sequence (c, (xy, [long])
170 .\" punct : arbitrary
171 .\" Result : prints \name, where `name' is in B, `punct' in R
176 .\" ---------------------------------------------------------------------
177 .\" .escarg name arg [punct]
179 .\" Reference of an escape sequence (no args)
180 .\" Args : 1 obligatory, 1 optional
181 .\" name : suitable name for an escape sequence (c, (xy, [long])
182 .\" arg : arbitrary word
183 .\" Result : prints \namearg, where
184 .\" `name' is in B, `arg' in I
187 . Text \f[B]\e\\$1\f[]\,\f[I]\\$2\/\f[]\\$3
189 .\" ---------------------------------------------------------------------
190 .\" .esc[] name arg [punct]
192 .\" Reference for escape sequence with a bracketed long argument
193 .\" Args : 2 obligatory
194 .\" name : suitable name for an escape sequence (c, (xy, [long])
195 .\" arg : arbitrary text
196 .\" Result : prints \name[arg], where `name' is in CB, `arg' in CI
199 . Text \f[CB]\e\\$1\[lB]\f[]\,\f[CI]\\$2\/\f[]\f[CB]\[rB]\f[]\\$3
202 .\" ---------------------------------------------------------------------
205 .\" Reference for escape sequence with a bracketed long argument
206 .\" Args : 2 obligatory
207 .\" name : suitable name for an escape sequence (c, (xy, [long])
208 .\" arg : arbitrary text
209 .\" Result : prints \name'arg', where `name' is in CB, `arg' in CI
212 . Text \f[CB]\e\\$1\[cq]\f[]\,\f[CI]\\$2\/\f[]\f[CB]\[cq]\f[]\\$3
215 .\" --------- strings ---------
217 .\" synopsis for string, with \*[]
219 . Text \[rs]*[\f[CB]\\$1\f[]] \\$2
221 .\" synopsis for a long string
225 . Text \f[CB]\[rs]*\[lB]\\$1\[rB]\f[]\\$2
228 .\" --------- registers ---------
230 .\" synopsis for registers, with \n[]
232 . Text \[rs]n[\f[CB]\\$1\f[]]
234 .\" reference of a register, without decoration
240 .\" end of macro definitions
243 .\" --------------------------------------------------------------------
245 .\" --------------------------------------------------------------------
251 and is the free implementation of the roff type-setting system.
255 for a survey and the background of the groff system.
259 This document gives only short descriptions of the predefined roff
260 language elements as used in groff.
262 Both the classical features and the groff extensions are provided.
271 is compatible with the classical system and provides proper
279 could be used as synonyms.
283 slightly tends to refer more to the classical aspects, whereas
285 emphasizes the GNU extensions, and
287 is the general term for the language.
291 This file is only a short version of the complete documentation that
295 file, which contains more detailed, actual, and concise information.
298 The general syntax for writing groff documents is relatively easy, but
299 writing extensions to the roff language can be a bit harder.
303 The roff language is line-oriented.
305 There are only two kinds of lines, control lines and text lines.
307 The control lines start with a control character, by default a period
310 .dquoted_char \[aq] ;
311 all other lines are text lines.
316 represent commands, optionally with arguments.
318 They have the following syntax.
320 The leading control character can be followed by a command name;
321 arguments, if any, are separated by spaces (but not tab characters)
322 from the command name and among themselves, for example,
325 .Text .command_name arg1 arg2
330 For indentation, any number of space or tab characters can be inserted
331 between the leading control character and the command name, but the
332 control character must be on the first position of the line.
337 represent the parts that is printed.
338 They can be modified by escape sequences, which are recognized by a
340 .squoted_char \[rs] .
341 These are in-line or even in-word formatting elements or functions.
343 Some of these take arguments separated by single quotes
344 .dquoted_char \[aq] ,
345 others are regulated by a length encoding introduced by an open
348 or enclosed in brackets
355 The roff language provides flexible instruments for writing language
356 extension, such as macros.
358 When interpreting macro definitions, the roff system enters a special
359 operating mode, called the
364 The copy mode behaviour can be quite tricky, but there are some rules
365 that ensure a safe usage.
368 Printable backslashes must be denoted as
372 represents the current escape character.
374 To get a backslash glyph, use
379 Double all backslashes.
381 Begin all text lines with the special non-spacing character
386 This does not produce the most efficient code, but it should work as a
389 For better strategies, see the groff info file and
390 .BR groff_tmac (@MAN5EXT@).
394 Reading roff source files is easier, just reduce all double backslashes
395 to a single one in all macro definitions.
398 .\" --------------------------------------------------------------------
400 .\" --------------------------------------------------------------------
402 The roff language elements add formatting information to a text file.
404 The fundamental elements are predefined commands and variables that
405 make roff a full-blown programming language.
409 There are two kinds of roff commands, possibly with arguments.
411 are written on a line of their own starting with a dot
414 .dquoted_char \[aq] ,
417 are in-line functions and in-word formatting elements starting with a
419 .squoted_char \[rs] .
423 The user can define her own formatting commands using the
427 These commands are called
429 but they are used exactly like requests.
431 Macro packages are pre-defined sets of macros written in the groff
434 A user\[aq]s possibilities to create escape sequences herself is very
435 limited, only special characters can be mapped.
439 The groff language provides several kinds of variables with
440 different interfaces.
442 There are pre-defined variables, but the user can define her own
448 variables store character sequences.
450 They are set with the
452 request and retrieved by the
456 Strings can have variables.
461 variables can store numerical values, numbers with a scale unit, and
462 occasionally string-like objects.
464 They are set with the
466 request and retrieved by the
473 allow the user to temporarily store global formatting parameters like
474 line length, font size, etc.\& for later reuse.
483 are identified either by a name or by an internal number.
485 The current font is chosen by the
491 Each device has special fonts, but the following fonts are available
494 is the standard font Roman.
504 and is available everywhere, but on text devices it is displayed as an
505 underlined Roman font.
507 For the graphical output devices, there exist constant-width pendants
513 On text devices, all glyphs have a constant width anyway.
518 are visual representation forms of
520 In groff, the distinction between those two elements is not always
521 obvious (and a full discussion is beyond the scope of this man page).
523 A first approximation is that glyphs have a specific size and
524 colour and are taken from a specific font; they can\[aq]t be modified any
525 more \[en] characters are the input, and glyphs are the output.
527 As soon as an output line has been generated, it no longer contains
528 characters but glyphs.
530 In this man page, we use either \[oq]glyph\[cq] or
531 \[oq]character\[cq], whatever is more appropriate.
535 Moreover, there are some advanced roff elements.
539 stores (formatted) information into a macro for later usage.
543 is a positional condition like a certain number of lines from page top
544 or in a diversion or in the input.
546 Some action can be prescribed to be run automatically when the
551 More detailed information and examples can be found in the groff info
555 .\" --------------------------------------------------------------------
556 .SH "CONTROL CHARACTERS"
557 .\" --------------------------------------------------------------------
559 There is a small set of characters that have a special controlling
560 task in certain conditions.
564 A dot is only special at the beginning of a line or after the
565 condition in the requests
571 There it is the control character that introduces a request (or macro).
575 request, the control character can be set to a different character,
578 a non-special character.
581 In all other positions, it just means a dot character.
583 In text paragraphs, it is advantageous to start each sentence at a
588 The single quote has two controlling tasks.
590 At the beginning of a line and in the conditional requests it is the
591 non-breaking control character.
593 That means that it introduces a request like the dot, but with the
594 additional property that this request doesn\[aq]t cause a linebreak.
598 request, the non-break control character can be set to a different
602 As a second task, it is the most commonly used argument separator in
603 some functional escape sequences (but any pair of characters not part
604 of the argument do work).
606 In all other positions, it denotes the single quote or apostrophe
609 Groff provides a printable representation with the
615 The double quote is used to enclose arguments in macros (but not in
616 requests and strings).
622 requests, a leading double quote in the argument is stripped off,
623 making everything else afterwards the string to be defined (enabling
626 The escaped double quote
628 introduces a comment.
630 Otherwise, it is not special.
632 Groff provides a printable representation with the
638 The backslash usually introduces an escape sequence (this can be
643 A printed version of the escape character is the
645 escape; a backslash glyph can be obtained by
650 The open parenthesis is only special in escape sequences when
651 introducing an escape name or argument consisting of exactly two
654 In groff, this behaviour can be replaced by the \f[CB][]\f[] construct.
658 The opening bracket is only special in groff escape sequences; there
659 it is used to introduce a long escape name or long escape argument.
661 Otherwise, it is non-special, e.g.\& in macro calls.
665 The closing bracket is only special in groff escape sequences; there
666 it terminates a long escape name or long escape argument.
668 Otherwise, it is non-special.
672 Space characters are only functional characters.
674 They separate the arguments in requests, macros, and strings, and the words
677 They are subject to groff\[aq]s horizontal spacing calculations.
679 To get a defined space width, escape sequences like
680 .squoted_char "\[rs]\ "
681 (this is the escape character followed by a space),
688 .IP \f[CI]newline\f[]
689 In text paragraphs, newlines mostly behave like space characters.
691 Continuation lines can be specified by an escaped newline, i.e., by
692 specifying a backslash
694 as the last character of a line.
697 If a tab character occurs during text the interpreter makes a
698 horizontal jump to the next pre-defined tab position.
700 There is a sophisticated interface for handling tab positions.
703 .\" --------------------------------------------------------------------
704 .SH "NUMERICAL EXPRESSIONS"
705 .\" --------------------------------------------------------------------
709 is a signed or unsigned integer or float with or without an appended
714 is a one-character abbreviation for a unit of measurement.
716 A number followed by a scaling indicator signifies a size value.
718 By default, numerical values do not have a scaling indicator, i.e., they
725 language defines the following scaling indicators.
742 Pica\ \[eq]\ 1/6\ inch
746 Point\ \[eq]\ 1/72\ inch
750 Em\ \[eq]\ \f[R]the font size in points (approx.\& width of letter
751 \[oq]\f[CR]m\f[R]\[cq])
755 100\^th \f[R]of an \f[CR]Em
763 Basic unit for actual output device
767 Vertical line space in basic units
768 scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
769 font \f[I]DESC\f[] file)
779 .B Numerical expressions
780 are combinations of the numerical values defined above with the
781 following arithmetical operators already defined in classical troff.
846 Grouping of expressions
850 Close current grouping
859 added the following operators for numerical expressions:
867 \f[I]e1\/\f[CB]>?\,\f[I]e2\f[R]
874 \f[I]e1\/\f[CB]<?\,\f[I]e2\f[R]
881 \f[CB](\,\f[I]c\/\f[CB];\,\f[I]e\/\f[CB])\f[R]
886 as the default scaling indicator.
893 For details see the groff info file.
896 .\" --------------------------------------------------------------------
898 .\" --------------------------------------------------------------------
901 occur in tests raised by the
908 The following table characterizes the different types of conditions.
917 A numerical expression
919 yields true if its value is greater than\~0.
928 .BI \[aq] s1 \[aq] s2 \[aq]
931 is identical to string\~\c
935 .BI !\[aq] s1 \[aq] s2 \[aq]
938 is not identical to string\~\c
944 True if there is a glyph\~\c
950 True if there is a string, macro, diversion, or request called
955 Current page number is even.
959 Current page number is odd.
963 True if there is a color called
973 True if there is a register named
983 True if there exists a font named
988 True if a style named
999 operator may only appear at the beginning of an expression,
1000 and negates the entire expression.
1001 This maintains bug-compatibility with AT&T
1005 .\" --------------------------------------------------------------------
1007 .\" --------------------------------------------------------------------
1009 This section provides a short reference for the predefined requests.
1011 In groff, request, macro, and string names can be arbitrarily long.
1013 No bracketing or marking of long names is needed.
1017 Most requests take one or more arguments.
1019 The arguments are separated by space characters (no tabs!); there is
1020 no inherent limit for their length or number.
1024 Some requests have optional arguments with a different behaviour.
1026 Not all of these details are outlined here.
1028 Refer to the groff info file and
1029 .BR groff_diff (@MAN7EXT@)
1034 In the following request specifications, most argument names were
1035 chosen to be descriptive.
1037 Only the following denotations need clarification.
1046 denotes a single character.
1050 a font either specified as a font name or a font number.
1054 all characters up to the end of the line or within
1061 is a numerical expression that evaluates to an integer value.
1065 is an arbitrary numerical expression, signed or unsigned.
1069 has three meanings depending on its sign, described below.
1076 If an expression defined as
1080 sign the resulting value of the expression is added to an already
1081 existing value inherent to the related request, e.g.\& adding to a number
1084 If the expression starts with a
1086 the value of the expression is subtracted from the request value.
1092 replaces the existing value directly.
1094 To assign a negative number either prepend\~0 or enclose the negative
1095 number in parentheses.
1098 .\" --------------------------------------------------------------------
1099 .SS "Request Short Reference"
1100 .\" --------------------------------------------------------------------
1106 Empty line, ignored.
1108 Useful for structuring documents.
1111 .REQ .\e\[dq] "anything"
1112 Complete line is a comment.
1118 on standard error, exit program.
1122 Begin line adjustment for output lines in current adjust mode.
1126 Start line adjustment in mode
1128 (\f[CI]c\/\f[]\f[CR]\|\^\[eq]\|l,r,c,b,n\f[]).
1131 .REQ .af "register c"
1136 (\f[CI]c\/\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
1139 .REQ .aln "alias register"
1140 Create alias name for
1144 .REQ .als "alias object"
1145 Create alias name for request, string, macro, or diversion
1157 .REQ .am "macro end"
1168 but with compatibility mode switched off during macro expansion.
1171 .REQ .am1 "macro end"
1174 but with compatibility mode switched off during macro expansion.
1178 Append to a macro whose name is contained in the string register
1185 .REQ .ami "macro end"
1186 Append to a macro indirectly.
1190 are string registers whose contents are interpolated for the macro name
1191 and the end macro, respectively.
1197 but with compatibility mode switched off during macro expansion.
1200 .REQ .ami1 "macro end"
1203 but with compatibility mode switched off during macro expansion.
1206 .REQ .as "stringvar anything"
1213 .REQ .as1 "stringvar anything"
1216 but with compatibility mode switched off during string expansion.
1219 .REQ .asciify "diversion"
1220 Unformat ASCII characters, spaces, and some escape sequences in
1225 Print a backtrace of the input on stderr.
1237 Embolden Special Font
1239 when current font is
1244 Unset the blank line macro.
1248 Set the blank line macro to
1253 End current diversion.
1259 omitting a partially filled line.
1263 End current diversion.
1267 Divert and append to
1269 omitting a partially filled line.
1273 Eject current page and begin new page.
1277 Eject current page; next page number
1286 Break and spread output line.
1292 Break out of a while loop.
1296 Reset no-break control character to
1297 .dquoted_char \[aq] .
1301 Set no-break control character to
1306 Reset control character to
1311 Set control character to
1316 Center the next input line.
1326 Copy contents of file
1328 unprocessed to stdout or to the diversion.
1331 .REQ .cflags "mode c1 c2 .\|.\|.\&"
1349 .REQ .char "c anything"
1357 Chop the last character off macro, string, or diversion
1361 .REQ .class "name c1 c2 .\|.\|.\&"
1362 Assign a set of characters, character ranges, or classes
1370 .REQ .close "stream"
1382 is zero disable colors, otherwise enable them.
1385 .REQ .composite "from to"
1390 while constructing a composite glyph name.
1394 Finish the current iteration of a while loop.
1398 Enable compatibility mode.
1404 is zero disable compatibility mode, otherwise enable it.
1408 Set constant character width mode for
1417 Continuous underline in nroff, like
1423 End current diversion.
1427 Divert and append to
1439 .REQ .de "macro end"
1450 but with compatibility mode switched off during macro expansion.
1453 .REQ .de1 "macro end"
1456 but with compatibility mode switched off during macro expansion.
1459 .REQ .defcolor "color scheme component"
1460 Define or redefine a color with name
1471 can be single components specified as fractions in the range 0 to 1
1472 (default scaling indicator\~\c
1473 .scaleindicator f ),
1474 as a string of two-digit hexadecimal color components with a leading
1476 or as a string of four-digit hexadecimal components with two leading
1480 can\[aq]t be redefined.
1484 Define or redefine a macro whose name is contained in the string register
1491 .REQ .dei "macro end"
1492 Define or redefine a macro indirectly.
1496 are string registers whose contents are interpolated for the macro name
1497 and the end macro, respectively.
1503 but with compatibility mode switched off during macro expansion.
1506 .REQ .dei1 "macro end"
1509 but with compatibility mode switched off during macro expansion.
1512 .REQ .device "anything"
1515 to the intermediate output as a device control function.
1518 .REQ .devicem "name"
1519 Write contents of macro or string
1521 uninterpreted to the intermediate output as a device control function.
1525 End current diversion.
1536 with compatibility mode disabled.
1539 .REQ .ds "stringvar anything"
1546 .REQ .ds1 "stringvar anything"
1549 but with compatibility mode switched off during string expansion.
1553 Set diversion trap to position
1555 (default scaling indicator\~\c
1556 .scaleindicator v ).
1560 Reset escape character to
1561 .squoted_char \[rs] .
1565 Set escape character to
1570 Restore escape character saved with
1575 Save current escape character.
1579 Else part for if-else (\c
1587 is run after the end of input.
1591 Turn off escape character mechanism.
1595 Switch to previous environment and pop it off the stack.
1599 Push down environment number or name
1601 to the stack and switch to it.
1605 Copy the contents of environment
1607 to the current environment.
1608 No pushing or popping.
1612 Exit from roff processing.
1616 Return to previous font family.
1620 Set the current font family to
1625 Disable field mechanism.
1629 Set field delimiter to\~\c
1631 and pad glyph to space.
1635 Set field delimiter to\~\c
1637 and pad glyph to\~\c
1641 .REQ .fchar "c anything"
1642 Define fallback character (or glyph)
1649 Set fill color to previous fill color.
1662 Flush output buffer.
1672 .REQ .fp "n internal external"
1673 Mount font with long
1681 .REQ .fschar "f c anything"
1682 Define fallback character (or glyph)
1690 .REQ .fspecial "font"
1691 Reset list of special fonts for
1696 .REQ .fspecial "font s1 s2 .\|.\|.\&"
1697 When the current font is
1707 Return to previous font.
1715 Change to font name or number
1722 .REQ .ftr "font1 font2"
1734 .REQ .fzoom "font zoom"
1737 (in multiples of 1/1000th).
1741 Set glyph color to previous glyph color.
1750 Remove additional hyphenation indicator character.
1754 Set up additional hyphenation indicator character\~\c
1758 .REQ .hcode "c1 code1 c2 code2 .\|.\|.\&"
1759 Set the hyphenation code of character
1771 Set the current hyphenation language to
1776 Set the maximum number of consecutive hyphenated lines to
1781 Read hyphenation patterns from
1786 Append hyphenation patterns from
1790 .REQ .hpfcode "a b c d .\|.\|.\&"
1791 Set input mapping for
1798 with exceptional hyphenation.
1802 Switch to hyphenation mode
1807 Set the hyphenation margin to
1809 (default scaling indicator\~\c
1810 .scaleindicator m ).
1814 Set the hyphenation space to
1818 .REQ .ie "cond anything"
1827 .REQ .if "cond anything"
1832 otherwise do nothing.
1848 Change to previous indentation value.
1852 Change indentation according to
1854 (default scaling indicator\~\c
1855 .scaleindicator m ).
1859 Set an input-line count trap for the next
1867 but count lines interrupted with
1873 Enable pairwise kerning.
1879 is zero, disable pairwise kerning, otherwise enable it.
1883 Remove leader repetition glyph.
1887 Set leader repetition glyph to\~\c
1891 .REQ .length "register anything"
1892 Write the length of the string
1899 Enable line-tabs mode (i.e., calculate tab positions relative to output
1906 is zero, disable line-tabs mode, otherwise enable it.
1910 Set input line number to
1915 Set input line number to
1927 Change to previous line length.
1931 Set line length according to
1934 .scalednumber 6.5 i ,
1935 default scaling indicator\~\c
1936 .scaleindicator m ).
1940 Unset the leading spaces macro.
1944 Set the leading spaces macro to
1949 Change to the previous value of additional intra-line skip.
1953 Set additional intra-line skip value to
1957 blank lines are inserted after each text output line.
1961 Length of title (default scaling indicator\~\c
1962 .scaleindicator m ).
1972 after each text line at actual distance from right margin.
1976 Set margin glyph to\~\c
1980 from right margin (default scaling indicator\~\c
1981 .scaleindicator m ).
1985 Mark current vertical position in
1994 is searched in the tmac directories.
1998 No output-line adjusting.
2002 Need a one-line vertical space.
2008 vertical space (default scaling indicator\~\c
2009 .scaleindicator v ).
2013 No filling or adjusting of output-lines.
2024 .REQ .nm "\[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP"
2025 In line number mode, set number, multiple, spacing, and indentation.
2029 Do not number next line.
2038 .REQ .nop "anything"
2043 .REQ .nr "register \[+-]N \fR[\fPM\fR]\fP"
2053 Make the built-in conditions
2061 Turn on no-space mode.
2065 Immediately jump to end of current file.
2069 Immediately continue processing with file
2073 .REQ .open "stream filename"
2076 for writing and associate the stream named
2081 .REQ .opena "stream filename"
2088 Output vertical distance that was saved by the
2093 .REQ .output "string"
2096 directly to intermediate output, allowing leading whitespace if
2100 (which is stripped off).
2104 Reset page number character to\~\c
2109 Page number character.
2113 Print the current environment and each defined environment
2124 Set page length to default
2125 .scalednumber 11 i .
2126 The current page length is stored in
2131 Change page length to
2133 (default scaling indicator\~\c
2134 .scaleindicator v ).
2138 Print macro names and sizes (number of blocks of 128 bytes).
2142 Print only total of sizes of macros (number of 128 bytes blocks).
2151 Print the names and contents of all currently defined number registers
2156 Change to previous page offset.
2158 The current page offset is available in
2168 Return to previous point size.
2175 .REQ .psbb "filename"
2176 Get the bounding box of a PostScript image
2181 This behaves like the
2183 request except that input comes from the standard output of
2188 Print the names and positions of all traps (not including input line
2189 traps and diversion traps) on stderr.
2193 Change to previous post-vertical line spacing.
2197 Change post-vertical line spacing according to
2199 (default scaling indicator\~\c
2200 .scaleindicator p ).
2203 .REQ .rchar "c1 c2 .\|.\|.\&"
2204 Remove the definitions of entities
2215 Return from a macro.
2218 .REQ .return "anything"
2219 Return twice, namely from the macro at the current level and from the macro
2223 .REQ .rfschar "f c1 c2 .\|.\|.\&"
2224 Remove the definitions of entities
2233 Right justify the next
2239 Remove request, macro, or string
2244 Rename request, macro, or string
2250 .REQ .rnn "reg1 reg2"
2263 Restore spacing; turn no-space mode off.
2269 to marked vertical place (default scaling indicator\~\c
2270 .scaleindicator v ).
2273 .REQ .schar "c anything"
2274 Define global fallback character (or glyph)\~\c
2281 Reset soft hyphen glyph to
2286 Set the soft hyphen glyph to\~\c
2291 In a macro, shift the arguments by
2296 .REQ .sizes "s1 s2 .\|.\|.\& sn \fB[0]\fP"
2297 Set available font sizes similar to the
2305 Include source file.
2309 Skip one line vertically.
2313 Space vertical distance
2315 up or down according to sign of
2317 (default scaling indicator\~\c
2318 .scaleindicator v ).
2322 Reset global list of special fonts to be empty.
2325 .REQ .special "s1 s2 .\|.\|.\&"
2329 etc.\& are special and are searched for glyphs not in the
2334 Toggle the spread warning on and off without changing its value.
2337 .REQ .spreadwarn "limit"
2338 Emit a warning if each space in an output line is widened by
2340 or more (default scaling indicator\~\c
2341 .scaleindicator m ).
2345 Set space glyph size to
2347 of the space width in the current font.
2351 Set space glyph size to
2353 and sentence space size set to
2355 of the space width in the current font.
2365 .REQ .substring "xx n1 n2"
2366 Replace the string named
2368 with the substring defined by the indices
2380 Save the vertical distance
2382 for later output with
2384 request (default scaling indicator\~\c
2385 .scaleindicator v ).
2388 .REQ .sy "command-line"
2394 Set tabs after every position that is a multiple of
2396 (default scaling indicator\~\c
2397 .scaleindicator m ).
2399 .REQ .ta "n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn"
2400 Set tabs at positions
2419 .\"Restore internally saved tab positions.
2423 .\"Save tab positions internally.
2427 Remove tab repetition glyph.
2430 Set tab repetition glyph to\~\c
2435 Temporary indent next line (default scaling indicator\~\c
2436 .scaleindicator m ).
2439 .REQ .tkf "font s1 n1 s2 n2"
2440 Enable track kerning for
2444 .REQ .tl "\f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]"
2454 .REQ .tm1 "anything"
2457 on stdout, allowing leading whitespace if
2461 (which is stripped off).
2464 .REQ .tmc "anything"
2467 without emitting a final newline.
2470 .REQ .tr "abcd.\|.\|.\&"
2481 .REQ .trf "filename"
2482 Transparently output the contents of file
2486 .REQ .trin "abcd.\|.\|.\&"
2487 This is the same as the
2489 request except that the
2491 request uses the character code (if any) before the character
2495 .REQ .trnt "abcd.\|.\|.\&"
2496 This is the same as the
2498 request except that the translations do not apply to text that is
2499 transparently throughput into a diversion with
2504 Make the built-in conditions
2512 Set underline font to
2514 (to be switched to by
2519 Underline (italicize in troff)
2524 .REQ .unformat "diversion"
2525 Unformat space characters and tabs in
2527 preserving font information.
2530 Enable vertical position traps if
2532 is non-zero, disable them otherwise.
2536 Change to previous vertical base line spacing.
2540 Set vertical base line spacing to
2542 (default scaling indicator\~\c
2543 .scaleindicator p ).
2547 Set warnings code to
2551 .REQ .warnscale "si"
2552 Set scaling indicator used in warnings to
2557 Remove (first) trap at position
2562 Set location trap; negative means from page bottom.
2565 .REQ .while "cond anything"
2573 .REQ .write "stream anything"
2580 .REQ .writec "stream anything"
2583 without emitting a final newline.
2586 .REQ .writem "stream xx"
2587 Write contents of macro or string
2596 Besides these standard groff requests, there might be further macro
2598 They can originate from a macro package (see
2599 .BR roff (@MAN7EXT@)
2600 for an overview) or from a preprocessor.
2604 Preprocessor macros are easy to be recognized.
2606 They enclose their code into a pair of characteristic macros.
2611 box, center, tab (@);
2614 preprocessor@start macro@ end macro
2624 soelim@\f[I]none@\f[I]none
2627 glilypond@.lilypond start@.lilypond stop
2628 gperl@.Perl start@.Perl stop
2629 gpinyin@.pinyin start@.pinyin stop
2634 Note that the \[oq]ideal\[cq] preprocessor is not available in groff yet.
2637 .\" --------------------------------------------------------------------
2638 .SH "ESCAPE SEQUENCES"
2639 .\" --------------------------------------------------------------------
2641 Escape sequences are in-line language elements usually introduced by a
2644 and followed by an escape name and sometimes by a required argument.
2646 Input processing is continued directly after the escaped character or
2647 the argument (without an intervening separation character).
2649 So there must be a way to determine the end of the escape name and the
2650 end of the argument.
2654 This is done by enclosing names (escape name and arguments consisting
2655 of a variable name) by a pair of brackets
2656 .BI \[lB] name \[rB]
2657 and constant arguments (number expressions and characters) by
2658 apostrophes (ASCII 0x27) like
2659 .BI \[cq] constant \[cq] \f[R].
2663 There are abbreviations for short names.
2665 Two-character escape names can be specified by an opening parenthesis
2670 without a closing counterpart.
2672 And all one-character names different from the special characters
2676 can even be specified without a marker, for example
2683 Constant arguments of length\~1 can omit the marker apostrophes, too,
2684 but there is no two-character analogue.
2688 While one-character escape sequences are mainly used for in-line
2689 functions and system related tasks, the two-letter names following the
2691 construct are glyphs predefined by the roff system; these are called
2692 \[oq]Special Characters\[cq] in the classical documentation.
2694 Escapes sequences of the form
2699 .\" --------------------------------------------------------------------
2700 .SS "Single-Character Escapes"
2701 .\" --------------------------------------------------------------------
2705 .\" --------- comments ---------
2711 Everything up to the end of the line is ignored.
2715 Everything up to and including the next newline is ignored.
2717 This is interpreted in copy mode.
2721 except that the terminating newline is ignored as well.
2723 .\" --------- strings ---------
2727 The string stored in the string variable with one-character name\~\c
2732 The string stored in the string variable with two-character name
2737 The string stored in the string variable with name
2739 (with arbitrary length).
2742 .ESC[] * "stringvar arg1 arg2 .\|.\|."
2743 The string stored in the string variable with arbitrarily long name
2751 .\" --------- macro arguments ---------
2755 The name by which the current macro was invoked.
2759 request can make a macro have more than one name.
2763 Macro or string argument with one-digit number\~\c
2765 in the range 1 to\~9.
2769 Macro or string argument with two-digit number
2775 Macro or string argument with number
2779 is a numerical expression evaluating to an integer \[>=]1.
2783 In a macro or string, the concatenation of all the arguments separated
2788 In a macro or string, the concatenation of all the arguments with each
2789 surrounded by double quotes, and separated by spaces.
2793 In a macro, the representation of all parameters as if they were an
2798 .\" --------- escaped characters ---------
2802 reduces to a single backslash; useful to delay its interpretation as
2803 escape character in copy mode.
2805 For a printable backslash, use
2809 to be independent from the current escape character.
2813 The acute accent \[aa]; same as
2815 Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
2819 The grave accent \[ga]; same as
2821 Unescaped: left quote, backquote (ASCII 0x60).
2825 The \- (minus) sign in the current font.
2831 the underline character.
2835 The same as a dot (\[oq].\[cq]). Necessary in nested macro
2836 definitions so that \[oq]\[rs]\[rs]..\[cq] expands to \[oq]..\[cq].
2840 Default optional hyphenation character.
2844 Transparent line indicator.
2848 In a diversion, this transparently embeds
2852 is read in copy mode.
2854 See also the escape sequences
2860 .\" --------- spacing ---------
2864 Unpaddable space size space glyph (no line break).
2872 1/6\ em narrow space glyph; zero width in nroff.
2876 1/12\ em half-narrow space glyph; zero width in nroff.
2880 Non-printable, zero-width glyph.
2886 except that it behaves like a glyph declared with the
2888 request to be transparent for the purposes of end-of-sentence
2893 Increases the width of the preceding glyph so that the spacing
2894 between that glyph and the following glyph is correct if
2895 the following glyph is a roman glyph.
2899 Modifies the spacing of the following glyph so that the spacing
2900 between that glyph and the preceding glyph is correct if the
2901 preceding glyph is a roman glyph.
2905 Unbreakable space that stretches like a normal inter-word space when a
2910 Inserts a zero-width break point (similar to
2912 but without a soft hyphen character).
2916 Ignored newline, for continuation lines.
2918 .\" --------- structuring ---------
2922 Begin conditional input.
2926 End conditional input.
2928 .\" --------- longer escape names ---------
2932 A glyph with two-character name
2935 .BR "Special Characters" .
2941 (of arbitrary length).
2944 .ESC[] "" "comp1 comp2 .\|.\|."
2945 A composite glyph with components
2950 .\" --------- alphabetical escapes ---------
2954 Non-interpreted leader character.
2960 is acceptable as a name of a string, macro, diversion, register,
2961 environment or font it expands to\~1, and to\~0 otherwise.
2964 .ESCq b abc.\|.\|.\&
2965 Bracket building function.
2971 is acceptable as a valid numeric expression it expands to\~1, and
2976 Interrupt text processing.
2984 but compatible to other roff versions.
2988 Forward (down) 1/2 em (1/2 line in nroff).
2992 Draw a graphical element defined by the characters in
2994 see the groff info file for details.
2998 Printable version of the current escape character.
3002 Equivalent to an escape character, but is not interpreted in copy mode.
3006 Change to font with one-character name or one-digit number\~\c
3011 Switch back to previous font.
3015 Change to font with two-character name or two-digit number
3020 Change to font with arbitrarily long name or number expression
3025 Switch back to previous font.
3029 Change to font family with one-character name\~\c
3034 Change to font family with two-character name
3039 Change to font family with arbitrarily long name
3044 Switch back to previous font family.
3048 Return format of register with one-character name\~\c
3056 Return format of register with two-character name
3064 Return format of register with arbitrarily long name
3072 Local horizontal motion; move right
3078 Set height of current font to
3083 Mark horizontal input place in one-character register\~\c
3088 Mark horizontal input place in two-character register
3093 Mark horizontal input place in register with arbitrarily long name
3098 Horizontal line drawing function (optionally using character
3103 Vertical line drawing function (optionally using character
3108 Change to color with one-character name\~\c
3113 Change to color with two-character name
3118 Change to color with arbitrarily long name
3123 Switch back to previous color.
3127 Change filling color for closed drawn objects to color with
3128 one-character name\~\c
3133 Change filling color for closed drawn objects to color with
3139 Change filling color for closed drawn objects to color with
3140 arbitrarily long name
3145 Switch to previous fill color.
3149 The numerical value stored in the register variable with the
3150 one-character name\~\c
3155 The numerical value stored in the register variable with the
3161 The numerical value stored in the register variable with arbitrarily
3167 Typeset the glyph with index\~\c
3169 in the current font.
3171 No special fonts are searched.
3173 Useful for adding (named) entities to a document using the
3175 request and friends.
3178 .ESCq o abc.\|.\|.\&
3187 Disable glyph output.
3189 Mainly for internal use.
3193 Enable glyph output.
3195 Mainly for internal use.
3199 Break and spread output line.
3203 Reverse 1\ em vertical motion (reverse line in nroff).
3206 .ESCq R "name\~\[+-]n"
3214 Set/increase/decrease the point size to/by
3218 is a one-digit number in the range 1 to\~9.
3228 Set/increase/decrease the point size to/by
3232 is a two-digit number \[>=]1.
3246 Set/increase/decrease the point size to/by
3262 Non-interpreted horizontal tab.
3266 Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
3270 Local vertical motion; move down
3276 The contents of the environment variable with one-character
3282 The contents of the environment variable with two-character name
3287 The contents of the environment variable with arbitrarily long name
3292 The width of the glyph sequence
3297 Extra line-space function (negative before, positive after).
3303 as device control function.
3307 Output string variable or macro with one-character name\~\c
3309 uninterpreted as device control function.
3313 Output string variable or macro with two-character name
3315 uninterpreted as device control function.
3319 Output string variable or macro with arbitrarily long name
3321 uninterpreted as device control function.
3327 with zero width (without spacing).
3333 and then restore the horizontal and vertical position;
3335 may not contain tabs or leaders.
3340 The escape sequences
3352 are interpreted in copy mode.
3356 Escape sequences starting with
3360 do not represent single character escape sequences, but introduce escape
3361 names with two or more characters.
3365 If a backslash is followed by a character that does not constitute a
3366 defined escape sequence, the backslash is silently ignored and the
3367 character maps to itself.
3370 .\" --------------------------------------------------------------------
3371 .SS "Special Characters"
3372 .\" --------------------------------------------------------------------
3374 [Note: \[oq]Special Characters\[cq] is a misnomer; those entities are
3375 (output) glyphs, not (input) characters.]
3379 Common special characters are predefined by escape sequences of the
3389 it is also possible to use the writing
3395 Some of these special characters exist in the usual font while most of
3396 them are only available in the special font.
3398 Below you can see a small selection of the most important glyphs; a
3399 complete list can be found in
3400 .BR groff_char (@MAN7EXT@).
3417 British pound sterling
3437 Single closing quote (right)
3461 Double quote (ASCII 34)
3486 Single opening quote (left)
3501 Printable backslash character
3558 .\" --------------------------------------------------------------------
3559 .SS "Unicode Characters"
3560 .\" --------------------------------------------------------------------
3562 There is the extended escape
3564 that allows to include all available Unicode characters into some
3575 is a hexadecimal number of 4 hex digits, such as
3589 is a hexadecimal number of 5 hex digits, such as
3591 for a Chinese looking character for
3592 .IR "CJK Compatibility Ideographs Supplement" ,
3598 Both hexadecimal collections mean the corresponding Unicode code for a
3603 .BI \e[u hex1 _ hex2 ]
3605 .BI \e[u hex1 _ hex2 _ hex3 ]
3610 are all Unicode hexadecimal codes (4 or 5 hex digits) that are used
3611 for overstriking, e.g.
3619 The availability of the Unicode characters depends on the used font.
3621 For text mode, the device
3623 is quite complete, for
3625 modes it might happen that some or many characters will not be
3628 Please check your fonts.
3631 .\" --------------------------------------------------------------------
3633 .\" --------------------------------------------------------------------
3635 Strings are defined by the
3637 request and can be retrieved by the
3643 Strings share their name space with macros.
3645 So strings and macros without arguments are roughly equivalent; it is
3646 possible to call a string like a macro and vice-versa, but this often
3647 leads to unpredictable results.
3649 The following string is the only one predefined in groff.
3653 The name of the current output device as specified by the
3655 command line option.
3658 .\" --------------------------------------------------------------------
3660 .\" --------------------------------------------------------------------
3662 Registers are variables that store a value.
3663 In groff, most registers store numerical values (see section
3664 .B NUMERICAL EXPRESSIONS
3665 above), but some can also hold a string value.
3669 Each register is given a name.
3670 Arbitrary registers can be defined and set with the
3676 The value stored in a register can be retrieved by the escape sequences
3682 Most useful are predefined registers.
3684 In the following the notation
3688 to make clear that we speak about registers.
3690 Please keep in mind that the
3692 decoration is not part of the register name.
3695 .\" --------------------------------------------------------------------
3696 .SS "Read-only Registers"
3697 .\" --------------------------------------------------------------------
3699 The following registers have predefined values that should not be
3700 modified by the user (usually, registers starting with a dot are
3703 Mostly, they provide information on the current settings or store
3704 results from request calls.
3717 Number of arguments in the current macro or string.
3721 Post-line extra line-space most recently utilized using
3730 is used; always\~1 in
3735 The emboldening offset while
3741 Within a macro, set to\~1 if macro called with the \[oq]normal\[cq]
3742 control character, and to\~0 otherwise.
3746 Current input line number.
3750 1\~if compatibility mode is in effect, 0\~otherwise.
3754 The depth of the last glyph added to the current environment.
3756 It is positive if the glyph extends below the baseline.
3760 The number of lines remaining to be centered, as set by the
3766 The height of the last glyph added to the current environment.
3768 It is positive if the glyph extends above the baseline.
3772 1\~if colors are enabled, 0\~otherwise.
3776 The skew of the last glyph added to the current environment.
3778 The skew of a glyph is how far to the right of the center of a glyph
3779 the center of an accent over that glyph should be placed.
3783 Current vertical place in current diversion; equal to
3788 The name or number of the current environment (string-valued).
3792 Current font number.
3796 The name of the current input file (string-valued).
3800 The current font family (string-valued).
3804 The current (internal) real font name (string-valued).
3808 The number of the next free font position.
3812 Always 1 in GNU troff.
3814 Macros should use it to test if running under groff.
3818 Text base-line high-water mark on current page or diversion.
3822 Available horizontal resolution in basic units.
3826 The current font height as set with
3831 The current hyphenation language as set by the
3837 The number of immediately preceding consecutive hyphenated lines.
3841 The maximum allowed number of consecutive hyphenated lines, as set by
3848 The current hyphenation flags (as set by the
3854 The current hyphenation margin (as set by the
3860 The current hyphenation space (as set by the
3866 Current indentation.
3870 The indentation that applies to the current output line.
3874 Positive if last output line contains
3879 The current adjustment mode.
3880 It can be stored and used to set adjustment.
3881 (n\ =\ 1, b\ =\ 1, l\ =\ 0, r\ =\ 5, c\ =\ 3).
3885 The current horizontal output position (relative to the current indentation).
3888 1\~if pairwise kerning is enabled, 0\~otherwise.
3892 Current line length.
3896 The current line spacing setting as set by
3901 The current ligature mode (as set by the
3907 The current line-tabs mode (as set by the
3913 The line length that applies to the current output line.
3917 The title length (as set by the
3923 The current drawing color (string-valued).
3927 The current background color (string-valued).
3931 Length of text portion on previous output line.
3935 The amount of space that was needed in the last
3937 request that caused a trap to be sprung.
3939 Useful in conjunction with
3944 1\~if in no-space mode, 0\~otherwise.
3948 Current page offset.
3952 The suppression nesting level (see
3957 Current page length.
3961 1\~if the current page is being printed, 0\~otherwise (as determined by the
3963 command line option).
3967 1\~during page ejection, 0\~otherwise.
3971 The number of the next page: either the value set by a
3973 request, or the number of the current page plus\ 1.
3977 The current point size in scaled points.
3981 The last-requested point size in scaled points.
3985 The current post-vertical line spacing.
3989 The number of unused number registers.
3990 Always 10000 in GNU troff.
3994 The number of lines to be right-justified as set by the
4000 Current point size as a decimal fraction.
4004 The slant of the current font as set with
4009 The last requested point size in points as a decimal fraction
4014 The value of the parameters set by the first argument of the
4020 The value of the parameters set by the second argument of the
4026 The current font style (string-valued).
4030 Vertical distance to the next trap.
4041 A string representation of the current tab settings suitable for use
4042 as an argument to the
4048 The amount of vertical space truncated by the most recently sprung
4049 vertical position trap, or, if the trap was sprung by a
4051 request, minus the amount of vertical motion produced by
4054 Useful in conjunction with the
4059 Equal to 1 in fill mode and 0 in no-fill mode.
4063 Equal to 1 in safer mode and 0 in unsafe mode.
4067 Current vertical line spacing.
4071 Available vertical resolution in basic units.
4075 1\~if vertical position traps are enabled, 0\~otherwise.
4079 Width of previous glyph.
4083 The sum of the number codes of the currently enabled warnings.
4087 The major version number.
4091 The minor version number.
4095 The revision number of groff.
4099 Name of current diversion.
4103 Zoom factor for current font (in multiples of 1/1000th; zero if no
4108 .\" --------------------------------------------------------------------
4109 .SS "Writable Registers"
4110 .\" --------------------------------------------------------------------
4112 The following registers can be read and written by the user.
4113 They have predefined default values, but these can be modified for
4114 customizing a document.
4121 Current page number.
4125 Current input line number.
4129 Character type (set by width function
4134 Maximal width of last completed diversion.
4138 Height of last completed diversion.
4142 Current day of week (1\(en7).
4146 Current day of month (1\(en31).
4150 The number of hours past midnight.
4152 Initialized at start-up.
4156 Current horizontal position at input line.
4160 Lower left x-coordinate (in PostScript units) of a given PostScript
4166 Lower left y-coordinate (in PostScript units) of a given PostScript
4176 The number of leading spaces of an input line.
4180 The horizontal space corresponding to the leading spaces of an input
4185 The number of minutes after the hour.
4187 Initialized at start-up.
4191 Current month (1\(en12).
4195 Vertical position of last printed text base-line.
4205 These four registers mark the top left and bottom right hand corners of a box
4206 which encompasses all written glyphs.
4207 They are reset to \-1 by
4216 but takes account of the heights and depths of glyphs.
4222 but takes account of the heights and depths of glyphs.
4226 Depth of string below base line (generated by width function
4231 The number of seconds after the minute.
4233 Initialized at start-up.
4237 Right skip width from the center of the last glyph in the
4243 If greater than 0, the maximum number of objects on the input stack.
4245 If \[<=]0 there is no limit, i.e., recursion can continue until virtual
4246 memory is exhausted.
4250 The amount of horizontal space (possibly negative) that should be
4251 added to the last glyph before a subscript (generated by width
4257 Height of string above base line (generated by width function
4262 The return value of the
4264 function executed by the last
4270 Upper right x-coordinate (in PostScript units) of a given PostScript
4276 Upper right y-coordinate (in PostScript units) of a given PostScript
4282 The current year (year 2000 compliant).
4286 Current year minus 1900.
4288 For Y2K compliance use
4295 .\" --------------------------------------------------------------------
4297 .\" --------------------------------------------------------------------
4301 language, the underlining was quite easy.
4305 this is much more difficult.
4308 .\" --------------------------------------------------------------------
4309 .SS Underlining with .ul
4310 .\" --------------------------------------------------------------------
4316 (see above) that can underline the next or further source lines in
4320 it produces only a font change into
4323 So this request is not really useful.
4326 .\" --------------------------------------------------------------------
4327 .SS Underlining with .UL from ms
4328 .\" --------------------------------------------------------------------
4330 In the \[oq]ms\[cq] macro package in tmac/s.tmac
4331 .BR groff_ms (@MAN7EXT@),
4335 But this works only in
4341 .\" --------------------------------------------------------------------
4342 .SS Underlining macro definitions
4343 .\" --------------------------------------------------------------------
4355 for writing a useful new macro, something like
4360 \&. ie n \[rs]\[rs]$1\[rs]f[I]\[rs]\[rs]$2\[rs]f[P]\[rs]\[rs]$3
4361 \&. el \[rs]\[rs]$1\[rs]Z\[aq]\[rs]\[rs]$2\[aq]\[rs]v\[aq].25m\[aq]\
4362 \[rs]D\[aq]l \[rs]w\[aq]\[rs]\[rs]$2\[aq]u 0\[aq]\[rs]v\[aq]-.25m\
4370 makes trouble, change the macro name
4372 into some 2-letter word, like
4375 Moreover change the font writing from
4381 .\" --------------------------------------------------------------------
4382 .SS Underlining without macro definitions
4383 .\" --------------------------------------------------------------------
4385 If one does not want to use macro definitions, e.g. when
4387 gets lost, use the following:
4394 \&.ie n \[rs]*[u1]\[rs]f[I]\[rs]*[u2]\[rs]f[P]\[rs]*[u3]
4395 \&.el \[rs]*[u1]\[rs]Z\[aq]\[rs]*[u2]\[aq]\[rs]v\[aq].25m\[aq]\[rs]D\
4396 \[aq]l \[rs]w\[aq]\[rs]*[u2]\[aq]u 0\[aq]\[rs]v\[aq]-.25m\[aq]\[rs]*[u3]
4402 it might be necessary to change the variable writing
4406 into the strange ancient writing
4414 Then these lines could look like
4420 \&.ie n \[rs]*[u1]\[rs]fI\[rs]*(u2\[rs]fP\[rs]*(u3
4421 \&.el \[rs]*(u1\[rs]Z\[aq]\[rs]*(u2\[aq]\[rs]v\[aq].25m'\[rs]D\[aq]l \
4422 \[rs]w\[aq]\[rs]*(u2\[aq]u 0\[aq]\[rs]v\[aq]-.25m\[aq]\[rs]*(u3
4428 The result looks like
4439 .\" --------------------------------------------------------------------
4440 .SS Underlining with Overstriking \ez and \e(ul
4441 .\" --------------------------------------------------------------------
4443 There is another possibility for underlining by using overstriking
4448 with zero width without spacing) and
4450 (underline character).
4452 This produces the underlining of 1 character, both in
4459 For example the underlining of a character say
4468 Longer words look then a bit strange, but a useful mode is to write
4469 each character into a whole own line.
4471 To underlines the 3 character part "tar" of the word "start":
4477 \[rs]z\[rs][ul]t\[rs]
4478 \[rs]z\[rs][ul]a\[rs]
4479 \[rs]z\[rs][ul]r\[rs]
4490 \[rs]z\[rs](ult\[rs]
4491 \[rs]z\[rs](ula\[rs]
4492 \[rs]z\[rs](ulr\[rs]
4499 The result looks like
4510 .\" --------------------------------------------------------------------
4512 .\" --------------------------------------------------------------------
4514 The differences of the groff language in comparison to classical troff
4518 .BR groff_diff (@MAN7EXT@).
4522 The groff system provides a compatibility mode, see
4523 .BR groff (@MAN1EXT@)
4524 on how to invoke this.
4527 .\" --------------------------------------------------------------------
4529 .\" --------------------------------------------------------------------
4532 .MT bug-groff@gnu.org
4533 groff bug mailing list
4535 Include a complete, self-contained example that will allow the bug to
4536 be reproduced, and say which version of groff you are using.
4539 .\" --------------------------------------------------------------------
4541 .\" --------------------------------------------------------------------
4543 The main source of information for the groff language is the
4548 Besides the gory details, it contains many examples.
4551 .BR groff (@MAN1EXT@)
4552 the usage of the groff program and pointers to the documentation and
4553 availability of the groff system.
4556 .BR groff_diff (@MAN7EXT@)
4557 the differences of the groff language as compared to classical roff.
4559 This is the authoritative document for the predefined language
4560 elements that are specific to groff.
4563 .BR groff_char (@MAN7EXT@)
4564 the predefined groff special characters (glyphs).
4567 .BR groff_font (@MAN5EXT@)
4568 the specification of fonts and the DESC file.
4571 .BR roff (@MAN7EXT@)
4572 the history of roff, the common parts shared by all roff systems, and
4573 pointers to further documentation.
4577 .UR http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz
4578 Nroff/\:Troff User\[aq]s Manual by Ossanna & Kernighan
4580 \[em] the bible for classical troff.
4583 .\" --------------------------------------------------------------------
4585 .\" --------------------------------------------------------------------
4587 .\" --------------------------------------------------------------------
4589 .\" --------------------------------------------------------------------
4595 .\" --------------------------------------------------------------------
4597 .\" --------------------------------------------------------------------
4599 .\" Local Variables: