Bring in OpenBSD's mandoc(1) tool for formatting manual pages.
[dragonfly.git] / usr.bin / mandoc / mdoc.7
1 .\"     $Id: mdoc.7,v 1.17 2009/10/21 19:13:50 schwarze Exp $
2 .\"
3 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
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: October 19 2009 $
18 .Dt MDOC 7
19 .Os
20 .
21 .
22 .Sh NAME
23 .Nm mdoc
24 .Nd mdoc language reference
25 .
26 .
27 .Sh DESCRIPTION
28 The
29 .Nm mdoc
30 language is used to format
31 .Bx
32 .Ux
33 manuals.  In this reference document, we describe its syntax, structure,
34 and usage.  Our reference implementation is
35 .Xr mandoc 1 .
36 The
37 .Sx COMPATIBILITY
38 section describes compatibility with
39 .Xr groff 1 .
40 .
41 .Pp
42 An
43 .Nm
44 document follows simple rules:  lines beginning with the control
45 character
46 .Sq \.
47 are parsed for macros.  Other lines are interpreted within the scope of
48 prior macros:
49 .Bd -literal -offset indent
50 \&.Sh Macro lines change control state.
51 Other lines are interpreted within the current state.
52 .Ed
53 .
54 .
55 .Sh LANGUAGE SYNTAX
56 .Nm
57 documents may contain only graphable 7-bit ASCII characters, the space
58 character, and, in certain circumstances, the tab character.  All
59 manuals must have
60 .Ux
61 line terminators.
62 .
63 .
64 .Ss Comments
65 Text following a
66 .Sq \e" ,
67 whether in a macro or free-form text line, is ignored to the end of
68 line.  A macro line with only a control character and comment escape,
69 .Sq \&.\e" ,
70 is also ignored.  Macro lines with only a control charater and optionally
71 whitespace are stripped from input.
72 .
73 .
74 .Ss Reserved Characters
75 Within a macro line, the following characters are reserved:
76 .Pp
77 .Bl -tag -width Ds -offset indent -compact
78 .It \&.
79 .Pq period
80 .It \&,
81 .Pq comma
82 .It \&:
83 .Pq colon
84 .It \&;
85 .Pq semicolon
86 .It \&(
87 .Pq left-parenthesis
88 .It \&)
89 .Pq right-parenthesis
90 .It \&[
91 .Pq left-bracket
92 .It \&]
93 .Pq right-bracket
94 .It \&?
95 .Pq question
96 .It \&!
97 .Pq exclamation
98 .It \&|
99 .Pq vertical bar
100 .El
101 .
102 .Pp
103 Use of reserved characters is described in
104 .Sx MACRO SYNTAX .
105 For general use in macro lines, these characters must either be escaped
106 with a non-breaking space
107 .Pq Sq \e&
108 or, if applicable, an appropriate escape sequence used.
109 .
110 .
111 .Ss Special Characters
112 Special characters may occur in both macro and free-form lines.
113 Sequences begin with the escape character
114 .Sq \e
115 followed by either an open-parenthesis
116 .Sq \&(
117 for two-character sequences; an open-bracket
118 .Sq \&[
119 for n-character sequences (terminated at a close-bracket
120 .Sq \&] ) ;
121 or a single one-character sequence.  See
122 .Xr mandoc_char 7
123 for a complete list.  Examples include
124 .Sq \e(em
125 .Pq em-dash
126 and
127 .Sq \ee
128 .Pq back-slash .
129 .
130 .
131 .Ss Text Decoration
132 Terms may be text-decorated using the
133 .Sq \ef
134 escape followed by an indicator: B (bold), I, (italic), or P and R
135 (Roman, or reset).  This form is not recommended for
136 .Nm ,
137 which encourages semantic, not presentation, annotation.
138 .
139 .
140 .Ss Predefined Strings
141 Historically,
142 .Xr groff 1
143 also defined a set of package-specific
144 .Dq predefined strings ,
145 which, like
146 .Sx Special Characters ,
147 demark special output characters and strings by way of input codes.
148 Predefined strings are escaped with the slash-asterisk,
149 .Sq \e* :
150 single-character
151 .Sq \e*X ,
152 two-character
153 .Sq \e*(XX ,
154 and N-character
155 .Sq \e*[N] .
156 See
157 .Xr mandoc_char 7
158 for a complete list.  Examples include
159 .Sq \e*(Am
160 .Pq ampersand
161 and
162 .Sq \e*(Ba
163 .Pq vertical bar .
164 .
165 .
166 .Ss Whitespace
167 In non-literal free-form lines, consecutive blocks of whitespace are
168 pruned from input and added later in the output filter, if applicable:
169 .Bd -literal -offset indent
170 These     spaces   are    pruned       from    input.
171 \&.Bd \-literal
172 These         are              not.
173 \&.Ed
174 .Ed
175 .
176 .Pp
177 In macro lines, whitespace delimits arguments and is discarded.  If
178 arguments are quoted, whitespace within the quotes is retained.
179 .
180 .Pp
181 Blank lines are only permitted within literal contexts, as are lines
182 containing only whitespace.  Tab characters are only acceptable when
183 delimiting
184 .Sq \&Bl \-column
185 or when in a literal context.
186 .
187 .
188 .Ss Quotation
189 Macro arguments may be quoted with a double-quote to group
190 space-delimited terms or to retain blocks of whitespace.  A quoted
191 argument begins with a double-quote preceded by whitespace.  The next
192 double-quote not pair-wise adjacent to another double-quote terminates
193 the literal, regardless of surrounding whitespace.
194 .
195 .Pp
196 This produces tokens
197 .Sq a" ,
198 .Sq b c ,
199 .Sq de ,
200 and
201 .Sq fg" .
202 Note that any quoted term, be it argument or macro, is indiscriminately
203 considered literal text.  Thus, the following produces
204 .Sq \&Em a :
205 .Bd -literal -offset indent
206 \&.Em "Em a"
207 .Ed
208 .
209 .Pp
210 In free-form mode, quotes are regarded as opaque text.
211 .
212 .Ss Dates
213 There are several macros in
214 .Nm
215 that require a date argument.  The
216 .Em canonical form
217 for dates is the American format:
218 .Pp
219 .D1 Cm Month Day , Year
220 .Pp
221 The
222 .Cm Day
223 value is an optionally zero-padded numeral.  The
224 .Cm Month
225 value is the full month name.  The
226 .Cm Year
227 value is the full four-digit year.
228 .Pp
229 The
230 .Em non-canonical form
231 is the same as the canonical form, but without the comma between the
232 .Cm Day
233 and
234 .Cm Year
235 field.
236 .Pp
237 Lastly,
238 .Em reduced form
239 dates range from only a
240 .Cm Year
241 to the full canonical or non-canonical form.
242 .Pp
243 Some examples of valid dates follow:
244 .Pp
245 .D1 "May, 2009" Pq reduced form
246 .D1 "2009" Pq reduced form
247 .D1 "May 20, 2009" Pq canonical form
248 .D1 "May 20 2009" Pq non-canonical form
249 .
250 .Ss Scaling Widths
251 Many macros support scaled widths for their arguments, such as
252 stipulating a two-inch list indentation with the following:
253 .Bd -literal -offset indent
254 \&.Bl -tag -width 2i
255 .Ed
256 .
257 .Pp
258 The syntax for scaled widths is
259 .Sq Li [+-]?[0-9]*.[0-9]*[:unit:] ,
260 where a decimal must be preceded or proceeded by at least one digit.
261 Negative numbers, while accepted, are truncated to zero.  The following
262 scaling units are accepted:
263 .Pp
264 .Bl -tag -width Ds -offset indent -compact
265 .It c
266 centimetre
267 .It i
268 inch
269 .It P
270 pica (~1/6 inch)
271 .It p
272 point (~1/72 inch)
273 .It f
274 synonym for
275 .Sq u
276 .It v
277 default vertical span
278 .It m
279 width of rendered
280 .Sq m
281 .Pq em
282 character
283 .It n
284 width of rendered
285 .Sq n
286 .Pq en
287 character
288 .It u
289 default horizontal span
290 .It M
291 mini-em (~1/100 em)
292 .El
293 .Pp
294 Using anything other than
295 .Sq m ,
296 .Sq n ,
297 .Sq u ,
298 or
299 .Sq v
300 is necessarily non-portable across output media.  See
301 .Sx COMPATIBILITY .
302 .
303 .
304 .Sh MANUAL STRUCTURE
305 A well-formed
306 .Nm
307 document consists of a document prologue followed by one or more
308 sections.
309 .Pp
310 The prologue, which consists of (in order) the
311 .Sx \&Dd ,
312 .Sx \&Dt ,
313 and
314 .Sx \&Os
315 macros, is required for every document.
316 .Pp
317 The first section (sections are denoted by
318 .Sx \&Sh )
319 must be the NAME section, consisting of at least one
320 .Sx \&Nm
321 followed by
322 .Sx \&Nd .
323 .Pp
324 Following that, convention dictates specifying at least the SYNOPSIS and
325 DESCRIPTION sections, although this varies between manual sections.
326 .Pp
327 The following is a well-formed skeleton
328 .Nm
329 file:
330 .Bd -literal -offset indent
331 \&.Dd $\&Mdocdate$
332 \&.Dt mdoc 7
333 \&.Os
334 \&.
335 \&.Sh NAME
336 \&.Nm foo
337 \&.Nd a description goes here
338 \&.\e\*q The next is for sections 2 & 3 only.
339 \&.\e\*q .Sh LIBRARY
340 \&.
341 \&.Sh SYNOPSIS
342 \&.Nm foo
343 \&.Op Fl options
344 \&.Ar
345 \&.
346 \&.Sh DESCRIPTION
347 The
348 \&.Nm
349 utility processes files ...
350 \&.\e\*q .Sh IMPLEMENTATION NOTES
351 \&.\e\*q The next is for sections 1 & 8 only.
352 \&.\e\*q .Sh EXIT STATUS
353 \&.\e\*q The next is for sections 2, 3, & 9 only.
354 \&.\e\*q .Sh RETURN VALUES
355 \&.\e\*q The next is for sections 1, 6, 7, & 8 only.
356 \&.\e\*q .Sh ENVIRONMENT
357 \&.\e\*q .Sh FILES
358 \&.\e\*q .Sh EXAMPLES
359 \&.\e\*q The next is for sections 1, 4, 6, 7, & 8 only.
360 \&.\e\*q .Sh DIAGNOSTICS
361 \&.\e\*q The next is for sections 2, 3, & 9 only.
362 \&.\e\*q .Sh ERRORS
363 \&.\e\*q .Sh SEE ALSO
364 \&.\e\*q .Xr foobar 1
365 \&.\e\*q .Sh STANDARDS
366 \&.\e\*q .Sh HISTORY
367 \&.\e\*q .Sh AUTHORS
368 \&.\e\*q .Sh CAVEATS
369 \&.\e\*q .Sh BUGS
370 \&.\e\*q .Sh SECURITY CONSIDERATIONS
371 .Ed
372 .Pp
373 The sections in a
374 .Nm
375 document are conventionally ordered as they appear above.  Sections
376 should be composed as follows:
377 .Bl -tag -width Ds -offset Ds
378 .It NAME
379 Must contain at least one
380 .Sx \&Nm
381 followed by
382 .Sx \&Nd .
383 The name needs re-stating since one
384 .Nm
385 documents can be used for more than one utility or function, such as
386 .Xr grep 1
387 also being referenced as
388 .Xr egrep 1
389 and
390 .Xr fgrep 1 .
391 .It LIBRARY
392 .It SYNOPSIS
393 .It DESCRIPTION
394 .It IMPLEMENTATION NOTES
395 .It EXIT STATUS
396 .It RETURN VALUES
397 .It ENVIRONMENT
398 .It FILES
399 .It EXAMPLES
400 .It DIAGNOSTICS
401 .It ERRORS
402 .It SEE ALSO
403 .It STANDARDS
404 .It HISTORY
405 .It AUTHORS
406 .It CAVEATS
407 .It BUGS
408 .It SECURITY CONSIDERATIONS
409 .El
410 .
411 .
412 .Sh MACRO SYNTAX
413 Macros are one to three three characters in length and begin with a
414 control character ,
415 .Sq \&. ,
416 at the beginning of the line.  An arbitrary amount of whitespace may
417 sit between the control character and the macro name.  Thus, the
418 following are equivalent:
419 .Bd -literal -offset indent
420 \&.Pp
421 \&.\ \ \ \&Pp
422 .Ed
423 .
424 .Pp
425 The syntax of a macro depends on its classification.  In this section,
426 .Sq \-arg
427 refers to macro arguments, which may be followed by zero or more
428 .Sq parm
429 parameters;
430 .Sq \&Yo
431 opens the scope of a macro; and if specified,
432 .Sq \&Yc
433 closes it out.
434 .
435 .Pp
436 The
437 .Em Callable
438 column indicates that the macro may be called subsequent to the initial
439 line-macro.  If a macro is not callable, then its invocation after the
440 initial line macro is interpreted as opaque text, such that
441 .Sq \&.Fl \&Sh
442 produces
443 .Sq Fl \&Sh .
444 .
445 .Pp
446 The
447 .Em Parsable
448 column indicates whether the macro may be followed by further
449 (ostensibly callable) macros.  If a macro is not parsable, subsequent
450 macro invocations on the line will be interpreted as opaque text.
451 .
452 .Pp
453 The
454 .Em Scope
455 column, if applicable, describes closure rules.
456 .
457 .
458 .Ss Block full-explicit
459 Multi-line scope closed by an explicit closing macro.  All macros
460 contains bodies; only
461 .Sx \&Bf
462 contains a head.
463 .Bd -literal -offset indent
464 \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB
465 \(lBbody...\(rB
466 \&.Yc
467 .Ed
468 .
469 .Pp
470 .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXX"
471 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
472 .It Sx \&Bd  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ed
473 .It Sx \&Bf  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ef
474 .It Sx \&Bk  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Ek
475 .It Sx \&Bl  Ta    \&No     Ta    \&No     Ta    closed by Sx \&El
476 .It Sx \&Ed  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bd
477 .It Sx \&Ef  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bf
478 .It Sx \&Ek  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bk
479 .It Sx \&El  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Bl
480 .El
481 .
482 .
483 .Ss Block full-implicit
484 Multi-line scope closed by end-of-file or implicitly by another macro.
485 All macros have bodies; some
486 .Po
487 .Sx \&It Fl bullet ,
488 .Fl hyphen ,
489 .Fl dash ,
490 .Fl enum ,
491 .Fl item
492 .Pc
493 don't have heads; only one
494 .Po
495 .Sx \&It Fl column
496 .Pc
497 has multiple heads.
498 .Bd -literal -offset indent
499 \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB
500 \(lBbody...\(rB
501 .Ed
502 .
503 .Pp
504 .Bl -column -compact -offset indent "MacroX" "CallableX" "ParsableX" "closed by XXXXXXXXXXX"
505 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
506 .It Sx \&It  Ta    \&No     Ta    Yes      Ta    closed by Sx \&It , Sx \&El
507 .It Sx \&Nd  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh
508 .It Sx \&Sh  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh
509 .It Sx \&Ss  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Sh , Sx \&Ss
510 .El
511 .
512 .
513 .Ss Block partial-explicit
514 Like block full-explicit, but also with single-line scope.  Each
515 has at least a body and, in limited circumstances, a head
516 .Po
517 .Sx \&Fo ,
518 .Sx \&Eo
519 .Pc
520 and/or tail
521 .Pq Sx \&Ec .
522 .Bd -literal -offset indent
523 \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB
524 \(lBbody...\(rB
525 \&.Yc \(lBtail...\(rB
526
527 \&.Yo \(lB\-arg \(lBparm...\(rB\(rB \(lBhead...\(rB \
528 \(lBbody...\(rB \&Yc \(lBtail...\(rB
529 .Ed
530 .
531 .Pp
532 .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset indent
533 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
534 .It Sx \&Ac  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Ao
535 .It Sx \&Ao  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Ac
536 .It Sx \&Bc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Bo
537 .It Sx \&Bo  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Bc
538 .It Sx \&Brc Ta    Yes      Ta    Yes      Ta    opened by Sx \&Bro
539 .It Sx \&Bro Ta    Yes      Ta    Yes      Ta    closed by Sx \&Brc
540 .It Sx \&Dc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Do
541 .It Sx \&Do  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Dc
542 .It Sx \&Ec  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Eo
543 .It Sx \&Eo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Ec
544 .It Sx \&Fc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Fo
545 .It Sx \&Fo  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Fc
546 .It Sx \&Oc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Oo
547 .It Sx \&Oo  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Oc
548 .It Sx \&Pc  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Po
549 .It Sx \&Po  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Pc
550 .It Sx \&Qc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Oo
551 .It Sx \&Qo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Oc
552 .It Sx \&Re  Ta    \&No     Ta    \&No     Ta    opened by Sx \&Rs
553 .It Sx \&Rs  Ta    \&No     Ta    \&No     Ta    closed by Sx \&Re
554 .It Sx \&Sc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&So
555 .It Sx \&So  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Sc
556 .It Sx \&Xc  Ta    Yes      Ta    Yes      Ta    opened by Sx \&Xo
557 .It Sx \&Xo  Ta    Yes      Ta    Yes      Ta    closed by Sx \&Xc
558 .El
559 .
560 .
561 .Ss Block partial-implicit
562 Like block full-implicit, but with single-line scope closed by
563 .Sx Reserved Characters
564 or end of line.
565 .Bd -literal -offset indent
566 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBres...\(rB
567 .Ed
568 .
569 .Pp
570 .Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset indent
571 .It Em Macro Ta Em Callable Ta Em Parsable
572 .It Sx \&Aq  Ta    Yes      Ta    Yes
573 .It Sx \&Bq  Ta    Yes      Ta    Yes
574 .It Sx \&Brq Ta    Yes      Ta    Yes
575 .It Sx \&D1  Ta    \&No     Ta    \&Yes
576 .It Sx \&Dl  Ta    \&No     Ta    Yes
577 .It Sx \&Dq  Ta    Yes      Ta    Yes
578 .It Sx \&Op  Ta    Yes      Ta    Yes
579 .It Sx \&Pq  Ta    Yes      Ta    Yes
580 .It Sx \&Ql  Ta    Yes      Ta    Yes
581 .It Sx \&Qq  Ta    Yes      Ta    Yes
582 .It Sx \&Sq  Ta    Yes      Ta    Yes
583 .El
584 .
585 .
586 .Ss In-line
587 Closed by
588 .Sx Reserved Characters ,
589 end of line, fixed argument lengths, and/or subsequent macros.  In-line
590 macros have only text children.  If a number (or inequality) of
591 arguments is
592 .Pq n ,
593 then the macro accepts an arbitrary number of arguments.
594 .Bd -literal -offset indent
595 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB \(lbres...\(rb
596
597 \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB Yc...
598
599 \&.Yo \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN
600 .Ed
601 .
602 .Pp
603 .Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset indent
604 .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments
605 .It Sx \&%A  Ta    \&No     Ta    \&No     Ta    >0
606 .It Sx \&%B  Ta    \&No     Ta    \&No     Ta    >0
607 .It Sx \&%C  Ta    \&No     Ta    \&No     Ta    >0
608 .It Sx \&%D  Ta    \&No     Ta    \&No     Ta    >0
609 .It Sx \&%I  Ta    \&No     Ta    \&No     Ta    >0
610 .It Sx \&%J  Ta    \&No     Ta    \&No     Ta    >0
611 .It Sx \&%N  Ta    \&No     Ta    \&No     Ta    >0
612 .It Sx \&%O  Ta    \&No     Ta    \&No     Ta    >0
613 .It Sx \&%P  Ta    \&No     Ta    \&No     Ta    >0
614 .It Sx \&%R  Ta    \&No     Ta    \&No     Ta    >0
615 .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0
616 .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0
617 .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    n
618 .It Sx \&An  Ta    Yes      Ta    Yes      Ta    n
619 .It Sx \&Ap  Ta    Yes      Ta    Yes      Ta    0
620 .It Sx \&Ar  Ta    Yes      Ta    Yes      Ta    n
621 .It Sx \&At  Ta    Yes      Ta    Yes      Ta    1
622 .It Sx \&Bsx Ta    Yes      Ta    Yes      Ta    n
623 .It Sx \&Bt  Ta    \&No     Ta    \&No     Ta    0
624 .It Sx \&Bx  Ta    Yes      Ta    Yes      Ta    n
625 .It Sx \&Cd  Ta    Yes      Ta    Yes      Ta    >0
626 .It Sx \&Cm  Ta    Yes      Ta    Yes      Ta    n
627 .It Sx \&Db  Ta    \&No     Ta    \&No     Ta    1
628 .It Sx \&Dd  Ta    \&No     Ta    \&No     Ta    >0
629 .It Sx \&Dt  Ta    \&No     Ta    \&No     Ta    n
630 .It Sx \&Dv  Ta    Yes      Ta    Yes      Ta    n
631 .It Sx \&Dx  Ta    Yes      Ta    Yes      Ta    n
632 .It Sx \&Em  Ta    Yes      Ta    Yes      Ta    >0
633 .It Sx \&En  Ta    \&No     Ta    \&No     Ta    0
634 .It Sx \&Er  Ta    Yes      Ta    Yes      Ta    >0
635 .It Sx \&Es  Ta    \&No     Ta    \&No     Ta    0
636 .It Sx \&Ev  Ta    Yes      Ta    Yes      Ta    n
637 .It Sx \&Ex  Ta    \&No     Ta    \&No     Ta    n
638 .It Sx \&Fa  Ta    Yes      Ta    Yes      Ta    n
639 .It Sx \&Fd  Ta    \&No     Ta    \&No     Ta    >0
640 .It Sx \&Fl  Ta    Yes      Ta    Yes      Ta    n
641 .It Sx \&Fn  Ta    Yes      Ta    Yes      Ta    >0
642 .It Sx \&Fr  Ta    \&No     Ta    \&No     Ta    n
643 .It Sx \&Ft  Ta    Yes      Ta    Yes      Ta    n
644 .It Sx \&Fx  Ta    Yes      Ta    Yes      Ta    n
645 .It Sx \&Hf  Ta    \&No     Ta    \&No     Ta    n
646 .It Sx \&Ic  Ta    Yes      Ta    Yes      Ta    >0
647 .It Sx \&In  Ta    \&No     Ta    \&No     Ta    n
648 .It Sx \&Lb  Ta    \&No     Ta    \&No     Ta    1
649 .It Sx \&Li  Ta    Yes      Ta    Yes      Ta    n
650 .It Sx \&Lk  Ta    Yes      Ta    Yes      Ta    n
651 .It Sx \&Lp  Ta    \&No     Ta    \&No     Ta    0
652 .It Sx \&Ms  Ta    Yes      Ta    Yes      Ta    >0
653 .It Sx \&Mt  Ta    Yes      Ta    Yes      Ta    >0
654 .It Sx \&Nm  Ta    Yes      Ta    Yes      Ta    n
655 .It Sx \&No  Ta    Yes      Ta    Yes      Ta    0
656 .It Sx \&Ns  Ta    Yes      Ta    Yes      Ta    0
657 .It Sx \&Nx  Ta    Yes      Ta    Yes      Ta    n
658 .It Sx \&Os  Ta    \&No     Ta    \&No     Ta    n
659 .It Sx \&Ot  Ta    \&No     Ta    \&No     Ta    n
660 .It Sx \&Ox  Ta    Yes      Ta    Yes      Ta    n
661 .It Sx \&Pa  Ta    Yes      Ta    Yes      Ta    n
662 .It Sx \&Pf  Ta    \&No     Ta    Yes      Ta    1
663 .It Sx \&Pp  Ta    \&No     Ta    \&No     Ta    0
664 .It Sx \&Rv  Ta    \&No     Ta    \&No     Ta    n
665 .It Sx \&Sm  Ta    \&No     Ta    \&No     Ta    1
666 .It Sx \&St  Ta    \&No     Ta    Yes      Ta    1
667 .It Sx \&Sx  Ta    Yes      Ta    Yes      Ta    >0
668 .It Sx \&Sy  Ta    Yes      Ta    Yes      Ta    >0
669 .It Sx \&Tn  Ta    Yes      Ta    Yes      Ta    >0
670 .It Sx \&Ud  Ta    \&No     Ta    \&No     Ta    0
671 .It Sx \&Ux  Ta    Yes      Ta    Yes      Ta    n
672 .It Sx \&Va  Ta    Yes      Ta    Yes      Ta    n
673 .It Sx \&Vt  Ta    Yes      Ta    Yes      Ta    >0
674 .It Sx \&Xr  Ta    Yes      Ta    Yes      Ta    >0, <3
675 .It Sx \&br  Ta    \&No     Ta    \&No     Ta    0
676 .It Sx \&sp  Ta    \&No     Ta    \&No     Ta    1
677 .El
678 .
679 .
680 .Sh REFERENCE
681 This section is a canonical reference of all macros, arranged
682 alphabetically.  For the scoping of individual macros, see
683 .Sx MACRO SYNTAX .
684 .
685 .Ss \&%A
686 Author name of an
687 .Sx \&Rs
688 block.  Multiple authors should each be accorded their own
689 .Sx \%%A
690 line.  Author names should be ordered with full or abbreviated
691 forename(s) first, then full surname.
692 .
693 .Ss \&%B
694 Book title of an
695 .Sx \&Rs
696 block.  This macro may also be used in a non-bibliographic context when
697 referring to book titles.
698 .
699 .Ss \&%C
700 Publication city or location of an
701 .Sx \&Rs
702 block.
703 .Pp
704 .Em Remarks :
705 this macro is not implemented in
706 .Xr groff 1 .
707 .
708 .Ss \&%D
709 Publication date of an
710 .Sx \&Rs
711 block.  This should follow the reduced syntax for
712 .Sx Dates .
713 Canonical or non-canonical form is not necessary since publications are
714 often referenced only by year, or month and year.
715 .
716 .Ss \&%I
717 Publisher or issuer name of an
718 .Sx \&Rs
719 block.
720 .
721 .Ss \&%J
722 Journal name of an
723 .Sx \&Rs
724 block.
725 .
726 .Ss \&%N
727 Issue number (usually for journals) of an
728 .Sx \&Rs
729 block.
730 .
731 .Ss \&%O
732 Optional information of an
733 .Sx \&Rs
734 block.
735 .
736 .Ss \&%P
737 Book or journal page number of an
738 .Sx \&Rs
739 block.
740 .
741 .Ss \&%Q
742 Institutional author (school, government, etc.) of an
743 .Sx \&Rs
744 block.  Multiple institutional authors should each be accorded their own
745 .Sx \&%Q
746 line.
747 .
748 .Ss \&%R
749 Technical report name of an
750 .Sx \&Rs
751 block.
752 .
753 .Ss \&%T
754 Article title of an
755 .Sx \&Rs
756 block.  This macro may also be used in a non-bibliographical context
757 when referring to article titles.
758 .
759 .Ss \&%V
760 Volume number of an
761 .Sx \&Rs
762 block.
763 .
764 .Ss \&Ac
765 Closes an
766 .Sx \&Ao
767 block.  Does not have any tail arguments.
768 .
769 .Ss \&Ad
770 Address construct: usually in the context of an computational address in
771 memory, not a physical (post) address.
772 .Pp
773 Examples:
774 .Bd -literal -offset indent
775 \&.Ad [0,$]
776 \&.Ad 0x00000000
777 .Ed
778 .
779 .Ss \&An
780 Author name.  This macro may alternatively accepts the following
781 arguments, although these may not be specified along with a parameter:
782 .Bl -tag -width 12n -offset indent
783 .It Fl split
784 Renders a line break before each author listing.
785 .It Fl nosplit
786 The opposite of
787 .Fl split .
788 .El
789 .Pp
790 In the AUTHORS section, the default is not to split the first author
791 listing, but all subsequent author listings, whether or not they're
792 interspersed by other macros or text, are split.  Thus, specifying
793 .Fl split
794 will cause the first listing also to be split.  If not in the AUTHORS
795 section, the default is not to split.
796 .Pp
797 Examples:
798 .Bd -literal -offset indent
799 \&.An -nosplit
800 \&.An J. E. Hopcraft ,
801 \&.An J. D. Ullman .
802 .Ed
803 .Pp
804 .Em Remarks :
805 the effects of
806 .Fl split
807 or
808 .Fl nosplit
809 are re-set when entering the AUTHORS section, so if one specifies
810 .Sx \&An Fl nosplit
811 in the general document body, it must be re-specified in the AUTHORS
812 section.
813 .
814 .Ss \&Ao
815 Begins a block enclosed by angled brackets.  Does not have any head
816 arguments.
817 .Pp
818 Examples:
819 .Bd -literal -offset indent
820 \&.Fl -key= Ns Ao Ar val Ac
821 .Ed
822 .Pp
823 See also
824 .Sx \&Aq .
825 .
826 .Ss \&Ap
827 Inserts an apostrophe without any surrounding white-space.  This is
828 generally used as a grammatic device when referring to the verb form of
829 a function:
830 .Bd -literal -offset indent
831 \&.Fn execve Ap d
832 .Ed
833 .
834 .Ss \&Aq
835 Encloses its arguments in angled brackets.
836 .Pp
837 Examples:
838 .Bd -literal -offset indent
839 \&.Fl -key= Ns Aq Ar val
840 .Ed
841 .Pp
842 .Em Remarks :
843 this macro is often abused for rendering URIs, which should instead use
844 .Sx \&Lk
845 or
846 .Sx \&Mt ,
847 or to note pre-processor
848 .Dq Li #include
849 statements, which should use
850 .Sx \&In .
851 .Pp
852 See also
853 .Sx \&Ao .
854 .
855 .Ss \&Ar
856 Command arguments.  If an argument is not provided, the string
857 .Dq file ...
858 is used as a default.
859 .Pp
860 Examples:
861 .Bd -literal -offset indent
862 \&.Fl o Ns Ar file1
863 \&.Ar
864 \&.Ar arg1 , arg2 .
865 .Ed
866 .
867 .Ss \&At
868 Formats an AT&T version.  Accepts at most one parameter:
869 .Bl -tag -width 12n -offset indent
870 .It Cm v[1-7] | 32v
871 A version of
872 .At .
873 .It Cm V[.[1-4]]?
874 A system version of
875 .At .
876 .El
877 .Pp
878 Note that these parameters do not begin with a hyphen.
879 .Pp
880 Examples:
881 .Bd -literal -offset indent
882 \&.At
883 \&.At V.1
884 .Ed
885 .Pp
886 See also
887 .Sx \&Bsx ,
888 .Sx \&Bx ,
889 .Sx \&Dx ,
890 .Sx \&Fx ,
891 .Sx \&Nx ,
892 .Sx \&Ox ,
893 and
894 .Sx \&Ux .
895 .
896 .Ss \&Bc
897 Closes a
898 .Sx \&Bo
899 block.  Does not have any tail arguments.
900 .
901 .Ss \&Bd
902 Begins a display block.  A display is collection of macros or text which
903 may be collectively offset or justified in a manner different from that
904 of the enclosing context.  By default, the block is preceded by a
905 vertical space.
906 .Pp
907 Each display is associated with a type, which must be one of the
908 following arguments:
909 .Bl -tag -width 12n -offset indent
910 .It Fl ragged
911 Only left-justify the block.
912 .It Fl unfilled
913 Do not justify the block at all.
914 .It Fl filled
915 Left- and right-justify the block.
916 .It Fl literal
917 Alias for
918 .Fl unfilled .
919 .It Fl centered
920 Centre-justify each line.
921 .El
922 .Pp
923 The type must be provided first.  Secondary arguments are as follows:
924 .Bl -tag -width 12n -offset indent
925 .It Fl offset Ar width
926 Offset by the value of
927 .Ar width ,
928 which is interpreted as one of the following, specified in order:
929 .Bl -item
930 .It
931 As one of the pre-defined strings
932 .Ar indent ,
933 the width of standard indentation;
934 .Ar indent-two ,
935 twice
936 .Ar indent ;
937 .Ar left ,
938 which has no effect ;
939 .Ar right ,
940 which justifies to the right margin; and
941 .Ar center ,
942 which aligns around an imagined centre axis.
943 .It
944 As a precalculated width for a named macro.  The most popular is the
945 imaginary macro
946 .Ar Ds ,
947 which resolves to
948 .Ar 6n .
949 .It
950 As a scaling unit following the syntax described in
951 .Sx Scaling Widths .
952 .It
953 As the calculated string length of the opaque string.
954 .El
955 .Pp
956 If unset, it will revert to the value of
957 .Ar 8n
958 as described in
959 .Sx Scaling Widths .
960 .It Fl compact
961 Do not assert a vertical space before the block.
962 .It Fl file Ar file
963 Prepend the file
964 .Ar file
965 before any text or macros within the block.
966 .El
967 .Pp
968 Examples:
969 .Bd -literal -offset indent
970 \&.Bd \-unfilled \-offset two-indent \-compact
971    Hello       world.
972 \&.Ed
973 .Ed
974 .Pp
975 See also
976 .Sx \&D1
977 and
978 .Sx \&Dl .
979 .
980 .Ss \&Bf
981 .Ss \&Bk
982 .Ss \&Bl
983 .
984 .Ss \&Bo
985 Begins a block enclosed by square brackets.  Does not have any head
986 arguments.
987 .Pp
988 Examples:
989 .Bd -literal -offset indent
990 \&.Bo 1 ,
991 \&.Dv BUFSIZ Bc
992 .Ed
993 .Pp
994 See also
995 .Sx \&Bq .
996 .
997 .Ss \&Bq
998 Encloses its arguments in square brackets.
999 .Pp
1000 Examples:
1001 .Bd -literal -offset indent
1002 \&.Bq 1 , Dv BUFSIZ
1003 .Ed
1004 .Pp
1005 .Em Remarks :
1006 this macro is sometimes abused to emulate optional arguments for
1007 commands; the correct macros to use for this purpose are
1008 .Sx \&Op ,
1009 .Sx \&Oo ,
1010 and
1011 .Sx \&Oc .
1012 .Pp
1013 See also
1014 .Sx \&Bo .
1015 .
1016 .Ss \&Brc
1017 Closes a
1018 .Sx \&Bro
1019 block.  Does not have any tail arguments.
1020 .
1021 .Ss \&Bro
1022 Begins a block enclosed by curly braces.  Does not have any head
1023 arguments.
1024 .Pp
1025 Examples:
1026 .Bd -literal -offset indent
1027 \&.Bro 1 , ... ,
1028 \&.Va n Brc
1029 .Ed
1030 .Pp
1031 See also
1032 .Sx \&Brq .
1033 .
1034 .Ss \&Brq
1035 Encloses its arguments in curly braces.
1036 .Pp
1037 Examples:
1038 .Bd -literal -offset indent
1039 \&.Brq 1 , ... , Va n
1040 .Ed
1041 .Pp
1042 See also
1043 .Sx \&Bro .
1044 .
1045 .Ss \&Bsx
1046 Format the BSD/OS version provided as an argument, or a default value if
1047 no argument is provided.
1048 .Pp
1049 Examples:
1050 .Bd -literal -offset indent
1051 \&.Bsx 1.0
1052 \&.Bsx
1053 .Ed
1054 .Pp
1055 See also
1056 .Sx \&At ,
1057 .Sx \&Bx ,
1058 .Sx \&Dx ,
1059 .Sx \&Fx ,
1060 .Sx \&Nx ,
1061 .Sx \&Ox ,
1062 and
1063 .Sx \&Ux .
1064 .
1065 .Ss \&Bt
1066 Prints
1067 .Dq is currently in beta test.
1068 .
1069 .Ss \&Bx
1070 Format the BSD version provided as an argument, or a default value if no
1071 argument is provided.
1072 .Pp
1073 Examples:
1074 .Bd -literal -offset indent
1075 \&.Bx 4.4
1076 \&.Bx
1077 .Ed
1078 .Pp
1079 See also
1080 .Sx \&At ,
1081 .Sx \&Bsx ,
1082 .Sx \&Dx ,
1083 .Sx \&Fx ,
1084 .Sx \&Nx ,
1085 .Sx \&Ox ,
1086 and
1087 .Sx \&Ux .
1088 .
1089 .Ss \&Cd
1090 Configuration declaration (suggested for use only in section four
1091 manuals).  This denotes strings accepted by
1092 .Xr config 8 .
1093 .Pp
1094 Examples:
1095 .Bd -literal -offset indent
1096 \&.Cd device le0 at scode?
1097 .Ed
1098 .Pp
1099 .Em Remarks :
1100 this macro is commonly abused by using quoted literals to retain
1101 white-space and align consecutive
1102 .Sx \&Cd
1103 declarations.  This practise is discouraged.
1104 .
1105 .Ss \&Cm
1106 Command modifiers.  Useful when specifying configuration options or
1107 keys.
1108 .Pp
1109 Examples:
1110 .Bd -literal -offset indent
1111 \&.Cm ControlPath
1112 \&.Cm ControlMaster
1113 .Ed
1114 .Pp
1115 See also
1116 .Sx \&Fl .
1117 .
1118 .Ss \&D1
1119 One-line indented display.  This is formatted by the default rules and
1120 is useful for simple indented statements.  It is followed by a newline.
1121 .Pp
1122 Examples:
1123 .Bd -literal -offset indent
1124 \&.D1 Fl abcdefgh
1125 .Ed
1126 .Pp
1127 See also
1128 .Sx \&Bd
1129 and
1130 .Sx \&Dl .
1131 .
1132 .Ss \&Db
1133 .Ss \&Dc
1134 Closes a
1135 .Sx \&Do
1136 block.  Does not have any tail arguments.
1137 .
1138 .Ss \&Dd
1139 Document date.  This is the mandatory first macro of any
1140 .Nm
1141 manual.  Its calling syntax is as follows:
1142 .Pp
1143 .D1 \. Ns Sx \&Dd Cm date
1144 .Pp
1145 The
1146 .Cm date
1147 field may be either
1148 .Ar $\&Mdocdate$ ,
1149 which signifies the current manual revision date dictated by
1150 .Xr cvs 1
1151 or instead a valid canonical date as specified by
1152 .Sx Dates .
1153 .Pp
1154 Examples:
1155 .Bd -literal -offset indent
1156 \&.Dd $\&Mdocdate$
1157 \&.Dd $\&Mdocdate: July 21 2007$
1158 \&.Dd July 21, 2007
1159 .Ed
1160 .Pp
1161 See also
1162 .Sx \&Dt
1163 and
1164 .Sx \&Os .
1165 .
1166 .Ss \&Dl
1167 One-line intended display.  This is formatted as literal text and is
1168 useful for commands and invocations.  It is followed by a newline.
1169 .Pp
1170 Examples:
1171 .Bd -literal -offset indent
1172 \&.Dl % mandoc mdoc.7 | less
1173 .Ed
1174 .Pp
1175 See also
1176 .Sx \&Bd
1177 and
1178 .Sx \&D1 .
1179 .
1180 .Ss \&Do
1181 Begins a block enclosed by double quotes.  Does not have any head
1182 arguments.
1183 .Pp
1184 Examples:
1185 .Bd -literal -offset indent
1186 \&.D1 Do April is the cruellest month Dc \e(em T.S. Eliot
1187 .Ed
1188 .Pp
1189 See also
1190 .Sx \&Dq .
1191 .
1192 .Ss \&Dq
1193 Encloses its arguments in double quotes.
1194 .Pp
1195 Examples:
1196 .Bd -literal -offset indent
1197 \&.Dq April is the cruellest month
1198 \e(em T.S. Eliot
1199 .Ed
1200 .Pp
1201 See also
1202 .Sx \&Do .
1203 .
1204 .Ss \&Dt
1205 Document title.  This is the mandatory second macro of any
1206 .Nm
1207 file.  Its calling syntax is as follows:
1208 .Pp
1209 .D1 \. Ns Sx \&Dt Cm title section Op Cm volume | arch
1210 .Pp
1211 Its arguments are as follows:
1212 .Bl -tag -width Ds -offset Ds
1213 .It Cm title
1214 The document's title (name).  This should be capitalised and is
1215 required.
1216 .It Cm section
1217 The manual section.  This may be one of
1218 .Ar 1
1219 .Pq utilities ,
1220 .Ar 2
1221 .Pq system calls ,
1222 .Ar 3
1223 .Pq libraries ,
1224 .Ar 3p
1225 .Pq Perl libraries ,
1226 .Ar 4
1227 .Pq devices ,
1228 .Ar 5
1229 .Pq file formats ,
1230 .Ar 6
1231 .Pq games ,
1232 .Ar 7
1233 .Pq miscellaneous ,
1234 .Ar 8
1235 .Pq system utilities ,
1236 .Ar 9
1237 .Pq kernel functions ,
1238 .Ar X11
1239 .Pq X Window System ,
1240 .Ar X11R6
1241 .Pq X Window System ,
1242 .Ar unass
1243 .Pq unassociated ,
1244 .Ar local
1245 .Pq local system ,
1246 .Ar draft
1247 .Pq draft manual ,
1248 or
1249 .Ar paper
1250 .Pq paper .
1251 It is also required and should correspond to the manual's filename
1252 suffix.
1253 .It Cm volume
1254 This overrides the volume inferred from
1255 .Ar section .
1256 This field is optional, and if specified, must be one of
1257 .Ar USD
1258 .Pq users' supplementary documents ,
1259 .Ar PS1
1260 .Pq programmers' supplementary documents ,
1261 .Ar AMD
1262 .Pq administrators' supplementary documents ,
1263 .Ar SMM
1264 .Pq system managers' manuals ,
1265 .Ar URM
1266 .Pq users' reference manuals ,
1267 .Ar PRM
1268 .Pq programmers' reference manuals ,
1269 .Ar KM
1270 .Pq kernel manuals ,
1271 .Ar IND
1272 .Pq master index ,
1273 .Ar MMI
1274 .Pq master index ,
1275 .Ar LOCAL
1276 .Pq local manuals ,
1277 .Ar LOC
1278 .Pq local manuals ,
1279 or
1280 .Ar CON
1281 .Pq contributed manuals .
1282 .It Cm arch
1283 This specifies a specific relevant architecture.  If
1284 .Cm volume
1285 is not provided, it may be used in its place, else it may be used
1286 subsequent that.  It, too, is optional.  It must be one of
1287 .Ar alpha ,
1288 .Ar amd64 ,
1289 .Ar amiga ,
1290 .Ar arc ,
1291 .Ar arm ,
1292 .Ar armish ,
1293 .Ar aviion ,
1294 .Ar hp300 ,
1295 .Ar hppa ,
1296 .Ar hppa64 ,
1297 .Ar i386 ,
1298 .Ar landisk ,
1299 .Ar luna88k ,
1300 .Ar mac68k ,
1301 .Ar macppc ,
1302 .Ar mvme68k ,
1303 .Ar mvme88k ,
1304 .Ar mvmeppc ,
1305 .Ar pmax ,
1306 .Ar sgi ,
1307 .Ar socppc ,
1308 .Ar sparc ,
1309 .Ar sparc64 ,
1310 .Ar sun3 ,
1311 .Ar vax ,
1312 or
1313 .Ar zaurus .
1314 .El
1315 .Pp
1316 Examples:
1317 .Bd -literal -offset indent
1318 \&.Dt FOO 1
1319 \&.Dt FOO 4 KM
1320 \&.Dt FOO 9 i386
1321 \&.Dt FOO 9 KM i386
1322 .Ed
1323 .Pp
1324 See also
1325 .Sx \&Dd
1326 and
1327 .Sx \&Os .
1328 .
1329 .Ss \&Dv
1330 Defined variables such as preprocessor constants.
1331 .Pp
1332 Examples:
1333 .Bd -literal -offset indent
1334 \&.Dv BUFSIZ
1335 \&.Dv STDOUT_FILENO
1336 .Ed
1337 .Pp
1338 See also
1339 .Sx \&Er .
1340 .
1341 .Ss \&Dx
1342 Format the DragonFlyBSD version provided as an argument, or a default
1343 value if no argument is provided.
1344 .Pp
1345 Examples:
1346 .Bd -literal -offset indent
1347 \&.Dx 2.4.1
1348 \&.Dx
1349 .Ed
1350 .Pp
1351 See also
1352 .Sx \&At ,
1353 .Sx \&Bsx ,
1354 .Sx \&Bx ,
1355 .Sx \&Fx ,
1356 .Sx \&Nx ,
1357 .Sx \&Ox ,
1358 and
1359 .Sx \&Ux .
1360 .
1361 .Ss \&Ec
1362 .Ss \&Ed
1363 .Ss \&Ef
1364 .Ss \&Ek
1365 .Ss \&El
1366 .Ss \&Em
1367 Denotes text that should be emphasised.  Note that this is a
1368 presentation term and should not be used for stylistically decorating
1369 technical terms.
1370 .Pp
1371 Examples:
1372 .Bd -literal -offset indent
1373 \&.Ed Warnings!
1374 \&.Ed Remarks :
1375 .Ed
1376 .
1377 .Ss \&En
1378 .Ss \&Eo
1379 .Ss \&Er
1380 Error constants (suggested for use only in section two manuals).
1381 .Pp
1382 Examples:
1383 .Bd -literal -offset indent
1384 \&.Er EPERM
1385 \&.Er ENOENT
1386 .Ed
1387 .Pp
1388 See also
1389 .Sx \&Dv .
1390 .
1391 .Ss \&Es
1392 .
1393 .Ss \&Ev
1394 Environmental variables such as those specified in
1395 .Xr environ 7 .
1396 .Pp
1397 Examples:
1398 .Bd -literal -offset indent
1399 \&.Ev DISPLAY
1400 \&.Ev PATH
1401 .Ed
1402 .
1403 .Ss \&Ex
1404 Inserts text regarding a utility's exit values.  This macro must have
1405 first the
1406 .Fl std
1407 argument specified, then an optional
1408 .Ar utility .
1409 If
1410 .Ar utility
1411 is not provided, the document's name as stipulated in
1412 .Sx \&Nm
1413 is provided.
1414 .Ss \&Fa
1415 .Ss \&Fc
1416 .Ss \&Fd
1417 .Ss \&Fl
1418 .Ss \&Fn
1419 .Ss \&Fo
1420 .Ss \&Fr
1421 .Ss \&Ft
1422 .Ss \&Fx
1423 Format the FreeBSD version provided as an argument, or a default value
1424 if no argument is provided.
1425 .Pp
1426 Examples:
1427 .Bd -literal -offset indent
1428 \&.Fx 7.1
1429 \&.Fx
1430 .Ed
1431 .Pp
1432 See also
1433 .Sx \&At ,
1434 .Sx \&Bsx ,
1435 .Sx \&Bx ,
1436 .Sx \&Dx ,
1437 .Sx \&Nx ,
1438 .Sx \&Ox ,
1439 and
1440 .Sx \&Ux .
1441 .
1442 .Ss \&Hf
1443 .Ss \&Ic
1444 .Ss \&In
1445 .Ss \&It
1446 .Ss \&Lb
1447 .Ss \&Li
1448 .Ss \&Lk
1449 .Ss \&Lp
1450 .Ss \&Ms
1451 .Ss \&Mt
1452 .Ss \&Nd
1453 .Ss \&Nm
1454 .Ss \&No
1455 .Ss \&Ns
1456 .Ss \&Nx
1457 Format the NetBSD version provided as an argument, or a default value if
1458 no argument is provided.
1459 .Pp
1460 Examples:
1461 .Bd -literal -offset indent
1462 \&.Nx 5.01
1463 \&.Nx
1464 .Ed
1465 .Pp
1466 See also
1467 .Sx \&At ,
1468 .Sx \&Bsx ,
1469 .Sx \&Bx ,
1470 .Sx \&Dx ,
1471 .Sx \&Fx ,
1472 .Sx \&Ox ,
1473 and
1474 .Sx \&Ux .
1475 .
1476 .Ss \&Oc
1477 .Ss \&Oo
1478 .Ss \&Op
1479 .Ss \&Os
1480 Document operating system version.  This is the mandatory third macro of
1481 any
1482 .Nm
1483 file.  Its calling syntax is as follows:
1484 .Pp
1485 .D1 \. Ns Sx \&Os Op Cm system
1486 .Pp
1487 The optional
1488 .Cm system
1489 parameter specifies the relevant operating system or environment.  Left
1490 unspecified, it defaults to the local operating system version.  This is
1491 the suggested form.
1492 .Pp
1493 Examples:
1494 .Bd -literal -offset indent
1495 \&.Os
1496 \&.Os KTH/CSC/TCS
1497 \&.Os BSD 4.3
1498 .Ed
1499 .Pp
1500 See also
1501 .Sx \&Dd
1502 and
1503 .Sx \&Dt .
1504 .
1505 .Ss \&Ot
1506 Unknown usage.
1507 .Pp
1508 .Em Remarks :
1509 this macro has been deprecated.
1510 .
1511 .Ss \&Ox
1512 Format the OpenBSD version provided as an argument, or a default value
1513 if no argument is provided.
1514 .Pp
1515 Examples:
1516 .Bd -literal -offset indent
1517 \&.Ox 4.5
1518 \&.Ox
1519 .Ed
1520 .Pp
1521 See also
1522 .Sx \&At ,
1523 .Sx \&Bsx ,
1524 .Sx \&Bx ,
1525 .Sx \&Dx ,
1526 .Sx \&Fx ,
1527 .Sx \&Nx ,
1528 and
1529 .Sx \&Ux .
1530 .
1531 .Ss \&Pa
1532 .Ss \&Pc
1533 .Ss \&Pf
1534 .Ss \&Po
1535 .Ss \&Pp
1536 .Ss \&Pq
1537 .Ss \&Qc
1538 .Ss \&Ql
1539 .Ss \&Qo
1540 .Ss \&Qq
1541 .
1542 .Ss \&Re
1543 Closes a
1544 .Sx \&Rs
1545 block.  Does not have any tail arguments.
1546 .
1547 .Ss \&Rs
1548 Begins a bibliographic
1549 .Pq Dq reference
1550 block.  Does not have any head arguments.  The block macro and may only
1551 contain
1552 .Sx \&%A ,
1553 .Sx \&%B ,
1554 .Sx \&%C ,
1555 .Sx \&%D ,
1556 .Sx \&%I ,
1557 .Sx \&%J ,
1558 .Sx \&%N ,
1559 .Sx \&%O ,
1560 .Sx \&%P ,
1561 .Sx \&%Q ,
1562 .Sx \&%R ,
1563 .Sx \&%T ,
1564 and
1565 .Sx \&%V
1566 child macros (at least one must be specified).
1567 .Pp
1568 Examples:
1569 .Bd -literal -offset indent
1570 \&.Rs
1571 \&.%A J. E. Hopcroft
1572 \&.%A J. D. Ullman
1573 \&.%B Introduction to Automata Theory, Languages, and Computation
1574 \&.%I Addison-Wesley
1575 \&.%C Reading, Massachusettes
1576 \&.%D 1979
1577 \&.Re
1578 .Ed
1579 .Pp
1580 If an
1581 .Sx \&Rs
1582 block is used within a SEE ALSO section, a vertical space is asserted
1583 before the rendered output, else the block continues on the current
1584 line.
1585 .
1586 .Ss \&Rv
1587 .Ss \&Sc
1588 .Ss \&Sh
1589 .Ss \&Sm
1590 .Ss \&So
1591 .Ss \&Sq
1592 .Ss \&Ss
1593 .Ss \&St
1594 .Ss \&Sx
1595 .Ss \&Sy
1596 .Ss \&Tn
1597 .Ss \&Ud
1598 .Ss \&Ux
1599 Format the UNIX name.  Accepts no argument.
1600 .Pp
1601 Examples:
1602 .Bd -literal -offset indent
1603 \&.Ux
1604 .Ed
1605 .Pp
1606 See also
1607 .Sx \&At ,
1608 .Sx \&Bsx ,
1609 .Sx \&Bx ,
1610 .Sx \&Dx ,
1611 .Sx \&Fx ,
1612 .Sx \&Nx ,
1613 and
1614 .Sx \&Ox .
1615 .
1616 .Ss \&Va
1617 .Ss \&Vt
1618 .Ss \&Xc
1619 .Ss \&Xo
1620 .Ss \&Xr
1621 .Ss \&br
1622 .Ss \&sp
1623 .
1624 .
1625 .Sh COMPATIBILITY
1626 This section documents compatibility with other roff implementations, at
1627 this time limited to
1628 .Xr groff 1 .
1629 The term
1630 .Qq historic groff
1631 refers to those versions before the
1632 .Pa doc.tmac
1633 file re-write
1634 .Pq somewhere between 1.15 and 1.19 .
1635 .
1636 .Pp
1637 .Bl -dash -compact
1638 .It
1639 Negative scaling units are now truncated to zero instead of creating
1640 interesting conditions, such as with
1641 .Sq \&sp -1i .
1642 Furthermore, the
1643 .Sq f
1644 scaling unit, while accepted, is rendered as the default unit.
1645 .It
1646 In quoted literals, groff allowed pair-wise double-quotes to produce a
1647 standalone double-quote in formatted output.  This idiosyncratic
1648 behaviour is no longer applicable.
1649 .It
1650 Display types
1651 .Sx \&Bd Fl center
1652 and
1653 .Fl right
1654 are aliases for
1655 .Fl left .
1656 The
1657 .Fl file Ar file
1658 argument is ignored.  Since text is not right-justified,
1659 .Fl ragged
1660 and
1661 .Fl filled
1662 are aliases, as are
1663 .Fl literal
1664 and
1665 .Fl unfilled .
1666 .It
1667 Blocks of whitespace are stripped from both macro and free-form text
1668 lines (except when in literal mode), while groff would retain whitespace
1669 in free-form text lines.
1670 .It
1671 Historic groff has many un-callable macros.  Most of these (excluding
1672 some block-level macros) are now callable, conforming to the
1673 non-historic groff version.
1674 .It
1675 The vertical bar
1676 .Sq \(ba
1677 made historic groff
1678 .Qq go orbital
1679 but is a proper delimiter in this implementation.
1680 .It
1681 .Sx \&It Fl nested
1682 is assumed for all lists (it wasn't in historic groff): any list may be
1683 nested and
1684 .Fl enum
1685 lists will restart the sequence only for the sub-list.
1686 .It
1687 Some manuals use
1688 .Sx \&Li
1689 incorrectly by following it with a reserved character and expecting the
1690 delimiter to render.  This is not supported.
1691 .It
1692 In groff, the
1693 .Sx \&Fo
1694 macro only produces the first parameter.  This is no longer the case.
1695 .El
1696 .
1697 .
1698 .Sh SEE ALSO
1699 .Xr mandoc 1 ,
1700 .Xr mandoc_char 7
1701 .
1702 .
1703 .Sh AUTHORS
1704 The
1705 .Nm
1706 reference was written by
1707 .An Kristaps Dzonsons Aq kristaps@kth.se .
1708 .\"
1709 .\" XXX: this really isn't the place for these caveats.
1710 .\" .
1711 .\" .
1712 .\" .Sh CAVEATS
1713 .\" There are many ambiguous parts of mdoc.
1714 .\" .
1715 .\" .Pp
1716 .\" .Bl -dash -compact
1717 .\" .It
1718 .\" .Sq \&Fa
1719 .\" should be
1720 .\" .Sq \&Va
1721 .\" as function arguments are variables.
1722 .\" .It
1723 .\" .Sq \&Ft
1724 .\" should be
1725 .\" .Sq \&Vt
1726 .\" as function return types are still types.  Furthermore, the
1727 .\" .Sq \&Ft
1728 .\" should be removed and
1729 .\" .Sq \&Fo ,
1730 .\" which ostensibly follows it, should follow the same convention as
1731 .\" .Sq \&Va .
1732 .\" .It
1733 .\" .Sq \&Va
1734 .\" should formalise that only one or two arguments are acceptable: a
1735 .\" variable name and optional, preceding type.
1736 .\" .It
1737 .\" .Sq \&Fd
1738 .\" is ambiguous.  It's commonly used to indicate an include file in the
1739 .\" synopsis section.
1740 .\" .Sq \&In
1741 .\" should be used, instead.
1742 .\" .It
1743 .\" Only the
1744 .\" .Sq \-literal
1745 .\" argument to
1746 .\" .Sq \&Bd
1747 .\" makes sense.  The remaining ones should be removed.
1748 .\" .It
1749 .\" The
1750 .\" .Sq \&Xo
1751 .\" and
1752 .\" .Sq \&Xc
1753 .\" macros should be deprecated.
1754 .\" .It
1755 .\" The
1756 .\" .Sq \&Dt
1757 .\" macro lacks clarity.  It should be absolutely clear which title will
1758 .\" render when formatting the manual page.
1759 .\" .It
1760 .\" A
1761 .\" .Sq \&Lx
1762 .\" should be provided for Linux (\(`a la
1763 .\" .Sq \&Ox ,
1764 .\" .Sq \&Nx
1765 .\" etc.).
1766 .\" .It
1767 .\" There's no way to refer to references in
1768 .\" .Sq \&Rs/Re
1769 .\" blocks.
1770 .\" .It
1771 .\" The \-split and \-nosplit dictates via
1772 .\" .Sq \&An
1773 .\" are re-set when entering and leaving the AUTHORS section.
1774 .\" .El
1775 .\" .