Print this page
Latest round of fixes per RM and AL. Fix bugs found in man.c.
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/man/man5/man.5
+++ new/usr/src/man/man5/man.5
1 -.\"
2 -.\" Permission to use, copy, modify, and distribute this software for any
3 -.\" purpose with or without fee is hereby granted, provided that the above
4 -.\" copyright notice and this permission notice appear in all copies.
5 -.\"
6 -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7 -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8 -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9 -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
10 -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11 -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
12 -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13 -.\"
14 -.\"
15 -.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
16 -.\" Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
17 -.\" Copyright 2012 Nexenta Systems, Inc. All rights reserved.
18 -.\"
19 -.Dd Jan 3, 2012
1 +.\" Copyright (c) 1995, Sun Microsystems, Inc.
2 +.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
3 +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
4 +.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
5 +.Dd "Jul 19, 2014"
20 6 .Dt MAN 5
21 7 .Os
22 8 .Sh NAME
23 9 .Nm man
24 -.Nd legacy formatting language for manual pages
10 +.Nd macros to format Reference Manual pages
11 +.Sh SYNOPSIS
12 +.Nm mandoc
13 +.Fl T Ar man
14 +.Ar
15 +.Nm nroff
16 +.Fl man
17 +.Ar
18 +.Nm troff
19 +.Fl man
20 +.Ar
25 21 .Sh DESCRIPTION
26 -Traditionally, the
27 -.Nm man
28 -language has been used to write
29 -.Ux
30 -manuals for the
22 +These macros are used to lay out the reference pages in this manual. Note: if
23 +.Ar file
24 +contains format input for a preprocessor, the commands shown
25 +above must be piped through the appropriate preprocessor. This is handled
26 +automatically by the
31 27 .Xr man 1
32 -utility.
33 -It supports limited control of presentational details like fonts,
34 -indentation and spacing.
35 -This reference document describes the structure of manual pages
36 -and the syntax and usage of the man language.
28 +command. See the
29 +.Sx Conventions
30 +section.
31 +.Lp
32 +Any text argument
33 +.Ar t
34 +may be zero to six words. Quotes may be used to
35 +include SPACE characters in a
36 +.Qq word .
37 +If
38 +.Ar text
39 +is empty, the special
40 +treatment is applied to the next input line with text to be printed. In this
41 +way
42 +.Nm \&.I
43 +may be used to italicize a whole line, or
44 +.Nm \&.SB
45 +may be used to make small bold letters.
46 +.Lp
47 +A prevailing indent distance is remembered between successive indented
48 +paragraphs, and is reset to default value upon reaching a non-indented
49 +paragraph. Default units for indents
50 +.Nm i
51 +are ens.
52 +.Lp
53 +Type font and size are reset to default values before each paragraph, and after
54 +processing font and size setting macros.
37 55 .Pp
38 -.Bf -emphasis
39 -Do not use
40 -.Nm
41 -to write your manuals:
42 -.Ef
43 -It lacks support for semantic markup.
44 -Use the
45 -.Xr mdoc 5
46 -language, instead.
47 -.Pp
48 -In a
49 -.Nm
50 -document, lines beginning with the control character
51 -.Sq \&.
52 -are called
53 -.Dq macro lines .
54 -The first word is the macro name.
55 -It usually consists of two capital letters.
56 -For a list of available macros, see
57 -.Sx MACRO OVERVIEW .
58 -The words following the macro name are arguments to the macro.
59 -.Pp
60 -Lines not beginning with the control character are called
61 -.Dq text lines .
62 -They provide free-form text to be printed; the formatting of the text
63 -depends on the respective processing context:
64 -.Bd -literal -offset indent
65 -\&.SH Macro lines change control state.
66 -Text lines are interpreted within the current state.
67 -.Ed
68 -.Pp
69 -Many aspects of the basic syntax of the
70 -.Nm
71 -language are based on the
72 -.Xr roff 5
73 -language; see the
74 -.Em LANGUAGE SYNTAX
75 -and
76 -.Em MACRO SYNTAX
77 -sections in the
78 -.Xr roff 5
79 -manual for details, in particular regarding
80 -comments, escape sequences, whitespace, and quoting.
81 -.Sh MANUAL STRUCTURE
82 -Each
83 -.Nm
84 -document must contain the
85 -.Sx \&TH
86 -macro describing the document's section and title.
87 -It may occur anywhere in the document, although conventionally it
88 -appears as the first macro.
89 -.Pp
90 -Beyond
91 -.Sx \&TH ,
92 -at least one macro or text line must appear in the document.
93 -.Pp
94 -The following is a well-formed skeleton
95 -.Nm
96 -file for a utility
97 -.Qq progname :
98 -.Bd -literal -offset indent
99 -\&.TH PROGNAME 1 "Oct 10, 2009"
100 -\&.SH NAME
101 -\efBprogname\efR \e(en a description goes here
102 -\&.\e\(dq .SH LIBRARY
103 -\&.\e\(dq For sections 2 & 3 only.
104 -\&.SH SYNOPSIS
105 -\efBprogname\efR [\efB\e-options\efR] arguments...
106 -\&.SH DESCRIPTION
107 -The \efBfoo\efR utility processes files...
108 -\&.\e\(dq .SH IMPLEMENTATION NOTES
109 -\&.\e\(dq .SH RETURN VALUES
110 -\&.\e\(dq For sections 2, 3, & 9 only.
111 -\&.\e\(dq .SH ENVIRONMENT
112 -\&.\e\(dq For sections 1, 1M, 5, & 6 only.
113 -\&.\e\(dq .SH FILES
114 -\&.\e\(dq .SH EXIT STATUS
115 -\&.\e\(dq For sections 1, 1M, & 6 only.
116 -\&.\e\(dq .SH EXAMPLES
117 -\&.\e\(dq .SH DIAGNOSTICS
118 -\&.\e\(dq For sections 1, 1M, 5, 6, & 7 only.
119 -\&.\e\(dq .SH ERRORS
120 -\&.\e\(dq For sections 2, 3, & 9 only.
121 -\&.\e\(dq .SH SEE ALSO
122 -\&.\e\(dq .BR foo ( 1 )
123 -\&.\e\(dq .SH STANDARDS
124 -\&.\e\(dq .SH HISTORY
125 -\&.\e\(dq .SH AUTHORS
126 -\&.\e\(dq .SH CAVEATS
127 -\&.\e\(dq .SH BUGS
128 -\&.\e\(dq .SH SECURITY CONSIDERATIONS
129 -.Ed
130 -.Pp
131 -The sections in a
132 -.Nm
133 -document are conventionally ordered as they appear above.
134 -Sections should be composed as follows:
135 -.Bl -ohang -offset indent
136 -.It Em NAME
137 -The name(s) and a short description of the documented material.
138 -The syntax for this is generally as follows:
139 -.Pp
140 -.D1 \efBname\efR \e(en description
141 -.It Em LIBRARY
142 -The name of the library containing the documented material, which is
143 -assumed to be a function in a section 2 or 3 manual.
144 -For functions in the C library, this may be as follows:
145 -.Pp
146 -.D1 Standard C Library (libc, -lc)
147 -.It Em SYNOPSIS
148 -Documents the utility invocation syntax, function call syntax, or device
149 -configuration.
150 -.Pp
151 -For the first, utilities (sections 1, 1M, and 6), this is
152 -generally structured as follows:
153 -.Pp
154 -.D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
155 -.Pp
156 -For the second, function calls (sections 2, 3, 9):
157 -.Pp
158 -.D1 \&.B char *name(char *\efIarg\efR);
159 -.Pp
160 -And for the third, configurations (section 7):
161 -.Pp
162 -.D1 \&.B name* at cardbus ? function ?
163 -.Pp
164 -Manuals not in these sections generally don't need a
165 -.Em SYNOPSIS .
166 -.It Em DESCRIPTION
167 -This expands upon the brief, one-line description in
168 -.Em NAME .
169 -It usually contains a break-down of the options (if documenting a
170 -command).
171 -.It Em IMPLEMENTATION NOTES
172 -Implementation-specific notes should be kept here.
173 -This is useful when implementing standard functions that may have side
174 -effects or notable algorithmic implications.
175 -.It Em RETURN VALUES
176 -This section documents the return values of functions in sections 2, 3, and 9.
177 -.It Em ENVIRONMENT
178 -Documents any usages of environment variables, e.g.,
179 -.Xr environ 5 .
180 -.It Em FILES
181 -Documents files used.
182 -It's helpful to document both the file name and a short description of how
183 -the file is used (created, modified, etc.).
184 -.It Em EXIT STATUS
185 -This section documents the command exit status for
186 -section 1, 6, and 8 utilities.
187 -Historically, this information was described in
188 -.Em DIAGNOSTICS ,
189 -a practise that is now discouraged.
190 -.It Em EXAMPLES
191 -Example usages.
192 -This often contains snippets of well-formed,
193 -well-tested invocations.
194 -Make sure that examples work properly!
195 -.It Em DIAGNOSTICS
196 -Documents error conditions.
197 -This is most useful in section 4 manuals.
198 -Historically, this section was used in place of
199 -.Em EXIT STATUS
200 -for manuals in sections 1, 6, and 8; however, this practise is
201 -discouraged.
202 -.It Em ERRORS
203 -Documents error handling in sections 2, 3, and 9.
204 -.It Em SEE ALSO
205 -References other manuals with related topics.
206 -This section should exist for most manuals.
207 -.Pp
208 -.D1 \&.BR bar \&( 1 \&),
209 -.Pp
210 -Cross-references should conventionally be ordered
211 -first by section, then alphabetically.
212 -.It Em STANDARDS
213 -References any standards implemented or used, such as
214 -.Pp
215 -.D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
216 -.Pp
217 -If not adhering to any standards, the
218 -.Em HISTORY
219 -section should be used.
220 -.It Em HISTORY
221 -A brief history of the subject, including where support first appeared.
222 -.It Em AUTHORS
223 -Credits to the person or persons who wrote the code and/or documentation.
224 -Authors should generally be noted by both name and email address.
225 -.It Em CAVEATS
226 -Common misuses and misunderstandings should be explained
227 -in this section.
228 -.It Em BUGS
229 -Known bugs, limitations, and work-arounds should be described
230 -in this section.
231 -.It Em SECURITY CONSIDERATIONS
232 -Documents any security precautions that operators should consider.
56 +These strings are predefined by
57 +.Nm -man :
58 +.Bl -tag -width Ds
59 +.It Nm \e*R
60 +.Sq \(rg ,
61 +.Sq (Reg)
62 +in
63 +.Nm nroff .
64 +.It Nm \e*S
65 +Change to default type size.
233 66 .El
234 -.Sh MACRO OVERVIEW
235 -This overview is sorted such that macros of similar purpose are listed
236 -together, to help find the best macro for any given purpose.
237 -Deprecated macros are not included in the overview, but can be found
238 -in the alphabetical reference below.
239 -.Ss Page header and footer meta-data
240 -.Bl -column "PP, LP, P" description
241 -.It Sx TH Ta set the title: Ar title section date Op Ar source Op Ar volume
242 -.It Sx AT Ta display AT&T UNIX version in the page footer (<= 1 argument)
243 -.It Sx UC Ta display BSD version in the page footer (<= 1 argument)
67 +.Sh "Requests"
68 +* n.t.l. = next text line; p.i. = prevailing indent
69 +.Bl -column ".TH n s d f m" "Cause " "t=n.t.l.*" "Explanation " -offset Ds
70 +.It Sy Request Sy Cause Sy "If No" Sy Explanation
71 +.It "" Sy Break Sy "Argument" ""
72 +.It Nm \&.B Ar "t" no Ar t Ns =n.t.l.* Text is in bold font.
73 +.It Nm \&.BI Ar t no Ar t Ns =n.t.l. Join words, alternating bold and italic.
74 +.It Nm \&.BR Ar t no Ar t Ns =n.t.l. Join words, alternating bold and roman.
75 +.It Nm \&.DT no Li \&.5i 1i... Restore default tabs.
76 +.It Nm \&.HP Ar i yes Ar i Ns =p.i.* "Begin paragraph with hanging indent. Set prevailing indent to" Ar i .
77 +.It Nm \&.I Ar t no Ar t Ns =n.t.l. Text is italic.
78 +.It Nm \&.IB Ar t no Ar t Ns =n.t.l. Join words, altenrating italic and bold.
79 +.It Nm \&.IP Ar x Ar i yes Ar x Ns ="" Same as
80 +.Nm \&.TP
81 +with tag
82 +.Ar x .
83 +.It Nm \&.IR Ar t no Ar t Ns =n.t.l. Join words, alternating italic and roman.
84 +.It Nm \&.IX Ar t no - Index macro, not used (obsolete).
85 +.It Nm \&.LP yes - Begin left-aligned paragraph. Set prevailing indent to .5i.
86 +.It Nm \&.P yes - Same as
87 +.Nm \&.LP .
88 +.It Nm \&.PD Ar d no Ar d Ns =.4v Set vertical distance between paragraphs.
89 +.It Nm \&.PP yes - Same as
90 +.Nm \&.LP .
91 +.It Nm \&.RE yes - End of relative indent. Restores prevailing indent.
92 +.It Nm \&.RB Ar t no Ar t Ns =n.t.l. Join words, alternating roman and bold.
93 +.It Nm \&.RI Ar t no Ar t Ns =n.t.l. Join words, alternating roman and italic.
94 +.It Nm \&.RS Ar i yes Ar i Ns =p.i. Start relative indent, increase indent by Ar i .
95 +Sets prevailing indent to .5i for nested indents.
96 +.It Nm \&.SB Ar t no - Reduce size of text by 1 point, make text bold.
97 +.It Nm \&.SH Ar t yes - Section Heading.
98 +.It Nm \&.SM Ar t no Ar t Ns =n.t.l. Reduce size of text by 1 point.
99 +.It Nm \&.SS Ar t yes Ar t Ns =n.t.l. Section Subheading.
100 +.It Nm \&.TH Ar n s d f m yes - Begin reference page Ar n , No of section Ar s ; Ar d No is the date of the most recent change. If present, Ar f No is the left page footer; Ar m No is the main page (center) header. Sets prevailing indent and tabs to .5i.
101 +.It Nm \&.TP Ar i yes Ar i Ns =p.i. Begin indented paragraph, with the tag given on the next text line. Set prevailing indent to
102 +.Ar i .
103 +.It Nm \&.TX Ar t p no - Resolve the title abbreviation Ar t ; No join to punctuation mark (or text) Ar p .
244 104 .El
245 -.Ss Sections and paragraphs
246 -.Bl -column "PP, LP, P" description
247 -.It Sx SH Ta section header (one line)
248 -.It Sx SS Ta subsection header (one line)
249 -.It Sx PP , LP , P Ta start an undecorated paragraph (no arguments)
250 -.It Sx RS , RE Ta reset the left margin: Op Ar width
251 -.It Sx IP Ta indented paragraph: Op Ar head Op Ar width
252 -.It Sx TP Ta tagged paragraph: Op Ar width
253 -.It Sx HP Ta hanged paragraph: Op Ar width
254 -.It Sx \&br Ta force output line break in text mode (no arguments)
255 -.It Sx \&sp Ta force vertical space: Op Ar height
256 -.It Sx fi , nf Ta fill mode and no-fill mode (no arguments)
257 -.It Sx in Ta additional indent: Op Ar width
258 -.El
259 -.Ss Physical markup
260 -.Bl -column "PP, LP, P" description
261 -.It Sx B Ta boldface font
262 -.It Sx I Ta italic font
263 -.It Sx R Ta roman (default) font
264 -.It Sx SB Ta small boldface font
265 -.It Sx SM Ta small roman font
266 -.It Sx BI Ta alternate between boldface and italic fonts
267 -.It Sx BR Ta alternate between boldface and roman fonts
268 -.It Sx IB Ta alternate between italic and boldface fonts
269 -.It Sx IR Ta alternate between italic and roman fonts
270 -.It Sx RB Ta alternate between roman and boldface fonts
271 -.It Sx RI Ta alternate between roman and italic fonts
272 -.El
273 -.Ss Semantic markup
274 -.Bl -column "PP, LP, P" description
275 -.It Sx OP Ta optional arguments
276 -.El
277 -.Sh MACRO REFERENCE
278 -This section is a canonical reference to all macros, arranged
279 -alphabetically.
280 -For the scoping of individual macros, see
281 -.Sx MACRO SYNTAX .
282 -.Ss \&AT
283 -Sets the volume for the footer for compatibility with man pages from
284 -.Tn AT&T UNIX
285 -releases.
286 -The optional arguments specify which release it is from.
287 -.Ss \&B
288 -Text is rendered in bold face.
289 -.Pp
290 -See also
291 -.Sx \&I
292 -and
293 -.Sx \&R .
294 -.Ss \&BI
295 -Text is rendered alternately in bold face and italic.
296 -Thus,
297 -.Sq .BI this word and that
298 -causes
299 -.Sq this
300 -and
301 -.Sq and
302 -to render in bold face, while
303 -.Sq word
304 -and
305 -.Sq that
306 -render in italics.
307 -Whitespace between arguments is omitted in output.
308 -.Pp
309 -Examples:
310 -.Pp
311 -.Dl \&.BI bold italic bold italic
312 -.Pp
313 -The output of this example will be emboldened
314 -.Dq bold
315 -and italicised
316 -.Dq italic ,
317 -with spaces stripped between arguments.
318 -.Pp
319 -See also
320 -.Sx \&IB ,
321 -.Sx \&BR ,
322 -.Sx \&RB ,
323 -.Sx \&RI ,
324 -and
325 -.Sx \&IR .
326 -.Ss \&BR
327 -Text is rendered alternately in bold face and roman (the default font).
328 -Whitespace between arguments is omitted in output.
329 -.Pp
330 -See
331 -.Sx \&BI
332 -for an equivalent example.
333 -.Pp
334 -See also
335 -.Sx \&BI ,
336 -.Sx \&IB ,
337 -.Sx \&RB ,
338 -.Sx \&RI ,
339 -and
340 -.Sx \&IR .
341 -.Ss \&DT
342 -Has no effect.
343 -Included for compatibility.
344 -.Ss \&HP
345 -Begin a paragraph whose initial output line is left-justified, but
346 -subsequent output lines are indented, with the following syntax:
347 -.Bd -filled -offset indent
348 -.Pf \. Sx \&HP
349 -.Op Cm width
350 -.Ed
351 -.Pp
352 -The
353 -.Cm width
354 -argument must conform to
355 -.Sx Scaling Widths .
356 -If specified, it's saved for later paragraph left-margins; if unspecified, the
357 -saved or default width is used.
358 -.Pp
359 -See also
360 -.Sx \&IP ,
361 -.Sx \&LP ,
362 -.Sx \&P ,
363 -.Sx \&PP ,
364 -and
365 -.Sx \&TP .
366 -.Ss \&I
367 -Text is rendered in italics.
368 -.Pp
369 -See also
370 -.Sx \&B
371 -and
372 -.Sx \&R .
373 -.Ss \&IB
374 -Text is rendered alternately in italics and bold face.
375 -Whitespace between arguments is omitted in output.
376 -.Pp
377 -See
378 -.Sx \&BI
379 -for an equivalent example.
380 -.Pp
381 -See also
382 -.Sx \&BI ,
383 -.Sx \&BR ,
384 -.Sx \&RB ,
385 -.Sx \&RI ,
386 -and
387 -.Sx \&IR .
388 -.Ss \&IP
389 -Begin an indented paragraph with the following syntax:
390 -.Bd -filled -offset indent
391 -.Pf \. Sx \&IP
392 -.Op Cm head Op Cm width
393 -.Ed
394 -.Pp
395 -The
396 -.Cm width
397 -argument defines the width of the left margin and is defined by
398 -.Sx Scaling Widths .
399 -It's saved for later paragraph left-margins; if unspecified, the saved or
400 -default width is used.
401 -.Pp
402 -The
403 -.Cm head
404 -argument is used as a leading term, flushed to the left margin.
405 -This is useful for bulleted paragraphs and so on.
406 -.Pp
407 -See also
408 -.Sx \&HP ,
409 -.Sx \&LP ,
410 -.Sx \&P ,
411 -.Sx \&PP ,
412 -and
413 -.Sx \&TP .
414 -.Ss \&IR
415 -Text is rendered alternately in italics and roman (the default font).
416 -Whitespace between arguments is omitted in output.
417 -.Pp
418 -See
419 -.Sx \&BI
420 -for an equivalent example.
421 -.Pp
422 -See also
423 -.Sx \&BI ,
424 -.Sx \&IB ,
425 -.Sx \&BR ,
426 -.Sx \&RB ,
427 -and
428 -.Sx \&RI .
429 -.Ss \&LP
430 -Begin an undecorated paragraph.
431 -The scope of a paragraph is closed by a subsequent paragraph,
432 -sub-section, section, or end of file.
433 -The saved paragraph left-margin width is reset to the default.
434 -.Pp
435 -See also
436 -.Sx \&HP ,
437 -.Sx \&IP ,
438 -.Sx \&P ,
439 -.Sx \&PP ,
440 -and
441 -.Sx \&TP .
442 -.Ss \&OP
443 -Optional command-line argument.
444 -This has the following syntax:
445 -.Bd -filled -offset indent
446 -.Pf \. Sx \&OP
447 -.Cm key Op Cm value
448 -.Ed
449 -.Pp
450 -The
451 -.Cm key
452 -is usually a command-line flag and
453 -.Cm value
454 -its argument.
455 -.Ss \&P
456 -Synonym for
457 -.Sx \&LP .
458 -.Pp
459 -See also
460 -.Sx \&HP ,
461 -.Sx \&IP ,
462 -.Sx \&LP ,
463 -.Sx \&PP ,
464 -and
465 -.Sx \&TP .
466 -.Ss \&PP
467 -Synonym for
468 -.Sx \&LP .
469 -.Pp
470 -See also
471 -.Sx \&HP ,
472 -.Sx \&IP ,
473 -.Sx \&LP ,
474 -.Sx \&P ,
475 -and
476 -.Sx \&TP .
477 -.Ss \&R
478 -Text is rendered in roman (the default font).
479 -.Pp
480 -See also
481 -.Sx \&I
482 -and
483 -.Sx \&B .
484 -.Ss \&RB
485 -Text is rendered alternately in roman (the default font) and bold face.
486 -Whitespace between arguments is omitted in output.
487 -.Pp
488 -See
489 -.Sx \&BI
490 -for an equivalent example.
491 -.Pp
492 -See also
493 -.Sx \&BI ,
494 -.Sx \&IB ,
495 -.Sx \&BR ,
496 -.Sx \&RI ,
497 -and
498 -.Sx \&IR .
499 -.Ss \&RE
500 -Explicitly close out the scope of a prior
501 -.Sx \&RS .
502 -The default left margin is restored to the state of the original
503 -.Sx \&RS
504 -invocation.
505 -.Ss \&RI
506 -Text is rendered alternately in roman (the default font) and italics.
507 -Whitespace between arguments is omitted in output.
508 -.Pp
509 -See
510 -.Sx \&BI
511 -for an equivalent example.
512 -.Pp
513 -See also
514 -.Sx \&BI ,
515 -.Sx \&IB ,
516 -.Sx \&BR ,
517 -.Sx \&RB ,
518 -and
519 -.Sx \&IR .
520 -.Ss \&RS
521 -Temporarily reset the default left margin.
522 -This has the following syntax:
523 -.Bd -filled -offset indent
524 -.Pf \. Sx \&RS
525 -.Op Cm width
526 -.Ed
527 -.Pp
528 -The
529 -.Cm width
530 -argument must conform to
531 -.Sx Scaling Widths .
532 -If not specified, the saved or default width is used.
533 -.Pp
534 -See also
535 -.Sx \&RE .
536 -.Ss \&SB
537 -Text is rendered in small size (one point smaller than the default font)
538 -bold face.
539 -.Ss \&SH
540 -Begin a section.
541 -The scope of a section is only closed by another section or the end of
542 -file.
543 -The paragraph left-margin width is reset to the default.
544 -.Ss \&SM
545 -Text is rendered in small size (one point smaller than the default
546 -font).
547 -.Ss \&SS
548 -Begin a sub-section.
549 -The scope of a sub-section is closed by a subsequent sub-section,
550 -section, or end of file.
551 -The paragraph left-margin width is reset to the default.
552 -.Ss \&TH
553 -Sets the title of the manual page with the following syntax:
554 -.Bd -filled -offset indent
555 -.Pf \. Sx \&TH
556 -.Ar title section date
557 -.Op Ar source Op Ar volume
558 -.Ed
559 -.Pp
560 -Conventionally, the document
561 -.Ar title
562 -is given in all caps.
563 -The recommended
564 -.Ar date
565 -format is
566 -.Sy YYYY-MM-DD
567 -as specified in the ISO-8601 standard;
568 -if the argument does not conform, it is printed verbatim.
569 -If the
570 -.Ar date
571 -is empty or not specified, the current date is used.
572 -The optional
573 -.Ar source
574 -string specifies the organisation providing the utility.
575 -The
576 -.Ar volume
577 -string replaces the default rendered volume, which is dictated by the
578 -manual section.
579 -.Pp
580 -Examples:
581 -.Pp
582 -.Dl \&.TH CVS 5 "1992-02-12" GNU
583 -.Ss \&TP
584 -Begin a paragraph where the head, if exceeding the indentation width, is
585 -followed by a newline; if not, the body follows on the same line after a
586 -buffer to the indentation width.
587 -Subsequent output lines are indented.
588 -The syntax is as follows:
589 -.Bd -filled -offset indent
590 -.Pf \. Sx \&TP
591 -.Op Cm width
592 -.Ed
593 -.Pp
594 -The
595 -.Cm width
596 -argument must conform to
597 -.Sx Scaling Widths .
598 -If specified, it's saved for later paragraph left-margins; if
599 -unspecified, the saved or default width is used.
600 -.Pp
601 -See also
602 -.Sx \&HP ,
603 -.Sx \&IP ,
604 -.Sx \&LP ,
605 -.Sx \&P ,
606 -and
607 -.Sx \&PP .
608 -.Ss \&UC
609 -Sets the volume for the footer for compatibility with man pages from
610 -BSD releases.
611 -The optional first argument specifies which release it is from.
612 -.Ss \&br
613 -Breaks the current line.
614 -Consecutive invocations have no further effect.
615 -.Pp
616 -See also
617 -.Sx \&sp .
618 -.Ss \&fi
619 -End literal mode begun by
620 -.Sx \&nf .
621 -.Ss \&ft
622 -Change the current font mode.
623 -See
624 -.Sx Text Decoration
625 -for a listing of available font modes.
626 -.Ss \&in
627 -Indent relative to the current indentation:
628 -.Pp
629 -.D1 Pf \. Sx \&in Op Cm width
630 -.Pp
631 -If
632 -.Cm width
633 -is signed, the new offset is relative.
634 -Otherwise, it is absolute.
635 -This value is reset upon the next paragraph, section, or sub-section.
636 -.Ss \&na
637 -Don't align to the right margin.
638 -.Ss \&nf
639 -Begin literal mode: all subsequent free-form lines have their end of
640 -line boundaries preserved.
641 -May be ended by
642 -.Sx \&fi .
643 -Literal mode is implicitly ended by
644 -.Sx \&SH
645 -or
646 -.Sx \&SS .
647 -.Ss \&sp
648 -Insert vertical spaces into output with the following syntax:
649 -.Bd -filled -offset indent
650 -.Pf \. Sx \&sp
651 -.Op Cm height
652 -.Ed
653 -.Pp
654 -Insert
655 -.Cm height
656 -spaces, which must conform to
657 -.Sx Scaling Widths .
658 -If 0, this is equivalent to the
659 -.Sx \&br
660 -macro.
661 -Defaults to 1, if unspecified.
662 -.Pp
663 -See also
664 -.Sx \&br .
665 -.Sh MACRO SYNTAX
666 -The
105 +.Ss "Conventions"
106 +When formatting a manual page,
667 107 .Nm
668 -macros are classified by scope: line scope or block scope.
669 -Line macros are only scoped to the current line (and, in some
670 -situations, the subsequent line).
671 -Block macros are scoped to the current line and subsequent lines until
672 -closed by another block macro.
673 -.Ss Line Macros
674 -Line macros are generally scoped to the current line, with the body
675 -consisting of zero or more arguments.
676 -If a macro is scoped to the next line and the line arguments are empty,
677 -the next line, which must be text, is used instead.
678 -Thus:
679 -.Bd -literal -offset indent
680 -\&.I
681 -foo
682 -.Ed
683 -.Pp
684 -is equivalent to
685 -.Sq \&.I foo .
686 -If next-line macros are invoked consecutively, only the last is used.
687 -If a next-line macro is followed by a non-next-line macro, an error is
688 -raised, except for
689 -.Sx \&br ,
690 -.Sx \&sp ,
691 -and
692 -.Sx \&na .
693 -.Pp
694 -The syntax is as follows:
695 -.Bd -literal -offset indent
696 -\&.YO \(lBbody...\(rB
697 -\(lBbody...\(rB
698 -.Ed
699 -.Bl -column "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX" -offset indent
700 -.It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
701 -.It Sx \&AT Ta <=1 Ta current Ta \&
702 -.It Sx \&B Ta n Ta next-line Ta \&
703 -.It Sx \&BI Ta n Ta current Ta \&
704 -.It Sx \&BR Ta n Ta current Ta \&
705 -.It Sx \&DT Ta 0 Ta current Ta \&
706 -.It Sx \&I Ta n Ta next-line Ta \&
707 -.It Sx \&IB Ta n Ta current Ta \&
708 -.It Sx \&IR Ta n Ta current Ta \&
709 -.It Sx \&OP Ta 0, 1 Ta current Ta compat
710 -.It Sx \&R Ta n Ta next-line Ta \&
711 -.It Sx \&RB Ta n Ta current Ta \&
712 -.It Sx \&RI Ta n Ta current Ta \&
713 -.It Sx \&SB Ta n Ta next-line Ta \&
714 -.It Sx \&SM Ta n Ta next-line Ta \&
715 -.It Sx \&TH Ta >1, <6 Ta current Ta \&
716 -.It Sx \&UC Ta <=1 Ta current Ta \&
717 -.It Sx \&br Ta 0 Ta current Ta compat
718 -.It Sx \&fi Ta 0 Ta current Ta compat
719 -.It Sx \&ft Ta 1 Ta current Ta compat
720 -.It Sx \&in Ta 1 Ta current Ta compat
721 -.It Sx \&na Ta 0 Ta current Ta compat
722 -.It Sx \&nf Ta 0 Ta current Ta compat
723 -.It Sx \&sp Ta 1 Ta current Ta compat
108 +examines the first line to determine
109 +whether it requires special processing. For example a first line consisting of:
110 +.Lp
111 +.Dl \&'\e" t
112 +.Lp
113 +indicates that the manual page must be run through the
114 +.Xr tbl 1
115 +preprocessor.
116 +.Lp
117 +A typical manual page for a command or function is laid out as follows:
118 +.Bl -tag -width ".SH RETURN VALUES"
119 +.
120 +.It Nm \&.TH Ar title Op "1-9"
121 +.
122 +The name of the command or function, which serves as the title of the manual
123 +page. This is followed by the number of the section in which it appears.
124 +.
125 +.It Nm SH NAME
126 +.
127 +The name, or list of names, by which the command is called, followed by a dash
128 +and then a one-line summary of the action performed. All in roman font, this
129 +section contains no
130 +.Xr troff 1
131 +commands or escapes, and no macro requests.
132 +It is used to generate the database used by the
133 +.Xr whatis 1
134 +command.
135 +.
136 +.It Nm SH SYNOPSIS
137 +.Bl -tag -width "Functions:"
138 +.It Sy Commands:
139 +The syntax of the command and its arguments, as typed on the command line.
140 +When in boldface, a word must be typed exactly as printed. When in italics, a
141 +word can be replaced with an argument that you supply. References to bold or
142 +italicized items are not capitalized in other sections, even when they begin a
143 +sentence.
144 +.Lp
145 +Syntactic symbols appear in roman face:
146 +.Bl -tag -width " "
147 +.It Op " "
148 +An argument, when surrounded by brackets is optional.
149 +.It |
150 +Arguments separated by a vertical bar are exclusive. You can supply only one
151 +item from such a list.
152 +.It \&.\|.\|.
153 +Arguments followed by an ellipsis can be repeated. When an ellipsis follows a
154 +bracketed set, the expression within the brackets can be repeated.
724 155 .El
725 -.Pp
726 -Macros marked as
727 -.Qq compat
728 -are included for compatibility with the significant corpus of existing
729 -manuals that mix dialects of roff.
730 -These macros should not be used for portable
731 -.Nm
732 -manuals.
733 -.Ss Block Macros
734 -Block macros comprise a head and body.
735 -As with in-line macros, the head is scoped to the current line and, in
736 -one circumstance, the next line (the next-line stipulations as in
737 -.Sx Line Macros
738 -apply here as well).
739 -.Pp
740 -The syntax is as follows:
741 -.Bd -literal -offset indent
742 -\&.YO \(lBhead...\(rB
743 -\(lBhead...\(rB
744 -\(lBbody...\(rB
745 -.Ed
746 -.Pp
747 -The closure of body scope may be to the section, where a macro is closed
748 -by
749 -.Sx \&SH ;
750 -sub-section, closed by a section or
751 -.Sx \&SS ;
752 -part, closed by a section, sub-section, or
753 -.Sx \&RE ;
754 -or paragraph, closed by a section, sub-section, part,
755 -.Sx \&HP ,
756 -.Sx \&IP ,
757 -.Sx \&LP ,
758 -.Sx \&P ,
759 -.Sx \&PP ,
760 -or
761 -.Sx \&TP .
762 -No closure refers to an explicit block closing macro.
763 -.Pp
764 -As a rule, block macros may not be nested; thus, calling a block macro
765 -while another block macro scope is open, and the open scope is not
766 -implicitly closed, is syntactically incorrect.
767 -.Bl -column "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX" -offset indent
768 -.It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
769 -.It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
770 -.It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
771 -.It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
772 -.It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
773 -.It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
774 -.It Sx \&RE Ta 0 Ta current Ta none Ta compat
775 -.It Sx \&RS Ta 1 Ta current Ta part Ta compat
776 -.It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
777 -.It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
778 -.It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
156 +.It Sy Functions:
157 +If required, the data declaration, or
158 +.Li #include
159 +directive, is shown first,
160 +followed by the function declaration. Otherwise, the function declaration is
161 +shown.
779 162 .El
780 -.Pp
781 -Macros marked
782 -.Qq compat
783 -are as mentioned in
784 -.Sx Line Macros .
785 -.Pp
786 -If a block macro is next-line scoped, it may only be followed by in-line
787 -macros for decorating text.
788 -.Ss Font handling
789 -In
790 -.Nm
791 -documents, both
792 -.Sx Physical markup
793 -macros and
794 -.Xr roff 5
795 -.Ql \ef
796 -font escape sequences can be used to choose fonts.
797 -In text lines, the effect of manual font selection by escape sequences
798 -only lasts until the next macro invocation; in macro lines, it only lasts
799 -until the end of the macro scope.
800 -Note that macros like
801 -.Sx \&BR
802 -open and close a font scope for each argument.
803 -.Sh COMPATIBILITY
804 -This section documents areas of questionable portability between
805 -implementations of the
806 -.Nm
807 -language.
808 -.Pp
809 -.Bl -dash -compact
810 -.It
811 -Do not depend on
812 -.Sx \&SH
813 -or
814 -.Sx \&SS
815 -to close out a literal context opened with
816 -.Sx \&nf .
817 -This behaviour may not be portable.
818 -.It
819 -In quoted literals, GNU troff allowed pair-wise double-quotes to produce
820 -a standalone double-quote in formatted output.
821 -It is not known whether this behaviour is exhibited by other formatters.
822 -.It
823 -troff suppresses a newline before
824 -.Sq \(aq
825 -macro output; in mandoc, it is an alias for the standard
826 -.Sq \&.
827 -control character.
828 -.It
829 -The
830 -.Sq \eh
831 -.Pq horizontal position ,
832 -.Sq \ev
833 -.Pq vertical position ,
834 -.Sq \em
835 -.Pq text colour ,
836 -.Sq \eM
837 -.Pq text filling colour ,
838 -.Sq \ez
839 -.Pq zero-length character ,
840 -.Sq \ew
841 -.Pq string length ,
842 -.Sq \ek
843 -.Pq horizontal position marker ,
844 -.Sq \eo
845 -.Pq text overstrike ,
846 -and
847 -.Sq \es
848 -.Pq text size
849 -escape sequences are all discarded in mandoc.
850 -.It
851 -The
852 -.Sq \ef
853 -scaling unit is accepted by mandoc, but rendered as the default unit.
854 -.It
855 -The
856 -.Sx \&sp
857 -macro does not accept negative values in mandoc.
858 -In GNU troff, this would result in strange behaviour.
859 -.It
860 -In page header lines, GNU troff versions up to and including 1.21
861 -only print
862 -.Ar volume
863 -names explicitly specified in the
864 -.Sx \&TH
865 -macro; mandoc and newer groff print the default volume name
866 -corresponding to the
867 -.Ar section
868 -number when no
869 -.Ar volume
870 -is given, like in
871 -.Xr mdoc 5 .
163 +.
164 +.It Nm \&.SH DESCRIPTION
165 +.
166 +A narrative overview of the command or function's external behavior. This
167 +includes how it interacts with files or data, and how it handles the standard
168 +input, standard output and standard error. Internals and implementation details
169 +are normally omitted. This section attempts to provide a succinct overview in
170 +answer to the question, "what does it do?"
171 +.Lp
172 +Literal text from the synopsis appears in constant width, as do literal
173 +filenames and references to items that appear elsewhere in the reference
174 +manuals. Arguments are italicized.
175 +.Lp
176 +If a command interprets either subcommands or an input grammar, its command
177 +interface or input grammar is normally described in a
178 +.Nm USAGE
179 +section, which follows the
180 +.Nm OPTIONS
181 +section. The
182 +.Nm DESCRIPTION
183 +section only
184 +describes the behavior of the command itself, not that of subcommands.
185 +.
186 +.It Nm \&.SH OPTIONS
187 +.
188 +The list of options along with a description of how each affects the command's
189 +operation.
190 +.
191 +.It Nm \&.SH RETURN VALUES
192 +.
193 +A list of the values the library routine will return to the calling program
194 +and the conditions that cause these values to be returned.
195 +.
196 +.It Nm \&.SH EXIT STATUS
197 +.
198 +A list of the values the utility will return to the calling program or shell,
199 +and the conditions that cause these values to be returned.
200 +.
201 +.It Nm \&.SH FILES
202 +.
203 +A list of files associated with the command or function.
204 +.
205 +.It Nm \&.SH SEE ALSO
206 +.
207 +A comma-separated list of related manual pages, followed by references to other
208 +published materials.
209 +.
210 +.It Nm \&.SH DIAGNOSTICS
211 +.
212 +A list of diagnostic messages and an explanation of each.
213 +.
214 +.It Nm \&.SH BUGS
215 +.
216 +A description of limitations, known defects, and possible problems associated
217 +with the command or function.
872 218 .El
873 -.Pp
219 +.Sh FILES
220 +.Pa /usr/share/man/whatis
221 +.Sh NOTES
874 222 The
875 -.Sx OP
876 -macro is part of the extended
877 223 .Nm
878 -macro set, and may not be portable to non-GNU troff implementations.
224 +package should not be used for new documentation. The
225 +.Xr mdoc 5 ,
226 +package is preferred, as it uses semantic markup rather than physical markup.
227 +.Sh CODE SET INDEPENDENCE
228 +When processed with
229 +.Xr mandoc 1 ,
230 +this package is Code Set Independent. However, when processed with
231 +legacy tools such as
232 +.Xr nroff 1
233 +and
234 +.Xr troff 1 ,
235 +the use of multi-byte characters may not be supported.
879 236 .Sh INTERFACE STABILITY
880 -.Nm "Obsolete Committed" .
237 +.Nm Obsolete Committed .
238 +The
239 +.Xr mdoc 5
240 +package should be used instead.
881 241 .Sh SEE ALSO
242 +.Xr eqn 1 ,
882 243 .Xr man 1 ,
883 244 .Xr mandoc 1 ,
884 -.Xr eqn 5 ,
885 -.Xr mandoc_char 5 ,
245 +.Xr nroff 1 ,
246 +.Xr troff 1 ,
247 +.Xr tbl 1 ,
248 +.Xr whatis 1 ,
886 249 .Xr mdoc 5 ,
887 -.Xr roff 5 ,
888 -.Xr tbl 5
889 -.Sh HISTORY
890 -The
891 -.Nm
892 -language first appeared as a macro package for the roff typesetting
893 -system in
894 -.At v7 .
895 -It was later rewritten by James Clark as a macro package for groff.
896 -Eric S. Raymond wrote the extended
897 -.Nm
898 -macros for groff in 2007.
899 -The stand-alone implementation that is part of the
900 -.Xr mandoc 1
901 -utility written by Kristaps Dzonsons appeared in
902 -.Ox 4.6 .
903 -.Sh AUTHORS
904 -This
905 -.Nm
906 -reference was written by
907 -.An Kristaps Dzonsons ,
908 -.Mt kristaps@bsd.lv .
909 -.Sh CAVEATS
910 -Do not use this language.
911 -Use
912 -.Xr mdoc 5 ,
913 -instead.
250 +.Rs
251 +.%A Dale Dougherty and Tim O'Reilly
252 +.%B Unix Text Processing
253 +.Re
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX