Annotation of mandoc/mdoc.7, Revision 1.4
1.4 ! kristaps 1: .\" $Id: mdoc.7,v 1.3 2009/03/13 13:56:13 kristaps Exp $
1.1 kristaps 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
7: .\" above copyright notice and this permission notice appear in all
8: .\" copies.
9: .\"
10: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11: .\" WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13: .\" AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14: .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15: .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16: .\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17: .\" PERFORMANCE OF THIS SOFTWARE.
18: .\"
19: .Dd $Mdocdate$
20: .Dt mdoc 7
21: .Os
22: .\" SECTION
23: .Sh NAME
24: .Nm mdoc
25: .Nd mdoc macro reference
26: .\" SECTION
27: .Sh DESCRIPTION
28: The
29: .Nm mdoc
30: language is used to format
31: .Bx
32: .Ux
33: manuals. An
34: .Nm
35: document follows simple rules: lines beginning with the control
36: character
37: .Sq \.
38: are parsed for macros. Other lines are interpreted within the scope of
1.3 kristaps 39: prior macros. This document describes the encoding, ontology and syntax
40: of these macros.
1.1 kristaps 41: .\" SECTION
42: .Sh CHARACTER ENCODING
43: .Nm
44: documents may contain only printable alphanumeric characters, the space
45: character
46: .Sq \ ,
47: and, in certain circumstances, the tab character
48: .Sq \et .
49: All manuals must have
50: .Sq \en
51: line termination.
52: .\" SUB-SECTION
1.2 kristaps 53: .Ss Reserved Characters
54: Within a macro line, the following characters are reserved:
55: .Bl -tag -width 12n -offset XXXX -compact
1.1 kristaps 56: .It \&.
1.2 kristaps 57: .Pq period
1.1 kristaps 58: .It \&,
1.2 kristaps 59: .Pq comma
1.1 kristaps 60: .It \&:
1.2 kristaps 61: .Pq colon
1.1 kristaps 62: .It \&;
1.2 kristaps 63: .Pq semicolon
1.1 kristaps 64: .It \&(
1.2 kristaps 65: .Pq left-parenthesis
1.1 kristaps 66: .It \&)
1.2 kristaps 67: .Pq right-parenthesis
1.1 kristaps 68: .It \&[
1.2 kristaps 69: .Pq left-bracket
1.1 kristaps 70: .It \&]
1.2 kristaps 71: .Pq right-bracket
1.1 kristaps 72: .It \&?
1.2 kristaps 73: .Pq question
1.1 kristaps 74: .It \&!
1.2 kristaps 75: .Pq exclmamation
1.1 kristaps 76: .El
77: .Pp
78: Use of these characters must either be escaped with a non-breaking space
79: .Pq Sq \e&
1.2 kristaps 80: or, if applicable, an appropriate escape-sequence used. Use of reserved
1.4 ! kristaps 81: characters is described in
! 82: .Sx Closure .
1.1 kristaps 83: .\" SUB-SECTION
84: .Ss Special Characters
85: Special character sequences begin with the escape character
86: .Sq \\
1.4 ! kristaps 87: followed by either an open-parenthesis
1.1 kristaps 88: .Sq \&(
89: for two-character sequences; an open-bracket
90: .Sq \&[
91: for n-character sequences (terminated at a close-bracket
92: .Sq \&] ) ;
93: or a single one-character sequence.
94: .Pp
95: Characters may alternatively be escaped by a slash-asterisk,
96: .Sq \\* ,
1.4 ! kristaps 97: with the same combinations as described above. This form is deprecated.
! 98: .Pp
! 99: The following is a table of all available escapes.
1.1 kristaps 100: .Pp
101: Grammatic:
102: .Bl -tag -width 12n -offset "XXXX" -compact
103: .It \\(em
104: .Pq em-dash
105: .It \\(en
106: .Pq en-dash
107: .It \e-
108: .Pq hyphen
109: .It \\\\
110: .Pq back-slash
111: .It \e'
112: .Pq apostrophe
113: .It \e`
114: .Pq back-tick
115: .It \\
116: .Pq space
117: .It \\.
118: .Pq period
119: .El
120: .\" PARAGRAPH
121: .Pp
122: Enclosures:
123: .Bl -tag -width 12n -offset "XXXX" -compact
124: .It \\(rC
125: .Pq right brace
126: .It \\(lC
127: .Pq left brace
128: .It \\(ra
129: .Pq right angle
130: .It \\(la
131: .Pq left angle
132: .It \\(rB
133: .Pq right bracket
134: .It \\(lB
135: .Pq left bracket
136: .It \\q
137: .Pq double-quote
138: .It \\(lq
139: .Pq left double-quote
140: .It \\(Lq
141: .Pq left double-quote, deprecated
142: .It \\(rq
143: .Pq right double-quote
144: .It \\(Rq
145: .Pq right double-quote, deprecated
146: .It \\(oq
147: .Pq left single-quote
148: .It \\(aq
149: .Pq right single-quote
150: .El
151: .\" PARAGRAPH
152: .Pp
153: Indicatives:
154: .Bl -tag -width 12n -offset "XXXX" -compact
155: .It \\(<-
156: .Pq left arrow
157: .It \\(->
158: .Pq right arrow
159: .It \\(ua
160: .Pq up arrow
161: .It \\(da
162: .Pq down arrow
163: .El
164: .\" PARAGRAPH
165: .Pp
166: Mathematical:
167: .Bl -tag -width 12n -offset "XXXX" -compact
168: .It \\(Gt
169: .Pq greater-than, deprecated
170: .It \\(Lt
171: .Pq less-than, deprecated
172: .It \\(<=
173: .Pq less-than-equal
174: .It \\(Le
175: .Pq less-than-equal, deprecated
176: .It \\(>=
177: .Pq greater-than-equal
178: .It \\(Ge
179: .Pq greater-than-equal
180: .It \\(==
181: .Pq equal
182: .It \\(!=
183: .Pq not equal
184: .It \\(Ne
185: .Pq not equal, deprecated
186: .It \\(if
187: .Pq infinity
188: .It \\(If
189: .Pq infinity, deprecated
190: .It \\(na
191: .Pq NaN , an extension
192: .It \\(Na
193: .Pq NaN, deprecated
194: .It \\(+-
195: .Pq plus-minus
196: .It \\(Pm
197: .Pq plus-minus, deprecated
198: .It \\(**
199: .Pq asterisk
200: .El
201: .\" PARAGRAPH
202: .Pp
203: Diacritics:
204: .Bl -tag -width 12n -offset "XXXX" -compact
205: .It \\(ga
206: .Pq accent grave
207: .It \\(aa
208: .Pq accent accute
209: .El
210: .\" PARAGRAPH
211: .Pp
212: Special symbols:
213: .Bl -tag -width 12n -offset "XXXX" -compact
214: .It \\(bu
215: .Pq bullet
216: .It \\(ba
217: .Pq bar
218: .It \\(Ba
219: .Pq bar, deprecated
220: .It \\(co
221: .Pq copyright
222: .It \\&
223: .Pq non-breaking space
224: .It \\e
225: .Pq escape
226: .It \\(Am
227: .Pq ampersand, deprecated
228: .El
229: .\" SECTION
1.2 kristaps 230: .Sh ONTOLOGY
1.1 kristaps 231: Macros are classified in an ontology described by scope rules.
1.4 ! kristaps 232: .\" SUB-SECTION
! 233: .Ss Scope
1.2 kristaps 234: .Bl -inset
1.1 kristaps 235: .\" LIST-ITEM
236: .It Em Block
1.2 kristaps 237: macros enclose other block macros, in-line macros or text, and
1.4 ! kristaps 238: may span multiple lines.
1.2 kristaps 239: .Bl -inset -offset XXXX
1.1 kristaps 240: .\" LIST-ITEM
241: .It Em Full-block
1.2 kristaps 242: macros always span multiple lines. They consist optionally of one or
243: more
1.1 kristaps 244: .Qq heads ,
245: subsequent macros or text on the same line following invocation; a
246: .Qq body ,
247: which spans subsequent lines of text or macros; and an optional
248: .Qq tail ,
249: macros or text on the same line following closure.
250: .\" LIST-ITEM
251: .It Em Partial-block
1.2 kristaps 252: macros may span multiple lines. They consists optionally of a
1.1 kristaps 253: .Qq head ,
254: text immediately following invocation; always a
255: .Qq body ,
256: text or macros following the head on the same and subsequent lines; and
257: optionally a
258: .Qq tail ,
259: text immediately following closure.
260: .\" LIST-ITEM
261: .It Em In-line
1.4 ! kristaps 262: macros may only enclose text and span at most a single line.
! 263: .El
! 264: .El
! 265: .\" SUB-SECTION
! 266: .Ss Closure
! 267: Closure of a macro's scope depends first on its classification, then
! 268: on whether it's parsable. In this table,
! 269: .Sq BFE
! 270: refers to block full-explicit and so on.
! 271: .\" PARAGRAPH
! 272: .Pp
! 273: .Bl -tag -width 12n -offset XXXX -compact
! 274: .It BPE , BFE
! 275: corresponding explicit closure macro
! 276: .It BFI
! 277: end-of-file or a corresponding implicit closure macro
! 278: .It BPI
! 279: end-of-line (body may be closed by >0 space-separated
! 280: .Sx Reserved Characters ,
! 281: although block scope will still be open)
! 282: .It INL
! 283: end-of-line
1.1 kristaps 284: .El
1.4 ! kristaps 285: .\" PARAGRAPH
! 286: .Pp
! 287: If a macro (block or in-line) is parsable, it may also be closed out by
! 288: one of the following scenarios (unless specifically noted otherwise):
! 289: .\" PARAGRAPH
! 290: .Pp
! 291: .Bl -dash -offset XXXX -compact
! 292: .It
! 293: a sequence of >0 space-separated
! 294: .Sx Reserved Characters ,
! 295: .It
! 296: another macro,
! 297: .It
! 298: end-of-line, or
! 299: .It
! 300: completion of a set number of arguments.
! 301: .El
! 302: .\" PARAGRAPH
! 303: .Pp
! 304: If >0 space-separated
! 305: .Sx Reserved Characters
! 306: are followed by non-reserved characters, the behaviour differs per
! 307: macro. In general, scope of the macro is closed and re-opened:
! 308: subsequent tokens are interpreted as if the scope had just been opened.
! 309: In other circumstances, scope is simply closed out.
1.1 kristaps 310: .\" .\" SUB-SECTION
311: .\" .Ss Examples
312: .\" The following examples illustrate each macro classification.
313: .\" .\" PARAGRAPH
314: .\" .Pp
315: .\" Implicit full-block. Has head, body and no tail. Scope closed by
316: .\" second
317: .\" .Sq \&Sh
318: .\" invocation.
319: .\" .Bd -literal -offset XXXX
320: .\" \&.Sh SECTION 1
321: .\" body...
322: .\" \&.Sh SECTION 2
323: .\" .Ed
324: .\" .\" PARAGRAPH
325: .\" .Pp
326: .\" Nested implicit full-block, where the subsection
327: .\" .Sq \&Ss
328: .\" is within the scope of the parent section
329: .\" .Sq \&Sh
330: .\" and closed along with its parent by the subsequent
331: .\" .Sq \&Sh .
332: .\" .Bd -literal -offset XXXX
333: .\" \&.Sh SECTION 1
334: .\" \&.Ss Subsection 1
335: .\" body...
336: .\" \&.Sh SECTION 2
337: .\" .Ed
338: .\" .\" PARAGRAPH
339: .\" .Pp
340: .\" Explicit full-block. Has a head, a body and no tail. Scope closed by
341: .\" .Sq \&Ef
342: .\" invocation.
343: .\" .Bd -literal -offset XXXX
344: .\" \&.Bf symbolic
345: .\" body...
346: .\" \&.Ef
347: .\" .Ed
348: .\" .\" PARAGRAPH
349: .\" .Pp
350: .\" Nested explicit/implicit scope.
351: .\" .Sq \&It
352: .\" macro is an implicit block whose scope is closed by the explicit
353: .\" .Sq \&El
354: .\" closure.
355: .\" .Bd -literal -offset XXXX
356: .\" \&.Bl \-bullet
357: .\" \&.It head
358: .\" body...
359: .\" \&.El
360: .\" .Ed
361: .\" .\" PARAGRAPH
362: .\" .Pp
363: .\" Explicit partial-block. Has head, body and tail. Scope closed by
364: .\" .Sq \&Ec
365: .\" invocation.
366: .\" .Bd -literal -offset XXX
367: .\" \&.Eo head body... \&Ec tail
368: .\" .Ed
369: .\" .\" PARAGRAPH
370: .\" .Pp
371: .\" Implicit partial-block. Has only body. Scope is closed by end-of-line.
372: .\" .Bd -literal -offset XXX
373: .\" \&.Sq body...
374: .\" .Ed
375: .\" .\" PARAGRAPH
376: .\" .Pp
377: .\" Explicit partial-block with only body and scope closed by
378: .\" .Sq \&Ac
379: .\" invocation.
380: .\" .Bd -literal -offset XXXX
381: .\" \&.Ao body... \&Ac
382: .\" .Ed
383: .\" .\" PARAGRAPH
384: .\" .Pp
385: .\" Implicit partial-block enclosing explicit partial-block.
386: .\" .Bd -literal -offset XXX
387: .\" \&.Sq body... \&Ao body... \&Ac
388: .\" .Ed
389: .\" .\" PARAGRAPH
390: .\" .Pp
391: .\" Inline macros, several in sequence. Scope is closed for
392: .\" .Sq \&Fl
393: .\" by the punctuation delimiter and
394: .\" .Sq \&Ar
395: .\" by the end-of-line.
396: .\" .Bd -literal -offset XXXX
397: .\" \&.Fl text0 text1 ; Ar text0 text1
398: .\" .Ed
399: .\" SECTION
1.2 kristaps 400: .Sh SYNTAX
1.3 kristaps 401: Macros are generally two and at times three characters in length. The
402: syntax of macro invocation depends on its classification.
1.2 kristaps 403: .Qq \-arg
404: refers to the macro arguments (which may contain zero or more values).
405: In these illustrations,
406: .Sq \&.Yo
407: opens the scope of a macro, and if specified,
408: .Sq \&.Yc
409: closes it out (closure may be implicit at end-of-line or end-of-file).
1.4 ! kristaps 410: .\" PARAGRAPH
1.2 kristaps 411: .Pp
1.4 ! kristaps 412: Block full-explicit (may contain head, body, tail).
1.2 kristaps 413: .Bd -literal -offset XXXX
1.4 ! kristaps 414: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB
! 415: \(lBbody...\(rB
! 416: \&.Yc \(lBtail...\(rB
1.2 kristaps 417: .Ed
1.4 ! kristaps 418: .\" PARAGRAPH
1.2 kristaps 419: .Pp
1.4 ! kristaps 420: Block full-implicit (may contain zero or more heads, body, no tail).
1.2 kristaps 421: .Bd -literal -offset XXXX
1.4 ! kristaps 422: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead... \(lBTa head...\(rB\(rB
! 423: \(lBbody...\(rB
1.2 kristaps 424: \&.Yc
425: .Ed
1.4 ! kristaps 426: .\" PARAGRAPH
1.2 kristaps 427: .Pp
1.4 ! kristaps 428: Block partial-explicit (may contain head, multi-line body, tail).
1.2 kristaps 429: .Bd -literal -offset XXXX
430: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB
1.4 ! kristaps 431: \(lBbody...\(rB
! 432: \&.Yc \(lBtail...\(rB
1.2 kristaps 433:
434: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBhead...\(rB \
1.4 ! kristaps 435: \(lBbody...\(rB \&Yc \(lBtail...\(rB
1.2 kristaps 436: .Ed
1.4 ! kristaps 437: .\" PARAGRAPH
1.2 kristaps 438: .Pp
1.4 ! kristaps 439: Block partial-implicit (no head, body, no tail). Note that the body
! 440: section may be followed by zero or more
! 441: .Sx Reserved Words .
! 442: These are in the block scope, but not in the body scope.
1.2 kristaps 443: .Bd -literal -offset XXXX
1.4 ! kristaps 444: \&.Yo \(lB\-arg \(lBval...\(rB\(rB \(lBbody...\(rB \(lBreserved...\(rB
1.2 kristaps 445: .Ed
1.4 ! kristaps 446: .\" PARAGRAPH
1.2 kristaps 447: .Pp
1.4 ! kristaps 448: In-lines have \(>=0 scoped arguments.
1.2 kristaps 449: .Bd -literal -offset XXX
1.4 ! kristaps 450: \&.Yy \(lB\-arg \(lBval...\(rB\(rB \(lBargs...\(rB
1.2 kristaps 451:
452: \&.Yy \(lB\-arg \(lBval...\(rB\(rB arg0 arg1 argN
453: .Ed
454: .\"
1.1 kristaps 455: .Sh MACROS
456: This section contains a complete list of all
457: .Nm
1.2 kristaps 458: macros, arranged ontologically. A
1.1 kristaps 459: .Qq callable
460: macro is may be invoked subsequent to the initial macro-line macro. A
461: .Qq parsable
1.2 kristaps 462: macro may be followed by further (ostensibly callable) macros.
1.1 kristaps 463: .\" SUB-SECTION
464: .Ss Block full-implicit
465: The head of these macros follows invocation; the body is the content of
466: subsequent lines prior to closure. None of these macros have tails;
467: some
468: .Po
469: .Sq \&It \-bullet ,
470: .Sq \-hyphen ,
471: .Sq \-dash ,
1.2 kristaps 472: .Sq \-enum ,
473: .Sq \-item
1.1 kristaps 474: .Pc
475: don't have heads.
476: .Pp
477: .Bl -column "MacroX" "CallableX" "ParsableX" "Closing" -compact -offset XXXX
478: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Closing
479: .It \&.Sh Ta \&No Ta \&No Ta \&.Sh
480: .It \&.Ss Ta \&No Ta \&No Ta \&.Sh, \&.Ss
481: .It \&.It Ta \&No Ta Yes Ta \&.It, \&.El
482: .El
483: .\" SUB-SECTION
484: .Ss Block full-explicit
485: None of these macros are callable or parsed. The last column indicates
486: the explicit scope rules. All contains bodies, some may contain heads
487: .Pq So \&Bf Sc .
488: .Pp
489: .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXX" -compact -offset XXXX
490: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
491: .It \&.Bd Ta \&No Ta \&No Ta closed by \&.Ed
492: .It \&.Ed Ta \&No Ta \&No Ta opened by \&.Bd
493: .It \&.Bl Ta \&No Ta \&No Ta closed by \&.El
494: .It \&.El Ta \&No Ta \&No Ta opened by \&.Bl
495: .It \&.Bf Ta \&No Ta \&No Ta closed by \&.Ef
496: .It \&.Ef Ta \&No Ta \&No Ta opened by \&.Bf
1.2 kristaps 497: .It \&.Bk Ta \&No Ta \&No Ta closed by \&.Ek
498: .It \&.Ek Ta \&No Ta \&No Ta opened by \&.Bk
1.1 kristaps 499: .El
500: .\" SUB-SECTION
501: .Ss Block partial-implicit
502: All of these are callable and parsed for further macros. Their scopes
503: close at the invocation's end-of-line.
504: .Pp
505: .Bl -column "MacroX" "CallableX" "ParsableX" -compact -offset XXXX
506: .It Em Macro Ta Em Callable Ta Em Parsable
507: .It \&.Aq Ta Yes Ta Yes
508: .It \&.Op Ta Yes Ta Yes
509: .It \&.Bq Ta Yes Ta Yes
510: .It \&.Dq Ta Yes Ta Yes
511: .It \&.Pq Ta Yes Ta Yes
512: .It \&.Qq Ta Yes Ta Yes
513: .It \&.Sq Ta Yes Ta Yes
514: .It \&.Brq Ta Yes Ta Yes
1.2 kristaps 515: .It \&.D1 Ta \&No Ta \&Yes
516: .It \&.Dl Ta \&No Ta Yes
517: .It \&.Ql Ta Yes Ta Yes
1.1 kristaps 518: .El
519: .\" SUB-SECTION
520: .Ss Block partial-explicit
521: Each of these contains at least a body and, in limited circumstances, a
522: head
523: .Pq So \&Fo Sc , So \&Eo Sc
524: and/or tail
525: .Pq So \&Ec Sc .
526: .Pp
527: .Bl -column "MacroX" "CallableX" "ParsableX" "closed by XXXX" -compact -offset XXXX
528: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Scope
529: .It \&.Ao Ta Yes Ta Yes Ta closed by \&.Ac
530: .It \&.Ac Ta Yes Ta Yes Ta opened by \&.Ao
531: .It \&.Bc Ta Yes Ta Yes Ta closed by \&.Bo
532: .It \&.Bo Ta Yes Ta Yes Ta opened by \&.Bc
533: .It \&.Pc Ta Yes Ta Yes Ta closed by \&.Po
534: .It \&.Po Ta Yes Ta Yes Ta opened by \&.Pc
535: .It \&.Do Ta Yes Ta Yes Ta closed by \&.Dc
536: .It \&.Dc Ta Yes Ta Yes Ta opened by \&.Do
537: .It \&.Xo Ta Yes Ta Yes Ta closed by \&.Xc
538: .It \&.Xc Ta Yes Ta Yes Ta opened by \&.Xo
539: .It \&.Bro Ta Yes Ta Yes Ta closed by \&.Brc
540: .It \&.Brc Ta Yes Ta Yes Ta opened by \&.Bro
541: .It \&.Oc Ta Yes Ta Yes Ta closed by \&.Oo
542: .It \&.Oo Ta Yes Ta Yes Ta opened by \&.Oc
543: .It \&.So Ta Yes Ta Yes Ta closed by \&.Sc
544: .It \&.Sc Ta Yes Ta Yes Ta opened by \&.So
545: .It \&.Fc Ta Yes Ta Yes Ta opened by \&.Fo
546: .It \&.Fo Ta \&No Ta \&No Ta closed by \&.Fc
547: .It \&.Ec Ta Yes Ta Yes Ta opened by \&.Eo
548: .It \&.Eo Ta Yes Ta Yes Ta closed by \&.Ec
549: .It \&.Qc Ta Yes Ta Yes Ta opened by \&.Oo
550: .It \&.Qo Ta Yes Ta Yes Ta closed by \&.Oc
1.2 kristaps 551: .It \&.Re Ta \&No Ta \&No Ta opened by \&.Rs
552: .It \&.Rs Ta \&No Ta \&No Ta closed by \&.Re
1.1 kristaps 553: .El
554: .\" SUB-SECTION
1.2 kristaps 555: .Ss In-line
1.3 kristaps 556: In-line macros have only text children. If a number (or inequality) of
557: arguments is
558: .Pq n ,
559: then the macro accepts an arbitrary number of arguments.
1.2 kristaps 560: .Pp
561: .Bl -column "MacroX" "CallableX" "ParsableX" "Arguments" -compact -offset XXXX
562: .It Em Macro Ta Em Callable Ta Em Parsable Ta Em Arguments
1.3 kristaps 563: .It \&.Dd Ta \&No Ta \&No Ta >0
564: .It \&.Dt Ta \&No Ta \&No Ta n
565: .It \&.Os Ta \&No Ta \&No Ta n
1.2 kristaps 566: .It \&.Pp Ta \&No Ta \&No Ta 0
1.3 kristaps 567: .It \&.Ad Ta Yes Ta Yes Ta n
568: .It \&.An Ta \&No Ta Yes Ta n
569: .It \&.Ar Ta Yes Ta Yes Ta n
570: .It \&.Cd Ta Yes Ta \&No Ta >0
571: .It \&.Cm Ta Yes Ta Yes Ta n
572: .It \&.Dv Ta Yes Ta Yes Ta >0
573: .It \&.Er Ta Yes Ta Yes Ta >0
574: .It \&.Ev Ta Yes Ta Yes Ta >0
575: .It \&.Ex Ta \&No Ta \&No Ta 0
576: .It \&.Fa Ta Yes Ta Yes Ta >0
577: .It \&.Fd Ta \&No Ta \&No Ta >0
578: .It \&.Fl Ta Yes Ta Yes Ta n
579: .It \&.Fn Ta Yes Ta Yes Ta >0
580: .It \&.Ft Ta \&No Ta Yes Ta n
581: .It \&.Ic Ta Yes Ta Yes Ta >0
582: .It \&.In Ta \&No Ta \&No Ta n
583: .It \&.Li Ta Yes Ta Yes Ta >0
584: .It \&.Nd Ta \&No Ta \&No Ta n
585: .It \&.Nm Ta Yes Ta Yes Ta n
586: .It \&.Ot Ta \&No Ta \&No Ta n
587: .It \&.Pa Ta Yes Ta Yes Ta n
588: .It \&.Rv Ta \&No Ta \&No Ta 0
589: .It \&.St Ta \&No Ta Yes Ta 1
590: .It \&.Va Ta Yes Ta Yes Ta >0
591: .It \&.Vt Ta Yes Ta Yes Ta >0
592: .It \&.Xr Ta Yes Ta Yes Ta >0, <3
593: .It \&.%A Ta \&No Ta \&No Ta >0
594: .It \&.%B Ta \&No Ta \&No Ta >0
595: .It \&.%C Ta \&No Ta \&No Ta >0
596: .It \&.%D Ta \&No Ta \&No Ta >0
597: .It \&.%I Ta \&No Ta \&No Ta >0
598: .It \&.%J Ta \&No Ta \&No Ta >0
599: .It \&.%N Ta \&No Ta \&No Ta >0
600: .It \&.%O Ta \&No Ta \&No Ta >0
601: .It \&.%P Ta \&No Ta \&No Ta >0
602: .It \&.%R Ta \&No Ta \&No Ta >0
603: .It \&.%T Ta \&No Ta \&No Ta >0
604: .It \&.%V Ta \&No Ta \&No Ta >0
605: .It \&.At Ta Yes Ta Yes Ta 1
606: .It \&.Bsx Ta Yes Ta Yes Ta n
607: .It \&.Bx Ta Yes Ta Yes Ta n
608: .It \&.Db Ta \&No Ta \&No Ta 1
609: .It \&.Em Ta Yes Ta Yes Ta >0
610: .It \&.Fx Ta Yes Ta Yes Ta n
611: .It \&.Ms Ta \&No Ta Yes Ta >0
612: .It \&.No Ta Yes Ta Yes Ta 0
613: .It \&.Ns Ta Yes Ta Yes Ta 0
614: .It \&.Nx Ta Yes Ta Yes Ta n
615: .It \&.Ox Ta Yes Ta Yes Ta n
616: .It \&.Pf Ta \&No Ta Yes Ta 1
617: .It \&.Sm Ta \&No Ta \&No Ta 1
618: .It \&.Sx Ta Yes Ta Yes Ta >0
619: .It \&.Sy Ta Yes Ta Yes Ta >0
620: .It \&.Tn Ta Yes Ta Yes Ta >0
621: .It \&.Ux Ta Yes Ta Yes Ta n
622: .It \&.Bt Ta \&No Ta \&No Ta 0
623: .It \&.Hf Ta \&No Ta \&No Ta n
624: .It \&.Fr Ta \&No Ta \&No Ta n
625: .It \&.Ud Ta \&No Ta \&No Ta 0
626: .It \&.Lb Ta \&No Ta \&No Ta 1
627: .It \&.Ap Ta Yes Ta Yes Ta 0
628: .It \&.Lp Ta \&No Ta \&No Ta 0
629: .It \&.Lk Ta \&No Ta Yes Ta >0
630: .It \&.Mt Ta \&No Ta Yes Ta >0
1.1 kristaps 631: .El
1.2 kristaps 632: .\" SECTION
1.4 ! kristaps 633: .Sh COMPATIBILITY
! 634: The mdoc language was traditionally a
! 635: .Qq roff
! 636: macro package; most existing manuals were written with mdoc syntax
! 637: dictated by system-dependent roff installations. This section documents
! 638: compatibility with these systems.
! 639: .Pp
! 640: .Bl -dash -compact
! 641: .\" LIST-ITEM
! 642: .It
! 643: .Sq \&It \-nested
! 644: is assumed for all lists: any list may be nested and
! 645: .Sq \-enum
! 646: lists will restart the sequence only for the sub-list.
! 647: .\" LIST-ITEM
! 648: .It
! 649: .Sq \&It \-column
! 650: syntax where column widths may be preceeded by other arguments (instead
! 651: of proceeded) is not supported.
! 652: .\" LIST-ITEM
! 653: .It
! 654: The
! 655: .Sq \&At
! 656: macro only accepts a single parameter.
! 657: .\" LIST-ITEM
! 658: .It
! 659: The system-name macros (
! 660: .Ns Sq \&At ,
! 661: .Sq \&Bsx ,
! 662: .Sq \&Bx ,
! 663: .Sq \&Fx ,
! 664: .Sq \&Nx ,
! 665: .Sq \&Ox ,
! 666: and
! 667: .Sq \&Ux )
! 668: are callable.
! 669: .\" LIST-ITEM
! 670: .It
! 671: Some manuals use
! 672: .Sq \&Li
! 673: incorrectly by following it with a reserved character and expecting the
! 674: delimiter to render. This is not supported.
! 675: .\" LIST-ITEM
! 676: .It
! 677: .Sq \&Cd
! 678: is callable.
! 679: .El
! 680: .\" SECTION
1.2 kristaps 681: .Sh SEE ALSO
682: .Xr mdoctree 1 ,
683: .Xr mdoclint 1 ,
684: .Xr mdocterm 1 ,
685: .Xr mdoc 3
686: .\" SECTION
687: .Sh AUTHORS
688: The
689: .Nm
690: utility was written by
691: .An Kristaps Dzonsons Aq kristaps@kth.se .
CVSweb