Penguin
Diff: groff_mdoc(7)
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of groff_mdoc(7).

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 2 Last edited on Sunday, August 17, 2003 8:02:47 am by AristotlePagaltzis
Older page: version 1 Last edited on Monday, June 3, 2002 11:58:27 pm by perry Revert
@@ -1,525 +1,296 @@
-----  
-__ NAME__  
+!!! NAME 
  
+groff_mdoc - reference for groff's mdoc implementation  
  
-groff_mdoc - reference for groff's mdoc  
-implementation  
-__ SYNOPSIS__  
-  
+!!! SYNOPSIS 
  
 groff -mdoc file ... 
-__DESCRIPTION__  
  
+!!!DESCRIPTION  
  
-A complete reference for writing UNIX manual  
- pages with the -mdoc macro package; a ''content''-based  
- and ''domain''-based for- matting package for  
- GNU troff(1). Its predecessor, the  
- -man(7) package, addressed page layout leaving the  
-manipula- tion of fonts and other typesetting details to the  
-individ- ual author. In -mdoc, page layout macros make up  
- the ''page structure domain'' which consists of macros  
- for titles, sec- tion headers, displays and lists -  
- essentially items which affect the physical position of text  
- on a formatted page. In addition to the page structure  
- domain, there are two more domains, the ''manual'' domain  
- and the ''general'' text domain. The general text domain  
- is defined as macros which perform tasks such as quoting or  
- emphasizing pieces of text. The manual domain is defined as  
- macros that are a subset of the day to day informal language  
- used to describe commands, routines and related  
- UNIX files. Macros in the manual domain  
- handle command names, command line arguments and options,  
- function names, function parameters, pathnames, variables,  
- cross ref- erences to other manual pages, and so on. These  
- domain items have value for both the author and the future  
- user of the manual page. It is hoped the consistency gained  
- across the manual set will provide easier translation to  
- future documentation tools.  
-  
+A complete reference for writing UNIX manual pages with the -mdoc macro package; a ''content''-based and ''domain''-based formatting package for GNU troff(1). Its predecessor, the ! -man(7) package, addressed page layout leaving the manipulation of fonts and other typesetting details to the individual author. In -mdoc, page layout macros make up the ''page structure domain'' which consists of macros for titles, section headers, displays and lists - essentially items which affect the physical position of text on a formatted page. In addition to the page structure domain, there are two more domains, the ''manual'' domain and the ''general'' text domain. The general text domain is defined as macros which perform tasks such as quoting or emphasizing pieces of text. The manual domain is defined as macros that are a subset of the day to day informal language used to describe commands, routines and related UNIX files. Macros in the manual domain handle command names, command line arguments and options, function names, function parameters, pathnames, variables, cross references to other manual pages, and so on. These domain items have value for both the author and the future user of the manual page. It is hoped the consistency gained across the manual set will provide easier translation to future documentation tools. 
  
 Throughout the UNIX manual pages, a manual entry is simply referred to as a man page, regardless of actual length and without sexist intention. 
-__GETTING STARTED__  
  
+!!!GETTING STARTED  
  
-The material presented in the remainder of this document is  
- outlined as follows:  
- 1.TROFF IDIOSYNCRASIES  
+The material presented in the remainder of this document is outlined as follows: 
  
+# TROFF IDIOSYNCRASIES  
+** Macro Usage  
+** Passing Space Characters in an Argument  
+** Trailing Blank Space Characters  
+** Escaping Special Characters  
+** Other Possible Pitfalls  
+# A MANUAL PAGE TEMPLATE  
+# CONVENTIONS  
+# TITLE MACROS  
+# INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS  
+** What's in a Name...  
+** General Syntax  
+# MANUAL DOMAIN  
+** Addresses  
+** Author Name  
+** Arguments  
+** Configuration Declarations (Section Four Only)  
+** Command Modifiers  
+** Defined Variables  
+** Errno's  
+** Environment Variables  
+** Flags  
+** Function Declarations  
+** Function Types  
+** Functions (Library Routines)  
+** Function Arguments  
+** Return Values  
+** Interactive Commands  
+** Library Names  
+** Literals  
+** Names  
+** Options  
+** Pathnames  
+** Standards  
+** Variable Types  
+** Variables  
+** Manual Page Cross References  
+# GENERAL TEXT DOMAIN  
+** ATPAGE STRUCTURE DOMAIN  
+** Section Headers  
+** Subsection Headers  
+** Paragraphs and Line Spacing  
+** Keeps  
+** Examples and Displays  
+** Lists and Columns  
+# MISCELLANEOUS MACROS  
+# PREDEFINED STRINGS  
+# DIAGNOSTICS  
+# FORMATTING WITH GROFF, TROFF, AND NROFF  
+# FILES  
+# SEE ALSO  
+# BUGS  
  
- Macro Usage Passing Space Characters in an Argument Trailing Blank Space Characters Escaping Special Characters Other Possible Pitfalls2.A MANUAL PAGE TEMPLATE3.CONVENTIONS4.TITLE MACROS5.INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS What's in a Name... General Syntax6.MANUAL DOMAIN Addresses Author Name Arguments Configuration Declarations (Section Four Only) Command Modifiers Defined Variables Errno's Environment Variables Flags Function Declarations Function Types Functions (Library Routines) Function Arguments Return Values Interactive Commands Library Names Literals Names Options Pathnames Standards Variable Types Variables Manual Page Cross References7.GENERAL TEXT DOMAIN ATPAGE STRUCTURE DOMAIN Section Headers Subsection Headers Paragraphs and Line Spacing Keeps Examples and Displays Lists and Columns9.MISCELLANEOUS MACROS10.PREDEFINED STRINGS11.DIAGNOSTICS12.FORMATTING WITH GROFF, TROFF, AND NROFF13.FILES14.SEE ALSO15.BUGS__TROFF IDIOSYNCRASIES__  
  
+__TROFF IDIOSYNCRASIES__  
  
-The -mdoc package attempts to simplify the process of writ-  
-ing a man page. Theoretically, one should not have to learn  
- the dirty details of GNU troff(1) to  
- use -mdoc; however, there are a few limitations which are  
- unavoidable and best gotten out of the way. And, too, be  
- forewarned, this pack- age is ''not'' fast. 
+  
+ The -mdoc package attempts to simplify the process of writing a man page. Theoretically, one should not have to learn the dirty details of GNU troff(1) to use -mdoc; however, there are a few limitations which are unavoidable and best gotten out of the way. And, too, be forewarned, this package is ''not'' fast. 
  
  
 __Macro Usage__ 
  
  
-As in GNU troff(1), a macro is  
- called by placing a . (dot character) at the  
- beginning of a line followed by the two-character (or  
- three-character) name for the macro. There can be space  
- characters between the dot and the macro name (but ''no''  
- tabs). Arguments may follow the macro sepa- rated by spaces  
- (again, no tabs). It is the dot character at the beginning  
- of the line which causes GNU  
- troff(1) to interpret the next two (or more)  
- characters as a macro name. A single starting dot followed  
- by nothing is ignored. To place a . (dot character)  
- at the beginning of an input line in some context other than  
- a macro invocation, precede the . (dot) with the  
- escape sequence. The  
- translates liter- ally to a zero-width space, and is never  
- displayed in the output.  
-  
-  
-In general, GNU troff(1) macros  
-accept an unlimited number of arguments (contrary to other  
-versions of troff which can't handle more than nine  
-arguments). In limited cases, arguments may be continued or  
-extended on the next line (See __Extended Arguments__  
-below). Almost all macros handle quoted arguments (see  
-__Passing Space Characters in an Argument__  
-below).  
-  
-  
-Most of the -mdoc general text domain and manual domain  
-macros are special in that their argument lists are  
-''parsed'' for callable macro names. This means an  
-argument on the argument list which matches a general text  
-or manual domain macro name and is determined to be callable  
-will be executed or called when it is processed. In this  
-case the argument, although the name of a macro, is not  
-preceded by a . (dot). It is in this manner that  
-many macros are nested; for exam- ple the option macro,  
-.Op, may ''call'' the flag and argument macros,  
-Fl and Ar, to specify an optional flag  
-with an argu- ment:  
- [[-s bytes]  
-  
+As in GNU troff(1), a macro is called by placing a . (dot character) at the beginning of a line followed by the two-character (or three-character) name for the macro. There can be space characters between the dot and the macro name (but ''no'' tabs). Arguments may follow the macro separated by spaces (again, no tabs). It is the dot character at the beginning of the line which causes GNU troff(1) to interpret the next two (or more) characters as a macro name. A single starting dot followed by nothing is ignored. To place a . (dot character) at the beginning of an input line in some context other than a macro invocation, precede the . (dot) with the escape sequence. The translates literally to a zero-width space, and is never displayed in the output. 
  
-is produced by .Op Fl s Ar bytesTo prevent a string from being interpreted as a macro name , precede the string with the escape sequence :  
+In general, GNU troff(1) macros accept an unlimited number of arguments (contrary to other versions of troff which can't handle more than nine arguments) . In limited cases , arguments may be continued or extended on the next line (See __Extended Arguments__ below). Almost all macros handle quoted arguments (see __Passing Space Characters in an Argument__ below).  
  
+Most of the -mdoc general text domain and manual domain macros are special in that their argument lists are ''parsed'' for callable macro names. This means an argument on the argument list which matches a general text or manual domain macro name and is determined to be callable will be executed or called when it is processed. In this case the argument, although the name of a macro, is not preceded by a . (dot). It is in this manner that many macros are nested; for example the option macro, .Op, may ''call'' the flag and argument macros, Fl and Ar, to specify an optional flag with an argument:  
+ [[-s bytes]  
+is produced by .Op Fl s Ar bytes  
  
-[[Fl s Ar bytes] 
+To prevent a string from being interpreted as a macro name, precede the string with the escape sequence:  
+ [[Fl s Ar bytes] 
 is produced by .Op 
  
-  
- Here the strings Fl and Ar are not  
- interpreted as macros. Macros whose argument lists are  
- parsed for callable argu- ments are referred to as  
- ''parsed'' and macros which may be called from an  
- argument list are referred to as ''callable'' throughout  
- this document. This is a technical ''faux pas'' as almost  
- all of the macros in -mdoc are parsed, but as it was  
- cumbersome to constantly refer to macros as being callable  
- and being able to call other macros, the term parsed has  
- been used.  
-  
+Here the strings Fl and Ar are not interpreted as macros. Macros whose argument lists are parsed for callable arguments are referred to as ''parsed'' and macros which may be called from an argument list are referred to as ''callable'' throughout this document. This is a technical ''faux pas'' as almost all of the macros in -mdoc are parsed, but as it was cumbersome to constantly refer to macros as being callable and being able to call other macros, the term parsed has been used. 
  
 __Passing Space Characters in an Argument__ 
-Sometimes it is desirable to give as an argument a string  
-containing one or more blank space characters. This may be  
-necessary to specify arguments to macros which expect par-  
-ticular arrangement of items in the argument list. Addi-  
-tionally, it makes -mdoc working faster. For example, the  
-function macro .Fn expects the first argument to be  
-the name of a function and any remaining arguments to be  
-function parameters. As ANSI C stipulates the  
-declaration of func- tion parameters in the parenthesized  
-parameter list, each parameter is guaranteed to be at  
-minimum a two word string. For example, int  
-foo.  
  
+Sometimes it is desirable to give as an argument a string containing one or more blank space characters.This may be necessary to specify arguments to macros which expect particular arrangement of items in the argument list. Additionally, it makes -mdoc working faster. For example, the function macro .Fn expects the first argument to be the name of a function and any remaining arguments to be function parameters. As ANSI C stipulates the declaration of function parameters in the parenthesized parameter list, each parameter is guaranteed to be at minimum a two word string. For example, int foo.  
  
-There are two possible ways to pass an argument which con-  
-tains an embedded space. One way of passing a string con-  
-taining blank spaces is to use the hard or unpaddable space  
- character \ , that is, a blank space preceded by  
- the escape character \. This method may be used  
- with any macro but has the side effect of interfering with  
- the adjustment of text over the length of a line.  
- Troff sees the hard space as if it were any other  
- printable character and cannot split the string into blank  
- or newline separated pieces as one would expect. This method  
- is useful for strings which are not expected to overlap a  
- line boundary. An alternative is to use ~, a  
- paddable (i.e. stretchable), unbreakable space (this is a  
- GNU troff(1) extension). The second  
- method is to enclose the string with double  
- quotes.  
-  
+There are two possible ways to pass an argument which contains an embedded space. One way of passing a string containing blank spaces is to use the hard or unpaddable space character \ , that is, a blank space preceded by the escape character \. This method may be used with any macro but has the side effect of interfering with the adjustment of text over the length of a line. Troff sees the hard space as if it were any other printable character and cannot split the string into blank or newline separated pieces as one would expect. This method is useful for strings which are not expected to overlap a line boundary. An alternative is to use ~, a paddable (i.e. stretchable), unbreakable space (this is a GNU troff(1) extension). The second method is to enclose the string with double quotes. 
  
 For example: 
  
-  
- fetch(char str) 
+ fetch(char str) 
 is created by .Fn fetch char\ str 
  
+ fetch(char str)  
+can also be created by .Fn fetch char str  
  
-fetch(char str)  
-can also be created by .Fn fetch char  
-str  
-  
-  
- If the \ before the space resp. the double quotes  
- were omit- ted , .Fn would see three arguments, and  
- the result would be:  
-  
-  
-fetch(char, str)  
+If the \ before the space resp. the double quotes were omitted , .Fn would see three arguments, and the result would be: 
  
+ fetch(char, str)  
  
 __Trailing Blank Space Characters__ 
-Troff can be confused by blank space characters at the  
-end of a line. It is a wise preventive measure to globally  
-remove all blank spaces from  
-blank-space  
-end-of-line character sequences. Should the need arise to  
-force a blank character at the end of a line, it may be  
-forced with an unpaddable space and the  
-escape character. For example, string\  
-.  
  
+Troff can be confused by blank space characters at the end of a line. It is a wise preventive measure to globally remove all blank spaces from blank-space end-of-line character sequences. Should the need arise to force a blank character at the end of a line, it may be forced with an unpaddable space and the escape character. For example, string\%%%.  
  
 __Escaping Special Characters__ 
-Special characters like the newline character n are  
-handled by replacing the \ with e (e.g.  
-en) to preserve the back- slash.  
  
+Special characters like the newline character n are handled by replacing the \ with e (e.g. en) to preserve the backslash.  
  
 __Other Possible Pitfalls__ 
-A warning is emitted when an empty input line is found out-  
-side of displays (see below). Use .sp instead.  
-(Well, it is even better to use -mdoc macros to avoid the  
-usage of low-level commands.)  
  
+A warning is emitted when an empty input line is found outside of displays (see below). Use .sp instead. (Well, it is even better to use -mdoc macros to avoid the usage of low-level commands.)  
  
-Leading spaces will cause a break and are output directly.  
- Avoid this behaviour if possible. Similarly, do not use more  
- than one space character between words in an ordinary text  
- line; contrary to other text formatters, they are ''not''  
- replaced with a single space. 
+Leading spaces will cause a break and are output directly. Avoid this behaviour if possible. Similarly, do not use more than one space character between words in an ordinary text line; contrary to other text formatters, they are ''not'' replaced with a single space. 
  
+You can't pass directly as an argument. Use [[q] (or q) instead.  
  
-You can't pass directly as an argument. Use  
-[[q] (or q ) instead
+By default, troff (1 ) inserts two space characters after a punctuation mark closing a sentence; characters like) or ' are treated transparently, not influencing the sentence-ending behaviour . To change this, insert before or after the dot:  
  
+ The  
+ .Ql .  
+ character.  
+ .Pp  
+ The  
+ .Ql  
  
-By default, troff(1) inserts two space characters  
-after a punctuation mark closing a sentence; characters like  
-) or ' are treated transparently, not  
-influencing the sentence-end- ing behaviour. To change this,  
-insert before or after the dot:  
-  
-  
-The  
-.Ql .  
-character.  
-.Pp  
-The  
-.Ql  
 gives 
  
+ The . character  
+ The . character.  
+ test. test  
+ test. test  
  
-The . character  
+As can be seen in the first and third line, -mdoc handles punctuation characters specially in macro arguments . This will be explained in section __General Syntax__ below. In the same way, you have to protect trailing full stops of abbreviations with a trailing zero-width space:  
  
+ e.g..  
  
-The . character
+A comment in the source file of a man page can be either started with . on a single line, after some input, or # anywhere (the latter is a GNU troff(1) extension); the rest of such a line is ignored
  
+!!!A MANUAL PAGE TEMPLATE  
  
-test. test  
-  
-  
-test. test  
-  
-  
-As can be seen in the first and third line, -mdoc handles  
-punctuation characters specially in macro arguments. This  
-will be explained in section __General Syntax__ below. In  
-the same way, you have to protect trailing full stops of  
-abbre- viations with a trailing zero-width space:  
-e.g..  
-  
-  
-A comment in the source file of a man page can be either  
-started with . on a single line,  
- after some input, or # anywhere  
-(the latter is a GNU troff(1)  
-extension); the rest of such a line is ignored.  
-__A MANUAL PAGE TEMPLATE__  
-  
-  
- The body of a man page is easily constructed from a basic  
- template:  
-  
+The body of a man page is easily constructed from a basic template: 
  
 
 The first items in the template are the macros .Dd, .Os, and .Dt; the document date, the operating system the man page or subject source is developed or modified for, and the man page title (in ''upper case'') along with the section of the manual the page belongs in. These macros identify the page and are discussed below in __TITLE MACROS__. 
  
+The remaining items in the template are section headers (.Sh); of which __NAME__, __SYNOPSIS__, and __DESCRIPTION__ are mandatory. The headers are discussed in __PAGE STRUCTURE DOMAIN__, after presentation of __MANUAL DOMAIN__. Several content macros are used to demonstrate page layout macros; reading about content macros before page layout macros is recommended.  
  
-The remaining items in the template are section headers  
-(.Sh); of which __NAME__, __SYNOPSIS__, and  
-__DESCRIPTION__ are manda- tory. The headers are  
-discussed in __PAGE STRUCTURE DOMAIN__, after  
-presentation of __MANUAL DOMAIN__. Several content macros  
-are used to demonstrate page layout macros; reading about  
-content macros before page layout macros is  
-recommended.  
-__ CONVENTIONS__  
-  
-  
-In the description of all macros below, optional arguments  
-are put into brackets. An ellipsis (...) represents zero or  
-more additional arguments. Alternative values for a parame-  
-ter are separated with |. If there are alternative values  
-for a mandatory parameter, braces are used (together with |)  
-to enclose the value set. Meta-variables are specified  
-within angles.  
+!!! CONVENTIONS 
  
+In the description of all macros below, optional arguments are put into brackets. An ellipsis (...) represents zero or more additional arguments. Alternative values for a parameter are separated with |. If there are alternative values for a mandatory parameter, braces are used (together with |) to enclose the value set. Meta-variables are specified within angles.  
  
 Example: 
  .Xx 
-foo  
-{bar1 | bar2}  
-[[-test1 [[-test2 | -test3]]  
-...  
-  
+ foo  
+ {bar1 | bar2}  
+ [[-test1 [[-test2 | -test3]]  
+ ... 
  
 Except stated explicitly, all macros are parsed and callable. 
  
+Most macros have a default width value which can be used to specify a label width (-width) or offset (-offset) for the .Bl and .Bd macros. It is recommended not to use this rather obscure feature to avoid dependencies on local modifications of the -mdoc package.  
  
-Most macros have a default width value which can be used to  
-specify a label width (-width) or offset (-offset) for the  
-.Bl and .Bd macros. It is recommended not  
-to use this rather obscure feature to avoid dependencies on  
-local modi- fications of the -mdoc package.  
+!!!TITLE MACROS  
  
+The title macros are part of the page structure domain but are presented first and separately for someone who wishes to start writing a man page yesterday. Three header macros designate the document title or manual page title, the operating system, and the date of authorship. These macros are called once at the very beginning of the document and are used to construct headers and footers only.  
  
-__TITLE MACROS__  
-  
-  
-The title macros are part of the page structure domain but  
-are presented first and separately for someone who wishes to  
-start writing a man page yesterday. Three header macros  
-designate the document title or manual page title, the oper-  
-ating system, and the date of authorship. These macros are  
-called once at the very beginning of the document and are  
-used to construct headers and footers only.  
  .Dt 
-[[document title]  
-[[section number]  
-[[volume]  
-  
-  
-The document title is the subject of the man page and must  
-be in CAPITALS due to troff limitations. If  
-omitted, UNTITLED is used. The section number  
-may be a number in the range 1, ..., 9 or unass,  
-draft, or paper. If it is specified, and  
-no volume name is given, a default volume name is  
-used.  
+ [[document title]  
+ [[section number]  
+ [[volume] 
  
+The document title is the subject of the man page and must be in CAPITALS due to troff limitations. If omitted, UNTITLED is used. The section number may be a number in the range 1, ..., 9 or unass, draft, or paper. If it is specified, and no volume name is given, a default volume name is used.  
  
 Under BSD , the following sections are defined: 
  
+# System General Commands Manual  
+# System Calls Manual  
+# System Library Functions Manual  
+# System Kernel Interfaces Manual  
+# System File Formats Manual  
+# System Games Manual  
+# System Miscellaneous Information Manual  
+# System Manager's Manual  
+# System Kernel Developer's Manual  
  
-1 System General Commands Manual  
+A volume name may be arbitrary or one of the following:  
  
+; US : System User's Supplementary Documents  
+; PS : System Programmer's Supplementary Documents  
+; AM : System Ancestral Manual Documents  
+; SM : System Manager's Manual  
+; UR : System Reference Manual  
+; PR : System Programmer's Manual  
+; K : System Kernel Manual  
+; IN : System Manual Master Index  
+; LOCA : System Local Manual  
+; CON : System Contributed Software Manual  
  
-2 System Calls Manual  
+For compatibility, MMI can be used for IND, and LOC for LOCAL. Values from the previous table will specify a new volume name. If the third parameter is a keyword designating a computer architecture, its value is appended to the volume name as specified by the second parameter. By default, the following architecture keywords are defined:  
  
+alpha, amiga, arc, arm26, arm32, atari, bebox, cobalt, evbsh3, hp300, hpcmips, i386, luna68k, m68k, mac68k, macppc, mips, mmeye, mvme68k, news68k, newsmips, next68k, ofppc, pc532, pmax, powerpc, prep, sgimips, sh3, sparc, sparc64, sun3, tahoe, vax, x68k  
  
-3 System Library Functions Manual  
+In the following examples, the left (which is identical to the right) and the middle part of the manual page header strings are shown.  
  
+ FOO(7) System Reference Manual  
+ .Dt FOO 2 mac68k  
  
-4 System Kernel Interfaces Manual 
+ FOO(2) System Programmer's Manual (mac68k Architecture)  
+ .Dt FOO barFOO bar  
  
+''Ed: the above examples appear to have been copied to the wiki brokenly.''  
  
-5 System File Formats Manual  
+Local, OS-specific additions might be found in the file mdoc.local; look for strings named volume-ds-XXX (for the former type) and volume-as-XXX (for the latter type); XXX then denotes the keyword to be used with the .Dt macro.  
  
+This macro is neither callable nor parsed.  
  
-6 System Games Manual  
-  
-  
-7 System Miscellaneous Information  
-Manual  
-  
-  
-8 System Manager's Manual  
-  
-  
-9 System Kernel Developer's Manual  
-  
-  
-A volume name may be arbitrary or one of the follow-  
-ing:  
-  
-  
-USD System User's Supplementary Documents  
-PS1 System Programmer's Supplementary Documents  
-AMD System Ancestral Manual Documents  
-SMM System Manager's Manual  
-URM System Reference Manual  
-PRM System Programmer's Manual  
-KM System Kernel Manual  
-IND System Manual Master Index  
-LOCAL System Local Manual  
-  
-  
-CON System Contributed Software Manual  
-  
-  
-For compatibility, MMI can be used for  
-IND, and LOC for LOCAL. Values  
-from the previous table will spec- ify a new volume name. If  
-the third parameter is a keyword designating a computer  
-architecture, its value is appended to the volume name as  
-specified by the second parameter. By default, the following  
-architecture keywords are defined:  
-  
-  
-alpha, amiga, arc, arm26, arm32, atari, bebox, cobalt,  
-evbsh3, hp300, hpcmips, i386, luna68k, m68k, mac68k, macppc,  
-mips, mmeye, mvme68k, news68k, newsmips, next68k, ofppc,  
-pc532, pmax, powerpc, prep, sgimips, sh3, sparc, sparc64,  
-sun3, tahoe, vax, x68k  
-  
-  
-In the following examples, the left (which is identi- cal to  
-the right) and the middle part of the manual page header  
-strings are shown.  
- .Dt FOO 7  
-  
-  
-FOO(7) System Reference Manual.Dt FOO 2 mac68kFOO(2) System Programmer'sManual (mac68k Architecture).Dt FOO barFOO barLocal, OS-specific additions might be found in the file mdoc.local; look for strings named volume-ds-XXX (for the former type) and volume-as-XXX (for the lat- ter type); XXX then denotes the keyword to be used with the .Dt macro.  
-  
-  
-This macro is neither callable nor parsed.  
  .Os 
-[[operating system]  
-[[release] 
+ [[operating system]  
+ [[release] 
  
+If the first parameter is empty, the default BSD is used. This may be overridden in the local configuration file, mdoc.local. In general, the name of the operating system should be the common acronym, e.g. BSD or ATT . The release should be the standard release nomenclature for the system specified. In the following table, the possible second arguments for some predefined operating systems are listed. Similar to .Dt, local additions might be defined in mdoc.local; look for strings named operating-system-XXX-YYY, where XXX is the acronym for the operating system and YYY the release ID.  
  
-If the first parameter is empty, the default  
-BSD is used. This may be overridden in the  
-local configura- tion file, mdoc.local. In general,  
-the name of the operating system should be the common  
-acronym, e.g. BSD or ATT . The  
-release should be the standard release nomenclature for the  
-system specified. In the following table, the possible  
-second arguments for some predefined operating systems are  
-listed. Similar to .Dt, local additions might be  
-defined in mdoc.local; look for strings named  
-operating-system-XXX-YYY, where XXX is the  
-acronym for the operating system and YYY the  
-release ID.  
  ATT 
  
+7th, 7, III, 3, V, V.2, V.3, V.4BSD3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r,4.3R, 4.4NetBSD0.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, 1.3,1.3a, 1.4, 1.5FreeBSD1.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,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, 4.2,5.0  
  
-7th, 7, III, 3, V, V.2, V.3, V.4BSD3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r,4.3R, 4.4NetBSD0.8, .8a, .9, .9a, 1., 1.0a, 1.1,1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e, 1.3,1.3a, 1.4, 1.5FreeBSD1., 1.1, 1.1.5, 1.1.5.1, 2., 2..5,2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1,2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.,3.1, 3.2, 3.3, 3.4, 3.5, 4., 4.1, 4.2,5.0For ATT , an unknown second parameter will be replaced with the string UNIX ; for the other predefined acronyms it will be ignored and a warning message emitted. Unrecognized arguments are displayed as given in the page footer. For instance, a typical footer might be: 
+For ATT , an unknown second parameter will be replaced with the string UNIX ; for the other predefined acronyms it will be ignored and a warning message emitted. Unrecognized arguments are displayed as given in the page footer. For instance, a typical footer might be: 
  
+ .Os BSD 4.3  
  
-.Os BSD 4.3  
-  
-  
- giving 4.3 Berkeley Distribution, or for a locally  
- produced set  
-  
-  
-.Os CS Department  
+giving 4.3 Berkeley Distribution, or for a locally produced set 
  
+ .Os CS Department  
  
 which will produce CS Department. 
  
+If the .Os macro is not present, the bottom left corner of the manual page will be ugly.  
  
-If the .Os macro is not present, the bottom left  
-cor- ner of the manual page will be ugly
+This macro is neither callable nor parsed
  
-  
-This macro is neither callable nor parsed.  
  .Dd 
-[[  
-month  
-day,  
-year  
-]  
-  
-  
-If Dd has no arguments, Epoch is used for  
-the date string. If it has exactly three arguments, they are  
-concatenated, separated with unbreakable space:  
+ [[  
+ month  
+ day,  
+ year  
+
  
+If Dd has no arguments, Epoch is used for the date string. If it has exactly three arguments, they are concatenated, separated with unbreakable space:  
  
 .Dd January 25, 2001 
  
-  
- Otherwise, the current date is used, ignoring the  
- parameters.  
-  
+Otherwise, the current date is used, ignoring the parameters. 
  
 This macro is neither callable nor parsed. 
  
-  
- __INTRODUCTION OF MANUAL AND GENERAL TEXT  
- DOMAINS__  
-  
+__INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS__ 
  
 __What's in a Name__... 
  
+The manual domain macro names are derived from the day to day informal language used to describe commands, subroutines and related files. Slightly different variations of this language are used to describe the three different aspects of writing a man page. First, there is the description of -mdoc macro request usage. Second is the description of a UNIX command ''with'' -mdoc macros, and third, the description of a command to a user in the verbal sense; that is, discussion of a command in the text of a man page.  
  
-The manual domain macro names are derived from the day to  
-day informal language used to describe commands, subroutines  
-and related files. Slightly different variations of this  
-language are used to describe the three different aspects of  
-writing a man page. First, there is the description of -mdoc  
-macro request usage. Second is the description of a  
-UNIX command ''with'' -mdoc macros, and  
-third, the description of a command to a user in the verbal  
-sense; that is, discus- sion of a command in the text of a  
-man page.  
-  
-  
- In the first case, troff(1) macros are themselves a  
- type of command; the general syntax for a troff command  
- is:  
-  
+In the first case, troff(1) macros are themselves a type of command; the general syntax for a troff command is: 
  
 .Xx argument1 argument2 ... 
  
+.Xx is a macro command or request, and anything following it are arguments to be processed. In the second case, the description of a UNIX command using the content macros is a bit more involved; a typical __SYNOPSIS__ command line might be displayed as:  
  
-.Xx is a macro command or request, and anything  
-following it are arguments to be processed. In the second  
-case, the description of a UNIX command using  
-the content macros is a bit more involved; a typical  
-__SYNOPSIS__ command line might be displayed  
-as:  
+filter [[-flag] infile outfile  
  
+Here, filter is the command name and the bracketed string -flag is a ''flag'' argument designated as optional by the option brackets. In -mdoc terms, infile and outfile are called ''meta arguments''; in this example, the user has toreplace the meta expressions given in angle brackets withreal file names. Note that in this document meta argumentsare used to describe -mdoc commands; in most man pages, metavariables are not specifically written with angle brackets.The macros which formatted the above example:  
  
-filter [[-flag]  
- infile outfile  
-Here, filter is the command name and the bracketed  
-string -flag is a ''flag'' argument designated as  
-optional by the option brackets. In -mdoc terms,  
- infile and outfileare called ''meta arguments''; in this example, the user has toreplace the meta expressions given in angle brackets withreal file names. Note that in this document meta argumentsare used to describe -mdoc commands; in most man pages, metavariables are not specifically written with angle brackets.The macros which formatted the above example: .Nm filter  
- .Op Fl flag 
+.Nm filter .Op Fl flag 
 .Ao Ar infile Ac Ao Ar outfile Ac 
-In the third case, discussion of commands and command  
-syntax includes both examples above, but may add more  
-detail. The arguments  
- infile and outfile from the example abovemight be referred to as ''operands'' or '' file arguments''. Somecommand line argument lists are quite long:  
- make  
  
+In the third case, discussion of commands and command syntax includes both examples above, but may add more detail. The arguments infile and outfile from the example abovemight be referred to as ''operands'' or '' file arguments''. Some command line argument lists are quite long:  
  
-[[-eiknqrstv] [[-D variable] [[-d flags] [[-fmakefile] [[-I directory] [[-j max_jobs][[variable=value] [[target ...]Here one might talk about the command make and qualify the argument, makefile, as an argument to the flag, -f, or dis- cuss the optional file operand target. In the verbal con- text, such detail can prevent confusion, however the -mdoc package does not have a macro for an argument ''to'' a flag. Instead the Ar argument macro is used for an operand or file argument like target as well as an argument to a flag like variable. The make command line was produced from:  
+make [[-eiknqrstv] [[-D variable] [[-d flags] [[-fmakefile] [[-I directory] [[-j max_jobs] [[variable=value] [[target ...] 
  
+Here one might talk about the command make and qualify the argument, makefile, as an argument to the flag, -f, or discuss the optional file operand target. In the verbal context, such detail can prevent confusion, however the -mdoc package does not have a macro for an argument ''to'' a flag. Instead the Ar argument macro is used for an operand or file argument like target as well as an argument to a flag like variable. The make command line was produced from:  
  
 .Nm make 
 .Op Fl eiknqrstv 
 .Op Fl D Ar variable 
@@ -530,70 +301,42 @@
 .Op Ar variable Ns = Ns Ar value 
 .Bk 
 .Op Ar target ... 
 .Ek 
+  
 The .Bk and .Ek macros are explained in __Keeps__. 
-  
  
 __General Syntax__ 
  
-  
- The manual domain and general text domain macros share a  
- similar syntax with a few minor deviations; most notably,  
- .Ar, .Fl, .Nm, and .Pa  
- differ only when called without argu- ments ; and  
- .Fn and .Xr impose an order on their  
- argument lists. All content macros are capable of  
- recognizing and properly handling punctuation, provided each  
- punctuation character is separated by a leading space. If a  
- request is given:  
-  
+The manual domain and general text domain macros share a similar syntax with a few minor deviations; most notably, .Ar, .Fl, .Nm, and .Pa differ only when called without arguments ; and .Fn and .Xr impose an order on their argument lists. All content macros are capable of recognizing and properly handling punctuation, provided each punctuation character is separated by a leading space. If a request is given: 
  
 .Ar sptr, ptr), 
-  
  
 The result is: 
-  
  
 sptr, ptr), 
  
-  
- The punctuation is not recognized and all is output in the  
- font used by .Ar. If the punctuation is separated  
- by a leading white space:  
-  
+The punctuation is not recognized and all is output in the font used by .Ar. If the punctuation is separated by a leading white space: 
  
 .Ar sptr , ptr ) , 
-  
  
 The result is: 
-  
  
 sptr, ptr), 
  
+The punctuation is now recognized and output in the default font distinguishing it from the argument strings. To remove the special meaning from a punctuation character escape it with .  
  
-The punctuation is now recognized and output in the default  
-font distinguishing it from the argument strings. To remove  
-the special meaning from a punctuation character escape it  
-with .  
-  
-  
- Troff is limited as a macro language, and has  
- difficulty when presented with a string containing a member  
- of the mathematical, logical or quotation set:  
-  
+Troff is limited as a macro language, and has difficulty when presented with a string containing a member of the mathematical, logical or quotation set: 
  
 {+,-,/,,%, 
-The problem is that troff may assume it is supposed to actu- ally perform the operation or evaluation suggested by the characters. To prevent the accidental evaluation of these characters, escape them with . Typical syntax is shown in the first content macro displayed below, .Ad.  
-__MANUAL DOMAIN__  
+The problem is that troff may assume it is supposed to actually perform the operation or evaluation suggested by the characters. To prevent the accidental evaluation of these characters, escape them with . Typical syntax is shown in the first content macro displayed below, .Ad. 
  
+!!!MANUAL DOMAIN  
  
 __Addresses__ 
-  
  
 The address macro identifies an address 
 construct. 
-  
  
 Usage: .Ad 
  address ... .Ad addr1 
 ''addr1'' 
@@ -736,9 +479,9 @@
 -xyz), 
 .Fl | 
 - | 
 The .Fl macro without any arguments results in 
-a dash repre- senting stdin/stdout. Note that giving 
+a dash representing stdin/stdout. Note that giving 
 .Fl a single dash will result in two dashes. 
 The default width is 12n. 
 __Function Declarations__ 
 The .Fd macro is used in the __SYNOPSIS__ 
@@ -764,9 +507,9 @@
 __Function Types__ 
 This macro is intended for the __SYNOPSIS__ section. It 
 may be used anywhere else in the man page without problems, 
 but its main purpose is to present the function type in 
-kernel nor- mal form for the __SYNOPSIS__ of sections two 
+kernel normal form for the __SYNOPSIS__ of sections two 
 and three (it causes a line break, allowing the function 
 name to appear on the next line). 
 Usage: .Ft 
 type ... 
@@ -803,17 +546,17 @@
 In the __SYNOPSIS__ section, the function will always 
 begin at the beginning of line. If there is more than one 
 function presented in the __SYNOPSIS__ section and a 
 function type has not been given, a line break will occur, 
-leaving a nice ver- tical space between the current function 
+leaving a nice vertical space between the current function 
 name and the one prior. 
 The default width values of .Fn and 
 .Fo are 12n and 16n, respectively. 
  
  
 __Function Arguments__ 
 The .Fa macro is used to refer to function 
-arguments (param- eters ) outside of the __SYNOPSIS__ 
+arguments (parameters ) outside of the __SYNOPSIS__ 
 section of the manual or inside the __SYNOPSIS__ section 
 if the enclosure macros .Fo and .Fc 
 instead of .Fn are used. .Fa may also be 
 used to refer to structure members. 
@@ -831,10 +574,9 @@
 Usage: .Rv [[ 
 -std] 
 function 
 For example, .Rv -std atexit produces: 
-The atexit() function returns the value 0 if success-  
-ful ; otherwise the value -1 is returned and the global 
+The atexit() function returns the value 0 if successful ; otherwise the value -1 is returned and the global 
 variable ''errno'' is set to indicate the error. 
  
  
 The -std option is valid only for manual page sections 2 and 3. Currently, this macro does nothing if used without the -std flag. 
@@ -856,9 +598,9 @@
 setenv, unsetenv 
 The default width is 12n. 
 __Library Names__ 
 The .Lb macro is used to specify the library where 
-a partic- ular function is compiled in. 
+a particular function is compiled in. 
 Usage: .Lb 
 argument ... 
 Available arguments to .Lb and their results 
 are: 
@@ -904,9 +646,9 @@
 to be used with the .Lb macro. 
 __Literals__ 
 The .Li literal macro may be used for special 
 characters, variable constants, etc. -- anything which 
-should be dis- played as it would be typed. 
+should be displayed as it would be typed. 
 Usage: .Li 
 argument ... 
 .Li en 
 
@@ -919,16 +661,15 @@
 The default width is 16n. 
 __Names__ 
 The .Nm macro is used for the document title or 
 subject name. It has the peculiarity of remembering the 
-first argu- ment it was called with, which should always be 
+first argument it was called with, which should always be 
 the subject name of the page. When called without arguments, 
-.Nm regur- gitates this initial name for the sole 
+.Nm regurgitates this initial name for the sole 
 purpose of making less work for the author. Note: A section 
-two or three doc- ument function name is addressed with the 
+two or three document function name is addressed with the 
 .Nm in the __NAME__ section, and with 
-.Fn in the __SYNOPSIS__ and remaining sec-  
-tions . For interactive commands, such as the while 
+.Fn in the __SYNOPSIS__ and remaining sections . For interactive commands, such as the while 
 command keyword in csh(1), the .Ic macro 
 should be used. While .Ic is nearly identical to 
 .Nm, it can not recall the first argument it was 
 invoked with. 
@@ -945,11 +686,11 @@
 The default width is 10n. 
 __Options__ 
 The .Op macro places option brackets around any 
 remaining arguments on the command line, and places any 
-trailing punc- tuation outside the brackets. The macros 
+trailing punctuation outside the brackets. The macros 
 .Oo and .Oc (which produce an opening and 
-a closing option bracket respec- tively ) may be used across 
+a closing option bracket respectively ) may be used across 
 one or more lines or to specify the exact position of the 
 closing parenthesis. 
 Usage: .Op [[ 
 option] ... 
@@ -992,9 +733,9 @@
  
 __Pathnames__ 
 The .Pa macro formats path or file names. If 
 called without arguments, the ~ string is output, 
-which represents the cur- rent user's home directory. 
+which represents the current user's home directory. 
  
  
 Usage: .Pa [[ 
  pathname] ... .Pa ~ .Pa /usr/share /usr/share .Pa /tmp/fooXXXXX ) . /tmp/fooXXXXX 
@@ -1138,12 +879,16 @@
 mdoc(7) 
 .Xr xinit 1x ; 
 xinit(1x); 
 The default width is 10n. 
-__GENERAL TEXT DOMAIN__  
  
+!!!GENERAL TEXT DOMAIN  
+  
+  
+  
+  
+!!!AT  
  
-__AT__  
  
  
 Usage: .At [[ 
  version] ... .At 
@@ -1165,9 +910,9 @@
 4.3 BSD . 
 .Bx -devel 
 BSD (currently under development) 
 version will be prepended to the string BSD . 
-The fol- lowing values for 
+The following values for 
 release are possible: 
 Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, 
 lite2 
 __NetBSD Macro__ 
@@ -1216,9 +961,9 @@
 vide infra'')), 
 The default width is 10n. 
 __Font Mode__ 
 The .Bf font mode must be ended with the 
-.Ef macro (the lat- ter takes no arguments). Font 
+.Ef macro (the latter takes no arguments). Font 
 modes may be nested within other font modes. 
 .Bf has the following syntax: 
 .Bf 
 font mode 
@@ -1234,16 +979,15 @@
 block of text. 
 Both macros are neither callable nor parsed. 
 __Enclosure and Quoting Macros__ 
 The concept of enclosure is similar to quoting. The object 
-being to enclose one or more strings between a pair of char-  
-acters like quotes or parentheses. The terms quoting and 
+being to enclose one or more strings between a pair of characters like quotes or parentheses. The terms quoting and 
 enclosure are used interchangeably throughout this document. 
 Most of the one-line enclosure macros end in small letter 
 q to give a hint of quoting, but there are a few 
-irregulari- ties . For each enclosure macro there is also a 
+irregularities . For each enclosure macro there is also a 
 pair of open and close macros which end in small letters 
-o and c respec- tively
+o and c respectively
  
  
 ''Quote Open Close Function Result 
 ''.Aq .Ao .Ac Angle Bracket Enclosure string 
@@ -1270,14 +1014,14 @@
 closing strings respectively. 
  
  
 .Es, .En 
-Due to the nine-argument limit in the original troff program two other macros have been imple- mented which are now rather obsolete: .Es takes the first and second parameter as the left and right enclosure string, which are then used to enclose the arguments of .En. The default width value is 12n for both macros. 
+Due to the nine-argument limit in the original troff program two other macros have been implemented which are now rather obsolete: .Es takes the first and second parameter as the left and right enclosure string, which are then used to enclose the arguments of .En. The default width value is 12n for both macros. 
  
  
 .Eq 
 The first and second arguments of this macro are the opening 
-and closing strings respectively, fol- lowed by the 
+and closing strings respectively, followed by the 
 arguments to be enclosed. 
  
  
 .Ql 
@@ -1353,9 +1097,9 @@
  
  
 __No-Op or Normal Text Macro__ 
 The .No macro can be used in a macro command line 
-for param- eters which should ''not'' be formatted. Be 
+for parameters which should ''not'' be formatted. Be 
 careful to add to the word No if you 
 really want that English word (and not the macro) as a 
 parameter. 
  
@@ -1389,9 +1133,9 @@
 [[-Idirectory] 
  
  
 Note: The .Ns macro always invokes the .No 
-macro after elim- inating the space unless another macro 
+macro after eliminating the space unless another macro 
 name follows it. If used as a request (i.e., the second form 
 above in the Usage line, .Ns is identical to 
 .No. 
  
@@ -1445,10 +1189,9 @@
 The default width is 6n. 
  
  
 __References and Citations__ 
-The following macros make a modest attempt to handle refer-  
-ences . At best, the macros make it convenient to manually 
+The following macros make a modest attempt to handle references . At best, the macros make it convenient to manually 
 drop in a subset of refer(1) style 
 references. 
  
  
@@ -1507,9 +1250,9 @@
  
 __Trade Names (or Acronyms and Type Names)__ 
 The trade name macro prints its arguments in a smaller 
 font. Its intended use is to imitate a small caps fonts for 
-upper- case acronyms. 
+uppercase acronyms. 
  
  
 Usage: .Tn 
  symbol ... .Tn DEC 
@@ -1560,17 +1303,19 @@
 produces 
  .ifndef 
 [[ !]variable [[ operator variable ... 
 
-__ PAGE STRUCTURE DOMAIN__  
+  
+!!! PAGE STRUCTURE DOMAIN  
+  
  
  
 __Section Headers__ 
  
  
 The following .Sh section header macros are 
 required in every man page. The remaining section headers 
-are recom- mended at the discretion of the author writing 
+are recommended at the discretion of the author writing 
 the manual page. The .Sh macro is parsed but not 
 generally callable. It can be used as an argument in a call 
 to .Sh only; it then reactivates the default font 
 for .Sh. 
@@ -1578,19 +1323,18 @@
  
 The default width is 8n. 
  .Sh NAME 
 The .Sh NAME macro is mandatory. If not 
-specified, headers, footers and page lay- out defaults will 
+specified, headers, footers and page layout defaults will 
 not be set and things will be rather unpleasant. The 
-__NAME__ sec- tion consists of at least three items. The 
+__NAME__ section consists of at least three items. The 
 first is the .Nm name macro naming the subject of 
 the man page. The second is the name description macro, 
 .Nd, which separates the subject name from the 
 third item, which is the description. The description should 
 be the most terse and lucid possible, as the space available 
 is small. 
-.Nd first prints -, then all its argu-  
-ments
+.Nd first prints -, then all its arguments
  
  
 .Sh LIBRARY 
 This section is for section two and three function calls. It should consist of a single .Lb macro call; see __Library Names__. 
@@ -1601,9 +1345,9 @@
 the subject of a man page. The macros required are either 
 .Nm, .Cd, or .Fn (and possibly 
 .Fo, .Fc, .Fd, and .Ft). 
 The function name macro .Fn is required for manual 
-page sections 2 and 3; the com- mand and general name macro 
+page sections 2 and 3; the command and general name macro 
 .Nm is required for sections 1, 5, 6, 7, and 8. 
 Section 4 manuals require a .Nm, .Fd or a 
 .Cd configuration device usage macro. Several other 
 macros may be necessary to produce the synopsis line as 
@@ -1630,9 +1374,9 @@
  
  
 In most cases the first text in the __DESCRIPTION__ 
 section is a brief paragraph on the command, function or 
-file, followed by a lexical list of options and respec- tive  
+file, followed by a lexical list of options and respective  
 explanations. To create such a list, the .Bl (begin 
 list), .It (list item) and .El (end list) 
 macros are used (see __Lists and Columns__ 
 below). 
@@ -1651,9 +1395,9 @@
  
  
 The following .Sh section headers are part of the 
 preferred manual page layout and must be used appropriately 
-to main- tain consistency. They are listed in the order in 
+to maintain consistency. They are listed in the order in 
 which they would be used. 
  
  
 .Sh ENVIRONMENT The __ENVIRONMENT__ section 
@@ -1677,9 +1421,9 @@
 section. 
  
  
 .Sh COMPATIBILITY 
-Known compatibility issues (e.g. depre- cated options or 
+Known compatibility issues (e.g. deprecated options or 
 parameters) should be listed here. 
  
  
 .Sh ERRORS 
@@ -1693,12 +1437,12 @@
 References to other material on the man page topic and cross 
 references to other relevant man pages should be placed in 
 the __SEE ALSO__ section. Cross references are specified 
 using the .Xr macro. Currently refer(1) 
-style references are not accommo- dated
+style references are not accommodated
  
  
-It is recommended that the cross refer- ences are sorted on 
+It is recommended that the cross references are sorted on 
 the section number, then alphabetically on the names within 
 a section, and placed in that order and comma separated. 
 Example: 
  
@@ -1718,9 +1462,9 @@
  
  
 .Sh HISTORY 
 Any command which does not adhere to any specific standards 
-should be outlined his- torically in this 
+should be outlined historically in this 
 section. 
  
  
 .Sh AUTHORS 
@@ -1745,9 +1489,9 @@
  
 Subsection headers have exactly the same syntax as section 
 headers: .Ss is parsed but not generally callable. 
 It can be used as an argument in a call to .Ss 
-only; it then reac- tivates the default font for 
+only; it then reactivates the default font for 
 .Ss. 
  
  
 The default width is 8n. 
@@ -1783,10 +1527,9 @@
  
 Both macros are neither callable nor parsed. 
  
  
-More work needs to be done with the keep macros; specifi-  
-cally , a -line option should be added. 
+More work needs to be done with the keep macros; specifically , a -line option should be added. 
  
  
 __Examples and Displays__ 
 There are seven types of displays. 
@@ -1844,96 +1587,55 @@
 that each single line is centered. 
 -unfilled 
 Do not fill; display a block of text as typed, using line 
 breaks as specified by the user. This can produce overlong 
-lines with- out warning messages. 
+lines without warning messages. 
 -filled 
 Display a filled block. The block of text is formatted 
 (i.e., the text is justified on both the left and right 
 side). 
 -literal 
-Display block with literal font (usually fixed-width).  
- Useful for source code or sim- ple tabbed or spaced  
- text. 
+Display block with literal font (usually fixed-width). Useful for source code or simple tabbed or spaced text.  
+  
 -file 
 file name 
-The file whose name follows the -file flag is read and  
- displayed before any data enclosed with .Bd and  
- .Ed, using the selected display type. Any  
- troff/-mdoc commands in the file will be  
- processed. 
+The file whose name follows the -file flag is read and displayed before any data enclosed with .Bd and .Ed, using the selected display type. Any troff/-mdoc commands in the file will be processed.  
+  
 -offset 
 string 
-If -offset is specified with one of the fol- lowing strings,  
- the string is interpreted to indicate the level of  
- indentation for the forthcoming block of text: 
+If -offset is specified with one of the following strings, the string is interpreted to indicate the level of indentation for the forthcoming block of text: 
  
+left  
+Align block on the current left margin; this is the default mode of .Bd.  
  
-left  
-Align block on the current left margin; this is the default  
-mode of .Bd.  
 center 
-Supposedly center the block. At this time unfortunately, the  
- block merely gets left aligned about an imaginary center  
- margin. 
+Supposedly center the block. At this time unfortunately, the block merely gets left aligned about an imaginary center margin.  
+  
 indent 
-Indent by one default indent value or tab. The default  
- indent value is also used for the .D1 and  
- .Dl macros, so one is guaranteed the two types of  
- displays will line up. The indentation value is nor- mally  
- set to 6n or about two thirds of an inch (six constant width  
- characters). 
+Indent by one default indent value or tab. The default indent value is also used for the .D1 and .Dl macros, so one is guaranteed the two types of displays will line up. The indentation value is normally set to 6n or about two thirds of an inch (six constant width characters).  
+  
 indent-two 
 Indent two times the default indent value. 
+  
 right 
-This ''left'' aligns the block about two inches from the  
- right side of the page. This macro needs work and perhaps  
- may never do the right thing within  
- troff. 
+This ''left'' aligns the block about two inches from the right side of the page. This macro needs work and perhaps may never do the right thing within troff. 
  
+If string is a valid numeric expression instead (''with a scale indicator other than u''), use that value for indentation. The most useful scale indicators are m and n, specifying the so-called ''Em'' and ''En square''. This is approximately the width of the letter m resp. the letter n of the current font (for nroff output, both scale indicators give the same values). If string isn't a numeric expression, it is tested whether it is an -mdoc macro name, and the default offset value associated with this macro is used. Finally, if all tests fail, the width of string (typeset with a fixed-width font) is taken as the offset.  
  
-If  
-string is a valid numeric expression instead (''with a  
-scale indicator other than u''), use that value for  
-indentation. The most useful scale indicators are m and n,  
-specify- ing the so-called ''Em'' and ''En square''.  
-This is approximately the width of the letter m resp. the  
-letter n of the current font (for nroff output, both scale  
-indicators give the same values). If  
-string isn't a numeric expression, it is tested whether it  
-is an -mdoc macro name, and the default offset value  
-associated with this macro is used. Finally, if all tests  
-fail, the width of  
-string (typeset with a fixed-width font) is taken as the  
-offset.  
 -compact 
 Suppress insertion of vertical space before begin of 
 display. 
-  
  
 .Ed 
 End display (takes no arguments). 
-  
  
 __Lists and Columns__ 
-There are several types of lists which may be initiated with  
-the .Bl begin-list macro. Items within the list are  
-speci- fied with the .It item macro, and each list  
-must end with the .El macro. Lists may be nested  
-within themselves and within displays. The use of columns  
-inside of lists or lists inside of columns is  
-unproven.  
  
+There are several types of lists which may be initiated with the .Bl begin-list macro. Items within the list are specified with the .It item macro, and each list must end with the .El macro. Lists may be nested within themselves and within displays. The use of columns inside of lists or lists inside of columns is unproven.  
  
-In addition, several list attributes may be specified such  
- as the width of a tag, the list offset, and compactness  
- (blank lines between items allowed or disallowed). Most of  
- this document has been formatted with a tag style list  
- (-tag).  
-  
+In addition, several list attributes may be specified such as the width of a tag, the list offset, and compactness (blank lines between items allowed or disallowed). Most of this document has been formatted with a tag style list (-tag). 
  
 It has the following syntax forms: 
-  
  
 .Bl 
 
 -hang | -ohang | -tag | -diag | -inset} 
@@ -2040,12 +1742,9 @@
 A list with tags. Use -width or -xwidth to specifythe tag width. SL sleep time of the process (secondsblocked) PAGEIN number of disk I/O's resulting from ref-erences by the process to pages notloaded in core. UID numerical user-id of process owner PPID numerical id of parent of process prior-ity (non-positive when in non-interrupt-ible wait)The raw text:.Bl -tag -width 
 -diag 
  
  
-Diag lists create section four diagnostic lists and are  
- similar to inset lists except callable macros are ignored.  
- The flags -width and -xwidth are not meaningful in this  
- context. 
+Diag lists create section four diagnostic lists and are similar to inset lists except callable macros are ignored. The flags -width and -xwidth are not meaningful in this context. 
  
  
 Example: 
  
@@ -2061,41 +1760,38 @@
 all. 
  -hang 
  
  
-A list with hanging tags.'' Hanged''labels appear similar to tagged listswhen the label is smaller than thelabel width.'' Longer hanged list labels'' blend into theparagraph unlike tagged paragraphlabels .And the unformatted text which created it:.Bl -hang -offset indent  
-.It Em Hanged  
-labels appear similar to tagged lists when the  
-label is smaller than the label width.  
-.It Em Longer hanged list labels  
-blend into the paragraph unlike  
-tagged paragraph labels.  
-.El  
--ohang  
+A list with hanging tags. ''Hanged'' labels appear similar to tagged lists when the label is smaller than the label width. ''Longer hanged list labels'' blend into the paragraph unlike tagged paragraph labels . And the unformatted text which created it: 
  
+ .Bl -hang -offset indent  
+ .It Em Hanged  
+ labels appear similar to tagged lists when the  
+ label is smaller than the label width.  
+ .It Em Longer hanged list labels  
+ blend into the paragraph unlike  
+ tagged paragraph labels.  
+ .El  
+ -ohang  
  
-Lists with overhanging tags do not use indentation for the  
- items; tags are written to a separate line. 
+Lists with overhanging tags do not use indentation for the items; tags are written to a separate line. 
  
+!!!SL  
  
-__SL__  
 sleep time of the process (seconds blocked) 
  
+!!!PAGEIN  
  
-__PAGEIN__  
- number of disk I/O 's resulting from  
- references by the process to pages not loaded in  
- core. 
+number of disk I/O 's resulting from references by the process to pages not loaded in core. 
  
+!!!UID  
  
-__UID__  
 numerical user-id of process owner 
  
+!!!PPID  
  
-__PPID__  
 numerical id of parent of process priority (non-positive 
 when in non-interruptible wait) 
-  
  
 The raw text: 
  
  
@@ -2113,110 +1809,75 @@
 numerical id of parent of process priority 
 (non-positive when in non-interruptible wait) 
 .El 
 -inset 
-  
  
 Here is an example of inset labels: 
-  
  
 ''Tag'' The tagged list (also called a tagged paragraph) is the most common type of list used in the Berkeley manuals. Use a -width attribute as described below. 
  
+''Diag'' Diag lists create section four diagnostic lists and are similar to inset lists except callable macros are ignored.  
  
-''Diag '' Diag lists create section four diagnos- tic  
-lists and are similar to inset lists except callable macros  
-are ignored
+''Hang '' Hanged labels are a matter of taste
  
+''Ohang'' Overhanging labels are nice when space is constrained.  
  
-''Hang '' Hanged labels are a matter of  
-taste
+''Inset '' Inset labels are useful for controlling blocks of paragraphs and are valuable for converting -mdoc manuals to other formats
  
+Here is the source text which produced the above example:  
  
-''Ohang'' Overhanging labels are nice when space is  
-constrained
+.Bl -inset -offset indent  
  
+.It Em Tag  
+The tagged list (also called a tagged paragraph) is the most common type of list used in the Berkeley manuals.  
  
-''Inset'' Inset labels are useful for control- ling  
-blocks of paragraphs and are valuable for converting -mdoc  
-manuals to other formats
+.It Em Diag  
+Diag lists create section four diagnostic lists and are similar to inset lists except callable macros are ignored
  
-  
-Here is the source text which produced the above  
-example:  
-  
-  
-.Bl -inset -offset indent  
-.It Em Tag  
-The tagged list (also called a tagged paragraph)  
-is the most common type of list used in the  
-Berkeley manuals.  
-.It Em Diag  
-Diag lists create section four diagnostic lists  
-and are similar to inset lists except callable  
-macros are ignored.  
 .It Em Hang 
 Hanged labels are a matter of taste. 
+  
 .It Em Ohang 
 Overhanging labels are nice when space is constrained. 
+  
 .It Em Inset 
-Inset labels are useful for controlling blocks of  
- paragraphs and are valuable for converting 
+Inset labels are useful for controlling blocks of paragraphs and are valuable for converting  
+  
 .Nm -mdoc 
 manuals to other formats. 
+  
 .El 
 -column 
  
-  
- This list type generates multiple columns. The num- ber of  
- columns and the width of each column is determined by the  
- arguments to the -column list. Each .It argument is  
- parsed to make a row, each col- umn within the row is a  
- separate argument separated by a tab or the .Ta  
- macro.  
-  
+This list type generates multiple columns. The number of columns and the width of each column is determined by the arguments to the -column list. Each .It argument is parsed to make a row, each column within the row is a separate argument separated by a tab or the .Ta macro. 
  
 The table: 
-  
  
 __String Nroff Troff__ 
-  
-  
-  
-  
-  
-  
-  
  
 was produced by: 
-  
  
 .Bl -column -offset indent String Nroff Troff 
 .It Sy String Ta Sy Nroff Ta Sy Troff 
 .It Li 
+  
 Other keywords: 
  -width string 
  
-  
- If string is a valid numeric expression (''witha scale indicator other than u''), use that valuefor indentation. The most useful scale indicatorsare m and n, specifying the so-called ''Em'' and ''Ensquare''. This is approximately the width of theletter m resp. the letter n of the current font(for nroff output, both scale indicators give thesame values). If string isn't a numericexpression, it is tested whether it is an -mdocmacro name, and the default offset value associ-ated with this macro is used. Finally, if alltests fail, the width of string (typeset witha fixed-width font) is taken as the offset.If a width is not specified for the tag list type,every time .It is invoked, an attempt is made to determine an appropriate width. If the first argument to .It is a callable macro, the default width for that macro will be used; otherwise, the default width of .No is used.  
-  
+If string is a valid numeric expression (''witha scale indicator other than u''), use that valuefor indentation. The most useful scale indicatorsare m and n, specifying the so-called ''Em'' and ''Ensquare''. This is approximately the width of theletter m resp. the letter n of the current font(for nroff output, both scale indicators give thesame values). If string isn't a numericexpression, it is tested whether it is an -mdocmacro name, and the default offset value associ-ated with this macro is used. Finally, if alltests fail, the width of string (typeset witha fixed-width font) is taken as the offset.If a width is not specified for the tag list type,every time .It is invoked, an attempt is made to determine an appropriate width. If the first argument to .It is a callable macro, the default width for that macro will be used; otherwise, the default width of .No is used. 
  
 -xwidth 
 string 
-Interpret  
-string and use the width of the result. Almost all lists in  
-this document use this option.  
  
+Interpret string and use the width of the result. Almost all lists in this document use this option.  
  
 Example: 
-  
  
 .Bl -tag -xwidth 
 gives: 
  -test string 
  
-  
- This is a longer sentence to show how the-xwidth flag works in combination with atag list.Note that the current state of -mdoc is savedbefore string is interpreted; afterwards, allvariables are restored again. However, boxes(used for enclosures) can't be saved in GNUtroff(1); as a consequence, arguments must always be ''balanced'' to avoid nasty errors. For example, do not write .Ao string but .Ao string Xc instead if you really need only an opening angle bracket.  
-  
+This is a longer sentence to show how the-xwidth flag works in combination with atag list.Note that the current state of -mdoc is saved before string is interpreted; afterwards, allvariables are restored again. However, boxes(used for enclosures) can't be saved in GNUtroff(1); as a consequence, arguments must always be ''balanced'' to avoid nasty errors. For example, do not write .Ao string but .Ao string Xc instead if you really need only an opening angle bracket. 
  
 -offset 
 string 
 If 
@@ -2227,122 +1888,77 @@
 scale indicator other than u''), use that value for 
 indentation. The most useful scale indicators are m and n, 
 specifying the so-called ''Em'' and ''En square''. 
 This is approximately the width of the letter m resp. the 
-letter n of the current font (for nroff out- put , both scale 
+letter n of the current font (for nroff output , both scale 
 indicators give the same values). If 
 string isn't a numeric expression, it is tested whether it 
 is an -mdoc macro name, and the default offset value 
 associated with this macro is used. Finally, if all tests 
 fail, the width of 
 string (typeset with a fixed-width font) is taken as the 
 offset. 
-  
  
 -compact 
-Suppress insertion of vertical space before the list and  
- between list items. 
+Suppress insertion of vertical space before the list and between list items. 
  
+!!!MISCELLANEOUS MACROS  
  
-__MISCELLANEOUS MACROS__  
-  
-  
- Here a list of the remaining macros which do not fit well  
- into one of the above sections. We couldn't find real exam-  
-ples for the following macros: .Me and  
- .Ot. They are docu- mented here for completeness -  
- if you know how to use them properly please send a mail to  
- bug-groff@gnu.org (including an  
- example).  
- .Bt  
-  
+Here a list of the remaining macros which do not fit well into one of the above sections. We couldn't find real examples for the following macros: .Me and .Ot. They are documented here for completeness - if you know how to use them properly please send a mail to [mailto: bug-groff@gnu.org] (including an example). 
  
+ .Bt  
 prints 
+ is currently in beta test.  
  
+It is neither callable nor parsed and takes no arguments.  
  
-is currently in beta test.  
-  
-  
-It is neither callable nor parsed and takes no argu-  
-ments.  
  .Fr 
-  
  
  Usage: .Fr 
 function return value ... 
  
-  
- Don't use this macro. It allows a break right before the  
- return value (usually a single digit) which is bad  
- typographical behaviour. Use ~ to tie the return  
- value to the previous word.  
-  
+Don't use this macro. It allows a break right before the return value (usually a single digit) which is bad typographical behaviour. Use ~ to tie the return value to the previous word. 
  
 .Hf 
 Use this macro to include a (header) file literally. It 
 first prints File: followed by the file name, then 
 the contents of 
 file. 
-  
  
 Usage: .Hf 
 file 
-  
  
 It is neither callable nor parsed. 
-  
  
 .Lk 
 To be written. 
-  
  
 .Me 
-Exact usage unknown. The documentation in the -mdoc source  
- file describes it as a macro for ``menu  
- entries''.  
-  
+Exact usage unknown. The documentation in the -mdoc source file describes it as a macro for ``menu entries''. 
  
 Its default width is 6n. 
-  
  
 .Mt 
 To be written. 
-  
  
 .Ot 
-Exact usage unknown. The documentation in the -mdoc source  
- file describes it as ``old function type  
- (fortran)''.  
-  
+Exact usage unknown. The documentation in the -mdoc source file describes it as ``old function type (fortran)''. 
  
 .Sm 
 Activate (toggle) space mode. 
-  
  
 Usage: .Sm [[ 
 on | off] ... 
  
+If space mode is off, no spaces between macro arguments are inserted. If called without a parameter (or if the next parameter is neither on nor off, .Sm toggles space mode.  
  
-If space mode is off, no spaces between macro arguments are  
-inserted. If called without a parameter (or if the next  
-parameter is neither on nor off,  
-.Sm toggles space mode.  
-  
-  
- .Ud 
+ .Ud 
 prints 
+ currently under development.  
  
+It is neither callable nor parsed and takes no arguments.  
  
-currently under development.  
-  
-  
-It is neither callable nor parsed and takes no  
-argu-  
-  
-  
-ments.  
-__ PREDEFINED STRINGS__  
-  
+!!! PREDEFINED STRINGS 
  
 The following strings are predefined: 
  
  
@@ -2363,118 +1979,58 @@
 Gt 
 Pm +- plus minus 
 If infinity infinity 
 Na ''NaN NaN'' not a number 
-  
  
 Ba | | vertical bar 
  
+The names of the columns __Nroff__ and __Troff__ are a bit misleading; __Nroff__ shows the ASCII representation, while __Troff__ gives the best glyph form available. For example, a Unicode enabled TTY -device will have proper glyph representations for all strings, whereas the enhancement for a Latin1 TTY -device is only the plus-minus sign.  
  
-The names of the columns __Nroff__ and __Troff__ are a  
-bit mislead- ing ; __Nroff__ shows the  
-ASCII representation, while __Troff__  
-gives the best glyph form available . For example, a Unicode  
-enabled TTY -device will have proper glyph  
-representations for all strings, whereas the enhancement for  
- a Latin1 TTY -device is only the plus-minus  
-sign
+String names which consist of two characters can be written as ; string names which consist of one character can be written as x . A generic syntax for a string name of any length is [[xxx] (this is a GNU troff(1) extension)
  
+!!!DIAGNOSTICS  
  
-String names which consist of two characters can be written  
-as ; string names which consist of one character  
-can be written as x . A generic syntax for a string  
-name of any length is [[xxx] (this is a  
- GNU troff(1)  
-extension) .  
-__DIAGNOSTICS__  
+The debugging macro .Db available in previous versions of -mdoc has been removed since GNU troff(1) provides better facilities to check parameters; additionally, many error and warning messages have been added to this macro package, making it both more robust and verbose
  
+The only remaining debugging macro is .Rd which yields a register dump of all global registers and strings. A normal user will never need it.  
  
-The debugging macro .Db available in previous  
-versions of -mdoc has been removed since GNU  
-troff(1) provides better facilities to check  
-parameters; additionally, many error and warning messages  
-have been added to this macro package, mak- ing it both more  
-robust and verbose.  
-  
-  
-The only remaining debugging macro is .Rd which yields a register dump of all global registers and strings. A normal user will never need it.  
 __FORMATTING WITH GROFF, TROFF, AND NROFF__ 
  
+By default, the package inhibits page breaks, headers, and footers if displayed with a TTY device like latin1 or unicode to make the manual more efficient for viewing on-line. This behaviour can be changed (e.g. to create a hardcopy of the TTY output) by setting the register cR to zero while calling groff:  
  
-By default, the package inhibits page breaks, headers, and  
-footers if displayed with a TTY device like  
-latin1 or unicode to make the manual more efficient for  
-viewing on -line . This behaviour can be changed (e.g. to  
-create a hardcopy of the TTY output) by  
-setting the register cR to zero while calling  
-groff:  
+ groff -Tlatin1 -rcR=0 -mdoc foo .man  
  
+For double-sided printing, set register D to 1:  
  
-groff -Tlatin1 -rcR=0 -mdoc foo.man 
+ groff -Tps -rD1 -mdoc foo.man 
  
+To change the document font size to 11pt or 12pt, set register S accordingly:  
  
-For double -sided printing, set register D to  
-1:  
+ groff -Tdvi -rS11 -mdoc foo.man  
  
+Register S is ignored for TTY devices.  
  
-groff -Tps -rD1 -mdoc foo.man  
+!!!FILES  
  
+; doc.tmac : The main manual macro package.  
+; mdoc.tmac : A wrapper file to call doc.tmac.  
+; mdoc/doc-common : Common strings, definitions, stuff related typographic output.  
+; mdoc/doc-nroff : Definitions used for a TTY output device.  
+; mdoc/doc-ditroff : Definitions used for all other devices.  
+; mdoc.local : Local additions and customizations.  
+; andoc.tmac : This file checks whether the -mdoc or the -man package should be used.  
  
-To change the document font size to 11pt or 12pt, set regis-  
-ter S accordingly:  
+!!!SEE ALSO  
  
+groff(1) man(1) troff(1) groff_man(7)  
  
-groff -Tdvi -rS11 -mdoc foo.man  
-  
-  
-Register S is ignored for TTY  
-devices.  
-__FILES__  
- doc.tmac  
-The main manual macro  
-package.  
-  
-  
-mdoc.tmac  
-A wrapper file to call doc.tmac.  
-mdoc/doc-common  
-Common strings, definitions, stuff related typographic  
-output.  
-mdoc/doc-nroff  
-Definitions used for a TTY output  
-device.  
-mdoc/doc-ditroff  
-Definitions used for all other devices.  
-mdoc.local  
-Local additions and customizations.  
-andoc.tmac  
-This file checks whether the -mdoc or the -man package  
-should be used.  
-  
-  
-__SEE ALSO__  
-  
-  
-groff(1), man(1), troff(1),  
-groff_man(7)  
-__ BUGS__  
-  
-  
-Section 3f has not been added to the header  
-routines.  
+!!! BUGS 
  
+Section 3f has not been added to the header routines.  
  
 .Nm font should be changed in __NAME__ section. 
  
+.Fn needs to have a check to prevent splitting up if the line length is too short. Occasionally it separates the last parenthesis, and sometimes looks ridiculous if a line is in fill mode.  
  
-.Fn needs to have a check to prevent splitting up  
-if the line length is too short. Occasionally it separates  
-the last parenthesis, and sometimes looks ridiculous if a  
-line is in fill mode.  
-  
-  
- The list and display macros do not do any keeps and cer-  
-tainly should be able to.  
-  
+The list and display macros do not do any keeps and certainly should be able to. 
  
 BSD April 10, 2001 1 
-----  
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.