2 .TH GROFF @MAN7EXT@ "@MDATE@" "groff @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 .\" ====================================================================
13 .\" Copyright (C) 2000-2018 Free Software Foundation, Inc.
15 .\" This file is part of groff, the GNU roff type-setting system.
17 .\" Permission is granted to copy, distribute and/or modify this
18 .\" document under the terms of the GNU Free Documentation License,
19 .\" Version 1.3 or any later version published by the Free Software
20 .\" Foundation; with no Invariant Sections, with no Front-Cover Texts,
21 .\" and with no Back-Cover Texts.
23 .\" A copy of the Free Documentation License is included as a file
24 .\" called FDL in the main directory of the groff source package.
27 .\" ====================================================================
29 .\" ====================================================================
32 .\" Save and disable compatibility mode (for, e.g., Solaris 10/11).
33 .do nr groff_7_C \n[.C]
37 .\" ====================================================================
38 .\" start of macro definitions
43 .\" ====================================================================
44 .\" .Text anything ...
46 .\" All arguments are printed as text.
52 .\" ========= command=line option =========
59 .\" ========= characters =========
62 . Text \[oq]\f[CB]\\$1\f[]\[cq]\\$2
65 . Text \[lq]\f[CB]\\$1\f[]\[rq]\\$2
67 .\" ========= requests =========
69 .\" synopsis of a request
75 . Text \f[CB]\\$1\~\f[]\f[I]\\$2\f[]
79 .\" reference of a request
84 .\" ========= numerical elements =========
86 .\" number with a trailing unit
88 . Text \\$1\^\f[CB]\\$2\f[]\\$3\f[R]
92 .\" representation of units within the text
94 . Text \f[CB]\\$1\f[]\\$2\f[R]
98 .\" representation of mathematical operators within the text
104 .\" ========= escape sequences =========
106 .\" ====================================================================
109 .\" Synopsis of an escape sequence, optionally with argument
110 .\" Args : 1 or 2; 'name' obligatory, 'arg' optional
111 .\" name : suitable name for an escape sequence (c, (xy, [long])
112 .\" arg : arbitrary word
113 .\" Result : prints \namearg, where 'name' is in CB, 'arg' in I
116 . Text "\f[CB]\e\\$1\,\f[I]\\$2\/\fR"
118 .\" ====================================================================
121 .\" Synopsis for escape sequence with a bracketed long argument
122 .\" Args : 2 obligatory
123 .\" name : suitable name for an escape sequence (c, (xy, [long])
124 .\" arg : arbitrary text
125 .\" Result : prints \name[arg], where 'name' is in CB, 'arg' in I
128 . Text "\f[CB]\e\\$1\[lB]\f[]\,\f[I]\\$2\/\f[]\f[CB]\[rB]\f[]"
130 .\" ====================================================================
133 .\" Synopsis for escape sequence with a bracketed long argument
134 .\" Args : 2 obligatory
135 .\" name : suitable name for an escape sequence (c, (xy, [long])
136 .\" arg : arbitrary text
137 .\" Result : prints \name'arg', where 'name' is in CB, 'arg' in I
140 . Text "\f[CB]\e\\$1\[cq]\f[]\,\f[I]\\$2\/\f[]\f[CB]\[cq]\f[]"
142 .\" ====================================================================
145 .\" Synopsis for escape sequence with a bracketed long argument
146 .\" Args : 1 obligatory
147 .\" arg : arbitrary text
148 .\" Result : prints '\?arg?', where the '?' are in CB, 'arg' in I
151 . Text "\f[CB]\e?\,\f[I]\\$1\/\f[CB]?\f[R]"
153 .\" ====================================================================
154 .\" .esc name [punct]
156 .\" Reference of an escape sequence (no args), possibly punctuation
157 .\" Args : 1 obligatory
158 .\" name : suitable name for an escape sequence (c, (xy, [long])
159 .\" punct : arbitrary
160 .\" Result : prints \name, where 'name' is in B, 'punct' in R
165 .\" ====================================================================
166 .\" .escarg name arg [punct]
168 .\" Reference of an escape sequence (no args)
169 .\" Args : 1 obligatory, 1 optional
170 .\" name : suitable name for an escape sequence (c, (xy, [long])
171 .\" arg : arbitrary word
172 .\" Result : prints \namearg, where
173 .\" 'name' is in B, 'arg' in I
176 . Text \f[B]\e\\$1\f[]\,\f[I]\\$2\/\f[]\\$3
178 .\" ====================================================================
179 .\" .esc[] name arg [punct]
181 .\" Reference for escape sequence with a bracketed long argument
182 .\" Args : 2 obligatory
183 .\" name : suitable name for an escape sequence (c, (xy, [long])
184 .\" arg : arbitrary text
185 .\" Result : prints \name[arg], where 'name' is in CB, 'arg' in CI
188 . Text \f[CB]\e\\$1\[lB]\f[]\,\f[CI]\\$2\/\f[]\f[CB]\[rB]\f[]\\$3
191 .\" ====================================================================
194 .\" Reference for escape sequence with a bracketed long argument
195 .\" Args : 2 obligatory
196 .\" name : suitable name for an escape sequence (c, (xy, [long])
197 .\" arg : arbitrary text
198 .\" Result : prints \name'arg', where 'name' is in CB, 'arg' in CI
201 . Text \f[CB]\e\\$1\[cq]\f[]\,\f[CI]\\$2\/\f[]\f[CB]\[cq]\f[]\\$3
204 .\" ========= strings =========
206 .\" synopsis for string, with \*[]
208 . Text \[rs]*[\f[CB]\\$1\f[]] \\$2
210 .\" synopsis for a long string
214 . Text \f[CB]\[rs]*\[lB]\\$1\[rB]\f[]\\$2
217 .\" ========= registers =========
219 .\" synopsis for registers, with \n[]
221 . Text \[rs]n[\f[CB]\\$1\f[]]
223 .\" reference of a register, without decoration
229 .\" end of macro definitions
232 .\" ====================================================================
234 .\" ====================================================================
241 and is the free implementation of the roff type-setting system.
245 for a survey and the background of the groff system.
249 This document provides only short descriptions of roff language
252 .IR "Groff: The GNU Implementation of troff" ,
253 by Trent A.\& Fisher and Werner Lemberg,
257 and is written in Texinfo.
259 You can browse it interactively with \[lq]info groff\[rq].
268 is compatible with the classical system and provides proper
276 could be used as synonyms.
280 slightly tends to refer more to the classical aspects, whereas
282 emphasizes the GNU extensions, and
284 is the general term for the language.
288 The general syntax for writing groff documents is relatively easy, but
289 writing extensions to the roff language can be a bit harder.
293 The roff language is line-oriented.
295 There are only two kinds of lines, control lines and text lines.
297 The control lines start with a control character, by default a period
300 .dquoted_char \[aq] ;
301 all other lines are text lines.
306 represent commands, optionally with arguments.
308 They have the following syntax.
310 The leading control character can be followed by a command name;
311 arguments, if any, are separated by spaces (but not tab characters)
312 from the command name and among themselves, for example,
315 .Text .command_name arg1 arg2
320 For indentation, any number of space or tab characters can be inserted
321 between the leading control character and the command name, but the
322 control character must be on the first position of the line.
327 represent the parts that is printed.
328 They can be modified by escape sequences, which are recognized by a
330 .squoted_char \[rs] .
331 These are in-line or even in-word formatting elements or functions.
333 Some of these take arguments separated by single quotes
334 .dquoted_char \[aq] ,
335 others are regulated by a length encoding introduced by an open
338 or enclosed in brackets
345 The roff language provides flexible instruments for writing language
346 extension, such as macros.
348 When interpreting macro definitions, the roff system enters a special
349 operating mode, called the
354 The copy mode behaviour can be quite tricky, but there are some rules
355 that ensure a safe usage.
358 Printable backslashes must be denoted as
362 represents the current escape character.
364 To get a backslash glyph, use
369 Double all backslashes.
371 Begin all text lines with the special non-spacing character
376 This does not produce the most efficient code, but it should work as a
379 For better strategies, see the
382 .BR groff_tmac (@MAN5EXT@).
386 Reading roff source files is easier, just reduce all double backslashes
387 to a single one in all macro definitions.
390 .\" ====================================================================
392 .\" ====================================================================
394 The roff language elements add formatting information to a text file.
396 The fundamental elements are predefined commands and variables that
397 make roff a full-blown programming language.
401 There are two kinds of roff commands, possibly with arguments.
403 are written on a line of their own starting with a dot
406 .dquoted_char \[aq] ,
409 are in-line functions and in-word formatting elements starting with a
411 .squoted_char \[rs] .
415 The user can define her own formatting commands using the
419 These commands are called
421 but they are used exactly like requests.
423 Macro packages are pre-defined sets of macros written in the groff
426 A user's possibilities to create escape sequences herself is very
427 limited, only special characters can be mapped.
431 The groff language provides several kinds of variables with
432 different interfaces.
434 There are pre-defined variables, but the user can define her own
440 variables store character sequences.
442 They are set with the
444 request and retrieved by the
448 Strings can have variables.
453 variables can store numerical values, numbers with a scale unit, and
454 occasionally string-like objects.
456 They are set with the
458 request and retrieved by the
465 allow the user to temporarily store global formatting parameters like
466 line length, font size, etc.\& for later reuse.
475 are identified either by a name or by an internal number.
477 The current font is chosen by the
483 Each device has special fonts, but the following fonts are available
486 is the standard font Roman.
496 and is available everywhere, but on text devices it is displayed as an
497 underlined Roman font.
499 For the graphical output devices, there exist constant-width pendants
505 On text devices, all glyphs have a constant width anyway.
510 are visual representation forms of
512 In groff, the distinction between those two elements is not always
513 obvious (and a full discussion is beyond the scope of this man page).
515 A first approximation is that glyphs have a specific size and
516 colour and are taken from a specific font; they can't be modified any
517 more \[en] characters are the input, and glyphs are the output.
519 As soon as an output line has been generated, it no longer contains
520 characters but glyphs.
522 In this man page, we use either \[oq]glyph\[cq] or
523 \[oq]character\[cq], whatever is more appropriate.
527 Moreover, there are some advanced roff elements.
531 stores (formatted) information into a macro for later usage.
533 .BR groff_tmac (@MAN5EXT@)
538 is a positional condition like a certain number of lines from page top
539 or in a diversion or in the input.
541 Some action can be prescribed to be run automatically when the
546 More detailed information and examples can be found in the
551 .\" ====================================================================
552 .SH "CONTROL CHARACTERS"
553 .\" ====================================================================
555 There is a small set of characters that have a special controlling
556 task in certain conditions.
560 A dot is only special at the beginning of a line or after the
561 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'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
677 They are subject to groff'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
771 scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
772 font \f[I]DESC\f[] file)
782 .B Numerical expressions
783 are combinations of the numerical values defined above with the
784 following arithmetical operators already defined in classical troff.
849 Grouping of expressions
853 Close current grouping
862 added the following operators for numerical expressions:
870 \f[I]e1\/\f[CB]>?\,\f[I]e2\f[R]
877 \f[I]e1\/\f[CB]<?\,\f[I]e2\f[R]
884 \f[CB](\,\f[I]c\/\f[CB];\,\f[I]e\/\f[CB])\f[R]
889 as the default scaling indicator.
901 .\" ====================================================================
903 .\" ====================================================================
906 occur in tests raised by the
915 The following table characterizes the different types of conditions.
924 A numerical expression
926 yields true if its value is greater than\~0.
935 .BI \[aq] s1 \[aq] s2 \[aq]
938 is identical to string\~\c
942 .BI !\[aq] s1 \[aq] s2 \[aq]
945 is not identical to string\~\c
951 True if there is a glyph\~\c
957 True if there is a string, macro, diversion, or request called
962 Current page number is even.
966 Current page number is odd.
970 True if there is a color called
980 True if there is a register named
990 True if there exists a font named
995 True if a style named
1006 operator may only appear at the beginning of an expression,
1007 and negates the entire expression.
1008 This maintains bug-compatibility with AT&T
1012 .\" ====================================================================
1014 .\" ====================================================================
1016 This section provides a short reference for the predefined requests.
1018 In groff, request, macro, and string names can be arbitrarily long.
1020 No bracketing or marking of long names is needed.
1024 Most requests take one or more arguments.
1026 The arguments are separated by space characters (no tabs!); there is
1027 no inherent limit for their length or number.
1031 Some requests have optional arguments with a different behaviour.
1033 Not all of these details are outlined here.
1038 .BR groff_diff (@MAN7EXT@)
1043 In the following request specifications, most argument names were
1044 chosen to be descriptive.
1046 Only the following denotations need clarification.
1055 denotes a single character.
1059 a font either specified as a font name or a font number.
1063 all characters up to the end of the line or within
1070 is a numerical expression that evaluates to an integer value.
1074 is an arbitrary numerical expression, signed or unsigned.
1078 has three meanings depending on its sign, described below.
1085 If an expression defined as
1089 sign the resulting value of the expression is added to an already
1090 existing value inherent to the related request, e.g.\& adding to a
1093 If the expression starts with a
1095 the value of the expression is subtracted from the request value.
1101 replaces the existing value directly.
1103 To assign a negative number either prepend\~0 or enclose the negative
1104 number in parentheses.
1107 .\" ====================================================================
1108 .SS "Request Short Reference"
1109 .\" ====================================================================
1115 Empty line, ignored.
1117 Useful for structuring documents.
1120 .REQ .\e\[dq] "anything"
1121 Complete line is a comment.
1127 on standard error, exit program.
1131 Begin line adjustment for output lines in current adjust mode.
1135 Start line adjustment in mode
1137 (\f[CI]c\/\f[]\f[CR]\|\^\[eq]\|l,r,c,b,n\f[]).
1140 .REQ .af "register c"
1145 (\f[CI]c\/\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
1148 .REQ .aln "alias register"
1149 Create alias name for
1153 .REQ .als "alias object"
1154 Create alias name for request, string, macro, or diversion
1166 .REQ .am "macro end"
1177 but with compatibility mode switched off during macro expansion.
1180 .REQ .am1 "macro end"
1183 but with compatibility mode switched off during macro expansion.
1187 Append to a macro whose name is contained in the string register
1194 .REQ .ami "macro end"
1195 Append to a macro indirectly.
1199 are string registers whose contents are interpolated for the macro name
1200 and the end macro, respectively.
1206 but with compatibility mode switched off during macro expansion.
1209 .REQ .ami1 "macro end"
1212 but with compatibility mode switched off during macro expansion.
1215 .REQ .as "stringvar anything"
1222 .REQ .as1 "stringvar anything"
1225 but with compatibility mode switched off during string expansion.
1228 .REQ .asciify "diversion"
1229 Unformat ASCII characters, spaces, and some escape sequences in
1234 Print a backtrace of the input on stderr.
1246 Embolden Special Font
1248 when current font is
1253 Unset the blank line macro.
1257 Set the blank line macro to
1262 End current diversion.
1268 omitting a partially filled line.
1272 End current diversion.
1276 Divert and append to
1278 omitting a partially filled line.
1282 Eject current page and begin new page.
1286 Eject current page; next page number
1295 Break output line; adjust if applicable.
1299 Break out of a while loop.
1303 Reset no-break control character to
1304 .dquoted_char \[aq] .
1308 Set no-break control character to
1313 Reset control character to
1318 Set control character to
1323 Center the next input line.
1333 Copy contents of file
1335 unprocessed to stdout or to the diversion.
1338 .REQ .cflags "mode c1 c2 \fR\&.\|.\|.\&\fP"
1356 .REQ .char "c anything"
1364 Chop the last character off macro, string, or diversion
1368 .REQ .class "name c1 c2 \fR\&.\|.\|.\&\fP"
1369 Assign a set of characters, character ranges, or classes
1377 .REQ .close "stream"
1389 is zero disable colors, otherwise enable them.
1392 .REQ .composite "from to"
1397 while constructing a composite glyph name.
1401 Finish the current iteration of a while loop.
1405 Enable compatibility mode.
1411 is zero disable compatibility mode, otherwise enable it.
1415 Set constant character width mode for
1424 Continuous underline in nroff, like
1430 End current diversion.
1434 Divert and append to
1446 .REQ .de "macro end"
1457 but with compatibility mode switched off during macro expansion.
1460 .REQ .de1 "macro end"
1463 but with compatibility mode switched off during macro expansion.
1466 .REQ .defcolor "color scheme component"
1467 Define or redefine a color with name
1478 can be single components specified as fractions in the range 0 to 1
1479 (default scaling indicator\~\c
1480 .scaleindicator f ),
1481 as a string of two-digit hexadecimal color components with a leading
1483 or as a string of four-digit hexadecimal components with two leading
1491 Define or redefine a macro whose name is contained in the string
1499 .REQ .dei "macro end"
1500 Define or redefine a macro indirectly.
1504 are string registers whose contents are interpolated for the macro name
1505 and the end macro, respectively.
1511 but with compatibility mode switched off during macro expansion.
1514 .REQ .dei1 "macro end"
1517 but with compatibility mode switched off during macro expansion.
1520 .REQ .device "anything"
1523 to the intermediate output as a device control function.
1526 .REQ .devicem "name"
1527 Write contents of macro or string
1529 uninterpreted to the intermediate output as a device control function.
1533 End current diversion.
1540 .BR groff_tmac (@MAN5EXT@)
1547 with compatibility mode disabled.
1550 .REQ .ds "stringvar anything"
1557 .REQ .ds1 "stringvar anything"
1560 but with compatibility mode switched off during string expansion.
1564 Set diversion trap to position
1566 (default scaling indicator\~\c
1567 .scaleindicator v ).
1571 Reset escape character to
1572 .squoted_char \[rs] .
1576 Set escape character to
1581 Restore escape character saved with
1587 Save current escape character.
1591 Else part for if-else (\c
1600 is run after the end of input.
1604 Turn off escape character mechanism.
1608 Switch to previous environment and pop it off the stack.
1612 Push down environment number or name
1614 to the stack and switch to it.
1618 Copy the contents of environment
1620 to the current environment.
1621 No pushing or popping.
1625 Exit from roff processing.
1629 Return to previous font family.
1633 Set the current font family to
1638 Disable field mechanism.
1642 Set field delimiter to\~\c
1644 and pad glyph to space.
1648 Set field delimiter to\~\c
1650 and pad glyph to\~\c
1654 .REQ .fchar "c anything"
1655 Define fallback character (or glyph)
1662 Set fill color to previous fill color.
1675 Flush output buffer.
1685 .REQ .fp "n internal external"
1686 Mount font with long
1694 .REQ .fschar "f c anything"
1695 Define fallback character (or glyph)
1703 .REQ .fspecial "font"
1704 Reset list of special fonts for
1709 .REQ .fspecial "font s1 s2 \fR\&.\|.\|.\&\fP"
1710 When the current font is
1720 Return to previous font.
1729 Change to font name or number
1736 .REQ .ftr "font1 font2"
1748 .REQ .fzoom "font zoom"
1751 (in multiples of 1/1000th).
1755 Set glyph color to previous glyph color.
1764 Remove additional hyphenation indicator character.
1768 Set up additional hyphenation indicator character\~\c
1772 .REQ .hcode "c1 code1 \fR[\fPc2 code2\fR]\fP \fR\&.\|.\|.\&\fP"
1773 Set the hyphenation code of character
1785 Set the current hyphenation language to
1790 Set the maximum number of consecutive hyphenated lines to
1795 Read hyphenation patterns from
1800 Append hyphenation patterns from
1804 .REQ .hpfcode "a b c d \fR\&.\|.\|.\&\fP"
1805 Set input mapping for
1813 with exceptional hyphenation.
1817 Switch to hyphenation mode
1822 Set the hyphenation margin to
1824 (default scaling indicator\~\c
1825 .scaleindicator m ).
1829 Set the hyphenation space to
1833 .REQ .ie "cond anything"
1843 .REQ .if "cond anything"
1848 otherwise do nothing.
1864 Change to previous indentation value.
1868 Change indentation according to
1870 (default scaling indicator\~\c
1871 .scaleindicator m ).
1875 Set an input-line count trap for the next
1883 but don't count lines interrupted with
1888 Enable pairwise kerning.
1894 is zero, disable pairwise kerning, otherwise enable it.
1898 Remove leader repetition glyph.
1902 Set leader repetition glyph to\~\c
1906 .REQ .length "register anything"
1907 Write the length of the string
1914 Enable line-tabs mode (i.e., calculate tab positions relative to output
1921 is zero, disable line-tabs mode, otherwise enable it.
1925 Set input line number to
1930 Set input line number to
1942 Change to previous line length.
1946 Set line length according to
1949 .scalednumber 6.5 i ,
1950 default scaling indicator\~\c
1951 .scaleindicator m ).
1955 Unset the leading spaces macro.
1959 Set the leading spaces macro to
1964 Change to the previous value of additional intra-line skip.
1968 Set additional intra-line skip value to
1972 blank lines are inserted after each text output line.
1976 Length of title (default scaling indicator\~\c
1977 .scaleindicator m ).
1987 after each text line at actual distance from right margin.
1991 Set margin glyph to\~\c
1995 from right margin (default scaling indicator\~\c
1996 .scaleindicator m ).
1999 .REQ .mk "\fR[\fPregister\fR]\fP"
2000 Mark current vertical position in
2002 or in an internal register used by
2012 is searched in the tmac directories.
2016 No output-line adjusting.
2020 Need a one-line vertical space.
2026 vertical space (default scaling indicator\~\c
2027 .scaleindicator v ).
2031 No filling or adjusting of output lines.
2042 .REQ .nm "\[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP"
2043 In line number mode, set number, multiple, spacing, and indentation.
2047 Do not number next line.
2056 .REQ .nop "anything"
2061 .REQ .nr "register \[+-]N \fR[\fPM\fR]\fP"
2071 Make the built-in conditions
2079 Turn on no-space mode.
2083 Immediately jump to end of current file.
2087 Immediately continue processing with file
2091 .REQ .open "stream filename"
2094 for writing and associate the stream named
2099 .REQ .opena "stream filename"
2106 Output vertical distance that was saved by the
2111 .REQ .output "string"
2114 directly to intermediate output, allowing leading whitespace if
2118 (which is stripped off).
2122 Reset page number character to\~\c
2127 Page number character.
2131 Print the current environment and each defined environment
2142 Set page length to default
2143 .scalednumber 11 i .
2144 The current page length is stored in
2150 Change page length to
2152 (default scaling indicator\~\c
2153 .scaleindicator v ).
2157 Print macro names and sizes (number of blocks of 128 bytes).
2161 Print only total of sizes of macros (number of 128 bytes blocks).
2170 Print the names and contents of all currently defined number registers
2175 Change to previous page offset.
2177 The current page offset is available in
2188 Return to previous point size.
2195 .REQ .psbb "filename"
2196 Get the bounding box of a PostScript image
2201 This behaves like the
2203 request except that input comes from the standard output of
2208 Print the names and positions of all traps (not including input line
2209 traps and diversion traps) on stderr.
2213 Change to previous post-vertical line spacing.
2217 Change post-vertical line spacing according to
2219 (default scaling indicator\~\c
2220 .scaleindicator p ).
2223 .REQ .rchar "c1 c2 \fR\&.\|.\|.\&\fP"
2224 Remove the definitions of entities
2235 Return from a macro.
2238 .REQ .return "anything"
2239 Return twice, namely from the macro at the current level and from the
2240 macro one level higher.
2243 .REQ .rfschar "f c1 c2 \fR\&.\|.\|.\&\fP"
2244 Remove the definitions of entities
2253 Right justify the next
2259 Remove request, macro, diversion, or string
2264 Rename request, macro, diversion, or string
2270 .REQ .rnn "reg1 reg2"
2283 Restore spacing; turn no-space mode off.
2289 to vertical position marked by
2291 on the current page.
2297 to specified distance from the top of the page (default scaling
2299 .scaleindicator v ).
2302 .REQ .schar "c anything"
2303 Define global fallback character (or glyph)\~\c
2310 Reset soft hyphen glyph to
2315 Set the soft hyphen glyph to\~\c
2320 In a macro, shift the arguments by
2325 .REQ .sizes "s1 s2 \fR\&.\|.\|.\&\fP s\fRn\fP \fR[\fB0\fP\fR]\fP"
2326 Set available font sizes similar to the
2334 Include source file.
2338 Skip one line vertically.
2342 Space vertical distance
2344 up or down according to sign of
2346 (default scaling indicator\~\c
2347 .scaleindicator v ).
2351 Reset global list of special fonts to be empty.
2354 .REQ .special "s1 s2 \fR\&.\|.\|.\&\fR"
2358 etc.\& are special and are searched for glyphs not in the
2363 Toggle the spread warning on and off without changing its value.
2366 .REQ .spreadwarn "limit"
2367 Emit a warning if each space in an output line is widened by
2369 or more (default scaling indicator\~\c
2370 .scaleindicator m ).
2374 Set space glyph size to
2376 of the space width in the current font.
2380 Set space glyph size to
2382 and sentence space size set to
2384 of the space width in the current font.
2394 .REQ .substring "xx n1 n2"
2395 Replace the string named
2397 with the substring defined by the indices
2409 Save the vertical distance
2411 for later output with
2413 request (default scaling indicator\~\c
2414 .scaleindicator v ).
2417 .REQ .sy "command-line"
2423 Set tabs after every position that is a multiple of
2425 (default scaling indicator\~\c
2426 .scaleindicator m ).
2428 .REQ .ta "n1 n2 \fR\&.\|.\|.\&\fP n\fRn\fP \f[CB]T\f[] r1 r2 \
2429 \fR\&.\|.\|.\&\fP r\fRn\fP"
2430 Set tabs at positions
2436 .IR n n+ m \[tmu] r n+ r1
2438 .IR n n+ m \[tmu] r n+ r n,
2441 increments from 0, 1, 2, \&.\|.\|.\& to infinity.
2445 .\"Restore internally saved tab positions.
2449 .\"Save tab positions internally.
2453 Remove tab repetition glyph.
2456 Set tab repetition glyph to\~\c
2461 Temporary indent next line (default scaling indicator\~\c
2462 .scaleindicator m ).
2465 .REQ .tkf "font s1 n1 s2 n2"
2466 Enable track kerning for
2470 .REQ .tl "\f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\
2481 .REQ .tm1 "anything"
2484 on stderr, allowing leading whitespace if
2488 (which is stripped off).
2491 .REQ .tmc "anything"
2494 without emitting a final newline.
2497 .REQ .tr "abcd\fR\&.\|.\|.\&\fP"
2508 .REQ .trf "filename"
2509 Transparently output the contents of file
2513 .REQ .trin "abcd\fR\&.\|.\|.\&\fP"
2514 This is the same as the
2516 request except that the
2518 request uses the character code (if any) before the character
2522 .REQ .trnt "abcd\fR\&.\|.\|.\&\fP"
2523 This is the same as the
2525 request except that the translations do not apply to text that is
2526 transparently throughput into a diversion with
2531 Make the built-in conditions
2539 Set underline font to
2541 (to be switched to by
2547 Underline (italicize in troff)
2552 .REQ .unformat "diversion"
2553 Unformat space characters and tabs in
2555 preserving font information.
2558 Enable vertical position traps if
2560 is non-zero, disable them otherwise.
2564 Change to previous vertical base line spacing.
2568 Set vertical base line spacing to
2570 (default scaling indicator\~\c
2571 .scaleindicator p ).
2575 Set warnings code to
2579 .REQ .warnscale "si"
2580 Set scaling indicator used in warnings to
2585 Remove (first) trap at position
2590 Set location trap; negative means from page bottom.
2593 .REQ .while "cond anything"
2601 .REQ .write "stream anything"
2608 .REQ .writec "stream anything"
2611 without emitting a final newline.
2614 .REQ .writem "stream xx"
2615 Write contents of macro or string
2624 Besides these standard groff requests, there might be further macro
2626 They can originate from a macro package (see
2627 .BR roff (@MAN7EXT@)
2628 for an overview) or from a preprocessor.
2632 Preprocessor macros are easy to recognize.
2634 They enclose their code between a pair of characteristic macros.
2639 box, center, tab (^);
2642 preprocessor^start macro^ end macro
2644 @g@chem^.cstart^.cend
2648 .\" Keep the .IF line below the @g@ideal line.
2653 @g@soelim^\f[I]none^\f[I]none
2656 glilypond^.lilypond start^.lilypond stop
2657 gperl^.Perl start^.Perl stop
2658 gpinyin^.pinyin start^.pinyin stop
2663 Note that the \[oq]@g@ideal\[cq] preprocessor is not available in groff
2667 .\" ====================================================================
2668 .SH "ESCAPE SEQUENCES"
2669 .\" ====================================================================
2671 Escape sequences are in-line language elements usually introduced by a
2674 and followed by an escape name and sometimes by a required argument.
2676 Input processing is continued directly after the escaped character or
2677 the argument (without an intervening separation character).
2679 So there must be a way to determine the end of the escape name and the
2680 end of the argument.
2684 This is done by enclosing names (escape name and arguments consisting
2685 of a variable name) by a pair of brackets
2686 .BI \[lB] name \[rB]
2687 and constant arguments (number expressions and characters) by
2688 apostrophes (ASCII 0x27) like
2689 .BI \[cq] constant \[cq] \f[R].
2693 There are abbreviations for short names.
2695 Two-character escape names can be specified by an opening parenthesis
2700 without a closing counterpart.
2702 And all one-character names different from the special characters
2706 can even be specified without a marker, for example
2713 Constant arguments of length\~1 can omit the marker apostrophes, too,
2714 but there is no two-character analogue.
2718 While one-character escape sequences are mainly used for in-line
2719 functions and system-related tasks, the two-letter names following the
2721 construct are glyphs predefined by the roff system; these are called
2722 \[oq]Special Characters\[cq] in the classical documentation.
2724 Escapes sequences of the form
2729 .\" ====================================================================
2730 .SS "Single-Character Escapes"
2731 .\" ====================================================================
2735 .\" ========= comments =========
2741 Everything up to the end of the line is ignored.
2745 Everything up to and including the next newline is ignored.
2747 This is interpreted in copy mode.
2751 except that the terminating newline is ignored as well.
2753 .\" ========= strings =========
2757 The string stored in the string variable with one-character name\~\c
2762 The string stored in the string variable with two-character name
2767 The string stored in the string variable with name
2769 (with arbitrary length).
2772 .ESC[] * "stringvar arg1 arg2 \fR\&.\|.\|.\fP"
2773 The string stored in the string variable with arbitrarily long name
2781 .\" ========= macro arguments =========
2785 The name by which the current macro was invoked.
2789 request can make a macro have more than one name.
2793 Macro or string argument with one-digit number\~\c
2795 in the range 1 to\~9.
2799 Macro or string argument with two-digit number
2805 Macro or string argument with number
2809 is a numerical expression evaluating to an integer \[>=]1.
2813 In a macro or string, the concatenation of all the arguments separated
2818 In a macro or string, the concatenation of all the arguments with each
2819 surrounded by double quotes, and separated by spaces.
2823 In a macro, the representation of all parameters as if they were an
2828 .\" ========= escaped characters =========
2832 reduces to a single backslash; useful to delay its interpretation as
2833 escape character in copy mode.
2835 For a printable backslash, use
2839 to be independent from the current escape character.
2843 The acute accent \[aa]; same as
2845 Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
2849 The grave accent \[ga]; same as
2851 Unescaped: left quote, backquote (ASCII 0x60).
2855 The \- (minus) sign in the current font.
2861 the underline character.
2865 The same as a dot (\[oq].\[cq]).
2866 Necessary in nested macro definitions so that \[oq]\[rs]\[rs]..\[cq]\&
2867 expands to \[oq]..\[cq].
2871 Default optional hyphenation character.
2875 Transparent line indicator.
2879 In a diversion, this transparently embeds
2883 is read in copy mode.
2885 See also the escape sequences
2891 .\" ========= spacing =========
2895 Unpaddable space size space glyph (no line break).
2903 1/6\ em narrow space glyph; zero width in nroff.
2907 1/12\ em half-narrow space glyph; zero width in nroff.
2911 Non-printable, zero-width glyph.
2917 except that it behaves like a glyph declared with the
2919 request to be transparent for the purposes of end-of-sentence
2924 Increases the width of the preceding glyph so that the spacing
2925 between that glyph and the following glyph is correct if
2926 the following glyph is a roman glyph.
2930 Modifies the spacing of the following glyph so that the spacing
2931 between that glyph and the preceding glyph is correct if the
2932 preceding glyph is a roman glyph.
2936 Unbreakable space that stretches like a normal inter-word space when a
2941 Inserts a zero-width break point (similar to
2943 but without a soft hyphen character).
2947 Ignored newline, for continuation lines.
2949 .\" ========= structuring =========
2953 Begin conditional input.
2957 End conditional input.
2959 .\" ========= longer escape names =========
2963 A glyph with two-character name
2965 see section \[lq]Special Characters\[rq] below.
2971 (of arbitrary length).
2974 .ESC[] "" "comp1 comp2 \fR\&.\|.\|.\&\fP"
2975 A composite glyph with components
2980 .\" ========= alphabetical escapes =========
2984 Non-interpreted leader character.
2990 is acceptable as a name of a string, macro, diversion, register,
2991 environment or font it expands to\~1, and to\~0 otherwise.
2994 .ESCq b abc\fR\&.\|.\|.\&\fP
2995 Bracket building function.
3001 is acceptable as a valid numeric expression it expands to\~1, and
3006 Continue output line at next input line.
3007 Anything after this escape on the same line is ignored except
3009 (which works as usual).
3012 on the same line is appended to the current partial output line.
3013 The next non-command line after a line interrupted with
3015 counts as a new input line.
3023 but compatible to other roff versions.
3027 Forward (down) 1/2 em (1/2 line in nroff).
3031 Draw a graphical element defined by the characters in
3035 Texinfo manual for details.
3039 Printable version of the current escape character.
3043 Equivalent to an escape character, but is not interpreted in copy mode.
3047 Change to font with one-character name or one-digit number\~\c
3052 Switch back to previous font.
3056 Change to font with two-character name or two-digit number
3061 Change to font with arbitrarily long name or number expression
3066 Switch back to previous font.
3070 Change to font family with one-character name\~\c
3075 Change to font family with two-character name
3080 Change to font family with arbitrarily long name
3085 Switch back to previous font family.
3089 Return format of register with one-character name\~\c
3097 Return format of register with two-character name
3105 Return format of register with arbitrarily long name
3113 Local horizontal motion; move right
3119 Set height of current font to
3124 Mark horizontal input place in one-character register\~\c
3129 Mark horizontal input place in two-character register
3134 Mark horizontal input place in register with arbitrarily long name
3139 Horizontal line drawing function (optionally using character
3144 Vertical line drawing function (optionally using character
3149 Change to color with one-character name\~\c
3154 Change to color with two-character name
3159 Change to color with arbitrarily long name
3164 Switch back to previous color.
3168 Change filling color for closed drawn objects to color with
3169 one-character name\~\c
3174 Change filling color for closed drawn objects to color with
3180 Change filling color for closed drawn objects to color with
3181 arbitrarily long name
3186 Switch to previous fill color.
3190 The numerical value stored in the register variable with the
3191 one-character name\~\c
3196 The numerical value stored in the register variable with the
3202 The numerical value stored in the register variable with arbitrarily
3208 Typeset the glyph with index\~\c
3210 in the current font.
3212 No special fonts are searched.
3214 Useful for adding (named) entities to a document using the
3216 request and friends.
3219 .ESCq o abc\fR\&.\|.\|.\&\fP
3228 Disable glyph output.
3230 Mainly for internal use.
3234 Enable glyph output.
3236 Mainly for internal use.
3240 Break output line at next word boundary; adjust if applicable.
3244 Reverse 1\ em vertical motion (reverse line in nroff).
3247 .ESCq R "name\~\[+-]n"
3255 Set/increase/decrease the point size to/by
3259 is a one-digit number in the range 1 to\~9.
3269 Set/increase/decrease the point size to/by
3273 is a two-digit number \[>=]1.
3287 Set/increase/decrease the point size to/by
3303 Non-interpreted horizontal tab.
3307 Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
3311 Local vertical motion; move down
3317 The contents of the environment variable with one-character
3323 The contents of the environment variable with two-character name
3328 The contents of the environment variable with arbitrarily long name
3333 The width of the glyph sequence
3338 Extra line-space function (negative before, positive after).
3344 as device control function.
3348 Output string variable or macro with one-character name\~\c
3350 uninterpreted as device control function.
3354 Output string variable or macro with two-character name
3356 uninterpreted as device control function.
3360 Output string variable or macro with arbitrarily long name
3362 uninterpreted as device control function.
3368 with zero width (without spacing).
3374 and then restore the horizontal and vertical position;
3376 may not contain tabs or leaders.
3381 The escape sequences
3393 are interpreted in copy mode.
3397 Escape sequences starting with
3401 do not represent single character escape sequences, but introduce escape
3402 names with two or more characters.
3406 If a backslash is followed by a character that does not constitute a
3407 defined escape sequence, the backslash is silently ignored and the
3408 character maps to itself.
3411 .\" ====================================================================
3412 .SS "Special Characters"
3413 .\" ====================================================================
3415 [Note: \[oq]Special Characters\[cq] is a misnomer; those entities are
3416 (output) glyphs, not (input) characters.]
3420 Common special characters are predefined by escape sequences of the
3430 it is also possible to use the writing
3436 Some of these special characters exist in the usual font while most of
3437 them are only available in the special font.
3439 Below you can see a small selection of the most important glyphs; a
3440 complete list can be found in
3441 .BR groff_char (@MAN7EXT@).
3458 British pound sterling
3478 Single closing quote (right)
3502 Double quote (ASCII 34)
3527 Single opening quote (left)
3542 Printable backslash character
3599 .\" ====================================================================
3600 .SS "Unicode Characters"
3601 .\" ====================================================================
3605 allows the inclusion of all available Unicode characters into a
3616 is a hexadecimal number of four hex digits, such as
3630 is a hexadecimal number of five hex digits, such as
3632 for a Chinese-looking character from the Unicode block
3633 .IR "CJK Compatibility Ideographs Supplement" ,
3639 The hexadecimal value indicates the corresponding Unicode code point for
3644 .BI \e[u hex1 _ hex2 ]
3646 .BI \e[u hex1 _ hex2 _ hex3 ]
3651 are all Unicode hexadecimal codes (4 or 5 hex digits) that are used
3652 for overstriking, e.g.\&
3656 which can also be specified as
3663 The availability of the Unicode characters depends on the font used.
3665 For text mode, the device
3667 is quite complete; for
3669 modes it might happen that some or many characters will not be
3672 Please check your fonts.
3675 .\" ====================================================================
3677 .\" ====================================================================
3679 Strings are defined by the
3681 request and can be retrieved by the
3687 Strings share their name space with macros.
3689 So strings and macros without arguments are roughly equivalent; it is
3690 possible to call a string like a macro and vice versa, but this often
3691 leads to unpredictable results.
3693 The following string is the only one predefined in groff.
3697 The name of the current output device as specified by the
3699 command-line option.
3702 .\" ====================================================================
3704 .\" ====================================================================
3706 Registers are variables that store a value.
3709 most registers store numerical values
3710 (see section \[lq]Numerical Expressions\[rq] above),
3711 but some can also hold a string value.
3715 Each register is given a name.
3716 Arbitrary registers can be defined and set with the
3722 The value stored in a register can be retrieved by the escape sequences
3728 Most useful are predefined registers.
3730 In the following the notation
3734 to make clear that we speak about registers.
3736 Please keep in mind that the
3738 decoration is not part of the register name.
3741 .\" ====================================================================
3742 .SS "Read-only Registers"
3743 .\" ====================================================================
3745 The following registers have predefined values that should not be
3746 modified by the user (usually, registers starting with a dot are
3749 Mostly, they provide information on the current settings or store
3750 results from request calls.
3763 Number of arguments in the current macro or string.
3767 Post-line extra line-space most recently utilized using
3776 is used; always\~1 in
3781 The emboldening offset while
3787 Within a macro, set to\~1 if macro called with the \[oq]normal\[cq]
3788 control character, and to\~0 otherwise.
3792 Current input line number.
3796 1\~if compatibility mode is in effect, 0\~otherwise.
3800 The depth of the last glyph added to the current environment.
3802 It is positive if the glyph extends below the baseline.
3806 The number of lines remaining to be centered, as set by the
3812 The height of the last glyph added to the current environment.
3814 It is positive if the glyph extends above the baseline.
3818 1\~if colors are enabled, 0\~otherwise.
3822 The skew of the last glyph added to the current environment.
3824 The skew of a glyph is how far to the right of the center of a glyph
3825 the center of an accent over that glyph should be placed.
3829 Current vertical place in current diversion; equal to
3835 The name or number of the current environment (string-valued).
3839 Current font number.
3843 The name of the current input file (string-valued).
3847 The current font family (string-valued).
3851 The current (internal) real font name (string-valued).
3855 The number of the next free font position.
3859 Always 1 in GNU troff.
3861 Macros should use it to test if running under groff.
3865 Text base-line high-water mark on current page or diversion.
3869 Number of basic units per horizontal unit of output device resolution.
3873 The current font height as set with
3879 The current hyphenation language as set by the
3885 The number of immediately preceding consecutive hyphenated lines.
3889 The maximum allowed number of consecutive hyphenated lines, as set by
3896 The current hyphenation flags (as set by the
3902 The current hyphenation margin (as set by the
3908 The current hyphenation space (as set by the
3914 Current indentation.
3918 The indentation that applies to the current output line.
3922 Positive if last output line contains
3927 The current adjustment mode.
3928 It can be stored and used to set adjustment.
3929 (n\ =\ 1, b\ =\ 1, l\ =\ 0, r\ =\ 5, c\ =\ 3).
3933 The current horizontal output position (relative to the current
3937 1\~if pairwise kerning is enabled, 0\~otherwise.
3941 Current line length.
3945 The current line spacing setting as set by
3951 The current ligature mode (as set by the
3957 The current line-tabs mode (as set by the
3963 The line length that applies to the current output line.
3967 The title length (as set by the
3973 The current drawing color (string-valued).
3977 The current background color (string-valued).
3981 Length of text portion on previous output line.
3985 The amount of space that was needed in the last
3987 request that caused a trap to be sprung.
3989 Useful in conjunction with
3995 1\~if in no-space mode, 0\~otherwise.
3999 Current page offset.
4003 The suppression nesting level (see
4008 Current page length.
4012 1\~if the current page is being printed, 0\~otherwise (as determined by
4015 command-line option).
4019 1\~during page ejection, 0\~otherwise.
4023 The number of the next page: either the value set by a
4025 request, or the number of the current page plus\ 1.
4029 The current point size in scaled points.
4033 The last-requested point size in scaled points.
4037 The current post-vertical line spacing.
4041 The number of unused number registers.
4042 Always 10000 in GNU troff.
4046 The number of lines to be right-justified as set by the
4052 Current point size as a decimal fraction.
4056 The slant of the current font as set with
4062 The last requested point size in points as a decimal fraction
4067 The value of the parameters set by the first argument of the
4073 The value of the parameters set by the second argument of the
4079 The current font style (string-valued).
4083 Vertical distance to the next trap.
4094 A string representation of the current tab settings suitable for use
4095 as an argument to the
4101 The amount of vertical space truncated by the most recently sprung
4102 vertical position trap, or, if the trap was sprung by an
4104 request, minus the amount of vertical motion produced by
4108 Useful in conjunction with the
4114 Equal to 1 in fill mode and 0 in no-fill mode.
4118 Equal to 1 in safer mode and 0 in unsafe mode.
4122 Current vertical line spacing.
4126 Number of basic units per vertical unit of output device resolution.
4130 1\~if vertical position traps are enabled, 0\~otherwise.
4134 Width of previous glyph.
4138 The sum of the number codes of the currently enabled warnings.
4142 The major version number.
4146 The minor version number.
4150 The revision number of groff.
4154 Name of current diversion.
4158 Zoom factor for current font (in multiples of 1/1000th; zero if no
4163 .\" ====================================================================
4164 .SS "Writable Registers"
4165 .\" ====================================================================
4167 The following registers can be read and written by the user.
4168 They have predefined default values, but these can be modified for
4169 customizing a document.
4176 Current page number.
4180 Current input line number.
4184 Character type (set by width function
4189 Maximal width of last completed diversion.
4193 Height of last completed diversion.
4197 Current day of week (1\(en7).
4201 Current day of month (1\(en31).
4205 The number of hours past midnight.
4207 Initialized at start-up.
4211 Current horizontal position at input line.
4215 Lower left x-coordinate (in PostScript units) of a given PostScript
4222 Lower left y-coordinate (in PostScript units) of a given PostScript
4233 The number of leading spaces of an input line.
4237 The horizontal space corresponding to the leading spaces of an input
4242 The number of minutes after the hour.
4244 Initialized at start-up.
4248 Current month (1\(en12).
4252 Vertical position of last printed text base-line.
4262 These four registers mark the top left and bottom right hand corners of
4263 a box which encompasses all written glyphs.
4264 They are reset to \-1 by
4274 but takes account of the heights and depths of glyphs.
4281 but takes account of the heights and depths of glyphs.
4285 Depth of string below base line (generated by width function
4290 The number of seconds after the minute.
4292 Initialized at start-up.
4296 Right skip width from the center of the last glyph in the
4302 If greater than 0, the maximum number of objects on the input stack.
4304 If \[<=]0 there is no limit, i.e., recursion can continue until virtual
4305 memory is exhausted.
4309 The amount of horizontal space (possibly negative) that should be
4310 added to the last glyph before a subscript (generated by width
4316 Height of string above base line (generated by width function
4321 The return value of the
4323 function executed by the last
4329 Upper right x-coordinate (in PostScript units) of a given PostScript
4336 Upper right y-coordinate (in PostScript units) of a given PostScript
4343 The current year (year 2000 compliant).
4347 Current year minus 1900.
4349 For Y2K compliance use
4356 .\" ====================================================================
4358 .\" ====================================================================
4363 given an integer argument,
4364 controls when hyphenation applies.
4366 The default value is
4368 which enables hyphenation almost everywhere (see below).
4370 Macro packages often override this default.
4375 disables hyphenation only after the first and before the last
4376 character of a word.
4380 disables hyphenation only of the last word on a page or column.
4384 disables hyphenation only before the last two characters of a word.
4388 disables hyphenation only after the first two characters of a word.
4392 enables hyphenation before the last character of a word.
4396 enables hyphenation after the first character of a word.
4399 The values are additive.
4401 Some values cannot be used together because they contradict;
4407 .\" ====================================================================
4409 .\" ====================================================================
4413 language, the underlining was quite easy.
4417 this is much more difficult.
4420 .\" ====================================================================
4421 .SS Underlining with .ul
4422 .\" ====================================================================
4428 (see above) that can underline the next or further source lines in
4432 it produces only a font change into
4435 So this request is not really useful.
4438 .\" ====================================================================
4439 .SS Underlining with .UL from ms
4440 .\" ====================================================================
4442 In the \[oq]ms\[cq] macro package in tmac/s.tmac
4443 .BR groff_ms (@MAN7EXT@),
4447 But this works only in
4453 .\" ====================================================================
4454 .SS Underlining macro definitions
4455 .\" ====================================================================
4467 for writing a useful new macro, something like
4472 \&. ie n \[rs]\[rs]$1\[rs]f[I]\[rs]\[rs]$2\[rs]f[P]\[rs]\[rs]$3
4473 \&. el \[rs]\[rs]$1\[rs]Z\[aq]\[rs]\[rs]$2\[aq]\[rs]v\[aq].25m\[aq]\
4474 \[rs]D\[aq]l \[rs]w\[aq]\[rs]\[rs]$2\[aq]u 0\[aq]\[rs]v\[aq]\-.25m\
4482 makes trouble, change the macro name
4484 into some 2-letter word, like
4487 Moreover change the font writing from
4493 .\" ====================================================================
4494 .SS Underlining without macro definitions
4495 .\" ====================================================================
4497 If one does not want to use macro definitions, e.g., when
4499 gets lost, use the following:
4506 \&.ie n \[rs]*[u1]\[rs]f[I]\[rs]*[u2]\[rs]f[P]\[rs]*[u3]
4507 \&.el \[rs]*[u1]\[rs]Z\[aq]\[rs]*[u2]\[aq]\[rs]v\[aq].25m\[aq]\[rs]D\
4508 \[aq]l \[rs]w\[aq]\[rs]*[u2]\[aq]u 0\[aq]\[rs]v\[aq]\-.25m\[aq]\[rs]*\
4515 it might be necessary to change the variable writing
4519 into the strange ancient writing
4527 Then these lines could look like
4533 \&.ie n \[rs]*[u1]\[rs]fI\[rs]*(u2\[rs]fP\[rs]*(u3
4534 \&.el \[rs]*(u1\[rs]Z\[aq]\[rs]*(u2\[aq]\[rs]v\[aq].25m'\[rs]D\[aq]l \
4535 \[rs]w\[aq]\[rs]*(u2\[aq]u 0\[aq]\[rs]v\[aq]\-.25m\[aq]\[rs]*(u3
4541 The result looks like
4552 .\" ====================================================================
4553 .SS Underlining with Overstriking \ez and \e(ul
4554 .\" ====================================================================
4556 There is another possibility for underlining by using overstriking
4561 with zero width without spacing) and
4563 (underline character).
4565 This produces the underlining of 1 character, both in
4572 For example the underlining of a character say
4581 Longer words look then a bit strange, but a useful mode is to write
4582 each character into a whole own line.
4584 To underlines the 3 character part "tar" of the word "start":
4590 \[rs]z\[rs][ul]t\[rs]
4591 \[rs]z\[rs][ul]a\[rs]
4592 \[rs]z\[rs][ul]r\[rs]
4603 \[rs]z\[rs](ult\[rs]
4604 \[rs]z\[rs](ula\[rs]
4605 \[rs]z\[rs](ulr\[rs]
4612 The result looks like
4623 .\" ====================================================================
4625 .\" ====================================================================
4627 The differences between the groff language and classical troff as
4631 .BR groff_diff (@MAN7EXT@).
4635 The groff system provides a compatibility mode, see
4636 .BR groff (@MAN1EXT@)
4637 on how to invoke this.
4640 .\" ====================================================================
4642 .\" ====================================================================
4643 This document was written by
4644 .MT groff\-bernd.warken\-72@\:web.de
4649 .\" ====================================================================
4651 .\" ====================================================================
4653 .IR "Groff: The GNU Implementation of troff" ,
4654 by Trent A.\& Fisher and Werner Lemberg,
4659 You can browse it interactively with \(lqinfo groff\(rq.
4661 Besides the gory details, it contains many examples.
4665 .BR groff (@MAN1EXT@)
4666 the usage of the groff program and pointers to the documentation and
4667 availability of the groff system.
4670 .BR groff_diff (@MAN7EXT@)
4671 describes the differences between the groff language and classical
4675 This is the authoritative document for the predefined language
4676 elements that are specific to groff.
4679 .BR groff_char (@MAN7EXT@)
4680 the predefined groff special characters (glyphs).
4683 .BR groff_font (@MAN5EXT@)
4684 the specification of fonts and the DESC file.
4687 .BR groff_tmac (@MAN5EXT@)
4688 contains an overview of available groff macro packages, instructions on
4689 how to interface them with a document, guidance on writing macro
4690 packages and using diversions, and historical information on macro
4691 package naming conventions.
4693 .BR roff (@MAN7EXT@)
4694 the history of roff, the common parts shared by all roff systems, and
4695 pointers to further documentation.
4699 .UR http://\:cm.bell\-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz
4700 Nroff/\:Troff User's Manual by Ossanna & Kernighan
4702 \[em] the bible for classical troff.
4708 .UR https://\:en.wikipedia.org/\:wiki/\:Groff_%28software%29
4712 .I Tutorial about groff
4713 .UR dl.dropbox.com/\:u/\:4299293/\:grofftut.pdf
4714 Manas Laha - An Introduction to the GNU Groff Text Processing System
4719 This is a collection of internet sites with classical
4721 documentations and other information.
4724 .\" Restore compatibility mode (for, e.g., Solaris 10/11).
4728 .\" ====================================================================
4730 .\" ====================================================================
4732 .\" Local Variables:
4736 .\" vim: set filetype=groff textwidth=72: