kernel - VM PAGER part 2/2 - Expand vinitvmio() and vnode_pager_alloc()
[dragonfly.git] / contrib / groff / man / groff.man
blobb5790b1e42cff0b8bf2fb768556171161917228c
1 '\" t
2 .ig
3 groff.man
5 This file is part of groff, the GNU roff type-setting system.
7 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
8               2009
9   Free Software Foundation, Inc.
10 written by Bernd Warken <bwarken@mayn.de>
11 maintained by Werner Lemberg <wl@gnu.org>
13 Permission is granted to copy, distribute and/or modify this document
14 under the terms of the GNU Free Documentation License, Version 1.3 or
15 any later version published by the Free Software Foundation; with the
16 Invariant Sections being this .ig-section and AUTHORS, with no
17 Front-Cover Texts, and with no Back-Cover Texts.
19 A copy of the Free Documentation License is included as a file called
20 FDL in the main directory of the groff source package.
23 .\" --------------------------------------------------------------------
24 .\" Setup
25 .\" --------------------------------------------------------------------
27 .do nr groff_C \n[.C]
28 .cp 0
30 .\" --------------------------------------------------------------------
31 .\" start of macro definitions
33 .de TPx
34 .  TP 10n
36 .\" ---------------------------------------------------------------------
37 .\" .Text anything ...
38 .\"
39 .\" All arguments are printed as text.
40 .\"
41 .de Text
42 .  nop \)\\$*
45 .\" --------- command line option ---------
47 .de option
48 .  Text \f[CB]\\$*
49 .  ft P
52 .\" --------- characters ---------
54 .de squoted_char
55 .  Text \[oq]\f[CB]\\$1\f[]\[cq]\\$2
57 .de dquoted_char
58 .  Text \[lq]\f[CB]\\$1\f[]\[rq]\\$2
60 .\" --------- requests ---------
62 .\" synopsis of a request
63 .de REQ
64 .  ie \n[.$]=1 \{\
65 .    Text \f[CB]\\$1\f[]
66 .  \}
67 .  el \{\
68 .    Text \f[CB]\\$1\~\f[]\f[I]\\$2\f[]
69 .  \}
72 .\" reference of a request
73 .de request
74 .  BR \\$*
77 .\" --------- numerical elements ---------
79 .\" number with a trailing unit
80 .de scalednumber
81 .  Text \\$1\^\f[CB]\\$2\f[]\\$3\f[R]
82 .  ft P
85 .\" representation of units within the text
86 .de scaleindicator
87 .  Text \f[CB]\\$1\f[]\\$2\f[R]
88 .  ft P
91 .\" representation of mathematical operators within the text
92 .de operator
93 .  squoted_char \\$@
97 .\" --------- escape sequences ---------
99 .\" ---------------------------------------------------------------------
100 .\" .ESC name [arg]
102 .\" Synopsis of an escape sequence, optionally with argument
103 .\" Args   : 1 or 2; `name' obligatory, `arg' optional
104 .\"   name : suitable name for an escape sequence (c, (xy, [long])
105 .\"   arg  : arbitrary word
106 .\" Result : prints \namearg, where `name' is in CB, `arg' in I
108 .de ESC
109 .  Text "\f[CB]\[rs]\\$1\,\f[I]\\$2\/\fR"
111 .\" ---------------------------------------------------------------------
112 .\" .ESC[] name arg
114 .\" Synopsis for escape sequence with a bracketed long argument
115 .\" Args   : 2 obligatory
116 .\"   name : suitable name for an escape sequence (c, (xy, [long])
117 .\"   arg  : arbitrary text
118 .\" Result : prints \name[arg], where `name' is in CB, `arg' in I
120 .de ESC[]
121 .  Text "\f[CB]\[rs]\\$1\[lB]\f[]\f[I]\\$2\f[]\f[CB]\[rB]\f[]"
123 .\" ---------------------------------------------------------------------
124 .\" .ESCq name arg
126 .\" Synopsis for escape sequence with a bracketed long argument
127 .\" Args   : 2 obligatory
128 .\"   name : suitable name for an escape sequence (c, (xy, [long])
129 .\"   arg  : arbitrary text
130 .\" Result : prints \name'arg', where `name' is in CB, `arg' in I
132 .de ESCq
133 .  Text "\f[CB]\[rs]\\$1\[cq]\f[]\f[I]\\$2\f[]\f[CB]\[cq]\f[]"
135 .\" ---------------------------------------------------------------------
136 .\" .ESC? arg
138 .\" Synopsis for escape sequence with a bracketed long argument
139 .\" Args   : 1 obligatory
140 .\"   arg  : arbitrary text
141 .\" Result : prints `\?arg?', where the `?' are in CB, `arg' in I
143 .de ESC?
144 .  Text "\f[CB]\[rs]?\f[I]\\$1\f[CB]?\f[R]"
146 .\" ---------------------------------------------------------------------
147 .\" .esc name [punct]
149 .\" Reference of an escape sequence (no args), possibly punctuation
150 .\" Args    : 1 obligatory
151 .\"   name  : suitable name for an escape sequence (c, (xy, [long])
152 .\"   punct : arbitrary
153 .\" Result  : prints \name, where `name' is in B, `punct' in R
155 .de esc
156 .  BR "\[rs]\\$1" \\$2
158 .\" ---------------------------------------------------------------------
159 .\" .escarg name arg [punct]
161 .\" Reference of an escape sequence (no args)
162 .\" Args    : 1 obligatory, 1 optional
163 .\"   name  : suitable name for an escape sequence (c, (xy, [long])
164 .\"   arg   : arbitrary word
165 .\" Result  : prints \namearg, where
166 .\"           `name' is in B, `arg' in I
168 .de escarg
169 .  Text \f[B]\[rs]\\$1\f[]\f[I]\\$2\f[]\\$3
171 .\" ---------------------------------------------------------------------
172 .\" .esc[] name arg [punct]
174 .\" Reference for escape sequence with a bracketed long argument
175 .\" Args   : 2 obligatory
176 .\"   name : suitable name for an escape sequence (c, (xy, [long])
177 .\"   arg  : arbitrary text
178 .\" Result : prints \name[arg], where `name' is in CB, `arg' in CI
180 .de esc[]
181 .  Text \f[B]\[rs]\\$1\[lB]\f[]\f[I]\\$2\f[]\f[B]\[rB]\f[]\\$3
184 .\" ---------------------------------------------------------------------
185 .\" .escq name arg
187 .\" Reference for escape sequence with a bracketed long argument
188 .\" Args   : 2 obligatory
189 .\"   name : suitable name for an escape sequence (c, (xy, [long])
190 .\"   arg  : arbitrary text
191 .\" Result : prints \name'arg', where `name' is in CB, `arg' in CI
193 .de escq
194 .  Text \f[B]\[rs]\\$1\[cq]\f[]\f[I]\\$2\f[]\f[B]\[cq]\f[]\\$3
197 .\" --------- strings ---------
199 .\" synopsis for string, with \*[]
200 .de STRING
201 .  Text \[rs]*[\f[CB]\\$1\f[]] \\$2
203 .\" synopsis for a long string
204 .de string
205 .  if \n[.$]=0 \
206 .    return
207 .  Text \f[CB]\[rs]*\[lB]\\$1\[rB]\f[]\\$2
210 .\" --------- registers ---------
212 .\" synopsis for registers, with \n[]
213 .de REG
214 .  Text \[rs]n[\f[CB]\\$1\f[]]
216 .\" reference of a register, without decoration
217 .de register
218 .  Text register
219 .  BR \\$*
222 .\" end of macro definitions
225 .\" --------------------------------------------------------------------
226 .\" Title
227 .\" --------------------------------------------------------------------
229 .TH GROFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
230 .SH NAME
231 groff \- a short reference for the GNU roff language
234 .\" --------------------------------------------------------------------
235 .SH DESCRIPTION
236 .\" --------------------------------------------------------------------
238 The name
239 .I groff
240 stands for
241 .I GNU roff
242 and is the free implementation of the roff type-setting system.
245 .BR roff (@MAN7EXT@)
246 for a survey and the background of the groff system.
249 This document gives only short descriptions of the predefined roff
250 language elements as used in groff.
252 Both the classical features and the groff extensions are provided.
255 Historically, the
256 .I roff language
257 was called
258 .IR troff .
259 .I groff
260 is compatible with the classical system and provides proper
261 extensions.
263 So in GNU, the terms
264 .IR roff ,
265 .IR troff ,
267 .I groff language
268 could be used as synonyms.
270 However
271 .I troff
272 slightly tends to refer more to the classical aspects, whereas
273 .I groff
274 emphasizes the GNU extensions, and
275 .I roff
276 is the general term for the language.
279 This file is only a short version of the complete documentation that
280 is found in the
281 .I groff
282 .BR info (1)
283 file, which contains more detailed, actual, and concise information.
286 The general syntax for writing groff documents is relatively easy, but
287 writing extensions to the roff language can be a bit harder.
290 The roff language is line-oriented.
292 There are only two kinds of lines, control lines and text lines.
294 The control lines start with a control character, by default a period
295 .dquoted_char .
296 or a single quote
297 .dquoted_char ' ;
298 all other lines are text lines.
301 .B Control lines
302 represent commands, optionally with arguments.
304 They have the following syntax.
306 The leading control character can be followed by a command name;
307 arguments, if any, are separated by spaces (but not tab characters)
308 from the command name and among themselves, for example,
312 .Text .command_name arg1 arg2
316 For indentation, any number of space or tab characters can be inserted
317 between the leading control character and the command name, but the
318 control character must be on the first position of the line.
321 .B Text lines
322 represent the parts that is printed.
323 They can be modified by escape sequences, which are recognized by a
324 leading backslash
325 .squoted_char \[rs] .
326 These are in-line or even in-word formatting elements or functions.
328 Some of these take arguments separated by single quotes
329 .dquoted_char ' ,
330 others are regulated by a length encoding introduced by an open
331 parenthesis
332 .squoted_char (
333 or enclosed in brackets
334 .squoted_char [
336 .squoted_char ] .
339 The roff language provides flexible instruments for writing language
340 extension, such as macros.
342 When interpreting macro definitions, the roff system enters a special
343 operating mode, called the
344 .BR "copy mode" .
347 The copy mode behavior can be quite tricky, but there are some rules
348 that ensure a safe usage.
350 .IP 1.
351 Printable backslashes must be denoted as
352 .esc e .
353 To be more precise,
354 .esc e
355 represents the current escape character.
357 To get a backslash glyph, use
358 .esc (rs
360 .esc [rs] .
361 .IP 2.
362 Double all backslashes.
363 .IP 3.
364 Begin all text lines with the special non-spacing character
365 .esc & .
368 This does not produce the most efficient code, but it should work as a
369 first measure.
371 For better strategies, see the groff info file and
372 .BR groff_tmac (@MAN5EXT@).
375 Reading roff source files is easier, just reduce all double backslashes
376 to a single one in all macro definitions.
379 .\" --------------------------------------------------------------------
380 .SH "GROFF ELEMENTS"
381 .\" --------------------------------------------------------------------
383 The roff language elements add formatting information to a text file.
385 The fundamental elements are predefined commands and variables that
386 make roff a full-blown programming language.
389 There are two kinds of roff commands, possibly with arguments.
390 .B Requests
391 are written on a line of their own starting with a dot
392 .squoted_char .
393 or a
394 .dquoted_char ' ,
395 whereas
396 .B Escape sequences
397 are in-line functions and in-word formatting elements starting with a
398 backslash
399 .squoted_char \[rs] .
402 The user can define her own formatting commands using the
403 .request de
404 request.
406 These commands are called
407 .BR macros ,
408 but they are used exactly like requests.
410 Macro packages are pre-defined sets of macros written in the groff
411 language.
413 A user's possibilities to create escape sequences herself is very
414 limited, only special characters can be mapped.
417 The groff language provides several kinds of variables with
418 different interfaces.
420 There are pre-defined variables, but the user can define her own
421 variables as well.
424 .B String
425 variables store character sequences.
427 They are set with the
428 .request ds
429 request and retrieved by the
430 .esc *
431 escape sequences.
433 Strings can have variables.
436 .B Register
437 variables can store numerical values, numbers with a scale unit, and
438 occasionally string-like objects.
440 They are set with the
441 .request nr
442 request and retrieved by the
443 .esc n
444 escape sequences.
447 .B Environments
448 allow the user to temporarily store global formatting parameters like
449 line length, font size, etc.\& for later reuse.
451 This is done by the
452 .request ev
453 request.
456 .B Fonts
457 are identified either by a name or by an internal number.
459 The current font is chosen by the
460 .request ft
461 request or by the
462 .esc f
463 escape sequences.
465 Each device has special fonts, but the following fonts are available
466 for all devices.
467 .B R
468 is the standard font Roman.
469 .B B
470 is its
471 .B bold
472 counterpart.
475 .I italic
476 font is called
477 .B I
478 and is available everywhere, but on text devices it is displayed as an
479 underlined Roman font.
481 For the graphical output devices, there exist constant-width pendants
482 of these fonts,
483 .BR CR ,
484 .BR CI ,
486 .BR CB .
487 On text devices, all glyphs have a constant width anyway.
490 .B Glyphs
491 are visual representation forms of
492 .BR characters .
493 In groff, the distinction between those two elements is not always
494 obvious (and a full discussion is beyond the scope of this man page).
496 A first approximation is that glyphs have a specific size and
497 colour and are taken from a specific font; they can't be modified any
498 more \[en] characters are the input, and glyphs are the output.
500 As soon as an output line has been generated, it no longer contains
501 characters but glyphs.
503 In this man page, we use either `glyph' or `character', whatever is
504 more appropriate.
507 Moreover, there are some advanced roff elements.
510 .B diversion
511 stores (formatted) information into a macro for later usage.
514 .B trap
515 is a positional condition like a certain number of lines from page top
516 or in a diversion or in the input.
518 Some action can be prescribed to be run automatically when the
519 condition is met.
522 More detailed information and examples can be found in the groff info
523 file.
526 .\" --------------------------------------------------------------------
527 .SH "CONTROL CHARACTERS"
528 .\" --------------------------------------------------------------------
530 There is a small set of characters that have a special controlling
531 task in certain conditions.
534 \&\f[CB].\f[]
535 A dot is only special at the beginning of a line or after the
536 condition in the requests
537 .request if ,
538 .request ie ,
539 .request el ,
541 .request while .
542 There it is the control character that introduces a request (or macro).
544 The special behavior can be delayed by using the
545 .esc .
546 escape.
548 By using the 
549 .request cc
550 request, the control character can be set to a different character,
551 making the dot
552 .squoted_char .
553 a non-special character.
554 .IP ""
555 In all other positions, it just means a dot character.
557 In text paragraphs, it is advantageous to start each sentence at a
558 line of its own.
561 \&\f[CB]'\f[]
562 The single quote has two controlling tasks.
564 At the beginning of a line and in the conditional requests it is the
565 non-breaking control character.
567 That means that it introduces a request like the dot, but with the
568 additional property that this request doesn't cause a linebreak.
570 By using the 
571 .request c2
572 request, the non-break control character can be set to a different
573 character.
575 .IP ""
576 As a second task, it is the most commonly used argument separator in
577 some functional escape sequences (but any pair of characters not part
578 of the argument do work).
580 In all other positions, it denotes the single quote or apostrophe
581 character.
583 Groff provides a printable representation with the
584 .esc (cq
585 escape sequence.
588 \&\f[CB]\[dq]\f[]
589 The double quote is used to enclose arguments in macros (but not in
590 requests and strings).
592 In the
593 .request ds
595 .request as
596 requests, a leading double quote in the argument is stripped off,
597 making everything else afterwards the string to be defined (enabling
598 leading whitespace).
600 The escaped double quote
601 .esc \[dq]
602 introduces a comment.
604 Otherwise, it is not special.
606 Groff provides a printable representation with the
607 .esc (dq
608 escape sequence.
611 \&\f[CB]\[rs]\f[]
612 The backslash usually introduces an escape sequence (this can be
613 changed with the
614 .request ec
615 request).
617 A printed version of the escape character is the
618 .esc e
619 escape; a backslash glyph can be obtained by
620 .esc (rs .
622 \&\f[CB](\f[]
623 The open parenthesis is only special in escape sequences when
624 introducing an escape name or argument consisting of exactly two
625 characters.
627 In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
629 \&\f[CB][\f[]
630 The opening bracket is only special in groff escape sequences; there
631 it is used to introduce a long escape name or long escape argument.
633 Otherwise, it is non-special, e.g.\& in macro calls.
635 \&\f[CB]]\f[]
636 The closing bracket is only special in groff escape sequences; there
637 it terminates a long escape name or long escape argument.
639 Otherwise, it is non-special.
641 \f[CI]space\f[]
642 Space characters are only functional characters.
644 They separate the arguments in requests, macros, and strings, and the words
645 in text lines.
647 They are subject to groff's horizontal spacing calculations.
649 To get a defined space width, escape sequences like
650 .squoted_char "\[rs]\ "
651 (this is the escape character followed by a space),
652 .esc | ,
653 .esc ^ ,
655 .esc h
656 should be used.
658 .IP \f[CI]newline\f[]
659 In text paragraphs, newlines mostly behave like space characters.
661 Continuation lines can be specified by an escaped newline, i.e., by
662 specifying a backslash
663 .squoted_char \[rs]
664 as the last character of a line.
665 .IP \f[CI]tab\f[]
666 If a tab character occurs during text the interpreter makes a
667 horizontal jump to the next pre-defined tab position.
669 There is a sophisticated interface for handling tab positions.
672 .\" --------------------------------------------------------------------
673 .SH "NUMERICAL EXPRESSIONS"
674 .\" --------------------------------------------------------------------
677 .B numerical value
678 is a signed or unsigned integer or float with or without an appended
679 scaling indicator.
682 .B scaling indicator
683 is a one-character abbreviation for a unit of measurement.
685 A number followed by a scaling indicator signifies a size value.
687 By default, numerical values do not have a scaling indicator, i.e., they
688 are normal numbers.
692 .I roff
693 language defines the following scaling indicators.
697 .PD 0
700 .TPx
701 .B c
702 Centimeter
704 .TPx
705 .B i
706 Inch
708 .TPx
709 .B P
710 Pica\ \[eq]\ 1/6\ inch
712 .TPx
713 .B p
714 Point\ \[eq]\ 1/72\ inch
716 .TPx
717 .B m
718 Em\ \[eq]\ \f[R]the font size in points (approx.\& width of letter
719 `\f[CR]m\f[R]')
721 .TPx
722 .B M
723 100\^th \f[R]of an \f[CR]Em
725 .TPx
726 .B n
727 En\ \[eq]\ Em/2
729 .TPx
730 .B u
731 Basic unit for actual output device
733 .TPx
734 .B v
735 Vertical line space in basic units
736 scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
737 font \f[I]DESC\f[] file)
739 .TPx
740 .B f
741 Scale by 65536.
746 .B Numerical expressions
747 are combinations of the numerical values defined above with the
748 following arithmetical operators already defined in classical troff.
751 .PD 0
754 .TPx
755 .B +
756 Addition
758 .TPx
759 .B \-
760 Subtraction
762 .TPx
763 .B *
764 Multiplication
766 .TPx
767 .B /
768 Division
770 .TPx
771 .B %
772 Modulo
774 .TPx
775 .B =
776 Equals
778 .TPx
779 .B ==
780 Equals
782 .TPx
783 .B <
784 Less than
786 .TPx
787 .B >
788 Greater than
790 .TPx
791 .B <=
792 Less or equal
794 .TPx
795 .B >=
796 Greater or equal
798 .TPx
799 .B &
800 Logical and
802 .TPx
803 .B :
804 Logical or
806 .TPx
807 .B !
808 Logical not
810 .TPx
811 .B (
812 Grouping of expressions
814 .TPx
815 .B )
816 Close current grouping
822 Moreover,
823 .I groff
824 added the following operators for numerical expressions:
827 .PD 0
830 .TPx
831 \f[I]e1\f[CB]>?\f[I]e2\f[R]
832 The maximum of
833 .I e1
835 .IR e2 .
837 .TPx
838 \f[I]e1\f[CB]<?\f[I]e2\f[R]
839 The minimum of
840 .I e1
842 .IR e2 .
844 .TPx
845 \f[CB](\f[I]c\f[CB];\f[I]e\f[CB])\f[R]
846 Evaluate
847 .I e
848 using
849 .I c
850 as the default scaling indicator.
856 For details see the groff info file.
859 .\" --------------------------------------------------------------------
860 .SH CONDITIONS
861 .\" --------------------------------------------------------------------
863 .B Conditions
864 occur in tests raised by the
865 .request if ,
866 .request ie ,
867 and the
868 .request while
869 requests.
871 The following table characterizes the different types of conditions.
874 .PD 0
877 .TPx
878 .I N
879 A numerical expression
880 .I N
881 yields true if its value is greater than\~0.
883 .TPx
884 .BI ! N
885 True if the value of
886 .I I
887 is\~0.
889 .TPx
890 .BI ' s1 ' s2 '
891 True if string\~\c
892 .I s1
893 is identical to string\~\c
894 .IR s2 .
896 .TPx
897 .BI !' s1 ' s2 '
898 True if string\~\c
899 .I s1
900 is not identical to string\~\c
901 .IR s2 .
903 .TPx
904 .BI c ch
905 True if there is a glyph\~\c
906 .I ch
907 available.
909 .TPx
910 .BI d name
911 True if there is a string, macro, diversion, or request called
912 .IR name .
914 .TPx
915 .B e
916 Current page number is even.
918 .TPx
919 .B o
920 Current page number is odd.
922 .TPx
923 .BI m name
924 True if there is a color called
925 .IR name .
927 .TPx
928 .B n
929 Formatter is
930 .BR nroff .
932 .TPx
933 .BI r reg
934 True if there is a register named
935 .IR reg .
937 .TPx
938 .B t
939 Formatter is
940 .BR troff .
942 .TPx
943 .BI F font
944 True if there exists a font named
945 .IR font .
947 .TPx
948 .BI S style
949 True if a style named
950 .I style
951 has been registered.
957 .\" --------------------------------------------------------------------
958 .SH REQUESTS
959 .\" --------------------------------------------------------------------
961 This section provides a short reference for the predefined requests.
963 In groff, request, macro, and string names can be arbitrarily long.
965 No bracketing or marking of long names is needed.
968 Most requests take one or more arguments.
970 The arguments are separated by space characters (no tabs!); there is
971 no inherent limit for their length or number.
974 Some requests have optional arguments with a different behaviour.
976 Not all of these details are outlined here.
978 Refer to the groff info file and
979 .BR groff_diff (@MAN7EXT@)
980 for all details.
983 In the following request specifications, most argument names were
984 chosen to be descriptive.
986 Only the following denotations need clarification.
989 .PD 0
992 .TPx
993 .I c
994 denotes a single character.
996 .TPx
997 .I font
998 a font either specified as a font name or a font number.
1000 .TPx
1001 .I anything
1002 all characters up to the end of the line or within
1003 .esc {
1005 .esc } .
1007 .TPx
1008 .I n
1009 is a numerical expression that evaluates to an integer value.
1011 .TPx
1012 .I N
1013 is an arbitrary numerical expression, signed or unsigned.
1015 .TPx
1016 .I \[+-]N
1017 has three meanings depending on its sign, described below.
1023 If an expression defined as
1024 .I \[+-]N
1025 starts with a
1026 .squoted_char +
1027 sign the resulting value of the expression is added to an already
1028 existing value inherent to the related request, e.g.\& adding to a number
1029 register.
1031 If the expression starts with a
1032 .squoted_char -
1033 the value of the expression is subtracted from the request value.
1036 Without a sign,
1037 .I N
1038 replaces the existing value directly.
1040 To assign a negative number either prepend\~0 or enclose the negative
1041 number in parentheses.
1044 .\" --------------------------------------------------------------------
1045 .SS "Request Short Reference"
1046 .\" --------------------------------------------------------------------
1048 .PD 0
1050 .TPx
1051 .REQ .
1052 Empty line, ignored.
1054 Useful for structuring documents.
1056 .TPx
1057 .REQ .\[rs]\[dq] "anything"
1058 Complete line is a comment.
1060 .TPx
1061 .REQ .ab "string
1062 Print
1063 .I string
1064 on standard error, exit program.
1066 .TPx
1067 .REQ .ad
1068 Begin line adjustment for output lines in current adjust mode.
1070 .TPx
1071 .REQ .ad "c"
1072 Start line adjustment in mode
1073 .I c
1074 (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,r,b,n\f[]).
1076 .TPx
1077 .REQ .af "register c"
1078 Assign format
1079 .I c
1081 .I register
1082 (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
1084 .TPx
1085 .REQ .aln "alias register"
1086 Create alias name for
1087 .IR register .
1089 .TPx
1090 .REQ .als "alias object"
1091 Create alias name for request, string, macro, or diversion
1092 .IR object .
1094 .TPx
1095 .REQ .am "macro"
1096 Append to
1097 .I macro
1098 until
1099 .B ..\&
1100 is encountered.
1102 .TPx
1103 .REQ .am "macro end"
1104 Append to
1105 .I macro
1106 until
1107 .BI . end
1108 is called.
1110 .TPx
1111 .REQ .am1 "macro"
1112 Same as
1113 .request .am
1114 but with compatibility mode switched off during macro expansion.
1116 .TPx
1117 .REQ .am1 "macro end"
1118 Same as
1119 .request .am
1120 but with compatibility mode switched off during macro expansion.
1122 .TPx
1123 .REQ .ami "macro"
1124 Append to a macro whose name is contained in the string register
1125 .I macro
1126 until
1127 .B ..\&
1128 is encountered.
1130 .TPx
1131 .REQ .ami "macro end"
1132 Append to a macro indirectly.
1133 .I macro
1135 .I end
1136 are string registers whose contents are interpolated for the macro name
1137 and the end macro, respectively.
1139 .TPx
1140 .REQ .ami1 "macro"
1141 Same as
1142 .request .ami
1143 but with compatibility mode switched off during macro expansion.
1145 .TPx
1146 .REQ .ami1 "macro end"
1147 Same as
1148 .request .ami
1149 but with compatibility mode switched off during macro expansion.
1151 .TPx
1152 .REQ .as "stringvar anything"
1153 Append
1154 .I anything
1156 .IR stringvar .
1158 .TPx
1159 .REQ .as1 "stringvar anything"
1160 Same as
1161 .request .as
1162 but with compatibility mode switched off during string expansion.
1164 .TPx
1165 .REQ .asciify "diversion"
1166 Unformat ASCII characters, spaces, and some escape sequences in
1167 .IR diversion .
1169 .TPx
1170 .REQ .backtrace
1171 Print a backtrace of the input on stderr.
1173 .TPx
1174 .REQ .bd "font N"
1175 Embolden
1176 .I font
1178 .IR N -1
1179 units.
1181 .TPx
1182 .REQ .bd "S font N"
1183 Embolden Special Font
1184 .I S
1185 when current font is
1186 .IR font .
1188 .TPx
1189 .REQ .blm
1190 Unset the blank line macro.
1192 .TPx
1193 .REQ .blm "macro"
1194 Set the blank line macro to
1195 .IR macro .
1197 .TPx
1198 .REQ .box
1199 End current diversion.
1201 .TPx
1202 .REQ .box "macro"
1203 Divert to
1204 .IR macro ,
1205 omitting a partially filled line.
1207 .TPx
1208 .REQ .boxa
1209 End current diversion.
1211 .TPx
1212 .REQ .boxa "macro"
1213 Divert and append to
1214 .IR macro ,
1215 omitting a partially filled line.
1217 .TPx
1218 .REQ .bp
1219 Eject current page and begin new page.
1221 .TPx
1222 .REQ .bp "\[+-]N"
1223 Eject current page; next page number
1224 .IR \[+-]N .
1226 .TPx
1227 .REQ .br
1228 Line break.
1230 .TPx
1231 .REQ .brp
1232 Break and spread output line.
1233 Same as
1234 .esc p .
1236 .TPx
1237 .REQ .break
1238 Break out of a while loop.
1240 .TPx
1241 .REQ .c2
1242 Reset no-break control character to
1243 .dquoted_char ' .
1245 .TPx
1246 .REQ .c2 "c"
1247 Set no-break control character to
1248 .IR c .
1250 .TPx
1251 .REQ .cc
1252 Reset control character to
1253 .squoted_char . .
1255 .TPx
1256 .REQ .cc "c"
1257 Set control character to
1258 .IR c .
1260 .TPx
1261 .REQ .ce
1262 Center the next input line.
1264 .TPx
1265 .REQ .ce "N"
1266 Center following
1267 .I N
1268 input lines.
1270 .TPx
1271 .REQ .cf "filename"
1272 Copy contents of file
1273 .I filename
1274 unprocessed to stdout or to the diversion.
1276 .TPx
1277 .REQ .cflags "mode c1 c2 .\|.\|.\&"
1278 Treat characters
1279 .IR c1 ,
1280 .IR c2 ,
1281 .I .\|.\|.\&
1282 according to
1283 .I mode
1284 number.
1286 .TPx
1287 .REQ .ch "trap N"
1288 Change
1289 .I trap
1290 location
1292 .IR N .
1294 .TPx
1295 .REQ .char "c anything"
1296 Define entity
1297 .I c
1298 as string
1299 .IR anything .
1301 .TPx
1302 .REQ .chop "object"
1303 Chop the last character off macro, string, or diversion
1304 .IR object .
1306 .TPx
1307 .REQ .close "stream"
1308 Close the
1309 .IR stream .
1311 .TPx
1312 .REQ .color
1313 Enable colors.
1315 .TPx
1316 .REQ .color "N"
1318 .I N
1319 is zero disable colors, otherwise enable them.
1321 .TPx
1322 .REQ .composite "from to"
1323 Map glyph name
1324 .I from
1325 to glyph name
1326 .I to
1327 while constructing a composite glyph name.
1329 .TPx
1330 .REQ .continue
1331 Finish the current iteration of a while loop.
1333 .TPx
1334 .REQ .cp
1335 Enable compatibility mode.
1337 .TPx
1338 .REQ .cp "N"
1340 .I N
1341 is zero disable compatibility mode, otherwise enable it.
1343 .TPx
1344 .REQ .cs "font N M"
1345 Set constant character width mode for
1346 .I font
1348 .IR N /36
1349 ems with em
1350 .IR M .
1352 .TPx
1353 .REQ .cu "N"
1354 Continuous underline in nroff, like
1355 .request .ul
1356 in troff.
1358 .TPx
1359 .REQ .da
1360 End current diversion.
1362 .TPx
1363 .REQ .da "macro"
1364 Divert and append to
1365 .IR macro .
1367 .TPx
1368 .REQ .de "macro"
1369 Define or redefine
1370 .I macro
1371 until
1372 .B ..\&
1373 is encountered.
1375 .TPx
1376 .REQ .de "macro end"
1377 Define or redefine
1378 .I macro
1379 until
1380 .BI . end
1381 is called.
1383 .TPx
1384 .REQ .de1 "macro"
1385 Same as
1386 .request .de
1387 but with compatibility mode switched off during macro expansion.
1389 .TPx
1390 .REQ .de1 "macro end"
1391 Same as
1392 .request .de
1393 but with compatibility mode switched off during macro expansion.
1395 .TPx
1396 .REQ .defcolor "color scheme component"
1397 Define or redefine a color with name
1398 .IR color .
1399 .I scheme
1400 can be
1401 .BR rgb ,
1402 .BR cym ,
1403 .BR cymk ,
1404 .BR gray ,
1406 .BR grey .
1407 .I component
1408 can be single components specified as fractions in the range 0 to 1
1409 (default scaling indicator\~\c
1410 .scaleindicator f ),
1411 as a string of two-digit hexadecimal color components with a leading
1412 .BR # ,
1413 or as a string of four-digit hexadecimal components with two leading
1414 .BR # .
1415 The color
1416 .B default
1417 can't be redefined.
1419 .TPx
1420 .REQ .dei "macro"
1421 Define or redefine a macro whose name is contained in the string register
1422 .I macro
1423 until
1424 .B ..\&
1425 is encountered.
1427 .TPx
1428 .REQ .dei "macro end"
1429 Define or redefine a macro indirectly.
1430 .I macro
1432 .I end
1433 are string registers whose contents are interpolated for the macro name
1434 and the end macro, respectively.
1436 .TPx
1437 .REQ .dei1 "macro"
1438 Same as
1439 .request .dei
1440 but with compatibility mode switched off during macro expansion.
1442 .TPx
1443 .REQ .dei1 "macro end"
1444 Same as
1445 .request .dei
1446 but with compatibility mode switched off during macro expansion.
1448 .TPx
1449 .REQ .device "anything"
1450 Write
1451 .I anything
1452 to the intermediate output as a device control function.
1454 .TPx
1455 .REQ .devicem "name"
1456 Write contents of macro or string
1457 .I name
1458 uninterpreted to the intermediate output as a device control function.
1460 .TPx
1461 .REQ .di
1462 End current diversion.
1464 .TPx
1465 .REQ .di "macro"
1466 Divert to
1467 .IR macro .
1469 .TPx
1470 .REQ .do "name"
1471 Interpret
1472 .BI . name
1473 with compatibility mode disabled.
1475 .TPx
1476 .REQ .ds "stringvar anything"
1478 .I stringvar
1480 .IR anything .
1482 .TPx
1483 .REQ .ds1 "stringvar anything"
1484 Same as
1485 .request .ds
1486 but with compatibility mode switched off during string expansion.
1488 .TPx
1489 .REQ .dt "N trap"
1490 Set diversion trap to position
1491 .I N
1492 (default scaling indicator\~\c
1493 .scaleindicator v ).
1495 .TPx
1496 .REQ .ec
1497 Reset escape character to
1498 .squoted_char \[rs] .
1500 .TPx
1501 .REQ .ec "c"
1502 Set escape character to
1503 .IR c .
1505 .TPx
1506 .REQ .ecr
1507 Restore escape character saved with
1508 .request .ecs .
1510 .TPx
1511 .REQ .ecs
1512 Save current escape character.
1514 .TPx
1515 .REQ .el "anything"
1516 Else part for if-else (\c
1517 .request ie )
1518 request.
1520 .TPx
1521 .REQ .em "macro"
1523 .I macro
1524 is run after the end of input.
1526 .TPx
1527 .REQ .eo
1528 Turn off escape character mechanism.
1530 .TPx
1531 .REQ .ev
1532 Switch to previous environment and pop it off the stack.
1534 .TPx
1535 .REQ .ev "env"
1536 Push down environment number or name
1537 .I env
1538 to the stack and switch to it.
1540 .TPx
1541 .REQ .evc "env"
1542 Copy the contents of environment
1543 .I env
1544 to the current environment.
1545 No pushing or popping.
1547 .TPx
1548 .REQ .ex
1549 Exit from roff processing.
1551 .TPx
1552 .REQ .fam
1553 Return to previous font family.
1555 .TPx
1556 .REQ .fam "name"
1557 Set the current font family to
1558 .IR name .
1560 .TPx
1561 .REQ .fc
1562 Disable field mechanism.
1564 .TPx
1565 .REQ .fc "a"
1566 Set field delimiter to\~\c
1567 .I a
1568 and pad glyph to space.
1570 .TPx
1571 .REQ .fc "a b"
1572 Set field delimiter to\~\c
1573 .I a
1574 and pad glyph to\~\c
1575 .IR b .
1577 .TPx
1578 .REQ .fchar "c anything"
1579 Define fallback character (or glyph)
1580 .I c
1581 as string
1582 .IR anything .
1584 .TPx
1585 .REQ .fcolor
1586 Set fill color to previous fill color.
1588 .TPx
1589 .REQ .fcolor "c"
1590 Set fill color to
1591 .IR c .
1593 .TPx
1594 .REQ .fi
1595 Fill output lines.
1597 .TPx
1598 .REQ .fl
1599 Flush output buffer.
1601 .TPx
1602 .REQ .fp "n font"
1603 Mount
1604 .I font
1605 on position
1606 .IR n .
1608 .TPx
1609 .REQ .fp "n internal external"
1610 Mount font with long
1611 .I external
1612 name to short
1613 .I internal
1614 name on position
1615 .IR n .
1617 .TPx
1618 .REQ .fschar "f c anything"
1619 Define fallback character (or glyph)
1620 .I c
1621 for font
1622 .I f
1623 as string
1624 .IR anything .
1626 .TPx
1627 .REQ .fspecial "font"
1628 Reset list of special fonts for
1629 .I font
1630 to be empty.
1632 .TPx
1633 .REQ .fspecial "font s1 s2 .\|.\|.\&"
1634 When the current font is
1635 .IR font ,
1636 then the fonts
1637 .IR s1 ,
1638 .IR s2 ,
1639 .I .\|.\|.\&
1640 are special.
1642 .TPx
1643 .REQ .ft
1644 Return to previous font.
1645 Same as
1646 .request \[rs]f[]
1648 .request \[rs]fP .
1650 .TPx
1651 .REQ .ft "font"
1652 Change to font name or number
1653 .IR font ;
1654 same as
1655 .esc[] f font
1656 escape sequence.
1658 .TPx
1659 .REQ .ftr "font1 font2"
1660 Translate
1661 .I font1
1663 .IR font2 .
1665 .TPx
1666 .REQ .fzoom "font"
1667 Don't magnify
1668 .IR font .
1670 .TPx
1671 .REQ .fzoom "font zoom"
1672 Set zoom factor for
1673 .I font
1674 (in multiples of 1/1000th).
1676 .TPx
1677 .REQ .gcolor
1678 Set glyph color to previous glyph color.
1680 .TPx
1681 .REQ .gcolor "c"
1682 Set glyph color to
1683 .IR c .
1685 .TPx
1686 .REQ .hc
1687 Remove additional hyphenation indicator character.
1689 .TPx
1690 .REQ .hc "c"
1691 Set up additional hyphenation indicator character\~\c
1692 .IR c .
1694 .TPx
1695 .REQ .hcode "c1 code1 c2 code2 .\|.\|.\&"
1696 Set the hyphenation code of character
1697 .I c1
1699 .IR code1 ,
1700 that of
1701 .I c2
1703 .IR code2 ,
1704 etc.
1706 .TPx
1707 .REQ .hla "lang"
1708 Set the current hyphenation language to
1709 .IR lang .
1711 .TPx
1712 .REQ .hlm "n"
1713 Set the maximum number of consecutive hyphenated lines to
1714 .IR n .
1716 .TPx
1717 .REQ .hpf "file"
1718 Read hyphenation patterns from
1719 .IR file .
1721 .TPx
1722 .REQ .hpfa "file"
1723 Append hyphenation patterns from
1724 .IR file .
1726 .TPx
1727 .REQ .hpfcode "a b c d .\|.\|.\&"
1728 Set input mapping for
1729 .request .hpf .
1731 .TPx
1732 .REQ .hw "words"
1733 List of
1734 .I words
1735 with exceptional hyphenation.
1737 .TPx
1738 .REQ .hy "N"
1739 Switch to hyphenation mode
1740 .IR N .
1742 .TPx
1743 .REQ .hym "n"
1744 Set the hyphenation margin to
1745 .I n
1746 (default scaling indicator\~\c
1747 .scaleindicator m ).
1749 .TPx
1750 .REQ .hys "n"
1751 Set the hyphenation space to
1752 .IR n .
1754 .TPx
1755 .REQ .ie "cond anything"
1757 .I cond
1758 then
1759 .I anything
1760 else goto
1761 .request .el .
1763 .TPx
1764 .REQ .if "cond anything"
1766 .I cond
1767 then
1768 .IR anything ;
1769 otherwise do nothing.
1771 .TPx
1772 .REQ .ig
1773 Ignore text until
1774 .B ..\&
1775 is encountered.
1777 .TPx
1778 .REQ .ig "end"
1779 Ignore text until
1780 .BI . end
1781 is called.
1783 .TPx
1784 .REQ .in
1785 Change to previous indentation value.
1787 .TPx
1788 .REQ .in "\[+-]N"
1789 Change indentation according to
1790 .I \[+-]N
1791 (default scaling indicator\~\c
1792 .scaleindicator m ).
1794 .TPx
1795 .REQ .it "N trap"
1796 Set an input-line count trap for the next
1797 .I N
1798 lines.
1800 .TPx
1801 .REQ .itc "N trap"
1802 Same as
1803 .request .it
1804 but count lines interrupted with
1805 .esc c
1806 as one line.
1808 .TPx
1809 .REQ .kern
1810 Enable pairwise kerning.
1812 .TPx
1813 .REQ .kern "n"
1815 .I n
1816 is zero, disable pairwise kerning, otherwise enable it.
1818 .TPx
1819 .REQ .lc
1820 Remove leader repetition glyph.
1822 .TPx
1823 .REQ .lc "c"
1824 Set leader repetition glyph to\~\c
1825 .IR c .
1827 .TPx
1828 .REQ .length "register anything"
1829 Write the length of the string
1830 .I anything
1832 .IR register .
1834 .TPx
1835 .REQ .linetabs
1836 Enable line-tabs mode (i.e., calculate tab positions relative to output
1837 line).
1839 .TPx
1840 .REQ .linetabs "n"
1842 .I n
1843 is zero, disable line-tabs mode, otherwise enable it.
1845 .TPx
1846 .REQ .lf "N"
1847 Set input line number to
1848 .IR N .
1850 .TPx
1851 .REQ .lf "N file"
1852 Set input line number to
1853 .I N
1854 and filename to
1855 .IR file .
1857 .TPx
1858 .REQ .lg "N"
1859 Ligature mode on if
1860 .IR N >0.
1862 .TPx
1863 .REQ .ll
1864 Change to previous line length.
1866 .TPx
1867 .REQ .ll "\[+-]N"
1868 Set line length according to
1869 .I \[+-]N
1870 (default length
1871 .scalednumber 6.5 i ,
1872 default scaling indicator\~\c
1873 .scaleindicator m ).
1875 .TPx
1876 .REQ .ls
1877 Change to the previous value of additional intra-line skip.
1879 .TPx
1880 .REQ .ls "N"
1881 Set additional intra-line skip value to
1882 .IR N ,
1883 i.e.,
1884 .IR N -1
1885 blank lines are inserted after each text output line.
1887 .TPx
1888 .REQ .lt "\[+-]N"
1889 Length of title (default scaling indicator\~\c
1890 .scaleindicator m ).
1892 .TPx
1893 .REQ .mc
1894 Margin glyph off.
1896 .TPx
1897 .REQ .mc "c"
1898 Print glyph\~\c
1899 .I c
1900 after each text line at actual distance from right margin.
1902 .TPx
1903 .REQ .mc "c N"
1904 Set margin glyph to\~\c
1905 .I c
1906 and distance to\~\c
1907 .I N
1908 from right margin (default scaling indicator\~\c
1909 .scaleindicator m ).
1911 .TPx
1912 .REQ .mk "register"
1913 Mark current vertical position in
1914 .IR register .
1916 .TPx
1917 .REQ .mso "file"
1918 The same as
1919 .request .so
1920 except that
1921 .I file
1922 is searched in the tmac directories.
1924 .TPx
1925 .REQ .na
1926 No output-line adjusting.
1928 .TPx
1929 .REQ .ne
1930 Need a one-line vertical space.
1932 .TPx
1933 .REQ .ne "N"
1934 Need
1935 .I N
1936 vertical space (default scaling indicator\~\c
1937 .scaleindicator v ).
1939 .TPx
1940 .REQ .nf
1941 No filling or adjusting of output-lines.
1943 .TPx
1944 .REQ .nh
1945 No hyphenation.
1947 .TPx
1948 .REQ .nm
1949 Number mode off.
1951 .TPx
1952 .REQ .nm "\[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP"
1953 In line number mode, set number, multiple, spacing, and indentation.
1955 .TPx
1956 .REQ .nn
1957 Do not number next line.
1959 .TPx
1960 .REQ .nn "N"
1961 Do not number next
1962 .I N
1963 lines.
1965 .TPx
1966 .REQ .nop "anything"
1967 Always process
1968 .IR anything .
1970 .TPx
1971 .REQ .nr "register \[+-]N \fR[\fPM\fR]\fP"
1972 Define or modify
1973 .I register
1974 using
1975 .I \[+-]N
1976 with auto-increment
1977 .IR M .
1979 .TPx
1980 .REQ .nroff
1981 Make the built-in conditions
1982 .B n
1983 true and
1984 .B t
1985 false.
1987 .TPx
1988 .REQ .ns
1989 Turn on no-space mode.
1991 .TPx
1992 .REQ .nx
1993 Immediately jump to end of current file.
1995 .TPx
1996 .REQ .nx "filename"
1997 Immediately continue processing with file
1998 .IR file .
2000 .TPx
2001 .REQ .open "stream filename"
2002 Open
2003 .I filename
2004 for writing and associate the stream named
2005 .I stream
2006 with it.
2008 .TPx
2009 .REQ .opena "stream filename"
2010 Like
2011 .request .open
2012 but append to it.
2014 .TPx
2015 .REQ .os
2016 Output vertical distance that was saved by the
2017 .request sv
2018 request.
2020 .TPx
2021 .REQ .output "string"
2022 Emit
2023 .I string
2024 directly to intermediate output, allowing leading whitespace if
2025 .I string
2026 starts with
2027 \&\f[CB]\[dq]\f[]
2028 (which is stripped off).
2030 .TPx
2031 .REQ .pc
2032 Reset page number character to\~\c
2033 .squoted_char % .
2035 .TPx
2036 .REQ .pc "c"
2037 Page number character.
2039 .TPx
2040 .REQ .pev
2041 Print the current environment and each defined environment
2042 state to stderr.
2044 .TPx
2045 .REQ .pi "program"
2046 Pipe output to
2047 .I program
2048 (nroff only).
2050 .TPx
2051 .REQ .pl
2052 Set page length to default
2053 .scalednumber 11 i .
2054 The current page length is stored in
2055 .register .p .
2057 .TPx
2058 .REQ .pl "\[+-]N"
2059 Change page length to
2060 .I \[+-]N
2061 (default scaling indicator\~\c
2062 .scaleindicator v ).
2064 .TPx
2065 .REQ .pm
2066 Print macro names and sizes (number of blocks of 128 bytes).
2068 .TPx
2069 .REQ .pm "t"
2070 Print only total of sizes of macros (number of 128 bytes blocks).
2072 .TPx
2073 .REQ .pn "\[+-]N"
2074 Next page number
2075 .IR N .
2077 .TPx
2078 .REQ .pnr
2079 Print the names and contents of all currently defined number registers
2080 on stderr.
2082 .TPx
2083 .REQ .po
2084 Change to previous page offset.
2086 The current page offset is available in
2087 .register .o .
2089 .TPx
2090 .REQ .po "\[+-]N"
2091 Page offset
2092 .IR N .
2094 .TPx
2095 .REQ .ps
2096 Return to previous point size.
2097 .TPx
2098 .REQ .ps "\[+-]N"
2099 Point size; same as
2100 .esc[] s \[+-]N .
2102 .TPx
2103 .REQ .psbb "filename"
2104 Get the bounding box of a PostScript image
2105 .IR filename .
2107 .TPx
2108 .REQ .pso "command"
2109 This behaves like the
2110 .request so
2111 request except that input comes from the standard output of
2112 .IR command .
2114 .TPx
2115 .REQ .ptr
2116 Print the names and positions of all traps (not including input line
2117 traps and diversion traps) on stderr.
2119 .TPx
2120 .REQ .pvs
2121 Change to previous post-vertical line spacing.
2123 .TPx
2124 .REQ .pvs "\[+-]N"
2125 Change post-vertical line spacing according to
2126 .I \[+-]N
2127 (default scaling indicator\~\c
2128 .scaleindicator p ).
2130 .TPx
2131 .REQ .rchar "c1 c2 .\|.\|.\&"
2132 Remove the definitions of entities
2133 .IR c1 ,
2134 .IR c2 ,
2135 .I .\|.\|.\&
2137 .TPx
2138 .REQ .rd "prompt"
2139 Read insertion.
2141 .TPx
2142 .REQ .return
2143 Return from a macro.
2145 .TPx
2146 .REQ .return "anything"
2147 Return twice, namely from the macro at the current level and from the macro
2148 one level higher.
2150 .TPx
2151 .REQ .rfschar "f c1 c2 .\|.\|.\&"
2152 Remove the definitions of entities
2153 .IR c1 ,
2154 .IR c2 ,
2155 .I .\|.\|.\&
2156 for font
2157 .IR f .
2159 .TPx
2160 .REQ .rj "n"
2161 Right justify the next
2162 .I n
2163 input lines.
2165 .TPx
2166 .REQ .rm "name"
2167 Remove request, macro, or string
2168 .IR name .
2170 .TPx
2171 .REQ .rn "old new"
2172 Rename request, macro, or string
2173 .I old
2175 .IR new .
2177 .TPx
2178 .REQ .rnn "reg1 reg2"
2179 Rename register
2180 .I reg1
2182 .IR reg2 .
2184 .TPx
2185 .REQ .rr "register"
2186 Remove
2187 .IR register .
2189 .TPx
2190 .REQ .rs
2191 Restore spacing; turn no-space mode off.
2193 .TPx
2194 .REQ .rt "\[+-]N"
2195 Return
2196 .I (upward only)
2197 to marked vertical place (default scaling indicator\~\c
2198 .scaleindicator v ).
2200 .TPx
2201 .REQ .schar "c anything"
2202 Define global fallback character (or glyph)\~\c
2203 .I c
2204 as string
2205 .IR anything .
2207 .TPx
2208 .REQ .shc
2209 Reset soft hyphen glyph to
2210 .esc (hy .
2212 .TPx
2213 .REQ .shc "c"
2214 Set the soft hyphen glyph to\~\c
2215 .IR c .
2217 .TPx
2218 .REQ .shift "n"
2219 In a macro, shift the arguments by
2220 .IR n \~\c
2221 positions.
2223 .TPx
2224 .REQ .sizes "s1 s2 .\|.\|.\& sn \fB[0]\fP"
2225 Set available font sizes similar to the
2226 .B sizes
2227 command in a
2228 .B DESC
2229 file.
2231 .TPx
2232 .REQ .so "filename"
2233 Include source file.
2235 .TPx
2236 .REQ .sp
2237 Skip one line vertically.
2239 .TPx
2240 .REQ .sp "N"
2241 Space vertical distance
2242 .I N
2243 up or down according to sign of
2244 .I N
2245 (default scaling indicator\~\c
2246 .scaleindicator v ).
2248 .TPx
2249 .REQ .special
2250 Reset global list of special fonts to be empty.
2252 .TPx
2253 .REQ .special "s1 s2 .\|.\|.\&"
2254 Fonts
2255 .IR s1 ,
2256 .IR s2 ,
2257 etc.\& are special and are searched for glyphs not in the
2258 current font.
2260 .TPx
2261 .REQ .spreadwarn
2262 Toggle the spread warning on and off without changing its value.
2264 .TPx
2265 .REQ .spreadwarn "limit"
2266 Emit a warning if each space in an output line is widened by
2267 .I limit
2268 or more (default scaling indicator\~\c
2269 .scaleindicator m ).
2271 .TPx
2272 .REQ .ss "N"
2273 Set space glyph size to
2274 .IR N /12
2275 of the space width in the current font.
2277 .TPx
2278 .REQ .ss "N M"
2279 Set space glyph size to
2280 .IR N /12
2281 and sentence space size set to
2282 .IR M /12
2283 of the space width in the current font.
2285 .TPx
2286 .REQ .sty "n style"
2287 Associate
2288 .I style
2289 with font position
2290 .IR n .
2292 .TPx
2293 .REQ .substring "xx n1 n2"
2294 Replace the string named
2295 .I xx
2296 with the substring defined by the indices
2297 .I n1
2299 .IR n2 .
2301 .TPx
2302 .REQ .sv
2303 Save
2304 .scalednumber "1 v"
2305 of vertical space.
2306 .TPx
2307 .REQ .sv "N"
2308 Save the vertical distance
2309 .I N
2310 for later output with
2311 .request os
2312 request (default scaling indicator\~\c
2313 .scaleindicator v ).
2315 .TPx
2316 .REQ .sy "command-line"
2317 Execute program
2318 .IR command-line .
2320 .TPx
2321 .REQ .ta "T N"
2322 Set tabs after every position that is a multiple of
2323 .I N
2324 (default scaling indicator\~\c
2325 .scaleindicator m ).
2326 .TPx
2327 .REQ .ta "n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn"
2328 Set tabs at positions
2329 .IR n1 ,
2330 .IR n2 ,
2331 .Text .\|.\|.,
2332 .IR nn ,
2333 then set tabs at
2334 .IR nn + r1 ,
2335 .IR nn + r2 ,
2336 .Text .\|.\|.,
2337 .IR nn + rn ,
2338 then at
2339 .IR nn + rn + r1 ,
2340 .IR nn + rn + r2 ,
2341 .Text .\|.\|.,
2342 .IR nn + rn + rn ,
2343 and so on.
2345 .\".TPx
2346 .\".REQ .tar
2347 .\"Restore internally saved tab positions.
2348 .\".
2349 .\".TPx
2350 .\".REQ .tas
2351 .\"Save tab positions internally.
2353 .TPx
2354 .REQ .tc
2355 Remove tab repetition glyph.
2356 .TPx
2357 .REQ .tc "c"
2358 Set tab repetition glyph to\~\c
2359 .IR c .
2361 .TPx
2362 .REQ .ti "\[+-]N"
2363 Temporary indent next line (default scaling indicator\~\c
2364 .scaleindicator m ).
2366 .TPx
2367 .REQ .tkf "font s1 n1 s2 n2"
2368 Enable track kerning for
2369 .IR font .
2371 .TPx
2372 .REQ .tl "\f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]"
2373 Three-part title.
2375 .TPx
2376 .REQ .tm "anything"
2377 Print
2378 .I anything
2379 on stdout.
2381 .TPx
2382 .REQ .tm1 "anything"
2383 Print
2384 .I anything
2385 on stdout, allowing leading whitespace if
2386 .I anything
2387 starts with
2388 \&\f[CB]\[dq]\f[]
2389 (which is stripped off).
2391 .TPx
2392 .REQ .tmc "anything"
2393 Similar to
2394 .request .tm1
2395 without emitting a final newline.
2397 .TPx
2398 .REQ .tr "abcd.\|.\|.\&"
2399 Translate
2400 .I a
2402 .IR b ,
2403 .I c
2405 .IR d ,
2406 etc.\& on output.
2408 .TPx
2409 .REQ .trf "filename"
2410 Transparently output the contents of file
2411 .IR filename .
2413 .TPx
2414 .REQ .trin "abcd.\|.\|.\&"
2415 This is the same as the
2416 .request tr
2417 request except that the
2418 .B asciify
2419 request uses the character code (if any) before the character
2420 translation.
2422 .TPx
2423 .REQ .trnt "abcd.\|.\|.\&"
2424 This is the same as the
2425 .request tr
2426 request except that the translations do not apply to text that is
2427 transparently throughput into a diversion with
2428 .esc ! .
2430 .TPx
2431 .REQ .troff
2432 Make the built-in conditions
2433 .B t
2434 true and
2435 .B n
2436 false.
2438 .TPx
2439 .REQ .uf "font"
2440 Set underline font to
2441 .I font
2442 (to be switched to by
2443 .request .ul ).
2445 .TPx
2446 .REQ .ul "N"
2447 Underline (italicize in troff)
2448 .I N
2449 input lines.
2451 .TPx
2452 .REQ .unformat "diversion"
2453 Unformat space characters and tabs in
2454 .IR diversion ,
2455 preserving font information.
2456 .TPx
2457 .REQ .vpt "n"
2458 Enable vertical position traps if
2459 .I n
2460 is non-zero, disable them otherwise.
2462 .TPx
2463 .REQ .vs
2464 Change to previous vertical base line spacing.
2466 .TPx
2467 .REQ .vs "\[+-]N"
2468 Set vertical base line spacing to
2469 .I \[+-]N
2470 (default scaling indicator\~\c
2471 .scaleindicator p ).
2473 .TPx
2474 .REQ .warn "n"
2475 Set warnings code to
2476 .IR n .
2478 .TPx
2479 .REQ .warnscale "si"
2480 Set scaling indicator used in warnings to
2481 .IR si .
2483 .TPx
2484 .REQ .wh "N"
2485 Remove (first) trap at position
2486 .IR N .
2488 .TPx
2489 .REQ .wh "N trap"
2490 Set location trap; negative means from page bottom.
2492 .TPx
2493 .REQ .while "cond anything"
2494 While condition
2495 .I cond
2496 is true, accept
2497 .I anything
2498 as input.
2500 .TPx
2501 .REQ .write "stream anything"
2502 Write
2503 .I anything
2504 to the stream named
2505 .IR stream .
2507 .TPx
2508 .REQ .writec "stream anything"
2509 Similar to
2510 .request .write
2511 without emitting a final newline.
2513 .TPx
2514 .REQ .writem "stream xx"
2515 Write contents of macro or string
2516 .I xx
2517 to the stream named
2518 .IR stream .
2523 Besides these standard groff requests, there might be further macro
2524 calls.
2525 They can originate from a macro package (see
2526 .BR roff (@MAN7EXT@)
2527 for an overview) or from a preprocessor.
2530 Preprocessor macros are easy to be recognized.
2532 They enclose their code into a pair of characteristic macros.
2536 box, center, tab (@);
2537 c | c | c
2538 CfCB | CfCB | CfCB.
2539 preprocessor@start macro@ end macro
2541 eqn@.EQ@.EN
2542 grap@.G1@.G2
2543 grn@.GS@.GE
2544 pic@.PS@.PE
2545 refer@.R1@.R2
2546 soelim@\f[I]none@\f[I]none
2547 tbl@.TS@.TE
2552 .\" --------------------------------------------------------------------
2553 .SH "ESCAPE SEQUENCES"
2554 .\" --------------------------------------------------------------------
2556 Escape sequences are in-line language elements usually introduced by a
2557 backslash
2558 .squoted_char \[rs]
2559 and followed by an escape name and sometimes by a required argument.
2561 Input processing is continued directly after the escaped character or
2562 the argument (without an intervening separation character).
2564 So there must be a way to determine the end of the escape name and the
2565 end of the argument.
2568 This is done by enclosing names (escape name and arguments consisting
2569 of a variable name) by a pair of brackets
2570 .BI \[lB] name \[rB] 
2571 and constant arguments (number expressions and characters) by
2572 apostrophes (ASCII 0x27) like
2573 .BI \[cq] constant \[cq] \f[R].
2576 There are abbreviations for short names.
2578 Two-character escape names can be specified by an opening parenthesis
2579 like
2580 .esc ( xy
2582 .esc *( xy
2583 without a closing counterpart.
2585 And all one-character names different from the special characters
2586 .squoted_char [
2588 .squoted_char (
2589 can even be specified without a marker, for example
2590 .esc n c
2592 .esc $ c.
2595 Constant arguments of length\~1 can omit the marker apostrophes, too,
2596 but there is no two-character analogue.
2599 While one-character escape sequences are mainly used for in-line
2600 functions and system related tasks, the two-letter names following the
2601 .esc (
2602 construct are glyphs predefined by the roff system; these are called
2603 `Special Characters' in the classical documentation.
2605 Escapes sequences of the form
2606 .esc[] "" name
2607 denote glyphs too.
2610 .\" --------------------------------------------------------------------
2611 .SS "Single-Character Escapes"
2612 .\" --------------------------------------------------------------------
2614 .PD 0
2616 .\" --------- comments ---------
2619 .ESC \[dq]
2620 Start of a comment.
2622 Everything up to the end of the line is ignored.
2625 .ESC #
2626 Everything up to and including the next newline is ignored.
2628 This is interpreted in copy mode.
2630 This is like
2631 .esc \[dq]
2632 except that the terminating newline is ignored as well.
2634 .\" --------- strings ---------
2637 .ESC *\f[I]s\f[]
2638 The string stored in the string variable with one-character name\~\c
2639 .IR s .
2642 .ESC *(\f[I]st\f[]
2643 The string stored in the string variable with two-character name
2644 .IR st .
2647 .ESC[] * string
2648 The string stored in the string variable with name
2649 .I string
2650 (with arbitrary length).
2653 .ESC[] * "stringvar arg1 arg2 .\|.\|."
2654 The string stored in the string variable with arbitrarily long name
2655 .IR stringvar ,
2656 taking
2657 .IR arg1 ,
2658 .IR arg2 ,
2659 .I .\|.\|.\&
2660 as arguments.
2662 .\" --------- macro arguments ---------
2665 .ESC $0
2666 The name by which the current macro was invoked.
2669 .request als
2670 request can make a macro have more than one name.
2673 .ESC $ x
2674 Macro or string argument with one-digit number\~\c
2675 .I x
2676 in the range 1 to\~9.
2679 .ESC $( xy
2680 Macro or string argument with two-digit number
2681 .I xy
2682 (larger than zero).
2685 .ESC[] $ nexp
2686 Macro or string argument with number
2687 .IR nexp ,
2688 where
2689 .I nexp
2690 is a numerical expression evaluating to an integer \[>=]1.
2693 .ESC $*
2694 In a macro or string, the concatenation of all the arguments separated
2695 by spaces.
2698 .ESC $@
2699 In a macro or string, the concatenation of all the arguments with each
2700 surrounded by double quotes, and separated by spaces.
2703 .ESC $^
2704 In a macro, the representation of all parameters as if they were an
2705 argument to the
2706 .request ds
2707 request.
2709 .\" --------- escaped characters ---------
2712 .ESC \[rs]
2713 reduces to a single backslash; useful to delay its interpretation as
2714 escape character in copy mode.
2716 For a printable backslash, use
2717 .esc e ,
2718 or even better
2719 .esc [rs] ,
2720 to be independent from the current escape character.
2723 .ESC \[cq]
2724 The acute accent \[aa]; same as
2725 .esc (aa .
2726 Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
2729 .ESC `
2730 The grave accent \[ga]; same as
2731 .esc (ga .
2732 Unescaped: left quote, backquote (ASCII 0x60).
2735 .ESC -
2736 The \- (minus) sign in the current font.
2739 .ESC _
2740 The same as
2741 .esc (ul ,
2742 the underline character.
2745 .ESC .
2746 An uninterpreted dot (period), even at start of line.
2749 .ESC %
2750 Default optional hyphenation character.
2753 .ESC !
2754 Transparent line indicator.
2757 .ESC? anything
2758 In a diversion, this transparently embeds
2759 .I anything
2760 in the diversion.
2761 .I anything
2762 is read in copy mode.
2764 See also the escape sequences
2765 .esc !
2767 .esc ? .
2770 .\" --------- spacing ---------
2773 .ESC \& space
2774 Unpaddable space size space glyph (no line break).
2777 .ESC 0
2778 Digit-width space.
2781 .ESC |
2782 1/6\ em narrow space glyph; zero width in nroff.
2785 .ESC ^
2786 1/12\ em half-narrow space glyph; zero width in nroff.
2789 .ESC &
2790 Non-printable, zero-width glyph.
2793 .ESC )
2794 Like
2795 .esc &
2796 except that it behaves like a glyph declared with the
2797 .request cflags
2798 request to be transparent for the purposes of end-of-sentence
2799 recognition.
2802 .ESC /
2803 Increases the width of the preceding glyph so that the spacing
2804 between that glyph and the following glyph is correct if
2805 the following glyph is a roman glyph.
2808 .ESC ,
2809 Modifies the spacing of the following glyph so that the spacing
2810 between that glyph and the preceding glyph is correct if the
2811 preceding glyph is a roman glyph.
2814 .ESC ~
2815 Unbreakable space that stretches like a normal inter-word space when a
2816 line is adjusted.
2819 .ESC :
2820 Inserts a zero-width break point (similar to
2821 .esc %
2822 but without a soft hyphen character).
2825 .ESC "" newline
2826 Ignored newline, for continuation lines.
2828 .\" --------- structuring ---------
2831 .ESC {
2832 Begin conditional input.
2835 .ESC }
2836 End conditional input.
2838 .\" --------- longer escape names ---------
2841 .ESC ( sc
2842 A glyph with two-character name
2843 .IR sc ;
2844 see section
2845 .BR "Special Characters" .
2848 .ESC[] "" name
2849 A glyph with name
2850 .I name
2851 (of arbitrary length).
2854 .ESC[] "" "comp1 comp2 .\|.\|."
2855 A composite glyph with components
2856 .IR comp1 ,
2857 .IR comp2 ,
2858 .I .\|.\|.
2860 .\" --------- alphabetical escapes ---------
2863 .ESC a
2864 Non-interpreted leader character.
2867 .ESCq A anything
2869 .I anything
2870 is acceptable as a name of a string, macro, diversion, register,
2871 environment or font it expands to\~1, and to\~0 otherwise.
2874 .ESCq b abc.\|.\|.\&
2875 Bracket building function.
2878 .ESCq B anything
2880 .I anything
2881 is acceptable as a valid numeric expression it expands to\~1, and
2882 to\~0 otherwise.
2885 .ESC c
2886 Interrupt text processing.
2889 .ESCq C glyph
2890 The glyph called
2891 .IR glyph ;
2892 same as
2893 .esc[] "" glyph ,
2894 but compatible to other roff versions.
2897 .ESC d
2898 Forward (down) 1/2 em (1/2 line in nroff).
2901 .ESCq D charseq
2902 Draw a graphical element defined by the characters in
2903 .IR charseq ;
2904 see the groff info file for details.
2907 .ESC e
2908 Printable version of the current escape character.
2911 .ESC E
2912 Equivalent to an escape character, but is not interpreted in copy mode.
2915 .ESC f F
2916 Change to font with one-character name or one-digit number\~\c
2917 .IR F .
2920 .ESC fP
2921 Switch back to previous font.
2924 .ESC f( fo
2925 Change to font with two-character name or two-digit number
2926 .IR fo .
2929 .ESC[] f font
2930 Change to font with arbitrarily long name or number expression
2931 .IR font .
2934 .ESC[] f ""
2935 Switch back to previous font.
2938 .ESC F f
2939 Change to font family with one-character name\~\c
2940 .IR f .
2943 .ESC F( fm
2944 Change to font family with two-character name
2945 .IR fm .
2948 .ESC[] F fam
2949 Change to font family with arbitrarily long name
2950 .IR fam .
2953 .ESC[] F ""
2954 Switch back to previous font family.
2957 .ESC g r
2958 Return format of register with one-character name\~\c
2959 .I r
2960 suitable for
2961 .request af
2962 request.
2965 .ESC g( rg
2966 Return format of register with two-character name
2967 .I rg
2968 suitable for
2969 .request af
2970 request.
2973 .ESC[] g reg
2974 Return format of register with arbitrarily long name
2975 .I reg
2976 suitable for
2977 .request af
2978 request.
2981 .ESCq h N
2982 Local horizontal motion; move right
2983 .I N
2984 (left if negative).
2987 .ESCq H N
2988 Set height of current font to
2989 .IR N .
2992 .ESC k r
2993 Mark horizontal input place in one-character register\~\c
2994 .IR r .
2997 .ESC k( rg
2998 Mark horizontal input place in two-character register
2999 .IR rg .
3002 .ESC[] k reg
3003 Mark horizontal input place in register with arbitrarily long name
3004 .IR reg .
3007 .ESCq l Nc
3008 Horizontal line drawing function (optionally using character
3009 .IR c ).
3012 .ESCq L Nc
3013 Vertical line drawing function (optionally using character
3014 .IR c ).
3017 .ESC m c
3018 Change to color with one-character name\~\c
3019 .IR c .
3022 .ESC m( cl
3023 Change to color with two-character name
3024 .IR cl .
3027 .ESC[] m color
3028 Change to color with arbitrarily long name
3029 .IR color .
3032 .ESC[] m ""
3033 Switch back to previous color.
3036 .ESC M c
3037 Change filling color for closed drawn objects to color with
3038 one-character name\~\c
3039 .IR c .
3042 .ESC M( cl
3043 Change filling color for closed drawn objects to color with
3044 two-character name
3045 .IR cl .
3048 .ESC[] M color
3049 Change filling color for closed drawn objects to color with
3050 arbitrarily long name
3051 .IR color .
3054 .ESC[] M ""
3055 Switch to previous fill color.
3058 .ESC n r
3059 The numerical value stored in the register variable with the
3060 one-character name\~\c
3061 .IR r .
3064 .ESC n( re
3065 The numerical value stored in the register variable with the
3066 two-character name
3067 .IR re .
3070 .ESC[] n reg
3071 The numerical value stored in the register variable with arbitrarily
3072 long name
3073 .IR reg .
3076 .ESCq N n
3077 Typeset the glyph with index\~\c
3078 .I n
3079 in the current font.
3081 No special fonts are searched.
3083 Useful for adding (named) entities to a document using the
3084 .request char
3085 request and friends.
3088 .ESCq o abc.\|.\|.\&
3089 Overstrike glyphs
3090 .IR a ,
3091 .IR b ,
3092 .IR c ,
3093 etc.
3096 .ESC O0
3097 Disable glyph output.
3099 Mainly for internal use.
3102 .ESC O1
3103 Enable glyph output.
3105 Mainly for internal use.
3108 .ESC p
3109 Break and spread output line.
3112 .ESC r
3113 Reverse 1\ em vertical motion (reverse line in nroff).
3116 .ESCq R "name\~\[+-]n"
3117 The same as
3118 .request .nr
3119 .I name
3120 .IR \[+-]n .
3123 .ESC s \[+-]N
3124 Set/increase/decrease the point size to/by
3125 .I N
3126 scaled points;
3127 .I N
3128 is a one-digit number in the range 1 to\~9.
3130 Same as
3131 .request ps
3132 request.
3135 .ESC s( \[+-]N
3137 .ESC s\[+-]( N
3138 Set/increase/decrease the point size to/by
3139 .I N
3140 scaled points;
3141 .I N
3142 is a two-digit number \[>=]1.
3144 Same as
3145 .request ps
3146 request.
3149 .ESC[] s \[+-]N
3151 .ESC[] s\[+-] N
3153 .ESCq s \[+-]N
3155 .ESCq s\[+-] N
3156 Set/increase/decrease the point size to/by
3157 .I N
3158 scaled points.
3160 Same as
3161 .request ps
3162 request.
3165 .ESCq S N
3166 Slant output by
3167 .I N
3168 degrees.
3171 .ESC t
3172 Non-interpreted horizontal tab.
3175 .ESC u
3176 Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
3179 .ESCq v N
3180 Local vertical motion; move down
3181 .I N
3182 (up if negative).
3185 .ESC V e
3186 The contents of the environment variable with one-character
3187 name\~\c
3188 .IR e .
3191 .ESC V( ev
3192 The contents of the environment variable with two-character name
3193 .IR ev .
3196 .ESC[] V env
3197 The contents of the environment variable with arbitrarily long name
3198 .IR env .
3201 .ESCq w string
3202 The width of the glyph sequence
3203 .IR string .
3206 .ESCq x N
3207 Extra line-space function (negative before, positive after).
3210 .ESCq X string
3211 Output
3212 .I string
3213 as device control function.
3216 .ESC Y n
3217 Output string variable or macro with one-character name\~\c
3218 .I n
3219 uninterpreted as device control function.
3222 .ESC Y( nm
3223 Output string variable or macro with two-character name
3224 .I nm
3225 uninterpreted as device control function.
3228 .ESC[] Y name
3229 Output string variable or macro with arbitrarily long name
3230 .I name
3231 uninterpreted as device control function.
3234 .ESC z c
3235 Print
3236 .I c
3237 with zero width (without spacing).
3240 .ESCq Z anything
3241 Print
3242 .I anything
3243 and then restore the horizontal and vertical position;
3244 .I anything
3245 may not contain tabs or leaders.
3249 The escape sequences
3250 .esc e ,
3251 .esc . ,
3252 .esc \[dq] ,
3253 .esc $ ,
3254 .esc * ,
3255 .esc a ,
3256 .esc n ,
3257 .esc t ,
3258 .esc g ,
3260 .escarg \& newline
3261 are interpreted in copy mode.
3264 Escape sequences starting with
3265 .esc (
3267 .esc [
3268 do not represent single character escape sequences, but introduce escape
3269 names with two or more characters.
3272 If a backslash is followed by a character that does not constitute a
3273 defined escape sequence, the backslash is silently ignored and the
3274 character maps to itself.
3277 .\" --------------------------------------------------------------------
3278 .SS "Special Characters"
3279 .\" --------------------------------------------------------------------
3281 [Note: `Special Characters' is a misnomer; those entities are (output)
3282 glyphs, not (input) characters.]
3285 Common special characters are predefined by escape sequences of the
3286 form
3287 .BI \[rs]( xy
3288 with characters
3289 .I x
3291 .IR y .
3293 Some of these exist in the usual font while most of them are only
3294 available in the special font.
3296 Below you can find a selection of the most important glyphs; a complete
3297 list can be found in
3298 .BR groff_char (@MAN7EXT@).
3301 .PD 0
3304 .ESC (bu
3305 Bullet sign
3307 .ESC (co
3308 Copyright
3310 .ESC (ct
3311 Cent
3313 .ESC (dd
3314 Double dagger
3316 .ESC (de
3317 Degree
3319 .ESC (dg
3320 Dagger
3322 .ESC (rq
3323 Printable double quote
3325 .ESC (em
3326 Em-dash
3328 .ESC (hy
3329 Hyphen
3331 .ESC (rg
3332 Registered sign
3334 .ESC (rs
3335 Printable backslash character
3337 .ESC (sc
3338 Section sign
3340 .ESC (ul
3341 Underline character
3343 .ESC (==
3344 Identical
3346 .ESC (>=
3347 Larger or equal
3349 .ESC (<=
3350 Less or equal
3352 .ESC (!=
3353 Not equal
3355 .ESC (->
3356 Right arrow
3358 .ESC (<-
3359 Left arrow
3361 .ESC (+-
3362 Plus-minus sign
3367 .\" --------------------------------------------------------------------
3368 .SS "Strings"
3369 .\" --------------------------------------------------------------------
3371 Strings are defined by the
3372 .request ds
3373 request and can be retrieved by the
3374 .esc *
3375 escape sequence.
3378 Strings share their name space with macros.
3380 So strings and macros without arguments are roughly equivalent; it is
3381 possible to call a string like a macro and vice-versa, but this often
3382 leads to unpredictable results.
3384 The following string is the only one predefined in groff.
3386 .TPx
3387 .STRING .T
3388 The name of the current output device as specified by the
3389 .option \-T
3390 command line option.
3393 .\" --------------------------------------------------------------------
3394 .SH REGISTERS
3395 .\" --------------------------------------------------------------------
3397 Registers are variables that store a value.
3398 In groff, most registers store numerical values (see section
3399 .B NUMERICAL EXPRESSIONS
3400 above), but some can also hold a string value.
3403 Each register is given a name.
3404 Arbitrary registers can be defined and set with the
3405 .request nr
3406 request.
3409 The value stored in a register can be retrieved by the escape sequences
3410 introduced by
3411 .esc n .
3414 Most useful are predefined registers.
3416 In the following the notation
3417 .I name
3418 is used to refer to
3419 .register name
3420 to make clear that we speak about registers.
3422 Please keep in mind that the
3423 .esc[] n ""
3424 decoration is not part of the register name.
3427 .\" --------------------------------------------------------------------
3428 .SS "Read-only Registers"
3429 .\" --------------------------------------------------------------------
3431 The following registers have predefined values that should not be
3432 modified by the user (usually, registers starting with a dot a
3433 read-only).
3435 Mostly, they provide information on the current settings or store
3436 results from request calls.
3439 .PD 0
3441 .TPx
3442 .REG .$
3443 Number of arguments in the current macro or string.
3445 .TPx
3446 .REG .a
3447 Post-line extra line-space most recently utilized using
3448 .esc x .
3450 .TPx
3451 .REG .A
3452 Set to\~1 in
3453 .B troff
3454 if option
3455 .option \-A
3456 is used; always\~1 in
3457 .BR nroff .
3459 .TPx
3460 .REG .br
3461 Within a macro, set to\~1 if macro called with the `normal' control
3462 character, and to\~0 otherwise.
3464 .TPx
3465 .REG .c
3466 Current input line number.
3468 .TPx
3469 .REG .C
3470 1\~if compatibility mode is in effect, 0\~otherwise.
3472 .TPx
3473 .REG .cdp
3474 The depth of the last glyph added to the current environment.
3476 It is positive if the glyph extends below the baseline.
3478 .TPx
3479 .REG .ce
3480 The number of lines remaining to be centered, as set by the
3481 .request ce
3482 request.
3484 .TPx
3485 .REG .cht
3486 The height of the last glyph added to the current environment.
3488 It is positive if the glyph extends above the baseline.
3490 .TPx
3491 .REG .color
3492 1\~if colors are enabled, 0\~otherwise.
3494 .TPx
3495 .REG .csk
3496 The skew of the last glyph added to the current environment.
3498 The skew of a glyph is how far to the right of the center of a glyph
3499 the center of an accent over that glyph should be placed.
3501 .TPx
3502 .REG .d
3503 Current vertical place in current diversion; equal to
3504 .register nl .
3506 .TPx
3507 .REG .ev
3508 The name or number of the current environment (string-valued).
3510 .TPx
3511 .REG .f
3512 Current font number.
3514 .TPx
3515 .REG .fam
3516 The current font family (string-valued).
3518 .TPx
3519 .REG .fn
3520 The current (internal) real font name (string-valued).
3522 .TPx
3523 .REG .fp
3524 The number of the next free font position.
3526 .TPx
3527 .REG .g
3528 Always 1 in GNU troff.
3530 Macros should use it to test if running under groff.
3532 .TPx
3533 .REG .h
3534 Text base-line high-water mark on current page or diversion.
3536 .TPx
3537 .REG .H
3538 Available horizontal resolution in basic units.
3540 .TPx
3541 .REG .height
3542 The current font height as set with
3543 .request \[rs]H .
3545 .TPx
3546 .REG .hla
3547 The current hyphenation language as set by the
3548 .request hla
3549 request.
3551 .TPx
3552 .REG .hlc
3553 The number of immediately preceding consecutive hyphenated lines.
3555 .TPx
3556 .REG .hlm
3557 The maximum allowed number of consecutive hyphenated lines, as set by
3559 .request hlm
3560 request.
3562 .TPx
3563 .REG .hy
3564 The current hyphenation flags (as set by the
3565 .request hy
3566 request).
3568 .TPx
3569 .REG .hym
3570 The current hyphenation margin (as set by the
3571 .request hym
3572 request).
3574 .TPx
3575 .REG .hys
3576 The current hyphenation space (as set by the
3577 .request hys
3578 request).
3580 .TPx
3581 .REG .i
3582 Current indentation.
3584 .TPx
3585 .REG .in
3586 The indentation that applies to the current output line.
3588 .TPx
3589 .REG .int
3590 Positive if last output line contains
3591 .esc c .
3593 .TPx
3594 .REG .kern
3595 1\~if pairwise kerning is enabled, 0\~otherwise.
3597 .TPx
3598 .REG .l
3599 Current line length.
3601 .TPx
3602 .REG .lg
3603 The current ligature mode (as set by the
3604 .request lg
3605 request).
3607 .TPx
3608 .REG .linetabs
3609 The current line-tabs mode (as set by the
3610 .request linetabs
3611 request).
3613 .TPx
3614 .REG .ll
3615 The line length that applies to the current output line.
3617 .TPx
3618 .REG .lt
3619 The title length (as set by the
3620 .request lt
3621 request).
3623 .TPx
3624 .REG .m
3625 The current drawing color (string-valued).
3627 .TPx
3628 .REG .M
3629 The current background color (string-valued).
3631 .TPx
3632 .REG .n
3633 Length of text portion on previous output line.
3635 .TPx
3636 .REG .ne
3637 The amount of space that was needed in the last
3638 .request ne
3639 request that caused a trap to be sprung.
3641 Useful in conjunction with
3642 .register .trunc .
3644 .TPx
3645 .REG .ns
3646 1\~if in no-space mode, 0\~otherwise.
3648 .TPx
3649 .REG .o
3650 Current page offset.
3652 .TPx
3653 .REG .p
3654 Current page length.
3656 .TPx
3657 .REG .pe
3658 1\~during page ejection, 0\~otherwise.
3660 .TPx
3661 .REG .pn
3662 The number of the next page: either the value set by a
3663 .request pn
3664 request, or the number of the current page plus\ 1.
3666 .TPx
3667 .REG .ps
3668 The current point size in scaled points.
3670 .TPx
3671 .REG .psr
3672 The last-requested point size in scaled points.
3674 .TPx
3675 .REG .pvs
3676 The current post-vertical line spacing.
3678 .TPx
3679 .REG .rj
3680 The number of lines to be right-justified as set by the
3681 .request rj
3682 request.
3684 .TPx
3685 .REG .s
3686 Current point size as a decimal fraction.
3688 .TPx
3689 .REG .slant
3690 The slant of the current font as set with
3691 .request \[rs]S .
3693 .TPx
3694 .REG .sr
3695 The last requested point size in points as a decimal fraction
3696 (string-valued).
3698 .TPx
3699 .REG .ss
3700 The value of the parameters set by the first argument of the
3701 .request ss
3702 request.
3704 .TPx
3705 .REG .sss
3706 The value of the parameters set by the second argument of the
3707 .request ss
3708 request.
3710 .TPx
3711 .REG .sty
3712 The current font style (string-valued).
3714 .TPx
3715 .REG .t
3716 Vertical distance to the next trap.
3718 .TPx
3719 .REG .T
3720 Set to\~1
3721 if option
3722 .option \-T
3723 is used.
3725 .TPx
3726 .REG .tabs
3727 A string representation of the current tab settings suitable for use
3728 as an argument to the
3729 .request ta
3730 request.
3732 .TPx
3733 .REG .trunc
3734 The amount of vertical space truncated by the most recently sprung
3735 vertical position trap, or, if the trap was sprung by a
3736 .request ne
3737 request, minus the amount of vertical motion produced by
3738 .request .ne .
3740 Useful in conjunction with the
3741 .register .ne .
3743 .TPx
3744 .REG .u
3745 Equal to 1 in fill mode and 0 in no-fill mode.
3747 .TPx
3748 .REG .U
3749 Equal to 1 in safer mode and 0 in unsafe mode.
3751 .TPx
3752 .REG .v
3753 Current vertical line spacing.
3755 .TPx
3756 .REG .V
3757 Available vertical resolution in basic units.
3759 .TPx
3760 .REG .vpt
3761 1\~if vertical position traps are enabled, 0\~otherwise.
3763 .TPx
3764 .REG .w
3765 Width of previous glyph.
3767 .TPx
3768 .REG .warn
3769 The sum of the number codes of the currently enabled warnings.
3771 .TPx
3772 .REG .x
3773 The major version number.
3775 .TPx
3776 .REG .y
3777 The minor version number.
3779 .TPx
3780 .REG .Y
3781 The revision number of groff.
3783 .TPx
3784 .REG .z
3785 Name of current diversion.
3787 .TPx
3788 .REG .zoom
3789 Zoom factor for current font (in multiples of 1/1000th; zero if no
3790 magnification).
3794 .\" --------------------------------------------------------------------
3795 .SS "Writable Registers"
3796 .\" --------------------------------------------------------------------
3798 The following registers can be read and written by the user.
3799 They have predefined default values, but these can be modified for
3800 customizing a document.
3803 .PD 0
3804 .TPx
3805 .REG %
3806 Current page number.
3808 .TPx
3809 .REG c.
3810 Current input line number.
3812 .TPx
3813 .REG ct
3814 Character type (set by width function
3815 .esc w ).
3817 .TPx
3818 .REG dl
3819 Maximal width of last completed diversion.
3821 .TPx
3822 .REG dn
3823 Height of last completed diversion.
3825 .TPx
3826 .REG dw
3827 Current day of week (1-7).
3829 .TPx
3830 .REG dy
3831 Current day of month (1-31).
3833 .TPx
3834 .REG hours
3835 The number of hours past midnight.
3837 Initialized at start-up.
3839 .TPx
3840 .REG hp
3841 Current horizontal position at input line.
3843 .TPx
3844 .REG llx
3845 Lower left x-coordinate (in PostScript units) of a given PostScript
3846 image (set by
3847 .request .psbb ).
3849 .TPx
3850 .REG lly
3851 Lower left y-coordinate (in PostScript units) of a given PostScript
3852 image (set by
3853 .request .psbb ).
3855 .TPx
3856 .REG ln
3857 Output line number.
3859 .TPx
3860 .REG minutes
3861 The number of minutes after the hour.
3863 Initialized at start-up.
3865 .TPx
3866 .REG mo
3867 Current month (1-12).
3869 .TPx
3870 .REG nl
3871 Vertical position of last printed text base-line.
3873 .TPx
3874 .REG rsb
3875 Like
3876 .register sb ,
3877 but takes account of the heights and depths of glyphs.
3879 .TPx
3880 .REG rst
3881 Like
3882 .register st ,
3883 but takes account of the heights and depths of glyphs.
3885 .TPx
3886 .REG sb
3887 Depth of string below base line (generated by width function
3888 .esc w ).
3890 .TPx
3891 .REG seconds
3892 The number of seconds after the minute.
3894 Initialized at start-up.
3896 .TPx
3897 .REG skw
3898 Right skip width from the center of the last glyph in the
3899 .esc w
3900 argument.
3902 .TPx
3903 .REG slimit
3904 If greater than 0, the maximum number of objects on the input stack.
3906 If \[<=]0 there is no limit, i.e., recursion can continue until virtual
3907 memory is exhausted.
3909 .TPx
3910 .REG ssc
3911 The amount of horizontal space (possibly negative) that should be
3912 added to the last glyph before a subscript (generated by width
3913 function
3914 .esc w ).
3916 .TPx
3917 .REG st
3918 Height of string above base line (generated by width function
3919 .esc w ).
3921 .TPx
3922 .REG systat
3923 The return value of the
3924 .I system()
3925 function executed by the last
3926 .request sy
3927 request.
3929 .TPx
3930 .REG urx
3931 Upper right x-coordinate (in PostScript units) of a given PostScript
3932 image (set by
3933 .request .psbb ).
3935 .TPx
3936 .REG ury
3937 Upper right y-coordinate (in PostScript units) of a given PostScript
3938 image (set by
3939 .request .psbb ).
3941 .TPx
3942 .REG year
3943 The current year (year 2000 compliant).
3945 .TPx
3946 .REG yr
3947 Current year minus 1900.
3949 For Y2K compliance use
3950 .register year
3951 instead.
3956 .\" --------------------------------------------------------------------
3957 .SH COMPATIBILITY
3958 .\" --------------------------------------------------------------------
3960 The differences of the groff language in comparison to classical troff
3961 as defined by
3962 .I [CSTR\~#54]
3963 are documented in
3964 .BR groff_diff (@MAN7EXT@).
3967 The groff system provides a compatibility mode, see
3968 .BR groff (@MAN1EXT@)
3969 on how to invoke this.
3972 .\" --------------------------------------------------------------------
3973 .SH BUGS
3974 .\" --------------------------------------------------------------------
3976 Report bugs to the
3977 .MT bug-groff@gnu.org
3978 groff bug mailing list
3979 .ME .
3980 Include a complete, self-contained example that will allow the bug to
3981 be reproduced, and say which version of groff you are using.
3984 .\" --------------------------------------------------------------------
3985 .SH AUTHORS
3986 .\" --------------------------------------------------------------------
3988 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
3989 Free Software Foundation, Inc.
3992 This document is distributed under the terms of the FDL (GNU Free
3993 Documentation License) version 1.3 or later.
3995 You should have received a copy of the FDL on your system, it is also
3996 available on-line at the
3997 .UR http://\:www.gnu.org/\:copyleft/\:fdl.html
3998 GNU copyleft site
3999 .UE .
4002 This document is part of
4003 .IR groff ,
4004 the GNU roff distribution.
4006 It was written by
4007 .MT bwarken@mayn.de
4008 Bernd Warken
4009 .ME ;
4010 it is maintained by
4011 .MT wl@gnu.org
4012 Werner Lemberg
4013 .ME .
4016 .\" --------------------------------------------------------------------
4017 .SH "SEE ALSO"
4018 .\" --------------------------------------------------------------------
4021 The main source of information for the groff language is the
4022 .B groff
4023 .BR info (1)
4024 file.
4026 Besides the gory details, it contains many examples.
4029 .BR groff (@MAN1EXT@)
4030 the usage of the groff program and pointers to the documentation and
4031 availability of the groff system.
4034 .BR groff_diff (@MAN7EXT@)
4035 the differences of the groff language as compared to classical roff.
4037 This is the authoritative document for the predefined language
4038 elements that are specific to groff.
4041 .BR groff_char (@MAN7EXT@)
4042 the predefined groff special characters (glyphs).
4045 .BR groff_font (@MAN5EXT@)
4046 the specification of fonts and the DESC file.
4049 .BR roff (@MAN7EXT@)
4050 the history of roff, the common parts shared by all roff systems, and
4051 pointers to further documentation.
4054 .I [CSTR\~#54]
4055 .UR http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz
4056 Nroff/\:Troff User's Manual by Ossanna & Kernighan
4058 \[em] the bible for classical troff.
4060 .cp \n[groff_C]
4062 .\" --------------------------------------------------------------------
4063 .\" Emacs Setup
4064 .\" --------------------------------------------------------------------
4066 .\" Local Variables:
4067 .\" mode: nroff
4068 .\" End: