]> git.cameronkatri.com Git - mandoc.git/blob - man.7
`Sm' no longer produces a linebreak when used in `Bd'.
[mandoc.git] / man.7
1 .\" $Id: man.7,v 1.89 2010/09/26 19:46:48 schwarze Exp $
2 .\"
3 .\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
4 .\"
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
8 .\"
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .\"
17 .Dd $Mdocdate: September 26 2010 $
18 .Dt MAN 7
19 .Os
20 .Sh NAME
21 .Nm man
22 .Nd man language reference
23 .Sh DESCRIPTION
24 The
25 .Nm man
26 language was historically used to format
27 .Ux
28 manuals.
29 This reference document describes its syntax, structure, and usage.
30 .Pp
31 .Bf -emphasis
32 Do not use
33 .Nm
34 to write your manuals.
35 .Ef
36 Use the
37 .Xr mdoc 7
38 language, instead.
39 .Pp
40 A
41 .Nm
42 document follows simple rules: lines beginning with the control
43 character
44 .Sq \&.
45 are parsed for macros.
46 Other lines are interpreted within the scope of
47 prior macros:
48 .Bd -literal -offset indent
49 \&.SH Macro lines change control state.
50 Other lines are interpreted within the current state.
51 .Ed
52 .Sh INPUT ENCODING
53 .Nm
54 documents may contain only graphable 7-bit ASCII characters, the
55 space character, and the tab character.
56 All manuals must have
57 .Ux
58 line termination.
59 .Pp
60 Blank lines are acceptable; where found, the output will assert a
61 vertical space.
62 .Ss Comments
63 Text following a
64 .Sq \e\*q ,
65 whether in a macro or free-form text line, is ignored to the end of
66 line.
67 A macro line with only a control character and comment escape,
68 .Sq \&.\e\*q ,
69 is also ignored.
70 Macro lines with only a control character and optionally whitespace are
71 stripped from input.
72 .Ss Special Characters
73 Special characters may occur in both macro and free-form lines.
74 Sequences begin with the escape character
75 .Sq \e
76 followed by either an open-parenthesis
77 .Sq \&(
78 for two-character sequences; an open-bracket
79 .Sq \&[
80 for n-character sequences (terminated at a close-bracket
81 .Sq \&] ) ;
82 or a single one-character sequence.
83 See
84 .Xr mandoc_char 7
85 for a complete list.
86 Examples include
87 .Sq \e(em
88 .Pq em-dash
89 and
90 .Sq \ee
91 .Pq back-slash .
92 .Ss Text Decoration
93 Terms may be text-decorated using the
94 .Sq \ef
95 escape followed by an indicator: B (bold), I (italic), R (Roman), or P
96 (revert to previous mode):
97 .Pp
98 .D1 \efBbold\efR \efIitalic\efP
99 .Pp
100 A numerical representation 3, 2, or 1 (bold, italic, and Roman,
101 respectively) may be used instead.
102 A text decoration is only valid, if specified in free-form text, until
103 the next macro invocation; if specified within a macro, it's only valid
104 until the macro closes scope.
105 Note that macros like
106 .Sx \&BR
107 open and close a font scope with each argument.
108 .Pp
109 The
110 .Sq \ef
111 attribute is forgotten when entering or exiting a macro block.
112 .Ss Whitespace
113 Whitespace consists of the space character.
114 In free-form lines, whitespace is preserved within a line; unescaped
115 trailing spaces are stripped from input (unless in a literal context).
116 Blank free-form lines, which may include spaces, are permitted and
117 rendered as an empty line.
118 .Pp
119 In macro lines, whitespace delimits arguments and is discarded.
120 If arguments are quoted, whitespace within the quotes is retained.
121 .Ss Dates
122 The
123 .Sx \&TH
124 macro is the only
125 .Nm
126 macro that requires a date.
127 The form for this date is the ISO-8601
128 standard
129 .Cm YYYY-MM-DD .
130 .Ss Scaling Widths
131 Many macros support scaled widths for their arguments, such as
132 stipulating a two-inch paragraph indentation with the following:
133 .Bd -literal -offset indent
134 \&.HP 2i
135 .Ed
136 .Pp
137 The syntax for scaled widths is
138 .Sq Li [+-]?[0-9]*.[0-9]*[:unit:]? ,
139 where a decimal must be preceded or proceeded by at least one digit.
140 Negative numbers, while accepted, are truncated to zero.
141 The following scaling units are accepted:
142 .Pp
143 .Bl -tag -width Ds -offset indent -compact
144 .It c
145 centimetre
146 .It i
147 inch
148 .It P
149 pica (~1/6 inch)
150 .It p
151 point (~1/72 inch)
152 .It f
153 synonym for
154 .Sq u
155 .It v
156 default vertical span
157 .It m
158 width of rendered
159 .Sq m
160 .Pq em
161 character
162 .It n
163 width of rendered
164 .Sq n
165 .Pq en
166 character
167 .It u
168 default horizontal span
169 .It M
170 mini-em (~1/100 em)
171 .El
172 .Pp
173 Using anything other than
174 .Sq m ,
175 .Sq n ,
176 .Sq u ,
177 or
178 .Sq v
179 is necessarily non-portable across output media.
180 .Pp
181 If a scaling unit is not provided, the numerical value is interpreted
182 under the default rules of
183 .Sq v
184 for vertical spaces and
185 .Sq u
186 for horizontal ones.
187 .Em Note :
188 this differs from
189 .Xr mdoc 7 ,
190 which, if a unit is not provided, will instead interpret the string as
191 literal text.
192 .Ss Sentence Spacing
193 When composing a manual, make sure that sentences end at the end of
194 a line.
195 By doing so, front-ends will be able to apply the proper amount of
196 spacing after the end of sentence (unescaped) period, exclamation mark,
197 or question mark followed by zero or more non-sentence closing
198 delimiters
199 .Po
200 .Sq \&) ,
201 .Sq \&] ,
202 .Sq \&' ,
203 .Sq \&"
204 .Pc .
205 .Sh MANUAL STRUCTURE
206 Each
207 .Nm
208 document must contain the
209 .Sx \&TH
210 macro describing the document's section and title.
211 It may occur anywhere in the document, although conventionally it
212 appears as the first macro.
213 .Pp
214 Beyond
215 .Sx \&TH ,
216 at least one macro or text node must appear in the document.
217 Documents are generally structured as follows:
218 .Bd -literal -offset indent
219 \&.TH FOO 1 2009-10-10
220 \&.SH NAME
221 \efBfoo\efR \e(en a description goes here
222 \&.\e\*q .SH LIBRARY
223 \&.\e\*q For sections 2 & 3 only.
224 \&.\e\*q Not used in OpenBSD.
225 \&.SH SYNOPSIS
226 \efBfoo\efR [\efB\e-options\efR] arguments...
227 \&.SH DESCRIPTION
228 The \efBfoo\efR utility processes files...
229 \&.\e\*q .SH IMPLEMENTATION NOTES
230 \&.\e\*q Not used in OpenBSD.
231 \&.\e\*q .SH RETURN VALUES
232 \&.\e\*q For sections 2, 3, & 9 only.
233 \&.\e\*q .SH ENVIRONMENT
234 \&.\e\*q For sections 1, 6, 7, & 8 only.
235 \&.\e\*q .SH FILES
236 \&.\e\*q .SH EXIT STATUS
237 \&.\e\*q For sections 1, 6, & 8 only.
238 \&.\e\*q .SH EXAMPLES
239 \&.\e\*q .SH DIAGNOSTICS
240 \&.\e\*q For sections 1, 4, 6, 7, & 8 only.
241 \&.\e\*q .SH ERRORS
242 \&.\e\*q For sections 2, 3, & 9 only.
243 \&.\e\*q .SH SEE ALSO
244 \&.\e\*q .BR foo ( 1 )
245 \&.\e\*q .SH STANDARDS
246 \&.\e\*q .SH HISTORY
247 \&.\e\*q .SH AUTHORS
248 \&.\e\*q .SH CAVEATS
249 \&.\e\*q .SH BUGS
250 \&.\e\*q .SH SECURITY CONSIDERATIONS
251 \&.\e\*q Not used in OpenBSD.
252 .Ed
253 .Pp
254 The sections in a
255 .Nm
256 document are conventionally ordered as they appear above.
257 Sections should be composed as follows:
258 .Bl -ohang -offset indent
259 .It Em NAME
260 The name(s) and a short description of the documented material.
261 The syntax for this is generally as follows:
262 .Pp
263 .D1 \efBname\efR \e(en description
264 .It Em LIBRARY
265 The name of the library containing the documented material, which is
266 assumed to be a function in a section 2 or 3 manual.
267 For functions in the C library, this may be as follows:
268 .Pp
269 .D1 Standard C Library (libc, -lc)
270 .It Em SYNOPSIS
271 Documents the utility invocation syntax, function call syntax, or device
272 configuration.
273 .Pp
274 For the first, utilities (sections 1, 6, and 8), this is
275 generally structured as follows:
276 .Pp
277 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
278 .Pp
279 For the second, function calls (sections 2, 3, 9):
280 .Pp
281 .D1 \&.B char *name(char *\efIarg\efR);
282 .Pp
283 And for the third, configurations (section 4):
284 .Pp
285 .D1 \&.B name* at cardbus ? function ?
286 .Pp
287 Manuals not in these sections generally don't need a
288 .Em SYNOPSIS .
289 .It Em DESCRIPTION
290 This expands upon the brief, one-line description in
291 .Em NAME .
292 It usually contains a break-down of the options (if documenting a
293 command).
294 .It Em IMPLEMENTATION NOTES
295 Implementation-specific notes should be kept here.
296 This is useful when implementing standard functions that may have side
297 effects or notable algorithmic implications.
298 .It Em RETURN VALUES
299 This section documents the return values of functions in sections 2, 3, and 9.
300 .It Em ENVIRONMENT
301 Documents any usages of environment variables, e.g.,
302 .Xr environ 7 .
303 .It Em FILES
304 Documents files used.
305 It's helpful to document both the file name and a short description of how
306 the file is used (created, modified, etc.).
307 .It Em EXIT STATUS
308 This section documents the command exit status for
309 section 1, 6, and 8 utilities.
310 Historically, this information was described in
311 .Em DIAGNOSTICS ,
312 a practise that is now discouraged.
313 .It Em EXAMPLES
314 Example usages.
315 This often contains snippets of well-formed,
316 well-tested invocations.
317 Make sure that examples work properly!
318 .It Em DIAGNOSTICS
319 Documents error conditions.
320 This is most useful in section 4 manuals.
321 Historically, this section was used in place of
322 .Em EXIT STATUS
323 for manuals in sections 1, 6, and 8; however, this practise is
324 discouraged.
325 .It Em ERRORS
326 Documents error handling in sections 2, 3, and 9.
327 .It Em SEE ALSO
328 References other manuals with related topics.
329 This section should exist for most manuals.
330 .Pp
331 .D1 \&.BR bar \&( 1 \&),
332 .Pp
333 Cross-references should conventionally be ordered
334 first by section, then alphabetically.
335 .It Em STANDARDS
336 References any standards implemented or used, such as
337 .Pp
338 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
339 .Pp
340 If not adhering to any standards, the
341 .Em HISTORY
342 section should be used.
343 .It Em HISTORY
344 A brief history of the subject, including where support first appeared.
345 .It Em AUTHORS
346 Credits to the person or persons who wrote the code and/or documentation.
347 Authors should generally be noted by both name and email address.
348 .It Em CAVEATS
349 Common misuses and misunderstandings should be explained
350 in this section.
351 .It Em BUGS
352 Known bugs, limitations, and work-arounds should be described
353 in this section.
354 .It Em SECURITY CONSIDERATIONS
355 Documents any security precautions that operators should consider.
356 .El
357 .Sh MACRO SYNTAX
358 Macros are one to three characters in length and begin with a
359 control character,
360 .Sq \&. ,
361 at the beginning of the line.
362 The
363 .Sq \(aq
364 macro control character is also accepted.
365 An arbitrary amount of whitespace (spaces or tabs) may sit between the
366 control character and the macro name.
367 Thus, the following are equivalent:
368 .Bd -literal -offset indent
369 \&.PP
370 \&.\ \ \ PP
371 .Ed
372 .Pp
373 The
374 .Nm
375 macros are classified by scope: line scope or block scope.
376 Line macros are only scoped to the current line (and, in some
377 situations, the subsequent line).
378 Block macros are scoped to the current line and subsequent lines until
379 closed by another block macro.
380 .Ss Line Macros
381 Line macros are generally scoped to the current line, with the body
382 consisting of zero or more arguments.
383 If a macro is scoped to the next line and the line arguments are empty,
384 the next line, which must be text, is used instead.
385 Thus:
386 .Bd -literal -offset indent
387 \&.I
388 foo
389 .Ed
390 .Pp
391 is equivalent to
392 .Sq \&.I foo .
393 If next-line macros are invoked consecutively, only the last is used.
394 If a next-line macro is followed by a non-next-line macro, an error is
395 raised, except for
396 .Sx \&br ,
397 .Sx \&sp ,
398 and
399 .Sx \&na .
400 .Pp
401 The syntax is as follows:
402 .Bd -literal -offset indent
403 \&.YO \(lBbody...\(rB
404 \(lBbody...\(rB
405 .Ed
406 .Pp
407 .Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX"
408 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
409 .It Sx \&AT Ta <=1 Ta current Ta \&
410 .It Sx \&B Ta n Ta next-line Ta \&
411 .It Sx \&BI Ta n Ta current Ta \&
412 .It Sx \&BR Ta n Ta current Ta \&
413 .It Sx \&DT Ta 0 Ta current Ta \&
414 .It Sx \&I Ta n Ta next-line Ta \&
415 .It Sx \&IB Ta n Ta current Ta \&
416 .It Sx \&IR Ta n Ta current Ta \&
417 .\" .It Sx \&PD Ta n Ta current Ta compat
418 .It Sx \&R Ta n Ta next-line Ta \&
419 .It Sx \&RB Ta n Ta current Ta \&
420 .It Sx \&RI Ta n Ta current Ta \&
421 .It Sx \&SB Ta n Ta next-line Ta \&
422 .It Sx \&SM Ta n Ta next-line Ta \&
423 .It Sx \&TH Ta >1, <6 Ta current Ta \&
424 .It Sx \&UC Ta <=1 Ta current Ta \&
425 .It Sx \&br Ta 0 Ta current Ta compat
426 .It Sx \&fi Ta 0 Ta current Ta compat
427 .It Sx \&i Ta n Ta current Ta compat
428 .It Sx \&in Ta 1 Ta current Ta compat
429 .It Sx \&na Ta 0 Ta current Ta compat
430 .It Sx \&nf Ta 0 Ta current Ta compat
431 .It Sx \&r Ta 0 Ta current Ta compat
432 .It Sx \&sp Ta 1 Ta current Ta compat
433 .\" .It Sx \&Sp Ta <1 Ta current Ta compat
434 .\" .It Sx \&Vb Ta <1 Ta current Ta compat
435 .\" .It Sx \&Ve Ta 0 Ta current Ta compat
436 .El
437 .Pp
438 Macros marked as
439 .Qq compat
440 are included for compatibility with the significant corpus of existing
441 manuals that mix dialects of roff.
442 These macros should not be used for portable
443 .Nm
444 manuals.
445 .Ss Block Macros
446 Block macros comprise a head and body.
447 As with in-line macros, the head is scoped to the current line and, in
448 one circumstance, the next line (the next-line stipulations as in
449 .Sx Line Macros
450 apply here as well).
451 .Pp
452 The syntax is as follows:
453 .Bd -literal -offset indent
454 \&.YO \(lBhead...\(rB
455 \(lBhead...\(rB
456 \(lBbody...\(rB
457 .Ed
458 .Pp
459 The closure of body scope may be to the section, where a macro is closed
460 by
461 .Sx \&SH ;
462 sub-section, closed by a section or
463 .Sx \&SS ;
464 part, closed by a section, sub-section, or
465 .Sx \&RE ;
466 or paragraph, closed by a section, sub-section, part,
467 .Sx \&HP ,
468 .Sx \&IP ,
469 .Sx \&LP ,
470 .Sx \&P ,
471 .Sx \&PP ,
472 or
473 .Sx \&TP .
474 No closure refers to an explicit block closing macro.
475 .Pp
476 As a rule, block macros may not be nested; thus, calling a block macro
477 while another block macro scope is open, and the open scope is not
478 implicitly closed, is syntactically incorrect.
479 .Pp
480 .Bl -column -compact -offset indent "MacroX" "ArgumentsX" "Head ScopeX" "sub-sectionX" "compatX"
481 .It Em Macro Ta Em Arguments Ta Em Head Scope Ta Em Body Scope Ta Em Notes
482 .It Sx \&HP Ta <2 Ta current Ta paragraph Ta \&
483 .It Sx \&IP Ta <3 Ta current Ta paragraph Ta \&
484 .It Sx \&LP Ta 0 Ta current Ta paragraph Ta \&
485 .It Sx \&P Ta 0 Ta current Ta paragraph Ta \&
486 .It Sx \&PP Ta 0 Ta current Ta paragraph Ta \&
487 .It Sx \&RE Ta 0 Ta current Ta none Ta compat
488 .It Sx \&RS Ta 1 Ta current Ta part Ta compat
489 .It Sx \&SH Ta >0 Ta next-line Ta section Ta \&
490 .It Sx \&SS Ta >0 Ta next-line Ta sub-section Ta \&
491 .It Sx \&TP Ta n Ta next-line Ta paragraph Ta \&
492 .El
493 .Pp
494 Macros marked
495 .Qq compat
496 are as mentioned in
497 .Sx Line Macros .
498 .Pp
499 If a block macro is next-line scoped, it may only be followed by in-line
500 macros for decorating text.
501 .Sh REFERENCE
502 This section is a canonical reference to all macros, arranged
503 alphabetically.
504 For the scoping of individual macros, see
505 .Sx MACRO SYNTAX .
506 .Ss \&AT
507 Sets the volume for the footer for compatibility with man pages from
508 .Tn AT&T UNIX
509 releases.
510 The optional arguments specify which release it is from.
511 .Ss \&B
512 Text is rendered in bold face.
513 .Pp
514 See also
515 .Sx \&I ,
516 .Sx \&R ,
517 .Sx \&b ,
518 .Sx \&i ,
519 and
520 .Sx \&r .
521 .Ss \&BI
522 Text is rendered alternately in bold face and italic.
523 Thus,
524 .Sq .BI this word and that
525 causes
526 .Sq this
527 and
528 .Sq and
529 to render in bold face, while
530 .Sq word
531 and
532 .Sq that
533 render in italics.
534 Whitespace between arguments is omitted in output.
535 .Pp
536 Examples:
537 .Pp
538 .D1 \&.BI bold italic bold italic
539 .Pp
540 The output of this example will be emboldened
541 .Dq bold
542 and italicised
543 .Dq italic ,
544 with spaces stripped between arguments.
545 .Pp
546 See also
547 .Sx \&IB ,
548 .Sx \&BR ,
549 .Sx \&RB ,
550 .Sx \&RI ,
551 and
552 .Sx \&IR .
553 .Ss \&BR
554 Text is rendered alternately in bold face and roman (the default font).
555 Whitespace between arguments is omitted in output.
556 .Pp
557 See
558 .Sx \&BI
559 for an equivalent example.
560 .Pp
561 See also
562 .Sx \&BI ,
563 .Sx \&IB ,
564 .Sx \&RB ,
565 .Sx \&RI ,
566 and
567 .Sx \&IR .
568 .Ss \&DT
569 Has no effect.
570 Included for compatibility.
571 .Ss \&HP
572 Begin a paragraph whose initial output line is left-justified, but
573 subsequent output lines are indented, with the following syntax:
574 .Bd -filled -offset indent
575 .Pf \. Sx \&HP
576 .Op Cm width
577 .Ed
578 .Pp
579 The
580 .Cm width
581 argument must conform to
582 .Sx Scaling Widths .
583 If specified, it's saved for later paragraph left-margins; if unspecified, the
584 saved or default width is used.
585 .Pp
586 See also
587 .Sx \&IP ,
588 .Sx \&LP ,
589 .Sx \&P ,
590 .Sx \&PP ,
591 and
592 .Sx \&TP .
593 .Ss \&I
594 Text is rendered in italics.
595 .Pp
596 See also
597 .Sx \&B ,
598 .Sx \&R ,
599 .Sx \&b ,
600 .Sx \&i ,
601 and
602 .Sx \&r .
603 .Ss \&IB
604 Text is rendered alternately in italics and bold face.
605 Whitespace between arguments is omitted in output.
606 .Pp
607 See
608 .Sx \&BI
609 for an equivalent example.
610 .Pp
611 See also
612 .Sx \&BI ,
613 .Sx \&BR ,
614 .Sx \&RB ,
615 .Sx \&RI ,
616 and
617 .Sx \&IR .
618 .Ss \&IP
619 Begin an indented paragraph with the following syntax:
620 .Bd -filled -offset indent
621 .Pf \. Sx \&IP
622 .Op Cm head Op Cm width
623 .Ed
624 .Pp
625 The
626 .Cm width
627 argument defines the width of the left margin and is defined by
628 .Sx Scaling Widths .
629 It's saved for later paragraph left-margins; if unspecified, the saved or
630 default width is used.
631 .Pp
632 The
633 .Cm head
634 argument is used as a leading term, flushed to the left margin.
635 This is useful for bulleted paragraphs and so on.
636 .Pp
637 See also
638 .Sx \&HP ,
639 .Sx \&LP ,
640 .Sx \&P ,
641 .Sx \&PP ,
642 and
643 .Sx \&TP .
644 .Ss \&IR
645 Text is rendered alternately in italics and roman (the default font).
646 Whitespace between arguments is omitted in output.
647 .Pp
648 See
649 .Sx \&BI
650 for an equivalent example.
651 .Pp
652 See also
653 .Sx \&BI ,
654 .Sx \&IB ,
655 .Sx \&BR ,
656 .Sx \&RB ,
657 and
658 .Sx \&RI .
659 .Ss \&LP
660 Begin an undecorated paragraph.
661 The scope of a paragraph is closed by a subsequent paragraph,
662 sub-section, section, or end of file.
663 The saved paragraph left-margin width is reset to the default.
664 .Pp
665 See also
666 .Sx \&HP ,
667 .Sx \&IP ,
668 .Sx \&P ,
669 .Sx \&PP ,
670 and
671 .Sx \&TP .
672 .Ss \&P
673 Synonym for
674 .Sx \&LP .
675 .Pp
676 See also
677 .Sx \&HP ,
678 .Sx \&IP ,
679 .Sx \&LP ,
680 .Sx \&PP ,
681 and
682 .Sx \&TP .
683 .Ss \&PP
684 Synonym for
685 .Sx \&LP .
686 .Pp
687 See also
688 .Sx \&HP ,
689 .Sx \&IP ,
690 .Sx \&LP ,
691 .Sx \&P ,
692 and
693 .Sx \&TP .
694 .Ss \&R
695 Text is rendered in roman (the default font).
696 .Pp
697 See also
698 .Sx \&I ,
699 .Sx \&B ,
700 .Sx \&b ,
701 .Sx \&i ,
702 and
703 .Sx \&r .
704 .Ss \&RB
705 Text is rendered alternately in roman (the default font) and bold face.
706 Whitespace between arguments is omitted in output.
707 .Pp
708 See
709 .Sx \&BI
710 for an equivalent example.
711 .Pp
712 See also
713 .Sx \&BI ,
714 .Sx \&IB ,
715 .Sx \&BR ,
716 .Sx \&RI ,
717 and
718 .Sx \&IR .
719 .Ss \&RE
720 Explicitly close out the scope of a prior
721 .Sx \&RS .
722 .Ss \&RI
723 Text is rendered alternately in roman (the default font) and italics.
724 Whitespace between arguments is omitted in output.
725 .Pp
726 See
727 .Sx \&BI
728 for an equivalent example.
729 .Pp
730 See also
731 .Sx \&BI ,
732 .Sx \&IB ,
733 .Sx \&BR ,
734 .Sx \&RB ,
735 and
736 .Sx \&IR .
737 .Ss \&RS
738 Begin a part setting the left margin.
739 The left margin controls the offset, following an initial indentation,
740 to un-indented text such as that of
741 .Sx \&PP .
742 This has the following syntax:
743 .Bd -filled -offset indent
744 .Pf \. Sx \&Rs
745 .Op Cm width
746 .Ed
747 .Pp
748 The
749 .Cm width
750 argument must conform to
751 .Sx Scaling Widths .
752 If not specified, the saved or default width is used.
753 .Ss \&SB
754 Text is rendered in small size (one point smaller than the default font)
755 bold face.
756 .Ss \&SH
757 Begin a section.
758 The scope of a section is only closed by another section or the end of
759 file.
760 The paragraph left-margin width is reset to the default.
761 .Ss \&SM
762 Text is rendered in small size (one point smaller than the default
763 font).
764 .Ss \&SS
765 Begin a sub-section.
766 The scope of a sub-section is closed by a subsequent sub-section,
767 section, or end of file.
768 The paragraph left-margin width is reset to the default.
769 .Ss \&TH
770 Sets the title of the manual page with the following syntax:
771 .Bd -filled -offset indent
772 .Pf \. Sx \&TH
773 .Cm title section
774 .Op Cm date Op Cm source Op Cm volume
775 .Ed
776 .Pp
777 At least the upper-case document
778 .Cm title
779 and the manual
780 .Cm section
781 arguments must be provided.
782 The
783 .Cm date
784 argument should be formatted as described in
785 .Sx Dates ,
786 but will be printed verbatim if it is not.
787 If the date is not specified, the current date is used.
788 The
789 .Cm source
790 string specifies the organisation providing the utility.
791 The
792 .Cm volume
793 string replaces the default rendered volume, which is dictated by the
794 manual section.
795 .Pp
796 Examples:
797 .Pp
798 .D1 \&.TH CVS 5 "1992-02-12" GNU
799 .Ss \&TP
800 Begin a paragraph where the head, if exceeding the indentation width, is
801 followed by a newline; if not, the body follows on the same line after a
802 buffer to the indentation width.
803 Subsequent output lines are indented.
804 The syntax is as follows:
805 .Bd -filled -offset indent
806 .Pf \. Sx \&TP
807 .Op Cm width
808 .Ed
809 .Pp
810 The
811 .Cm width
812 argument must conform to
813 .Sx Scaling Widths .
814 If specified, it's saved for later paragraph left-margins; if
815 unspecified, the saved or default width is used.
816 .Pp
817 See also
818 .Sx \&HP ,
819 .Sx \&IP ,
820 .Sx \&LP ,
821 .Sx \&P ,
822 and
823 .Sx \&PP .
824 .\" .
825 .\" .
826 .\" .Ss \&PD
827 .\" Has no effect. Included for compatibility.
828 .\" .
829 .\" .
830 .Ss \&UC
831 Sets the volume for the footer for compatibility with man pages from
832 BSD releases.
833 The optional first argument specifies which release it is from.
834 .Ss \&br
835 Breaks the current line.
836 Consecutive invocations have no further effect.
837 .Pp
838 See also
839 .Sx \&sp .
840 .Ss \&fi
841 End literal mode begun by
842 .Sx \&nf .
843 .Ss \&i
844 Italicise arguments.
845 Synonym for
846 .Sx \&I .
847 .Pp
848 See also
849 .Sx \&B ,
850 .Sx \&I ,
851 .Sx \&R .
852 .Sx \&b ,
853 and
854 .Sx \&r .
855 .Ss \&in
856 Indent relative to the current indentation:
857 .Pp
858 .D1 Pf \. Sx \&in Op Cm width
859 .Pp
860 If
861 .Cm width
862 is signed, the new offset is relative.
863 Otherwise, it is absolute.
864 This value is reset upon the next paragraph, section, or sub-section.
865 .Ss \&na
866 Don't align to the right margin.
867 .Ss \&nf
868 Begin literal mode: all subsequent free-form lines have their end of
869 line boundaries preserved.
870 May be ended by
871 .Sx \&fi .
872 .Ss \&r
873 Fonts and styles (bold face, italics) reset to roman (default font).
874 .Pp
875 See also
876 .Sx \&B ,
877 .Sx \&I ,
878 .Sx \&R ,
879 .Sx \&b ,
880 and
881 .Sx \&i .
882 .Ss \&sp
883 Insert vertical spaces into output with the following syntax:
884 .Bd -filled -offset indent
885 .Pf \. Sx \&sp
886 .Op Cm height
887 .Ed
888 .Pp
889 Insert
890 .Cm height
891 spaces, which must conform to
892 .Sx Scaling Widths .
893 If 0, this is equivalent to the
894 .Sx \&br
895 macro.
896 Defaults to 1, if unspecified.
897 .Pp
898 See also
899 .Sx \&br .
900 .\" .Ss \&Sp
901 .\" A synonym for
902 .\" .Sx \&sp
903 .\" .Cm 0.5v .
904 .\" .
905 .\" .Ss \&Vb
906 .\" A synonym for
907 .\" .Sx \&nf .
908 .\" Accepts an argument (the height of the formatted space) which is
909 .\" disregarded.
910 .\" .
911 .\" .Ss \&Ve
912 .\" A synonym for
913 .\" .Sx \&fi .
914 .\" .
915 .Sh COMPATIBILITY
916 This section documents areas of questionable portability between
917 implementations of the
918 .Nm
919 language.
920 .Pp
921 .Bl -dash -compact
922 .It
923 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
924 a standalone double-quote in formatted output.
925 It is not known whether this behaviour is exhibited by other formatters.
926 .It
927 troff suppresses a newline before
928 .Sq \(aq
929 macro output; in mandoc, it is an alias for the standard
930 .Sq \&.
931 control character.
932 .It
933 The
934 .Sq \eh
935 .Pq horizontal position ,
936 .Sq \ev
937 .Pq vertical position ,
938 .Sq \em
939 .Pq text colour ,
940 .Sq \eM
941 .Pq text filling colour ,
942 .Sq \ez
943 .Pq zero-length character ,
944 .Sq \ew
945 .Pq string length ,
946 .Sq \ek
947 .Pq horizontal position marker ,
948 .Sq \eo
949 .Pq text overstrike ,
950 and
951 .Sq \es
952 .Pq text size
953 escape sequences are all discarded in mandoc.
954 .It
955 The
956 .Sq \ef
957 scaling unit is accepted by mandoc, but rendered as the default unit.
958 .It
959 The
960 .Sx \&sp
961 macro does not accept negative values in mandoc.
962 In GNU troff, this would result in strange behaviour.
963 .El
964 .Sh SEE ALSO
965 .Xr man 1 ,
966 .Xr mandoc 1 ,
967 .Xr mandoc_char 7 ,
968 .Xr mdoc 7
969 .Sh HISTORY
970 The
971 .Nm
972 language first appeared as a macro package for the roff typesetting
973 system in
974 .At v7 .
975 It was later rewritten by James Clark as a macro package for groff.
976 The stand-alone implementation that is part of the
977 .Xr mandoc 1
978 utility written by Kristaps Dzonsons appeared in
979 .Ox 4.6 .
980 .Sh AUTHORS
981 This
982 .Nm
983 reference was written by
984 .An Kristaps Dzonsons Aq kristaps@bsd.lv .
985 .Sh CAVEATS
986 Do not use this language.
987 Use
988 .Xr mdoc 7 ,
989 instead.