[BACK]Return to mdoc.7 CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Annotation of src/usr.bin/mandoc/mdoc.7, Revision 1.17

1.17    ! schwarze    1: .\"    $Id: mdoc.7,v 1.16 2009/10/19 20:44:35 schwarze Exp $
1.1       kristaps    2: .\"
1.2       schwarze    3: .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
1.1       kristaps    4: .\"
                      5: .\" Permission to use, copy, modify, and distribute this software for any
1.2       schwarze    6: .\" purpose with or without fee is hereby granted, provided that the above
                      7: .\" copyright notice and this permission notice appear in all copies.
1.1       kristaps    8: .\"
1.2       schwarze    9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     13: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     14: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     15: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1.9       schwarze   16: .\"
1.17    ! schwarze   17: .Dd $Mdocdate: October 19 2009 $
1.2       schwarze   18: .Dt MDOC 7
1.1       kristaps   19: .Os
1.14      schwarze   20: .
                     21: .
1.1       kristaps   22: .Sh NAME
1.15      schwarze   23: .Nm mdoc
                     24: .Nd mdoc language reference
1.14      schwarze   25: .
                     26: .
1.1       kristaps   27: .Sh DESCRIPTION
                     28: The
1.15      schwarze   29: .Nm mdoc
1.9       schwarze   30: language is used to format
1.15      schwarze   31: .Bx
                     32: .Ux
1.8       schwarze   33: manuals.  In this reference document, we describe its syntax, structure,
                     34: and usage.  Our reference implementation is
1.15      schwarze   35: .Xr mandoc 1 .
1.3       schwarze   36: The
1.15      schwarze   37: .Sx COMPATIBILITY
1.9       schwarze   38: section describes compatibility with
1.15      schwarze   39: .Xr groff 1 .
                     40: .
                     41: .Pp
1.1       kristaps   42: An
1.15      schwarze   43: .Nm
1.1       kristaps   44: document follows simple rules:  lines beginning with the control
1.9       schwarze   45: character
1.15      schwarze   46: .Sq \.
1.1       kristaps   47: are parsed for macros.  Other lines are interpreted within the scope of
                     48: prior macros:
1.15      schwarze   49: .Bd -literal -offset indent
1.1       kristaps   50: \&.Sh Macro lines change control state.
                     51: Other lines are interpreted within the current state.
1.15      schwarze   52: .Ed
1.14      schwarze   53: .
                     54: .
1.9       schwarze   55: .Sh LANGUAGE SYNTAX
1.15      schwarze   56: .Nm
1.1       kristaps   57: documents may contain only graphable 7-bit ASCII characters, the space
1.8       schwarze   58: character, and, in certain circumstances, the tab character.  All
                     59: manuals must have
1.15      schwarze   60: .Ux
1.9       schwarze   61: line terminators.
1.14      schwarze   62: .
                     63: .
1.15      schwarze   64: .Ss Comments
1.8       schwarze   65: Text following a
1.15      schwarze   66: .Sq \e" ,
1.8       schwarze   67: whether in a macro or free-form text line, is ignored to the end of
                     68: line.  A macro line with only a control character and comment escape,
1.15      schwarze   69: .Sq \&.\e" ,
                     70: is also ignored.  Macro lines with only a control charater and optionally
                     71: whitespace are stripped from input.
1.14      schwarze   72: .
                     73: .
1.15      schwarze   74: .Ss Reserved Characters
1.1       kristaps   75: Within a macro line, the following characters are reserved:
1.17    ! schwarze   76: .Pp
1.15      schwarze   77: .Bl -tag -width Ds -offset indent -compact
                     78: .It \&.
                     79: .Pq period
                     80: .It \&,
                     81: .Pq comma
                     82: .It \&:
                     83: .Pq colon
                     84: .It \&;
                     85: .Pq semicolon
                     86: .It \&(
                     87: .Pq left-parenthesis
                     88: .It \&)
                     89: .Pq right-parenthesis
                     90: .It \&[
                     91: .Pq left-bracket
                     92: .It \&]
                     93: .Pq right-bracket
                     94: .It \&?
                     95: .Pq question
                     96: .It \&!
                     97: .Pq exclamation
                     98: .It \&|
                     99: .Pq vertical bar
                    100: .El
                    101: .
                    102: .Pp
1.1       kristaps  103: Use of reserved characters is described in
1.15      schwarze  104: .Sx MACRO SYNTAX .
1.8       schwarze  105: For general use in macro lines, these characters must either be escaped
                    106: with a non-breaking space
1.15      schwarze  107: .Pq Sq \e&
1.9       schwarze  108: or, if applicable, an appropriate escape sequence used.
1.14      schwarze  109: .
                    110: .
1.15      schwarze  111: .Ss Special Characters
1.8       schwarze  112: Special characters may occur in both macro and free-form lines.
                    113: Sequences begin with the escape character
