version 1.34, 2009/06/25 11:35:28 |
version 1.41, 2009/07/12 19:34:51 |
|
|
.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 |
.\" SUB-SECTION |
.Ss Whitespace |
.Ss Whitespace |
Unless in literal mode or specifically escaped, consecutive blocks of |
Unless in literal mode or specifically escaped, consecutive blocks of |
Line 173 specifically noted on a per-macro basis. |
|
Line 178 specifically noted on a per-macro 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 208 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 226 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 259 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 267 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 275 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 289 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 |
|
|
.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 \&.Nd Ta \&No Ta \&No Ta \&.Sh |
.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 |
.It \&.It Ta \&No Ta Yes Ta \&.It, \&.El |
.It \&.It Ta \&No Ta Yes Ta \&.It, \&.El |
Line 335 None of these macros are callable or parsed. The last |
|
Line 341 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 351 the explicit scope rules. All contains bodies, some m |
|
Line 357 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 |
|
|
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 |
|
|
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 |
|
|
.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 448 then the macro accepts an arbitrary number of argument |
|
Line 454 then the macro accepts an arbitrary number of argument |
|
.It \&.Ic Ta Yes Ta Yes Ta >0 |
.It \&.Ic Ta Yes Ta Yes Ta >0 |
.It \&.In Ta \&No Ta \&No Ta n |
.It \&.In Ta \&No Ta \&No Ta n |
.It \&.Li Ta Yes Ta Yes Ta n |
.It \&.Li Ta Yes Ta Yes Ta n |
.It \&.Nd Ta \&No Ta \&No Ta n |
|
.It \&.Nm Ta Yes Ta Yes Ta n |
.It \&.Nm Ta Yes Ta Yes Ta n |
.It \&.Ot Ta \&No Ta \&No Ta n |
.It \&.Ot Ta \&No Ta \&No Ta n |
.It \&.Pa Ta Yes Ta Yes Ta n |
.It \&.Pa Ta Yes Ta Yes Ta n |
|
|
.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 557 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. |
.\" LIST-ITEM |
|
.It |
|
In groff, the |
|
.Sq \&.Fo |
|
macro only produces the first parameter. This is no longer the case. |
.El |
.El |
.\" SECTION |
.\" SECTION |
.Sh SEE ALSO |
.Sh SEE ALSO |
|
|
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 |