[BACK]Return to mdoc.7 CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mdoc.7 between version 1.32 and 1.39

version 1.32, 2009/06/22 13:09:17 version 1.39, 2009/07/12 15:32:26
Line 28  The
Line 28  The
 language is used to format  language is used to format
 .Bx  .Bx
 .Ux  .Ux
 manuals.  In this reference document, we describe the syntax, ontology  manuals.  In this reference document, we describe the syntax and
 and structure of the  structure of the
 .Nm  .Nm
 language.  Our reference implementation is  language.  Our reference implementation is
 .Xr mandoc 1 .  .Xr mandoc 1 .
Line 46  character 
Line 46  character 
 .Sq \.  .Sq \.
 are parsed for macros.  Other lines are interpreted within the scope of  are parsed for macros.  Other lines are interpreted within the scope of
 prior macros:  prior macros:
 .Bd -literal -offset XXX  .Bd -literal -offset indent
 \&.Sh Macro lines change control state.  \&.Sh Macro lines change control state.
 Other lines are interpreted within the current state.  Other lines are interpreted within the current state.
 .Ed  .Ed
Line 90  optionally followed by whitespace, is ignored.
Line 90  optionally followed by whitespace, is ignored.
 .\" SUB-SECTION  .\" SUB-SECTION
 .Ss Reserved Characters  .Ss Reserved Characters
 Within a macro line, the following characters are reserved:  Within a macro line, the following characters are reserved:
 .Bl -tag -width Ds -offset XXXX -compact  .Bl -tag -width Ds -offset indent -compact
 .It \&.  .It \&.
 .Pq period  .Pq period
 .It \&,  .It \&,
Line 136  or a single one-character sequence.
Line 136  or a single one-character sequence.
 .Pp  .Pp
 Characters may alternatively be escaped by a slash-asterisk,  Characters may alternatively be escaped by a slash-asterisk,
 .Sq \e* ,  .Sq \e* ,
 with the same combinations as described above.  This form is deprecated.  with the same combinations as described above.
   .Pp
   Terms may also be text-decorated using the
   .Sq \ef
   escape followed by a text-decoration letter: B (bold), I, (italic), or P
   and R (Roman, or reset).  This form is not recommended.
   .\" SUB-SECTION
   .Ss Whitespace
   Unless in literal mode or specifically escaped, consecutive blocks of
   whitespace are pruned from input.  These are later re-added, if
   applicable, by a front-end utility such as
   .Xr mandoc 1 .
 .\" SECTION  .\" SECTION
 .Sh STRUCTURE  .Sh STRUCTURE
 Macros are classified in an ontology described by their scope rules.  Each
 Some macros are allowed to deviate from their classifications to  .Nm
 preserve backward-compatibility with old macro combinations still found  document must begin with the document prologue, containing, in order,
 in the manual corpus.  These are specifically noted on a per-macro  .Sq \&.Dd ,
 basis.  .Sq \&.Dt ,
   and
   .Sq \&.Os .
   Following these, the document body must begin with the NAME section
   containing at least one
   .Sq \&.Nm
   followed by a
   .Sq \&.Nd
   macro.
   .Pp
   At least one free-form or macro line must follow this prologue.
   .\"
   .Ss Classification
   Macros are classified by their scope rules.  Some macros are allowed to
   deviate from their classifications to preserve backward-compatibility
   with old macro combinations still found in the manual corpus.  These are
   specifically noted on a per-macro basis.
 .\" SUB-SECTION  .\" SUB-SECTION
 .Ss Scope  .Ss Scope
 .Bl -inset  .Bl -inset
Line 151  basis.
Line 178  basis.
 .It Em Block  .It Em Block
 macros enclose other block macros, in-line macros or text, and  macros enclose other block macros, in-line macros or text, and
 may span multiple lines.  may span multiple lines.
 .Bl -inset -offset XXXX  .Bl -inset -offset indent
 .\" LIST-ITEM  .\" LIST-ITEM
 .It Em Full-block  .It Em Full-block
 macros always span multiple lines.  They consist of zero or  macros always span multiple lines.  They consist of zero or
Line 186  on whether it's parsable.  In this table,
Line 213  on whether it's parsable.  In this table,
 refers to block full-explicit and so on.  refers to block full-explicit and so on.
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 .Bl -tag -width 12n -offset XXXX -compact  .Bl -tag -width 12n -offset indent -compact
 .It BPE , BFE  .It BPE , BFE
 corresponding explicit closure macro  corresponding explicit closure macro
 .It BFI  .It BFI
Line 204  If a macro (block or in-line) is parsable, it may also
Line 231  If a macro (block or in-line) is parsable, it may also
 one of the following scenarios (unless specifically noted otherwise):  one of the following scenarios (unless specifically noted otherwise):
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 .Bl -dash -offset XXXX -compact  .Bl -dash -offset indent -compact
 .It  .It
 a sequence of >0 space-separated  a sequence of >0 space-separated
 .Sx Reserved Characters ,  .Sx Reserved Characters ,
