xref: /dflybsd-src/contrib/mdocml/man.7 (revision 60e1e7526e4aa4a40d14e4710d9ff2496d9f3f95)
1*60e1e752SSascha Wildner.\"	$Id: man.7,v 1.99 2011/03/07 01:35:51 schwarze Exp $
280387638SSascha Wildner.\"
380387638SSascha Wildner.\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
480387638SSascha Wildner.\"
580387638SSascha Wildner.\" Permission to use, copy, modify, and distribute this software for any
680387638SSascha Wildner.\" purpose with or without fee is hereby granted, provided that the above
780387638SSascha Wildner.\" copyright notice and this permission notice appear in all copies.
880387638SSascha Wildner.\"
980387638SSascha Wildner.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1080387638SSascha Wildner.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1180387638SSascha Wildner.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1280387638SSascha Wildner.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1380387638SSascha Wildner.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1480387638SSascha Wildner.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1580387638SSascha Wildner.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1680387638SSascha Wildner.\"
17*60e1e752SSascha Wildner.Dd $Mdocdate: March 7 2011 $
1880387638SSascha Wildner.Dt MAN 7
1980387638SSascha Wildner.Os
2080387638SSascha Wildner.Sh NAME
2180387638SSascha Wildner.Nm man
2280387638SSascha Wildner.Nd man language reference
2380387638SSascha Wildner.Sh DESCRIPTION
2480387638SSascha WildnerThe
2580387638SSascha Wildner.Nm man
2680387638SSascha Wildnerlanguage was historically used to format
2780387638SSascha Wildner.Ux
2880387638SSascha Wildnermanuals.
2980387638SSascha WildnerThis reference document describes its syntax, structure, and usage.
3080387638SSascha Wildner.Pp
3180387638SSascha Wildner.Bf -emphasis
3280387638SSascha WildnerDo not use
3380387638SSascha Wildner.Nm
3480387638SSascha Wildnerto write your manuals.
3580387638SSascha Wildner.Ef
3680387638SSascha WildnerUse the
3780387638SSascha Wildner.Xr mdoc 7
3880387638SSascha Wildnerlanguage, instead.
3980387638SSascha Wildner.Pp
4080387638SSascha WildnerA
4180387638SSascha Wildner.Nm
4280387638SSascha Wildnerdocument follows simple rules:  lines beginning with the control
4380387638SSascha Wildnercharacter
4480387638SSascha Wildner.Sq \&.
4580387638SSascha Wildnerare parsed for macros.
4680387638SSascha WildnerOther lines are interpreted within the scope of
4780387638SSascha Wildnerprior macros:
4880387638SSascha Wildner.Bd -literal -offset indent
4980387638SSascha Wildner\&.SH Macro lines change control state.
5080387638SSascha WildnerOther lines are interpreted within the current state.
5180387638SSascha Wildner.Ed
5280387638SSascha Wildner.Sh INPUT ENCODING
5380387638SSascha Wildner.Nm
5480387638SSascha Wildnerdocuments may contain only graphable 7-bit ASCII characters, the
5580387638SSascha Wildnerspace character, and the tab character.
5680387638SSascha Wildner.Pp
5780387638SSascha WildnerBlank lines are acceptable; where found, the output will assert a
5880387638SSascha Wildnervertical space.
59*60e1e752SSascha Wildner.Pp
60*60e1e752SSascha WildnerIf the first character of a line is a space, that line is printed
61*60e1e752SSascha Wildnerwith a leading newline.
6280387638SSascha Wildner.Ss Comments
6380387638SSascha WildnerText following a
6480387638SSascha Wildner.Sq \e\*q ,
6580387638SSascha Wildnerwhether in a macro or free-form text line, is ignored to the end of
6680387638SSascha Wildnerline.
6780387638SSascha WildnerA macro line with only a control character and comment escape,
6880387638SSascha Wildner.Sq \&.\e\*q ,
6980387638SSascha Wildneris also ignored.
7080387638SSascha WildnerMacro lines with only a control character and optionally whitespace are
7180387638SSascha Wildnerstripped from input.
7280387638SSascha Wildner.Ss Special Characters
7380387638SSascha WildnerSpecial characters may occur in both macro and free-form lines.
7480387638SSascha WildnerSequences begin with the escape character
7580387638SSascha Wildner.Sq \e
7680387638SSascha Wildnerfollowed by either an open-parenthesis
7780387638SSascha Wildner.Sq \&(
7880387638SSascha Wildnerfor two-character sequences; an open-bracket
7980387638SSascha Wildner.Sq \&[
8080387638SSascha Wildnerfor n-character sequences (terminated at a close-bracket
8180387638SSascha Wildner.Sq \&] ) ;
8280387638SSascha Wildneror a single one-character sequence.
8380387638SSascha WildnerSee
8480387638SSascha Wildner.Xr mandoc_char 7
8580387638SSascha Wildnerfor a complete list.
8680387638SSascha WildnerExamples include
8780387638SSascha Wildner.Sq \e(em
8880387638SSascha Wildner.Pq em-dash
8980387638SSascha Wildnerand
9080387638SSascha Wildner.Sq \ee
9180387638SSascha Wildner.Pq back-slash .
9280387638SSascha Wildner.Ss Text Decoration
9380387638SSascha WildnerTerms may be text-decorated using the
9480387638SSascha Wildner.Sq \ef
9580387638SSascha Wildnerescape followed by an indicator: B (bold), I (italic), R (Roman), or P
9680387638SSascha Wildner(revert to previous mode):
9780387638SSascha Wildner.Pp
9880387638SSascha Wildner.D1 \efBbold\efR \efIitalic\efP
9980387638SSascha Wildner.Pp
10080387638SSascha WildnerA numerical representation 3, 2, or 1 (bold, italic, and Roman,
10180387638SSascha Wildnerrespectively) may be used instead.
10280387638SSascha WildnerA text decoration is only valid, if specified in free-form text, until
10380387638SSascha Wildnerthe next macro invocation; if specified within a macro, it's only valid
10480387638SSascha Wildneruntil the macro closes scope.
10580387638SSascha WildnerNote that macros like
10680387638SSascha Wildner.Sx \&BR
10780387638SSascha Wildneropen and close a font scope with each argument.
10880387638SSascha Wildner.Pp
10980387638SSascha WildnerThe
11080387638SSascha Wildner.Sq \ef
11180387638SSascha Wildnerattribute is forgotten when entering or exiting a macro block.
11280387638SSascha Wildner.Ss Whitespace
11380387638SSascha WildnerWhitespace consists of the space character.
11480387638SSascha WildnerIn free-form lines, whitespace is preserved within a line; unescaped
11580387638SSascha Wildnertrailing spaces are stripped from input (unless in a literal context).
11680387638SSascha WildnerBlank free-form lines, which may include spaces, are permitted and
11780387638SSascha Wildnerrendered as an empty line.
11880387638SSascha Wildner.Pp
11980387638SSascha WildnerIn macro lines, whitespace delimits arguments and is discarded.
12080387638SSascha WildnerIf arguments are quoted, whitespace within the quotes is retained.
12180387638SSascha Wildner.Ss Scaling Widths
12280387638SSascha WildnerMany macros support scaled widths for their arguments, such as
12380387638SSascha Wildnerstipulating a two-inch paragraph indentation with the following:
12480387638SSascha Wildner.Bd -literal -offset indent
12580387638SSascha Wildner\&.HP 2i
12680387638SSascha Wildner.Ed
12780387638SSascha Wildner.Pp
12880387638SSascha WildnerThe syntax for scaled widths is
12980387638SSascha Wildner.Sq Li [+-]?[0-9]*.[0-9]*[:unit:]? ,
13080387638SSascha Wildnerwhere a decimal must be preceded or proceeded by at least one digit.
13180387638SSascha WildnerNegative numbers, while accepted, are truncated to zero.
13280387638SSascha WildnerThe following scaling units are accepted:
13380387638SSascha Wildner.Pp
13480387638SSascha Wildner.Bl -tag -width Ds -offset indent -compact
13580387638SSascha Wildner.It c
13680387638SSascha Wildnercentimetre
13780387638SSascha Wildner.It i
13880387638SSascha Wildnerinch
13980387638SSascha Wildner.It P
14080387638SSascha Wildnerpica (~1/6 inch)
14180387638SSascha Wildner.It p
14280387638SSascha Wildnerpoint (~1/72 inch)
14380387638SSascha Wildner.It f
14480387638SSascha Wildnersynonym for
14580387638SSascha Wildner.Sq u
14680387638SSascha Wildner.It v
14780387638SSascha Wildnerdefault vertical span
14880387638SSascha Wildner.It m
14980387638SSascha Wildnerwidth of rendered
15080387638SSascha Wildner.Sq m
15180387638SSascha Wildner.Pq em
15280387638SSascha Wildnercharacter
15380387638SSascha Wildner.It n
15480387638SSascha Wildnerwidth of rendered
15580387638SSascha Wildner.Sq n
15680387638SSascha Wildner.Pq en
15780387638SSascha Wildnercharacter
15880387638SSascha Wildner.It u
15980387638SSascha Wildnerdefault horizontal span
16080387638SSascha Wildner.It M
16180387638SSascha Wildnermini-em (~1/100 em)
16280387638SSascha Wildner.El
16380387638SSascha Wildner.Pp
16480387638SSascha WildnerUsing anything other than
16580387638SSascha Wildner.Sq m ,
16680387638SSascha Wildner.Sq n ,
16780387638SSascha Wildner.Sq u ,
16880387638SSascha Wildneror
16980387638SSascha Wildner.Sq v
17080387638SSascha Wildneris necessarily non-portable across output media.
17180387638SSascha Wildner.Pp
17280387638SSascha WildnerIf a scaling unit is not provided, the numerical value is interpreted
17380387638SSascha Wildnerunder the default rules of
17480387638SSascha Wildner.Sq v
17580387638SSascha Wildnerfor vertical spaces and
17680387638SSascha Wildner.Sq u
17780387638SSascha Wildnerfor horizontal ones.
17880387638SSascha Wildner.Em Note :
17980387638SSascha Wildnerthis differs from
18080387638SSascha Wildner.Xr mdoc 7 ,
18180387638SSascha Wildnerwhich, if a unit is not provided, will instead interpret the string as
18280387638SSascha Wildnerliteral text.
18380387638SSascha Wildner.Ss Sentence Spacing
18480387638SSascha WildnerWhen composing a manual, make sure that sentences end at the end of
18580387638SSascha Wildnera line.
18680387638SSascha WildnerBy doing so, front-ends will be able to apply the proper amount of
18780387638SSascha Wildnerspacing after the end of sentence (unescaped) period, exclamation mark,
18880387638SSascha Wildneror question mark followed by zero or more non-sentence closing
18980387638SSascha Wildnerdelimiters
19080387638SSascha Wildner.Po
19180387638SSascha Wildner.Sq \&) ,
19280387638SSascha Wildner.Sq \&] ,
19380387638SSascha Wildner.Sq \&' ,
19480387638SSascha Wildner.Sq \&"
19580387638SSascha Wildner.Pc .
19680387638SSascha Wildner.Sh MANUAL STRUCTURE
19780387638SSascha WildnerEach
19880387638SSascha Wildner.Nm
19980387638SSascha Wildnerdocument must contain the
20080387638SSascha Wildner.Sx \&TH
20180387638SSascha Wildnermacro describing the document's section and title.
20280387638SSascha WildnerIt may occur anywhere in the document, although conventionally it
20380387638SSascha Wildnerappears as the first macro.
20480387638SSascha Wildner.Pp
20580387638SSascha WildnerBeyond
20680387638SSascha Wildner.Sx \&TH ,
20780387638SSascha Wildnerat least one macro or text node must appear in the document.
20880387638SSascha WildnerDocuments are generally structured as follows:
20980387638SSascha Wildner.Bd -literal -offset indent
21080387638SSascha Wildner\&.TH FOO 1 2009-10-10
21180387638SSascha Wildner\&.SH NAME
21280387638SSascha Wildner\efBfoo\efR \e(en a description goes here
21380387638SSascha Wildner\&.\e\*q .SH LIBRARY
21480387638SSascha Wildner\&.\e\*q For sections 2 & 3 only.
21580387638SSascha Wildner\&.\e\*q Not used in OpenBSD.
21680387638SSascha Wildner\&.SH SYNOPSIS
21780387638SSascha Wildner\efBfoo\efR [\efB\e-options\efR] arguments...
21880387638SSascha Wildner\&.SH DESCRIPTION
21980387638SSascha WildnerThe \efBfoo\efR utility processes files...
22080387638SSascha Wildner\&.\e\*q .SH IMPLEMENTATION NOTES
22180387638SSascha Wildner\&.\e\*q Not used in OpenBSD.
22280387638SSascha Wildner\&.\e\*q .SH RETURN VALUES
22380387638SSascha Wildner\&.\e\*q For sections 2, 3, & 9 only.
22480387638SSascha Wildner\&.\e\*q .SH ENVIRONMENT
22580387638SSascha Wildner\&.\e\*q For sections 1, 6, 7, & 8 only.
22680387638SSascha Wildner\&.\e\*q .SH FILES
22780387638SSascha Wildner\&.\e\*q .SH EXIT STATUS
22880387638SSascha Wildner\&.\e\*q For sections 1, 6, & 8 only.
22980387638SSascha Wildner\&.\e\*q .SH EXAMPLES
23080387638SSascha Wildner\&.\e\*q .SH DIAGNOSTICS
23180387638SSascha Wildner\&.\e\*q For sections 1, 4, 6, 7, & 8 only.
23280387638SSascha Wildner\&.\e\*q .SH ERRORS
23380387638SSascha Wildner\&.\e\*q For sections 2, 3, & 9 only.
23480387638SSascha Wildner\&.\e\*q .SH SEE ALSO
23580387638SSascha Wildner\&.\e\*q .BR foo ( 1 )
23680387638SSascha Wildner\&.\e\*q .SH STANDARDS
23780387638SSascha Wildner\&.\e\*q .SH HISTORY
23880387638SSascha Wildner\&.\e\*q .SH AUTHORS
23980387638SSascha Wildner\&.\e\*q .SH CAVEATS
24080387638SSascha Wildner\&.\e\*q .SH BUGS
24180387638SSascha Wildner\&.\e\*q .SH SECURITY CONSIDERATIONS
24280387638SSascha Wildner\&.\e\*q Not used in OpenBSD.
24380387638SSascha Wildner.Ed
24480387638SSascha Wildner.Pp
24580387638SSascha WildnerThe sections in a
24680387638SSascha Wildner.Nm
24780387638SSascha Wildnerdocument are conventionally ordered as they appear above.
24880387638SSascha WildnerSections should be composed as follows:
24980387638SSascha Wildner.Bl -ohang -offset indent
25080387638SSascha Wildner.It Em NAME
25180387638SSascha WildnerThe name(s) and a short description of the documented material.
25280387638SSascha WildnerThe syntax for this is generally as follows:
25380387638SSascha Wildner.Pp
25480387638SSascha Wildner.D1 \efBname\efR \e(en description
25580387638SSascha Wildner.It Em LIBRARY
25680387638SSascha WildnerThe name of the library containing the documented material, which is
25780387638SSascha Wildnerassumed to be a function in a section 2 or 3 manual.
25880387638SSascha WildnerFor functions in the C library, this may be as follows:
25980387638SSascha Wildner.Pp
26080387638SSascha Wildner.D1 Standard C Library (libc, -lc)
26180387638SSascha Wildner.It Em SYNOPSIS
26280387638SSascha WildnerDocuments the utility invocation syntax, function call syntax, or device
26380387638SSascha Wildnerconfiguration.
26480387638SSascha Wildner.Pp
26580387638SSascha WildnerFor the first, utilities (sections 1, 6, and 8), this is
26680387638SSascha Wildnergenerally structured as follows:
26780387638SSascha Wildner.Pp
26880387638SSascha Wildner.D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
26980387638SSascha Wildner.Pp
27080387638SSascha WildnerFor the second, function calls (sections 2, 3, 9):
27180387638SSascha Wildner.Pp
27280387638SSascha Wildner.D1 \&.B char *name(char *\efIarg\efR);
27380387638SSascha Wildner.Pp
27480387638SSascha WildnerAnd for the third, configurations (section 4):
27580387638SSascha Wildner.Pp
27680387638SSascha Wildner.D1 \&.B name* at cardbus ? function ?
27780387638SSascha Wildner.Pp
27880387638SSascha WildnerManuals not in these sections generally don't need a
27980387638SSascha Wildner.Em SYNOPSIS .
28080387638SSascha Wildner.It Em DESCRIPTION
28180387638SSascha WildnerThis expands upon the brief, one-line description in
28280387638SSascha Wildner.Em NAME .
28380387638SSascha WildnerIt usually contains a break-down of the options (if documenting a
28480387638SSascha Wildnercommand).
28580387638SSascha Wildner.It Em IMPLEMENTATION NOTES
28680387638SSascha WildnerImplementation-specific notes should be kept here.
28780387638SSascha WildnerThis is useful when implementing standard functions that may have side
28880387638SSascha Wildnereffects or notable algorithmic implications.
28980387638SSascha Wildner.It Em RETURN VALUES
29080387638SSascha WildnerThis section documents the return values of functions in sections 2, 3, and 9.
29180387638SSascha Wildner.It Em ENVIRONMENT
29280387638SSascha WildnerDocuments any usages of environment variables, e.g.,
29380387638SSascha Wildner.Xr environ 7 .
29480387638SSascha Wildner.It Em FILES
29580387638SSascha WildnerDocuments files used.
29680387638SSascha WildnerIt's helpful to document both the file name and a short description of how
29780387638SSascha Wildnerthe file is used (created, modified, etc.).
29880387638SSascha Wildner.It Em EXIT STATUS
29980387638SSascha WildnerThis section documents the command exit status for
30080387638SSascha Wildnersection 1, 6, and 8 utilities.
30180387638SSascha WildnerHistorically, this information was described in
30280387638SSascha Wildner.Em DIAGNOSTICS ,
30380387638SSascha Wildnera practise that is now discouraged.
30480387638SSascha Wildner.It Em EXAMPLES
30580387638SSascha WildnerExample usages.
30680387638SSascha WildnerThis often contains snippets of well-formed,
30780387638SSascha Wildnerwell-tested invocations.
30880387638SSascha WildnerMake sure that examples work properly!
30980387638SSascha Wildner.It Em DIAGNOSTICS
31080387638SSascha WildnerDocuments error conditions.
31180387638SSascha WildnerThis is most useful in section 4 manuals.
31280387638SSascha WildnerHistorically, this section was used in place of
31380387638SSascha Wildner.Em EXIT STATUS
31480387638SSascha Wildnerfor manuals in sections 1, 6, and 8; however, this practise is
31580387638SSascha Wildnerdiscouraged.
31680387638SSascha Wildner.It Em ERRORS
31780387638SSascha WildnerDocuments error handling in sections 2, 3, and 9.
31880387638SSascha Wildner.It Em SEE ALSO
31980387638SSascha WildnerReferences other manuals with related topics.
32080387638SSascha WildnerThis section should exist for most manuals.
32180387638SSascha Wildner.Pp
32280387638SSascha Wildner.D1 \&.BR bar \&( 1 \&),
32380387638SSascha Wildner.Pp
32480387638SSascha WildnerCross-references should conventionally be ordered
32580387638SSascha Wildnerfirst by section, then alphabetically.
32680387638SSascha Wildner.It Em STANDARDS
32780387638SSascha WildnerReferences any standards implemented or used, such as
32880387638SSascha Wildner.Pp
32980387638SSascha Wildner.D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
33080387638SSascha Wildner.Pp
33180387638SSascha WildnerIf not adhering to any standards, the
33280387638SSascha Wildner.Em HISTORY
33380387638SSascha Wildnersection should be used.
33480387638SSascha Wildner.It Em HISTORY
33580387638SSascha WildnerA brief history of the subject, including where support first appeared.
33680387638SSascha Wildner.It Em AUTHORS
33780387638SSascha WildnerCredits to the person or persons who wrote the code and/or documentation.
33880387638SSascha WildnerAuthors should generally be noted by both name and email address.
33980387638SSascha Wildner.It Em CAVEATS
34080387638SSascha WildnerCommon misuses and misunderstandings should be explained
34180387638SSascha Wildnerin this section.
34280387638SSascha Wildner.It Em BUGS
34380387638SSascha WildnerKnown bugs, limitations, and work-arounds should be described
34480387638SSascha Wildnerin this section.
34580387638SSascha Wildner.It Em SECURITY CONSIDERATIONS
34680387638SSascha WildnerDocuments any security precautions that operators should consider.
34780387638SSascha Wildner.El
34880387638SSascha Wildner.Sh MACRO SYNTAX
34980387638SSascha WildnerMacros are one to three characters in length and begin with a
35080387638SSascha Wildnercontrol character,
35180387638SSascha Wildner.Sq \&. ,
35280387638SSascha Wildnerat the beginning of the line.
35380387638SSascha WildnerThe
35480387638SSascha Wildner.Sq \(aq
35580387638SSascha Wildnermacro control character is also accepted.
35680387638SSascha WildnerAn arbitrary amount of whitespace (spaces or tabs) may sit between the
35780387638SSascha Wildnercontrol character and the macro name.
35880387638SSascha WildnerThus, the following are equivalent:
35980387638SSascha Wildner.Bd -literal -offset indent
36080387638SSascha Wildner\&.PP
36180387638SSascha Wildner\&.\ \ \ PP
36280387638SSascha Wildner.Ed
36380387638SSascha Wildner.Pp
364*60e1e752SSascha WildnerTo include space characters in macro arguments, arguments may be quoted;
365*60e1e752SSascha Wildnersee the
366*60e1e752SSascha Wildner.Sq MACRO SYNTAX
367*60e1e752SSascha Wildnersection in the
368*60e1e752SSascha Wildner.Xr roff 7
369*60e1e752SSascha Wildnermanual for details.
370*60e1e752SSascha Wildner.Pp
37180387638SSascha WildnerThe
37280387638SSascha Wildner.Nm
37380387638SSascha Wildnermacros are classified by scope: line scope or block scope.
37480387638SSascha WildnerLine macros are only scoped to the current line (and, in some
37580387638SSascha Wildnersituations, the subsequent line).
37680387638SSascha WildnerBlock macros are scoped to the current line and subsequent lines until
37780387638SSascha Wildnerclosed by another block macro.
37880387638SSascha Wildner.Ss Line Macros
37980387638SSascha WildnerLine macros are generally scoped to the current line, with the body
38080387638SSascha Wildnerconsisting of zero or more arguments.
38180387638SSascha WildnerIf a macro is scoped to the next line and the line arguments are empty,
38280387638SSascha Wildnerthe next line, which must be text, is used instead.
38380387638SSascha WildnerThus:
38480387638SSascha Wildner.Bd -literal -offset indent
38580387638SSascha Wildner\&.I
38680387638SSascha Wildnerfoo
38780387638SSascha Wildner.Ed
38880387638SSascha Wildner.Pp
38980387638SSascha Wildneris equivalent to
39080387638SSascha Wildner.Sq \&.I foo .
39180387638SSascha WildnerIf next-line macros are invoked consecutively, only the last is used.
39280387638SSascha WildnerIf a next-line macro is followed by a non-next-line macro, an error is
39380387638SSascha Wildnerraised, except for
39480387638SSascha Wildner.Sx \&br ,
39580387638SSascha Wildner.Sx \&sp ,
39680387638SSascha Wildnerand
39780387638SSascha Wildner.Sx \&na .
39880387638SSascha Wildner.Pp
39980387638SSascha WildnerThe syntax is as follows:
40080387638SSascha Wildner.Bd -literal -offset indent
40180387638SSascha Wildner\&.YO \(lBbody...\(rB
40280387638SSascha Wildner\(lBbody...\(rB
40380387638SSascha Wildner.Ed
40480387638SSascha Wildner.Pp
40580387638SSascha Wildner.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX"
40680387638SSascha Wildner.It Em Macro Ta Em Arguments Ta Em Scope     Ta Em Notes
40780387638SSascha Wildner.It Sx \&AT  Ta    <=1       Ta    current   Ta    \&
40880387638SSascha Wildner.It Sx \&B   Ta    n         Ta    next-line Ta    \&
40980387638SSascha Wildner.It Sx \&BI  Ta    n         Ta    current   Ta    \&
41080387638SSascha Wildner.It Sx \&BR  Ta    n         Ta    current   Ta    \&
41180387638SSascha Wildner.It Sx \&DT  Ta    0         Ta    current   Ta    \&
41280387638SSascha Wildner.It Sx \&I   Ta    n         Ta    next-line Ta    \&
41380387638SSascha Wildner.It Sx \&IB  Ta    n         Ta    current   Ta    \&
41480387638SSascha Wildner.It Sx \&IR  Ta    n         Ta    current   Ta    \&
41580387638SSascha Wildner.It Sx \&R   Ta    n         Ta    next-line Ta    \&
41680387638SSascha Wildner.It Sx \&RB  Ta    n         Ta    current   Ta    \&
41780387638SSascha Wildner.It Sx \&RI  Ta    n         Ta    current   Ta    \&
41880387638SSascha Wildner.It Sx \&SB  Ta    n         Ta    next-line Ta    \&
41980387638SSascha Wildner.It Sx \&SM  Ta    n         Ta    next-line Ta    \&
42080387638SSascha Wildner.It Sx \&TH  Ta    >1, <6    Ta    current   Ta    \&
42180387638SSascha Wildner.It Sx \&UC  Ta    <=1       Ta    current   Ta    \&
42280387638SSascha Wildner.It Sx \&br  Ta    0         Ta    current   Ta    compat
42380387638SSascha Wildner.It Sx \&fi  Ta    0         Ta    current   Ta    compat
42480387638SSascha Wildner.It Sx \&ft  Ta    1         Ta    current   Ta    compat
42580387638SSascha Wildner.It Sx \&in  Ta    1         Ta    current   Ta    compat
42680387638SSascha Wildner.It Sx \&na  Ta    0         Ta    current   Ta    compat
42780387638SSascha Wildner.It Sx \&nf  Ta    0         Ta    current   Ta    compat
42880387638SSascha Wildner.It Sx \&sp  Ta    1         Ta    current   Ta    compat
42980387638SSascha Wildner.El
43080387638SSascha Wildner.Pp
43180387638SSascha WildnerMacros marked as
43280387638SSascha Wildner.Qq compat
43380387638SSascha Wildnerare included for compatibility with the significant corpus of existing
43480387638SSascha Wildnermanuals that mix dialects of roff.
43580387638SSascha WildnerThese macros should not be used for portable
43680387638SSascha Wildner.Nm
43780387638SSascha Wildnermanuals.
43880387638SSascha Wildner.Ss Block Macros
43980387638SSascha WildnerBlock macros comprise a head and body.
44080387638SSascha WildnerAs with in-line macros, the head is scoped to the current line and, in
44180387638SSascha Wildnerone circumstance, the next line (the next-line stipulations as in
44280387638SSascha Wildner.Sx Line Macros
44380387638SSascha Wildnerapply here as well).
44480387638SSascha Wildner.Pp
44580387638SSascha WildnerThe syntax is as follows:
44680387638SSascha Wildner.Bd -literal -offset indent
44780387638SSascha Wildner\&.YO \(lBhead...\(rB
44880387638SSascha Wildner\(lBhead...\(rB
44980387638SSascha Wildner\(lBbody...\(rB
45080387638SSascha Wildner.Ed
45180387638SSascha Wildner.Pp
45280387638SSascha WildnerThe closure of body scope may be to the section, where a macro is closed
45380387638SSascha Wildnerby
45480387638SSascha Wildner.Sx \&SH ;
45580387638SSascha Wildnersub-section, closed by a section or
45680387638SSascha Wildner.Sx \&SS ;
45780387638SSascha Wildnerpart, closed by a section, sub-section, or
45880387638SSascha Wildner.Sx \&RE ;
45980387638SSascha Wildneror paragraph, closed by a section, sub-section, part,
46080387638SSascha Wildner.Sx \&HP ,
46180387638SSascha Wildner.Sx \&IP ,
46280387638SSascha Wildner.Sx \&LP ,
46380387638SSascha Wildner.Sx \&P ,
46480387638SSascha Wildner.Sx \&PP ,
46580387638SSascha Wildneror
46680387638SSascha Wildner.Sx \&TP .
46780387638SSascha WildnerNo closure refers to an explicit block closing macro.
46880387638SSascha Wildner.Pp
46980387638SSascha WildnerAs a rule, block macros may not be nested; thus, calling a block macro
47080387638SSascha Wildnerwhile another block macro scope is open, and the open scope is not
47180387638SSascha Wildnerimplicitly closed, is syntactically incorrect.
47280387638SSascha Wildner.Pp
47380387638SSascha Wildner.Bl -column -compact -offset indent "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX"
47480387638SSascha Wildner.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope  Ta Em Notes
47580387638SSascha Wildner.It Sx \&HP  Ta    <2        Ta    current    Ta    paragraph   Ta    \&
47680387638SSascha Wildner.It Sx \&IP  Ta    <3        Ta    current    Ta    paragraph   Ta    \&
47780387638SSascha Wildner.It Sx \&LP  Ta    0         Ta    current    Ta    paragraph   Ta    \&
47880387638SSascha Wildner.It Sx \&P   Ta    0         Ta    current    Ta    paragraph   Ta    \&
47980387638SSascha Wildner.It Sx \&PP  Ta    0         Ta    current    Ta    paragraph   Ta    \&
48080387638SSascha Wildner.It Sx \&RE  Ta    0         Ta    current    Ta    none        Ta    compat
48180387638SSascha Wildner.It Sx \&RS  Ta    1         Ta    current    Ta    part        Ta    compat
48280387638SSascha Wildner.It Sx \&SH  Ta    >0        Ta    next-line  Ta    section     Ta    \&
48380387638SSascha Wildner.It Sx \&SS  Ta    >0        Ta    next-line  Ta    sub-section Ta    \&
48480387638SSascha Wildner.It Sx \&TP  Ta    n         Ta    next-line  Ta    paragraph   Ta    \&
48580387638SSascha Wildner.El
48680387638SSascha Wildner.Pp
48780387638SSascha WildnerMacros marked
48880387638SSascha Wildner.Qq compat
48980387638SSascha Wildnerare as mentioned in
49080387638SSascha Wildner.Sx Line Macros .
49180387638SSascha Wildner.Pp
49280387638SSascha WildnerIf a block macro is next-line scoped, it may only be followed by in-line
49380387638SSascha Wildnermacros for decorating text.
49480387638SSascha Wildner.Sh REFERENCE
49580387638SSascha WildnerThis section is a canonical reference to all macros, arranged
49680387638SSascha Wildneralphabetically.
49780387638SSascha WildnerFor the scoping of individual macros, see
49880387638SSascha Wildner.Sx MACRO SYNTAX .
49980387638SSascha Wildner.Ss \&AT
50080387638SSascha WildnerSets the volume for the footer for compatibility with man pages from
50180387638SSascha Wildner.Tn AT&T UNIX
50280387638SSascha Wildnerreleases.
50380387638SSascha WildnerThe optional arguments specify which release it is from.
50480387638SSascha Wildner.Ss \&B
50580387638SSascha WildnerText is rendered in bold face.
50680387638SSascha Wildner.Pp
50780387638SSascha WildnerSee also
50880387638SSascha Wildner.Sx \&I
50980387638SSascha Wildnerand
51080387638SSascha Wildner.Sx \&R .
51180387638SSascha Wildner.Ss \&BI
51280387638SSascha WildnerText is rendered alternately in bold face and italic.
51380387638SSascha WildnerThus,
51480387638SSascha Wildner.Sq .BI this word and that
51580387638SSascha Wildnercauses
51680387638SSascha Wildner.Sq this
51780387638SSascha Wildnerand
51880387638SSascha Wildner.Sq and
51980387638SSascha Wildnerto render in bold face, while
52080387638SSascha Wildner.Sq word
52180387638SSascha Wildnerand
52280387638SSascha Wildner.Sq that
52380387638SSascha Wildnerrender in italics.
52480387638SSascha WildnerWhitespace between arguments is omitted in output.
52580387638SSascha Wildner.Pp
52680387638SSascha WildnerExamples:
52780387638SSascha Wildner.Pp
52880387638SSascha Wildner.Dl \&.BI bold italic bold italic
52980387638SSascha Wildner.Pp
53080387638SSascha WildnerThe output of this example will be emboldened
53180387638SSascha Wildner.Dq bold
53280387638SSascha Wildnerand italicised
53380387638SSascha Wildner.Dq italic ,
53480387638SSascha Wildnerwith spaces stripped between arguments.
53580387638SSascha Wildner.Pp
53680387638SSascha WildnerSee also
53780387638SSascha Wildner.Sx \&IB ,
53880387638SSascha Wildner.Sx \&BR ,
53980387638SSascha Wildner.Sx \&RB ,
54080387638SSascha Wildner.Sx \&RI ,
54180387638SSascha Wildnerand
54280387638SSascha Wildner.Sx \&IR .
54380387638SSascha Wildner.Ss \&BR
54480387638SSascha WildnerText is rendered alternately in bold face and roman (the default font).
54580387638SSascha WildnerWhitespace between arguments is omitted in output.
54680387638SSascha Wildner.Pp
54780387638SSascha WildnerSee
54880387638SSascha Wildner.Sx \&BI
54980387638SSascha Wildnerfor an equivalent example.
55080387638SSascha Wildner.Pp
55180387638SSascha WildnerSee also
55280387638SSascha Wildner.Sx \&BI ,
55380387638SSascha Wildner.Sx \&IB ,
55480387638SSascha Wildner.Sx \&RB ,
55580387638SSascha Wildner.Sx \&RI ,
55680387638SSascha Wildnerand
55780387638SSascha Wildner.Sx \&IR .
55880387638SSascha Wildner.Ss \&DT
55980387638SSascha WildnerHas no effect.
56080387638SSascha WildnerIncluded for compatibility.
56180387638SSascha Wildner.Ss \&HP
56280387638SSascha WildnerBegin a paragraph whose initial output line is left-justified, but
56380387638SSascha Wildnersubsequent output lines are indented, with the following syntax:
56480387638SSascha Wildner.Bd -filled -offset indent
56580387638SSascha Wildner.Pf \. Sx \&HP
56680387638SSascha Wildner.Op Cm width
56780387638SSascha Wildner.Ed
56880387638SSascha Wildner.Pp
56980387638SSascha WildnerThe
57080387638SSascha Wildner.Cm width
57180387638SSascha Wildnerargument must conform to
57280387638SSascha Wildner.Sx Scaling Widths .
57380387638SSascha WildnerIf specified, it's saved for later paragraph left-margins; if unspecified, the
57480387638SSascha Wildnersaved or default width is used.
57580387638SSascha Wildner.Pp
57680387638SSascha WildnerSee also
57780387638SSascha Wildner.Sx \&IP ,
57880387638SSascha Wildner.Sx \&LP ,
57980387638SSascha Wildner.Sx \&P ,
58080387638SSascha Wildner.Sx \&PP ,
58180387638SSascha Wildnerand
58280387638SSascha Wildner.Sx \&TP .
58380387638SSascha Wildner.Ss \&I
58480387638SSascha WildnerText is rendered in italics.
58580387638SSascha Wildner.Pp
58680387638SSascha WildnerSee also
58780387638SSascha Wildner.Sx \&B
58880387638SSascha Wildnerand
58980387638SSascha Wildner.Sx \&R .
59080387638SSascha Wildner.Ss \&IB
59180387638SSascha WildnerText is rendered alternately in italics and bold face.
59280387638SSascha WildnerWhitespace between arguments is omitted in output.
59380387638SSascha Wildner.Pp
59480387638SSascha WildnerSee
59580387638SSascha Wildner.Sx \&BI
59680387638SSascha Wildnerfor an equivalent example.
59780387638SSascha Wildner.Pp
59880387638SSascha WildnerSee also
59980387638SSascha Wildner.Sx \&BI ,
60080387638SSascha Wildner.Sx \&BR ,
60180387638SSascha Wildner.Sx \&RB ,
60280387638SSascha Wildner.Sx \&RI ,
60380387638SSascha Wildnerand
60480387638SSascha Wildner.Sx \&IR .
60580387638SSascha Wildner.Ss \&IP
60680387638SSascha WildnerBegin an indented paragraph with the following syntax:
60780387638SSascha Wildner.Bd -filled -offset indent
60880387638SSascha Wildner.Pf \. Sx \&IP
60980387638SSascha Wildner.Op Cm head Op Cm width
61080387638SSascha Wildner.Ed
61180387638SSascha Wildner.Pp
61280387638SSascha WildnerThe
61380387638SSascha Wildner.Cm width
61480387638SSascha Wildnerargument defines the width of the left margin and is defined by
61580387638SSascha Wildner.Sx Scaling Widths .
61680387638SSascha WildnerIt's saved for later paragraph left-margins; if unspecified, the saved or
61780387638SSascha Wildnerdefault width is used.
61880387638SSascha Wildner.Pp
61980387638SSascha WildnerThe
62080387638SSascha Wildner.Cm head
62180387638SSascha Wildnerargument is used as a leading term, flushed to the left margin.
62280387638SSascha WildnerThis is useful for bulleted paragraphs and so on.
62380387638SSascha Wildner.Pp
62480387638SSascha WildnerSee also
62580387638SSascha Wildner.Sx \&HP ,
62680387638SSascha Wildner.Sx \&LP ,
62780387638SSascha Wildner.Sx \&P ,
62880387638SSascha Wildner.Sx \&PP ,
62980387638SSascha Wildnerand
63080387638SSascha Wildner.Sx \&TP .
63180387638SSascha Wildner.Ss \&IR
63280387638SSascha WildnerText is rendered alternately in italics and roman (the default font).
63380387638SSascha WildnerWhitespace between arguments is omitted in output.
63480387638SSascha Wildner.Pp
63580387638SSascha WildnerSee
63680387638SSascha Wildner.Sx \&BI
63780387638SSascha Wildnerfor an equivalent example.
63880387638SSascha Wildner.Pp
63980387638SSascha WildnerSee also
64080387638SSascha Wildner.Sx \&BI ,
64180387638SSascha Wildner.Sx \&IB ,
64280387638SSascha Wildner.Sx \&BR ,
64380387638SSascha Wildner.Sx \&RB ,
64480387638SSascha Wildnerand
64580387638SSascha Wildner.Sx \&RI .
64680387638SSascha Wildner.Ss \&LP
64780387638SSascha WildnerBegin an undecorated paragraph.
64880387638SSascha WildnerThe scope of a paragraph is closed by a subsequent paragraph,
64980387638SSascha Wildnersub-section, section, or end of file.
65080387638SSascha WildnerThe saved paragraph left-margin width is reset to the default.
65180387638SSascha Wildner.Pp
65280387638SSascha WildnerSee also
65380387638SSascha Wildner.Sx \&HP ,
65480387638SSascha Wildner.Sx \&IP ,
65580387638SSascha Wildner.Sx \&P ,
65680387638SSascha Wildner.Sx \&PP ,
65780387638SSascha Wildnerand
65880387638SSascha Wildner.Sx \&TP .
65980387638SSascha Wildner.Ss \&P
66080387638SSascha WildnerSynonym for
66180387638SSascha Wildner.Sx \&LP .
66280387638SSascha Wildner.Pp
66380387638SSascha WildnerSee also
66480387638SSascha Wildner.Sx \&HP ,
66580387638SSascha Wildner.Sx \&IP ,
66680387638SSascha Wildner.Sx \&LP ,
66780387638SSascha Wildner.Sx \&PP ,
66880387638SSascha Wildnerand
66980387638SSascha Wildner.Sx \&TP .
67080387638SSascha Wildner.Ss \&PP
67180387638SSascha WildnerSynonym for
67280387638SSascha Wildner.Sx \&LP .
67380387638SSascha Wildner.Pp
67480387638SSascha WildnerSee also
67580387638SSascha Wildner.Sx \&HP ,
67680387638SSascha Wildner.Sx \&IP ,
67780387638SSascha Wildner.Sx \&LP ,
67880387638SSascha Wildner.Sx \&P ,
67980387638SSascha Wildnerand
68080387638SSascha Wildner.Sx \&TP .
68180387638SSascha Wildner.Ss \&R
68280387638SSascha WildnerText is rendered in roman (the default font).
68380387638SSascha Wildner.Pp
68480387638SSascha WildnerSee also
68580387638SSascha Wildner.Sx \&I
68680387638SSascha Wildnerand
68780387638SSascha Wildner.Sx \&B .
68880387638SSascha Wildner.Ss \&RB
68980387638SSascha WildnerText is rendered alternately in roman (the default font) and bold face.
69080387638SSascha WildnerWhitespace between arguments is omitted in output.
69180387638SSascha Wildner.Pp
69280387638SSascha WildnerSee
69380387638SSascha Wildner.Sx \&BI
69480387638SSascha Wildnerfor an equivalent example.
69580387638SSascha Wildner.Pp
69680387638SSascha WildnerSee also
69780387638SSascha Wildner.Sx \&BI ,
69880387638SSascha Wildner.Sx \&IB ,
69980387638SSascha Wildner.Sx \&BR ,
70080387638SSascha Wildner.Sx \&RI ,
70180387638SSascha Wildnerand
70280387638SSascha Wildner.Sx \&IR .
70380387638SSascha Wildner.Ss \&RE
70480387638SSascha WildnerExplicitly close out the scope of a prior
70580387638SSascha Wildner.Sx \&RS .
70680387638SSascha Wildner.Ss \&RI
70780387638SSascha WildnerText is rendered alternately in roman (the default font) and italics.
70880387638SSascha WildnerWhitespace between arguments is omitted in output.
70980387638SSascha Wildner.Pp
71080387638SSascha WildnerSee
71180387638SSascha Wildner.Sx \&BI
71280387638SSascha Wildnerfor an equivalent example.
71380387638SSascha Wildner.Pp
71480387638SSascha WildnerSee also
71580387638SSascha Wildner.Sx \&BI ,
71680387638SSascha Wildner.Sx \&IB ,
71780387638SSascha Wildner.Sx \&BR ,
71880387638SSascha Wildner.Sx \&RB ,
71980387638SSascha Wildnerand
72080387638SSascha Wildner.Sx \&IR .
72180387638SSascha Wildner.Ss \&RS
72280387638SSascha WildnerBegin a part setting the left margin.
72380387638SSascha WildnerThe left margin controls the offset, following an initial indentation,
72480387638SSascha Wildnerto un-indented text such as that of
72580387638SSascha Wildner.Sx \&PP .
72680387638SSascha WildnerThis has the following syntax:
72780387638SSascha Wildner.Bd -filled -offset indent
72880387638SSascha Wildner.Pf \. Sx \&Rs
72980387638SSascha Wildner.Op Cm width
73080387638SSascha Wildner.Ed
73180387638SSascha Wildner.Pp
73280387638SSascha WildnerThe
73380387638SSascha Wildner.Cm width
73480387638SSascha Wildnerargument must conform to
73580387638SSascha Wildner.Sx Scaling Widths .
73680387638SSascha WildnerIf not specified, the saved or default width is used.
73780387638SSascha Wildner.Ss \&SB
73880387638SSascha WildnerText is rendered in small size (one point smaller than the default font)
73980387638SSascha Wildnerbold face.
74080387638SSascha Wildner.Ss \&SH
74180387638SSascha WildnerBegin a section.
74280387638SSascha WildnerThe scope of a section is only closed by another section or the end of
74380387638SSascha Wildnerfile.
74480387638SSascha WildnerThe paragraph left-margin width is reset to the default.
74580387638SSascha Wildner.Ss \&SM
74680387638SSascha WildnerText is rendered in small size (one point smaller than the default
74780387638SSascha Wildnerfont).
74880387638SSascha Wildner.Ss \&SS
74980387638SSascha WildnerBegin a sub-section.
75080387638SSascha WildnerThe scope of a sub-section is closed by a subsequent sub-section,
75180387638SSascha Wildnersection, or end of file.
75280387638SSascha WildnerThe paragraph left-margin width is reset to the default.
75380387638SSascha Wildner.Ss \&TH
75480387638SSascha WildnerSets the title of the manual page with the following syntax:
75580387638SSascha Wildner.Bd -filled -offset indent
75680387638SSascha Wildner.Pf \. Sx \&TH
757*60e1e752SSascha Wildner.Ar title section date
758*60e1e752SSascha Wildner.Op Ar source Op Ar volume
75980387638SSascha Wildner.Ed
76080387638SSascha Wildner.Pp
761*60e1e752SSascha WildnerConventionally, the document
762*60e1e752SSascha Wildner.Ar title
763*60e1e752SSascha Wildneris given in all caps.
764*60e1e752SSascha WildnerThe recommended
765*60e1e752SSascha Wildner.Ar date
766*60e1e752SSascha Wildnerformat is
767*60e1e752SSascha Wildner.Sy YYYY-MM-DD
768*60e1e752SSascha Wildneras specified in the ISO-8601 standard;
769*60e1e752SSascha Wildnerif the argument does not conform, it is printed verbatim.
770*60e1e752SSascha WildnerIf the
771*60e1e752SSascha Wildner.Ar date
772*60e1e752SSascha Wildneris empty or not specified, the current date is used.
773*60e1e752SSascha WildnerThe optional
774*60e1e752SSascha Wildner.Ar source
77580387638SSascha Wildnerstring specifies the organisation providing the utility.
77680387638SSascha WildnerThe
777*60e1e752SSascha Wildner.Ar volume
77880387638SSascha Wildnerstring replaces the default rendered volume, which is dictated by the
77980387638SSascha Wildnermanual section.
78080387638SSascha Wildner.Pp
78180387638SSascha WildnerExamples:
78280387638SSascha Wildner.Pp
78380387638SSascha Wildner.Dl \&.TH CVS 5 "1992-02-12" GNU
78480387638SSascha Wildner.Ss \&TP
78580387638SSascha WildnerBegin a paragraph where the head, if exceeding the indentation width, is
78680387638SSascha Wildnerfollowed by a newline; if not, the body follows on the same line after a
78780387638SSascha Wildnerbuffer to the indentation width.
78880387638SSascha WildnerSubsequent output lines are indented.
78980387638SSascha WildnerThe syntax is as follows:
79080387638SSascha Wildner.Bd -filled -offset indent
79180387638SSascha Wildner.Pf \. Sx \&TP
79280387638SSascha Wildner.Op Cm width
79380387638SSascha Wildner.Ed
79480387638SSascha Wildner.Pp
79580387638SSascha WildnerThe
79680387638SSascha Wildner.Cm width
79780387638SSascha Wildnerargument must conform to
79880387638SSascha Wildner.Sx Scaling Widths .
79980387638SSascha WildnerIf specified, it's saved for later paragraph left-margins; if
80080387638SSascha Wildnerunspecified, the saved or default width is used.
80180387638SSascha Wildner.Pp
80280387638SSascha WildnerSee also
80380387638SSascha Wildner.Sx \&HP ,
80480387638SSascha Wildner.Sx \&IP ,
80580387638SSascha Wildner.Sx \&LP ,
80680387638SSascha Wildner.Sx \&P ,
80780387638SSascha Wildnerand
80880387638SSascha Wildner.Sx \&PP .
80980387638SSascha Wildner.Ss \&UC
81080387638SSascha WildnerSets the volume for the footer for compatibility with man pages from
81180387638SSascha WildnerBSD releases.
81280387638SSascha WildnerThe optional first argument specifies which release it is from.
81380387638SSascha Wildner.Ss \&br
81480387638SSascha WildnerBreaks the current line.
81580387638SSascha WildnerConsecutive invocations have no further effect.
81680387638SSascha Wildner.Pp
81780387638SSascha WildnerSee also
81880387638SSascha Wildner.Sx \&sp .
81980387638SSascha Wildner.Ss \&fi
82080387638SSascha WildnerEnd literal mode begun by
82180387638SSascha Wildner.Sx \&nf .
82280387638SSascha Wildner.Ss \&ft
82380387638SSascha WildnerChange the current font mode.
82480387638SSascha WildnerSee
82580387638SSascha Wildner.Sx Text Decoration
82680387638SSascha Wildnerfor a listing of available font modes.
82780387638SSascha Wildner.Ss \&in
82880387638SSascha WildnerIndent relative to the current indentation:
82980387638SSascha Wildner.Pp
83080387638SSascha Wildner.D1 Pf \. Sx \&in Op Cm width
83180387638SSascha Wildner.Pp
83280387638SSascha WildnerIf
83380387638SSascha Wildner.Cm width
83480387638SSascha Wildneris signed, the new offset is relative.
83580387638SSascha WildnerOtherwise, it is absolute.
83680387638SSascha WildnerThis value is reset upon the next paragraph, section, or sub-section.
83780387638SSascha Wildner.Ss \&na
83880387638SSascha WildnerDon't align to the right margin.
83980387638SSascha Wildner.Ss \&nf
84080387638SSascha WildnerBegin literal mode: all subsequent free-form lines have their end of
84180387638SSascha Wildnerline boundaries preserved.
84280387638SSascha WildnerMay be ended by
84380387638SSascha Wildner.Sx \&fi .
84480387638SSascha Wildner.Ss \&sp
84580387638SSascha WildnerInsert vertical spaces into output with the following syntax:
84680387638SSascha Wildner.Bd -filled -offset indent
84780387638SSascha Wildner.Pf \. Sx \&sp
84880387638SSascha Wildner.Op Cm height
84980387638SSascha Wildner.Ed
85080387638SSascha Wildner.Pp
85180387638SSascha WildnerInsert
85280387638SSascha Wildner.Cm height
85380387638SSascha Wildnerspaces, which must conform to
85480387638SSascha Wildner.Sx Scaling Widths .
85580387638SSascha WildnerIf 0, this is equivalent to the
85680387638SSascha Wildner.Sx \&br
85780387638SSascha Wildnermacro.
85880387638SSascha WildnerDefaults to 1, if unspecified.
85980387638SSascha Wildner.Pp
86080387638SSascha WildnerSee also
86180387638SSascha Wildner.Sx \&br .
86280387638SSascha Wildner.Sh COMPATIBILITY
86380387638SSascha WildnerThis section documents areas of questionable portability between
86480387638SSascha Wildnerimplementations of the
86580387638SSascha Wildner.Nm
86680387638SSascha Wildnerlanguage.
86780387638SSascha Wildner.Pp
86880387638SSascha Wildner.Bl -dash -compact
86980387638SSascha Wildner.It
87080387638SSascha WildnerIn quoted literals, GNU troff allowed pair-wise double-quotes to produce
87180387638SSascha Wildnera standalone double-quote in formatted output.
87280387638SSascha WildnerIt is not known whether this behaviour is exhibited by other formatters.
87380387638SSascha Wildner.It
87480387638SSascha Wildnertroff suppresses a newline before
87580387638SSascha Wildner.Sq \(aq
87680387638SSascha Wildnermacro output; in mandoc, it is an alias for the standard
87780387638SSascha Wildner.Sq \&.
87880387638SSascha Wildnercontrol character.
87980387638SSascha Wildner.It
88080387638SSascha WildnerThe
88180387638SSascha Wildner.Sq \eh
88280387638SSascha Wildner.Pq horizontal position ,
88380387638SSascha Wildner.Sq \ev
88480387638SSascha Wildner.Pq vertical position ,
88580387638SSascha Wildner.Sq \em
88680387638SSascha Wildner.Pq text colour ,
88780387638SSascha Wildner.Sq \eM
88880387638SSascha Wildner.Pq text filling colour ,
88980387638SSascha Wildner.Sq \ez
89080387638SSascha Wildner.Pq zero-length character ,
89180387638SSascha Wildner.Sq \ew
89280387638SSascha Wildner.Pq string length ,
89380387638SSascha Wildner.Sq \ek
89480387638SSascha Wildner.Pq horizontal position marker ,
89580387638SSascha Wildner.Sq \eo
89680387638SSascha Wildner.Pq text overstrike ,
89780387638SSascha Wildnerand
89880387638SSascha Wildner.Sq \es
89980387638SSascha Wildner.Pq text size
90080387638SSascha Wildnerescape sequences are all discarded in mandoc.
90180387638SSascha Wildner.It
90280387638SSascha WildnerThe
90380387638SSascha Wildner.Sq \ef
90480387638SSascha Wildnerscaling unit is accepted by mandoc, but rendered as the default unit.
90580387638SSascha Wildner.It
90680387638SSascha WildnerThe
90780387638SSascha Wildner.Sx \&sp
90880387638SSascha Wildnermacro does not accept negative values in mandoc.
90980387638SSascha WildnerIn GNU troff, this would result in strange behaviour.
91080387638SSascha Wildner.El
91180387638SSascha Wildner.Sh SEE ALSO
91280387638SSascha Wildner.Xr man 1 ,
91380387638SSascha Wildner.Xr mandoc 1 ,
914*60e1e752SSascha Wildner.Xr eqn 7 ,
91580387638SSascha Wildner.Xr mandoc_char 7 ,
91680387638SSascha Wildner.Xr mdoc 7 ,
91780387638SSascha Wildner.Xr roff 7 ,
91880387638SSascha Wildner.Xr tbl 7
91980387638SSascha Wildner.Sh HISTORY
92080387638SSascha WildnerThe
92180387638SSascha Wildner.Nm
92280387638SSascha Wildnerlanguage first appeared as a macro package for the roff typesetting
92380387638SSascha Wildnersystem in
92480387638SSascha Wildner.At v7 .
92580387638SSascha WildnerIt was later rewritten by James Clark as a macro package for groff.
92680387638SSascha WildnerThe stand-alone implementation that is part of the
92780387638SSascha Wildner.Xr mandoc 1
92880387638SSascha Wildnerutility written by Kristaps Dzonsons appeared in
92980387638SSascha Wildner.Ox 4.6 .
93080387638SSascha Wildner.Sh AUTHORS
93180387638SSascha WildnerThis
93280387638SSascha Wildner.Nm
93380387638SSascha Wildnerreference was written by
93480387638SSascha Wildner.An Kristaps Dzonsons Aq kristaps@bsd.lv .
93580387638SSascha Wildner.Sh CAVEATS
93680387638SSascha WildnerDo not use this language.
93780387638SSascha WildnerUse
93880387638SSascha Wildner.Xr mdoc 7 ,
93980387638SSascha Wildnerinstead.
940