3 .\" A complete reference of the mdoc macro package for GNU troff.
5 .\" Based on NetBSD's mdoc.samples.7, version 1.21.
8 .\" Warning: You can't format this file with the old mdoc macros!
11 .\" Copyright (c) 1990, 1993
12 .\" The Regents of the University of California. All rights reserved.
14 .\" Redistribution and use in source and binary forms, with or without
15 .\" modification, are permitted provided that the following conditions
17 .\" 1. Redistributions of source code must retain the above copyright
18 .\" notice, this list of conditions and the following disclaimer.
19 .\" 2. Redistributions in binary form must reproduce the above copyright
20 .\" notice, this list of conditions and the following disclaimer in the
21 .\" documentation and/or other materials provided with the distribution.
23 .\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
24 .\" 4. Neither the name of the University nor the names of its contributors
25 .\" may be used to endorse or promote products derived from this software
26 .\" without specific prior written permission.
28 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40 .\" @(#)mdoc.samples.7 8.2 (Berkeley) 12/30/93
42 .\" This reference invokes every macro in the package several
43 .\" times and is guaranteed to give a worst case performance
44 .\" for an already extremely slow package.
55 .Nd reference for groff's mdoc implementation
60 .Nm groff Fl m Ns Cm doc Ar
65 A complete reference for writing
73 formatting package for
78 package, addressed page layout leaving the manipulation of fonts and other
79 typesetting details to the individual author.
82 page layout macros make up the
83 .Em "page structure domain"
84 which consists of macros for titles, section headers, displays and lists
85 \- essentially items which affect the physical position of text on a
87 In addition to the page structure domain, there are two more domains, the
92 The general text domain is defined as macros which perform tasks such as
93 quoting or emphasizing pieces of text.
94 The manual domain is defined as macros that are a subset of the day to day
95 informal language used to describe commands, routines and related
98 Macros in the manual domain handle command names, command line arguments and
99 options, function names, function parameters, pathnames, variables, cross
100 references to other manual pages, and so on.
101 These domain items have value for both the author and the future user of the
103 Hopefully, the consistency gained across the manual set will provide easier
104 translation to future documentation tools.
108 manual pages, a manual entry is simply referred to as a man page, regardless
109 of actual length and without sexist intention.
112 .Sh "GETTING STARTED"
114 The material presented in the remainder of this document is outlined
117 .Bl -enum -width 3n -offset indent
119 . Tn "TROFF IDIOSYNCRASIES"
121 . Bl -tag -width 2n -compact
123 . It "Passing Space Characters in an Argument"
124 . It "Trailing Blank Space Characters"
125 . It "Escaping Special Characters"
126 . It "Other Possible Pitfalls"
130 . Tn "A MANUAL PAGE TEMPLATE"
139 . Tn "INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS"
141 . Bl -tag -width 2n -compact
142 . It "What's in a Name" Ns ...
143 . It "General Syntax"
149 . Bl -tag -width 2n -compact
153 . It "Configuration Declarations (Section Four Only)"
154 . It "Command Modifiers"
155 . It "Defined Variables"
157 . It "Environment Variables"
159 . It "Function Declarations"
160 . It "Function Types"
161 . It "Functions (Library Routines)"
162 . It "Function Arguments"
165 . \" .It "Header File (including source code)"
166 . It "Interactive Commands"
173 . It "Variable Types"
175 . It "Manual Page Cross References"
179 . Tn "GENERAL TEXT DOMAIN"
181 . Bl -tag -width 2n -compact
189 . It "Emphasis Macro"
191 . It "Enclosure and Quoting Macros"
192 . It "No-Op or Normal Text Macro"
193 . It "No-Space Macro"
194 . It "Section Cross References"
196 . It "Mathematical Symbols"
197 . It "References and Citations"
198 . It "Trade Names (or Acronyms and Type Names)"
199 . It "Extended Arguments"
203 . Tn "PAGE STRUCTURE DOMAIN"
205 . Bl -tag -width 2n -compact
206 . It "Section Headers"
207 . It "Subsection Headers"
208 . It "Paragraphs and Line Spacing"
210 . It "Examples and Displays"
211 . It "Lists and Columns"
215 . Tn "MISCELLANEOUS MACROS"
218 . Tn "PREDEFINED STRINGS"
224 . Tn "FORMATTING WITH GROFF, TROFF, AND NROFF"
241 .Sh "TROFF IDIOSYNCRASIES"
245 package attempts to simplify the process of writing a man page.
246 Theoretically, one should not have to learn the tricky details of
251 however, there are a few limitations which are unavoidable and best gotten
253 And, too, be forewarned, this package is
262 a macro is called by placing a
264 (dot character) at the beginning of a line followed by the two-character
265 (or three-character) name for the macro.
266 There can be space or tab characters between the dot and the macro name.
267 Arguments may follow the macro separated by spaces (but
270 It is the dot character at the beginning of the line which causes
273 to interpret the next two (or more) characters as a macro name.
274 A single starting dot followed by nothing is ignored.
277 (dot character) at the beginning of an input line in some context other than
278 a macro invocation, precede the
282 escape sequence which translates literally to a zero-width space, and is
283 never displayed in the output.
288 macros accept an unlimited number of arguments (contrary to other versions
289 of troff which can't handle more than nine arguments).
290 In limited cases, arguments may be continued or extended on the next
292 .Sx Extended Arguments
294 Almost all macros handle quoted arguments (see
295 .Sx Passing Space Characters in an Argument
300 general text domain and manual domain macros are special in that their
303 for callable macro names.
304 This means an argument on the argument list which matches a general text or
305 manual domain macro name (and which is defined to be callable) will be
306 executed or called when it is processed.
307 In this case the argument, although the name of a macro, is not preceded by
311 This makes it possible to nest macros; for example the option macro,
315 the flag and argument macros,
319 to specify an optional flag with an argument:
321 .Bl -tag -width ".Op Fl s Ar bytes" -offset indent
324 .Ql ".Op Fl s Ar bytes"
328 To prevent a string from being interpreted as a macro name, precede the
329 string with the escape sequence
332 .Bl -tag -width ".Op \&Fl s \&Ar bytes" -offset indent
333 .It Op \&Fl s \&Ar bytes
335 .Ql ".Op \e&Fl s \e&Ar bytes"
343 are not interpreted as macros.
344 Macros whose argument lists are parsed for callable arguments are referred
347 and macros which may be called from an argument list are referred to as
349 throughout this document.
352 as almost all of the macros in
354 are parsed, but as it was cumbersome to constantly refer to macros as
355 being callable and being able to call other macros, the term parsed
359 In the following, we call an
361 macro which starts a line (with a leading dot) a
363 if this distinction is necessary.
365 .Ss "Passing Space Characters in an Argument"
367 Sometimes it is desirable to give as an argument a string containing one or
368 more blank space characters, say, to specify arguments to commands which
369 expect particular arrangement of items in the argument list.
370 Additionally, it makes
373 For example, the function command
375 expects the first argument to be the name of a function and any remaining
376 arguments to be function parameters.
379 stipulates the declaration of function parameters in the parenthesized
380 parameter list, each parameter is guaranteed to be at minimum a two word
385 There are two possible ways to pass an argument which contains
387 One way of passing a string containing blank spaces is to use the hard or
388 unpaddable space character
390 that is, a blank space preceded by the escape character
392 This method may be used with any macro but has the side effect of
393 interfering with the adjustment of text over the length of a line.
395 sees the hard space as if it were any other printable character and cannot
396 split the string into blank or newline separated pieces as one would expect.
397 This method is useful for strings which are not expected to overlap a line
399 An alternative is to use
401 a paddable (i.e.\& stretchable), unbreakable space (this is a
405 The second method is to enclose the string with double quotes.
409 .Bl -tag -width ".Fn fetch char\ *str" -offset indent
410 .It Fn fetch char\ *str
412 .Ql ".Fn fetch char\e *str"
413 .It Fn fetch "char *str"
414 can also be created by
415 .Ql ".Fn fetch \*[q]char *str\*[q]"
421 before the space in the first example
422 or double quotes in the second example
425 would see three arguments, and the result would be:
427 .Dl Fn fetch char *str
429 .\" For an example of what happens when the parameter list overlaps a newline
430 .\" boundary, see the
434 .Ss "Trailing Blank Space Characters"
437 can be confused by blank space characters at the end of a line.
438 It is a wise preventive measure to globally remove all blank spaces
440 .Ao blank-space Ac Ns Ao end-of-line Ac
442 Should the need arise to use a blank character at the end of a line, it
443 may be forced with an unpaddable space and the
449 .Ss "Escaping Special Characters"
451 Special characters like the newline character
453 are handled by replacing the
459 to preserve the backslash.
461 .Ss "Other Possible Pitfalls"
463 A warning is emitted when an empty input line is found outside of displays
468 (Well, it is even better to use
470 macros to avoid the usage of low-level commands.)
472 Leading spaces will cause a break and are output directly.
473 Avoid this behaviour if possible.
474 Similarly, do not use more than one space character between words in an
475 ordinary text line; contrary to other text formatters, they are
477 replaced with a single space.
481 directly as an argument.
490 inserts two space characters after a punctuation mark closing a sentence;
495 are treated transparently, not influencing the sentence-ending behaviour.
496 To change this, insert
498 before or after the dot:
500 .Bd -literal -offset indent
519 .Bd -filled -offset indent
536 As can be seen in the first and third line,
538 handles punctuation characters specially in macro arguments.
539 This will be explained in section
542 In the same way, you have to protect trailing full stops of abbreviations
543 with a trailing zero-width space:
546 A comment in the source file of a man page can be either started with
552 anywhere (the latter is a
555 extension); the rest of such a line is ignored.
558 .Sh "A MANUAL PAGE TEMPLATE"
560 The body of a man page is easily constructed from a basic template:
562 .Bd -literal -offset indent
563 \&.\e" The following commands are required for all man pages.
564 \&.Dd Month day, year
565 \&.Os [OPERATING_SYSTEM] [version/release]
566 \&.Dt DOCUMENT_TITLE [section number] [architecture/volume]
569 \&.Nd one line description of name
570 \&.\e" This next command is for sections 2 and 3 only.
574 \&.\e" The following commands should be uncommented and
575 \&.\e" used where appropriate.
576 \&.\e" .Sh IMPLEMENTATION NOTES
577 \&.\e" This next command is for sections 2, 3 and 9 function
578 \&.\e" return values only.
579 \&.\e" .Sh RETURN VALUES
580 \&.\e" This next command is for sections 1, 6, 7 and 8 only.
581 \&.\e" .Sh ENVIRONMENT
584 \&.\e" This next command is for sections 1, 6, 7, 8 and 9 only
585 \&.\e" (command return values (to shell) and
586 \&.\e" fprintf/stderr type diagnostics).
587 \&.\e" .Sh DIAGNOSTICS
588 \&.\e" .Sh COMPATIBILITY
589 \&.\e" This next command is for sections 2, 3 and 9 error
590 \&.\e" and signal handling only.
600 The first items in the template are the commands
605 the document date, the operating system the man page or subject source is
606 developed or modified for, and the man page title (in
608 along with the section of the manual the page belongs in.
609 These commands identify the page and are discussed below in
612 The remaining items in the template are section headers
620 The headers are discussed in
621 .Sx "PAGE STRUCTURE DOMAIN" ,
622 after presentation of
623 .Sx "MANUAL DOMAIN" .
624 Several content macros are used to demonstrate page layout macros; reading
625 about content macros before page layout macros is recommended.
630 In the description of all macros below, optional arguments are put into
634 represents zero or more additional arguments.
635 Alternative values for a parameter are separated with
637 If there are alternative values for a mandatory parameter, braces are used
640 to enclose the value set.
641 Meta-variables are specified within angles.
645 .Bl -tag -width 6n -offset indent
649 .Op \-test1 Op \-test2 | \-test3
655 Except stated explicitly, all macros are parsed and callable.
657 Note that a macro takes effect up to the next nested macro.
664 Consequently, a warning message is emitted for most commands if the first
665 argument is a macro itself since it cancels the effect of the calling
667 Another consequence is that quoting macros never insert literal quotes;
670 .Ql ".Ic \*[q]foo <bar>\*[q]" .
672 Most macros have a default width value which can be used to specify a label
682 It is recommended not to use this rather obscure feature to avoid
683 dependencies on local modifications of the
690 The title macros are part of the page structure domain but are presented
691 first and separately for someone who wishes to start writing a man page
693 Three header macros designate the document title or manual page title, the
694 operating system, and the date of authorship.
695 These macros are called once at the very beginning of the document and are
696 used to construct headers and footers only.
700 .Op Aq document title
701 .Op Aq section number
704 The document title is the subject of the man page and must be in
706 due to troff limitations.
710 The section number may be a number in the range
711 .No 1,\~ Ns ... Ns ,\~9
717 If it is specified, and no volume name is given, a default volume name is
722 .Tn \*[operating-system] ,
723 the following sections are defined:
725 .Bl -column LOCAL -offset indent -compact
726 .It Li 1 Ta "\*[volume-operating-system] \*[volume-ds-1]"
727 .It Li 2 Ta "\*[volume-operating-system] \*[volume-ds-2]"
728 .It Li 3 Ta "\*[volume-operating-system] \*[volume-ds-3]"
729 .It Li 4 Ta "\*[volume-operating-system] \*[volume-ds-4]"
730 .It Li 5 Ta "\*[volume-operating-system] \*[volume-ds-5]"
731 .It Li 6 Ta "\*[volume-operating-system] \*[volume-ds-6]"
732 .It Li 7 Ta "\*[volume-operating-system] \*[volume-ds-7]"
733 .It Li 8 Ta "\*[volume-operating-system] \*[volume-ds-8]"
734 .It Li 9 Ta "\*[volume-operating-system] \*[volume-ds-9]"
738 A volume name may be arbitrary or one of the following:
741 .Bl -column LOCAL -offset indent -compact
742 .It Li USD Ta "\*[volume-ds-USD]"
743 .It Li PS1 Ta "\*[volume-ds-PS1]"
744 .It Li AMD Ta "\*[volume-ds-AMD]"
745 .It Li SMM Ta "\*[volume-ds-SMM]"
746 .It Li URM Ta "\*[volume-ds-URM]"
747 .It Li PRM Ta "\*[volume-ds-PRM]"
748 .It Li KM Ta "\*[volume-ds-KM]"
749 .It Li IND Ta "\*[volume-ds-IND]"
750 .It Li LOCAL Ta "\*[volume-ds-LOCAL]"
751 .It Li CON Ta "\*[volume-ds-CON]"
763 Values from the previous table will specify a new volume name.
764 If the third parameter is a keyword designating a computer architecture,
765 its value is prepended to the default volume name as specified by the
767 By default, the following architecture keywords are defined:
769 \# we use `No' to avoid hyphenation
770 .Bd -ragged -offset indent
771 .No alpha , acorn26 , acorn32 , algor , amd64 , amiga , arc , arm26 ,
772 .No arm32 , atari , bebox , cats , cesfic , cobalt , dreamcast , evbarm ,
773 .No evbmips , evbppc , evbsh3 , hp300 , hp700 , hpcmips , i386 , luna68k ,
774 .No m68k , mac68k , macppc , mips , mmeye , mvme68k , mvmeppc , netwinder ,
775 .No news68k , newsmips , next68k , ofppc , pc532 , pmax , pmppc , powerpc ,
776 .No prep , sandpoint , sgimips , sh3 , shark , sparc , sparc64 , sun3 ,
777 .No tahoe , vax , x68k , x86_64
781 If the section number is neither a numeric expression in the range 1 to\~9
782 nor one of the above described keywords, the third parameter is used
783 verbatim as the volume name.
785 In the following examples, the left (which is identical to the right) and
786 the middle part of the manual page header strings are shown.
789 prevents the digit\~7 from being a valid numeric expression.
792 .Bl -tag -width ".Li .Dt\ FOO\ 2\ i386" -compact -offset indent
795 .Ql \*[volume-operating-system] \*[volume-ds-7]
796 .It Li ".Dt FOO 7 bar"
798 .Ql \*[volume-operating-system] \*[volume-ds-7]
799 .It Li ".Dt FOO \e&7 bar"
802 .It Li ".Dt FOO 2 i386"
804 .Ql \*[volume-operating-system]/\*[volume-as-i386] \*[volume-ds-2]
805 .It Li ".Dt FOO \*[q]\*[q] bar"
812 Local, OS-specific additions might be found in the file
814 look for strings named
816 (for the former type) and
818 (for the latter type);
820 then denotes the keyword to be used with the
824 This macro is neither callable nor parsed.
827 .Op Aq operating system
830 If the first parameter is empty,
832 .Sq Tn "\*[operating-system]"
834 This may be overridden in the local configuration file,
836 In general, the name of the operating system should be the common acronym,
841 The release should be the standard release nomenclature for the system
843 In the following table, the possible second arguments for some predefined
844 operating systems are listed.
847 local additions might be defined in
849 look for strings named
850 .Ql operating-system-XXX-YYY ,
853 is the acronym for the operating system and
858 .Bl -tag -width ".No FreeBSD" -offset indent
860 7th, 7, III, 3, V, V.2, V.3, V.4
862 3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r, 4.3R, 4.4
864 0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e,
865 1.3, 1.3a, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.6, 1.6.1,
866 1.6.2, 2.0, 2.0.1, 2.0.2, 2.1
868 1.0, 1.1, 1.1.5, 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1,
869 2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1,
870 4.1.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.6.2, 4.7, 4.8, 4.9, 4.10, 5.0, 5.1, 5.2,
878 an unknown second parameter will be replaced with the string
880 for the other predefined acronyms it will be ignored and a warning message
882 Unrecognized arguments are displayed as given in the page footer.
883 For instance, a typical footer might be:
888 .Ql 4.3\~Berkeley Distribution ,
889 or for a locally produced set
891 .Dl .Os CS Department
898 macro is not present, the bottom left corner of the manual page will be
901 This macro is neither callable nor parsed.
912 is used for the date string.
913 If it has exactly three arguments, they are concatenated, separated with
916 .Dl .Dd January 25, 2001
918 The month's name shall not be abbreviated.
920 With any other number of arguments, the current date is used, ignoring
923 This macro is neither callable nor parsed.
927 .Sh "INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS"
929 .Ss "What's in a Name" Ns ...
931 The manual domain macro names are derived from the day to day informal
932 language used to describe commands, subroutines and related files.
933 Slightly different variations of this language are used to describe the
934 three different aspects of writing a man page.
935 First, there is the description of
938 Second is the description of a
943 macros, and third, the description of a command to a user in the verbal
944 sense; that is, discussion of a command in the text of a man page.
948 macros are themselves a type of command; the general syntax for a troff
951 .Bd -filled -offset indent
952 .Li ".Xx argument1 argument2" ...
957 is a macro command, and anything following it are arguments to
959 In the second case, the description of a
961 command using the content macros is a bit more involved; a typical
963 command line might be displayed as:
965 .Bd -filled -offset indent
968 .Ao Ar infile Ac Ao Ar outfile Ac
974 is the command name and the
979 argument designated as optional by the option brackets.
988 in this example, the user has to replace the meta expressions given in angle
989 brackets with real file names.
990 Note that in this document meta arguments are used to describe
992 commands; in most man pages, meta variables are not specifically written
994 The macros which formatted the above example:
996 .Bd -literal -offset indent
999 \&.Ao Ar infile Ac Ao Ar outfile Ac
1003 In the third case, discussion of commands and command syntax includes both
1004 examples above, but may add more detail.
1009 from the example above might be referred to as
1012 .Em file arguments .
1013 Some command line argument lists are quite long:
1016 .Bl -tag -width ".Nm make" -offset indent -compact
1019 .Op Fl D Ar variable
1021 .Op Fl f Ar makefile
1022 .Op Fl I Ar directory
1023 .Op Fl j Ar max_jobs
1024 .Op Ar variable Ns = Ns Ar value
1032 Here one might talk about the command
1034 and qualify the argument,
1036 as an argument to the flag,
1038 or discuss the optional file operand
1040 In the verbal context, such detail can prevent confusion, however the
1042 package does not have a macro for an argument
1047 argument macro is used for an operand or file argument like
1049 as well as an argument to a flag like
1051 The make command line was produced from:
1053 .Bd -literal -offset indent
1056 \&.Op Fl D Ar variable
1058 \&.Op Fl f Ar makefile
1059 \&.Op Fl I Ar directory
1060 \&.Op Fl j Ar max_jobs
1061 \&.Op Ar variable Ns = Ns Ar value
1072 macros are explained in
1075 .Ss "General Syntax"
1077 The manual domain and general text domain macros share a similar syntax with
1078 a few minor deviations; most notably,
1084 differ only when called without arguments; and
1088 impose an order on their argument lists.
1089 All content macros are capable of recognizing and properly handling
1090 punctuation, provided each punctuation character is separated by a leading
1092 If a command is given:
1094 .Dl \&.Ar sptr, ptr),
1100 The punctuation is not recognized and all is output in the
1103 If the punctuation is separated by a leading white space:
1105 .Dl \&.Ar "sptr , ptr ) ,"
1109 .Dl Ar sptr , ptr ) ,
1111 The punctuation is now recognized and output in the default font
1112 distinguishing it from the argument strings.
1113 To remove the special meaning from a punctuation character escape it with
1116 The following punctuation characters are recognized by
1119 .Bl -column -offset indent-two XXXXXX XXXXXX XXXXXX XXXXXX
1120 .It Li .\& Ta Li ,\& Ta Li :\& Ta Li ;\& Ta Li (\&
1121 .It Li )\& Ta Li [\& Ta Li ]\& Ta Li ?\& Ta Li !\&
1126 is limited as a macro language, and has difficulty when presented with a
1127 string containing a member of the mathematical, logical or quotation set:
1129 .Bd -literal -offset indent-two
1130 {+,\-,/,*,%,<,>,<=,>=,=,==,&,`,',"}
1136 may assume it is supposed to actually perform the operation or evaluation
1137 suggested by the characters.
1138 To prevent the accidental evaluation of these characters, escape them with
1140 Typical syntax is shown in the first content macro displayed below,
1148 The address macro identifies an address construct.
1150 .Dl Usage: .Ad Ao address Ac ...
1152 .Bl -tag -width ".Li .Ad\ f1\ ,\ f2\ ,\ f3\ :" -compact -offset 15n
1155 .It Li ".Ad addr1 ."
1157 .It Li ".Ad addr1 , file2"
1159 .It Li ".Ad f1 , f2 , f3 :"
1161 .It Li ".Ad addr ) ) ,"
1166 The default width is 12n.
1172 macro is used to specify the name of the author of the item being
1173 documented, or the name of the author of the actual manual page.
1175 .Dl Usage: .An Ao author name Ac ...
1177 .Bl -tag -width ".Li .An\ \*[q]Joe\ Author\*[q]\ )\ )\ ," -offset 15n
1178 .It Li ".An \*[q]Joe Author\*[q]"
1180 .It Li ".An \*[q]Joe Author\*[q] ,"
1182 .It Li ".An \*[q]Joe Author\*[q] Aq nobody@FreeBSD.org"
1183 .An "Joe Author" Aq nobody@FreeBSD.org
1184 .It Li ".An \*[q]Joe Author\*[q] ) ) ,"
1185 .An "Joe Author" ) ) ,
1189 The default width is 12n.
1195 command causes a line break allowing each new name to appear on its own
1197 If this is not desirable,
1199 .Bd -literal -offset indent
1204 call will turn this off.
1205 To turn splitting back on, write
1207 .Bd -literal -offset indent
1215 argument macro may be used whenever an argument is referenced.
1216 If called without arguments, the
1220 .Dl Usage: .Ar Oo Ao argument Ac Oc ...
1222 .Bl -tag -width ".Li .Ar\ file1\ file2" -compact -offset 15n
1227 .It Li ".Ar file1 ."
1229 .It Li ".Ar file1 file2"
1231 .It Li ".Ar f1 f2 f3 :"
1233 .It Li ".Ar file ) ) ,"
1238 The default width is 12n.
1240 .Ss "Configuration Declaration (Section Four Only)"
1244 macro is used to demonstrate a
1246 declaration for a device interface in a section four manual.
1248 .Dl Usage: .Cd Ao argument Ac ...
1250 .Bl -tag -width ".Li .Cd\ Xdevice\ le0\ at\ scode?X" -offset 15n
1251 .It Li ".Cd \*[q]device le0 at scode?\*[q]"
1252 .Cd "device le0 at scode?"
1259 command causes a line break before and after its arguments are printed.
1262 The default width is 12n.
1264 .Ss "Command Modifiers"
1266 The command modifier is identical to the
1268 (flag) command with the exception that the
1270 macro does not assert a dash in front of every argument.
1271 Traditionally flags are marked by the preceding dash, however, some commands
1272 or subsets of commands do not use them.
1273 Command modifiers may also be specified in conjunction with interactive
1274 commands such as editor commands.
1278 The default width is 10n.
1280 .Ss "Defined Variables"
1282 A variable (or constant) which is defined in an include file
1283 is specified by the macro
1286 .Dl Usage: .Dv Ao defined variable Ac ...
1288 .Bl -tag -width ".Li .Dv\ MAXHOSTNAMELEN" -compact -offset 15n
1289 .It Li ".Dv MAXHOSTNAMELEN"
1291 .It Li ".Dv TIOCGPGRP )"
1296 The default width is 12n.
1302 errno macro specifies the error return value for section 2, 3, and\~9 library
1304 The second example below shows
1308 general text domain macro, as it would be used in a section two manual page.
1310 .Dl Usage: .Er Ao errno type Ac ...
1312 .Bl -tag -width ".Li .Bq\ Er\ ENOTDIR" -compact -offset 15n
1315 .It Li ".Er ENOENT ) ;"
1317 .It Li ".Bq Er ENOTDIR"
1322 The default width is 17n.
1324 .Ss "Environment Variables"
1328 macro specifies an environment variable.
1330 .Dl Usage: .Ev Ao argument Ac ...
1332 .Bl -tag -width ".Li .Ev\ PRINTER\ )\ )\ ," -compact -offset 15n
1333 .It Li ".Ev DISPLAY"
1337 .It Li ".Ev PRINTER ) ) ,"
1342 The default width is 15n.
1348 macro handles command line flags.
1352 For interactive command flags, which are not prepended with a dash, the
1355 macro is identical, but without the dash.
1357 .Dl Usage: .Fl Ao argument Ac ...
1359 .Bl -tag -width ".Li .Fl\ xyz\ )\ ," -compact -offset 15n
1372 .It Li ".Fl xyz ) ,"
1380 macro without any arguments results in a dash representing stdin/stdout.
1383 a single dash will result in two dashes.
1385 The default width is 12n.
1387 .Ss "Function Declarations"
1391 macro is used in the
1393 section with section two or three functions.
1394 It is neither callable nor parsed.
1396 .Dl Usage: .Fd Ao argument Ac ...
1398 .Bl -tag -width ".Li .Fd\ X#include\ <sys/types.h>X" -compact -offset 15n
1399 .It Li ".Fd \*[q]#include <sys/types.h>\*[q]"
1400 .Fd "#include <sys/types.h>"
1407 command causes a line break if a function has already been presented and a
1408 break has not occurred.
1409 This leaves a nice vertical space in between the previous function call and
1410 the declaration for the next function.
1417 section, represents the
1419 statement, and is the short form of the above example.
1420 It specifies the C\~header file as being included in a C\~program.
1421 It also causes a line break.
1425 section, it represents the header file enclosed in angle brackets.
1427 .Dl Usage: .In Ao header file Ac
1429 .Bl -tag -width ".Li .In\ stdio.h" -compact -offset 15n
1430 .nr in-synopsis-section 1
1431 .It Li ".In stdio.h"
1433 .nr in-synopsis-section 0
1434 .It Li ".In stdio.h"
1438 .Ss "Function Types"
1440 This macro is intended for the
1443 It may be used anywhere else in the man page without problems, but its main
1444 purpose is to present the function type in kernel normal form for the
1446 of sections two and three (it causes a line break, allowing the function
1447 name to appear on the next line).
1449 .Dl Usage: .Ft Ao type Ac ...
1451 .Bl -tag -width ".Li .Ft\ struct\ stat" -compact -offset 15n
1452 .It Li ".Ft struct stat"
1456 .Ss "Functions (Library Routines)"
1464 .Dl Usage: .Fn Ao function Ac Oo Ao parameter Ac Oc ...
1466 .Bl -tag -width ".Li .Fn\ align\ Xchar\ *ptrX\ ," -compact -offset 15n
1467 .It Li ".Fn getchar"
1469 .It Li ".Fn strlen ) ,"
1471 .It Li ".Fn align \*[q]char *ptr\*[q] ,"
1472 .Fn align "char *ptr" ,
1475 Note that any call to another macro signals the end of the
1477 call (it will insert a closing parenthesis at that point).
1479 For functions with many parameters (which is rare), the macros
1487 (function argument).
1491 .Bd -literal -offset indent
1500 \&.Fa "struct rrec *newrr"
1509 .Bd -ragged -offset indent
1518 .Fa "struct rrec *newrr"
1527 section, the function will always begin at the beginning of line.
1528 If there is more than one function presented in the
1530 section and a function type has not been given, a line break will occur,
1531 leaving a nice vertical space between the current function name and the one
1534 The default width values of
1538 are 12n and 16n, respectively.
1540 .Ss "Function Arguments"
1544 macro is used to refer to function arguments (parameters) outside of the
1546 section of the manual or inside the
1548 section if the enclosure macros
1556 may also be used to refer to structure members.
1558 .Dl Usage: .Fa Ao function argument Ac ...
1560 .Bl -tag -width ".Li .Fa\ d_namlen\ )\ )\ ," -compact -offset 15n
1561 .It Li ".Fa d_namlen ) ) ,"
1563 .It Li ".Fa iov_len"
1568 The default width is 12n.
1574 macro generates text for use in the
1578 .Dl Usage: .Rv Oo -std Oc Op Ao function Ac ...
1581 .Ql ".Rv -std atexit"
1584 .Bd -ragged -offset -indent
1585 \# a small hack to suppress a warning message
1586 .ds section-old "\*[section]
1589 .ds section "\*[section-old]
1595 option is valid only for manual page sections\~2 and\~3.
1596 Currently, this macro does nothing if used without the
1604 macro generates text for use in the
1608 .Dl Usage: .Ex Oo -std Oc Op Ao utility Ac ...
1614 .Bd -ragged -offset -indent
1615 \# a small hack to suppress a warning message
1616 .ds section-old "\*[section]
1619 .ds section "\*[section-old]
1625 option is valid only for manual page sections 1, 6 and\~8.
1626 Currently, this macro does nothing if used without the
1630 .Ss "Interactive Commands"
1634 macro designates an interactive or internal command.
1636 .Dl Usage: .Ic Ao argument Ac ...
1638 .Bl -tag -width ".Li .Ic\ setenv\ ,\ unsetenv" -compact -offset 15n
1641 .It Li ".Ic \*[q]do while {...}\*[q]"
1642 .Ic "do while {...}"
1643 .It Li ".Ic setenv , unsetenv"
1644 .Ic setenv , unsetenv
1648 The default width is 12n.
1654 macro is used to specify the library where a particular function is compiled
1657 .Dl Usage: .Lb Ao argument Ac ...
1659 Available arguments to
1661 and their results are:
1664 .Bl -tag -width ".Li libossaudio" -compact -offset indent
1732 Local, OS-specific additions might be found in the file
1734 look for strings named
1737 then denotes the keyword to be used with the
1745 command causes a line break before and after its arguments are printed.
1752 literal macro may be used for special characters, variable constants, etc.\&
1753 -- anything which should be displayed as it would be typed.
1755 .Dl Usage: .Li Ao argument Ac ...
1757 .Bl -tag -width ".Li .Li\ cntrl-D\ )\ ," -compact -offset 15n
1760 .It Li ".Li M1 M2 M3 ;"
1762 .It Li ".Li cntrl-D ) ,"
1764 .It Li ".Li 1024 ..."
1769 The default width is 16n.
1775 macro is used for the document title or subject name.
1776 It has the peculiarity of remembering the first argument it was called with,
1777 which should always be the subject name of the page.
1778 When called without arguments,
1780 regurgitates this initial name for the sole purpose of making less work for
1782 Note: A section two or three document function name is addressed with the
1790 and remaining sections.
1791 For interactive commands, such as the
1797 macro should be used.
1803 it can not recall the first argument it was invoked with.
1805 .Dl Usage: .Nm Oo Ao argument Ac Oc ...
1807 .Bl -tag -width ".Li .Nm\ groff_mdoc" -compact -offset 15n
1808 .It Li ".Nm groff_mdoc"
1810 .It Li ".Nm \e-mdoc"
1812 .It Li ".Nm foo ) ) ,"
1819 The default width is 10n.
1825 macro places option brackets around any remaining arguments on the
1826 command line, and places any trailing punctuation outside the brackets.
1831 (which produce an opening and a closing option bracket respectively) may be used
1832 across one or more lines or to specify the exact position of the closing
1835 .Dl Usage: .Op Oo Ao option Ac Oc ...
1837 .Bl -tag -width ".Li .Op\ Fl\ c\ Ar\ objfil\ Op\ Ar\ corfil\ ," -compact -offset 15n
1842 .It Li ".Op Fl k ) ."
1844 .It Li ".Op Fl k Ar kookfile"
1845 .Op Fl k Ar kookfile
1846 .It Li ".Op Fl k Ar kookfile ,"
1847 .Op Fl k Ar kookfile ,
1848 .It Li ".Op Ar objfil Op Ar corfil"
1849 .Op Ar objfil Op Ar corfil
1850 .It Li ".Op Fl c Ar objfil Op Ar corfil ,"
1851 .Op Fl c Ar objfil Op Ar corfil ,
1852 .It Li ".Op word1 word2"
1854 .It Li ".Li .Op Oo Ao option Ac Oc ..."
1855 .Li .Op Oo Ao option Ac Oc ...
1858 Here a typical example of the
1864 .Bd -literal -offset indent
1866 \&.Op Fl k Ar kilobytes
1867 \&.Op Fl i Ar interval
1875 .Bd -filled -offset indent
1877 .Op Fl k Ar kilobytes
1878 .Op Fl i Ar interval
1884 The default width values of
1888 are 14n and 10n, respectively.
1894 macro formats path or file names.
1895 If called without arguments, the
1897 string is output, which represents the current user's home directory.
1899 .Dl Usage: .Pa Oo Ao pathname Ac Oc ...
1901 .Bl -tag -width ".Li .Pa\ /tmp/fooXXXXX\ )\ ." -compact -offset 15n
1904 .It Li ".Pa /usr/share"
1906 .It Li ".Pa /tmp/fooXXXXX ) ."
1907 .Pa /tmp/fooXXXXX ) .
1911 The default width is 32n.
1917 macro replaces standard abbreviations with their formal names.
1919 .Dl Usage: .St Ao abbreviation Ac ...
1922 .Dq Abbreviation/Formal Name
1928 .Bl -tag -width ".Li -iso9945-1-90" -compact -offset indent
1945 .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
1946 .It Li -iso9945-1-90
1948 .It Li -iso9945-1-96
1962 .It Li -p1003.1g-2000
1966 .It Li -p1003.1-2001
1968 .It Li -p1003.1-2004
1974 Part 2: Shell and Utilities
1976 .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
1977 .It Li -iso9945-2-93
1989 .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
2018 .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
2025 .Ss "Variable Types"
2029 macro may be used whenever a type is referenced.
2032 section, it causes a line break (useful for old style variable declarations).
2034 .Dl Usage: .Vt Ao type Ac ...
2036 .Bl -tag -width ".Li .Vt\ extern\ char\ *optarg\ ;" -compact -offset 15n
2037 .It Li ".Vt extern char *optarg ;"
2038 .Vt extern char *optarg ;
2045 Generic variable reference.
2047 .Dl Usage: .Va Ao variable Ac ...
2049 .Bl -tag -width ".Li .Va\ Xchar\ sX\ ]\ )\ )\ ," -compact -offset 15n
2052 .It Li ".Va settimer ,"
2054 .It Li ".Va \*[q]int *prt\*[q] ) :"
2056 .It Li ".Va \*[q]char s\*[q] ] ) ) ,"
2057 .Va "char s" ] ) ) ,
2061 The default width is 12n.
2063 .Ss "Manual Page Cross References"
2067 macro expects the first argument to be a manual page name.
2068 The optional second argument, if a string (defining the manual section), is
2069 put into parentheses.
2071 .Dl Usage: .Xr Ao man page name Ac Oo Ao section Ac Oc ...
2073 .Bl -tag -width ".Li .Xr\ xinit\ 1x\ ;" -compact -offset 15n
2080 .It Li ".Xr xinit 1x ;"
2085 The default width is 10n.
2088 .Sh "GENERAL TEXT DOMAIN"
2093 .Dl Usage: .At Oo Ao version Ac Oc ...
2095 .Bl -tag -width ".Li .At\ v6\ ." -compact -offset 15n
2102 The following values for
2106 .Dl 32v, v1, v2, v3, v4, v5, v6, v7, V, V.1, V.2, V.3, V.4
2111 .Dl "Usage: .Bx" Bro -alpha | -beta | -devel Brc ...
2112 .Dl " .Bx" Oo Ao version Ac Oo Ao release Ac Oc Oc ...
2114 .Bl -tag -width ".Li .Bx\ -devel" -compact -offset 15n
2119 .It Li ".Bx \-devel"
2124 will be prepended to the string
2126 The following values for
2130 .Dl Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, lite2
2135 .Dl Usage: .Nx Oo Ao version Ac Oc ...
2137 .Bl -tag -width ".Li .Nx\ 1.4\ ." -compact -offset 15n
2144 For possible values of
2146 see the description of the
2148 command above in section
2149 .Sx "TITLE MACROS" .
2154 .Dl Usage: .Fx Oo Ao version Ac Oc ...
2156 .Bl -tag -width ".Li .Fx\ 2.2\ ." -compact -offset 15n
2163 For possible values of
2165 see the description of the
2167 command above in section
2168 .Sx "TITLE MACROS" .
2173 .Dl Usage: .Ox Oo Ao version Ac Oc ...
2175 .Bl -tag -width ".Li .Ox\ 1.0" -compact -offset 15n
2183 .Dl Usage: .Bsx Oo Ao version Ac Oc ...
2185 .Bl -tag -width ".Li .Bsx\ 1.0" -compact -offset 15n
2195 .Bl -tag -width ".Li .Ux" -compact -offset 15n
2200 .Ss "Emphasis Macro"
2202 Text may be stressed or emphasized with the
2205 The usual font for emphasis is italic.
2207 .Dl Usage: .Em Ao argument Ac ...
2209 .Bl -tag -width ".Li .Em\ vide\ infra\ )\ )\ ," -compact -offset 15n
2210 .It Li ".Em does not"
2212 .It Li ".Em exceed 1024 ."
2214 .It Li ".Em vide infra ) ) ,"
2215 .Em vide infra ) ) ,
2219 The default width is 10n.
2225 font mode must be ended with the
2227 macro (the latter takes no arguments).
2228 Font modes may be nested within other font modes.
2231 has the following syntax:
2233 .Dl .Bf Ao font mode Ac
2236 must be one of the following three types:
2238 .Bl -tag -width ".Sy \&Sy | Fl symbolic" -compact -offset indent
2239 .It Sy \&Em | Fl emphasis
2242 macro was used for the entire block of text.
2243 .It Sy \&Li | Fl literal
2246 macro was used for the entire block of text.
2247 .It Sy \&Sy | Fl symbolic
2250 macro was used for the entire block of text.
2253 Both macros are neither callable nor parsed.
2255 .Ss "Enclosure and Quoting Macros"
2257 The concept of enclosure is similar to quoting.
2258 The object being to enclose one or more strings between a pair of characters
2259 like quotes or parentheses.
2260 The terms quoting and enclosure are used interchangeably throughout this
2262 Most of the one-line enclosure macros end in small letter
2264 to give a hint of quoting, but there are a few irregularities.
2265 For each enclosure macro there is also a pair of open and close macros which
2266 end in small letters
2276 .Bd -filled -offset 4n
2277 .Bl -column "quote" "close" "open" "Angle Bracket Enclosure" "`string' or string"
2278 .Em Quote Ta Em Open Ta Em Close Ta Em Function Ta Em Result
2279 .No .Aq Ta .Ao Ta .Ac Ta "Angle Bracket Enclosure" Ta Ao string Ac
2280 .No .Bq Ta .Bo Ta .Bc Ta "Bracket Enclosure" Ta Bo string Bc
2281 .No .Brq Ta .Bro Ta .Brc Ta "Brace Enclosure" Ta Bro string Brc
2282 .No .Dq Ta .Do Ta .Dc Ta "Double Quote" Ta Do string Dc
2283 .No .Eq Ta .Eo Ta .Ec Ta "Enclose String (in XX)" Ta XXstringXX
2284 .No .Pq Ta .Po Ta .Pc Ta "Parenthesis Enclosure" Ta Po string Pc
2285 .No .Ql Ta Ta Ta "Quoted Literal" Ta So string Sc or Li string
2286 .No .Qq Ta .Qo Ta .Qc Ta "Straight Double Quote" Ta Qo string Qc
2287 .No .Sq Ta .So Ta .Sc Ta "Single Quote" Ta So string Sc
2291 All macros ending with
2295 have a default width value of 12n.
2297 .Bl -tag -width ".Li .Ec , .Eo"
2299 These macros expect the first argument to be the opening and closing strings
2302 Due to the nine-argument limit in the original troff program two other
2303 macros have been implemented which are now rather obsolete:
2305 takes the first and second parameter as the left and right enclosure string,
2306 which are then used to enclose the arguments of
2308 The default width value is 12n for both macros.
2310 The first and second arguments of this macro are the opening and
2311 closing strings respectively, followed by the arguments to be enclosed.
2313 The quoted literal macro behaves differently in troff and nroff mode.
2316 a quoted literal is always quoted.
2317 If formatted with troff, an item is only quoted if the width of the item is
2318 less than three constant width characters.
2319 This is to make short strings more visible where the font change to literal
2320 (constant width) is less noticeable.
2322 The default width is 16n.
2324 The prefix macro suppresses the whitespace between its first and second
2327 .Bl -tag -width ".Li .Pf\ (\ Fa\ name2" -offset indent
2328 .It Li ".Pf ( Fa name2"
2333 The default width is 12n.
2337 macro (see below) performs the analogous suffix function.
2341 macro inserts an apostrophe and exits any special text modes, continuing in
2347 Examples of quoting:
2350 .Bl -tag -width ".Li .Bq\ Em\ Greek\ ,\ French\ ." -compact -offset indent
2353 .It Li ".Aq Pa ctype.h ) ,"
2357 .It Li ".Bq Em Greek , French ."
2358 .Bq Em Greek , French .
2361 .It Li ".Dq string abc ."
2363 .It Li ".Dq \'^[A-Z]\'"
2365 .It Li ".Ql man mdoc"
2369 .It Li ".Qq string ) ,"
2371 .It Li ".Qq string Ns ),"
2377 .It Li ".Em or Ap ing"
2382 For a good example of nested enclosure macros, see the
2385 It was created from the same underlying enclosure macros as those presented
2391 extended argument list macros are discussed below.
2393 .Ss "No-Op or Normal Text Macro"
2397 macro can be used in a macro command line for parameters which should
2404 if you really want that English word (and not the macro) as a parameter.
2406 .Dl Usage: .No Ao argument Ac ...
2408 .Bl -tag -width ".Li .No\ test\ Ta\ with\ Ta\ tabs" -compact -offset 15n
2409 .It Li ".No test Ta with Ta tabs"
2410 .No test Ta with Ta tabs
2414 The default width is 12n.
2416 .Ss "No-Space Macro"
2420 macro suppresses insertion of a space between the current position and its
2422 For example, it is useful for old style argument lists where there is no
2423 space between the flag and argument:
2425 .Dl "Usage:" ... Ao argument Ac \&Ns Oo Ao argument Ac Oc ...
2426 .Dl " " .Ns Ao argument Ac ...
2428 .Bl -tag -width ".Li .Op\ Fl\ I\ Ns\ Ar\ directory" -compact -offset 15n
2429 .It Li ".Op Fl I Ns Ar directory"
2430 .Op Fl I Ns Ar directory
2435 macro always invokes the
2437 macro after eliminating the space unless another macro name follows it.
2438 If used as a command (i.e., the second form above in the
2445 .Ss "Section Cross References"
2449 macro designates a reference to a section header within the same document.
2451 .Dl Usage: .Sx Ao section reference Ac ...
2453 .Bl -tag -width ".Li .Sx\ FILES" -offset 15n
2459 The default width is 16n.
2463 The symbolic emphasis macro is generally a boldface macro in either the
2464 symbolic sense or the traditional English usage.
2466 .Dl Usage: .Sy Ao symbol Ac ...
2468 .Bl -tag -width ".Li .Sy\ Important\ Notice" -compact -offset 15n
2469 .It Li ".Sy Important Notice"
2470 .Sy Important Notice
2474 The default width is 6n.
2476 .Ss Mathematical Symbols
2478 Use this macro for mathematical symbols and similar things.
2480 .Dl Usage: .Ms Ao math symbol Ac ...
2482 .Bl -tag -width ".Li .Ms\ sigma" -compact -offset 15n
2488 The default width is 6n.
2490 .Ss "References and Citations"
2492 The following macros make a modest attempt to handle references.
2493 At best, the macros make it convenient to manually drop in a subset of
2497 .Bl -tag -width 6n -offset indent -compact
2499 Reference start (does not take arguments).
2500 Causes a line break in the
2502 section and begins collection of reference information until the reference
2505 Reference end (does not take arguments).
2506 The reference is printed.
2508 Reference author name; one name per invocation.
2512 City/place (not implemented yet).
2516 Issuer/publisher name.
2522 Optional information.
2526 Corporate or foreign author.
2532 Optional hypertext reference.
2537 Macros beginning with
2539 are not callable but accept multiple arguments in the usual way.
2542 macro is handled properly as a parameter; other macros will cause strange
2547 can be used outside of the
2553 .Bd -literal -offset indent
2557 \&.%T "Implementation Notes on foobar(1)"
2558 \&.%R "Technical Report ABC-DE-12-345"
2559 \&.%Q "Drofnats College, Nowhere"
2566 .Bd -ragged -offset indent
2570 .%T "Implementation Notes on foobar(1)"
2571 .%R "Technical Report ABC-DE-12-345"
2572 .%Q "Drofnats College, Nowhere"
2577 .Ss "Trade Names (or Acronyms and Type Names)"
2579 The trade name macro prints its arguments in a smaller font.
2580 Its intended use is to imitate a small caps fonts for uppercase acronyms.
2582 .Dl Usage: .Tn Ao symbol Ac ...
2584 .Bl -tag -width ".Li .Tn\ ASCII" -compact -offset 15n
2592 The default width is 10n.
2594 .Ss "Extended Arguments"
2600 macros allow one to extend an argument list on a macro boundary for the
2607 are implemented similarly to all other macros opening and closing an
2608 enclosure (without inserting characters, of course).
2609 This means that the following is true for those macros also.
2611 Here is an example of
2613 using the space mode macro to turn spacing off:
2615 .Bd -literal -offset indent
2617 \&.It Xo Sy I Ar operation
2618 \&.No \een Ar count No \een
2626 .Bd -filled -offset indent
2629 .It Xo Sy I Ar operation
2630 .No \en Ar count No \en
2639 .Bd -literal -offset indent
2641 \&.It Cm S No / Ar old_pattern Xo
2642 \&.No / Ar new_pattern
2651 .Bd -filled -offset indent
2654 .It Cm S No \&/ Ar old_pattern Xo
2655 .No \&/ Ar new_pattern
2665 and enclosure macros: Test the value of a variable.
2667 .Bd -literal -offset indent
2670 \&.Oo \e&! Oc Ns Ar variable Oo
2671 \&.Ar operator variable ...
2678 .Bd -filled -offset indent
2679 .Bl -tag -width flag -compact
2682 .Oo \&! Oc Ns Ar variable Oo
2683 .Ar operator variable ...
2690 .Sh "PAGE STRUCTURE DOMAIN"
2692 .Ss "Section Headers"
2696 section header macros are required in every man page.
2697 The remaining section headers are recommended at the discretion of the
2698 author writing the manual page.
2701 macro is parsed but not generally callable.
2702 It can be used as an argument in a call to
2704 only; it then reactivates the default font for
2707 The default width is 8n.
2709 .Bl -tag -width ".Li .Sh\ RETURN\ VALUES"
2714 If not specified, headers, footers and page layout defaults will not be set
2715 and things will be rather unpleasant.
2718 section consists of at least three items.
2721 name macro naming the subject of the man page.
2722 The second is the name description macro,
2724 which separates the subject name from the third item, which is the
2726 The description should be the most terse and lucid possible, as the space
2732 then all its arguments.
2734 .It Li ".Sh LIBRARY"
2735 This section is for section two and three function calls.
2736 It should consist of a single
2740 .Sx "Library Names" .
2742 .It Li ".Sh SYNOPSIS"
2745 section describes the typical usage of the subject of a man page.
2746 The macros required are either
2757 The function name macro
2759 is required for manual page sections\~2 and\~3; the command and general name
2762 is required for sections 1, 5, 6, 7, and\~8.
2763 Section\~4 manuals require a
2768 configuration device usage macro.
2769 Several other macros may be necessary to produce the synopsis line as shown
2772 .Bd -filled -offset indent
2780 The following macros were used:
2783 .Dl ".Op Fl benstuv"
2787 .It Li ".Sh DESCRIPTION"
2788 In most cases the first text in the
2790 section is a brief paragraph on the command, function or file, followed by a
2791 lexical list of options and respective explanations.
2792 To create such a list, the
2799 macros are used (see
2800 .Sx Lists and Columns
2803 .It Li ".Sh IMPLEMENTATION NOTES"
2804 Implementation specific information should be placed here.
2806 .It Li ".Sh RETURN VALUES"
2807 Sections 2, 3 and\~9 function return values should go here.
2810 macro may be used to generate text for use in the
2812 section for most section 2 and 3 library functions;
2814 .Sx "Return Values" .
2820 section headers are part of the preferred manual page layout and must be
2821 used appropriately to maintain consistency.
2822 They are listed in the order in which they would be used.
2824 .Bl -tag -width ".Li .Sh\ COMPATIBILITY"
2825 .It Li ".Sh ENVIRONMENT"
2828 section should reveal any related environment variables and clues to their
2829 behavior and/or usage.
2832 Files which are used or created by the man page subject should be listed via
2839 .It Li ".Sh EXAMPLES"
2840 There are several ways to create examples.
2843 section below for details.
2845 .It Li ".Sh DIAGNOSTICS"
2846 Diagnostic messages from a command should be placed in this section.
2849 macro may be used to generate text for use in the
2851 section for most section 1, 6 and\~8 commands;
2855 .It Li ".Sh COMPATIBILITY"
2856 Known compatibility issues (e.g. deprecated options or parameters)
2857 should be listed here.
2860 Specific error handling, especially from library functions (man page
2861 sections 2, 3, and\~9) should go here.
2864 macro is used to specify an error (errno).
2866 .It Li ".Sh SEE ALSO"
2867 References to other material on the man page topic and cross references to
2868 other relevant man pages should be placed in the
2871 Cross references are specified using the
2876 style references are not accommodated.
2878 It is recommended that the cross references are sorted on the section
2879 number, then alphabetically (case-insensitive) on the names within
2880 a section, and placed
2881 in that order and comma separated.
2889 .It Li ".Sh STANDARDS"
2890 If the command, library function or file adheres to a specific
2891 implementation such as
2895 this should be noted here.
2896 If the command does not adhere to any standard, its history should be noted
2901 .It Li ".Sh HISTORY"
2902 Any command which does not adhere to any specific standards should be
2903 outlined historically in this section.
2905 .It Li ".Sh AUTHORS"
2906 Credits should be placed here.
2909 macro for names and the
2911 macro for e-mail addresses within optional contact information.
2912 Explicitly indicate whether the person authored the initial manual page
2913 or the software or whatever the person is being credited for.
2915 Blatant problems with the topic go here.
2921 sections may be added; for example, this section was set with:
2923 .Bd -literal -offset 15n
2924 \&.Sh "PAGE STRUCTURE DOMAIN"
2927 .Ss "Subsection Headers"
2929 Subsection headers have exactly the same syntax as section headers:
2931 is parsed but not generally callable.
2932 It can be used as an argument in a call to
2934 only; it then reactivates the default font for
2937 The default width is 8n.
2939 .Ss "Paragraphs and Line Spacing"
2941 .Bl -tag -width ".Li .Pp"
2945 paragraph command may be used to specify a line space where necessary.
2946 The macro is not necessary after a
2954 macro (which both assert a vertical distance unless the
2958 The macro is neither callable nor parsed and takes no arguments; an
2965 .\" This worked with version one, need to redo for version three
2968 .\" .Cw (ax+bx+c) \ is\ produced\ by\ \&
2969 .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
2986 .\" .Em is produced by
3002 .\" This example shows the same equation in a different format.
3006 .\" signs were forced with
3010 .\" .Cw (ax\ +\ bx\ +\ c) \ is\ produced\ by\ \&
3011 .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
3022 .\" .Li \&.Cx \e\ +\e\ \e&
3033 .\" .Em is produced by
3041 .\" .Li \&.Cx \e\ +\e\ \e&
3052 .\" The incantation below was
3058 .\" .Cw \&[?/]m_b1_e1_f1[?/]\& is\ produced\ by
3060 .\" .Li \&.Cx Op Sy ?/
3070 .\" .Em is produced by
3072 .\" .Li \&.Ar \e\ b1 e1 f1
3086 The only keep that is implemented at this time is for words.
3093 The only option that
3095 accepts currently is
3097 (this is also the default if no option is given) which is useful for
3098 preventing line breaks in the middle of options.
3099 In the example for the make command line arguments (see
3100 .Sx What's in a Name ) ,
3103 from placing up the flag and the argument on separate lines.
3105 Both macros are neither callable nor parsed.
3107 More work needs to be done with the keep macros; specifically, a
3109 option should be added.
3111 .Ss "Examples and Displays"
3113 There are seven types of displays.
3115 .Bl -tag -width ".Li .D1"
3118 Display one line of indented text.
3119 This macro is parsed but not callable.
3123 The above was produced by:
3124 .Li ".D1 Fl ldghfstru" .
3128 Display one line of indented
3133 example macro has been used throughout this file.
3134 It allows the indentation (display) of one line of text.
3135 Its default font is set to constant width (literal).
3137 is parsed but not callable.
3139 .Dl % ls -ldg /usr/local/bin
3141 The above was produced by:
3142 .Li ".Dl % ls -ldg /usr/local/bin" .
3148 display must be ended with the
3151 It has the following syntax:
3153 .Bd -ragged -compact
3154 .Bl -tag -width ".Li .Bd" -offset indent
3156 .Bro \-literal | \-filled | \-unfilled | \-ragged | \-centered Brc
3157 .Oo \-offset Ao string Ac Oc Oo \-file Ao file name Ac Oc Oo \-compact Oc Xc
3162 .Bl -tag -width ".Fl file Ao Ar file name Ac " -compact
3164 Fill, but do not adjust the right margin (only left-justify).
3166 Center lines between the current left and right margin.
3167 Note that each single line is centered.
3169 Do not fill; display a block of text as typed, using line breaks as
3170 specified by the user.
3171 This can produce overlong lines without warning messages.
3173 Display a filled block.
3174 The block of text is formatted (i.e., the text is justified on both the left
3177 Display block with literal font (usually fixed-width).
3178 Useful for source code or simple tabbed or spaced text.
3179 .It Fl file Ao Ar file name Ac
3180 The file whose name follows the
3182 flag is read and displayed before any data enclosed with
3186 using the selected display type.
3188 .Xr troff/ Ns Nm \-mdoc
3189 commands in the file will be processed.
3190 .It Fl offset Ao Ar string Ac
3193 is specified with one of the following strings, the string is interpreted to
3194 indicate the level of indentation for the forthcoming block of text:
3197 .Bl -tag -width ".Ar indent-two" -compact
3199 Align block on the current left margin; this is the default mode of
3202 Supposedly center the block.
3203 At this time unfortunately, the block merely gets left aligned about an
3204 imaginary center margin.
3206 Indent by one default indent value or tab.
3207 The default indent value is also used for the
3211 macros, so one is guaranteed the two types of displays will line up.
3212 The indentation value is normally set to\~6n or about two thirds of an inch
3213 (six constant width characters).
3215 Indent two times the default indent value.
3219 aligns the block about two inches from the right side of the page.
3220 This macro needs work and perhaps may never do the right thing within
3227 is a valid numeric expression instead
3228 .Pf ( Em with a scale indicator other than
3230 use that value for indentation.
3231 The most useful scale indicators are
3235 specifying the so-called
3239 This is approximately the width of the letters
3244 of the current font (for nroff output, both scale indicators give the same
3248 isn't a numeric expression, it is tested whether it is an
3250 macro name, and the default offset value associated with this macro is used.
3251 Finally, if all tests fail,
3254 (typeset with a fixed-width font) is taken as the offset.
3256 Suppress insertion of vertical space before begin of display.
3260 End display (takes no arguments).
3263 .Ss "Lists and Columns"
3265 There are several types of lists which may be initiated with the
3268 Items within the list are specified with the
3270 item macro, and each list must end with the
3273 Lists may be nested within themselves and within displays.
3274 The use of columns inside of lists or lists inside of columns is unproven.
3276 In addition, several list attributes may be specified such as the width of a
3277 tag, the list offset, and compactness (blank lines between items allowed or
3279 Most of this document has been formatted with a tag style list
3282 It has the following syntax forms:
3285 .Bd -ragged -compact
3286 .Bl -tag -width ".Li .Bl" -offset indent -compact
3288 .Bro \-hang | \-ohang | \-tag | \-diag | \-inset Brc
3289 .Oo \-width Ao string Ac Oc
3290 .Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
3292 .No \-column Oo \-offset Ao string Ac Oc
3293 .Ao string1 Ac Ao string2 Ac ... Xc
3295 .Bro \-item | \-enum Oo \-nested Oc | \-bullet | \-hyphen | \-dash Brc
3296 .Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
3301 And now a detailed description of the list types.
3304 .Bl -tag -width ".Fl column" -compact
3308 .Bd -literal -offset indent
3309 \&.Bl -bullet -offset indent -compact
3311 Bullet one goes here.
3321 .Bl -bullet -offset indent -compact
3323 Bullet one goes here.
3329 .It Fl dash No ( or Fl hyphen )
3332 .Bd -literal -offset indent
3333 \&.Bl -dash -offset indent -compact
3345 .Bl -dash -offset indent -compact
3356 .Bd -literal -offset indent
3357 \&.Bl -enum -offset indent -compact
3369 .Bl -enum -offset indent -compact
3377 If you want to nest enumerated lists, use the
3379 flag (starting with the second-level list):
3381 .Bd -literal -offset indent
3382 \&.Bl -enum -offset indent -compact
3385 \&.Bl -enum -nested -compact
3389 And item three here.
3400 .Bl -enum -offset indent -compact
3403 .Bl -enum -nested -compact
3407 And item three here.
3417 without list markers.
3419 .Bd -literal -offset indent
3420 \&.Bl -item -offset indent
3436 .Bl -item -offset indent
3452 to specify the tag width.
3455 .Bl -tag -width "PPID" -compact -offset indent
3457 sleep time of the process (seconds blocked)
3461 resulting from references by the process
3462 to pages not loaded in core.
3464 numerical user-id of process owner
3466 numerical id of parent of process priority
3467 (non-positive when in non-interruptible wait)
3473 .Bd -literal -offset indent
3474 \&.Bl -tag -width "PPID" -compact -offset indent
3476 sleep time of the process (seconds blocked)
3480 resulting from references by the process
3481 to pages not loaded in core.
3483 numerical user-id of process owner
3485 numerical id of parent of process priority
3486 (non-positive when in non-interruptible wait)
3492 Diag lists create section four diagnostic lists and are similar to inset
3493 lists except callable macros are ignored.
3496 flag is not meaningful in this context.
3500 .Bd -literal -offset indent
3502 \&.It You can't use Sy here.
3503 The message says all.
3511 .It You can't use Sy here.
3512 The message says all.
3517 A list with hanging tags.
3519 .Bl -hang -offset indent
3521 labels appear similar to tagged lists when the
3522 label is smaller than the label width.
3523 .It Em Longer hanged list labels
3524 blend into the paragraph unlike
3525 tagged paragraph labels.
3528 And the unformatted text which created it:
3530 .Bd -literal -offset indent
3531 \&.Bl -hang -offset indent
3533 labels appear similar to tagged lists when the
3534 label is smaller than the label width.
3535 \&.It Em Longer hanged list labels
3536 blend into the paragraph unlike
3537 tagged paragraph labels.
3543 Lists with overhanging tags do not use indentation for the items; tags are
3544 written to a separate line.
3546 .Bl -ohang -offset indent
3548 sleep time of the process (seconds blocked)
3552 resulting from references by the process
3553 to pages not loaded in core.
3555 numerical user-id of process owner
3557 numerical id of parent of process priority
3558 (non-positive when in non-interruptible wait)
3564 .Bd -literal -offset indent
3565 \&.Bl -ohang -offset indent
3567 sleep time of the process (seconds blocked)
3571 resulting from references by the process
3572 to pages not loaded in core.
3574 numerical user-id of process owner
3576 numerical id of parent of process priority
3577 (non-positive when in non-interruptible wait)
3583 Here is an example of inset labels:
3584 .Bl -inset -offset indent
3586 The tagged list (also called a tagged paragraph)
3587 is the most common type of list used in the
3591 attribute as described below.
3593 Diag lists create section four diagnostic lists
3594 and are similar to inset lists except callable
3597 Hanged labels are a matter of taste.
3599 Overhanging labels are nice when space is constrained.
3601 Inset labels are useful for controlling blocks of
3602 paragraphs and are valuable for converting
3604 manuals to other formats.
3607 Here is the source text which produced the above example:
3609 .Bd -literal -offset indent
3610 \&.Bl -inset -offset indent
3612 The tagged list (also called a tagged paragraph)
3613 is the most common type of list used in the
3616 Diag lists create section four diagnostic lists
3617 and are similar to inset lists except callable
3620 Hanged labels are a matter of taste.
3622 Overhanging labels are nice when space is constrained.
3624 Inset labels are useful for controlling blocks of
3625 paragraphs and are valuable for converting
3627 manuals to other formats.
3633 This list type generates multiple columns.
3634 The number of columns and the width of each column is determined by the
3645 (dot) immediately followed by a valid
3647 macro name, interpret
3649 and use the width of the result.
3650 Otherwise, the width of
3652 (typeset with a fixed-width font) is taken as the
3658 argument is parsed to make a row, each column within the row is a separate
3659 argument separated by a tab or the
3665 .Bl -column -offset indent ".Sy String" ".Sy Nroff" ".Sy Troff"
3666 .It Sy String Ta Sy Nroff Ta Sy Troff
3667 .It Li <= Ta <= Ta \*(<=
3668 .It Li >= Ta >= Ta \*(>=
3675 \&.Bl -column -offset indent ".Sy String" ".Sy Nroff" ".Sy Troff"
3676 \&.It Sy String Ta Sy Nroff Ta Sy Troff
3677 \&.It Li <= Ta <= Ta \e*(<=
3678 \&.It Li >= Ta >= Ta \e*(>=
3686 .Bl -tag -width ".Fl indent Ao Ar string Ac"
3687 .It Fl width Ao Ar string Ac
3692 (dot) immediately followed by a valid
3694 macro name, interpret
3696 and use the width of the result.
3697 Almost all lists in this document use this option.
3701 .Bd -literal -offset indent
3702 \&.Bl -tag -width ".Fl test Ao Ar string Ac"
3703 \&.It Fl test Ao Ar string Ac
3704 This is a longer sentence to show how the
3706 flag works in combination with a tag list.
3713 .Bl -tag -width ".Fl test Ao Ar string Ac"
3714 .It Fl test Ao Ar string Ac
3715 This is a longer sentence to show how the
3717 flag works in combination with a tag list.
3721 (Note that the current state of
3725 is interpreted; afterwards, all variables are restored again.
3726 However, boxes (used for enclosures) can't be saved in
3729 as a consequence, arguments must always be
3731 to avoid nasty errors.
3732 For example, do not write
3735 .Ql ".Ao Ar string Xc"
3736 instead if you really need only an opening angle bracket.)
3740 is a valid numeric expression
3741 .Em ( with a scale indicator other than
3743 use that value for indentation.
3744 The most useful scale indicators are
3748 specifying the so-called
3752 This is approximately the width of the letters
3757 of the current font (for nroff output, both scale indicators give the same
3761 isn't a numeric expression, it is tested whether it is an
3763 macro name, and the default width value associated with this macro is used.
3764 Finally, if all tests fail,
3767 (typeset with a fixed-width font) is taken as the width.
3769 If a width is not specified for the tag list type, every time
3771 is invoked, an attempt is made to determine an appropriate width.
3772 If the first argument to
3774 is a callable macro, the default width for that macro will be used;
3775 otherwise, the default width of
3778 .It Fl offset Ao Ar string Ac
3783 a default indent value (normally set to\~6n, similar to the value used in
3790 is a valid numeric expression instead
3791 .Pf ( Em with a scale indicator other than
3793 use that value for indentation.
3794 The most useful scale indicators are
3798 specifying the so-called
3802 This is approximately the width of the letters
3807 of the current font (for nroff output, both scale indicators give the same
3811 isn't a numeric expression, it is tested whether it is an
3813 macro name, and the default offset value associated with this macro is used.
3814 Finally, if all tests fail,
3817 (typeset with a fixed-width font) is taken as the offset.
3819 Suppress insertion of vertical space before the list and between list items.
3823 .Sh "MISCELLANEOUS MACROS"
3825 Here a list of the remaining macros which do not fit well into one of the
3827 We couldn't find real examples for the following macros:
3831 They are documented here for completeness \- if you know how to use them
3832 properly please send a mail to
3833 .Mt bug-groff@gnu.org
3834 (including an example).
3836 .Bl -tag -width ".Li .Bt"
3840 .Bd -ragged -offset indent
3844 It is neither callable nor parsed and takes no arguments.
3848 .Dl Usage: .Fr Ao function return value Ac ...
3850 Don't use this macro.
3851 It allows a break right before the return value (usually a single digit)
3852 which is bad typographical behaviour.
3855 to tie the return value to the previous word.
3858 Use this macro to include a (header) file literally.
3861 followed by the file name, then the contents of
3864 .Dl Usage: .Hf Ao file Ac
3866 It is neither callable nor parsed.
3869 link (for conversion to HTML).
3871 .Dl Usage: .Lk Ao href Ac Bo anchor-text Bc
3875 Exact usage unknown.
3876 The documentation in the
3878 source file describes it as a macro for
3879 .Dq "menu entries" .
3881 Its default width is 6n.
3884 mailto (for conversion to HTML).
3886 .Dl Usage: .Mt Ao email_address Ac
3890 Exact usage unknown.
3891 The documentation in the
3893 source file describes it as
3894 .Dq old function type (fortran) .
3897 Activate (toggle) space mode.
3899 .Dl Usage: .Sm Oo on | off Oc ...
3901 If space mode is off, no spaces between macro arguments are inserted.
3902 If called without a parameter (or if the next parameter is neither
3912 .Bd -ragged -offset indent
3916 It is neither callable nor parsed and takes no arguments.
3920 .Sh "PREDEFINED STRINGS"
3922 The following strings are predefined:
3924 .Bl -column String infinity "Troff " "straight double quote" -offset indent
3925 .It Sy String Ta Sy Nroff Ta Sy Troff Ta Sy Meaning
3926 .It Li <= Ta <= Ta \*[<=] Ta "less equal"
3927 .It Li >= Ta >= Ta \*[>=] Ta "greater equal"
3928 .It Li Rq Ta '' Ta \*[Rq] Ta "right double quote"
3929 .It Li Lq Ta `` Ta \*[Lq] Ta "left double quote"
3930 .It Li ua Ta ^ Ta \*[ua] Ta "upwards arrow"
3931 .It Li aa Ta \' Ta \*[aa] Ta "acute accent"
3932 .It Li ga Ta \` Ta \*[ga] Ta "grave accent"
3933 .It Li q Ta \&" Ta \*[q] Ta "straight double quote"
3934 .It Li Pi Ta pi Ta \*[Pi] Ta "greek pi"
3935 .It Li Ne Ta != Ta \*[Ne] Ta "not equal"
3936 .It Li Le Ta <= Ta \*[Le] Ta "less equal"
3937 .It Li Ge Ta >= Ta \*[Ge] Ta "greater equal"
3938 .It Li Lt Ta < Ta \*[Lt] Ta "less than"
3939 .It Li Gt Ta > Ta \*[Gt] Ta "greater than"
3940 .It Li Pm Ta +\- Ta \*[Pm] Ta "plus minus"
3941 .It Li If Ta infinity Ta \*[If] Ta "infinity"
3942 .It Li Am Ta \*[Am] Ta \*[Am] Ta "ampersand"
3943 .It Li Na Ta \*[Na] Ta \*[Na] Ta "not a number"
3944 .It Li Ba Ta \*[Ba] Ta \*[Ba] Ta "vertical bar"
3947 The names of the columns
3951 are a bit misleading;
3955 representation, while
3957 gives the best glyph form available.
3958 For example, a Unicode enabled
3960 device will have proper glyph representations for all strings, whereas the
3961 enhancement for a Latin1
3963 device is only the plus-minus sign.
3965 String names which consist of two characters can be written as
3967 string names which consist of one character can be written as
3969 A generic syntax for a string name of any length is
3978 \#=====================================================================
3984 available in previous versions of
3986 has been removed since
3989 provides better facilities to check parameters; additionally, many error and
3990 warning messages have been added to this macro package, making it both more
3993 The only remaining debugging macro is
3995 which yields a register dump of all global registers and strings.
3996 A normal user will never need it.
3999 .Sh "FORMATTING WITH GROFF, TROFF, AND NROFF"
4001 By default, the package inhibits page breaks, headers, and footers if
4008 to make the manual more efficient for viewing on-line.
4009 This behaviour can be changed (e.g.\& to create a hardcopy of the
4011 output) by setting the register
4013 to zero while calling
4015 resulting in multiple pages instead of a single, very long page:
4017 .Dl groff -Tlatin1 -rcR=0 -mdoc foo.man > foo.txt
4019 For double-sided printing, set register
4023 .Dl groff -Tps -rD1 -mdoc foo.man > foo.ps
4025 To change the document font size to 11pt or 12pt, set register
4029 .Dl groff -Tdvi -rS11 -mdoc foo.man > foo.dvi
4037 The line and title length can be changed by setting the registers
4043 .Dl groff -Tutf8 -rLL=100n -rLT=100n -mdoc foo.man | less
4045 If not set, both registers default to 78n for TTY devices and 6.5i
4051 .Bl -tag -width mdoc/doc-ditroff -compact
4053 The main manual macro package.
4055 A wrapper file to call
4057 .It Pa mdoc/doc-common
4058 Common strings, definitions, stuff related typographic output.
4059 .It Pa mdoc/doc-nroff
4060 Definitions used for a
4063 .It Pa mdoc/doc-ditroff
4064 Definitions used for all other devices.
4066 Local additions and customizations.
4068 This file checks whether the
4072 package should be used.
4086 Section 3f has not been added to the header routines.
4089 font should be changed in
4094 needs to have a check to prevent splitting up
4095 if the line length is too short.
4097 separates the last parenthesis, and sometimes
4098 looks ridiculous if a line is in fill mode.
4100 The list and display macros do not do any keeps
4101 and certainly should be able to.
4102 .\" Note what happens if the parameter list overlaps a newline
4104 .\" to make sure a line boundary is crossed:
4106 .\" \&.Fn struct\e\ dictionarytable\e\ *dictionarylookup struct\e\ dictionarytable\e\ *tab[]
4109 .\" produces, nudge nudge,
4110 .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
4111 .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
4113 .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] .
4115 .\" If double quotes are used, for example:
4117 .\" \&.Fn \*qstruct dictionarytable *dictionarylookup\*q \*qchar *h\*q \*qstruct dictionarytable *tab[]\*q
4120 .\" produces, nudge nudge,
4121 .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
4123 .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
4125 .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" .
4127 .\" Not a pretty sight...
4128 .\" In a paragraph, a long parameter containing unpaddable spaces as
4129 .\" in the former example will cause
4131 .\" to break the line and spread
4132 .\" the remaining words out.
4133 .\" The latter example will adjust nicely to
4134 .\" justified margins, but may break in between an argument and its
4138 .\" the right margin adjustment is normally ragged and the problem is
4141 .\" Local Variables: