]> git.cameronkatri.com Git - mandoc.git/blobdiff - mandoc.1
Fixed STRUCTURE repeat (schwarze@openbsd.org).
[mandoc.git] / mandoc.1
index 9a66e74b1e1e7cf89e3869f80af254d7730920bd..b0fb6de17908550c085cc068b95e68627c07ab90 100644 (file)
--- a/mandoc.1
+++ b/mandoc.1
@@ -1,23 +1,21 @@
-.\" $Id: mandoc.1,v 1.8 2009/03/23 15:41:09 kristaps Exp $
+.\"    $Id: mandoc.1,v 1.22 2009/06/22 12:04:05 kristaps Exp $
 .\"
 .\"
-.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@openbsd.org>
+.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
 .\" Permission to use, copy, modify, and distribute this software for any
 .\"
 .\" Permission to use, copy, modify, and distribute this software for any
-.\" purpose with or without fee is hereby granted, provided that the
-.\" above copyright notice and this permission notice appear in all
-.\" copies.
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
 .\"
 .\"
-.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
-.\" WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
-.\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
-.\" AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-.\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-.\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-.\" PERFORMANCE OF THIS SOFTWARE.
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
 .\"
-.Dd $Mdocdate: March 23 2009 $
-.Dt mandoc 1
+.Dd $Mdocdate: June 22 2009 $
+.Dt MANDOC 1
 .Os
 .\" SECTION
 .Sh NAME
 .Os
 .\" SECTION
 .Sh NAME
@@ -39,20 +37,20 @@ The
 utility formats 
 .Ux
 manual pages for display.  The arguments are as follows:
 utility formats 
 .Ux
 manual pages for display.  The arguments are as follows:
-.Bl -tag -width XXXXXXXXXXXX
+.Bl -tag -width Ds
 .\" ITEM
 .It Fl f Ns Ar option...
 Override default compiler behaviour.  See 
 .Sx Compiler Options
 for details.
 .\" ITEM
 .\" ITEM
 .It Fl f Ns Ar option...
 Override default compiler behaviour.  See 
 .Sx Compiler Options
 for details.
 .\" ITEM
-.It Fl m
+.It Fl m Ns Ar format
 Input format.  See
 .Sx Input Formats
 for available formats.  Defaults to
 Input format.  See
 .Sx Input Formats
 for available formats.  Defaults to
-.Fl m Ns Ar mdoc .
+.Fl m Ns Ar andoc .
 .\" ITEM
 .\" ITEM
-.It Fl T
+.It Fl T Ns Ar output
 Output format.  See
 .Sx Output Formats
 for available formats.  Defaults to
 Output format.  See
 .Sx Output Formats
 for available formats.  Defaults to
@@ -89,8 +87,10 @@ By default,
 .Nm 
 reads 
 .Xr mdoc 7
 .Nm 
 reads 
 .Xr mdoc 7
+or
+.Xr man 7
 text from stdin, implying
 text from stdin, implying
-.Fl m Ns Ar mdoc ,
+.Fl m Ns Ar andoc ,
 and prints 78-column backspace-encoded output to stdout as if
 .Fl T Ns Ar ascii
 were provided.
 and prints 78-column backspace-encoded output to stdout as if
 .Fl T Ns Ar ascii
 were provided.
@@ -98,21 +98,19 @@ were provided.
 .Pp
 .Ex -std mandoc
 .\" SUB-SECTION
 .Pp
 .Ex -std mandoc
 .\" SUB-SECTION
-.Ss Reserved Words (mdoc only)
-The reserved words described in
-.Xr mdoc 7
-are handled according to the following rules:
-.Bl -enum -offset XXX
-.It
-Opening delimiters 
+.Ss Punctuation and Spacing
+If punctuation is set apart from words, such as in the phrase
+.Dq to be \&, or not to be ,
+it's processed by
+.Nm
+according to the following rules:  opening punctuation
 .Po
 .Sq \&( , 
 .Sq \&[ , 
 and
 .Sq \&{
 .Po
 .Sq \&( , 
 .Sq \&[ , 
 and
 .Sq \&{
-.Pc are not followed by whitespace.
-.It
-Closing delimiters
+.Pc 
+is not followed by a space; closing punctuation
 .Po
 .Sq \&. , 
 .Sq \&, , 
 .Po
 .Sq \&. , 
 .Sq \&, , 
@@ -124,23 +122,21 @@ Closing delimiters
 .Sq \&] 
 and
 .Sq \&}
 .Sq \&] 
 and
 .Sq \&}
-.Pc are not preceeded by whitespace.
-.El
-.\" PARAGRAPH
+.Pc 
+is not preceded by whitespace.
 .Pp
 .Pp
-Note that reserved words only register as such as if they appear as
-standalone tokens, either in parsed lines or streams of text.  Thus, the
-following fragment:
-.Bd -literal -offset XXXX
-this self is not that of the waking , empirically real man
-.Ed
-.\" PARAGRAPH
+If the input is
+.Xr mdoc 7 ,
+these rules are also applied to macro arguments when appropriate.
 .Pp
 .Pp
-\&...correctly adjusts the comma spacing to
-.Dq this self is not that of the waking , empirically real man .
-However, if the comma were part of 
-.Dq ,empirically ,
-it would not.
+White-space, in non-literal (normal) mode, is stripped from input and
+replaced on output by a single space.  Thus, if you wish to preserve
+multiple spaces, they must be space-escaped
+.Sq \e\  .
+or used in a literal display mode, e.g., 
+.Sq \&.Bd \-literal 
+in 
+.Xr mdoc 7 .
 .\" SUB-SECTION
 .Ss Input Formats
 The
 .\" SUB-SECTION
 .Ss Input Formats
 The
@@ -150,9 +146,9 @@ utility accepts
 and
 .Xr man 7
 input with
 and
 .Xr man 7
 input with
-.Fl m Ns Ar mdoc
+.Fl m Ns Ar doc
 and
 and
-.Fl m Ns Ar man ,
+.Fl m Ns Ar an ,
 respectively.  The
 .Xr mdoc 7
 format is
 respectively.  The
 .Xr mdoc 7
 format is
@@ -161,10 +157,39 @@ recommended;
 .Xr man 7
 should only be used for legacy manuals.
 .Pp
 .Xr man 7
 should only be used for legacy manuals.
 .Pp
-Note that the
-.Fl m Ns Ar man
-option is experimental and only works with
-.Fl T Ns Ar tree .
+A third option,
+.Fl m Ns Ar andoc ,
+which is also the default, determines encoding on-the-fly: if the first
+non-comment macro is 
+.Sq \&.Dd
+or
+.Sq \&.Dt ,
+the 
+.Xr mdoc 7
+parser is used; otherwise, the
+.Xr man 7
+parser is used.
+.Pp
+If multiple
+files are specified with 
+.Fl m Ns Ar andoc , 
+each has its file-type determined this way.  If multiple files are
+specified and
+.Fl m Ns Ar doc
+or
+.Fl m Ns Ar an
+is specified, then this format is used exclusively.
+.\" .Pp
+.\" The following escape sequences are recognised, although the per-format
+.\" compiler may not allow certain sequences.
+.\" .Bl -tag -width Ds -offset XXXX
+.\" .It \efX
+.\" sets the font mode to X (B, I, R or P, where P resets the font)
+.\" .It \eX, \e(XX, \e[XN]
+.\" queries the special-character table for a corresponding symbol
+.\" .It \e*X, \e*(XX, \e*[XN]
+.\" deprecated special-character format
+.\" .El
 .\" SUB-SECTION
 .Ss Output Formats
 The
 .\" SUB-SECTION
 .Ss Output Formats
 The
@@ -172,29 +197,40 @@ The
 utility accepts the following
 .Fl T
 arguments:
 utility accepts the following
 .Fl T
 arguments:
-.Bl -tag -width XXXXXXXXXXXX -offset XXXX
-.It Ar ascii
+.Bl -tag -width Ds
+.It Fl T Ns Ar ascii
 Produce 7-bit ASCII output, backspace-encoded for bold and underline
 styles.  This is the default.
 Produce 7-bit ASCII output, backspace-encoded for bold and underline
 styles.  This is the default.
-.It Ar tree
+.It Fl T Ns Ar tree
 Produce an indented parse tree.
 Produce an indented parse tree.
-.It Ar lint
+.It Fl T Ns Ar lint
 Parse only: produce no output.
 .El
 Parse only: produce no output.
 .El
+.Pp
+If multiple input files are specified, these will be processed by the
+corresponding filter in-order.
 .\" SUB-SECTION
 .Ss Compiler Options
 Default compiler behaviour may be overriden with the
 .Fl f
 flag.
 .\" SUB-SECTION
 .Ss Compiler Options
 Default compiler behaviour may be overriden with the
 .Fl f
 flag.
-.Bl -tag -width XXXXXXXXXXXX -offset XXXX
+.Bl -tag -width Ds
 .It Fl f Ns Ar ign-scope
 When rewinding the scope of a block macro, forces the compiler to ignore
 scope violations.  This can seriously mangle the resulting tree.
 .Pq mdoc only
 .It Fl f Ns Ar ign-scope
 When rewinding the scope of a block macro, forces the compiler to ignore
 scope violations.  This can seriously mangle the resulting tree.
 .Pq mdoc only
-.It Fl f Ns Ar ign-escape
-Ignore invalid escape sequences.
-.It Fl f Ns Ar ign-macro
-Ignore unknown macros at the start of input lines.
+.It Fl f Ns Ar no-ign-escape
+Don't ignore invalid escape sequences.
+.It Fl f Ns Ar no-ign-macro
+Do not ignore unknown macros at the start of input lines.
+.It Fl f Ns Ar no-ign-chars
+Do not ignore disallowed characters.
+.It Fl f Ns Ar strict
+Implies 
+.Fl f Ns Ar no-ign-escape ,
+.Fl f Ns Ar no-ign-macro 
+and
+.Fl f Ns Ar no-ign-chars . 
 .El
 .\" PARAGRAPH
 .Pp
 .El
 .\" PARAGRAPH
 .Pp
@@ -203,58 +239,57 @@ As with the
 flag, multiple
 .Fl f
 options may be grouped and delimited with a comma.  Using
 flag, multiple
 .Fl f
 options may be grouped and delimited with a comma.  Using
-.Fl f Ns Ar ign-scope,ign-escape ,
-for example, will try to ignore scope and character-escape errors.
+.Fl f Ns Ar ign-scope,no-ign-escape ,
+for example, will try to ignore scope and not ignore character-escape
+errors.
 .\" SECTION
 .Sh EXAMPLES
 .\" SECTION
 .Sh EXAMPLES
-To page this manual page on the terminal:
+To page manuals to the terminal:
 .\" PARAGRAPH
 .Pp
 .\" PARAGRAPH
 .Pp
-.D1 % mandoc \-Wall,error mandoc.1 2>&1 | less
+.D1 % mandoc \-Wall,error \-fstrict mandoc.1 2>&1 | less
+.D1 % mandoc mandoc.1 mdoc.3 mdoc.7 | less
+.\" SECTION
+.Sh COMPATIBILITY
+This section summarises 
+.Nm
+compatibility with 
+.Xr groff 1 .
+.Pp
+.Bl -bullet -compact
+.It 
+A list or display following
+.Sq \&.Ss
+does not assert a prior vertical break, just as it doesn't with
+.Sq \&.Sh .
+.It
+The \-literal and \-unfilled 
+.Sq \&.Bd
+displays types are synonyms, as are \-filled and \-ragged.
+.It
+Words aren't hyphenated.
+.It
+In normal mode (not a literal block), blocks of spaces aren't preserved,
+so double spaces following sentence closure 
+.Pq Qq French spacing
+are reduced to a single space.
+.El
 .\" SECTION
 .Sh SEE ALSO
 .\" SECTION
 .Sh SEE ALSO
-.Xr mdoc 7
-.\" 
+.Xr mandoc_char 7 ,
+.Xr mdoc 7 ,
+.Xr man 7
+.\" SECTION
 .Sh AUTHORS
 The
 .Nm
 utility was written by 
 .Sh AUTHORS
 The
 .Nm
 utility was written by 
-.An Kristaps Dzonsons Aq kristaps@openbsd.org .
+.An Kristaps Dzonsons Aq kristaps@kth.se .
 .\" SECTION
 .Sh CAVEATS
 The 
 .Nm
 .\" SECTION
 .Sh CAVEATS
 The 
 .Nm
-utility in
-.Fl T Ns Ar ascii
-mode doesn't yet know how to display the following:
-.Pp
-.Bl -bullet -compact
-.It
-The \-hang 
-.Sq \&Bl
-list is not yet supported.
-.El
+utility doesn't yet know how to display \-hang lists.
 .Pp
 Other macros still aren't supported by virtue of nobody complaining
 .Pp
 Other macros still aren't supported by virtue of nobody complaining
-about their absence.  Please report any omissions: this is a work in
-progress.
-.Pp
-The following list documents differences between traditional
-.Xr nroff 1
-output and
-.Nm :
-.Pp
-.Bl -bullet -compact
-.It 
-A list of display following
-.Sq \&Ss
-does not assert a prior vertical break, just as it doesn't with
-.Sq \&Sh .
-.It
-Special characters don't follow the current font style.
-.\" LIST-ITEM
-.It
-The \-literal and \-unfilled 
-.Sq \&Bd
-displays types are synonyms, as are \-filled and \-ragged.
-.El
+about their absence.