xref: /minix3/external/bsd/mdocml/dist/man.7 (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc.\"	Id: man.7,v 1.121 2013/12/31 15:17:51 schwarze Exp
2d65f6f70SBen Gras.\"
3*0a6a1f1dSLionel Sambuc.\" Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
4*0a6a1f1dSLionel Sambuc.\" Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
5d65f6f70SBen Gras.\"
6d65f6f70SBen Gras.\" Permission to use, copy, modify, and distribute this software for any
7d65f6f70SBen Gras.\" purpose with or without fee is hereby granted, provided that the above
8d65f6f70SBen Gras.\" copyright notice and this permission notice appear in all copies.
9d65f6f70SBen Gras.\"
10d65f6f70SBen Gras.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11d65f6f70SBen Gras.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12d65f6f70SBen Gras.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13d65f6f70SBen Gras.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14d65f6f70SBen Gras.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15d65f6f70SBen Gras.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16d65f6f70SBen Gras.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17d65f6f70SBen Gras.\"
18*0a6a1f1dSLionel Sambuc.Dd December 31, 2013
19d65f6f70SBen Gras.Dt MAN 7
20d65f6f70SBen Gras.Os
21d65f6f70SBen Gras.Sh NAME
22d65f6f70SBen Gras.Nm man
2392395e9cSLionel Sambuc.Nd legacy formatting language for manual pages
24d65f6f70SBen Gras.Sh DESCRIPTION
2592395e9cSLionel SambucTraditionally, the
26d65f6f70SBen Gras.Nm man
2792395e9cSLionel Sambuclanguage has been used to write
28d65f6f70SBen Gras.Ux
2992395e9cSLionel Sambucmanuals for the
3092395e9cSLionel Sambuc.Xr man 1
3192395e9cSLionel Sambucutility.
3292395e9cSLionel SambucIt supports limited control of presentational details like fonts,
3392395e9cSLionel Sambucindentation and spacing.
3492395e9cSLionel SambucThis reference document describes the structure of manual pages
3592395e9cSLionel Sambucand the syntax and usage of the man language.
36d65f6f70SBen Gras.Pp
37d65f6f70SBen Gras.Bf -emphasis
38d65f6f70SBen GrasDo not use
39d65f6f70SBen Gras.Nm
4092395e9cSLionel Sambucto write your manuals:
41d65f6f70SBen Gras.Ef
4292395e9cSLionel SambucIt lacks support for semantic markup.
43d65f6f70SBen GrasUse the
44d65f6f70SBen Gras.Xr mdoc 7
45d65f6f70SBen Graslanguage, instead.
46d65f6f70SBen Gras.Pp
4792395e9cSLionel SambucIn a
48d65f6f70SBen Gras.Nm
4992395e9cSLionel Sambucdocument, lines beginning with the control character
50d65f6f70SBen Gras.Sq \&.
5192395e9cSLionel Sambucare called
5292395e9cSLionel Sambuc.Dq macro lines .
5392395e9cSLionel SambucThe first word is the macro name.
5492395e9cSLionel SambucIt usually consists of two capital letters.
5592395e9cSLionel SambucFor a list of available macros, see
5692395e9cSLionel Sambuc.Sx MACRO OVERVIEW .
5792395e9cSLionel SambucThe words following the macro name are arguments to the macro.
5892395e9cSLionel Sambuc.Pp
5992395e9cSLionel SambucLines not beginning with the control character are called
6092395e9cSLionel Sambuc.Dq text lines .
6192395e9cSLionel SambucThey provide free-form text to be printed; the formatting of the text
6292395e9cSLionel Sambucdepends on the respective processing context:
63d65f6f70SBen Gras.Bd -literal -offset indent
64d65f6f70SBen Gras\&.SH Macro lines change control state.
6592395e9cSLionel SambucText lines are interpreted within the current state.
66d65f6f70SBen Gras.Ed
67d65f6f70SBen Gras.Pp
6892395e9cSLionel SambucMany aspects of the basic syntax of the
6992395e9cSLionel Sambuc.Nm
7092395e9cSLionel Sambuclanguage are based on the
7192395e9cSLionel Sambuc.Xr roff 7
7292395e9cSLionel Sambuclanguage; see the
7392395e9cSLionel Sambuc.Em LANGUAGE SYNTAX
74d65f6f70SBen Grasand
7592395e9cSLionel Sambuc.Em MACRO SYNTAX
7692395e9cSLionel Sambucsections in the
7792395e9cSLionel Sambuc.Xr roff 7
7892395e9cSLionel Sambucmanual for details, in particular regarding
7992395e9cSLionel Sambuccomments, escape sequences, whitespace, and quoting.
80d65f6f70SBen Gras.Sh MANUAL STRUCTURE
81d65f6f70SBen GrasEach
82d65f6f70SBen Gras.Nm
83d65f6f70SBen Grasdocument must contain the
84d65f6f70SBen Gras.Sx \&TH
85d65f6f70SBen Grasmacro describing the document's section and title.
86d65f6f70SBen GrasIt may occur anywhere in the document, although conventionally it
87d65f6f70SBen Grasappears as the first macro.
88d65f6f70SBen Gras.Pp
89d65f6f70SBen GrasBeyond
90d65f6f70SBen Gras.Sx \&TH ,
9192395e9cSLionel Sambucat least one macro or text line must appear in the document.
9292395e9cSLionel Sambuc.Pp
9392395e9cSLionel SambucThe following is a well-formed skeleton
9492395e9cSLionel Sambuc.Nm
9592395e9cSLionel Sambucfile for a utility
9692395e9cSLionel Sambuc.Qq progname :
97d65f6f70SBen Gras.Bd -literal -offset indent
9892395e9cSLionel Sambuc\&.TH PROGNAME 1 2009-10-10
99d65f6f70SBen Gras\&.SH NAME
10092395e9cSLionel Sambuc\efBprogname\efR \e(en a description goes here
10192395e9cSLionel Sambuc\&.\e\(dq .SH LIBRARY
10292395e9cSLionel Sambuc\&.\e\(dq For sections 2 & 3 only.
10392395e9cSLionel Sambuc\&.\e\(dq Not used in OpenBSD.
104d65f6f70SBen Gras\&.SH SYNOPSIS
10592395e9cSLionel Sambuc\efBprogname\efR [\efB\e-options\efR] arguments...
106d65f6f70SBen Gras\&.SH DESCRIPTION
107d65f6f70SBen GrasThe \efBfoo\efR utility processes files...
10892395e9cSLionel Sambuc\&.\e\(dq .SH IMPLEMENTATION NOTES
10992395e9cSLionel Sambuc\&.\e\(dq Not used in OpenBSD.
11092395e9cSLionel Sambuc\&.\e\(dq .SH RETURN VALUES
11192395e9cSLionel Sambuc\&.\e\(dq For sections 2, 3, & 9 only.
11292395e9cSLionel Sambuc\&.\e\(dq .SH ENVIRONMENT
11392395e9cSLionel Sambuc\&.\e\(dq For sections 1, 6, 7, & 8 only.
11492395e9cSLionel Sambuc\&.\e\(dq .SH FILES
11592395e9cSLionel Sambuc\&.\e\(dq .SH EXIT STATUS
11692395e9cSLionel Sambuc\&.\e\(dq For sections 1, 6, & 8 only.
11792395e9cSLionel Sambuc\&.\e\(dq .SH EXAMPLES
11892395e9cSLionel Sambuc\&.\e\(dq .SH DIAGNOSTICS
11992395e9cSLionel Sambuc\&.\e\(dq For sections 1, 4, 6, 7, & 8 only.
12092395e9cSLionel Sambuc\&.\e\(dq .SH ERRORS
12192395e9cSLionel Sambuc\&.\e\(dq For sections 2, 3, & 9 only.
12292395e9cSLionel Sambuc\&.\e\(dq .SH SEE ALSO
12392395e9cSLionel Sambuc\&.\e\(dq .BR foo ( 1 )
12492395e9cSLionel Sambuc\&.\e\(dq .SH STANDARDS
12592395e9cSLionel Sambuc\&.\e\(dq .SH HISTORY
12692395e9cSLionel Sambuc\&.\e\(dq .SH AUTHORS
12792395e9cSLionel Sambuc\&.\e\(dq .SH CAVEATS
12892395e9cSLionel Sambuc\&.\e\(dq .SH BUGS
12992395e9cSLionel Sambuc\&.\e\(dq .SH SECURITY CONSIDERATIONS
13092395e9cSLionel Sambuc\&.\e\(dq Not used in OpenBSD.
131d65f6f70SBen Gras.Ed
132d65f6f70SBen Gras.Pp
133d65f6f70SBen GrasThe sections in a
134d65f6f70SBen Gras.Nm
135d65f6f70SBen Grasdocument are conventionally ordered as they appear above.
136d65f6f70SBen GrasSections should be composed as follows:
137d65f6f70SBen Gras.Bl -ohang -offset indent
138d65f6f70SBen Gras.It Em NAME
139d65f6f70SBen GrasThe name(s) and a short description of the documented material.
140d65f6f70SBen GrasThe syntax for this is generally as follows:
141d65f6f70SBen Gras.Pp
142d65f6f70SBen Gras.D1 \efBname\efR \e(en description
143d65f6f70SBen Gras.It Em LIBRARY
144d65f6f70SBen GrasThe name of the library containing the documented material, which is
145d65f6f70SBen Grasassumed to be a function in a section 2 or 3 manual.
146d65f6f70SBen GrasFor functions in the C library, this may be as follows:
147d65f6f70SBen Gras.Pp
148d65f6f70SBen Gras.D1 Standard C Library (libc, -lc)
149d65f6f70SBen Gras.It Em SYNOPSIS
150d65f6f70SBen GrasDocuments the utility invocation syntax, function call syntax, or device
151d65f6f70SBen Grasconfiguration.
152d65f6f70SBen Gras.Pp
153d65f6f70SBen GrasFor the first, utilities (sections 1, 6, and 8), this is
154d65f6f70SBen Grasgenerally structured as follows:
155d65f6f70SBen Gras.Pp
156d65f6f70SBen Gras.D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
157d65f6f70SBen Gras.Pp
158d65f6f70SBen GrasFor the second, function calls (sections 2, 3, 9):
159d65f6f70SBen Gras.Pp
160d65f6f70SBen Gras.D1 \&.B char *name(char *\efIarg\efR);
161d65f6f70SBen Gras.Pp
162d65f6f70SBen GrasAnd for the third, configurations (section 4):
163d65f6f70SBen Gras.Pp
164d65f6f70SBen Gras.D1 \&.B name* at cardbus ? function ?
165d65f6f70SBen Gras.Pp
166d65f6f70SBen GrasManuals not in these sections generally don't need a
167d65f6f70SBen Gras.Em SYNOPSIS .
168d65f6f70SBen Gras.It Em DESCRIPTION
169d65f6f70SBen GrasThis expands upon the brief, one-line description in
170d65f6f70SBen Gras.Em NAME .
171d65f6f70SBen GrasIt usually contains a break-down of the options (if documenting a
172d65f6f70SBen Grascommand).
173d65f6f70SBen Gras.It Em IMPLEMENTATION NOTES
174d65f6f70SBen GrasImplementation-specific notes should be kept here.
175d65f6f70SBen GrasThis is useful when implementing standard functions that may have side
176d65f6f70SBen Graseffects or notable algorithmic implications.
177d65f6f70SBen Gras.It Em RETURN VALUES
178d65f6f70SBen GrasThis section documents the return values of functions in sections 2, 3, and 9.
179d65f6f70SBen Gras.It Em ENVIRONMENT
180d65f6f70SBen GrasDocuments any usages of environment variables, e.g.,
181d65f6f70SBen Gras.Xr environ 7 .
182d65f6f70SBen Gras.It Em FILES
183d65f6f70SBen GrasDocuments files used.
184d65f6f70SBen GrasIt's helpful to document both the file name and a short description of how
185d65f6f70SBen Grasthe file is used (created, modified, etc.).
186d65f6f70SBen Gras.It Em EXIT STATUS
187d65f6f70SBen GrasThis section documents the command exit status for
188d65f6f70SBen Grassection 1, 6, and 8 utilities.
189d65f6f70SBen GrasHistorically, this information was described in
190d65f6f70SBen Gras.Em DIAGNOSTICS ,
191d65f6f70SBen Grasa practise that is now discouraged.
192d65f6f70SBen Gras.It Em EXAMPLES
193d65f6f70SBen GrasExample usages.
194d65f6f70SBen GrasThis often contains snippets of well-formed,
195d65f6f70SBen Graswell-tested invocations.
196d65f6f70SBen GrasMake sure that examples work properly!
197d65f6f70SBen Gras.It Em DIAGNOSTICS
198d65f6f70SBen GrasDocuments error conditions.
199d65f6f70SBen GrasThis is most useful in section 4 manuals.
200d65f6f70SBen GrasHistorically, this section was used in place of
201d65f6f70SBen Gras.Em EXIT STATUS
202d65f6f70SBen Grasfor manuals in sections 1, 6, and 8; however, this practise is
203d65f6f70SBen Grasdiscouraged.
204d65f6f70SBen Gras.It Em ERRORS
205d65f6f70SBen GrasDocuments error handling in sections 2, 3, and 9.
206d65f6f70SBen Gras.It Em SEE ALSO
207d65f6f70SBen GrasReferences other manuals with related topics.
208d65f6f70SBen GrasThis section should exist for most manuals.
209d65f6f70SBen Gras.Pp
210d65f6f70SBen Gras.D1 \&.BR bar \&( 1 \&),
211d65f6f70SBen Gras.Pp
212d65f6f70SBen GrasCross-references should conventionally be ordered
213d65f6f70SBen Grasfirst by section, then alphabetically.
214d65f6f70SBen Gras.It Em STANDARDS
215d65f6f70SBen GrasReferences any standards implemented or used, such as
216d65f6f70SBen Gras.Pp
217d65f6f70SBen Gras.D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
218d65f6f70SBen Gras.Pp
219d65f6f70SBen GrasIf not adhering to any standards, the
220d65f6f70SBen Gras.Em HISTORY
221d65f6f70SBen Grassection should be used.
222d65f6f70SBen Gras.It Em HISTORY
223d65f6f70SBen GrasA brief history of the subject, including where support first appeared.
224d65f6f70SBen Gras.It Em AUTHORS
225d65f6f70SBen GrasCredits to the person or persons who wrote the code and/or documentation.
226d65f6f70SBen GrasAuthors should generally be noted by both name and email address.
227d65f6f70SBen Gras.It Em CAVEATS
228d65f6f70SBen GrasCommon misuses and misunderstandings should be explained
229d65f6f70SBen Grasin this section.
230d65f6f70SBen Gras.It Em BUGS
231d65f6f70SBen GrasKnown bugs, limitations, and work-arounds should be described
232d65f6f70SBen Grasin this section.
233d65f6f70SBen Gras.It Em SECURITY CONSIDERATIONS
234d65f6f70SBen GrasDocuments any security precautions that operators should consider.
235d65f6f70SBen Gras.El
23692395e9cSLionel Sambuc.Sh MACRO OVERVIEW
23792395e9cSLionel SambucThis overview is sorted such that macros of similar purpose are listed
23892395e9cSLionel Sambuctogether, to help find the best macro for any given purpose.
23992395e9cSLionel SambucDeprecated macros are not included in the overview, but can be found
24092395e9cSLionel Sambucin the alphabetical reference below.
24192395e9cSLionel Sambuc.Ss Page header and footer meta-data
24292395e9cSLionel Sambuc.Bl -column "PP, LP, P" description
24392395e9cSLionel Sambuc.It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
24492395e9cSLionel Sambuc.It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
24592395e9cSLionel Sambuc.It Sx UC Ta display BSD version in the page footer (<= 1 argument)
246d65f6f70SBen Gras.El
24792395e9cSLionel Sambuc.Ss Sections and paragraphs
24892395e9cSLionel Sambuc.Bl -column "PP, LP, P" description
24992395e9cSLionel Sambuc.It Sx SH Ta section header (one line)
25092395e9cSLionel Sambuc.It Sx SS Ta subsection header (one line)
25192395e9cSLionel Sambuc.It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
25292395e9cSLionel Sambuc.It Sx RS , RE Ta reset the left margin: Op Ar width
25392395e9cSLionel Sambuc.It Sx IP Ta indented paragraph: Op Ar head Op Ar width
25492395e9cSLionel Sambuc.It Sx TP Ta tagged paragraph: Op Ar width
25592395e9cSLionel Sambuc.It Sx HP Ta hanged paragraph: Op Ar width
256*0a6a1f1dSLionel Sambuc.It Sx PD Ta set vertical paragraph distance: Op Ar height
25792395e9cSLionel Sambuc.It Sx \&br Ta force output line break in text mode (no arguments)
25892395e9cSLionel Sambuc.It Sx \&sp Ta force vertical space: Op Ar height
25992395e9cSLionel Sambuc.It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
26092395e9cSLionel Sambuc.It Sx in Ta additional indent: Op Ar width
261d65f6f70SBen Gras.El
26292395e9cSLionel Sambuc.Ss Physical markup
26392395e9cSLionel Sambuc.Bl -column "PP, LP, P" description
26492395e9cSLionel Sambuc.It Sx B Ta boldface font
26592395e9cSLionel Sambuc.It Sx I Ta italic font
26692395e9cSLionel Sambuc.It Sx R Ta roman (default) font
26792395e9cSLionel Sambuc.It Sx SB Ta small boldface font
26892395e9cSLionel Sambuc.It Sx SM Ta small roman font
26992395e9cSLionel Sambuc.It Sx BI Ta alternate between boldface and italic fonts
27092395e9cSLionel Sambuc.It Sx BR Ta alternate between boldface and roman fonts
27192395e9cSLionel Sambuc.It Sx IB Ta alternate between italic and boldface fonts
27292395e9cSLionel Sambuc.It Sx IR Ta alternate between italic and roman fonts
27392395e9cSLionel Sambuc.It Sx RB Ta alternate between roman and boldface fonts
27492395e9cSLionel Sambuc.It Sx RI Ta alternate between roman and italic fonts
27592395e9cSLionel Sambuc.El
27692395e9cSLionel Sambuc.Sh MACRO REFERENCE
277d65f6f70SBen GrasThis section is a canonical reference to all macros, arranged
278d65f6f70SBen Grasalphabetically.
279d65f6f70SBen GrasFor the scoping of individual macros, see
280d65f6f70SBen Gras.Sx MACRO SYNTAX .
281d65f6f70SBen Gras.Ss \&AT
282d65f6f70SBen GrasSets the volume for the footer for compatibility with man pages from
283d65f6f70SBen Gras.Tn AT&T UNIX
284d65f6f70SBen Grasreleases.
285d65f6f70SBen GrasThe optional arguments specify which release it is from.
286d65f6f70SBen Gras.Ss \&B
287d65f6f70SBen GrasText is rendered in bold face.
288d65f6f70SBen Gras.Pp
289d65f6f70SBen GrasSee also
290d65f6f70SBen Gras.Sx \&I
291d65f6f70SBen Grasand
292d65f6f70SBen Gras.Sx \&R .
293d65f6f70SBen Gras.Ss \&BI
294d65f6f70SBen GrasText is rendered alternately in bold face and italic.
295d65f6f70SBen GrasThus,
296d65f6f70SBen Gras.Sq .BI this word and that
297d65f6f70SBen Grascauses
298d65f6f70SBen Gras.Sq this
299d65f6f70SBen Grasand
300d65f6f70SBen Gras.Sq and
301d65f6f70SBen Grasto render in bold face, while
302d65f6f70SBen Gras.Sq word
303d65f6f70SBen Grasand
304d65f6f70SBen Gras.Sq that
305d65f6f70SBen Grasrender in italics.
306d65f6f70SBen GrasWhitespace between arguments is omitted in output.
307d65f6f70SBen Gras.Pp
308d65f6f70SBen GrasExamples:
309d65f6f70SBen Gras.Pp
310d65f6f70SBen Gras.Dl \&.BI bold italic bold italic
311d65f6f70SBen Gras.Pp
312d65f6f70SBen GrasThe output of this example will be emboldened
313d65f6f70SBen Gras.Dq bold
314d65f6f70SBen Grasand italicised
315d65f6f70SBen Gras.Dq italic ,
316d65f6f70SBen Graswith spaces stripped between arguments.
317d65f6f70SBen Gras.Pp
318d65f6f70SBen GrasSee also
319d65f6f70SBen Gras.Sx \&IB ,
320d65f6f70SBen Gras.Sx \&BR ,
321d65f6f70SBen Gras.Sx \&RB ,
322d65f6f70SBen Gras.Sx \&RI ,
323d65f6f70SBen Grasand
324d65f6f70SBen Gras.Sx \&IR .
325d65f6f70SBen Gras.Ss \&BR
326d65f6f70SBen GrasText is rendered alternately in bold face and roman (the default font).
327d65f6f70SBen GrasWhitespace between arguments is omitted in output.
328d65f6f70SBen Gras.Pp
329d65f6f70SBen GrasSee
330d65f6f70SBen Gras.Sx \&BI
331d65f6f70SBen Grasfor an equivalent example.
332d65f6f70SBen Gras.Pp
333d65f6f70SBen GrasSee also
334d65f6f70SBen Gras.Sx \&BI ,
335d65f6f70SBen Gras.Sx \&IB ,
336d65f6f70SBen Gras.Sx \&RB ,
337d65f6f70SBen Gras.Sx \&RI ,
338d65f6f70SBen Grasand
339d65f6f70SBen Gras.Sx \&IR .
340d65f6f70SBen Gras.Ss \&DT
341d65f6f70SBen GrasHas no effect.
342d65f6f70SBen GrasIncluded for compatibility.
343*0a6a1f1dSLionel Sambuc.Ss \&EE
344*0a6a1f1dSLionel SambucThis is a non-standard GNU extension, included only for compatibility.
345*0a6a1f1dSLionel SambucIn
346*0a6a1f1dSLionel Sambuc.Xr mandoc 1 ,
347*0a6a1f1dSLionel Sambucit does the same as
348*0a6a1f1dSLionel Sambuc.Sx \&fi .
349*0a6a1f1dSLionel Sambuc.Ss \&EX
350*0a6a1f1dSLionel SambucThis is a non-standard GNU extension, included only for compatibility.
351*0a6a1f1dSLionel SambucIn
352*0a6a1f1dSLionel Sambuc.Xr mandoc 1 ,
353*0a6a1f1dSLionel Sambucit does the same as
354*0a6a1f1dSLionel Sambuc.Sx \&nf .
355d65f6f70SBen Gras.Ss \&HP
356d65f6f70SBen GrasBegin a paragraph whose initial output line is left-justified, but
357d65f6f70SBen Grassubsequent output lines are indented, with the following syntax:
358d65f6f70SBen Gras.Bd -filled -offset indent
359d65f6f70SBen Gras.Pf \. Sx \&HP
360d65f6f70SBen Gras.Op Cm width
361d65f6f70SBen Gras.Ed
362d65f6f70SBen Gras.Pp
363d65f6f70SBen GrasThe
364d65f6f70SBen Gras.Cm width
365*0a6a1f1dSLionel Sambucargument is a
366*0a6a1f1dSLionel Sambuc.Xr roff 7
367*0a6a1f1dSLionel Sambucscaling width.
368d65f6f70SBen GrasIf specified, it's saved for later paragraph left-margins; if unspecified, the
369d65f6f70SBen Grassaved or default width is used.
370d65f6f70SBen Gras.Pp
371d65f6f70SBen GrasSee also
372d65f6f70SBen Gras.Sx \&IP ,
373d65f6f70SBen Gras.Sx \&LP ,
374d65f6f70SBen Gras.Sx \&P ,
375d65f6f70SBen Gras.Sx \&PP ,
376d65f6f70SBen Grasand
377d65f6f70SBen Gras.Sx \&TP .
378d65f6f70SBen Gras.Ss \&I
379d65f6f70SBen GrasText is rendered in italics.
380d65f6f70SBen Gras.Pp
381d65f6f70SBen GrasSee also
382d65f6f70SBen Gras.Sx \&B
383d65f6f70SBen Grasand
384d65f6f70SBen Gras.Sx \&R .
385d65f6f70SBen Gras.Ss \&IB
386d65f6f70SBen GrasText is rendered alternately in italics and bold face.
387d65f6f70SBen GrasWhitespace between arguments is omitted in output.
388d65f6f70SBen Gras.Pp
389d65f6f70SBen GrasSee
390d65f6f70SBen Gras.Sx \&BI
391d65f6f70SBen Grasfor an equivalent example.
392d65f6f70SBen Gras.Pp
393d65f6f70SBen GrasSee also
394d65f6f70SBen Gras.Sx \&BI ,
395d65f6f70SBen Gras.Sx \&BR ,
396d65f6f70SBen Gras.Sx \&RB ,
397d65f6f70SBen Gras.Sx \&RI ,
398d65f6f70SBen Grasand
399d65f6f70SBen Gras.Sx \&IR .
400d65f6f70SBen Gras.Ss \&IP
401d65f6f70SBen GrasBegin an indented paragraph with the following syntax:
402d65f6f70SBen Gras.Bd -filled -offset indent
403d65f6f70SBen Gras.Pf \. Sx \&IP
404d65f6f70SBen Gras.Op Cm head Op Cm width
405d65f6f70SBen Gras.Ed
406d65f6f70SBen Gras.Pp
407d65f6f70SBen GrasThe
408d65f6f70SBen Gras.Cm width
409*0a6a1f1dSLionel Sambucargument is a
410*0a6a1f1dSLionel Sambuc.Xr roff 7
411*0a6a1f1dSLionel Sambucscaling width defining the left margin.
412d65f6f70SBen GrasIt's saved for later paragraph left-margins; if unspecified, the saved or
413d65f6f70SBen Grasdefault width is used.
414d65f6f70SBen Gras.Pp
415d65f6f70SBen GrasThe
416d65f6f70SBen Gras.Cm head
417d65f6f70SBen Grasargument is used as a leading term, flushed to the left margin.
418d65f6f70SBen GrasThis is useful for bulleted paragraphs and so on.
419d65f6f70SBen Gras.Pp
420d65f6f70SBen GrasSee also
421d65f6f70SBen Gras.Sx \&HP ,
422d65f6f70SBen Gras.Sx \&LP ,
423d65f6f70SBen Gras.Sx \&P ,
424d65f6f70SBen Gras.Sx \&PP ,
425d65f6f70SBen Grasand
426d65f6f70SBen Gras.Sx \&TP .
427d65f6f70SBen Gras.Ss \&IR
428d65f6f70SBen GrasText is rendered alternately in italics and roman (the default font).
429d65f6f70SBen GrasWhitespace between arguments is omitted in output.
430d65f6f70SBen Gras.Pp
431d65f6f70SBen GrasSee
432d65f6f70SBen Gras.Sx \&BI
433d65f6f70SBen Grasfor an equivalent example.
434d65f6f70SBen Gras.Pp
435d65f6f70SBen GrasSee also
436d65f6f70SBen Gras.Sx \&BI ,
437d65f6f70SBen Gras.Sx \&IB ,
438d65f6f70SBen Gras.Sx \&BR ,
439d65f6f70SBen Gras.Sx \&RB ,
440d65f6f70SBen Grasand
441d65f6f70SBen Gras.Sx \&RI .
442d65f6f70SBen Gras.Ss \&LP
443d65f6f70SBen GrasBegin an undecorated paragraph.
444d65f6f70SBen GrasThe scope of a paragraph is closed by a subsequent paragraph,
445d65f6f70SBen Grassub-section, section, or end of file.
446d65f6f70SBen GrasThe saved paragraph left-margin width is reset to the default.
447d65f6f70SBen Gras.Pp
448d65f6f70SBen GrasSee also
449d65f6f70SBen Gras.Sx \&HP ,
450d65f6f70SBen Gras.Sx \&IP ,
451d65f6f70SBen Gras.Sx \&P ,
452d65f6f70SBen Gras.Sx \&PP ,
453d65f6f70SBen Grasand
454d65f6f70SBen Gras.Sx \&TP .
45592395e9cSLionel Sambuc.Ss \&OP
45692395e9cSLionel SambucOptional command-line argument.
457*0a6a1f1dSLionel SambucThis is a non-standard GNU extension, included only for compatibility.
458*0a6a1f1dSLionel SambucIt has the following syntax:
45992395e9cSLionel Sambuc.Bd -filled -offset indent
46092395e9cSLionel Sambuc.Pf \. Sx \&OP
46192395e9cSLionel Sambuc.Cm key Op Cm value
46292395e9cSLionel Sambuc.Ed
46392395e9cSLionel Sambuc.Pp
46492395e9cSLionel SambucThe
46592395e9cSLionel Sambuc.Cm key
46692395e9cSLionel Sambucis usually a command-line flag and
46792395e9cSLionel Sambuc.Cm value
46892395e9cSLionel Sambucits argument.
469d65f6f70SBen Gras.Ss \&P
470d65f6f70SBen GrasSynonym for
471d65f6f70SBen Gras.Sx \&LP .
472d65f6f70SBen Gras.Pp
473d65f6f70SBen GrasSee also
474d65f6f70SBen Gras.Sx \&HP ,
475d65f6f70SBen Gras.Sx \&IP ,
476d65f6f70SBen Gras.Sx \&LP ,
477d65f6f70SBen Gras.Sx \&PP ,
478d65f6f70SBen Grasand
479d65f6f70SBen Gras.Sx \&TP .
480*0a6a1f1dSLionel Sambuc.Ss \&PD
481*0a6a1f1dSLionel SambucSpecify the vertical space to be inserted before each new paragraph.
482*0a6a1f1dSLionel Sambuc.br
483*0a6a1f1dSLionel SambucThe syntax is as follows:
484*0a6a1f1dSLionel Sambuc.Bd -filled -offset indent
485*0a6a1f1dSLionel Sambuc.Pf \. Sx \&PD
486*0a6a1f1dSLionel Sambuc.Op Cm height
487*0a6a1f1dSLionel Sambuc.Ed
488*0a6a1f1dSLionel Sambuc.Pp
489*0a6a1f1dSLionel SambucThe
490*0a6a1f1dSLionel Sambuc.Cm height
491*0a6a1f1dSLionel Sambucargument is a
492*0a6a1f1dSLionel Sambuc.Xr roff 7
493*0a6a1f1dSLionel Sambucscaling width.
494*0a6a1f1dSLionel SambucIt defaults to
495*0a6a1f1dSLionel Sambuc.Cm 1v .
496*0a6a1f1dSLionel SambucIf the unit is omitted,
497*0a6a1f1dSLionel Sambuc.Cm v
498*0a6a1f1dSLionel Sambucis assumed.
499*0a6a1f1dSLionel Sambuc.Pp
500*0a6a1f1dSLionel SambucThis macro affects the spacing before any subsequent instances of
501*0a6a1f1dSLionel Sambuc.Sx \&HP ,
502*0a6a1f1dSLionel Sambuc.Sx \&IP ,
503*0a6a1f1dSLionel Sambuc.Sx \&LP ,
504*0a6a1f1dSLionel Sambuc.Sx \&P ,
505*0a6a1f1dSLionel Sambuc.Sx \&PP ,
506*0a6a1f1dSLionel Sambuc.Sx \&SH ,
507*0a6a1f1dSLionel Sambuc.Sx \&SS ,
508*0a6a1f1dSLionel Sambucand
509*0a6a1f1dSLionel Sambuc.Sx \&TP .
510d65f6f70SBen Gras.Ss \&PP
511d65f6f70SBen GrasSynonym for
512d65f6f70SBen Gras.Sx \&LP .
513d65f6f70SBen Gras.Pp
514d65f6f70SBen GrasSee also
515d65f6f70SBen Gras.Sx \&HP ,
516d65f6f70SBen Gras.Sx \&IP ,
517d65f6f70SBen Gras.Sx \&LP ,
518d65f6f70SBen Gras.Sx \&P ,
519d65f6f70SBen Grasand
520d65f6f70SBen Gras.Sx \&TP .
521d65f6f70SBen Gras.Ss \&R
522d65f6f70SBen GrasText is rendered in roman (the default font).
523d65f6f70SBen Gras.Pp
524d65f6f70SBen GrasSee also
525d65f6f70SBen Gras.Sx \&I
526d65f6f70SBen Grasand
527d65f6f70SBen Gras.Sx \&B .
528d65f6f70SBen Gras.Ss \&RB
529d65f6f70SBen GrasText is rendered alternately in roman (the default font) and bold face.
530d65f6f70SBen GrasWhitespace between arguments is omitted in output.
531d65f6f70SBen Gras.Pp
532d65f6f70SBen GrasSee
533d65f6f70SBen Gras.Sx \&BI
534d65f6f70SBen Grasfor an equivalent example.
535d65f6f70SBen Gras.Pp
536d65f6f70SBen GrasSee also
537d65f6f70SBen Gras.Sx \&BI ,
538d65f6f70SBen Gras.Sx \&IB ,
539d65f6f70SBen Gras.Sx \&BR ,
540d65f6f70SBen Gras.Sx \&RI ,
541d65f6f70SBen Grasand
542d65f6f70SBen Gras.Sx \&IR .
543d65f6f70SBen Gras.Ss \&RE
544d65f6f70SBen GrasExplicitly close out the scope of a prior
545d65f6f70SBen Gras.Sx \&RS .
54692395e9cSLionel SambucThe default left margin is restored to the state of the original
54792395e9cSLionel Sambuc.Sx \&RS
54892395e9cSLionel Sambucinvocation.
549d65f6f70SBen Gras.Ss \&RI
550d65f6f70SBen GrasText is rendered alternately in roman (the default font) and italics.
551d65f6f70SBen GrasWhitespace between arguments is omitted in output.
552d65f6f70SBen Gras.Pp
553d65f6f70SBen GrasSee
554d65f6f70SBen Gras.Sx \&BI
555d65f6f70SBen Grasfor an equivalent example.
556d65f6f70SBen Gras.Pp
557d65f6f70SBen GrasSee also
558d65f6f70SBen Gras.Sx \&BI ,
559d65f6f70SBen Gras.Sx \&IB ,
560d65f6f70SBen Gras.Sx \&BR ,
561d65f6f70SBen Gras.Sx \&RB ,
562d65f6f70SBen Grasand
563d65f6f70SBen Gras.Sx \&IR .
564d65f6f70SBen Gras.Ss \&RS
56592395e9cSLionel SambucTemporarily reset the default left margin.
566d65f6f70SBen GrasThis has the following syntax:
567d65f6f70SBen Gras.Bd -filled -offset indent
56892395e9cSLionel Sambuc.Pf \. Sx \&RS
569d65f6f70SBen Gras.Op Cm width
570d65f6f70SBen Gras.Ed
571d65f6f70SBen Gras.Pp
572d65f6f70SBen GrasThe
573d65f6f70SBen Gras.Cm width
574*0a6a1f1dSLionel Sambucargument is a
575*0a6a1f1dSLionel Sambuc.Xr roff 7
576*0a6a1f1dSLionel Sambucscaling width.
577d65f6f70SBen GrasIf not specified, the saved or default width is used.
57892395e9cSLionel Sambuc.Pp
57992395e9cSLionel SambucSee also
58092395e9cSLionel Sambuc.Sx \&RE .
581d65f6f70SBen Gras.Ss \&SB
582d65f6f70SBen GrasText is rendered in small size (one point smaller than the default font)
583d65f6f70SBen Grasbold face.
584d65f6f70SBen Gras.Ss \&SH
585d65f6f70SBen GrasBegin a section.
586d65f6f70SBen GrasThe scope of a section is only closed by another section or the end of
587d65f6f70SBen Grasfile.
588d65f6f70SBen GrasThe paragraph left-margin width is reset to the default.
589d65f6f70SBen Gras.Ss \&SM
590d65f6f70SBen GrasText is rendered in small size (one point smaller than the default
591d65f6f70SBen Grasfont).
592d65f6f70SBen Gras.Ss \&SS
593d65f6f70SBen GrasBegin a sub-section.
594d65f6f70SBen GrasThe scope of a sub-section is closed by a subsequent sub-section,
595d65f6f70SBen Grassection, or end of file.
596d65f6f70SBen GrasThe paragraph left-margin width is reset to the default.
597d65f6f70SBen Gras.Ss \&TH
598d65f6f70SBen GrasSets the title of the manual page with the following syntax:
599d65f6f70SBen Gras.Bd -filled -offset indent
600d65f6f70SBen Gras.Pf \. Sx \&TH
60192395e9cSLionel Sambuc.Ar title section date
60292395e9cSLionel Sambuc.Op Ar source Op Ar volume
603d65f6f70SBen Gras.Ed
604d65f6f70SBen Gras.Pp
60592395e9cSLionel SambucConventionally, the document
60692395e9cSLionel Sambuc.Ar title
60792395e9cSLionel Sambucis given in all caps.
60892395e9cSLionel SambucThe recommended
60992395e9cSLionel Sambuc.Ar date
61092395e9cSLionel Sambucformat is
61192395e9cSLionel Sambuc.Sy YYYY-MM-DD
61292395e9cSLionel Sambucas specified in the ISO-8601 standard;
61392395e9cSLionel Sambucif the argument does not conform, it is printed verbatim.
61492395e9cSLionel SambucIf the
61592395e9cSLionel Sambuc.Ar date
61692395e9cSLionel Sambucis empty or not specified, the current date is used.
61792395e9cSLionel SambucThe optional
61892395e9cSLionel Sambuc.Ar source
619d65f6f70SBen Grasstring specifies the organisation providing the utility.
620d65f6f70SBen GrasThe
62192395e9cSLionel Sambuc.Ar volume
622d65f6f70SBen Grasstring replaces the default rendered volume, which is dictated by the
623d65f6f70SBen Grasmanual section.
624d65f6f70SBen Gras.Pp
625d65f6f70SBen GrasExamples:
626d65f6f70SBen Gras.Pp
627d65f6f70SBen Gras.Dl \&.TH CVS 5 "1992-02-12" GNU
628d65f6f70SBen Gras.Ss \&TP
629d65f6f70SBen GrasBegin a paragraph where the head, if exceeding the indentation width, is
630d65f6f70SBen Grasfollowed by a newline; if not, the body follows on the same line after a
631d65f6f70SBen Grasbuffer to the indentation width.
632d65f6f70SBen GrasSubsequent output lines are indented.
633d65f6f70SBen GrasThe syntax is as follows:
634d65f6f70SBen Gras.Bd -filled -offset indent
635d65f6f70SBen Gras.Pf \. Sx \&TP
636d65f6f70SBen Gras.Op Cm width
637d65f6f70SBen Gras.Ed
638d65f6f70SBen Gras.Pp
639d65f6f70SBen GrasThe
640d65f6f70SBen Gras.Cm width
641*0a6a1f1dSLionel Sambucargument is a
642*0a6a1f1dSLionel Sambuc.Xr roff 7
643*0a6a1f1dSLionel Sambucscaling width.
644d65f6f70SBen GrasIf specified, it's saved for later paragraph left-margins; if
645d65f6f70SBen Grasunspecified, the saved or default width is used.
646d65f6f70SBen Gras.Pp
647d65f6f70SBen GrasSee also
648d65f6f70SBen Gras.Sx \&HP ,
649d65f6f70SBen Gras.Sx \&IP ,
650d65f6f70SBen Gras.Sx \&LP ,
651d65f6f70SBen Gras.Sx \&P ,
652d65f6f70SBen Grasand
653d65f6f70SBen Gras.Sx \&PP .
654d65f6f70SBen Gras.Ss \&UC
655d65f6f70SBen GrasSets the volume for the footer for compatibility with man pages from
656*0a6a1f1dSLionel Sambuc.Bx
657*0a6a1f1dSLionel Sambucreleases.
658d65f6f70SBen GrasThe optional first argument specifies which release it is from.
659*0a6a1f1dSLionel Sambuc.Ss \&UE
660*0a6a1f1dSLionel SambucEnd a uniform resource identifier block.
661*0a6a1f1dSLionel SambucThis is a non-standard GNU extension, included only for compatibility.
662*0a6a1f1dSLionel SambucSee
663*0a6a1f1dSLionel Sambuc.Sx \&UE .
664*0a6a1f1dSLionel Sambuc.Ss \&UR
665*0a6a1f1dSLionel SambucBegin a uniform resource identifier block.
666*0a6a1f1dSLionel SambucThis is a non-standard GNU extension, included only for compatibility.
667*0a6a1f1dSLionel SambucIt has the following syntax:
668*0a6a1f1dSLionel Sambuc.Bd -literal -offset indent
669*0a6a1f1dSLionel Sambuc.Pf \. Sx \&UR Ar uri
670*0a6a1f1dSLionel Sambuclink description to be shown
671*0a6a1f1dSLionel Sambuc.Pf \. Sx UE
672*0a6a1f1dSLionel Sambuc.Ed
673d65f6f70SBen Gras.Ss \&br
674d65f6f70SBen GrasBreaks the current line.
675d65f6f70SBen GrasConsecutive invocations have no further effect.
676d65f6f70SBen Gras.Pp
677d65f6f70SBen GrasSee also
678d65f6f70SBen Gras.Sx \&sp .
679d65f6f70SBen Gras.Ss \&fi
680d65f6f70SBen GrasEnd literal mode begun by
681d65f6f70SBen Gras.Sx \&nf .
682d65f6f70SBen Gras.Ss \&ft
683d65f6f70SBen GrasChange the current font mode.
684d65f6f70SBen GrasSee
685d65f6f70SBen Gras.Sx Text Decoration
686d65f6f70SBen Grasfor a listing of available font modes.
687d65f6f70SBen Gras.Ss \&in
688d65f6f70SBen GrasIndent relative to the current indentation:
689d65f6f70SBen Gras.Pp
690d65f6f70SBen Gras.D1 Pf \. Sx \&in Op Cm width
691d65f6f70SBen Gras.Pp
692d65f6f70SBen GrasIf
693d65f6f70SBen Gras.Cm width
694d65f6f70SBen Grasis signed, the new offset is relative.
695d65f6f70SBen GrasOtherwise, it is absolute.
696d65f6f70SBen GrasThis value is reset upon the next paragraph, section, or sub-section.
697d65f6f70SBen Gras.Ss \&na
698d65f6f70SBen GrasDon't align to the right margin.
699d65f6f70SBen Gras.Ss \&nf
700d65f6f70SBen GrasBegin literal mode: all subsequent free-form lines have their end of
701d65f6f70SBen Grasline boundaries preserved.
702d65f6f70SBen GrasMay be ended by
703d65f6f70SBen Gras.Sx \&fi .
70492395e9cSLionel SambucLiteral mode is implicitly ended by
70592395e9cSLionel Sambuc.Sx \&SH
70692395e9cSLionel Sambucor
70792395e9cSLionel Sambuc.Sx \&SS .
708d65f6f70SBen Gras.Ss \&sp
709d65f6f70SBen GrasInsert vertical spaces into output with the following syntax:
710d65f6f70SBen Gras.Bd -filled -offset indent
711d65f6f70SBen Gras.Pf \. Sx \&sp
712d65f6f70SBen Gras.Op Cm height
713d65f6f70SBen Gras.Ed
714d65f6f70SBen Gras.Pp
715*0a6a1f1dSLionel SambucThe
716d65f6f70SBen Gras.Cm height
717*0a6a1f1dSLionel Sambucargument is a scaling width as described in
718*0a6a1f1dSLionel Sambuc.Xr roff 7 .
719d65f6f70SBen GrasIf 0, this is equivalent to the
720d65f6f70SBen Gras.Sx \&br
721d65f6f70SBen Grasmacro.
722d65f6f70SBen GrasDefaults to 1, if unspecified.
723d65f6f70SBen Gras.Pp
724d65f6f70SBen GrasSee also
725d65f6f70SBen Gras.Sx \&br .
72692395e9cSLionel Sambuc.Sh MACRO SYNTAX
72792395e9cSLionel SambucThe
72892395e9cSLionel Sambuc.Nm
72992395e9cSLionel Sambucmacros are classified by scope: line scope or block scope.
73092395e9cSLionel SambucLine macros are only scoped to the current line (and, in some
73192395e9cSLionel Sambucsituations, the subsequent line).
73292395e9cSLionel SambucBlock macros are scoped to the current line and subsequent lines until
73392395e9cSLionel Sambucclosed by another block macro.
73492395e9cSLionel Sambuc.Ss Line Macros
73592395e9cSLionel SambucLine macros are generally scoped to the current line, with the body
73692395e9cSLionel Sambucconsisting of zero or more arguments.
73792395e9cSLionel SambucIf a macro is scoped to the next line and the line arguments are empty,
73892395e9cSLionel Sambucthe next line, which must be text, is used instead.
73992395e9cSLionel SambucThus:
74092395e9cSLionel Sambuc.Bd -literal -offset indent
74192395e9cSLionel Sambuc\&.I
74292395e9cSLionel Sambucfoo
74392395e9cSLionel Sambuc.Ed
74492395e9cSLionel Sambuc.Pp
74592395e9cSLionel Sambucis equivalent to
74692395e9cSLionel Sambuc.Sq \&.I foo .
74792395e9cSLionel SambucIf next-line macros are invoked consecutively, only the last is used.
74892395e9cSLionel SambucIf a next-line macro is followed by a non-next-line macro, an error is
74992395e9cSLionel Sambucraised, except for
75092395e9cSLionel Sambuc.Sx \&br ,
75192395e9cSLionel Sambuc.Sx \&sp ,
75292395e9cSLionel Sambucand
75392395e9cSLionel Sambuc.Sx \&na .
75492395e9cSLionel Sambuc.Pp
75592395e9cSLionel SambucThe syntax is as follows:
75692395e9cSLionel Sambuc.Bd -literal -offset indent
75792395e9cSLionel Sambuc\&.YO \(lBbody...\(rB
75892395e9cSLionel Sambuc\(lBbody...\(rB
75992395e9cSLionel Sambuc.Ed
76092395e9cSLionel Sambuc.Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
76192395e9cSLionel Sambuc.It Em Macro Ta Em Arguments Ta Em Scope     Ta Em Notes
76292395e9cSLionel Sambuc.It Sx \&AT  Ta    <=1       Ta    current   Ta    \&
76392395e9cSLionel Sambuc.It Sx \&B   Ta    n         Ta    next-line Ta    \&
76492395e9cSLionel Sambuc.It Sx \&BI  Ta    n         Ta    current   Ta    \&
76592395e9cSLionel Sambuc.It Sx \&BR  Ta    n         Ta    current   Ta    \&
76692395e9cSLionel Sambuc.It Sx \&DT  Ta    0         Ta    current   Ta    \&
767*0a6a1f1dSLionel Sambuc.It Sx \&EE  Ta    0         Ta    current   Ta    compat
768*0a6a1f1dSLionel Sambuc.It Sx \&EX  Ta    0         Ta    current   Ta    compat
76992395e9cSLionel Sambuc.It Sx \&I   Ta    n         Ta    next-line Ta    \&
77092395e9cSLionel Sambuc.It Sx \&IB  Ta    n         Ta    current   Ta    \&
77192395e9cSLionel Sambuc.It Sx \&IR  Ta    n         Ta    current   Ta    \&
77292395e9cSLionel Sambuc.It Sx \&OP  Ta    0, 1      Ta    current   Ta    compat
773*0a6a1f1dSLionel Sambuc.It Sx \&PD  Ta    1         Ta    current   Ta    \&
77492395e9cSLionel Sambuc.It Sx \&R   Ta    n         Ta    next-line Ta    \&
77592395e9cSLionel Sambuc.It Sx \&RB  Ta    n         Ta    current   Ta    \&
77692395e9cSLionel Sambuc.It Sx \&RI  Ta    n         Ta    current   Ta    \&
77792395e9cSLionel Sambuc.It Sx \&SB  Ta    n         Ta    next-line Ta    \&
77892395e9cSLionel Sambuc.It Sx \&SM  Ta    n         Ta    next-line Ta    \&
77992395e9cSLionel Sambuc.It Sx \&TH  Ta    >1, <6    Ta    current   Ta    \&
78092395e9cSLionel Sambuc.It Sx \&UC  Ta    <=1       Ta    current   Ta    \&
78192395e9cSLionel Sambuc.It Sx \&br  Ta    0         Ta    current   Ta    compat
78292395e9cSLionel Sambuc.It Sx \&fi  Ta    0         Ta    current   Ta    compat
78392395e9cSLionel Sambuc.It Sx \&ft  Ta    1         Ta    current   Ta    compat
78492395e9cSLionel Sambuc.It Sx \&in  Ta    1         Ta    current   Ta    compat
78592395e9cSLionel Sambuc.It Sx \&na  Ta    0         Ta    current   Ta    compat
78692395e9cSLionel Sambuc.It Sx \&nf  Ta    0         Ta    current   Ta    compat
78792395e9cSLionel Sambuc.It Sx \&sp  Ta    1         Ta    current   Ta    compat
78892395e9cSLionel Sambuc.El
78992395e9cSLionel Sambuc.Pp
79092395e9cSLionel SambucMacros marked as
79192395e9cSLionel Sambuc.Qq compat
79292395e9cSLionel Sambucare included for compatibility with the significant corpus of existing
79392395e9cSLionel Sambucmanuals that mix dialects of roff.
79492395e9cSLionel SambucThese macros should not be used for portable
79592395e9cSLionel Sambuc.Nm
79692395e9cSLionel Sambucmanuals.
79792395e9cSLionel Sambuc.Ss Block Macros
79892395e9cSLionel SambucBlock macros comprise a head and body.
79992395e9cSLionel SambucAs with in-line macros, the head is scoped to the current line and, in
80092395e9cSLionel Sambucone circumstance, the next line (the next-line stipulations as in
80192395e9cSLionel Sambuc.Sx Line Macros
80292395e9cSLionel Sambucapply here as well).
80392395e9cSLionel Sambuc.Pp
80492395e9cSLionel SambucThe syntax is as follows:
80592395e9cSLionel Sambuc.Bd -literal -offset indent
80692395e9cSLionel Sambuc\&.YO \(lBhead...\(rB
80792395e9cSLionel Sambuc\(lBhead...\(rB
80892395e9cSLionel Sambuc\(lBbody...\(rB
80992395e9cSLionel Sambuc.Ed
81092395e9cSLionel Sambuc.Pp
81192395e9cSLionel SambucThe closure of body scope may be to the section, where a macro is closed
81292395e9cSLionel Sambucby
81392395e9cSLionel Sambuc.Sx \&SH ;
81492395e9cSLionel Sambucsub-section, closed by a section or
81592395e9cSLionel Sambuc.Sx \&SS ;
81692395e9cSLionel Sambucpart, closed by a section, sub-section, or
81792395e9cSLionel Sambuc.Sx \&RE ;
81892395e9cSLionel Sambucor paragraph, closed by a section, sub-section, part,
81992395e9cSLionel Sambuc.Sx \&HP ,
82092395e9cSLionel Sambuc.Sx \&IP ,
82192395e9cSLionel Sambuc.Sx \&LP ,
82292395e9cSLionel Sambuc.Sx \&P ,
82392395e9cSLionel Sambuc.Sx \&PP ,
82492395e9cSLionel Sambucor
82592395e9cSLionel Sambuc.Sx \&TP .
82692395e9cSLionel SambucNo closure refers to an explicit block closing macro.
82792395e9cSLionel Sambuc.Pp
82892395e9cSLionel SambucAs a rule, block macros may not be nested; thus, calling a block macro
82992395e9cSLionel Sambucwhile another block macro scope is open, and the open scope is not
83092395e9cSLionel Sambucimplicitly closed, is syntactically incorrect.
83192395e9cSLionel Sambuc.Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
83292395e9cSLionel Sambuc.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope  Ta Em Notes
83392395e9cSLionel Sambuc.It Sx \&HP  Ta    <2        Ta    current    Ta    paragraph   Ta    \&
83492395e9cSLionel Sambuc.It Sx \&IP  Ta    <3        Ta    current    Ta    paragraph   Ta    \&
83592395e9cSLionel Sambuc.It Sx \&LP  Ta    0         Ta    current    Ta    paragraph   Ta    \&
83692395e9cSLionel Sambuc.It Sx \&P   Ta    0         Ta    current    Ta    paragraph   Ta    \&
83792395e9cSLionel Sambuc.It Sx \&PP  Ta    0         Ta    current    Ta    paragraph   Ta    \&
83892395e9cSLionel Sambuc.It Sx \&RE  Ta    0         Ta    current    Ta    none        Ta    compat
83992395e9cSLionel Sambuc.It Sx \&RS  Ta    1         Ta    current    Ta    part        Ta    compat
84092395e9cSLionel Sambuc.It Sx \&SH  Ta    >0        Ta    next-line  Ta    section     Ta    \&
84192395e9cSLionel Sambuc.It Sx \&SS  Ta    >0        Ta    next-line  Ta    sub-section Ta    \&
84292395e9cSLionel Sambuc.It Sx \&TP  Ta    n         Ta    next-line  Ta    paragraph   Ta    \&
843*0a6a1f1dSLionel Sambuc.It Sx \&UE  Ta    0         Ta    current    Ta    none        Ta    compat
844*0a6a1f1dSLionel Sambuc.It Sx \&UR  Ta    1         Ta    current    Ta    part        Ta    compat
84592395e9cSLionel Sambuc.El
84692395e9cSLionel Sambuc.Pp
84792395e9cSLionel SambucMacros marked
84892395e9cSLionel Sambuc.Qq compat
84992395e9cSLionel Sambucare as mentioned in
85092395e9cSLionel Sambuc.Sx Line Macros .
85192395e9cSLionel Sambuc.Pp
85292395e9cSLionel SambucIf a block macro is next-line scoped, it may only be followed by in-line
85392395e9cSLionel Sambucmacros for decorating text.
85492395e9cSLionel Sambuc.Ss Font handling
85592395e9cSLionel SambucIn
85692395e9cSLionel Sambuc.Nm
85792395e9cSLionel Sambucdocuments, both
85892395e9cSLionel Sambuc.Sx Physical markup
85992395e9cSLionel Sambucmacros and
86092395e9cSLionel Sambuc.Xr roff 7
86192395e9cSLionel Sambuc.Ql \ef
86292395e9cSLionel Sambucfont escape sequences can be used to choose fonts.
86392395e9cSLionel SambucIn text lines, the effect of manual font selection by escape sequences
86492395e9cSLionel Sambuconly lasts until the next macro invocation; in macro lines, it only lasts
86592395e9cSLionel Sambucuntil the end of the macro scope.
86692395e9cSLionel SambucNote that macros like
86792395e9cSLionel Sambuc.Sx \&BR
86892395e9cSLionel Sambucopen and close a font scope for each argument.
869d65f6f70SBen Gras.Sh COMPATIBILITY
870d65f6f70SBen GrasThis section documents areas of questionable portability between
871d65f6f70SBen Grasimplementations of the
872d65f6f70SBen Gras.Nm
873d65f6f70SBen Graslanguage.
874d65f6f70SBen Gras.Pp
875d65f6f70SBen Gras.Bl -dash -compact
876d65f6f70SBen Gras.It
87792395e9cSLionel SambucDo not depend on
87892395e9cSLionel Sambuc.Sx \&SH
87992395e9cSLionel Sambucor
88092395e9cSLionel Sambuc.Sx \&SS
88192395e9cSLionel Sambucto close out a literal context opened with
88292395e9cSLionel Sambuc.Sx \&nf .
88392395e9cSLionel SambucThis behaviour may not be portable.
88492395e9cSLionel Sambuc.It
885d65f6f70SBen GrasIn quoted literals, GNU troff allowed pair-wise double-quotes to produce
886d65f6f70SBen Grasa standalone double-quote in formatted output.
887d65f6f70SBen GrasIt is not known whether this behaviour is exhibited by other formatters.
888d65f6f70SBen Gras.It
889d65f6f70SBen Grastroff suppresses a newline before
890d65f6f70SBen Gras.Sq \(aq
891d65f6f70SBen Grasmacro output; in mandoc, it is an alias for the standard
892d65f6f70SBen Gras.Sq \&.
893d65f6f70SBen Grascontrol character.
894d65f6f70SBen Gras.It
895d65f6f70SBen GrasThe
896d65f6f70SBen Gras.Sq \eh
897d65f6f70SBen Gras.Pq horizontal position ,
898d65f6f70SBen Gras.Sq \ev
899d65f6f70SBen Gras.Pq vertical position ,
900d65f6f70SBen Gras.Sq \em
901d65f6f70SBen Gras.Pq text colour ,
902d65f6f70SBen Gras.Sq \eM
903d65f6f70SBen Gras.Pq text filling colour ,
904d65f6f70SBen Gras.Sq \ez
905d65f6f70SBen Gras.Pq zero-length character ,
906d65f6f70SBen Gras.Sq \ew
907d65f6f70SBen Gras.Pq string length ,
908d65f6f70SBen Gras.Sq \ek
909d65f6f70SBen Gras.Pq horizontal position marker ,
910d65f6f70SBen Gras.Sq \eo
911d65f6f70SBen Gras.Pq text overstrike ,
912d65f6f70SBen Grasand
913d65f6f70SBen Gras.Sq \es
914d65f6f70SBen Gras.Pq text size
915d65f6f70SBen Grasescape sequences are all discarded in mandoc.
916d65f6f70SBen Gras.It
917d65f6f70SBen GrasThe
918d65f6f70SBen Gras.Sq \ef
919d65f6f70SBen Grasscaling unit is accepted by mandoc, but rendered as the default unit.
920d65f6f70SBen Gras.It
921d65f6f70SBen GrasThe
922d65f6f70SBen Gras.Sx \&sp
923d65f6f70SBen Grasmacro does not accept negative values in mandoc.
924d65f6f70SBen GrasIn GNU troff, this would result in strange behaviour.
92592395e9cSLionel Sambuc.It
92692395e9cSLionel SambucIn page header lines, GNU troff versions up to and including 1.21
92792395e9cSLionel Sambuconly print
92892395e9cSLionel Sambuc.Ar volume
92992395e9cSLionel Sambucnames explicitly specified in the
93092395e9cSLionel Sambuc.Sx \&TH
93192395e9cSLionel Sambucmacro; mandoc and newer groff print the default volume name
93292395e9cSLionel Sambuccorresponding to the
93392395e9cSLionel Sambuc.Ar section
93492395e9cSLionel Sambucnumber when no
93592395e9cSLionel Sambuc.Ar volume
93692395e9cSLionel Sambucis given, like in
93792395e9cSLionel Sambuc.Xr mdoc 7 .
938d65f6f70SBen Gras.El
93992395e9cSLionel Sambuc.Pp
94092395e9cSLionel SambucThe
94192395e9cSLionel Sambuc.Sx OP
94292395e9cSLionel Sambucmacro is part of the extended
94392395e9cSLionel Sambuc.Nm
94492395e9cSLionel Sambucmacro set, and may not be portable to non-GNU troff implementations.
945d65f6f70SBen Gras.Sh SEE ALSO
946d65f6f70SBen Gras.Xr man 1 ,
947d65f6f70SBen Gras.Xr mandoc 1 ,
94892395e9cSLionel Sambuc.Xr eqn 7 ,
949d65f6f70SBen Gras.Xr mandoc_char 7 ,
950d65f6f70SBen Gras.Xr mdoc 7 ,
951d65f6f70SBen Gras.Xr roff 7 ,
952d65f6f70SBen Gras.Xr tbl 7
953d65f6f70SBen Gras.Sh HISTORY
954d65f6f70SBen GrasThe
955d65f6f70SBen Gras.Nm
956d65f6f70SBen Graslanguage first appeared as a macro package for the roff typesetting
957d65f6f70SBen Grassystem in
958d65f6f70SBen Gras.At v7 .
959d65f6f70SBen GrasIt was later rewritten by James Clark as a macro package for groff.
96092395e9cSLionel SambucEric S. Raymond wrote the extended
96192395e9cSLionel Sambuc.Nm
96292395e9cSLionel Sambucmacros for groff in 2007.
963d65f6f70SBen GrasThe stand-alone implementation that is part of the
964d65f6f70SBen Gras.Xr mandoc 1
965d65f6f70SBen Grasutility written by Kristaps Dzonsons appeared in
966d65f6f70SBen Gras.Ox 4.6 .
967d65f6f70SBen Gras.Sh AUTHORS
968d65f6f70SBen GrasThis
969d65f6f70SBen Gras.Nm
970d65f6f70SBen Grasreference was written by
971*0a6a1f1dSLionel Sambuc.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
972d65f6f70SBen Gras.Sh CAVEATS
973d65f6f70SBen GrasDo not use this language.
974d65f6f70SBen GrasUse
975d65f6f70SBen Gras.Xr mdoc 7 ,
976d65f6f70SBen Grasinstead.
977