Line 237  closes it out (closure may be implicit at end-of-line 
Line 264  closes it out (closure may be implicit at end-of-line 
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 Block full-explicit (may contain head, body, tail).  Block full-explicit (may contain head, body, tail).
 .Bd -literal -offset XXXX  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB  \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB
 \(lBbody...\(rB  \(lBbody...\(rB
 \&.Yc \(lBtail...\(rB  \&.Yc \(lBtail...\(rB
Line 245  Block full-explicit (may contain head, body, tail).
Line 272  Block full-explicit (may contain head, body, tail).
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 Block full-implicit (may contain zero or more heads, body, no tail).  Block full-implicit (may contain zero or more heads, body, no tail).
 .Bd -literal -offset XXXX  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB  \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB
 \(lBbody...\(rB  \(lBbody...\(rB
 \&.Yc  \&.Yc
Line 253  Block full-implicit (may contain zero or more heads, b
Line 280  Block full-implicit (may contain zero or more heads, b
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 Block partial-explicit (may contain head, multi-line body, tail).  Block partial-explicit (may contain head, multi-line body, tail).
 .Bd -literal -offset XXXX  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB  \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB
 \(lBbody...\(rB  \(lBbody...\(rB
 \&.Yc \(lBtail...\(rB  \&.Yc \(lBtail...\(rB
Line 267  Block partial-implicit (no head, body, no tail).  Note
Line 294  Block partial-implicit (no head, body, no tail).  Note
 section may be followed by zero or more  section may be followed by zero or more
 .Sx Reserved Words .  .Sx Reserved Words .
 These are in the block scope, but not in the body scope.  These are in the block scope, but not in the body scope.
 .Bd -literal -offset XXXX  .Bd -literal -offset indent
 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBreserved...\(rB  \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBreserved...\(rB
 .Ed  .Ed
 .\" PARAGRAPH  .\" PARAGRAPH
 .Pp  .Pp
 In-lines have \(>=0 scoped arguments.  In-lines have \(>=0 scoped arguments.
 .Bd -literal -offset XXX  .Bd -literal -offset indent
 \&.Yy \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB  \&.Yy \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB
   
 \&.Yy \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN  \&.Yy \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN
 .Ed  .Ed
 .\" SECTION  .\" SECTION
 .Sh STRUCTURE  
 Each  
 .Nm  
 document must begin with the document prologue, containing, in order,  
 .Sq \&.Dd ,  
 .Sq \&.Dt ,  
 and  
 .Sq \&.Os .  
 .Pp  
 Following these, the document body must begin with the NAME section  
 containing at least one  
 .Sq \&.Nm  
 followed by a  
 .Sq \&.Nd  
 macro.  
 .\" SECTION  
 .Sh MACROS  .Sh MACROS
 This section contains a complete list of all  This section contains a complete list of all
 .Nm  .Nm
 macros, arranged ontologically.  A  macros, arranged by classification.  A
 .Qq callable  .Qq callable
 macro is invoked subsequent to the initial macro-line macro.  A  macro is invoked subsequent to the initial macro-line macro.  A
 .Qq parsable  .Qq parsable
Line 317  some 
Line 328  some 
 .Pc  .Pc
 don't have heads.  don't have heads.
 .Pp  .Pp
 .Bl -column -compact -offset XXXX "MacroX" "CallableX" "ParsableX" "Closing"  .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "Closing"
 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Closing  .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Closing
 .It \&.Sh    Ta    \&No    Ta    \&No    Ta    \&.Sh  .It \&.Sh    Ta    \&No    Ta    \&No    Ta    \&.Sh
 .It \&.Ss    Ta    \&No    Ta    \&No    Ta    \&.Sh, \&.Ss  .It \&.Ss    Ta    \&No    Ta    \&No    Ta    \&.Sh, \&.Ss
Line 329  None of these macros are callable or parsed.  The last
Line 340  None of these macros are callable or parsed.  The last
 the explicit scope rules.  All contains bodies, some may contain heads  the explicit scope rules.  All contains bodies, some may contain heads
 .Pq So \&Bf Sc .  .Pq So \&Bf Sc .
 .Pp  .Pp
 .Bl -column -compact -offset XXXX "MacroX" "CallableX" "ParsableX" "closed by XXX"  .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXX"
 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope  .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
 .It \&.Bd    Ta    \&No    Ta    \&No    Ta    closed by \&.Ed  .It \&.Bd    Ta    \&No    Ta    \&No    Ta    closed by \&.Ed
 .It \&.Ed    Ta    \&No    Ta    \&No    Ta    opened by \&.Bd  .It \&.Ed    Ta    \&No    Ta    \&No    Ta    opened by \&.Bd
Line 345  the explicit scope rules.  All contains bodies, some m
Line 356  the explicit scope rules.  All contains bodies, some m
 All of these are callable and parsed for further macros.  Their scopes  All of these are callable and parsed for further macros.  Their scopes
 close at the invocation's end-of-line.  close at the invocation's end-of-line.
 .Pp  .Pp
 .Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset XXXX  .Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset indent
 .It Em Macro Ta Em Callable Ta Em Parsable  .It Em Macro Ta Em Callable Ta Em Parsable
 .It \&.Aq    Ta    Yes   Ta    Yes  .It \&.Aq    Ta    Yes   Ta    Yes
 .It \&.Op    Ta    Yes   Ta    Yes  .It \&.Op    Ta    Yes   Ta    Yes
Line 366  The
Line 377  The
 may be broken by  may be broken by
 .Sq \&.Oc  .Sq \&.Oc
 as in the following example:  as in the following example:
 .Bd -literal -offset XXXX  .Bd -literal -offset indent
 \&.Oo  \&.Oo
 \&.Op Fl a Oc  \&.Op Fl a Oc
 .Ed  .Ed
Line 385  head 
Line 396  head 
 and/or tail  and/or tail
 .Pq So \&.Ec Sc .  .Pq So \&.Ec Sc .
 .Pp  .Pp
 .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset XXXX  .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset indent
 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope  .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
 .It \&.Ao    Ta    Yes   Ta    Yes    Ta    closed by \&.Ac  .It \&.Ao    Ta    Yes   Ta    Yes    Ta    closed by \&.Ac
 .It \&.Ac    Ta    Yes   Ta    Yes    Ta    opened by \&.Ao  .It \&.Ac    Ta    Yes   Ta    Yes    Ta    opened by \&.Ao
Line 419  arguments is
Line 430  arguments is
 .Pq n ,  .Pq n ,
 then the macro accepts an arbitrary number of arguments.  then the macro accepts an arbitrary number of arguments.
 .Pp  .Pp
 .Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset XXXX  .Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset indent
 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments  .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments
 .It \&.Dd    Ta    \&No  Ta    \&No    Ta    >0  .It \&.Dd    Ta    \&No  Ta    \&No    Ta    >0
 .It \&.Dt    Ta    \&No  Ta    \&No    Ta    n  .It \&.Dt    Ta    \&No  Ta    \&No    Ta    n
Line 516  file re-write 
Line 527  file re-write 
 .Bl -dash -compact  .Bl -dash -compact
 .\" LIST-ITEM  .\" LIST-ITEM
 .It  .It
   Some character sequences in groff are not handled depending on escape
   style, e.g.,
   .Sq \e(ba
   and
   .Sq \e*(Ba
   may not be interchanged.  This is no longer the case: all character
   sequences resolve to the same symbol, regardless the escape style.
   .\" LIST-ITEM
   .It
   Blocks of whitespace are stripped from both macro and free-form text
   lines (except when in literal mode), while groff would retain whitespace
   in free-form text lines.
   .\" LIST-ITEM
   .It
 Historic groff has many un-callable macros.  Most of these (excluding  Historic groff has many un-callable macros.  Most of these (excluding
 some block-level macros) are now callable, conforming to the  some block-level macros) are now callable, conforming to the
 non-historic groff version.  non-historic groff version.
 .\" LIST-ITEM  .\" LIST-ITEM
 .It  .It
 The vertical bar  The vertical bar
 .Sq \(Ba  .Sq \(ba
 made historic groff  made historic groff
 .Qq go orbital  .Qq go orbital
 but is a proper delimiter in this implementation.  but is a proper delimiter in this implementation.
Line 551  incorrectly by following it with a reserved character 
Line 576  incorrectly by following it with a reserved character 
 delimiter to render.  This is not supported.  delimiter to render.  This is not supported.
 .\" LIST-ITEM  .\" LIST-ITEM
 .It  .It
 If an special-character control character  If an special-character control character is escaped
 .Sq \e  .Sq \e\e ,
 is escaped, it will  it will obviously not render the subsequent sequence.  Even newer
 obviously not render the sequence.  Even newer versions of groff seem to  versions of groff seem to dither on this.
 dither on this.  
 .El  .El
 .\" SECTION  .\" SECTION
 .Sh SEE ALSO  .Sh SEE ALSO
Line 639  blocks.
Line 663  blocks.
 The \-split and \-nosplit arguments to  The \-split and \-nosplit arguments to
 .Sq \&.An  .Sq \&.An
 are inane.  are inane.
   .\" LIST-ITEM
   .It
   The end-of-line whitespace warnings are superfluous holdovers from
   historic groff.
 .El  .El

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.39

CVSweb