1 .\" $Id: mandoc.1,v 1.84 2011/01/04 23:32:21 kristaps Exp $
3 .\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
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.
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.
17 .Dd $Mdocdate: January 4 2011 $
22 .Nd format and display UNIX manuals
36 manual pages for display.
37 The arguments are as follows:
43 for available formats.
47 Comma-separated output options.
52 for available formats.
56 Print version and exit.
58 Specify the minimum message
60 to be reported on the standard error output and to affect the exit status.
83 to exit after parsing a file that causes warnings or errors of at least
85 No formatted output will be produced from that file.
90 are requested, they can be joined with a comma, for example
91 .Fl W Ns Cm error , Ns Cm stop .
93 Read input from zero or more files.
94 If unspecified, reads from stdin.
95 If multiple files are specified,
97 will halt with the first failed parse.
106 text from stdin, implying
129 should only be used for legacy manuals.
133 which is also the default, determines encoding on-the-fly: if the first
140 parser is used; otherwise, the
145 files are specified with
147 each has its file-type determined this way.
148 If multiple files are
153 is specified, then this format is used exclusively.
157 utility accepts the following
159 arguments, which correspond to output modes:
162 Produce 7-bit ASCII output.
167 Produce strict CSS1/HTML-4.01 output.
171 Parse only: produce no output.
173 .Fl W Ns Cm warning .
179 Produce PostScript output.
181 .Sx PostScript Output .
183 Produce an indented parse tree.
185 Produce strict CSS1/XHTML-1.0 output.
190 If multiple input files are specified, these will be processed by the
191 corresponding filter in-order.
195 which is the default, is rendered in standard 7-bit ASCII documented in
198 Font styles are applied by using back-spaced encoding such that an
202 .Sq _ Ns \e[bs] Ns c ,
205 is the back-space character number 8.
206 Emboldened characters are rendered as
207 .Sq c Ns \e[bs] Ns c .
209 The special characters documented in
211 are rendered best-effort in an ASCII equivalent.
213 Output width is limited to 78 visible columns unless literal input lines
218 arguments are accepted:
220 .It Cm width Ns = Ns Ar width
221 The output width is set to
223 which will normalise to \(>=60.
228 conforms to HTML-4.01 strict.
231 .Pa example.style.css
232 file documents style-sheet classes available for customising output.
233 If a style-sheet is not specified with
236 defaults to simple output readable in any graphical or text-based web
239 Special characters are rendered in decimal-encoded UTF-8.
243 arguments are accepted:
245 .It Cm includes Ns = Ns Ar fmt
250 is used as a template for linked header files (usually via the
255 are replaced with the include filename.
256 The default is not to present a
258 .It Cm man Ns = Ns Ar fmt
262 .Ar ../html%S/%N.%S.html ,
263 is used as a template for linked manuals (usually via the
270 are replaced with the linked manual's name and section, respectively.
271 If no section is included, section 1 is assumed.
272 The default is not to
274 .It Cm style Ns = Ns Ar style.css
277 is used for an external style-sheet.
278 This must be a valid absolute or
281 .Ss PostScript Output
284 Level-2 pages may be generated by
286 Output pages default to letter sized and are rendered in the Times font
288 Margins are calculated as 1/9 the page length and width.
291 Special characters are rendered as in
296 arguments are accepted:
298 .It Cm paper Ns = Ns Ar name
308 You may also manually specify dimensions as
310 width by height in millimetres.
311 If an unknown value is encountered,
316 PDF-1.1 output may be generated by
319 .Sx PostScript Output
322 arguments and defaults.
326 conforms to XHTML-1.0 strict.
330 for details; beyond generating XHTML tags instead of HTML tags, these
331 output modes are identical.
335 utility exits with one of the following values, controlled by the message
341 .Bl -tag -width Ds -compact
343 No warnings or errors occurred, or those that did were ignored because
344 they were lower than the requested
347 At least one warning occurred, but no error, and
351 At least one parsing error occurred, but no fatal error, and
357 A fatal parsing error occurred.
359 Invalid command line arguments were specified.
360 No input files have been read.
362 An operating system error occurred, for example memory exhaustion or an
363 error accessing input files.
366 to exit at once, possibly in the middle of parsing or formatting a file.
372 .Fl W Ns Cm warning .
374 To page manuals to the terminal:
376 .Dl $ mandoc \-Wall,stop mandoc.1 2\*(Gt&1 | less
377 .Dl $ mandoc mandoc.1 mdoc.3 mdoc.7 | less
379 To produce HTML manuals with
383 .Dl $ mandoc \-Thtml -Ostyle=style.css mdoc.7 \*(Gt mdoc.7.html
385 To check over a large set of manuals:
387 .Dl $ mandoc \-Tlint `find /usr/src -name \e*\e.[1-9]`
389 To produce a series of PostScript manuals for A4 paper:
391 .Dl $ mandoc \-Tps \-Opaper=a4 mdoc.7 man.7 \*(Gt manuals.ps
393 Standard error messages reporting parsing errors are prefixed by
396 .D1 Ar file : line : column : \ level :
399 where the fields have the following meanings:
400 .Bl -tag -width "column"
402 The name of the input file causing the message.
404 The line number in that input file.
405 Line numbering starts at 1.
407 The column number in that input file.
408 Column numbering starts at 1.
409 If the issue is caused by a word, the column number usually
410 points to the first character of the word.
412 The message level, printed in capital letters.
415 Message levels have the following meanings:
416 .Bl -tag -width "warning"
418 The parser is unable to parse a given input file at all.
419 No formatted output is produced from that input file.
421 An input file contains syntax that cannot be safely interpreted,
422 either because it is invalid or because
424 does not implement it yet.
425 By discarding part of the input or inserting missing tokens,
426 the parser is able to continue, and the error does not prevent
427 generation of formatted output, but typically, preparing that
428 output involves information loss, broken document structure
429 or unintended formatting.
431 An input file uses obsolete, discouraged or non-portable syntax.
432 All the same, the meaning of the input is unambiguous and a correct
433 rendering can be produced.
434 Documents causing warnings may render poorly when using other
435 formatting tools instead of
443 levels are hidden unless their level, or a lower level, is requested using a
451 utility may also print messages related to invalid command line arguments
452 or operating system errors, for example when memory is exhausted or
453 input files cannot be read.
454 Such messages do not carry the prefix described above.
456 This section summarises
458 compatibility with GNU troff.
459 Each input and output format is separately noted.
460 .Ss ASCII Compatibility
471 are synonyms, as are \-filled and \-ragged.
476 macro does not underline when scoped under an
478 in the FILES section.
479 This behaves correctly in
482 A list or display following the
487 does not assert a prior vertical break, just as it doesn't with
497 Words aren't hyphenated.
499 Sentences are unilaterally monospaced.
501 .Ss HTML/XHTML Compatibility
506 escape will revert the font to the previous
508 escape, not to the last rendered decoration, which is now dictated by
509 CSS instead of hard-coded.
510 It also will not span past the current scope,
514 mode, this will work fine.
521 list types render similarly (no break following overreached left-hand
522 side) due to the expressive constraints of HTML.
529 lists render similarly.
540 utility was written by
541 .An Kristaps Dzonsons Aq kristaps@bsd.lv .
547 the maximum size of an element attribute is determined by
549 which is usually 1024 bytes.
550 Be aware of this when setting long link
552 .Fl O Ns Cm style Ns = Ns Ar really/long/link .
554 Nesting elements within next-line element scopes of
564 and cause them to forget the formatting of the prior next-line scope.
568 control character is an alias for the standard macro control character
569 and does not emit a line-break as stipulated in GNU troff.