]> git.cameronkatri.com Git - mandoc.git/blob - man.7
Introduce ARGS_PEND for `It -column' end-of-line special casing.
[mandoc.git] / man.7
1 .\" $Id: man.7,v 1.66 2010/05/08 22:26:39 kristaps Exp $
2 .\"
3 .\" Copyright (c) 2009 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: May 8 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. This reference document describes its syntax, structure, and
29 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 An
41 .Nm
42 document follows simple rules: lines beginning with the control
43 character
44 .Sq \&.
45 are parsed for macros. Other lines are interpreted within the scope of
46 prior macros:
47 .Bd -literal -offset indent
48 \&.SH Macro lines change control state.
49 Other lines are interpreted within the current state.
50 .Ed
51 .Sh INPUT ENCODING
52 .Nm
53 documents may contain only graphable 7-bit ASCII characters, the
54 space character, and the tabs character. All manuals must have
55 .Ux
56 line termination.
57 .Pp
58 Blank lines are acceptable; where found, the output will assert a
59 vertical space.
60 .Ss Comments
61 Text following a
62 .Sq \e\*" ,
63 whether in a macro or free-form text line, is ignored to the end of
64 line. A macro line with only a control character and comment escape,
65 .Sq \&.\e" ,
66 is also ignored. Macro lines with only a control character and
67 optionally whitespace are stripped from input.
68 .Ss Special Characters
69 Special characters may occur in both macro and free-form lines.
70 Sequences begin with the escape character
71 .Sq \e
72 followed by either an open-parenthesis
73 .Sq \&(
74 for two-character sequences; an open-bracket
75 .Sq \&[
76 for n-character sequences (terminated at a close-bracket
77 .Sq \&] ) ;
78 or a single one-character sequence. See
79 .Xr mandoc_char 7
80 for a complete list. Examples include
81 .Sq \e(em
82 .Pq em-dash
83 and
84 .Sq \ee
85 .Pq back-slash .
86 .Ss Text Decoration
87 Terms may be text-decorated using the
88 .Sq \ef
89 escape followed by an indicator: B (bold), I, (italic), R (Roman), or P
90 (revert to previous mode):
91 .Pp
92 .D1 \efBbold\efR \efIitalic\efP
93 .Pp
94 A numerical representation 3, 2, or 1 (bold, italic, and Roman,
95 respectively) may be used instead. A text decoration is only valid, if
96 specified in free-form text, until the next macro invocation; if
97 specified within a macro, it's only valid until the macro closes scope.
98 Note that macros like
99 .Sx \&BR
100 open and close a font scope with each argument.
101 .Pp
102 Text may also be sized with the
103 .Sq \es
104 escape, whose syntax is one of
105 .Sq \es+-n
106 for one-digit numerals;
107 .Sq \es(+-nn
108 or
109 .Sq \es+-(nn
110 for two-digit numerals; and
111 .Sq \es[+-N] ,
112 .Sq \es+-[N] ,
113 .Sq \es'+-N' ,
114 or
115 .Sq \es+-'N'
116 for arbitrary-digit numerals:
117 .Pp
118 .D1 \es+1bigger\es-1
119 .D1 \es[+10]much bigger\es[-10]
120 .D1 \es+(10much bigger\es-(10
121 .D1 \es+'100'much much bigger\es-'100'
122 .Pp
123 Both
124 .Sq \es
125 and
126 .Sq \ef
127 attributes are forgotten when entering or exiting a macro block.
128 .Ss Whitespace
129 Whitespace consists of the space character.
130 In free-form lines, whitespace is preserved within a line; un-escaped
131 trailing spaces are stripped from input (unless in a literal context).
132 Blank free-form lines, which may include spaces, are permitted and
133 rendered as an empty line.
134 .Pp
135 In macro lines, whitespace delimits arguments and is discarded. If
136 arguments are quoted, whitespace within the quotes is retained.
137 .Ss Dates
138 The
139 .Sx \&TH
140 macro is the only
141 .Nm
142 macro that requires a date. The form for this date is the ISO-8601
143 standard
144 .Cm YYYY-MM-DD .
145 .Ss Scaling Widths
146 Many macros support scaled widths for their arguments, such as
147 stipulating a two-inch paragraph indentation with the following:
148 .Bd -literal -offset indent
149 \&.HP 2i
150 .Ed
151 .Pp
152 The syntax for scaled widths is
153 .Sq Li [+-]?[0-9]*.[0-9]*[:unit:]? ,
154 where a decimal must be preceded or proceeded by at least one digit.
155 Negative numbers, while accepted, are truncated to zero. The following
156 scaling units are accepted:
157 .Pp
158 .Bl -tag -width Ds -offset indent -compact
159 .It c
160 centimetre
161 .It i
162 inch
163 .It P
164 pica (~1/6 inch)
165 .It p
166 point (~1/72 inch)
167 .It f
168 synonym for
169 .Sq u
170 .It v
171 default vertical span
172 .It m
173 width of rendered
174 .Sq m
175 .Pq em
176 character
177 .It n
178 width of rendered
179 .Sq n
180 .Pq en
181 character
182 .It u
183 default horizontal span
184 .It M
185 mini-em (~1/100 em)
186 .El
187 .Pp
188 Using anything other than
189 .Sq m ,
190 .Sq n ,
191 .Sq u ,
192 or
193 .Sq v
194 is necessarily non-portable across output media.
195 .Pp
196 If a scaling unit is not provided, the numerical value is interpreted
197 under the default rules of
198 .Sq v
199 for vertical spaces and
200 .Sq u
201 for horizontal ones.
202 .Em Note :
203 this differs from
204 .Xr mdoc 7 ,
205 which, if a unit is not provided, will instead interpret the string as
206 literal text.
207 .Sh MANUAL STRUCTURE
208 Each
209 .Nm
210 document must contain contains at least the
211 .Sx \&TH
212 macro describing the document's section and title. It may occur
213 anywhere in the document, although conventionally, it appears as the
214 first macro.
215 .Pp
216 Beyond
217 .Sx \&TH ,
218 at least one macro or text node must appear in the document. Documents
219 are generally structured as follows:
220 .Bd -literal -offset indent
221 \&.TH FOO 1 2009-10-10
222 \&.
223 \&.SH NAME
224 \efBfoo\efR \e(en a description goes here
225 \&.\e\*q The next is for sections 2 & 3 only.
226 \&.\e\*q .SH LIBRARY
227 \&.
228 \&.SH SYNOPSIS
229 \efBfoo\efR [\efB\e-options\efR] arguments...
230 \&.
231 \&.SH DESCRIPTION
232 The \efBfoo\efR utility processes files...
233 \&.
234 \&.\e\*q .SH IMPLEMENTATION NOTES
235 \&.\e\*q The next is for sections 1 & 8 only.
236 \&.\e\*q .SH EXIT STATUS
237 \&.\e\*q The next is for sections 2, 3, & 9 only.
238 \&.\e\*q .SH RETURN VALUES
239 \&.\e\*q The next is for sections 1, 6, 7, & 8 only.
240 \&.\e\*q .SH ENVIRONMENT
241 \&.\e\*q .SH FILES
242 \&.\e\*q .SH EXAMPLES
243 \&.\e\*q The next is for sections 1, 4, 6, 7, & 8 only.
244 \&.\e\*q .SH DIAGNOSTICS
245 \&.\e\*q The next is for sections 2, 3, & 9 only.
246 \&.\e\*q .SH ERRORS
247 \&.\e\*q .SH SEE ALSO
248 \&.\e\*q .BR foo ( 1 )
249 \&.\e\*q .SH STANDARDS
250 \&.\e\*q .SH HISTORY
251 \&.\e\*q .SH AUTHORS
252 \&.\e\*q .SH CAVEATS
253 \&.\e\*q .SH BUGS
254 \&.\e\*q .SH SECURITY CONSIDERATIONS
255 .Ed
256 .Pp
257 The sections in a
258 .Nm
259 document are conventionally ordered as they appear above. Sections
260 should be composed as follows:
261 .Bl -ohang -offset indent
262 .It Em NAME
263 The name(s) and a short description of the documented material. The
264 syntax for this is generally as follows:
265 .Pp
266 .D1 \efBname\efR \e(en description
267 .It Em LIBRARY
268 The name of the library containing the documented material, which is
269 assumed to be a function in a section 2 or 3 manual. For functions in
270 the C library, this may be as follows:
271 .Pp
272 .D1 Standard C Library (libc, -lc)
273 .It Em SYNOPSIS
274 Documents the utility invocation syntax, function call syntax, or device
275 configuration.
276 .Pp
277 For the first, utilities (sections 1, 6, and 8), this is
278 generally structured as follows:
279 .Pp
280 .D1 \efBname\efR [-\efBab\efR] [-\efBc\efR\efIarg\efR] \efBpath\efR...
281 .Pp
282 For the second, function calls (sections 2, 3, 9):
283 .Pp
284 .D1 \&.B char *name(char *\efIarg\efR);
285 .Pp
286 And for the third, configurations (section 4):
287 .Pp
288 .D1 \&.B name* at cardbus ? function ?
289 .Pp
290 Manuals not in these sections generally don't need a
291 .Em SYNOPSIS .
292 .It Em DESCRIPTION
293 This expands upon the brief, one-line description in
294 .Em NAME .
295 It usually contains a break-down of the options (if documenting a
296 command).
297 .It Em IMPLEMENTATION NOTES
298 Implementation-specific notes should be kept here. This is useful when
299 implementing standard functions that may have side effects or notable
300 algorithmic implications.
301 .It Em EXIT STATUS
302 Command exit status for section 1, 6, and 8 manuals. This section is
303 the dual of
304 .Em RETURN VALUES ,
305 which is used for functions. Historically, this information was
306 described in
307 .Em DIAGNOSTICS ,
308 a practise that is now discouraged.
309 .It Em RETURN VALUES
310 This section is the dual of
311 .Em EXIT STATUS ,
312 which is used for commands. It documents the return values of functions
313 in sections 2, 3, and 9.
314 .It Em ENVIRONMENT
315 Documents any usages of environment variables, e.g.,
316 .Xr environ 7 .
317 .It Em FILES
318 Documents files used. It's helpful to document both the file and a
319 short description of how the file is used (created, modified, etc.).
320 .It Em EXAMPLES
321 Example usages. This often contains snippets of well-formed,
322 well-tested invocations. Make doubly sure that your examples work
323 properly!
324 .It Em DIAGNOSTICS
325 Documents error conditions. This is most useful in section 4 manuals.
326 Historically, this section was used in place of
327 .Em EXIT STATUS
328 for manuals in sections 1, 6, and 8; however, this practise is
329 discouraged.
330 .It Em ERRORS
331 Documents error handling in sections 2, 3, and 9.
332 .It Em SEE ALSO
333 References other manuals with related topics. This section should exist
334 for most manuals.
335 .Pp
336 .D1 \&.BR bar \&( 1 \&),
337 .Pp
338 Cross-references should conventionally be ordered
339 first by section, then alphabetically.
340 .It Em STANDARDS
341 References any standards implemented or used, such as
342 .Pp
343 .D1 IEEE Std 1003.2 (\e(lqPOSIX.2\e(rq)
344 .Pp
345 If not adhering to any standards, the
346 .Em HISTORY
347 section should be used.
348 .It Em HISTORY
349 The history of any manual without a
350 .Em STANDARDS
351 section should be described in this section.
352 .It Em AUTHORS
353 Credits to authors, if applicable, should appear in this section.
354 Authors should generally be noted by both name and an e-mail address.
355 .It Em CAVEATS
356 Explanations of common misuses and misunderstandings should be explained
357 in this section.
358 .It Em BUGS
359 Extant bugs should be described in this section.
360 .It Em SECURITY CONSIDERATIONS
361 Documents any security precautions that operators should consider.
362 .El
363 .Sh MACRO SYNTAX
364 Macros are one to three three characters in length and begin with a
365 control character ,
366 .Sq \&. ,
367 at the beginning of the line. The
368 .Sq \(aq
369 macro control character is also accepted. An arbitrary amount of
370 whitespace (spaces or tabs) may sit between the control character and
371 the macro name. Thus, the following are equivalent:
372 .Bd -literal -offset indent
373 \&.PP
374 \&.\ \ \ PP
375 .Ed
376 .Pp
377 The
378 .Nm
379 macros are classified by scope: line scope or block scope. Line
380 macros are only scoped to the current line (and, in some situations,
381 the subsequent line). Block macros are scoped to the current line and
382 subsequent lines until closed by another block macro.
383 .Ss Line Macros
384 Line macros are generally scoped to the current line, with the body
385 consisting of zero or more arguments. If a macro is scoped to the next
386 line and the line arguments are empty, the next line, which must be
387 text, is used instead. Thus:
388 .Bd -literal -offset indent
389 \&.I
390 foo
391 .Ed
392 .Pp
393 is equivalent to
394 .Sq \&.I foo .
395 If next-line macros are invoked consecutively, only the last is used.
396 If a next-line macro is followed by a non-next-line macro, an error is
397 raised (unless in the case of
398 .Sx \&br ,
399 .Sx \&sp ,
400 or
401 .Sx \&na ) .
402 .Pp
403 The syntax is as follows:
404 .Bd -literal -offset indent
405 \&.YO \(lBbody...\(rB
406 \(lBbody...\(rB
407 .Ed
408 .Pp
409 .Bl -column -compact -offset indent "MacroX" "ArgumentsX" "ScopeXXXXX" "CompatX"
410 .It Em Macro Ta Em Arguments Ta Em Scope Ta Em Notes
411 .It Sx \&B Ta n Ta next-line Ta \&
412 .It Sx \&BI Ta n Ta current Ta \&
413 .It Sx \&BR Ta n Ta current Ta \&
414 .It Sx \&DT Ta 0 Ta current Ta \&
415 .It Sx \&I Ta n Ta next-line Ta \&
416 .It Sx \&IB Ta n Ta current Ta \&
417 .It Sx \&IR Ta n Ta current Ta \&
418 .\" .It Sx \&PD Ta n Ta current Ta compat
419 .It Sx \&R Ta n Ta next-line Ta \&
420 .It Sx \&RB Ta n Ta current Ta \&
421 .It Sx \&RI Ta n Ta current Ta \&
422 .It Sx \&SB Ta n Ta next-line Ta \&
423 .It Sx \&SM Ta n Ta next-line Ta \&
424 .It Sx \&TH Ta >1, <6 Ta current Ta \&
425 .\" .It Sx \&UC Ta n Ta current Ta compat
426 .It Sx \&br Ta 0 Ta current Ta compat
427 .It Sx \&fi Ta 0 Ta current Ta compat
428 .It Sx \&i Ta n 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 0 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. These macros should not be used for
442 portable
443 .Nm
444 manuals.
445 .Ss Block Macros
446 Block macros are comprised of a head and body. Like for in-line macros,
447 the head is scoped to the current line and, in one circumstance, the
448 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. For the scoping of individual macros, see
504 .Sx MACRO SYNTAX .
505 .Ss \&B
506 Text is rendered in bold face.
507 .Pp
508 See also
509 .Sx \&I ,
510 .Sx \&R ,
511 .Sx \&b ,
512 .Sx \&i ,
513 and
514 .Sx \&r .
515 .Ss \&BI
516 Text is rendered alternately in bold face and italic. Thus,
517 .Sq .BI this word and that
518 causes
519 .Sq this
520 and
521 .Sq and
522 to render in bold face, while
523 .Sq word
524 and
525 .Sq that
526 render in italics. Whitespace between arguments is omitted in output.
527 .Pp
528 Examples:
529 .Pp
530 .D1 \&.BI bold italic bold italic
531 .Pp
532 The output of this example will be emboldened
533 .Dq bold
534 and italicised
535 .Dq italic ,
536 with spaces stripped between arguments.
537 .Pp
538 See also
539 .Sx \&IB ,
540 .Sx \&BR ,
541 .Sx \&RB ,
542 .Sx \&RI ,
543 and
544 .Sx \&IR .
545 .Ss \&BR
546 Text is rendered alternately in bold face and roman (the default font).
547 Whitespace between arguments is omitted in output.
548 .Pp
549 See
550 .Sx \&BI
551 for an equivalent example.
552 .Pp
553 See also
554 .Sx \&BI ,
555 .Sx \&IB ,
556 .Sx \&RB ,
557 .Sx \&RI ,
558 and
559 .Sx \&IR .
560 .Ss \&DT
561 Has no effect. Included for compatibility.
562 .Ss \&HP
563 Begin a paragraph whose initial output line is left-justified, but
564 subsequent output lines are indented, with the following syntax:
565 .Bd -filled -offset indent
566 .Pf \. Sx \&HP
567 .Op Cm width
568 .Ed
569 .Pp
570 The
571 .Cm width
572 argument must conform to
573 .Sx Scaling Widths .
574 If specified, it's saved for later paragraph left-margins; if unspecified, the
575 saved or default width is used.
576 .Pp
577 See also
578 .Sx \&IP ,
579 .Sx \&LP ,
580 .Sx \&P ,
581 .Sx \&PP ,
582 and
583 .Sx \&TP .
584 .Ss \&I
585 Text is rendered in italics.
586 .Pp
587 See also
588 .Sx \&B ,
589 .Sx \&R ,
590 .Sx \&b ,
591 .Sx \&i ,
592 and
593 .Sx \&r .
594 .Ss \&IB
595 Text is rendered alternately in italics and bold face. Whitespace
596 between arguments is omitted in output.
597 .Pp
598 See
599 .Sx \&BI
600 for an equivalent example.
601 .Pp
602 See also
603 .Sx \&BI ,
604 .Sx \&BR ,
605 .Sx \&RB ,
606 .Sx \&RI ,
607 and
608 .Sx \&IR .
609 .Ss \&IP
610 Begin an indented paragraph with the following syntax:
611 .Bd -filled -offset indent
612 .Pf \. Sx \&IP
613 .Op Cm head Op Cm width
614 .Ed
615 .Pp
616 The
617 .Cm width
618 argument defines the width of the left margin and is defined by
619 .Sx Scaling Widths ,
620 It's saved for later paragraph left-margins; if unspecified, the saved or
621 default width is used.
622 .Pp
623 The
624 .Cm head
625 argument is used as a leading term, flushed to the left margin. This is
626 useful for bulleted paragraphs and so on.
627 .Pp
628 See also
629 .Sx \&HP ,
630 .Sx \&LP ,
631 .Sx \&P ,
632 .Sx \&PP ,
633 and
634 .Sx \&TP .
635 .Ss \&IR
636 Text is rendered alternately in italics and roman (the default font).
637 Whitespace between arguments is omitted in output.
638 .Pp
639 See
640 .Sx \&BI
641 for an equivalent example.
642 .Pp
643 See also
644 .Sx \&BI ,
645 .Sx \&IB ,
646 .Sx \&BR ,
647 .Sx \&RB ,
648 and
649 .Sx \&RI .
650 .Ss \&LP
651 Begin an undecorated paragraph. The scope of a paragraph is closed by a
652 subsequent paragraph, sub-section, section, or end of file. The saved
653 paragraph left-margin width is re-set to the default.
654 .Pp
655 See also
656 .Sx \&HP ,
657 .Sx \&IP ,
658 .Sx \&P ,
659 .Sx \&PP ,
660 and
661 .Sx \&TP .
662 .Ss \&P
663 Synonym for
664 .Sx \&LP .
665 .Pp
666 See also
667 .Sx \&HP ,
668 .Sx \&IP ,
669 .Sx \&LP ,
670 .Sx \&PP ,
671 and
672 .Sx \&TP .
673 .Ss \&PP
674 Synonym for
675 .Sx \&LP .
676 .Pp
677 See also
678 .Sx \&HP ,
679 .Sx \&IP ,
680 .Sx \&LP ,
681 .Sx \&P ,
682 and
683 .Sx \&TP .
684 .Ss \&R
685 Text is rendered in roman (the default font).
686 .Pp
687 See also
688 .Sx \&I ,
689 .Sx \&B ,
690 .Sx \&b ,
691 .Sx \&i ,
692 and
693 .Sx \&r .
694 .Ss \&RB
695 Text is rendered alternately in roman (the default font) and bold face.
696 Whitespace between arguments is omitted in output.
697 .Pp
698 See
699 .Sx \&BI
700 for an equivalent example.
701 .Pp
702 See also
703 .Sx \&BI ,
704 .Sx \&IB ,
705 .Sx \&BR ,
706 .Sx \&RI ,
707 and
708 .Sx \&IR .
709 .Ss \&RE
710 Explicitly close out the scope of a prior
711 .Sx \&RS .
712 .Ss \&RI
713 Text is rendered alternately in roman (the default font) and italics.
714 Whitespace between arguments is omitted in output.
715 .Pp
716 See
717 .Sx \&BI
718 for an equivalent example.
719 .Pp
720 See also
721 .Sx \&BI ,
722 .Sx \&IB ,
723 .Sx \&BR ,
724 .Sx \&RB ,
725 and
726 .Sx \&IR .
727 .Ss \&RS
728 Begin a part setting the left margin. The left margin controls the
729 offset, following an initial indentation, to un-indented text such as
730 that of
731 .Sx \&PP .
732 This has the following syntax:
733 .Bd -filled -offset indent
734 .Pf \. Sx \&Rs
735 .Op Cm width
736 .Ed
737 .Pp
738 The
739 .Cm width
740 argument must conform to
741 .Sx Scaling Widths .
742 If not specified, the saved or default width is used.
743 .Ss \&SB
744 Text is rendered in small size (one point smaller than the default font)
745 bold face.
746 .Ss \&SH
747 Begin a section. The scope of a section is only closed by another
748 section or the end of file. The paragraph left-margin width is re-set
749 to the default.
750 .Ss \&SM
751 Text is rendered in small size (one point smaller than the default
752 font).
753 .Ss \&SS
754 Begin a sub-section. The scope of a sub-section is closed by a
755 subsequent sub-section, section, or end of file. The paragraph
756 left-margin width is re-set to the default.
757 .Ss \&TH
758 Sets the title of the manual page with the following syntax:
759 .Bd -filled -offset indent
760 .Pf \. Sx \&TH
761 .Cm title section
762 .Op Cm date Op Cm source Op Cm volume
763 .Ed
764 .Pp
765 At least the upper-case document title
766 .Cm title
767 and numeric manual section
768 .Cm section
769 arguments must be provided. The
770 .Cm date
771 argument should be formatted as described in
772 .Sx Dates :
773 if it does not conform, the current date is used instead. The
774 .Cm source
775 string specifies the organisation providing the utility. The
776 .Cm volume
777 string replaces the default rendered volume, which is dictated by the
778 manual section.
779 .Pp
780 Examples:
781 .Pp
782 .D1 \&.TH CVS 5 "1992-02-12" GNU
783 .Ss \&TP
784 Begin a paragraph where the head, if exceeding the indentation width, is
785 followed by a newline; if not, the body follows on the same line after a
786 buffer to the indentation width. Subsequent output lines are indented.
787 The syntax is as follows:
788 .Bd -filled -offset indent
789 .Pf \. Sx \&TP
790 .Op Cm width
791 .Ed
792 .Pp
793 The
794 .Cm width
795 argument must conform to
796 .Sx Scaling Widths .
797 If specified, it's saved for later paragraph left-margins; if
798 unspecified, the saved or default width is used.
799 .Pp
800 See also
801 .Sx \&HP ,
802 .Sx \&IP ,
803 .Sx \&LP ,
804 .Sx \&P ,
805 and
806 .Sx \&PP .
807 .\" .
808 .\" .
809 .\" .Ss \&PD
810 .\" Has no effect. Included for compatibility.
811 .\" .
812 .\" .
813 .\" .Ss \&UC
814 .\" Has no effect. Included for compatibility.
815 .Ss \&br
816 Breaks the current line. Consecutive invocations have no further effect.
817 .Pp
818 See also
819 .Sx \&sp .
820 .Ss \&fi
821 End literal mode begun by
822 .Sx \&nf .
823 .Ss \&i
824 Italicise arguments. Synonym for
825 .Sx \&I .
826 .Pp
827 See also
828 .Sx \&B ,
829 .Sx \&I ,
830 .Sx \&R .
831 .Sx \&b ,
832 and
833 .Sx \&r .
834 .Ss \&na
835 Don't align to the right margin.
836 .Ss \&nf
837 Begin literal mode: all subsequent free-form lines have their end of
838 line boundaries preserved. May be ended by
839 .Sx \&fi .
840 .Ss \&r
841 Fonts and styles (bold face, italics) reset to roman (default font).
842 .Pp
843 See also
844 .Sx \&B ,
845 .Sx \&I ,
846 .Sx \&R ,
847 .Sx \&b ,
848 and
849 .Sx \&i .
850 .Ss \&sp
851 Insert vertical spaces into output with the following syntax:
852 .Bd -filled -offset indent
853 .Pf \. Sx \&sp
854 .Op Cm height
855 .Ed
856 .Pp
857 Insert
858 .Cm height
859 spaces, which must conform to
860 .Sx Scaling Widths .
861 If 0, this is equivalent to the
862 .Sx \&br
863 macro. Defaults to 1, if unspecified.
864 .Pp
865 See also
866 .Sx \&br .
867 .\" .Ss \&Sp
868 .\" A synonym for
869 .\" .Sx \&sp
870 .\" .Cm 0.5v .
871 .\" .
872 .\" .Ss \&Vb
873 .\" A synonym for
874 .\" .Sx \&nf .
875 .\" Accepts an argument (the height of the formatted space) which is
876 .\" disregarded.
877 .\" .
878 .\" .Ss \&Ve
879 .\" A synonym for
880 .\" .Sx \&fi .
881 .\" .
882 .Sh COMPATIBILITY
883 This section documents areas of questionable portability between
884 implementations of the
885 .Nm
886 language.
887 .Pp
888 .Bl -dash -compact
889 .It
890 In quoted literals, GNU troff allowed pair-wise double-quotes to produce
891 a standalone double-quote in formatted output. It is not known whether
892 this behaviour is exhibited by other formatters.
893 .It
894 The
895 .Sx \&sp
896 macro does not accept negative values in mandoc. In GNU troff, this
897 would result in strange behaviour.
898 .It
899 The
900 .Sq \(aq
901 macro control character, in GNU troff (and prior troffs) suppresses a
902 newline before macro output; in mandoc, it is an alias for the standard
903 .Sq \&.
904 control character.
905 .El
906 .Sh SEE ALSO
907 .Xr mandoc 1 ,
908 .Xr mandoc_char 7
909 .Sh AUTHORS
910 The
911 .Nm
912 reference was written by
913 .An Kristaps Dzonsons Aq kristaps@bsd.lv .
914 .Sh CAVEATS
915 Do not use this language. Use
916 .Xr mdoc 7 ,
917 instead.