1.15      schwarze  114: .Sq \e
1.9       schwarze  115: followed by either an open-parenthesis
1.15      schwarze  116: .Sq \&(
1.1       kristaps  117: for two-character sequences; an open-bracket
1.15      schwarze  118: .Sq \&[
1.1       kristaps  119: for n-character sequences (terminated at a close-bracket
1.15      schwarze  120: .Sq \&] ) ;
1.8       schwarze  121: or a single one-character sequence.  See
1.15      schwarze  122: .Xr mandoc_char 7
1.9       schwarze  123: for a complete list.  Examples include
1.15      schwarze  124: .Sq \e(em
                    125: .Pq em-dash
1.9       schwarze  126: and
1.15      schwarze  127: .Sq \ee
                    128: .Pq back-slash .
1.14      schwarze  129: .
                    130: .
1.15      schwarze  131: .Ss Text Decoration
1.13      schwarze  132: Terms may be text-decorated using the
1.15      schwarze  133: .Sq \ef
1.8       schwarze  134: escape followed by an indicator: B (bold), I, (italic), or P and R
1.13      schwarze  135: (Roman, or reset).  This form is not recommended for
1.15      schwarze  136: .Nm ,
1.13      schwarze  137: which encourages semantic, not presentation, annotation.
1.14      schwarze  138: .
                    139: .
1.15      schwarze  140: .Ss Predefined Strings
1.13      schwarze  141: Historically,
1.15      schwarze  142: .Xr groff 1
1.13      schwarze  143: also defined a set of package-specific
1.15      schwarze  144: .Dq predefined strings ,
1.13      schwarze  145: which, like
1.15      schwarze  146: .Sx Special Characters ,
1.13      schwarze  147: demark special output characters and strings by way of input codes.
                    148: Predefined strings are escaped with the slash-asterisk,
1.15      schwarze  149: .Sq \e* :
1.13      schwarze  150: single-character
1.15      schwarze  151: .Sq \e*X ,
1.13      schwarze  152: two-character
1.15      schwarze  153: .Sq \e*(XX ,
1.13      schwarze  154: and N-character
1.15      schwarze  155: .Sq \e*[N] .
1.13      schwarze  156: See
1.15      schwarze  157: .Xr mandoc_char 7
1.13      schwarze  158: for a complete list.  Examples include
1.15      schwarze  159: .Sq \e*(Am
                    160: .Pq ampersand
1.13      schwarze  161: and
1.15      schwarze  162: .Sq \e*(Ba
                    163: .Pq vertical bar .
1.14      schwarze  164: .
                    165: .
1.15      schwarze  166: .Ss Whitespace
1.9       schwarze  167: In non-literal free-form lines, consecutive blocks of whitespace are
                    168: pruned from input and added later in the output filter, if applicable:
1.15      schwarze  169: .Bd -literal -offset indent
1.9       schwarze  170: These     spaces   are    pruned       from    input.
                    171: \&.Bd \-literal
                    172: These         are              not.
                    173: \&.Ed
1.15      schwarze  174: .Ed
                    175: .
                    176: .Pp
1.9       schwarze  177: In macro lines, whitespace delimits arguments and is discarded.  If
                    178: arguments are quoted, whitespace within the quotes is retained.
1.15      schwarze  179: .
                    180: .Pp
1.9       schwarze  181: Blank lines are only permitted within literal contexts, as are lines
                    182: containing only whitespace.  Tab characters are only acceptable when
                    183: delimiting
1.15      schwarze  184: .Sq \&Bl \-column
1.9       schwarze  185: or when in a literal context.
1.14      schwarze  186: .
                    187: .
1.15      schwarze  188: .Ss Quotation
1.9       schwarze  189: Macro arguments may be quoted with a double-quote to group
                    190: space-delimited terms or to retain blocks of whitespace.  A quoted
                    191: argument begins with a double-quote preceded by whitespace.  The next
                    192: double-quote not pair-wise adjacent to another double-quote terminates
                    193: the literal, regardless of surrounding whitespace.
1.15      schwarze  194: .
                    195: .Pp
1.9       schwarze  196: This produces tokens
1.15      schwarze  197: .Sq a" ,
                    198: .Sq b c ,
                    199: .Sq de ,
1.9       schwarze  200: and
1.15      schwarze  201: .Sq fg" .
1.9       schwarze  202: Note that any quoted term, be it argument or macro, is indiscriminately
                    203: considered literal text.  Thus, the following produces
1.15      schwarze  204: .Sq \&Em a :
                    205: .Bd -literal -offset indent
1.9       schwarze  206: \&.Em "Em a"
1.15      schwarze  207: .Ed
                    208: .
                    209: .Pp
1.9       schwarze  210: In free-form mode, quotes are regarded as opaque text.
1.14      schwarze  211: .
1.17    ! schwarze  212: .Ss Dates
        !           213: There are several macros in
        !           214: .Nm
        !           215: that require a date argument.  The
        !           216: .Em canonical form
        !           217: for dates is the American format:
        !           218: .Pp
        !           219: .D1 Cm Month Day , Year
        !           220: .Pp
        !           221: The
        !           222: .Cm Day
        !           223: value is an optionally zero-padded numeral.  The
        !           224: .Cm Month
        !           225: value is the full month name.  The
        !           226: .Cm Year
        !           227: value is the full four-digit year.
        !           228: .Pp
        !           229: The
        !           230: .Em non-canonical form
        !           231: is the same as the canonical form, but without the comma between the
        !           232: .Cm Day
        !           233: and
        !           234: .Cm Year
        !           235: field.
        !           236: .Pp
        !           237: Lastly,
        !           238: .Em reduced form
        !           239: dates range from only a
        !           240: .Cm Year
        !           241: to the full canonical or non-canonical form.
        !           242: .Pp
        !           243: Some examples of valid dates follow:
        !           244: .Pp
        !           245: .D1 "May, 2009" Pq reduced form
        !           246: .D1 "2009" Pq reduced form
        !           247: .D1 "May 20, 2009" Pq canonical form
        !           248: .D1 "May 20 2009" Pq non-canonical form
        !           249: .
        !           250: .Ss Scaling Widths
        !           251: Many macros support scaled widths for their arguments, such as
        !           252: stipulating a two-inch list indentation with the following:
        !           253: .Bd -literal -offset indent
        !           254: \&.Bl -tag -width 2i
        !           255: .Ed
        !           256: .
        !           257: .Pp
        !           258: The syntax for scaled widths is
        !           259: .Sq Li [+-]?[0-9]*.[0-9]*[:unit:] ,
        !           260: where a decimal must be preceded or proceeded by at least one digit.
        !           261: Negative numbers, while accepted, are truncated to zero.  The following
        !           262: scaling units are accepted:
        !           263: .Pp
        !           264: .Bl -tag -width Ds -offset indent -compact
        !           265: .It c
        !           266: centimetre
        !           267: .It i
        !           268: inch
        !           269: .It P
        !           270: pica (~1/6 inch)
        !           271: .It p
        !           272: point (~1/72 inch)
        !           273: .It f
        !           274: synonym for
        !           275: .Sq u
        !           276: .It v
        !           277: default vertical span
        !           278: .It m
        !           279: width of rendered
        !           280: .Sq m
        !           281: .Pq em
        !           282: character
        !           283: .It n
        !           284: width of rendered
        !           285: .Sq n
        !           286: .Pq en
        !           287: character
        !           288: .It u
        !           289: default horizontal span
        !           290: .It M
        !           291: mini-em (~1/100 em)
        !           292: .El
        !           293: .Pp
        !           294: Using anything other than
        !           295: .Sq m ,
        !           296: .Sq n ,
        !           297: .Sq u ,
        !           298: or
        !           299: .Sq v
        !           300: is necessarily non-portable across output media.  See
        !           301: .Sx COMPATIBILITY .
        !           302: .
1.14      schwarze  303: .
1.8       schwarze  304: .Sh MANUAL STRUCTURE
1.17    ! schwarze  305: A well-formed
1.15      schwarze  306: .Nm
1.17    ! schwarze  307: document consists of a document prologue followed by one or more
        !           308: sections.
        !           309: .Pp
        !           310: The prologue, which consists of (in order) the
        !           311: .Sx \&Dd ,
        !           312: .Sx \&Dt ,
        !           313: and
        !           314: .Sx \&Os
        !           315: macros, is required for every document.
        !           316: .Pp
        !           317: The first section (sections are denoted by
        !           318: .Sx \&Sh )
        !           319: must be the NAME section, consisting of at least one
        !           320: .Sx \&Nm
1.9       schwarze  321: followed by
1.17    ! schwarze  322: .Sx \&Nd .
        !           323: .Pp
        !           324: Following that, convention dictates specifying at least the SYNOPSIS and
        !           325: DESCRIPTION sections, although this varies between manual sections.
        !           326: .Pp
        !           327: The following is a well-formed skeleton
        !           328: .Nm
        !           329: file:
1.15      schwarze  330: .Bd -literal -offset indent
1.8       schwarze  331: \&.Dd $\&Mdocdate$
                    332: \&.Dt mdoc 7
                    333: \&.Os
1.15      schwarze  334: \&.
1.8       schwarze  335: \&.Sh NAME
1.15      schwarze  336: \&.Nm foo
                    337: \&.Nd a description goes here
                    338: \&.\e\*q The next is for sections 2 & 3 only.
                    339: \&.\e\*q .Sh LIBRARY
                    340: \&.
                    341: \&.Sh SYNOPSIS
                    342: \&.Nm foo
                    343: \&.Op Fl options
                    344: \&.Ar
                    345: \&.
                    346: \&.Sh DESCRIPTION
                    347: The
                    348: \&.Nm
                    349: utility processes files ...
                    350: \&.\e\*q .Sh IMPLEMENTATION NOTES
                    351: \&.\e\*q The next is for sections 1 & 8 only.
                    352: \&.\e\*q .Sh EXIT STATUS
                    353: \&.\e\*q The next is for sections 2, 3, & 9 only.
                    354: \&.\e\*q .Sh RETURN VALUES
                    355: \&.\e\*q The next is for sections 1, 6, 7, & 8 only.
                    356: \&.\e\*q .Sh ENVIRONMENT
                    357: \&.\e\*q .Sh FILES
                    358: \&.\e\*q .Sh EXAMPLES
                    359: \&.\e\*q The next is for sections 1, 4, 6, 7, & 8 only.
                    360: \&.\e\*q .Sh DIAGNOSTICS
                    361: \&.\e\*q The next is for sections 2, 3, & 9 only.
                    362: \&.\e\*q .Sh ERRORS
                    363: \&.\e\*q .Sh SEE ALSO
                    364: \&.\e\*q .Xr foobar 1
                    365: \&.\e\*q .Sh STANDARDS
                    366: \&.\e\*q .Sh HISTORY
                    367: \&.\e\*q .Sh AUTHORS
                    368: \&.\e\*q .Sh CAVEATS
                    369: \&.\e\*q .Sh BUGS
                    370: \&.\e\*q .Sh SECURITY CONSIDERATIONS
                    371: .Ed
                    372: .Pp
1.17    ! schwarze  373: The sections in a
        !           374: .Nm
        !           375: document are conventionally ordered as they appear above.  Sections
        !           376: should be composed as follows:
        !           377: .Bl -tag -width Ds -offset Ds
        !           378: .It NAME
        !           379: Must contain at least one
        !           380: .Sx \&Nm
        !           381: followed by
        !           382: .Sx \&Nd .
        !           383: The name needs re-stating since one
        !           384: .Nm
        !           385: documents can be used for more than one utility or function, such as
        !           386: .Xr grep 1
        !           387: also being referenced as
        !           388: .Xr egrep 1
        !           389: and
        !           390: .Xr fgrep 1 .
        !           391: .It LIBRARY
        !           392: .It SYNOPSIS
        !           393: .It DESCRIPTION
        !           394: .It IMPLEMENTATION NOTES
        !           395: .It EXIT STATUS
        !           396: .It RETURN VALUES
        !           397: .It ENVIRONMENT
        !           398: .It FILES
        !           399: .It EXAMPLES
        !           400: .It DIAGNOSTICS
        !           401: .It ERRORS
        !           402: .It SEE ALSO
        !           403: .It STANDARDS
        !           404: .It HISTORY
        !           405: .It AUTHORS
        !           406: .It CAVEATS
        !           407: .It BUGS
        !           408: .It SECURITY CONSIDERATIONS
        !           409: .El
1.14      schwarze  410: .
                    411: .
1.8       schwarze  412: .Sh MACRO SYNTAX
1.14      schwarze  413: Macros are one to three three characters in length and begin with a
                    414: control character ,
1.15      schwarze  415: .Sq \&. ,
1.14      schwarze  416: at the beginning of the line.  An arbitrary amount of whitespace may
1.17    ! schwarze  417: sit between the control character and the macro name.  Thus, the
        !           418: following are equivalent:
        !           419: .Bd -literal -offset indent
        !           420: \&.Pp
        !           421: \&.\ \ \ \&Pp
        !           422: .Ed
1.15      schwarze  423: .
                    424: .Pp
1.9       schwarze  425: The syntax of a macro depends on its classification.  In this section,
1.15      schwarze  426: .Sq \-arg
1.8       schwarze  427: refers to macro arguments, which may be followed by zero or more
1.15      schwarze  428: .Sq parm
1.8       schwarze  429: parameters;
1.15      schwarze  430: .Sq \&Yo
1.8       schwarze  431: opens the scope of a macro; and if specified,
1.15      schwarze  432: .Sq \&Yc
1.8       schwarze  433: closes it out.
1.15      schwarze  434: .
                    435: .Pp
1.8       schwarze  436: The
1.15      schwarze  437: .Em Callable
1.8       schwarze  438: column indicates that the macro may be called subsequent to the initial
1.14      schwarze  439: line-macro.  If a macro is not callable, then its invocation after the
                    440: initial line macro is interpreted as opaque text, such that
1.16      schwarze  441: .Sq \&.Fl \&Sh
1.14      schwarze  442: produces
1.16      schwarze  443: .Sq Fl \&Sh .
1.15      schwarze  444: .
                    445: .Pp
1.14      schwarze  446: The
1.15      schwarze  447: .Em Parsable
1.8       schwarze  448: column indicates whether the macro may be followed by further
1.14      schwarze  449: (ostensibly callable) macros.  If a macro is not parsable, subsequent
                    450: macro invocations on the line will be interpreted as opaque text.
1.15      schwarze  451: .
                    452: .Pp
1.14      schwarze  453: The
1.15      schwarze  454: .Em Scope
1.8       schwarze  455: column, if applicable, describes closure rules.
1.14      schwarze  456: .
                    457: .
1.15      schwarze  458: .Ss Block full-explicit
1.8       schwarze  459: Multi-line scope closed by an explicit closing macro.  All macros
                    460: contains bodies; only
1.17    ! schwarze  461: .Sx \&Bf
1.8       schwarze  462: contains a head.
1.15      schwarze  463: .Bd -literal -offset indent
1.9       schwarze  464: \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB
                    465: \(lBbody...\(rB
1.1       kristaps  466: \&.Yc
1.15      schwarze  467: .Ed
                    468: .
                    469: .Pp
                    470: .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXX"
                    471: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
1.17    ! schwarze  472: .It Sx \&Bd  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ed
        !           473: .It Sx \&Bf  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ef
        !           474: .It Sx \&Bk  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ek
        !           475: .It Sx \&Bl  Ta    \&No     Ta    \&No     Ta    closed by Sx \&El
        !           476: .It Sx \&Ed  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bd
        !           477: .It Sx \&Ef  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bf
        !           478: .It Sx \&Ek  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bk
        !           479: .It Sx \&El  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bl
1.15      schwarze  480: .El
1.14      schwarze  481: .
                    482: .
1.15      schwarze  483: .Ss Block full-implicit
1.8       schwarze  484: Multi-line scope closed by end-of-file or implicitly by another macro.
1.9       schwarze  485: All macros have bodies; some
1.15      schwarze  486: .Po
1.17    ! schwarze  487: .Sx \&It Fl bullet ,
        !           488: .Fl hyphen ,
        !           489: .Fl dash ,
        !           490: .Fl enum ,
        !           491: .Fl item
1.15      schwarze  492: .Pc
1.17    ! schwarze  493: don't have heads; only one
        !           494: .Po
        !           495: .Sx \&It Fl column
        !           496: .Pc
        !           497: has multiple heads.
1.15      schwarze  498: .Bd -literal -offset indent
1.9       schwarze  499: \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB
                    500: \(lBbody...\(rB
1.15      schwarze  501: .Ed
1.14      schwarze  502: .
1.15      schwarze  503: .Pp
                    504: .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXXXXXXXXXX"
                    505: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
1.17    ! schwarze  506: .It Sx \&It  Ta    \&No     Ta    Yes      Ta    closed by Sx \&It , Sx \&El
        !           507: .It Sx \&Nd  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh
        !           508: .It Sx \&Sh  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh
        !           509: .It Sx \&Ss  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh , Sx \&Ss
1.15      schwarze  510: .El
1.14      schwarze  511: .
1.15      schwarze  512: .
                    513: .Ss Block partial-explicit
1.8       schwarze  514: Like block full-explicit, but also with single-line scope.  Each
1.9       schwarze  515: has at least a body and, in limited circumstances, a head
1.17    ! schwarze  516: .Po
        !           517: .Sx \&Fo ,
        !           518: .Sx \&Eo
        !           519: .Pc
1.9       schwarze  520: and/or tail
1.17    ! schwarze  521: .Pq Sx \&Ec .
1.15      schwarze  522: .Bd -literal -offset indent
1.9       schwarze  523: \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB
                    524: \(lBbody...\(rB
                    525: \&.Yc \(lBtail...\(rB
1.8       schwarze  526:
                    527: \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB \
1.9       schwarze  528: \(lBbody...\(rB \&Yc \(lBtail...\(rB
1.15      schwarze  529: .Ed
                    530: .
                    531: .Pp
                    532: .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset indent
                    533: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
1.17    ! schwarze  534: .It Sx \&Ac  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Ao
        !           535: .It Sx \&Ao  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Ac
        !           536: .It Sx \&Bc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Bo
        !           537: .It Sx \&Bo  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Bc
        !           538: .It Sx \&Brc Ta    Yes      Ta    Yes      Ta    opened by Sx \&Bro
        !           539: .It Sx \&Bro Ta    Yes      Ta    Yes      Ta    closed by Sx \&Brc
        !           540: .It Sx \&Dc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Do
        !           541: .It Sx \&Do  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Dc
        !           542: .It Sx \&Ec  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Eo
        !           543: .It Sx \&Eo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Ec
        !           544: .It Sx \&Fc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Fo
        !           545: .It Sx \&Fo  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Fc
        !           546: .It Sx \&Oc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Oo
        !           547: .It Sx \&Oo  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Oc
        !           548: .It Sx \&Pc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Po
        !           549: .It Sx \&Po  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Pc
        !           550: .It Sx \&Qc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Oo
        !           551: .It Sx \&Qo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Oc
        !           552: .It Sx \&Re  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Rs
        !           553: .It Sx \&Rs  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Re
        !           554: .It Sx \&Sc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&So
        !           555: .It Sx \&So  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Sc
        !           556: .It Sx \&Xc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Xo
        !           557: .It Sx \&Xo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Xc
1.15      schwarze  558: .El
1.14      schwarze  559: .
                    560: .
1.15      schwarze  561: .Ss Block partial-implicit
1.9       schwarze  562: Like block full-implicit, but with single-line scope closed by
1.15      schwarze  563: .Sx Reserved Characters
1.8       schwarze  564: or end of line.
1.15      schwarze  565: .Bd -literal -offset indent
1.8       schwarze  566: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBres...\(rB
1.15      schwarze  567: .Ed
1.14      schwarze  568: .
1.15      schwarze  569: .Pp
                    570: .Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset indent
                    571: .It Em Macro Ta Em Callable Ta Em Parsable
1.17    ! schwarze  572: .It Sx \&Aq  Ta    Yes      Ta    Yes
        !           573: .It Sx \&Bq  Ta    Yes      Ta    Yes
        !           574: .It Sx \&Brq Ta    Yes      Ta    Yes
        !           575: .It Sx \&D1  Ta    \&No     Ta    \&Yes
        !           576: .It Sx \&Dl  Ta    \&No     Ta    Yes
        !           577: .It Sx \&Dq  Ta    Yes      Ta    Yes
        !           578: .It Sx \&Op  Ta    Yes      Ta    Yes
        !           579: .It Sx \&Pq  Ta    Yes      Ta    Yes
        !           580: .It Sx \&Ql  Ta    Yes      Ta    Yes
        !           581: .It Sx \&Qq  Ta    Yes      Ta    Yes
        !           582: .It Sx \&Sq  Ta    Yes      Ta    Yes
1.15      schwarze  583: .El
1.14      schwarze  584: .
1.15      schwarze  585: .
                    586: .Ss In-line
1.9       schwarze  587: Closed by
1.15      schwarze  588: .Sx Reserved Characters ,
1.8       schwarze  589: end of line, fixed argument lengths, and/or subsequent macros.  In-line
                    590: macros have only text children.  If a number (or inequality) of
1.1       kristaps  591: arguments is
1.15      schwarze  592: .Pq n ,
1.1       kristaps  593: then the macro accepts an arbitrary number of arguments.
1.15      schwarze  594: .Bd -literal -offset indent
1.8       schwarze  595: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB \(lbres...\(rb
                    596:
                    597: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB Yc...
                    598:
                    599: \&.Yo \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN
1.15      schwarze  600: .Ed
                    601: .
                    602: .Pp
                    603: .Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset indent
                    604: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments
1.17    ! schwarze  605: .It Sx \&%A  Ta    \&No     Ta    \&No     Ta    >0
        !           606: .It Sx \&%B  Ta    \&No     Ta    \&No     Ta    >0
        !           607: .It Sx \&%C  Ta    \&No     Ta    \&No     Ta    >0
        !           608: .It Sx \&%D  Ta    \&No     Ta    \&No     Ta    >0
        !           609: .It Sx \&%I  Ta    \&No     Ta    \&No     Ta    >0
        !           610: .It Sx \&%J  Ta    \&No     Ta    \&No     Ta    >0
        !           611: .It Sx \&%N  Ta    \&No     Ta    \&No     Ta    >0
        !           612: .It Sx \&%O  Ta    \&No     Ta    \&No     Ta    >0
        !           613: .It Sx \&%P  Ta    \&No     Ta    \&No     Ta    >0
        !           614: .It Sx \&%R  Ta    \&No     Ta    \&No     Ta    >0
        !           615: .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0
        !           616: .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0
        !           617: .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    n
        !           618: .It Sx \&An  Ta    Yes      Ta    Yes      Ta    n
        !           619: .It Sx \&Ap  Ta    Yes      Ta    Yes      Ta    0
        !           620: .It Sx \&Ar  Ta    Yes      Ta    Yes      Ta    n
        !           621: .It Sx \&At  Ta    Yes      Ta    Yes      Ta    1
        !           622: .It Sx \&Bsx Ta    Yes      Ta    Yes      Ta    n
        !           623: .It Sx \&Bt  Ta    \&No     Ta    \&No     Ta    0
        !           624: .It Sx \&Bx  Ta    Yes      Ta    Yes      Ta    n
        !           625: .It Sx \&Cd  Ta    Yes      Ta    Yes      Ta    >0
        !           626: .It Sx \&Cm  Ta    Yes      Ta    Yes      Ta    n
        !           627: .It Sx \&Db  Ta    \&No     Ta    \&No     Ta    1
        !           628: .It Sx \&Dd  Ta    \&No     Ta    \&No     Ta    >0
        !           629: .It Sx \&Dt  Ta    \&No     Ta    \&No     Ta    n
        !           630: .It Sx \&Dv  Ta    Yes      Ta    Yes      Ta    n
        !           631: .It Sx \&Dx  Ta    Yes      Ta    Yes      Ta    n
        !           632: .It Sx \&Em  Ta    Yes      Ta    Yes      Ta    >0
        !           633: .It Sx \&En  Ta    \&No     Ta    \&No     Ta    0
        !           634: .It Sx \&Er  Ta    Yes      Ta    Yes      Ta    >0
        !           635: .It Sx \&Es  Ta    \&No     Ta    \&No     Ta    0
        !           636: .It Sx \&Ev  Ta    Yes      Ta    Yes      Ta    n
        !           637: .It Sx \&Ex  Ta    \&No     Ta    \&No     Ta    n
        !           638: .It Sx \&Fa  Ta    Yes      Ta    Yes      Ta    n
        !           639: .It Sx \&Fd  Ta    \&No     Ta    \&No     Ta    >0
        !           640: .It Sx \&Fl  Ta    Yes      Ta    Yes      Ta    n
        !           641: .It Sx \&Fn  Ta    Yes      Ta    Yes      Ta    >0
        !           642: .It Sx \&Fr  Ta    \&No     Ta    \&No     Ta    n
        !           643: .It Sx \&Ft  Ta    Yes      Ta    Yes      Ta    n
        !           644: .It Sx \&Fx  Ta    Yes      Ta    Yes      Ta    n
        !           645: .It Sx \&Hf  Ta    \&No     Ta    \&No     Ta    n
        !           646: .It Sx \&Ic  Ta    Yes      Ta    Yes      Ta    >0
        !           647: .It Sx \&In  Ta    \&No     Ta    \&No     Ta    n
        !           648: .It Sx \&Lb  Ta    \&No     Ta    \&No     Ta    1
        !           649: .It Sx \&Li  Ta    Yes      Ta    Yes      Ta    n
        !           650: .It Sx \&Lk  Ta    Yes      Ta    Yes      Ta    n
        !           651: .It Sx \&Lp  Ta    \&No     Ta    \&No     Ta    0
        !           652: .It Sx \&Ms  Ta    Yes      Ta    Yes      Ta    >0
        !           653: .It Sx \&Mt  Ta    Yes      Ta    Yes      Ta    >0
        !           654: .It Sx \&Nm  Ta    Yes      Ta    Yes      Ta    n
        !           655: .It Sx \&No  Ta    Yes      Ta    Yes      Ta    0
        !           656: .It Sx \&Ns  Ta    Yes      Ta    Yes      Ta    0
        !           657: .It Sx \&Nx  Ta    Yes      Ta    Yes      Ta    n
        !           658: .It Sx \&Os  Ta    \&No     Ta    \&No     Ta    n
        !           659: .It Sx \&Ot  Ta    \&No     Ta    \&No     Ta    n
        !           660: .It Sx \&Ox  Ta    Yes      Ta    Yes      Ta    n
        !           661: .It Sx \&Pa  Ta    Yes      Ta    Yes      Ta    n
        !           662: .It Sx \&Pf  Ta    \&No     Ta    Yes      Ta    1
        !           663: .It Sx \&Pp  Ta    \&No     Ta    \&No     Ta    0
        !           664: .It Sx \&Rv  Ta    \&No     Ta    \&No     Ta    n
        !           665: .It Sx \&Sm  Ta    \&No     Ta    \&No     Ta    1
        !           666: .It Sx \&St  Ta    \&No     Ta    Yes      Ta    1
        !           667: .It Sx \&Sx  Ta    Yes      Ta    Yes      Ta    >0
        !           668: .It Sx \&Sy  Ta    Yes      Ta    Yes      Ta    >0
        !           669: .It Sx \&Tn  Ta    Yes      Ta    Yes      Ta    >0
        !           670: .It Sx \&Ud  Ta    \&No     Ta    \&No     Ta    0
        !           671: .It Sx \&Ux  Ta    Yes      Ta    Yes      Ta    n
        !           672: .It Sx \&Va  Ta    Yes      Ta    Yes      Ta    n
        !           673: .It Sx \&Vt  Ta    Yes      Ta    Yes      Ta    >0
        !           674: .It Sx \&Xr  Ta    Yes      Ta    Yes      Ta    >0, <3
        !           675: .It Sx \&br  Ta    \&No     Ta    \&No     Ta    0
        !           676: .It Sx \&sp  Ta    \&No     Ta    \&No     Ta    1
1.15      schwarze  677: .El
1.14      schwarze  678: .
                    679: .
1.17    ! schwarze  680: .Sh REFERENCE
        !           681: This section is a canonical reference of all macros, arranged
        !           682: alphabetically.  For the scoping of individual macros, see
        !           683: .Sx MACRO SYNTAX .
        !           684: .
        !           685: .Ss \&%A
        !           686: Author name of an
        !           687: .Sx \&Rs
        !           688: block.  Multiple authors should each be accorded their own
        !           689: .Sx \%%A
        !           690: line.  Author names should be ordered with full or abbreviated
        !           691: forename(s) first, then full surname.
        !           692: .
        !           693: .Ss \&%B
        !           694: Book title of an
        !           695: .Sx \&Rs
        !           696: block.  This macro may also be used in a non-bibliographic context when
        !           697: referring to book titles.
        !           698: .
        !           699: .Ss \&%C
        !           700: Publication city or location of an
        !           701: .Sx \&Rs
        !           702: block.
        !           703: .Pp
        !           704: .Em Remarks :
        !           705: this macro is not implemented in
        !           706: .Xr groff 1 .
        !           707: .
        !           708: .Ss \&%D
        !           709: Publication date of an
        !           710: .Sx \&Rs
        !           711: block.  This should follow the reduced syntax for
        !           712: .Sx Dates .
        !           713: Canonical or non-canonical form is not necessary since publications are
        !           714: often referenced only by year, or month and year.
        !           715: .
        !           716: .Ss \&%I
        !           717: Publisher or issuer name of an
        !           718: .Sx \&Rs
        !           719: block.
        !           720: .
        !           721: .Ss \&%J
        !           722: Journal name of an
        !           723: .Sx \&Rs
        !           724: block.
        !           725: .
        !           726: .Ss \&%N
        !           727: Issue number (usually for journals) of an
        !           728: .Sx \&Rs
        !           729: block.
        !           730: .
        !           731: .Ss \&%O
        !           732: Optional information of an
        !           733: .Sx \&Rs
        !           734: block.
        !           735: .
        !           736: .Ss \&%P
        !           737: Book or journal page number of an
        !           738: .Sx \&Rs
        !           739: block.
        !           740: .
        !           741: .Ss \&%Q
        !           742: Institutional author (school, government, etc.) of an
        !           743: .Sx \&Rs
        !           744: block.  Multiple institutional authors should each be accorded their own
        !           745: .Sx \&%Q
        !           746: line.
        !           747: .
        !           748: .Ss \&%R
        !           749: Technical report name of an
        !           750: .Sx \&Rs
        !           751: block.
        !           752: .
        !           753: .Ss \&%T
        !           754: Article title of an
        !           755: .Sx \&Rs
        !           756: block.  This macro may also be used in a non-bibliographical context
        !           757: when referring to article titles.
        !           758: .
        !           759: .Ss \&%V
        !           760: Volume number of an
        !           761: .Sx \&Rs
        !           762: block.
        !           763: .
        !           764: .Ss \&Ac
        !           765: Closes an
        !           766: .Sx \&Ao
        !           767: block.  Does not have any tail arguments.
        !           768: .
        !           769: .Ss \&Ad
        !           770: Address construct: usually in the context of an computational address in
        !           771: memory, not a physical (post) address.
        !           772: .Pp
        !           773: Examples:
        !           774: .Bd -literal -offset indent
        !           775: \&.Ad [0,$]
        !           776: \&.Ad 0x00000000
        !           777: .Ed
        !           778: .
        !           779: .Ss \&An
        !           780: Author name.  This macro may alternatively accepts the following
        !           781: arguments, although these may not be specified along with a parameter:
        !           782: .Bl -tag -width 12n -offset indent
        !           783: .It Fl split
        !           784: Renders a line break before each author listing.
        !           785: .It Fl nosplit
        !           786: The opposite of
        !           787: .Fl split .
        !           788: .El
        !           789: .Pp
        !           790: In the AUTHORS section, the default is not to split the first author
        !           791: listing, but all subsequent author listings, whether or not they're
        !           792: interspersed by other macros or text, are split.  Thus, specifying
        !           793: .Fl split
        !           794: will cause the first listing also to be split.  If not in the AUTHORS
        !           795: section, the default is not to split.
        !           796: .Pp
        !           797: Examples:
        !           798: .Bd -literal -offset indent
        !           799: \&.An -nosplit
        !           800: \&.An J. E. Hopcraft ,
        !           801: \&.An J. D. Ullman .
        !           802: .Ed
        !           803: .Pp
        !           804: .Em Remarks :
        !           805: the effects of
        !           806: .Fl split
        !           807: or
        !           808: .Fl nosplit
        !           809: are re-set when entering the AUTHORS section, so if one specifies
        !           810: .Sx \&An Fl nosplit
        !           811: in the general document body, it must be re-specified in the AUTHORS
        !           812: section.
        !           813: .
        !           814: .Ss \&Ao
        !           815: Begins a block enclosed by angled brackets.  Does not have any head
        !           816: arguments.
        !           817: .Pp
        !           818: Examples:
        !           819: .Bd -literal -offset indent
        !           820: \&.Fl -key= Ns Ao Ar val Ac
        !           821: .Ed
        !           822: .Pp
        !           823: See also
        !           824: .Sx \&Aq .
        !           825: .
        !           826: .Ss \&Ap
        !           827: Inserts an apostrophe without any surrounding white-space.  This is
        !           828: generally used as a grammatic device when referring to the verb form of
        !           829: a function:
        !           830: .Bd -literal -offset indent
        !           831: \&.Fn execve Ap d
        !           832: .Ed
        !           833: .
        !           834: .Ss \&Aq
        !           835: Encloses its arguments in angled brackets.
        !           836: .Pp
        !           837: Examples:
        !           838: .Bd -literal -offset indent
        !           839: \&.Fl -key= Ns Aq Ar val
        !           840: .Ed
        !           841: .Pp
        !           842: .Em Remarks :
        !           843: this macro is often abused for rendering URIs, which should instead use
        !           844: .Sx \&Lk
        !           845: or
        !           846: .Sx \&Mt ,
        !           847: or to note pre-processor
        !           848: .Dq Li #include
        !           849: statements, which should use
        !           850: .Sx \&In .
        !           851: .Pp
        !           852: See also
        !           853: .Sx \&Ao .
        !           854: .
        !           855: .Ss \&Ar
        !           856: Command arguments.  If an argument is not provided, the string
        !           857: .Dq file ...
        !           858: is used as a default.
        !           859: .Pp
        !           860: Examples:
        !           861: .Bd -literal -offset indent
        !           862: \&.Fl o Ns Ar file1
        !           863: \&.Ar
        !           864: \&.Ar arg1 , arg2 .
        !           865: .Ed
        !           866: .
        !           867: .Ss \&At
        !           868: Formats an AT&T version.  Accepts at most one parameter:
        !           869: .Bl -tag -width 12n -offset indent
        !           870: .It Cm v[1-7] | 32v
        !           871: A version of
        !           872: .At .
        !           873: .It Cm V[.[1-4]]?
        !           874: A system version of
        !           875: .At .
        !           876: .El
        !           877: .Pp
        !           878: Note that these parameters do not begin with a hyphen.
        !           879: .Pp
        !           880: Examples:
        !           881: .Bd -literal -offset indent
        !           882: \&.At
        !           883: \&.At V.1
        !           884: .Ed
        !           885: .Pp
        !           886: See also
        !           887: .Sx \&Bsx ,
        !           888: .Sx \&Bx ,
        !           889: .Sx \&Dx ,
        !           890: .Sx \&Fx ,
        !           891: .Sx \&Nx ,
        !           892: .Sx \&Ox ,
        !           893: and
        !           894: .Sx \&Ux .
        !           895: .
        !           896: .Ss \&Bc
        !           897: Closes a
        !           898: .Sx \&Bo
        !           899: block.  Does not have any tail arguments.
        !           900: .
        !           901: .Ss \&Bd
        !           902: Begins a display block.  A display is collection of macros or text which
        !           903: may be collectively offset or justified in a manner different from that
        !           904: of the enclosing context.  By default, the block is preceded by a
        !           905: vertical space.
        !           906: .Pp
        !           907: Each display is associated with a type, which must be one of the
        !           908: following arguments:
        !           909: .Bl -tag -width 12n -offset indent
        !           910: .It Fl ragged
        !           911: Only left-justify the block.
        !           912: .It Fl unfilled
        !           913: Do not justify the block at all.
        !           914: .It Fl filled
        !           915: Left- and right-justify the block.
        !           916: .It Fl literal
        !           917: Alias for
        !           918: .Fl unfilled .
        !           919: .It Fl centered
        !           920: Centre-justify each line.
        !           921: .El
        !           922: .Pp
        !           923: The type must be provided first.  Secondary arguments are as follows:
        !           924: .Bl -tag -width 12n -offset indent
        !           925: .It Fl offset Ar width
        !           926: Offset by the value of
        !           927: .Ar width ,
        !           928: which is interpreted as one of the following, specified in order:
        !           929: .Bl -item
        !           930: .It
        !           931: As one of the pre-defined strings
        !           932: .Ar indent ,
        !           933: the width of standard indentation;
        !           934: .Ar indent-two ,
        !           935: twice
        !           936: .Ar indent ;
        !           937: .Ar left ,
        !           938: which has no effect ;
        !           939: .Ar right ,
        !           940: which justifies to the right margin; and
        !           941: .Ar center ,
        !           942: which aligns around an imagined centre axis.
        !           943: .It
        !           944: As a precalculated width for a named macro.  The most popular is the
        !           945: imaginary macro
        !           946: .Ar Ds ,
        !           947: which resolves to
        !           948: .Ar 6n .
        !           949: .It
        !           950: As a scaling unit following the syntax described in
        !           951: .Sx Scaling Widths .
        !           952: .It
        !           953: As the calculated string length of the opaque string.
        !           954: .El
        !           955: .Pp
        !           956: If unset, it will revert to the value of
        !           957: .Ar 8n
        !           958: as described in
        !           959: .Sx Scaling Widths .
        !           960: .It Fl compact
        !           961: Do not assert a vertical space before the block.
        !           962: .It Fl file Ar file
        !           963: Prepend the file
        !           964: .Ar file
        !           965: before any text or macros within the block.
        !           966: .El
        !           967: .Pp
        !           968: Examples:
        !           969: .Bd -literal -offset indent
        !           970: \&.Bd \-unfilled \-offset two-indent \-compact
        !           971:    Hello       world.
        !           972: \&.Ed
        !           973: .Ed
        !           974: .Pp
        !           975: See also
        !           976: .Sx \&D1
        !           977: and
        !           978: .Sx \&Dl .
        !           979: .
        !           980: .Ss \&Bf
        !           981: .Ss \&Bk
        !           982: .Ss \&Bl
        !           983: .
        !           984: .Ss \&Bo
        !           985: Begins a block enclosed by square brackets.  Does not have any head
        !           986: arguments.
        !           987: .Pp
        !           988: Examples:
        !           989: .Bd -literal -offset indent
        !           990: \&.Bo 1 ,
        !           991: \&.Dv BUFSIZ Bc
        !           992: .Ed
        !           993: .Pp
        !           994: See also
        !           995: .Sx \&Bq .
        !           996: .
        !           997: .Ss \&Bq
        !           998: Encloses its arguments in square brackets.
        !           999: .Pp
        !          1000: Examples:
        !          1001: .Bd -literal -offset indent
        !          1002: \&.Bq 1 , Dv BUFSIZ
        !          1003: .Ed
        !          1004: .Pp
        !          1005: .Em Remarks :
        !          1006: this macro is sometimes abused to emulate optional arguments for
        !          1007: commands; the correct macros to use for this purpose are
        !          1008: .Sx \&Op ,
        !          1009: .Sx \&Oo ,
        !          1010: and
        !          1011: .Sx \&Oc .
        !          1012: .Pp
        !          1013: See also
        !          1014: .Sx \&Bo .
        !          1015: .
        !          1016: .Ss \&Brc
        !          1017: Closes a
        !          1018: .Sx \&Bro
        !          1019: block.  Does not have any tail arguments.
        !          1020: .
        !          1021: .Ss \&Bro
        !          1022: Begins a block enclosed by curly braces.  Does not have any head
        !          1023: arguments.
        !          1024: .Pp
        !          1025: Examples:
        !          1026: .Bd -literal -offset indent
        !          1027: \&.Bro 1 , ... ,
        !          1028: \&.Va n Brc
        !          1029: .Ed
        !          1030: .Pp
        !          1031: See also
        !          1032: .Sx \&Brq .
        !          1033: .
        !          1034: .Ss \&Brq
        !          1035: Encloses its arguments in curly braces.
        !          1036: .Pp
        !          1037: Examples:
        !          1038: .Bd -literal -offset indent
        !          1039: \&.Brq 1 , ... , Va n
        !          1040: .Ed
        !          1041: .Pp
        !          1042: See also
        !          1043: .Sx \&Bro .
        !          1044: .
        !          1045: .Ss \&Bsx
        !          1046: Format the BSD/OS version provided as an argument, or a default value if
        !          1047: no argument is provided.
        !          1048: .Pp
        !          1049: Examples:
        !          1050: .Bd -literal -offset indent
        !          1051: \&.Bsx 1.0
        !          1052: \&.Bsx
        !          1053: .Ed
        !          1054: .Pp
        !          1055: See also
        !          1056: .Sx \&At ,
        !          1057: .Sx \&Bx ,
        !          1058: .Sx \&Dx ,
        !          1059: .Sx \&Fx ,
        !          1060: .Sx \&Nx ,
        !          1061: .Sx \&Ox ,
        !          1062: and
        !          1063: .Sx \&Ux .
        !          1064: .
        !          1065: .Ss \&Bt
        !          1066: Prints
        !          1067: .Dq is currently in beta test.
        !          1068: .
        !          1069: .Ss \&Bx
        !          1070: Format the BSD version provided as an argument, or a default value if no
        !          1071: argument is provided.
        !          1072: .Pp
        !          1073: Examples:
        !          1074: .Bd -literal -offset indent
        !          1075: \&.Bx 4.4
        !          1076: \&.Bx
        !          1077: .Ed
        !          1078: .Pp
        !          1079: See also
        !          1080: .Sx \&At ,
        !          1081: .Sx \&Bsx ,
        !          1082: .Sx \&Dx ,
        !          1083: .Sx \&Fx ,
        !          1084: .Sx \&Nx ,
        !          1085: .Sx \&Ox ,
        !          1086: and
        !          1087: .Sx \&Ux .
        !          1088: .
        !          1089: .Ss \&Cd
        !          1090: Configuration declaration (suggested for use only in section four
        !          1091: manuals).  This denotes strings accepted by
        !          1092: .Xr config 8 .
        !          1093: .Pp
        !          1094: Examples:
        !          1095: .Bd -literal -offset indent
        !          1096: \&.Cd device le0 at scode?
        !          1097: .Ed
        !          1098: .Pp
        !          1099: .Em Remarks :
        !          1100: this macro is commonly abused by using quoted literals to retain
        !          1101: white-space and align consecutive
        !          1102: .Sx \&Cd
        !          1103: declarations.  This practise is discouraged.
        !          1104: .
        !          1105: .Ss \&Cm
        !          1106: Command modifiers.  Useful when specifying configuration options or
        !          1107: keys.
        !          1108: .Pp
        !          1109: Examples:
        !          1110: .Bd -literal -offset indent
        !          1111: \&.Cm ControlPath
        !          1112: \&.Cm ControlMaster
        !          1113: .Ed
        !          1114: .Pp
        !          1115: See also
        !          1116: .Sx \&Fl .
        !          1117: .
        !          1118: .Ss \&D1
        !          1119: One-line indented display.  This is formatted by the default rules and
        !          1120: is useful for simple indented statements.  It is followed by a newline.
        !          1121: .Pp
        !          1122: Examples:
        !          1123: .Bd -literal -offset indent
        !          1124: \&.D1 Fl abcdefgh
        !          1125: .Ed
        !          1126: .Pp
        !          1127: See also
        !          1128: .Sx \&Bd
        !          1129: and
        !          1130: .Sx \&Dl .
        !          1131: .
        !          1132: .Ss \&Db
        !          1133: .Ss \&Dc
        !          1134: Closes a
        !          1135: .Sx \&Do
        !          1136: block.  Does not have any tail arguments.
        !          1137: .
        !          1138: .Ss \&Dd
        !          1139: Document date.  This is the mandatory first macro of any
        !          1140: .Nm
        !          1141: manual.  Its calling syntax is as follows:
        !          1142: .Pp
        !          1143: .D1 \. Ns Sx \&Dd Cm date
        !          1144: .Pp
        !          1145: The
        !          1146: .Cm date
        !          1147: field may be either
        !          1148: .Ar $\&Mdocdate$ ,
        !          1149: which signifies the current manual revision date dictated by
        !          1150: .Xr cvs 1
        !          1151: or instead a valid canonical date as specified by
        !          1152: .Sx Dates .
        !          1153: .Pp
        !          1154: Examples:
        !          1155: .Bd -literal -offset indent
        !          1156: \&.Dd $\&Mdocdate$
        !          1157: \&.Dd $\&Mdocdate: July 21 2007$
        !          1158: \&.Dd July 21, 2007
        !          1159: .Ed
        !          1160: .Pp
        !          1161: See also
        !          1162: .Sx \&Dt
        !          1163: and
        !          1164: .Sx \&Os .
        !          1165: .
        !          1166: .Ss \&Dl
        !          1167: One-line intended display.  This is formatted as literal text and is
        !          1168: useful for commands and invocations.  It is followed by a newline.
        !          1169: .Pp
        !          1170: Examples:
        !          1171: .Bd -literal -offset indent
        !          1172: \&.Dl % mandoc mdoc.7 | less
        !          1173: .Ed
        !          1174: .Pp
        !          1175: See also
        !          1176: .Sx \&Bd
        !          1177: and
        !          1178: .Sx \&D1 .
        !          1179: .
        !          1180: .Ss \&Do
        !          1181: Begins a block enclosed by double quotes.  Does not have any head
        !          1182: arguments.
        !          1183: .Pp
        !          1184: Examples:
        !          1185: .Bd -literal -offset indent
        !          1186: \&.D1 Do April is the cruellest month Dc \e(em T.S. Eliot
        !          1187: .Ed
        !          1188: .Pp
        !          1189: See also
        !          1190: .Sx \&Dq .
        !          1191: .
        !          1192: .Ss \&Dq
        !          1193: Encloses its arguments in double quotes.
        !          1194: .Pp
        !          1195: Examples:
        !          1196: .Bd -literal -offset indent
        !          1197: \&.Dq April is the cruellest month
        !          1198: \e(em T.S. Eliot
        !          1199: .Ed
        !          1200: .Pp
        !          1201: See also
        !          1202: .Sx \&Do .
        !          1203: .
        !          1204: .Ss \&Dt
        !          1205: Document title.  This is the mandatory second macro of any
        !          1206: .Nm
        !          1207: file.  Its calling syntax is as follows:
        !          1208: .Pp
        !          1209: .D1 \. Ns Sx \&Dt Cm title section Op Cm volume | arch
        !          1210: .Pp
        !          1211: Its arguments are as follows:
        !          1212: .Bl -tag -width Ds -offset Ds
        !          1213: .It Cm title
        !          1214: The document's title (name).  This should be capitalised and is
        !          1215: required.
        !          1216: .It Cm section
        !          1217: The manual section.  This may be one of
        !          1218: .Ar 1
        !          1219: .Pq utilities ,
        !          1220: .Ar 2
        !          1221: .Pq system calls ,
        !          1222: .Ar 3
        !          1223: .Pq libraries ,
        !          1224: .Ar 3p
        !          1225: .Pq Perl libraries ,
        !          1226: .Ar 4
        !          1227: .Pq devices ,
        !          1228: .Ar 5
        !          1229: .Pq file formats ,
        !          1230: .Ar 6
        !          1231: .Pq games ,
        !          1232: .Ar 7
        !          1233: .Pq miscellaneous ,
        !          1234: .Ar 8
        !          1235: .Pq system utilities ,
        !          1236: .Ar 9
        !          1237: .Pq kernel functions ,
        !          1238: .Ar X11
        !          1239: .Pq X Window System ,
        !          1240: .Ar X11R6
        !          1241: .Pq X Window System ,
        !          1242: .Ar unass
        !          1243: .Pq unassociated ,
        !          1244: .Ar local
        !          1245: .Pq local system ,
        !          1246: .Ar draft
        !          1247: .Pq draft manual ,
        !          1248: or
        !          1249: .Ar paper
        !          1250: .Pq paper .
        !          1251: It is also required and should correspond to the manual's filename
        !          1252: suffix.
        !          1253: .It Cm volume
        !          1254: This overrides the volume inferred from
        !          1255: .Ar section .
        !          1256: This field is optional, and if specified, must be one of
        !          1257: .Ar USD
        !          1258: .Pq users' supplementary documents ,
        !          1259: .Ar PS1
        !          1260: .Pq programmers' supplementary documents ,
        !          1261: .Ar AMD
        !          1262: .Pq administrators' supplementary documents ,
        !          1263: .Ar SMM
        !          1264: .Pq system managers' manuals ,
        !          1265: .Ar URM
        !          1266: .Pq users' reference manuals ,
        !          1267: .Ar PRM
        !          1268: .Pq programmers' reference manuals ,
        !          1269: .Ar KM
        !          1270: .Pq kernel manuals ,
        !          1271: .Ar IND
        !          1272: .Pq master index ,
        !          1273: .Ar MMI
        !          1274: .Pq master index ,
        !          1275: .Ar LOCAL
        !          1276: .Pq local manuals ,
        !          1277: .Ar LOC
        !          1278: .Pq local manuals ,
        !          1279: or
        !          1280: .Ar CON
        !          1281: .Pq contributed manuals .
        !          1282: .It Cm arch
        !          1283: This specifies a specific relevant architecture.  If
        !          1284: .Cm volume
        !          1285: is not provided, it may be used in its place, else it may be used
        !          1286: subsequent that.  It, too, is optional.  It must be one of
        !          1287: .Ar alpha ,
        !          1288: .Ar amd64 ,
        !          1289: .Ar amiga ,
        !          1290: .Ar arc ,
        !          1291: .Ar arm ,
        !          1292: .Ar armish ,
        !          1293: .Ar aviion ,
        !          1294: .Ar hp300 ,
        !          1295: .Ar hppa ,
        !          1296: .Ar hppa64 ,
        !          1297: .Ar i386 ,
        !          1298: .Ar landisk ,
        !          1299: .Ar luna88k ,
        !          1300: .Ar mac68k ,
        !          1301: .Ar macppc ,
        !          1302: .Ar mvme68k ,
        !          1303: .Ar mvme88k ,
        !          1304: .Ar mvmeppc ,
        !          1305: .Ar pmax ,
        !          1306: .Ar sgi ,
        !          1307: .Ar socppc ,
        !          1308: .Ar sparc ,
        !          1309: .Ar sparc64 ,
        !          1310: .Ar sun3 ,
        !          1311: .Ar vax ,
        !          1312: or
        !          1313: .Ar zaurus .
        !          1314: .El
        !          1315: .Pp
        !          1316: Examples:
        !          1317: .Bd -literal -offset indent
        !          1318: \&.Dt FOO 1
        !          1319: \&.Dt FOO 4 KM
        !          1320: \&.Dt FOO 9 i386
        !          1321: \&.Dt FOO 9 KM i386
        !          1322: .Ed
        !          1323: .Pp
        !          1324: See also
        !          1325: .Sx \&Dd
        !          1326: and
        !          1327: .Sx \&Os .
        !          1328: .
        !          1329: .Ss \&Dv
        !          1330: Defined variables such as preprocessor constants.
        !          1331: .Pp
        !          1332: Examples:
        !          1333: .Bd -literal -offset indent
        !          1334: \&.Dv BUFSIZ
        !          1335: \&.Dv STDOUT_FILENO
        !          1336: .Ed
        !          1337: .Pp
        !          1338: See also
        !          1339: .Sx \&Er .
        !          1340: .
        !          1341: .Ss \&Dx
        !          1342: Format the DragonFlyBSD version provided as an argument, or a default
        !          1343: value if no argument is provided.
        !          1344: .Pp
        !          1345: Examples:
        !          1346: .Bd -literal -offset indent
        !          1347: \&.Dx 2.4.1
        !          1348: \&.Dx
        !          1349: .Ed
        !          1350: .Pp
        !          1351: See also
        !          1352: .Sx \&At ,
        !          1353: .Sx \&Bsx ,
        !          1354: .Sx \&Bx ,
        !          1355: .Sx \&Fx ,
        !          1356: .Sx \&Nx ,
        !          1357: .Sx \&Ox ,
        !          1358: and
        !          1359: .Sx \&Ux .
        !          1360: .
        !          1361: .Ss \&Ec
        !          1362: .Ss \&Ed
        !          1363: .Ss \&Ef
        !          1364: .Ss \&Ek
        !          1365: .Ss \&El
        !          1366: .Ss \&Em
        !          1367: Denotes text that should be emphasised.  Note that this is a
        !          1368: presentation term and should not be used for stylistically decorating
        !          1369: technical terms.
        !          1370: .Pp
        !          1371: Examples:
        !          1372: .Bd -literal -offset indent
        !          1373: \&.Ed Warnings!
        !          1374: \&.Ed Remarks :
        !          1375: .Ed
        !          1376: .
        !          1377: .Ss \&En
        !          1378: .Ss \&Eo
        !          1379: .Ss \&Er
        !          1380: Error constants (suggested for use only in section two manuals).
        !          1381: .Pp
        !          1382: Examples:
        !          1383: .Bd -literal -offset indent
        !          1384: \&.Er EPERM
        !          1385: \&.Er ENOENT
        !          1386: .Ed
        !          1387: .Pp
        !          1388: See also
        !          1389: .Sx \&Dv .
        !          1390: .
        !          1391: .Ss \&Es
        !          1392: .
        !          1393: .Ss \&Ev
        !          1394: Environmental variables such as those specified in
        !          1395: .Xr environ 7 .
        !          1396: .Pp
        !          1397: Examples:
        !          1398: .Bd -literal -offset indent
        !          1399: \&.Ev DISPLAY
        !          1400: \&.Ev PATH
        !          1401: .Ed
        !          1402: .
        !          1403: .Ss \&Ex
        !          1404: Inserts text regarding a utility's exit values.  This macro must have
        !          1405: first the
        !          1406: .Fl std
        !          1407: argument specified, then an optional
        !          1408: .Ar utility .
        !          1409: If
        !          1410: .Ar utility
        !          1411: is not provided, the document's name as stipulated in
        !          1412: .Sx \&Nm
        !          1413: is provided.
        !          1414: .Ss \&Fa
        !          1415: .Ss \&Fc
        !          1416: .Ss \&Fd
        !          1417: .Ss \&Fl
        !          1418: .Ss \&Fn
        !          1419: .Ss \&Fo
        !          1420: .Ss \&Fr
        !          1421: .Ss \&Ft
        !          1422: .Ss \&Fx
        !          1423: Format the FreeBSD version provided as an argument, or a default value
        !          1424: if no argument is provided.
        !          1425: .Pp
        !          1426: Examples:
        !          1427: .Bd -literal -offset indent
        !          1428: \&.Fx 7.1
        !          1429: \&.Fx
        !          1430: .Ed
        !          1431: .Pp
        !          1432: See also
        !          1433: .Sx \&At ,
        !          1434: .Sx \&Bsx ,
        !          1435: .Sx \&Bx ,
        !          1436: .Sx \&Dx ,
        !          1437: .Sx \&Nx ,
        !          1438: .Sx \&Ox ,
        !          1439: and
        !          1440: .Sx \&Ux .
        !          1441: .
        !          1442: .Ss \&Hf
        !          1443: .Ss \&Ic
        !          1444: .Ss \&In
        !          1445: .Ss \&It
        !          1446: .Ss \&Lb
        !          1447: .Ss \&Li
        !          1448: .Ss \&Lk
        !          1449: .Ss \&Lp
        !          1450: .Ss \&Ms
        !          1451: .Ss \&Mt
        !          1452: .Ss \&Nd
        !          1453: .Ss \&Nm
        !          1454: .Ss \&No
        !          1455: .Ss \&Ns
        !          1456: .Ss \&Nx
        !          1457: Format the NetBSD version provided as an argument, or a default value if
        !          1458: no argument is provided.
        !          1459: .Pp
        !          1460: Examples:
        !          1461: .Bd -literal -offset indent
        !          1462: \&.Nx 5.01
        !          1463: \&.Nx
        !          1464: .Ed
        !          1465: .Pp
        !          1466: See also
        !          1467: .Sx \&At ,
        !          1468: .Sx \&Bsx ,
        !          1469: .Sx \&Bx ,
        !          1470: .Sx \&Dx ,
        !          1471: .Sx \&Fx ,
        !          1472: .Sx \&Ox ,
        !          1473: and
        !          1474: .Sx \&Ux .
        !          1475: .
        !          1476: .Ss \&Oc
        !          1477: .Ss \&Oo
        !          1478: .Ss \&Op
        !          1479: .Ss \&Os
        !          1480: Document operating system version.  This is the mandatory third macro of
        !          1481: any
        !          1482: .Nm
        !          1483: file.  Its calling syntax is as follows:
        !          1484: .Pp
        !          1485: .D1 \. Ns Sx \&Os Op Cm system
        !          1486: .Pp
        !          1487: The optional
        !          1488: .Cm system
        !          1489: parameter specifies the relevant operating system or environment.  Left
        !          1490: unspecified, it defaults to the local operating system version.  This is
        !          1491: the suggested form.
        !          1492: .Pp
        !          1493: Examples:
        !          1494: .Bd -literal -offset indent
        !          1495: \&.Os
        !          1496: \&.Os KTH/CSC/TCS
        !          1497: \&.Os BSD 4.3
        !          1498: .Ed
        !          1499: .Pp
        !          1500: See also
        !          1501: .Sx \&Dd
        !          1502: and
        !          1503: .Sx \&Dt .
        !          1504: .
        !          1505: .Ss \&Ot
        !          1506: Unknown usage.
        !          1507: .Pp
        !          1508: .Em Remarks :
        !          1509: this macro has been deprecated.
        !          1510: .
        !          1511: .Ss \&Ox
        !          1512: Format the OpenBSD version provided as an argument, or a default value
        !          1513: if no argument is provided.
        !          1514: .Pp
        !          1515: Examples:
        !          1516: .Bd -literal -offset indent
        !          1517: \&.Ox 4.5
        !          1518: \&.Ox
        !          1519: .Ed
        !          1520: .Pp
        !          1521: See also
        !          1522: .Sx \&At ,
        !          1523: .Sx \&Bsx ,
        !          1524: .Sx \&Bx ,
        !          1525: .Sx \&Dx ,
        !          1526: .Sx \&Fx ,
        !          1527: .Sx \&Nx ,
        !          1528: and
        !          1529: .Sx \&Ux .
        !          1530: .
        !          1531: .Ss \&Pa
        !          1532: .Ss \&Pc
        !          1533: .Ss \&Pf
        !          1534: .Ss \&Po
        !          1535: .Ss \&Pp
        !          1536: .Ss \&Pq
        !          1537: .Ss \&Qc
        !          1538: .Ss \&Ql
        !          1539: .Ss \&Qo
        !          1540: .Ss \&Qq
        !          1541: .
        !          1542: .Ss \&Re
        !          1543: Closes a
        !          1544: .Sx \&Rs
        !          1545: block.  Does not have any tail arguments.
        !          1546: .
        !          1547: .Ss \&Rs
        !          1548: Begins a bibliographic
        !          1549: .Pq Dq reference
        !          1550: block.  Does not have any head arguments.  The block macro and may only
        !          1551: contain
        !          1552: .Sx \&%A ,
        !          1553: .Sx \&%B ,
        !          1554: .Sx \&%C ,
        !          1555: .Sx \&%D ,
        !          1556: .Sx \&%I ,
        !          1557: .Sx \&%J ,
        !          1558: .Sx \&%N ,
        !          1559: .Sx \&%O ,
        !          1560: .Sx \&%P ,
        !          1561: .Sx \&%Q ,
        !          1562: .Sx \&%R ,
        !          1563: .Sx \&%T ,
        !          1564: and
        !          1565: .Sx \&%V
        !          1566: child macros (at least one must be specified).
        !          1567: .Pp
        !          1568: Examples:
        !          1569: .Bd -literal -offset indent
        !          1570: \&.Rs
        !          1571: \&.%A J. E. Hopcroft
        !          1572: \&.%A J. D. Ullman
        !          1573: \&.%B Introduction to Automata Theory, Languages, and Computation
        !          1574: \&.%I Addison-Wesley
        !          1575: \&.%C Reading, Massachusettes
        !          1576: \&.%D 1979
        !          1577: \&.Re
        !          1578: .Ed
        !          1579: .Pp
        !          1580: If an
        !          1581: .Sx \&Rs
        !          1582: block is used within a SEE ALSO section, a vertical space is asserted
        !          1583: before the rendered output, else the block continues on the current
        !          1584: line.
        !          1585: .
        !          1586: .Ss \&Rv
        !          1587: .Ss \&Sc
        !          1588: .Ss \&Sh
        !          1589: .Ss \&Sm
        !          1590: .Ss \&So
        !          1591: .Ss \&Sq
        !          1592: .Ss \&Ss
        !          1593: .Ss \&St
        !          1594: .Ss \&Sx
        !          1595: .Ss \&Sy
        !          1596: .Ss \&Tn
        !          1597: .Ss \&Ud
        !          1598: .Ss \&Ux
        !          1599: Format the UNIX name.  Accepts no argument.
        !          1600: .Pp
        !          1601: Examples:
        !          1602: .Bd -literal -offset indent
        !          1603: \&.Ux
        !          1604: .Ed
        !          1605: .Pp
        !          1606: See also
        !          1607: .Sx \&At ,
        !          1608: .Sx \&Bsx ,
        !          1609: .Sx \&Bx ,
        !          1610: .Sx \&Dx ,
        !          1611: .Sx \&Fx ,
        !          1612: .Sx \&Nx ,
        !          1613: and
        !          1614: .Sx \&Ox .
        !          1615: .
        !          1616: .Ss \&Va
        !          1617: .Ss \&Vt
        !          1618: .Ss \&Xc
        !          1619: .Ss \&Xo
        !          1620: .Ss \&Xr
        !          1621: .Ss \&br
        !          1622: .Ss \&sp
        !          1623: .
        !          1624: .
1.1       kristaps 1625: .Sh COMPATIBILITY
1.3       schwarze 1626: This section documents compatibility with other roff implementations, at
1.9       schwarze 1627: this time limited to
1.15      schwarze 1628: .Xr groff 1 .
1.9       schwarze 1629: The term
1.15      schwarze 1630: .Qq historic groff
1.9       schwarze 1631: refers to those versions before the
1.15      schwarze 1632: .Pa doc.tmac
1.9       schwarze 1633: file re-write
1.15      schwarze 1634: .Pq somewhere between 1.15 and 1.19 .
                   1635: .
                   1636: .Pp
                   1637: .Bl -dash -compact
                   1638: .It
1.17    ! schwarze 1639: Negative scaling units are now truncated to zero instead of creating
        !          1640: interesting conditions, such as with
        !          1641: .Sq \&sp -1i .
        !          1642: Furthermore, the
        !          1643: .Sq f
        !          1644: scaling unit, while accepted, is rendered as the default unit.
1.15      schwarze 1645: .It
1.9       schwarze 1646: In quoted literals, groff allowed pair-wise double-quotes to produce a
                   1647: standalone double-quote in formatted output.  This idiosyncratic
                   1648: behaviour is no longer applicable.
1.15      schwarze 1649: .It
1.17    ! schwarze 1650: Display types
        !          1651: .Sx \&Bd Fl center
        !          1652: and
        !          1653: .Fl right
        !          1654: are aliases for
        !          1655: .Fl left .
1.9       schwarze 1656: The
1.17    ! schwarze 1657: .Fl file Ar file
        !          1658: argument is ignored.  Since text is not right-justified,
        !          1659: .Fl ragged
        !          1660: and
        !          1661: .Fl filled
        !          1662: are aliases, as are
        !          1663: .Fl literal
        !          1664: and
        !          1665: .Fl unfilled .
1.15      schwarze 1666: .It
1.7       schwarze 1667: Blocks of whitespace are stripped from both macro and free-form text
                   1668: lines (except when in literal mode), while groff would retain whitespace
                   1669: in free-form text lines.
1.15      schwarze 1670: .It
1.3       schwarze 1671: Historic groff has many un-callable macros.  Most of these (excluding
                   1672: some block-level macros) are now callable, conforming to the
                   1673: non-historic groff version.
1.15      schwarze 1674: .It
1.9       schwarze 1675: The vertical bar
1.15      schwarze 1676: .Sq \(ba
1.3       schwarze 1677: made historic groff
1.15      schwarze 1678: .Qq go orbital
1.3       schwarze 1679: but is a proper delimiter in this implementation.
1.15      schwarze 1680: .It
1.17    ! schwarze 1681: .Sx \&It Fl nested
1.3       schwarze 1682: is assumed for all lists (it wasn't in historic groff): any list may be
                   1683: nested and
1.17    ! schwarze 1684: .Fl enum
1.1       kristaps 1685: lists will restart the sequence only for the sub-list.
1.15      schwarze 1686: .It
1.1       kristaps 1687: Some manuals use
1.17    ! schwarze 1688: .Sx \&Li
1.1       kristaps 1689: incorrectly by following it with a reserved character and expecting the
                   1690: delimiter to render.  This is not supported.
1.15      schwarze 1691: .It
1.9       schwarze 1692: In groff, the
1.17    ! schwarze 1693: .Sx \&Fo
1.8       schwarze 1694: macro only produces the first parameter.  This is no longer the case.
1.15      schwarze 1695: .El
1.14      schwarze 1696: .
                   1697: .
1.1       kristaps 1698: .Sh SEE ALSO
1.15      schwarze 1699: .Xr mandoc 1 ,
                   1700: .Xr mandoc_char 7
1.14      schwarze 1701: .
                   1702: .
1.1       kristaps 1703: .Sh AUTHORS
                   1704: The
1.15      schwarze 1705: .Nm
1.9       schwarze 1706: reference was written by
1.15      schwarze 1707: .An Kristaps Dzonsons Aq kristaps@kth.se .
1.17    ! schwarze 1708: .\"
        !          1709: .\" XXX: this really isn't the place for these caveats.
        !          1710: .\" .
        !          1711: .\" .
        !          1712: .\" .Sh CAVEATS
        !          1713: .\" There are many ambiguous parts of mdoc.
        !          1714: .\" .
        !          1715: .\" .Pp
        !          1716: .\" .Bl -dash -compact
        !          1717: .\" .It
        !          1718: .\" .Sq \&Fa
        !          1719: .\" should be
        !          1720: .\" .Sq \&Va
        !          1721: .\" as function arguments are variables.
        !          1722: .\" .It
        !          1723: .\" .Sq \&Ft
        !          1724: .\" should be
        !          1725: .\" .Sq \&Vt
        !          1726: .\" as function return types are still types.  Furthermore, the
        !          1727: .\" .Sq \&Ft
        !          1728: .\" should be removed and
        !          1729: .\" .Sq \&Fo ,
        !          1730: .\" which ostensibly follows it, should follow the same convention as
        !          1731: .\" .Sq \&Va .
        !          1732: .\" .It
        !          1733: .\" .Sq \&Va
        !          1734: .\" should formalise that only one or two arguments are acceptable: a
        !          1735: .\" variable name and optional, preceding type.
        !          1736: .\" .It
        !          1737: .\" .Sq \&Fd
        !          1738: .\" is ambiguous.  It's commonly used to indicate an include file in the
        !          1739: .\" synopsis section.
        !          1740: .\" .Sq \&In
        !          1741: .\" should be used, instead.
        !          1742: .\" .It
        !          1743: .\" Only the
        !          1744: .\" .Sq \-literal
        !          1745: .\" argument to
        !          1746: .\" .Sq \&Bd
        !          1747: .\" makes sense.  The remaining ones should be removed.
        !          1748: .\" .It
        !          1749: .\" The
        !          1750: .\" .Sq \&Xo
        !          1751: .\" and
        !          1752: .\" .Sq \&Xc
        !          1753: .\" macros should be deprecated.
        !          1754: .\" .It
        !          1755: .\" The
        !          1756: .\" .Sq \&Dt
        !          1757: .\" macro lacks clarity.  It should be absolutely clear which title will
        !          1758: .\" render when formatting the manual page.
        !          1759: .\" .It
        !          1760: .\" A
        !          1761: .\" .Sq \&Lx
        !          1762: .\" should be provided for Linux (\(`a la
        !          1763: .\" .Sq \&Ox ,
        !          1764: .\" .Sq \&Nx
        !          1765: .\" etc.).
        !          1766: .\" .It
        !          1767: .\" There's no way to refer to references in
        !          1768: .\" .Sq \&Rs/Re
        !          1769: .\" blocks.
        !          1770: .\" .It
        !          1771: .\" The \-split and \-nosplit dictates via
        !          1772: .\" .Sq \&An
        !          1773: .\" are re-set when entering and leaving the AUTHORS section.
        !          1774: .\" .El
        !          1775: .\" .