Added new font `SC' (cmtex10) to devdvi.
[s-roff.git] / man / groff.man
blob66ace56acc6ca566caf891b183c8ff5c0c5ba9ed
1 '\" t
2 .ig
3 groff.man
5 Last update: 10 Nov 2002
7 This file is part of groff, the GNU roff type-setting system.
9 Copyright (C) 2000, 2001, 2002 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.1 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 .mso www.tmac
29 .if n \{\
30 .  mso tty-char.tmac
31 .  ftr CR R
32 .  ftr CI I
33 .  ftr CB B
34 .\}
36 .if '\*[.T]'dvi' \{\
37 .  ftr CB CW
38 .\}
41 .\" --------------------------------------------------------------------
42 .\" start of macro definitions
43 .eo
45 .de c
48 .de TPx
49 .  TP 10n
51 .c ---------------------------------------------------------------------
52 .c .Text anything ...
54 .c All arguments are printed as text.
56 .de Text
57 .  nop \)\$*
59 .c ---------------------------------------------------------------------
60 .c .ExecFF macro font1 font2 text1 text2 text1 text2 ...
62 .c Concat text arguments using alternating fonts and feed into macro.
63 .c For a trailing punctuation, terminate the call with \c.
65 .de ExecFF
66 .  if (\n[.$] < 4) \
67 .    return
68 .  ds @a\"
69 .  ds @m \$1\"
70 .  ds @f1 \$2\"
71 .  ds @f2 \$3\"
72 .  shift 3
73 .  ds @s\"
74 .  while 1 \{\
75 .    if (\n[.$] = 0) \
76 .      break
77 .    ds @a \$1\"
78 .    as @s \f[\*[@f1]]\*[@a]\f[]\"
79 .    shift
80 .    if (\n[.$] = 0) \
81 .      break
82 .    ds @a \$1\"
83 .    as @s \f[\*[@f2]]\*[@a]\f[]\"
84 .    shift
85 .  \}
86 .  \*[@m] "\*[@s]\f[R]"
87 .  ft P                 \" to make \c happy
88 .  rm @m
89 .  rm @s
90 .  rm @a
91 .  rm @f1
92 .  rm @f2
95 .c --------- command line option ---------
97 .de option
98 .  Text \f[CB]\$*
99 .  ft P
102 .c --------- characters ---------
104 .de character
105 .  ExecFF Text CB R \$*
107 .de squoted_char
108 .  ds @1 \$1\"
109 .  shift
110 .  ExecFF Text R CB \[oq] \*[@1] "\[cq]\$*"
111 .  rm @1
113 .de dquoted_char
114 .  ds @1 \$1\"
115 .  shift
116 .  ExecFF Text R CB \[lq] \*[@1] "\[rq]\$*"
117 .  rm @1
119 .c --------- requests ---------
121 .c synopsis of a request
122 .de REQ
123 .  if (\n[.$] = 0) \
124 .    return
125 .  ds @1 \$1\"
126 .  shift 1
127 .  ie (\n[.$] = 0) \{\
128 .    TP 10n
129 .    Text \f[CB]\*[@1]\f[]
130 .  \}
131 .  el \{\
132 .    TP 10n
133 .    Text \f[CB]\*[@1]\~\f[]\f[I]\$*\f[]
134 .  \}
135 .  rm @1
137 .c reference of a request
138 .de request
139 .  BR \$*
142 .c --------- numerical elements ---------
144 .c number with a trailing unit
145 .de scalednumber
146 .  Text \$1\^\f[CB]\$2\f[]\$3\f[R]
147 .  ft P
150 .c representation of units within the text
151 .de scaleindicator
152 .  Text \f[CB]\$1\f[]\$2\f[R]
153 .  ft P
156 .c representation of mathematical operators within the text
157 .de operator
158 .  squoted_char \$@
162 .c --------- escape sequences ---------
164 .c ---------------------------------------------------------------------
165 .c .ESC name [arg]
167 .c Synopsis of an escape sequence, optionally with argument
168 .c Args   : 1 or 2; `name' obligatory, `arg' optional
169 .c   name : suitable name for an escape sequence (c, (xy, [long])
170 .c   arg  : arbitrary word
171 .c Result : prints \namearg, where `name' is in CB, `arg' in I
173 .de ESC
174 .  if (\n[.$] < 1)
175 .    ab .ESC needs 1 or 2 arguments.
176 .  ExecFF IP CB I "\[rs]\$1" "\,\$2\/"
178 .c ---------------------------------------------------------------------
179 .c .ESC[] name arg
181 .c Synopsis for escape sequence with a bracketed long argument
182 .c Args   : 2 obligatory
183 .c   name : suitable name for an escape sequence (c, (xy, [long])
184 .c   arg  : arbitrary text
185 .c Result : prints \name[arg], where `name' is in CB, `arg' in I
187 .de ESC[]
188 .  if !(\n[.$] = 2) \
189 .    ab .ESC[] needs exactly 2 arguments.
190 .  ExecFF IP CB I "\[rs]\$1\[lB]" "\h'-0.2m'\$2\h'-0.15m'" \[rB]
192 .c ---------------------------------------------------------------------
193 .c .ESCq name arg
195 .c Synopsis for escape sequence with a bracketed long argument
196 .c Args   : 2 obligatory
197 .c   name : suitable name for an escape sequence (c, (xy, [long])
198 .c   arg  : arbitrary text
199 .c Result : prints \name'arg', where `name' is in CB, `arg' in I
201 .de ESCq
202 .  if !(\n[.$] = 2) \
203 .    ab .ESCq needs exactly 2 argument.
204 .  ExecFF IP CB I "\[rs]\$1\[cq]" "\h'-0.3m'\$2" \[cq]
206 .c ---------------------------------------------------------------------
207 .c .ESC? arg
209 .c Synopsis for escape sequence with a bracketed long argument
210 .c Args   : 1 obligatory
211 .c   arg  : arbitrary text
212 .c Result : prints `\?arg?', where the `?' are in CB, `arg' in I
214 .de ESC?
215 .  if !(\n[.$] = 1) \
216 .    ab .ESC? needs exactly 1 arguments.
217 .  ExecFF IP CB I \[rs]? "\$1" ?
219 .c ---------------------------------------------------------------------
220 .c .esc name [punct]
222 .c Reference of an escape sequence (no args), possibly punctuation
223 .c Args    : 1 obligatory
224 .c   name  : suitable name for an escape sequence (c, (xy, [long])
225 .c   punct : arbitrary
226 .c Result  : prints \name, where `name' is in B, `punct' in R
228 .de esc
229 .  if (\n[.$] < 1) \
230 .    ab .esc needs 1 or 2 arguments.
231 .  BR "\[rs]\$1" \$2
233 .c ---------------------------------------------------------------------
234 .c .escarg name arg [punct]
236 .c Reference of an escape sequence (no args)
237 .c Args    : 1 obligatory, 1 optional
238 .c   name  : suitable name for an escape sequence (c, (xy, [long])
239 .c   arg   : arbitrary word
240 .c Result  : prints \namearg, where
241 .c           `name' is in B, `arg' in I
243 .de escarg
244 .  if (\n[.$] < 2) \
245 .    ab .esc needs 2 or 3 arguments.
246 .  Text \f[B]\[rs]\$1\f[]\f[I]\$2\f[]\$3
248 .c ---------------------------------------------------------------------
249 .c .esc[] name arg [punct]
251 .c Reference for escape sequence with a bracketed long argument
252 .c Args   : 2 obligatory
253 .c   name : suitable name for an escape sequence (c, (xy, [long])
254 .c   arg  : arbitrary text
255 .c Result : prints \name[arg], where `name' is in CB, `arg' in CI
257 .de esc[]
258 .  if (\n[.$] < 2) \
259 .    ab .esc[] needs 2 or 3 arguments.
260 .  Text \f[B]\[rs]\$1\[lB]\f[]\f[I]\$2\f[]\f[B]\[rB]\f[]\$3
263 .c ---------------------------------------------------------------------
264 .c .escq name arg
266 .c Reference for escape sequence with a bracketed long argument
267 .c Args   : 2 obligatory
268 .c   name : suitable name for an escape sequence (c, (xy, [long])
269 .c   arg  : arbitrary text
270 .c Result : prints \name'arg', where `name' is in CB, `arg' in CI
272 .de escq
273 .  if (\n[.$] < 2) \
274 .    ab .escq needs 2 arguments.
275 .  Text \f[B]\[rs]\$1\[cq]\f[]\f[I]\$2\f[]\f[B]\[cq]\f[]\$3
278 .c --------- strings ---------
280 .c synopsis for string, with \*[]
281 .de STRING
282 .  ds @1 \$1\"
283 .  shift 1
284 .  TP 10n
285 .  ExecFF Text R CB \[rs]*[ \*[@1]\f[]\f[R]] \$*
286 .  rm @1
288 .c synopsis for a long string
289 .de string
290 .  if (\n[.$] = 0) \
291 .    return
292 .  Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[]\$2
296 .c --------- registers ---------
298 .c synopsis for registers, with \n[]
299 .de REG
300 .  ds @1 \$1\"
301 .  shift 1
302 .  TP 10n
303 .  ExecFF Text R CB \[rs]n[ \*[@1]\f[]\f[R]] \$*
304 .  rm @1
306 .c reference of a register, without decoration
307 .de register
308 .  Text register
309 .  BR \$*
313 .\" end of macro definitions
316 .\" --------------------------------------------------------------------
317 .\" Title
318 .\" --------------------------------------------------------------------
320 .TH GROFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
321 .SH NAME
322 groff \- a short reference for the GNU roff language
325 .\" --------------------------------------------------------------------
326 .SH DESCRIPTION
327 .\" --------------------------------------------------------------------
329 The name
330 .I groff
331 stands for
332 .I GNU roff
333 and is the free implementation of the roff type-setting system.
336 .BR roff (@MAN7EXT@)
337 for a survey and the background of the groff system.
340 This document gives only short descriptions of the predefined roff
341 language elements as used in groff.
343 Both the classical features and the groff extensions are provided.
346 Historically, the
347 .I roff language
348 was called
349 .IR troff .
350 .I groff
351 is compatible with the classical system and provides proper
352 extensions.
354 So in GNU, the terms
355 .IR roff ,
356 .IR troff ,
358 .I groff language
359 could be used as synonyms.
361 However
362 .I troff
363 slightly tends to refer more to the classical aspects, whereas
364 .I groff
365 emphasizes the GNU extensions, and
366 .I roff
367 is the general term for the language.
370 This file is only a short version of the complete documentation that
371 is found in the
372 .I groff
373 .BR info (1)
374 file, which contains more detailed, actual, and concise information.
377 The general syntax for writing groff documents is relatively easy, but
378 writing extensions to the roff language can be a bit harder.
381 The roff language is line-oriented.
383 There are only two kinds of lines, control lines and text lines.
385 The control lines start with a control character, by default a period
386 .dquoted_char .
387 or a single quote
388 .dquoted_char ' ;
389 all other lines are text lines.
392 .B Control lines
393 represent commands, optionally with arguments.
395 They have the following syntax.
397 The leading control character can be followed by a command name;
398 arguments, if any, are separated by blanks from the command name and
399 among themselves, for example,
403 .Text .command_name arg1 arg2
407 For indentation, any number of space or tab characters can be inserted
408 between the leading control character and the command name, but the
409 control character must be on the first position of the line.
412 .B Text lines
413 represent the parts that will be printed.
414 They can be modified by escape sequences, which are recognized by a
415 leading backslash
416 .squoted_char \[rs] .
417 These are in-line or even in-word formatting elements or functions.
419 Some of these take arguments separated by single quotes
420 .dquoted_char ' ,
421 others are regulated by a length encoding introduced by an open
422 parenthesis
423 .squoted_char (
424 or enclosed in brackets
425 .squoted_char [
427 .squoted_char ] .
430 The roff language provides flexible instruments for writing language
431 extension, such as macros.
433 When interpreting macro definitions, the roff system enters a special
434 operating mode, called the
435 .BR "copy mode" .
438 The copy mode behavior can be quite tricky, but there are some rules
439 that ensure a safe usage.
441 .IP 1.
442 Printable backslashes must be denoted as
443 .esc e .
444 To be more precise,
445 .esc e
446 represents the current escape character.
448 To get a backslash glyph, use
449 .esc (rs
451 .esc [rs] .
452 .IP 2.
453 Double all backslashes.
454 .IP 3.
455 Begin all text lines with the special non-spacing character
456 .esc & .
459 This does not produce the most efficient code, but it should work as a
460 first measure.
462 For better strategies, see the groff info file and
463 .BR groff_tmac (@MAN5EXT@).
466 Reading roff source files is easier, just reduce all double backslashes
467 to a single one in all macro definitions.
470 .\" --------------------------------------------------------------------
471 .SH "GROFF ELEMENTS"
472 .\" --------------------------------------------------------------------
474 The roff language elements add formatting information to a text file.
476 The fundamental elements are predefined commands and variables that
477 make roff a full-blown programming language.
480 There are two kinds of roff commands, possibly with arguments.
481 .B Requests
482 are written on a line of their own starting with a dot
483 .squoted_char .
484 or a
485 .dquoted_char ' ,
486 whereas
487 .B Escape sequences
488 are in-line functions and in-word formatting elements starting with a
489 backslash
490 .squoted_char \[rs] .
493 The user can define her own formatting commands using the
494 .request de
495 request.
497 These commands are called
498 .BR macros ,
499 but they are used exactly like requests.
501 Macro packages are pre-defined sets of macros written in the groff
502 language.
504 A user's possibilities to create escape sequences herself is very
505 limited, only special characters can be mapped.
508 The groff language provides several kinds of variables with
509 different interfaces.
511 There are pre-defined variables, but the user can define her own
512 variables as well.
515 .B String
516 variables store character sequences.
518 They are set with the
519 .request ds
520 request and retrieved by the
521 .esc *
522 escape sequences.
524 Strings can have variables.
527 .B Register
528 variables can store numerical values, numbers with a scale unit, and
529 occasionally string-like objects.
531 They are set with the
532 .request nr
533 request and retrieved by the
534 .esc n
535 escape sequences.
538 .B Environments
539 allow the user to temporarily store global formatting parameters like
540 line length, font size, etc.\& for later reuse.
542 This is done by the
543 .request ev
544 request.
547 .B Fonts
548 are identified either by a name or by an internal number.
550 The current font is chosen by the
551 .request ft
552 request or by the
553 .esc f
554 escape sequences.
556 Each device has special fonts, but the following fonts are available
557 for all devices.
558 .B R
559 is the standard font Roman.
560 .B B
561 is its
562 .B bold
563 counterpart.
566 .I italic
567 font is called
568 .B I
569 and is available everywhere, but on text devices it is displayed as an
570 underlined Roman font.
572 For the graphical output devices, there exist constant-width pendants
573 of these fonts,
574 .BR CR ,
575 .BR CI ,
577 .BR CB .
578 On text devices, all characters have a constant width anyway.
581 Moreover, there are some advanced roff elements.
584 .B diversion
585 stores information into a macro for later usage.
588 .B trap
589 is a positional condition like a certain number of lines from page top
590 or in a diversion or in the input.
592 Some action can be prescribed to be run automatically when the
593 condition is met.
596 More detailed information and examples can be found in the groff info
597 file.
600 .\" --------------------------------------------------------------------
601 .SH "CONTROL CHARACTERS"
602 .\" --------------------------------------------------------------------
604 There is a small set of characters that have a special controlling
605 task in certain conditions.
608 .character .
609 A dot is only special at the beginning of a line or after the
610 condition in the requests
611 .request if ,
612 .request ie ,
613 .request el ,
615 .request while .
616 There it is the control character that introduces a request (or macro).
618 The special behavior can be delayed by using the
619 .esc .
620 escape.
622 By using the 
623 .request cc
624 request, the control character can be set to a different character,
625 making the dot
626 .squoted_char .
627 a non-special character.
628 .IP ""
629 In all other positions, it just means a dot character.
631 In text paragraphs, it is advantageous to start each sentence at a
632 line of its own.
635 .character '
636 The single quote has two controlling tasks.
638 At the beginning of a line and in the conditional requests it is the
639 non-breaking control character.
641 That means that it introduces a request like the dot, but with the
642 additional property that this request doesn't cause a linebreak.
644 By using the 
645 .request c2
646 request, the non-break control character can be set to a different
647 character.
649 .IP ""
650 As a second task, it is the most commonly used argument separator in
651 some functional escape sequences (but any pair of characters not part
652 of the argument will work).
654 In all other positions, it denotes the single quote or apostrophe
655 character.
657 Groff provides a printable representation with the
658 .esc (cq
659 escape sequence.
662 .character \[dq]
663 The double quote is used to enclose arguments in requests, macros, and
664 strings.
666 In the
667 .request ds
669 .request as
670 requests, a leading double quote in the argument will be stripped off,
671 making everything else afterwards the string to be defined (enabling
672 leading whitespace).
674 The escaped double quote
675 .esc \[dq]
676 introduces a comment.
678 Otherwise, it is not special.
680 Groff provides a printable representation with the
681 .esc (dq
682 escape sequence.
685 .character \[rs]
686 The backslash usually introduces an escape sequence (this can be
687 changed with the
688 .request ec
689 request).
691 A printed version of the escape character is the
692 .esc e
693 escape; a backslash glyph can be obtained by
694 .esc (rs .
696 .character (
697 The open parenthesis is only special in escape sequences when
698 introducing an escape name or argument consisting of exactly two
699 characters.
701 In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
703 .character [
704 The opening bracket is only special in groff escape sequences; there
705 it is used to introduce a long escape name or long escape argument.
707 Otherwise, it is non-special, e.g.\& in macro calls.
709 .character ]
710 The closing bracket is only special in groff escape sequences; there
711 it terminates a long escape name or long escape argument.
713 Otherwise, it is non-special.
715 \f[CI]space\f[]
716 Space characters are only functional characters.
718 They separate the arguments in requests, macros, and strings, and the words
719 in text lines.
721 They are subject to groff's horizontal spacing calculations.
723 To get a defined space width, escape sequences like
724 .squoted_char "\[rs]\ "
725 (this is the escape character followed by a space),
726 .esc | ,
727 .esc ^ ,
729 .esc h
730 should be used.
732 .IP \f[CI]newline\f[]
733 In text paragraphs, newlines mostly behave like space characters.
735 Continuation lines can be specified by an escaped newline, i.e., by
736 specifying a backslash
737 .squoted_char \[rs]
738 as the last character of a line.
739 .IP \f[CI]tab\f[]
740 If a tab character occurs during text the interpreter makes a
741 horizontal jump to the next pre-defined tab position.
743 There is a sophisticated interface for handling tab positions.
746 .\" --------------------------------------------------------------------
747 .SH "NUMERICAL EXPRESSIONS"
748 .\" --------------------------------------------------------------------
751 .B numerical value
752 is a signed or unsigned integer or float with or without an appended
753 scaling indicator.
756 .B scaling indicator
757 is a one-character abbreviation for a unit of measurement.
759 A number followed by a scaling indicator signifies a size value.
761 By default, numerical values do not have a scaling indicator, i.e., they
762 are normal numbers.
766 .I roff
767 language defines the following scaling indicators.
771 .PD 0
774 .TPx
775 .B c
776 Centimeter
778 .TPx
779 .B i
780 Inch
782 .TPx
783 .B P
784 Pica\ \[eq]\ 1/6\ inch
786 .TPx
787 .B p
788 Point\ \[eq]\ 1/72\ inch
790 .TPx
791 .B m
792 Em\ \[eq]\ \f[R]the font size in points (width of letter `\f[CR]m\f[R]')
794 .TPx
795 .B M
796 100\^th \f[R]of an \f[CR]Em
798 .TPx
799 .B n
800 En\ \[eq]\ Em/2
802 .TPx
803 .B u
804 Basic unit for actual output device
806 .TPx
807 .B v
808 Vertical line space in basic units
809 scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
810 font \f[I]DESC\f[] file)
812 .TPx
813 .B f
814 Scale by 65536.
819 .B Numerical expressions
820 are combinations of the numerical values defined above with the
821 following arithmetical operators already defined in classical troff.
824 .PD 0
827 .TPx
828 .B +
829 Addition
831 .TPx
832 .B \-
833 Subtraction
835 .TPx
836 .B *
837 Multiplication
839 .TPx
840 .B /
841 Division
843 .TPx
844 .B %
845 Modulo
847 .TPx
848 .B =
849 Equals
851 .TPx
852 .B ==
853 Equals
855 .TPx
856 .B <
857 Less than
859 .TPx
860 .B >
861 Greater than
863 .TPx
864 .B <=
865 Less or equal
867 .TPx
868 .B >=
869 Greater or equal
871 .TPx
872 .B &
873 Logical and
875 .TPx
876 .B :
877 Logical or
879 .TPx
880 .B !
881 Logical not
883 .TPx
884 .B (
885 Grouping of expressions
887 .TPx
888 .B )
889 Close current grouping
895 Moreover,
896 .I groff
897 added the following operators for numerical expressions:
900 .PD 0
903 .TPx
904 .ExecFF Text I CB e1 >? e2
905 The maximum of
906 .I e1
908 .IR e2 .
910 .TPx
911 .ExecFF Text I CB e1 <? e2
912 The minimum of
913 .I e1
915 .IR e2 .
917 .TPx
918 .ExecFF Text CB I ( c ; e )
919 Evaluate
920 .I e
921 using
922 .I c
923 as the default scaling indicator.
929 For details see the groff info file.
932 .\" --------------------------------------------------------------------
933 .SH CONDITIONS
934 .\" --------------------------------------------------------------------
936 .B Conditions
937 occur in tests raised by the
938 .request if ,
939 .request ie ,
940 and the
941 .request while
942 requests.
944 The following table characterizes the different types of conditions.
947 .PD 0
950 .TPx
951 .I N
952 A numerical expression
953 .I N
954 yields true if its value is greater than\~0.
956 .TPx
957 .BI ! N
958 True if the value of
959 .I I
960 is\~0.
962 .TPx
963 .BI ' s1 ' s2 '
964 True if string\~\c
965 .I s1
966 is identical to string\~\c
967 .IR s2 .
969 .TPx
970 .BI !' s1 ' s2 '
971 True if string\~\c
972 .I s1
973 is not identical to string\~\c
974 .IR s2 .
976 .TPx
977 .BI c ch
978 True if there is a character\~\c
979 .I ch
980 available.
982 .TPx
983 .BI d name
984 True if there is a string, macro, diversion, or request called
985 .IR name .
987 .TPx
988 .B e
989 Current page number is even.
991 .TPx
992 .B o
993 Current page number is odd.
995 .TPx
996 .BI m name
997 True if there is a color called
998 .IR name .
1000 .TPx
1001 .B n
1002 Formatter is
1003 .BR nroff .
1005 .TPx
1006 .BI r reg
1007 True if there is a register named
1008 .IR reg .
1010 .TPx
1011 .B t
1012 Formatter is
1013 .BR troff .
1019 .\" --------------------------------------------------------------------
1020 .SH REQUESTS
1021 .\" --------------------------------------------------------------------
1023 This section provides a short reference for the predefined requests.
1025 In groff, request and macro names can be arbitrarily long.
1027 No bracketing or marking of long names is needed.
1030 Most requests take one or more arguments.
1032 The arguments are separated by space characters (no tabs!); there is
1033 no inherent limit for their length or number.
1035 An argument can be enclosed by a pair of double quotes.
1037 This is very handy if an argument contains space characters, e.g.,
1038 .RI \[dq] "arg with space" \[dq]
1039 denotes a single argument.
1042 Some requests have optional arguments with a different behaviour.
1044 Not all of these details are outlined here.
1046 Refer to the groff info file and
1047 .BR groff_diff (@MAN7EXT@)
1048 for all details.
1051 In the following request specifications, most argument names were
1052 chosen to be descriptive.
1054 Only the following denotations need clarification.
1057 .PD 0
1060 .TPx
1061 .I c
1062 denotes a single character.
1064 .TPx
1065 .I font
1066 a font either specified as a font name or a font number.
1068 .TPx
1069 .I anything
1070 all characters up to the end of the line or within
1071 .esc {
1073 .esc } .
1075 .TPx
1076 .I n
1077 is a numerical expression that evaluates to an integer value.
1079 .TPx
1080 .I N
1081 is an arbitrary numerical expression, signed or unsigned.
1083 .TPx
1084 .I \[+-]N
1085 has three meanings depending on its sign, described below.
1091 If an expression defined as
1092 .I \[+-]N
1093 starts with a
1094 .squoted_char +
1095 sign the resulting value of the expression will be added to an already
1096 existing value inherent to the related request, e.g.\& adding to a number
1097 register.
1099 If the expression starts with a
1100 .squoted_char -
1101 the value of the expression will be subtracted from the request value.
1104 Without a sign,
1105 .I N
1106 replaces the existing value directly.
1108 To assign a negative number either prepend\~0 or enclose the negative
1109 number in parentheses.
1112 .\" --------------------------------------------------------------------
1113 .SS "Request Short Reference"
1114 .\" --------------------------------------------------------------------
1116 .PD 0
1118 .REQ .
1119 Empty line, ignored.
1121 Useful for structuring documents.
1123 .REQ .\[rs]\[dq] anything
1124 Complete line is a comment.
1126 .REQ .ab string
1127 Print
1128 .I string
1129 on standard error, exit program.
1131 .REQ .ad
1132 Begin line adjustment for output lines in current adjust mode.
1134 .REQ .ad c
1135 Start line adjustment in mode
1136 .I c
1137 (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,r,b,n\f[]).
1139 .REQ .af register c
1140 Assign format
1141 .I c
1143 .I register
1144 (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
1146 .REQ .aln alias register
1147 Create alias name for
1148 .IR register .
1150 .REQ .als alias object
1151 Create alias name for request, string, macro, or diversion
1152 .IR object .
1154 .REQ .am macro
1155 Append to
1156 .I macro
1157 until
1158 .B ..\&
1159 is encountered.
1161 .REQ .am macro end
1162 Append to
1163 .I macro
1164 until
1165 .request .end
1166 is called.
1168 .REQ .ami macro
1169 Append to a macro whose name is contained in the string register
1170 .I macro
1171 until
1172 .B ..\&
1173 is encountered.
1175 .REQ .ami macro end
1176 Append to a macro indirectly.
1177 .I macro
1179 .I end
1180 are string registers whose contents are interpolated for the macro name
1181 and the end macro, respectively.
1183 .REQ .am1 macro
1184 Same as
1185 .request .am
1186 but with compatibility mode switched off during macro expansion.
1188 .REQ .am1 macro end
1189 Same as
1190 .request .am
1191 but with compatibility mode switched off during macro expansion.
1193 .REQ .as stringvar anything
1194 Append
1195 .I anything
1197 .IR stringvar .
1199 .REQ .asciify diversion
1200 Unformat ASCII characters, spaces, and some escape sequences in
1201 .IR diversion .
1203 .REQ .as1 stringvar anything
1204 Same as
1205 .request .as
1206 but with compatibility mode switched off during string expansion.
1208 .REQ .backtrace
1209 Print a backtrace of the input on stderr.
1211 .REQ .bd font N
1212 Embolden
1213 .I font
1215 .IR N -1
1216 units.
1218 .REQ .bd S font N
1219 Embolden Special Font
1220 .I S
1221 when current font is
1222 .IR font .
1224 .REQ .blm
1225 Unset the blank line macro.
1227 .REQ .blm macro
1228 Set the blank line macro to
1229 .IR macro .
1231 .REQ .box
1232 End current diversion.
1234 .REQ .box macro
1235 Divert to
1236 .IR macro ,
1237 omitting a partially filled line.
1239 .REQ .boxa
1240 End current diversion.
1242 .REQ .boxa macro
1243 Divert and append to
1244 .IR macro ,
1245 omitting a partially filled line.
1247 .REQ .bp
1248 Eject current page and begin new page.
1250 .REQ .bp \[+-]N
1251 Eject current page; next page number
1252 .IR \[+-]N .
1254 .REQ .br
1255 Line break.
1257 .REQ .brp
1258 Break and spread output line.
1259 Same as
1260 .esc p .
1262 .REQ .break
1263 Break out of a while loop.
1265 .REQ .c2
1266 Reset no-break control character to
1267 .dquoted_char ' .
1269 .REQ .c2 c
1270 Set no-break control character to
1271 .IR c .
1273 .REQ .cc
1274 Reset control character to
1275 .squoted_char . .
1277 .REQ .cc c
1278 Set control character to
1279 .IR c .
1281 .REQ .ce
1282 Center the next input line.
1284 .REQ .ce N
1285 Center following
1286 .I N
1287 input lines.
1289 .REQ .cf filename
1290 Copy contents of file
1291 .I filename
1292 unprocessed to stdout or to the diversion.
1294 .REQ .cflags mode c1 c2 .\|.\|.\&
1295 Treat characters
1296 .IR c1 ,
1297 .IR c2 ,
1298 .I .\|.\|.\&
1299 according to
1300 .I mode
1301 number.
1303 .REQ .ch trap N
1304 Change
1305 .I trap
1306 location
1308 .I N .
1310 .REQ .char c anything
1311 Define character
1312 .I c
1313 as string
1314 .IR anything .
1316 .REQ .chop object
1317 Chop the last character off macro, string, or diversion
1318 .IR object .
1320 .REQ .close stream
1321 Close the
1322 .IR stream .
1324 .REQ .color
1325 Enable colors.
1327 .REQ .color N
1329 .I N
1330 is zero disable colors, otherwise enable them.
1332 .REQ .continue
1333 Finish the current iteration of a while loop.
1335 .REQ .cp
1336 Enable compatibility mode.
1338 .REQ .cp N
1340 .I N
1341 is zero disable compatibility mode, otherwise enable it.
1343 .REQ .cs font N M
1344 Set constant character width mode for
1345 .I font
1347 .IR N /36
1348 ems with em
1349 .IR M .
1351 .REQ .cu N
1352 Continuous underline in nroff, like
1353 .request .ul
1354 in troff.
1356 .REQ .da
1357 End current diversion.
1359 .REQ .da macro
1360 Divert and append to
1361 .IR macro .
1363 .REQ .de macro
1364 Define or redefine
1365 .I macro
1366 until
1367 .B ..\&
1368 is encountered.
1370 .REQ .de macro end
1371 Define or redefine
1372 .I macro
1373 until
1374 .request .end
1375 is called.
1377 .REQ .de1 macro
1378 Same as
1379 .request .de
1380 but with compatibility mode switched off during macro expansion.
1382 .REQ .de1 macro end
1383 Same as
1384 .request .de
1385 but with compatibility mode switched off during macro expansion.
1387 .REQ .defcolor color scheme component
1388 Define or redefine a color with name
1389 .IR color .
1390 .I scheme
1391 can be
1392 .BR rgb ,
1393 .BR cym ,
1394 .BR cymk ,
1395 .BR gray ,
1397 .BR grey .
1398 .I component
1399 can be single components specified as fractions in the range 0 to 1
1400 (default scaling indicator\~\c
1401 .scaleindicator f ),
1402 as a string of two-digit hexadecimal color components with a leading
1403 .BR # ,
1404 or as a string of four-digit hexadecimal components with two leading
1405 .BR # .
1406 The color
1407 .B default
1408 can't be redefined.
1410 .REQ .dei macro
1411 Define or redefine a macro whose name is contained in the string register
1412 .I macro
1413 until
1414 .B ..\&
1415 is encountered.
1417 .REQ .dei macro end
1418 Define or redefine a macro indirectly.
1419 .I macro
1421 .I end
1422 are string registers whose contents are interpolated for the macro name
1423 and the end macro, respectively.
1425 .REQ .di
1426 End current diversion.
1428 .REQ .di macro
1429 Divert to
1430 .I macro .
1432 .REQ .do name
1433 Interpret
1434 .request .name
1435 with compatibility mode disabled.
1437 .REQ .ds stringvar anything
1439 .I stringvar
1441 .IR anything .
1443 .REQ .ds1 stringvar anything
1444 Same as
1445 .request .ds
1446 but with compatibility mode switched off during string expansion.
1448 .REQ .dt N trap
1449 Set diversion trap to position
1450 .I N
1451 (default scaling indicator\~\c
1452 .scaleindicator v ).
1454 .REQ .ec
1455 Reset escape character to
1456 .squoted_char \[rs] .
1458 .REQ .ec c
1459 Set escape character to
1460 .IR c .
1462 .REQ .ecr
1463 Restore escape character saved with
1464 .request .ecs .
1466 .REQ .ecs
1467 Save current escape character.
1469 .REQ .el anything
1470 Else part for if-else (\c
1471 .request ie )
1472 request.
1474 .REQ .em macro
1476 .I macro
1477 will be run after the end of input.
1479 .REQ .eo
1480 Turn off escape character mechanism.
1482 .REQ .ev
1483 Switch to previous environment.
1485 .REQ .ev env
1486 Push down environment number or name
1487 .I env
1488 and switch to it.
1490 .REQ .evc env
1491 Copy the contents of environment
1492 .I env
1493 to the current environment.
1494 No pushing or popping.
1496 .REQ .ex
1497 Exit from roff processing.
1499 .REQ .fam
1500 Return to previous font family.
1502 .REQ .fam name
1503 Set the current font family to
1504 .IR name .
1506 .REQ .fc
1507 Disable field mechanism.
1509 .REQ .fc a
1510 Set field delimiter to
1511 .I a
1512 and pad character to space.
1514 .REQ .fc a b
1515 Set field delimiter to
1516 .I a
1517 and pad character to
1518 .IR b .
1520 .REQ .fchar c anything
1521 Define fallback character
1522 .I c
1523 as string
1524 .IR anything .
1526 .REQ .fi
1527 Fill output lines.
1529 .REQ .fl
1530 Flush output buffer.
1532 .REQ .fp n font
1533 Mount
1534 .I font
1535 on position
1536 .IR n .
1538 .REQ .fp n internal external
1539 Mount font with long
1540 .I external
1541 name to short
1542 .I internal
1543 name on position
1544 .IR n .
1546 .REQ .fspecial font
1547 Reset list of special fonts for
1548 .I font
1549 to empty.
1551 .REQ .fspecial font s1 s2 .\|.\|.\&
1552 When the current font is
1553 .IR font ,
1554 then the fonts
1555 .IR s1 ,
1556 .IR s2 ,
1557 .I .\|.\|.\&
1558 will be special.
1560 .REQ .ft
1561 Return to previous font.
1562 Same as
1563 .request \[rs]f[]
1565 .request \[rs]fP .
1567 .REQ .ft font
1568 Change to font name or number
1569 .IR font ;
1570 same as
1571 .esc[] f font
1572 escape sequence.
1574 .REQ .ftr font1 font2
1575 Translate
1576 .I font1
1578 .IR font2 .
1580 .REQ .hc
1581 Remove additional hyphenation indicator character.
1583 .REQ .hc c
1584 Set up additional hyphenation indicator character\~\c
1585 .IR c .
1587 .REQ .hcode c1 code1 c2 code2 .\|.\|.\&
1588 Set the hyphenation code of character
1589 .I c1
1591 .IR code1 ,
1592 that of
1593 .I c2
1595 .IR code2 ,
1596 etc.
1598 .REQ .hla lang
1599 Set the current hyphenation language to
1600 .IR lang .
1602 .REQ .hlm n
1603 Set the maximum number of consecutive hyphenated lines to
1604 .IR n .
1606 .REQ .hpf file
1607 Read hyphenation patterns from
1608 .IR file .
1610 .REQ .hpfa file
1611 Append hyphenation patterns from
1612 .IR file .
1614 .REQ .hpfcode file
1615 Set input mapping for
1616 .request .hpf .
1618 .REQ .hw words
1619 List of
1620 .I words
1621 with exceptional hyphenation.
1623 .REQ .hy N
1624 Switch to hyphenation mode
1625 .IR N .
1627 .REQ .hym n
1628 Set the hyphenation margin to
1629 .I n
1630 (default scaling indicator\~\c
1631 .scaleindicator m ).
1633 .REQ .hys n
1634 Set the hyphenation space to
1635 .IR n .
1637 .REQ .ie cond anything
1639 .I cond
1640 then
1641 .I anything
1642 else goto
1643 .request .el .
1645 .REQ .if cond anything
1647 .I cond
1648 then
1649 .IR anything ;
1650 otherwise do nothing.
1652 .REQ .ig
1653 Ignore text until
1654 .B ..\&
1655 is encountered.
1657 .REQ .ig end
1658 Ignore text until
1659 .request .end .
1661 .REQ .in
1662 Change to previous indent value.
1664 .REQ .in \[+-]N
1665 Change indent according to
1666 .I \[+-]N
1667 (default scaling indicator\~\c
1668 .scaleindicator m ).
1670 .REQ .it N trap
1671 Set an input-line count trap for the next
1672 .I N
1673 lines.
1675 .REQ .itc N trap
1676 Same as
1677 .request .it
1678 but count lines interrupted with
1679 .esc c
1680 as one line.
1682 .REQ .kern
1683 Enable pairwise kerning.
1685 .REQ .kern n
1687 .I n
1688 is zero, disable pairwise kerning, otherwise enable it.
1690 .REQ .lc
1691 Remove leader repetition character.
1693 .REQ .lc c
1694 Set leader repetition character to\~\c
1695 .IR c .
1697 .REQ .length register anything
1698 Write the length of the string
1699 .I anything
1701 .IR register .
1703 .REQ .linetabs
1704 Enable line-tabs mode (i.e., calculate tab positions relative to output
1705 line).
1707 .REQ .linetabs n
1709 .I n
1710 is zero, disable line-tabs mode, otherwise enable it.
1712 .REQ .lf N file
1713 Set input line number to
1714 .I N
1715 and filename to
1716 .IR file .
1718 .REQ .lg N
1719 Ligature mode on if
1720 .IR N >0.
1722 .REQ .ll
1723 Change to previous line length.
1725 .REQ .ll \[+-]N
1726 Set line length according to
1727 .I \[+-]N
1728 (default size
1729 .scalednumber 6.5 i ,
1730 default scaling indicator\~\c
1731 .scaleindicator m ).
1733 .REQ .ls
1734 Change to the previous value of additional intra-line skip.
1736 .REQ .ls N
1737 Set additional intra-line skip value to
1738 .IR N ,
1739 i.e.,
1740 .IR N -1
1741 blank lines are inserted after each text output line.
1743 .REQ .lt \[+-]N
1744 Length of title (default scaling indicator\~\c
1745 .scaleindicator m ).
1747 .REQ .mc
1748 Margin character off.
1750 .REQ .mc c
1751 Print character
1752 .I c
1753 after each text line at actual distance from right margin.
1755 .REQ .mc c N
1756 Set margin character to
1757 .I c
1758 and distance to
1759 .I N
1760 from right margin (default scaling indicator\~\c
1761 .scaleindicator m ).
1763 .REQ .mk register
1764 Mark current vertical position in
1765 .IR register .
1767 .REQ .mso file
1768 The same as the .so request except that
1769 .I file
1770 is searched in the tmac directories.
1772 .REQ .na
1773 No output-line adjusting.
1775 .REQ .ne
1776 Need a one-line vertical space.
1778 .REQ .ne N
1779 Need
1780 .I N
1781 vertical space (default scaling indicator\~\c
1782 .scaleindicator v ).
1784 .REQ .nf
1785 No filling or adjusting of output-lines.
1787 .REQ .nh
1788 No hyphenation.
1790 .REQ .nm
1791 Number mode off.
1793 .REQ .nm \[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP
1794 In line number mode, set number, multiple, spacing, and indent.
1796 .REQ .nn
1797 Do not number next line.
1799 .REQ .nn N
1800 Do not number next
1801 .I N
1802 lines.
1804 .REQ .nop anything
1805 Always execute
1806 .IR anything .
1808 .REQ .nr register \[+-]N M
1809 Define or modify
1810 .I register
1811 using
1812 .I \[+-]N
1813 with auto-increment
1814 .IR M .
1816 .REQ .nroff
1817 Make the built-in condition
1818 .B n
1819 true and
1820 .B t
1821 false.
1823 .REQ .ns
1824 Turn no-space mode on.
1826 .REQ .nx
1827 Immediately jump to end of current file.
1829 .REQ .nx filename
1830 Next file.
1832 .REQ .open stream filename
1833 Open
1834 .register filename
1835 for writing and associate the stream named
1836 .register stream
1837 with it.
1839 .REQ .opena stream filename
1840 Like
1841 .request .open
1842 but append to it.
1844 .REQ .os
1845 Output vertical distance that was saved by the
1846 .request sv
1847 request.
1849 .REQ .output string
1850 Emit
1851 .I string
1852 directly to intermediate output, allowing leading whitespace if
1853 .I string
1854 starts with
1855 .character \[dq]
1856 (which will be stripped off).
1858 .REQ .pc
1859 Reset page number character to\~\c
1860 .squoted_char % .
1862 .REQ .pc c
1863 Page number character.
1865 .REQ .pi program
1866 Pipe output to
1867 .I program
1868 (nroff only).
1870 .REQ .pl
1871 Set page length to default
1872 .scalednumber 11 i .
1873 The current page length is stored in
1874 .register .p .
1876 .REQ .pl \[+-]N
1877 Change page length to
1878 .I \[+-]N
1879 (default scaling indicator\~\c
1880 .scaleindicator v ).
1882 .REQ .pm
1883 Print macro names and sizes (number of blocks of 128 bytes).
1885 .REQ ".pm t"
1886 Print only total of sizes of macros (number of 128 bytes blocks).
1888 .REQ .pn \[+-]N
1889 Next page number
1890 .IR N .
1892 .REQ .pnr
1893 Print the names and contents of all currently defined number registers
1894 on stderr.
1896 .REQ .po
1897 Change to previous page offset.
1899 The current page offset is available in
1900 .register .o .
1902 .REQ .po \[+-]N
1903 Page offset
1904 .IR N .
1906 .REQ .ps
1907 Return to previous point-size.
1908 .REQ .ps \[+-]N
1909 Point size; same as
1910 .esc[] s \[+-]N .
1912 .REQ .psbb filename
1913 Get the bounding box of a PostScript image
1914 .IR filename .
1916 .REQ .pso command
1917 This behaves like the
1918 .request so
1919 request except that input comes from the standard output of
1920 .IR command .
1922 .REQ .ptr
1923 Print the names and positions of all traps (not including input line
1924 traps and diversion traps) on stderr.
1926 .REQ .pvs
1927 Change to previous post-vertical line spacing.
1929 .REQ .pvs \[+-]N
1930 Change post-vertical line spacing according to
1931 .I \[+-]N
1932 (default scaling indicator\~\c
1933 .scaleindicator p ).
1935 .REQ .rchar c1 c2 .\|.\|.\&
1936 Remove the definitions of characters
1937 .IR c1 ,
1938 .IR c2 ,
1939 .I .\|.\|.\&
1941 .REQ .rd prompt
1942 Read insertion.
1944 .REQ .return
1945 Return from a macro.
1947 .REQ .rj n
1948 Right justify the next
1949 .I n
1950 input lines.
1952 .REQ .rm name
1953 Remove request, macro, or string
1954 .IR name .
1956 .REQ .rn old new
1957 Rename request, macro, or string
1958 .I old
1960 .IR new .
1962 .REQ .rnn reg1 reg2
1963 Rename register
1964 .I reg1
1966 .IR reg2 .
1968 .REQ .rr register
1969 Remove
1970 .IR register .
1972 .REQ .rs
1973 Restore spacing; turn no-space mode off.
1975 .REQ .rt \[+-]N
1976 Return
1977 .I (upward only)
1978 to marked vertical place (default scaling indicator\~\c
1979 .scaleindicator v ).
1981 .REQ .shc
1982 Reset soft hyphen character to
1983 .esc (hy .
1985 .REQ .shc c
1986 Set the soft hyphen character to
1987 .IR c .
1989 .REQ .shift n
1990 In a macro, shift the arguments by
1991 .IR n \~\c
1992 positions.
1994 .REQ .sizes s1 s2 .\|.\|.\& sn \fB[0]\fP
1995 Set available font sizes similar to the
1996 .B sizes
1997 command in a
1998 .B DESC
1999 file.
2001 .REQ .so filename
2002 Include source file.
2004 .REQ .sp
2005 Skip one line vertically.
2007 .REQ .sp N
2008 Space vertical distance
2009 .I N
2010 up or down according to sign of
2011 .I N
2012 (default scaling indicator\~\c
2013 .scaleindicator v ).
2015 .REQ .special
2016 Reset global list of special fonts to empty.
2018 .REQ .special s1 s2 .\|.\|.\&
2019 Fonts
2020 .IR s1 ,
2021 .IR s2 ,
2022 etc.\& are special and will be searched for characters not in the
2023 current font.
2025 .REQ .spreadwarn
2026 Toggle the spread warning on and off without changing its value.
2028 .REQ .spreadwarn limit
2029 Emit a warning if each space in an output line is widened by
2030 .I limit
2031 or more (default scaling indicator\~\c
2032 .scaleindicator m ).
2034 .REQ .ss N
2035 Space-character size set to
2036 .IR N /12
2037 of the spacewidth in the current font.
2039 .REQ .ss N M
2040 Space-character size set to
2041 .IR N /12
2042 and sentence space size set to
2043 .IR M /12
2044 of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[]).
2046 .REQ .sty n style
2047 Associate
2048 .I style
2049 with font position
2050 .IR n .
2052 .REQ .substring xx n1 n2
2053 Replace the string named
2054 .I xx
2055 with the substring defined by the indices
2056 .I n1
2058 .IR n2 .
2060 .REQ .sv
2061 Save
2062 .scalednumber 1 v
2063 of vertical space.
2065 .REQ .sv N
2066 Save the vertical distance
2067 .I N
2068 for later output with
2069 .request os
2070 request.
2072 .REQ .sy command-line
2073 Execute program
2074 .IR command-line .
2076 .REQ ".ta T" N
2077 Set tabs after every position that is a multiple of
2078 .I N
2079 (default scaling indicator\~\c
2080 .scaleindicator m ).
2081 .REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn
2082 Set tabs at positions
2083 .IR n1 ,
2084 .IR n2 ,
2085 .Text .\|.\|.,
2086 .IR nn ,
2087 then set tabs at
2088 .IR nn + r1 ,
2089 .IR nn + r2 ,
2090 .Text .\|.\|.,
2091 .IR nn + rn ,
2092 then at
2093 .IR nn + rn + r1 ,
2094 .IR nn + rn + r2 ,
2095 .Text .\|.\|.,
2096 .IR nn + rn + rn ,
2097 and so on.
2099 .\".REQ .tar
2100 .\"Restore internally saved tab positions.
2101 .\".
2102 .\".REQ .tas
2103 .\"Save tab positions internally.
2105 .REQ .tc
2106 Remove tab repition character.
2107 .REQ .tc c
2108 Set tab repetition character to\~\c
2109 .IR c .
2111 .REQ .ti \[+-]N
2112 Temporary indent next line (default scaling indicator\~\c
2113 .scaleindicator m ).
2115 .REQ .tkf font s1 n1 s2 n2
2116 Enable track kerning for
2117 .IR font .
2119 .REQ .tl \f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]
2120 Three-part title.
2122 .REQ .tm anything
2123 Print
2124 .I anything
2125 on terminal (UNIX standard message output).
2127 .REQ .tm1 anything
2128 Print
2129 .I anything
2130 on terminal (UNIX standard message output), allowing leading
2131 whitespace if
2132 .I anything
2133 starts with
2134 .character \[dq]
2135 (which will be stripped off).
2137 .REQ .tmc anything
2138 Similar to
2139 .request .tm1
2140 without emitting a final newline.
2142 .REQ .tr abcd.\|.\|.\&
2143 Translate
2144 .I a
2146 .IR b ,
2147 .I c
2149 .IR d ,
2150 etc.\& on output.
2152 .REQ .trf filename
2153 Transparently output the contents of file
2154 .IR filename .
2156 .REQ .trin abcd.\|.\|.\&
2157 This is the same as the
2158 .request tr
2159 request except that the
2160 .B asciify
2161 request will use the character code (if any) before the character
2162 translation.
2164 .REQ .trnt abcd.\|.\|.\&
2165 This is the same as the
2166 .request tr
2167 request except that the translations do not apply to text that is
2168 transparently throughput into a diversion with
2169 .esc ! .
2171 .REQ .troff
2172 Make the built-in condition
2173 .B t
2174 true and
2175 .B n
2176 false.
2178 .REQ .uf font
2179 Underline font set to
2180 .I font
2181 (to be switched to by
2182 .request .ul ).
2184 .REQ .ul N
2185 Underline (italicize in troff)
2186 .I N
2187 input lines.
2189 .REQ .unformat diversion
2190 Unformat space characters and tabs, preserving font information in
2191 .IR diversion .
2192 .REQ .vpt n
2193 Enable vertical position traps if
2194 .I n
2195 is non-zero, disable them otherwise.
2197 .REQ .vs
2198 Change to previous vertical base line spacing.
2200 .REQ .vs \[+-]N
2201 Set vertical base line spacing according to
2202 .I \[+-]N
2203 (default scaling indicator\~\c
2204 .scaleindicator p ).
2205 Default value is
2206 .scalednumber 12 p .
2208 .REQ .warn n
2209 Set warnings code to
2210 .IR n .
2212 .REQ .warnscale si
2213 Set scaling indicator used in warnings to
2214 .IR si .
2216 .REQ .wh N
2217 Remove (first) trap at position
2218 .IR N .
2220 .REQ .wh N trap
2221 Set location trap; negative means from page bottom.
2223 .REQ .while cond anything
2224 While condition
2225 .I cond
2226 is true, accept
2227 .I anything
2228 as input.
2230 .REQ .write stream anything
2231 Write
2232 .I anything
2233 to the stream named
2234 .IR stream .
2236 .REQ .writec stream anything
2237 Similar to
2238 .request .write
2239 without emitting a final newline.
2241 .REQ .writem stream xx
2242 Write contents of macro or string
2243 .I xx
2244 to the stream named
2245 .IR stream .
2250 Besides these standard groff requests, there might be further macro
2251 calls.
2252 They can originate from a macro package (see
2253 .BR roff (@MAN7EXT@)
2254 for an overview) or from a preprocessor.
2257 Preprocessor macros are easy to be recognized.
2259 They enclose their code into a pair of characteristic macros.
2263 box, center, tab (@);
2264 c | c | c
2265 CfCB | CfCB | CfCB.
2266 preprocessor@start macro@ end macro
2268 eqn@.PS@.PE
2269 grap@.G1@.G2
2270 grn@.GS@.GE
2271 pic@.PS@.PE
2272 refer@.R1@.R2
2273 soelim@\f[I]none@\f[I]none
2274 tbl@.TS@.TE
2279 .\" --------------------------------------------------------------------
2280 .SH "ESCAPE SEQUENCES"
2281 .\" --------------------------------------------------------------------
2283 Escape sequences are in-line language elements usually introduced by a
2284 backslash
2285 .squoted_char \[rs]
2286 and followed by an escape name and sometimes by a required argument.
2288 Input processing is continued directly after the escaped character or
2289 the argument resp.\& without an intervening separation character.
2291 So there must be a way to determine the end of the escape name and the
2292 end of the argument.
2295 This is done by enclosing names (escape name and arguments consisting
2296 of a variable name) by a pair of brackets
2297 .BI \[lB] name \[rB] 
2298 and constant arguments (number expressions and characters) by
2299 apostrophes (ASCII 0x27) like
2300 .BI \[cq] constant \[cq] \f[R].
2303 There are abbreviations for short names.
2305 Two character escape names can be specified by an opening parenthesis
2306 like
2307 .esc ( xy
2308 without a closing counterpart.
2310 And all one-character names different from the special characters
2311 .squoted_char [
2313 .squoted_char (
2314 can even be specified without a marker in the form
2315 .esc c .
2318 Constant arguments of length\~1 can omit the marker apostrophes, too,
2319 but there is no two-character analogue.
2322 While 1-character escape sequences are mainly used for in-line
2323 functions and system related tasks, the 2-letter names following the
2324 .esc (
2325 construct are used for special characters predefined by the roff system.
2327 Escapes sequences with names of more than two characters
2328 .esc[] "" name
2329 denote user defined named characters (see the
2330 .request char
2331 request).
2334 .\" --------------------------------------------------------------------
2335 .SS "Single Character Escapes"
2336 .\" --------------------------------------------------------------------
2338 .PD 0
2340 .\" --------- comments ---------
2342 .ESC \[dq]
2343 Beginning of a comment.
2345 Everything up to the end of the line is ignored.
2347 .ESC #
2348 Everything up to and including the next newline is ignored.
2350 This is interpreted in copy mode.
2352 This is like
2353 .esc \[dq]
2354 except that the terminating newline is ignored as well.
2356 .\" --------- strings ---------
2358 .ESC *\f[I]s\f[]
2359 The string stored in the string variable with 1-character name
2360 .IR s .
2362 .ESC *(\f[I]st\f[]
2363 The string stored in the string variable with 2-character name
2364 .IR st .
2366 .ESC[] * "stringvar arg1 arg2 .\|.\|."
2367 The string stored in the string variable with arbitrary length name
2368 .IR stringvar ,
2369 taking
2370 .IR arg1 ,
2371 .IR arg2 ,
2372 .I .\|.\|.\&
2373 as arguments.
2375 .\" --------- macro arguments ---------
2377 .ESC $0
2378 The name by which the current macro was invoked.
2381 .request als
2382 request can make a macro have more than one name.
2384 .ESC $ x
2385 Macro or string argument with 1-place number
2386 .IR x ,
2387 where
2388 .I x
2389 is a digit between 1 and 9.
2391 .ESC $( xy
2392 Macro or string argument with 2-digit number
2393 .IR xy .
2395 .ESC[] $ nexp
2396 Macro or string argument with number
2397 .IR nexp ,
2398 where
2399 .I nexp
2400 is a numerical expression evaluating to an integer \[>=]1.
2402 .ESC $*
2403 In a macro or string, the concatenation of all the arguments separated
2404 by spaces.
2406 .ESC $@
2407 In a macro or string, the concatenation of all the arguments with each
2408 surrounded by double quotes, and separated by spaces.
2410 .\" --------- escaped characters ---------
2412 .ESC \[rs]
2413 reduces to a single backslash; useful to delay its interpretation as
2414 escape character in copy mode.
2416 For a printable backslash, use
2417 .esc e ,
2418 or even better
2419 .esc [rs] ,
2420 to be independent from the current escape character.
2422 .ESC \[cq]
2423 The acute accent \[aa]; same as
2424 .esc (aa .
2425 Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
2427 .ESC `
2428 The grave accent \[ga]; same as
2429 .esc (ga .
2430 Unescaped: left quote, backquote (ASCII 0x60).
2432 .ESC \-
2433 The \- sign in the current font.
2435 .ESC .
2436 An uninterpreted dot (period), even at start of line.
2438 .ESC %
2439 Default optional hyphenation character.
2441 .ESC !
2442 Transparent line indicator.
2444 .ESC? anything
2445 In a diversion, this will transparently embed
2446 .I anything
2447 in the diversion.
2448 .I anything
2449 is read in copy mode.
2451 See also the escape sequences
2452 .esc !
2454 .esc ? .
2457 .\" --------- spacing ---------
2459 .ESC \& space
2460 Unpaddable space-size space character (no line break).
2462 .ESC 0
2463 Digit width.
2465 .ESC |
2466 1/6\ em narrow space character; zero width in nroff.
2468 .ESC ^
2469 1/12\ em half-narrow space character; zero width in nroff.
2471 .ESC &
2472 Non-printable, zero width character.
2474 .ESC )
2475 Like
2476 .esc &
2477 except that it behaves like a character declared with the cflags
2478 request to be transparent for the purposes of end of sentence
2479 recognition.
2481 .ESC /
2482 Increases the width of the preceding character so that the spacing
2483 between that character and the following character will be correct if
2484 the following character is a roman character.
2486 .ESC ,
2487 Modifies the spacing of the following character so that the spacing
2488 between that character and the preceding character will correct if the
2489 preceding character is a roman character.
2491 .ESC ~
2492 Unbreakable space that stretches like a normal inter-word space when a
2493 line is adjusted.
2495 .ESC :
2496 Inserts a zero-width break point (similar to
2497 .esc %
2498 but without a soft hyphen character).
2500 .ESC "" newline
2501 Ignored newline, for continuation lines.
2503 .\" --------- structuring ---------
2505 .ESC {
2506 Begin conditional input.
2508 .ESC }
2509 End conditional input.
2511 .\" --------- longer escape names ---------
2513 .ESC ( sc
2514 The special character with 2-character name
2515 .IR sc ,
2516 see section
2517 .BR "Special Characters" .
2519 .ESC[] "" name
2520 The named character with arbitrary length name
2521 .IR name .
2523 .\" --------- alphabetical escapes ---------
2525 .ESC a
2526 Non-interpreted leader character.
2528 .ESCq A anything
2530 .I anything
2531 is acceptable as a name of a string, macro, diversion, register,
2532 environment or font it expands to\~1, and to\~0 otherwise.
2534 .ESCq b abc.\|.\|.\&
2535 Bracket building function.
2537 .ESCq B anything
2539 .I anything
2540 is acceptable as a valid numeric expression it expands to\~1, and
2541 to\~0 otherwise.
2543 .ESC c
2544 Interrupt text processing.
2546 .ESCq C char
2547 The character called
2548 .IR char ;
2549 same as
2550 .esc[] "" char ,
2551 but compatible to other roff versions.
2553 .ESC d
2554 Forward (down) 1/2 em vertical unit (1/2 line in nroff).
2556 .ESCq D charseq
2557 Draw a graphical element defined by the characters in
2558 .IR charseq ;
2559 see groff info file for details.
2561 .ESC e
2562 Printable version of the current escape character.
2564 .ESC E
2565 Equivalent to an escape character, but is not interpreted in copy-mode.
2567 .ESC f F
2568 Change to font with 1-character name or 1-digit number
2569 .IR F .
2571 .ESC fP
2572 Switch back to previous font.
2574 .ESC f( fo
2575 Change to font with 2-character name or 2-digit number
2576 .IR fo .
2578 .ESC[] f font
2579 Change to font with arbitrary length name or number expression
2580 .IR font .
2582 .ESC[] f ""
2583 Switch back to previous font.
2585 .ESC F f
2586 Change to font family with 1-character name
2587 .IR f .
2589 .ESC F( fm
2590 Change to font family with 2-character name
2591 .IR fm .
2593 .ESC[] F fam
2594 Change to font family with arbitrary length name
2595 .IR fam .
2597 .ESC[] F ""
2598 Switch back to previous font family.
2600 .ESC[] g reg
2601 Return format of register with name
2602 .I reg
2603 suitable for
2604 .request .af .
2606 Alternative forms
2607 .escarg g( xy
2609 .escarg g x .
2611 .ESCq h N
2612 Local horizontal motion; move right
2613 .I N
2614 (left if negative).
2616 .ESCq H N
2617 Set height of current font to
2618 .IR N .
2620 .ESC[] k reg
2621 Mark horizontal input place in register with arbitrary length name
2622 .IR reg .
2623 Alternative forms
2624 .escarg k( xy
2626 .escarg k x .
2628 .ESCq l Nc
2629 Horizontal line drawing function (optionally using character
2630 .IR c ).
2632 .ESCq L Nc
2633 Vertical line drawing function (optionally using character
2634 .IR c ).
2636 .ESC[] m color
2637 Change to color
2638 .IR color .
2640 Alternative forms
2641 .escarg m( co
2643 .escarg m c .
2645 .ESC[] m ""
2646 Switch back to previous color.
2648 .ESC[] M color
2649 Change filling color for closed drawn objects to color
2650 .IR color .
2652 Alternative forms
2653 .escarg M( co
2655 .escarg M c .
2657 .ESC[] M ""
2658 Switch to previous fill color.
2660 .ESC n r
2661 The numerical value stored in the register variable with the
2662 1-character name
2663 .IR r .
2665 .ESC n( re
2666 The numerical value stored in the register variable with the
2667 2-character name
2668 .IR re .
2670 .ESC[] n reg
2671 The numerical value stored in the register variable with arbitrary
2672 length name
2673 .IR reg .
2675 .ESCq N n
2676 Typeset the character with code
2677 .I n
2678 in the current font, no special fonts are searched.
2680 Useful for adding characters to a font using the
2681 .request char
2682 request.
2684 .ESCq o abc.\|.\|.\&
2685 Overstrike characters
2686 .IR a ,
2687 .IR b ,
2688 .IR c ,
2689 etc.
2691 .ESC O 0
2692 Disable glyph output.
2694 Mainly for internal use.
2696 .ESC O 1
2697 Enable glyph output.
2699 Mainly for internal use.
2701 .ESC p
2702 Break and spread output line.
2704 .ESC r
2705 Reverse 1\ em vertical motion (reverse line in nroff).
2707 .ESCq R "name\~\[+-]n"
2708 The same as
2709 .request .nr
2710 .I name
2711 .IR \[+-]n .
2713 .ESC[] s \[+-]N
2714 Set the point size to
2715 .I N
2716 scaled points.
2718 Note the alternative forms
2719 .BI \[rs]s \[+-] [ N ]\c
2721 .BI \[rs]s' \[+-]N '\c
2722 .Text ,
2723 .BI \[rs]s \[+-] ' N '\c
2724 .Text ,
2725 .escarg s( \[+-]xy\c
2726 .Text ,
2727 .BI \[rs]s \[+-] ( xy\c
2728 .Text ,
2729 .escarg s \[+-]x .
2730 Same as
2731 .request ps
2732 request.
2734 .ESCq S N
2735 Slant output
2736 .I N
2737 degrees.
2739 .ESC t
2740 Non-interpreted horizontal tab.
2742 .ESC u
2743 Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
2745 .ESCq v N
2746 Local vertical motion; move down
2747 .I N
2748 (up if negative).
2750 .ESC[] V env
2751 The contents of the environment variable
2752 .IR env .
2754 Alternative forms
2755 .escarg V( xy
2757 .escarg V x .
2759 .ESCq w string
2760 The width of the character sequence
2761 .IR string .
2763 .ESCq x N
2764 Extra line-space function (negative before, positive after).
2766 .ESCq X string
2767 Output
2768 .I string
2769 as device control function.
2771 .ESC[] Y name
2772 Output string variable or macro
2773 .I name
2774 uninterpreted as device control function.
2776 Alternative forms
2777 .escarg Y( xy
2779 .escarg Y x .
2781 .ESC z c
2782 Print
2783 .I c
2784 with zero width (without spacing).
2786 .ESCq Z anything
2787 Print
2788 .I anything
2789 and then restore the horizontal and vertical position;
2790 .I anything
2791 may not contain tabs or leaders.
2795 The escape sequences
2796 .esc e ,
2797 .esc . ,
2798 .esc \[dq] ,
2799 .esc $ ,
2800 .esc * ,
2801 .esc a ,
2802 .esc n ,
2803 .esc t ,
2804 .esc g ,
2806 .escarg \& newline
2807 are interpreted in copy mode.
2810 Escape sequences starting with
2811 .esc (
2813 .esc [
2814 do not represent single character escape sequences, but introduce escape
2815 names with two or more characters.
2818 If a backslash is followed by a character that does not constitute a
2819 defined escape sequence the backslash is silently ignored and the
2820 character maps to itself.
2823 .\" --------------------------------------------------------------------
2824 .SS "Special Characters"
2825 .\" --------------------------------------------------------------------
2827 Common special characters are predefined by escape sequences of the
2828 form
2829 .BI \[rs]( xy
2830 with characters
2831 .I x
2833 .IR y .
2835 Some of these exist in the usual font while most of them are only
2836 available in the special font.
2838 Below you'll find a selection of the most important glyphs; a complete
2839 list can be found in
2840 .BR groff_char (@MAN7EXT@).
2843 .PD 0
2845 .ESC (bu
2846 Bullet sign
2847 .ESC (co
2848 Copyright
2849 .ESC (ct
2850 Cent
2851 .ESC (dd
2852 Double dagger
2853 .ESC (de
2854 Degree
2855 .ESC (dg
2856 Dagger
2857 .ESC (rs
2858 Printable double quote
2859 .ESC (em
2860 Em-dash
2861 .ESC (hy
2862 Hyphen
2863 .ESC (rg
2864 Registered sign
2865 .ESC (rs
2866 Printable backslash character
2867 .ESC (sc
2868 Section sign
2869 .ESC (ul
2870 Underline character
2871 .ESC (==
2872 Identical
2873 .ESC (>=
2874 Larger or equal
2875 .ESC (<=
2876 Less or equal
2877 .ESC (!=
2878 Not equal
2879 .ESC (->
2880 Right arrow
2881 .ESC (<-
2882 Left arrow
2883 .ESC (+-
2884 Plus-minus sign
2889 .\" --------------------------------------------------------------------
2890 .SS "Strings"
2891 .\" --------------------------------------------------------------------
2893 Strings are defined by the
2894 .request ds
2895 request and can be retrieved by the
2896 .esc *
2897 escape sequence.
2900 Strings share their name space with macros.
2902 So strings and macros without arguments are roughly equivalent; it is
2903 possible to call a string like a macro and vice-versa, but this often
2904 leads to unpredictable results.
2906 The following strings are predefined in groff.
2908 .STRING .T
2909 The name of the current output device as specified by the
2910 .option -T
2911 command line option.
2914 .\" --------------------------------------------------------------------
2915 .SH REGISTERS
2916 .\" --------------------------------------------------------------------
2918 Registers are variables that store a value.
2919 In groff, most registers store numerical values (see section
2920 .B NUMERICAL EXPRESSIONS
2921 above), but some can also hold a string value.
2924 Each register is given a name.
2925 Arbitrary registers can be defined and set with the request
2926 .request nr
2927 .IR register .
2930 The value stored in a register can be retrieved by the escape sequences
2931 introduced by
2932 .esc n .
2935 Most useful are predefined registers.
2937 In the following the notation
2938 .I name
2939 is used to refer to a register called
2940 .register name
2941 to make clear that we speak about registers.
2943 Please keep in mind that the
2944 .esc[] n ""
2945 decoration is not part of the register name.
2948 .\" --------------------------------------------------------------------
2949 .SS "Read-only Registers"
2950 .\" --------------------------------------------------------------------
2952 The following registers have predefined values that should not be
2953 modified by the user (usually, registers starting with a dot a
2954 read-only).
2956 Mostly, they provide information on the current settings or store
2957 results from request calls.
2960 .PD 0
2962 .REG .$
2963 Number of arguments in the current macro or string.
2965 .REG .a
2966 Post-line extra line-space most recently utilized using
2967 .escq x N .
2969 .REG .A
2970 Set to\~1 in
2971 .B troff
2972 if option
2973 .B \-A
2974 is used; always\~1 in
2975 .BR nroff .
2977 .REG .c
2978 Current input line number.
2980 .REG .C
2981 1\~if compatibility mode is in effect, 0\~otherwise.
2983 .REG .cdp
2984 The depth of the last character added to the current environment.
2985 It is positive if the character extends below the baseline.
2987 .REG .ce
2988 The number of lines remaining to be centered, as set by the
2989 .request ce
2990 request.
2992 .REG .cht
2993 The height of the last character added to the current environment.
2994 It is positive if the character extends above the baseline.
2996 .REG .color
2997 1\~if colors are enabled, 0\~otherwise.
2999 .REG .csk
3000 The skew of the last character added to the current environment.
3001 The skew of a character is how far to the right of the center of a character
3002 the center of an accent over that character should be placed.
3004 .REG .d
3005 Current vertical place in current diversion; equal to register
3006 .register nl .
3008 .REG .ev
3009 The name or number of the current environment (string-valued).
3011 .REG .f
3012 Current font number.
3014 .REG .fam
3015 The current font family (string-valued).
3017 .REG .fn
3018 The current (internal) real font name (string-valued).
3020 .REG .fp
3021 The number of the next free font position.
3023 .REG .g
3024 Always 1 in GNU troff.
3026 Macros should use it to test if running under groff.
3028 .REG .h
3029 Text base-line high-water mark on current page or diversion.
3031 .REG .H
3032 Available horizontal resolution in basic units.
3034 .REG .hla
3035 The current hyphenation language as set by the
3036 .B .hla
3037 request.
3039 .REG .hlc
3040 The number of immediately preceding consecutive hyphenated lines.
3042 .REG .hlm
3043 The maximum allowed number of consecutive hyphenated lines, as set by
3045 .request hlm
3046 request.
3048 .REG .hy
3049 The current hyphenation flags (as set by the
3050 .request hy
3051 request).
3053 .REG .hym
3054 The current hyphenation margin (as set by the
3055 .request hym
3056 request).
3058 .REG .hys
3059 The current hyphenation space (as set by the
3060 .request hys
3061 request).
3063 .REG .i
3064 Current ident.
3066 .REG .in
3067 The indent that applies to the current output line.
3069 .REG .int
3070 Positive if last output line contains
3071 .esc c .
3073 .REG .kern
3074 1\~if pairwise kerning is enabled, 0\~otherwise.
3076 .REG .l
3077 Current line length.
3079 .REG .lg
3080 The current ligature mode (as set by the
3081 .request lg
3082 request).
3084 .REG .linetabs
3085 The current line-tabs mode (as set by the
3086 .request linetabs
3087 request).
3089 .REG .ll
3090 The line length that applies to the current output line.
3092 .REG .lt
3093 The title length (as set by the
3094 .request lt
3095 request).
3097 .REG .n
3098 Length of text portion on previous output line.
3100 .REG .ne
3101 The amount of space that was needed in the last
3102 .request ne
3103 request that caused a trap to be sprung.
3105 Useful in conjunction with
3106 .register .trunc .
3108 .REG .ns
3109 1\~if in no-space mode, 0\~otherwise.
3111 .REG .o
3112 Current page offset.
3114 .REG .p
3115 Current page length.
3117 .REG .pn
3118 The number of the next page: either the value set by a
3119 .request pn
3120 request, or the number of the current page plus\ 1.
3122 .REG .ps
3123 The current pointsize in scaled points.
3125 .REG .psr
3126 The last-requested pointsize in scaled points.
3128 .REG .pvs
3129 The current post-vertical line spacing.
3131 .REG .rj
3132 The number of lines to be right-justified as set by the rj request.
3134 .REG .s
3135 Current point size as a decimal fraction.
3137 .REG .sr
3138 The last requested pointsize in points as a decimal fraction
3139 (string-valued).
3141 .REG .t
3142 Distance to the next trap.
3144 .REG .T
3145 Set to\~1
3146 if option
3147 .B \-T
3148 is used.
3150 .REG .tabs
3151 A string representation of the current tab settings suitable for use
3152 as an argument to the
3153 .request ta
3154 request.
3156 .REG .trunc
3157 The amount of vertical space truncated by the most recently sprung
3158 vertical position trap, or, if the trap was sprung by a
3159 .request ne
3160 request, minus the amount of vertical motion produced by
3161 .request .ne .
3163 In other words, at the point a trap is sprung, it represents
3164 the difference of what the vertical position would have been but for
3165 the trap, and what the vertical position actually is.
3167 Useful in conjunction with the
3168 .register .ne
3169 register.
3171 .REG .ss
3172 The value of the parameters set by the first argument of the
3173 .request ss
3174 request.
3176 .REG .sss
3177 The value of the parameters set by the second argument of the
3178 .request ss
3179 request.
3181 .REG .u
3182 Equal to 1 bin fill mode and 0 in nofill mode.
3184 .REG .v
3185 Current vertical line spacing.
3187 .REG .V
3188 Available vertical resolution in basic units.
3190 .REG .vpt
3191 1\~ if vertical position traps are enabled, 0\~otherwise.
3193 .REG .w
3194 Width of previous character.
3196 .REG .warn
3197 The sum of the number codes of the currently enabled warnings.
3199 .REG .x
3200 The major version number.
3202 .REG .y
3203 The minor version number.
3205 .REG .Y
3206 The revision number of groff.
3208 .REG .z
3209 Name of current diversion.
3213 .\" --------------------------------------------------------------------
3214 .SS "Writable Registers"
3215 .\" --------------------------------------------------------------------
3217 The following registers can be read and written by the user.
3218 They have predefined default values, but these can be modified for
3219 customizing a document.
3222 .PD 0
3223 .REG %
3224 Current page number.
3226 .REG c.
3227 Current input line number.
3229 .REG ct
3230 Character type (set by width function
3231 .esc w ).
3233 .REG dl
3234 Maximal width of last completed diversion.
3236 .REG dn
3237 Height of last completed diversion.
3239 .REG dw
3240 Current day of week (1-7).
3242 .REG dy
3243 Current day of month (1-31).
3245 .REG hours
3246 The number of hours past midnight.
3248 Initialized at start-up.
3250 .REG hp
3251 Current horizontal position at input line.
3253 .REG llx
3254 Lower left x-coordinate (in PostScript units) of a given PostScript
3255 image (set by
3256 .request .psbb ).
3258 .REG lly
3259 Lower left y-coordinate (in PostScript units) of a given PostScript
3260 image (set by
3261 .request .psbb ).
3263 .REG ln
3264 Output line number.
3266 .REG minutes
3267 The number of minutes after the hour.
3269 Initialized at start-up.
3271 .REG mo
3272 Current month (1-12).
3274 .REG nl
3275 Vertical position of last printed text base-line.
3277 .REG rsb
3278 Like
3279 .register sb ,
3280 but takes account of the heights and depths of characters.
3282 .REG rst
3283 Like
3284 .register st ,
3285 but takes account of the heights and depths of characters.
3287 .REG sb
3288 Depth of string below base line (generated by width function
3289 .esc w ).
3291 .REG seconds
3292 The number of seconds after the minute.
3294 Initialized at start-up.
3296 .REG skw
3297 Right skip width from the center of the last character in the
3298 .esc w
3299 argument.
3301 .REG slimit
3302 If greater than 0, the maximum number of objects on the input stack.
3304 If \[<=]0 there is no limit, i.e., recursion can continue until virtual
3305 memory is exhausted.
3307 .REG ssc
3308 The amount of horizontal space (possibly negative) that should be
3309 added to the last character before a subscript (generated by width
3310 function
3311 .esc w ).
3313 .REG st
3314 Height of string above base line (generated by width function
3315 .esc w ).
3317 .REG systat
3318 The return value of the
3319 .I system()
3320 function executed by the last
3321 .request sy
3322 request.
3324 .REG urx
3325 Upper right x-coordinate (in PostScript units) of a given PostScript
3326 image (set by
3327 .request .psbb ).
3329 .REG ury
3330 Upper right y-coordinate (in PostScript units) of a given PostScript
3331 image (set by
3332 .request .psbb ).
3334 .REG year
3335 The current year (year 2000 compliant).
3337 .REG yr
3338 Current year minus 1900.
3340 For Y2K compliance use register
3341 .register year
3342 instead.
3347 .\" --------------------------------------------------------------------
3348 .SH COMPATIBILITY
3349 .\" --------------------------------------------------------------------
3351 The differences of the groff language in comparison to classical troff
3352 as defined by
3353 .I [CSTR\~#54]
3354 are documented in
3355 .BR groff_diff (@MAN7EXT@).
3358 The groff system provides a compatibility mode, see
3359 .BR groff (@MAN1EXT@)
3360 on how to invoke this.
3363 .\" --------------------------------------------------------------------
3364 .SH BUGS
3365 .\" --------------------------------------------------------------------
3367 Report bugs to the
3368 .MTO bug-groff@gnu.org "groff bug mailing list" .
3369 Include a complete, self-contained example that will allow the bug to
3370 be reproduced, and say which version of groff you are using.
3373 .\" --------------------------------------------------------------------
3374 .SH AUTHORS
3375 .\" --------------------------------------------------------------------
3377 Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
3380 This document is distributed under the terms of the FDL (GNU Free
3381 Documentation License) version 1.1 or later.
3383 You should have received a copy of the FDL on your system, it is also
3384 available on-line at the
3385 .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
3388 This document is part of
3389 .IR groff ,
3390 the GNU roff distribution.
3392 It was written by
3393 .MTO bwarken@mayn.de "Bernd Warken" ;
3394 it is maintained by
3395 .MTO wl@gnu.org "Werner Lemberg" .
3398 .\" --------------------------------------------------------------------
3399 .SH "SEE ALSO"
3400 .\" --------------------------------------------------------------------
3403 The main source of information for the groff language is the
3404 .B groff
3405 .BR info (1)
3406 file.
3408 Besides the gory details, it contains many examples.
3411 .BR groff (@MAN1EXT@)
3412 the usage of the groff program and pointers to the documentation and
3413 availability of the groff system.
3416 .BR groff_diff (@MAN7EXT@)
3417 the differences of the groff language as compared to classical roff.
3419 This is the authoritative document for the predefined language
3420 elements that are specific to groff.
3423 .BR groff_char (@MAN7EXT@)
3424 the predefined groff characters (glyphs).
3427 .BR groff_font (@MAN5EXT@)
3428 the specification of fonts and the DESC file.
3431 .BR roff (@MAN7EXT@)
3432 the history of roff, the common parts shared by all roff systems, and
3433 pointers to further documentation.
3436 .I [CSTR\~#54]
3437 .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:54.ps \
3438      "Nroff/\:Troff User's Manual by Osanna & Kernighan"
3439 \[em] the bible for classical troff.
3442 .\" --------------------------------------------------------------------
3443 .\" Emacs Setup
3444 .\" --------------------------------------------------------------------
3446 .\" Local Variables:
3447 .\" mode: nroff
3448 .\" End: