]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man7/man.7
More updates.
[thirdparty/man-pages.git] / man7 / man.7
1 .\" (C) Copyright 1992-1999 Rickard E. Faith and David A. Wheeler
2 .\" (faith@cs.unc.edu and dwheeler@ida.org)
3 .\"
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date. The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein. The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
23 .\"
24 .\" Modified Sun Jul 25 11:06:05 1993 by Rik Faith (faith@cs.unc.edu)
25 .\" Modified Sat Jun 8 00:39:52 1996 by aeb
26 .\" Modified Wed Jun 16 23:00:00 1999 by David A. Wheeler (dwheeler@ida.org)
27 .\" Modified Thu Jul 15 12:43:28 1999 by aeb
28 .\" FIXME split this page into two parts: man.7 describing the macros
29 .\" and manpage.7 describing the Linux man page conventions]
30 .\" Modified Sun Jan 6 18:26:25 2002 by Martin Schulze <joey@infodrom.org>
31 .\" Modified Tue Jul 27 20:12:02 2004 by Colin Watson <cjwatson@debian.org>
32 .\"
33 .\" FIXME add a reference to one or two canonical man pages, which
34 .\" can serve as examples of how things should be done.
35 .TH MAN 7 2007-05-17 "Linux" "Linux Programmer's Manual"
36 .SH NAME
37 man \- macros to format man pages
38 .SH SYNOPSIS
39 .B groff \-Tascii \-man
40 .I file
41 \&...
42 .LP
43 .B groff \-Tps \-man
44 .I file
45 \&...
46 .LP
47 .B man
48 .RI [ section ]
49 .I title
50 .SH DESCRIPTION
51 This manual page explains the
52 .B "groff tmac.an"
53 macro package (often called the
54 .B man
55 macro package) and related conventions for creating manual (man) pages.
56 This macro package should be used by developers when
57 writing or porting man pages for Linux.
58 It is fairly compatible with other
59 versions of this macro package, so porting man pages should not be a major
60 problem (exceptions include the NET-2 BSD release, which uses a totally
61 different macro package called mdoc; see
62 .BR mdoc (7)).
63 .PP
64 Note that NET-2 BSD mdoc man pages can be used with
65 .B groff
66 simply by specifying the
67 .B \-mdoc
68 option instead of the
69 .B \-man
70 option.
71 Using the
72 .B \-mandoc
73 option is, however, recommended, since this will automatically detect which
74 macro package is in use.
75 .SS Preamble
76 The first command in a man page (after comment lines,
77 that is, lines that start with \fB.\\"\fP) should be
78 .RS
79 .sp
80 .B \&.TH
81 .IR "title section date source manual" ,
82 .sp
83 .RE
84 where:
85 .RS
86 .TP 10
87 .I title
88 The title of the man page, wrtten in all caps (e.g.,
89 .IR MAN ).
90 .TP
91 .I section
92 The section number in which the man page should be placed (e.g.,
93 .IR 7 ).
94 .TP
95 .I date
96 The date of the last revision\(emremember to change this every time a
97 change is made to the man page, since this is the most general way of doing
98 version control.
99 Dates should be written in the form YYYY-MM-DD.
100 .TP
101 .I source
102 The source of the command, function, or system call.
103 .sp
104 For those few pages in Sections 1 and 8, probably you just want to write
105 .IR GNU .
106 .sp
107 For system calls, just write
108 .IR "Linux" .
109 (An earlier practice was to write the version number
110 of the kernel from which the manual page was being written/checked.
111 However, this was never done consistently, and so was
112 probably worse than including no version number.
113 Henceforth, avoid including a version number.)
114 .sp
115 For library calls that are part of glibc or one of the
116 other common GNU libraries, just use
117 .IR "GNU C Library" ", " GNU ,
118 or an empty string.
119 .sp
120 For section 4 pages, use
121 .IR "Linux" .
122 .sp
123 In cases of doubt, just write
124 .IR Linux ", or " GNU .
125 .TP
126 .I manual
127 The title of the manual (e.g., for Section 2 and 3 pages in
128 the \fIman-pages\fP package, use
129 .IR "Linux Programmer's Manual" ).
130 .RE
131 .PP
132 Note that BSD mdoc-formatted pages begin with the
133 .B Dd
134 command, not the
135 .B TH
136 command.
137 .PP
138 The manual sections are traditionally defined as follows:
139 .RS
140 .TP 10
141 .B 1 Commands (Programs)
142 Those commands that can be executed by the user from within
143 a shell.
144 .TP
145 .B 2 System calls
146 Those functions which must be performed by the kernel.
147 .TP
148 .B 3 Library calls
149 Most of the
150 .I libc
151 functions.
152 .TP
153 .B 4 Special files (devices)
154 Files found in
155 .IR /dev .
156 .TP
157 .B 5 File formats and conventions
158 The format for
159 .I /etc/passwd
160 and other human-readable files.
161 .TP
162 .B 6 Games
163 .TP
164 .B 7 Conventions and miscellaneous
165 Overviews of various topics, conventions and protocols,
166 character set standards, and miscellaneous other things.
167 .TP
168 .B 8 System management commands
169 Commands like
170 .BR mount (8),
171 many of which only root can execute.
172 .\" .TP
173 .\" .B 9 Kernel routines
174 .\" This is an obsolete manual section.
175 .\" Once it was thought a good idea to document the Linux kernel here,
176 .\" but in fact very little has been documented, and the documentation
177 .\" that exists is outdated already.
178 .\" There are better sources of
179 .\" information for kernel developers.
180 .RE
181 .SS Sections
182 Sections are started with
183 .B \&.SH
184 followed by the heading name.
185 .\" The following doesn't seem to be required (see Debian bug 411303),
186 .\" If the name contains spaces and appears
187 .\" on the same line as
188 .\" .BR \&.SH ,
189 .\" then place the heading in double quotes.
190 The list below shows conventional or suggested sections.
191 Most manual pages should include at least the
192 .B highlighted
193 sections.
194 Please try to arrange a new manual page so that sections
195 are placed in approximately the order shown in the list.
196 .in +0.5i
197 .nf
198
199 \fBNAME\fP
200 \fBSYNOPSIS\fP
201 \fBDESCRIPTION\fP
202 OPTIONS [Normally only in sections 1, 8]
203 ENVIRONMENT
204 FILES
205 VERSIONS [Normally only in sections 2, 3]
206 RETURN VALUE [Normally only in sections 2, 3]
207 EXIT STATUS [Normally only in sections 1, 8]
208 .\" May 07: Few current man pages have an ERROR HANDLING section,,,
209 .\" ERROR HANDLING,
210 ERRORS [Typically only in sections 2, 3]
211 .\" May 07: Almost no current man pages have a USAGE section,,,
212 .\" USAGE,
213 ..\" DIAGNOSTICS,
214 .\" May 07: Almost no current man pages have a SECURITY section,,,
215 .\" SECURITY,
216 CONFORMING TO
217 NOTES
218 BUGS
219 .\" AUTHOR sections are discouraged
220 .\" AUTHOR,
221 EXAMPLE
222 \fBSEE ALSO\fP
223
224 .fi
225 .in
226 .IR "Where a traditional heading would apply" ", " "please use it" ;
227 this kind of consistency can make the information easier to understand.
228 If you must, you can create your own
229 headings if they make things easier to understand (this can
230 be especially useful for pages in sections 4 and 5).
231 However, before doing this, consider whether you could use the
232 traditional headings, with some subsections (\fI.SS\fP) within
233 those sections.
234
235 The only mandatory heading is NAME, which should be the first section and
236 be followed on the next line by a one line description of the program:
237 .RS
238 .sp
239 \&.SH NAME
240 .br
241 chess \\- the game of chess
242 .sp
243 .RE
244 It is extremely important that this format is followed, and that there is a
245 backslash before the single dash which follows the command name.
246 This syntax is used by the
247 .BR makewhatis (8)
248 program to create a database of short command descriptions for the
249 .BR whatis (1)
250 and
251 .BR apropos (1)
252 commands.
253 .PP
254 Some other traditional sections have the following contents:
255 .TP 14
256 .B SYNOPSIS
257 briefly describes the command or function's interface.
258 For commands, this shows the syntax of the command and its arguments
259 (including options);
260 boldface is used for as-is text and italics are used to indicate replaceable
261 arguments.
262 Brackets ([]) surround optional arguments, vertical bars (|)
263 separate choices, and ellipses (\&...) can be repeated.
264 For functions, it shows any required data declarations or
265 .B #include
266 directives, followed by the function declaration.
267 .TP
268 .B DESCRIPTION
269 gives an explanation of what the program, function, or format does.
270 Discuss how it interacts with files and standard input, and what it
271 produces on standard output or standard error.
272 Omit internals and implementation details unless they're critical for
273 understanding the interface.
274 Describe the usual case;
275 for information on command-line options of a program use the
276 .B OPTIONS
277 section.
278 .\" If there is some kind of input grammar or complex set of subcommands,
279 .\" consider describing them in a separate
280 .\" .B USAGE
281 .\" section (and just place an overview in the
282 .\" .B DESCRIPTION
283 .\" section).
284 .TP
285 .B RETURN VALUE
286 gives a
287 list of the values the library routine will return to the caller
288 and the conditions that cause these values to be returned.
289 .TP
290 .B EXIT STATUS
291 lists the possible exit status values of a program and
292 the conditions that cause these values to be returned.
293 This section should only appear for Section 1 and 8 manual pages.
294 .TP
295 .B OPTIONS
296 describes the command-line options accepted by a
297 program and how they change its behavior.
298 This section should only appear for Section 1 and 8 manual pages.
299 .\" .TP
300 .\" .B USAGE
301 .\" describes the grammar of any sublanguage this implements.
302 .\" FIXME document VERSIONS
303 .\" FIXME document other common Section Heading types
304 .\" FIXME make a clear statement about the order of Sections
305 .TP
306 .B EXAMPLE
307 provides one or more examples describing how this function, file or
308 command is used.
309 .TP
310 .B FILES
311 lists the files the program or function uses, such as
312 configuration files, startup files,
313 and files the program directly operates on.
314 Give the full pathname of these files, and use the installation
315 process to modify the directory part to match user preferences.
316 For many programs, the default installation location is in
317 .IR /usr/local ,
318 so your base manual page should use
319 .I /usr/local
320 as the base.
321 .TP
322 .B ENVIRONMENT
323 lists all environment variables that affect the program or function
324 and how they affect it.
325 .\" May 07: Almost no current man pages have a DIAGNOSTICS section;
326 .\" "RETURN VALUE" or "EXIT STATUS" is preferred.
327 .\" .TP
328 .\" .B DIAGNOSTICS
329 .\" gives an overview of the most common error messages and how to
330 .\" cope with them.
331 .\" You don't need to explain system error messages
332 .\" or fatal signals that can appear during execution of any program
333 .\" unless they're special in some way to the program.
334 .\"
335 .\" May 07: Almost no current man pages have a SECURITY section.
336 .\".TP
337 .\".B SECURITY
338 .\"discusses security issues and implications.
339 .\"Warn about configurations or environments that should be avoided,
340 .\"commands that may have security implications, and so on, especially
341 .\"if they aren't obvious.
342 .\"Discussing security in a separate section isn't necessary;
343 .\"if it's easier to understand, place security information in the
344 .\"other sections (such as the
345 .\" .B DESCRIPTION
346 .\" or
347 .\" .B USAGE
348 .\" section).
349 .\" However, please include security information somewhere!
350 .TP
351 .B VERSIONS
352 A brif summary of the Linux kernel or glibc versions where a
353 system call or library function appeared,
354 or changed significantly in its operation.
355 .TP
356 .B CONFORMING TO
357 describes any standards or conventions this implements.
358 .TP
359 .B NOTES
360 provides miscellaneous notes.
361 .\" FIXME -- mention .SS Linux Notes and .SS Glibc Notes?
362 .TP
363 .B BUGS
364 lists limitations, known defects or inconveniences,
365 and other questionable activities.
366 .TP
367 .B AUTHOR
368 lists authors of the documentation or program so you can mail in bug
369 reports.
370 .IR "Use of an AUTHOR section is discouraged".
371 (One exception is section 4 pages that list the authors of
372 device drivers, to whom software bugs should be sent.)
373 Generally, it is better not to clutter every page with a list
374 of (over time potentially numerous) authors;
375 if you write or significantly amend a page,
376 add a copyright notice as a comment in the source file.
377 .TP
378 .B SEE ALSO
379 lists related man pages in alphabetical order, possibly followed by
380 other related pages or documents.
381 Conventionally this is the last section.
382 .SS Fonts
383 Although there are many arbitrary conventions for man pages in the UNIX
384 world, the existence of several hundred Linux-specific man pages defines our
385 font standards:
386 .IP
387 For functions, the arguments are always specified using italics,
388 .IR "even in the SYNOPSIS section" ,
389 where the rest of the function is specified in bold:
390 .PP
391 .RS
392 .BI " int myfunction(int " argc ", char **" argv );
393 .RE
394 .IP
395 Filenames are always in italics (e.g.,
396 .IR "/usr/include/stdio.h" ),
397 except in the SYNOPSIS section, where included files are in bold (e.g.,
398 .BR "#include <stdio.h>" ).
399 .IP
400 Special macros, which are usually in upper case, are in bold (e.g.,
401 .BR MAXINT ).
402 .IP
403 When enumerating a list of error codes, the codes are in bold (this list
404 usually uses the
405 .B \&.TP
406 macro).
407 .IP
408 Any reference to the subject of the current manual page
409 should be written with the name in bold,
410 followed by a pair of parentheses in Roman (normal) font,
411 e.g.,
412 .BR man ().
413 The preferred way to write this in the source file is:
414 .nf
415
416 .BR man ()
417
418 .fi
419 (Using this format, rather than the use of "\\fB...\\fP()"
420 makes it easier to write tools that parse man page source files.)
421 .IP
422 Any reference to another man page
423 should be written with the name in bold,
424 \fIalways\fP followed by the section number,
425 formatted in Roman (normal) font, without any
426 separating spaces (e.g.,
427 .BR intro (2)).
428 The preferred way to write this in the source file is:
429 .nf
430
431 .BR intro (2)
432
433 .fi
434 (Including the section number in cross references lets tools like
435 .B man2html
436 create properly hyperlinked pages.)
437 .LP
438 The commands to select the type face are:
439 .TP 4
440 .B \&.B
441 Bold
442 .TP
443 .B \&.BI
444 Bold alternating with italics
445 (especially useful for function specifications)
446 .TP
447 .B \&.BR
448 Bold alternating with Roman
449 (especially useful for referring to other
450 manual pages)
451 .TP
452 .B \&.I
453 Italics
454 .TP
455 .B \&.IB
456 Italics alternating with bold
457 .TP
458 .B \&.IR
459 Italics alternating with Roman
460 .TP
461 .B \&.RB
462 Roman alternating with bold
463 .TP
464 .B \&.RI
465 Roman alternating with italics
466 .TP
467 .B \&.SB
468 Small alternating with bold
469 .TP
470 .B \&.SM
471 Small (useful for acronyms)
472 .LP
473 Traditionally, each command can have up to six arguments, but the GNU
474 implementation removes this limitation (you might still want to limit
475 yourself to 6 arguments for portability's sake).
476 Arguments are delimited by spaces.
477 Double quotes can be used to specify an argument which contains spaces.
478 All of the arguments will be printed next to each other without
479 intervening spaces, so that the
480 .B \&.BR
481 command can be used to specify a word in bold followed by a mark of
482 punctuation in Roman.
483 If no arguments are given, the command is applied to the following line
484 of text.
485 .SS "Other Macros and Strings"
486 .PP
487 Below are other relevant macros and predefined strings.
488 Unless noted otherwise, all macros
489 cause a break (end the current line of text).
490 Many of these macros set or use the "prevailing indent."
491 The "prevailing indent" value is set by any macro with the parameter
492 .I i
493 below;
494 macros may omit
495 .I i
496 in which case the current prevailing indent will be used.
497 As a result, successive indented paragraphs can use the same indent without
498 re-specifying the indent value.
499 A normal (non-indented) paragraph resets the prevailing indent value
500 to its default value (0.5 inches).
501 By default a given indent is measured in ens;
502 try to use ens or ems as units for
503 indents, since these will automatically adjust to font size changes.
504 The other key macro definitions are:
505 .SS "Normal Paragraphs"
506 .TP 9m
507 .B \&.LP
508 Same as
509 .B \&.PP
510 (begin a new paragraph).
511 .TP
512 .B \&.P
513 Same as
514 .B \&.PP
515 (begin a new paragraph).
516 .TP
517 .B \&.PP
518 Begin a new paragraph and reset prevailing indent.
519 .SS "Relative Margin Indent"
520 .TP 9m
521 .BI \&.RS " i"
522 Start relative margin indent: moves the left margin
523 .I i
524 to the right (if
525 .I i
526 is omitted, the prevailing indent value is used).
527 A new prevailing indent is set to 0.5 inches.
528 As a result, all following paragraph(s) will be
529 indented until the corresponding
530 .BR \&.RE .
531 .TP
532 .B \&.RE
533 End relative margin indent and
534 restores the previous value of the prevailing indent.
535 .SS "Indented Paragraph Macros"
536 .TP 9m
537 .BI \&.HP " i"
538 Begin paragraph with a hanging indent
539 (the first line of the paragraph is at the left margin of
540 normal paragraphs, and the rest of the paragraph's lines are indented).
541 .TP
542 .BI \&.IP " x i"
543 Indented paragraph with optional hanging tag.
544 If the tag
545 .I x
546 is omitted, the entire following paragraph is indented by
547 .IR i .
548 If the tag
549 .I x
550 is provided, it is hung at the left margin
551 before the following indented paragraph
552 (this is just like
553 .BR \&.TP
554 except the tag is included with the command instead of being on the
555 following line).
556 If the tag is too long, the text after the tag will be moved down to the
557 next line (text will not be lost or garbled).
558 For bulleted lists, use this macro with \e(bu (bullet) or \e(em (em dash)
559 as the tag, and for numbered lists, use the number or letter followed by
560 a period as the tag;
561 this simplifies translation to other formats.
562 .TP
563 .BI \&.TP " i"
564 Begin paragraph with hanging tag.
565 The tag is given on the next line, but
566 its results are like those of the
567 .B \&.IP
568 command.
569 .SS "Hypertext Link Macros"
570 (Feature supported with
571 .B groff
572 only.)
573 In order to use hypertext link macros, it is necessary to load the
574 .B www.tmac
575 macro package.
576 Use the request
577 .B .mso www.tmac
578 to do this.
579 .TP 9m
580 .BI \&.URL " url link trailer"
581 Inserts a hypertext link to the URI (URL)
582 .IR url ,
583 with
584 .I link
585 as the text of the link.
586 The
587 .I trailer
588 will be printed immediately afterwards.
589 When generating HTML this should translate into the HTML command
590 \fB<A HREF="\fP\fIurl\fP\fB">\fIlink\fP\fB</A>\fP\fItrailer\fP.
591 .\" The following is a kludge to get a paragraph into the listing.
592 .TP
593 .B " "
594 This and other related macros are new, and
595 many tools won't do anything with them, but
596 since many tools (including troff) will simply ignore undefined macros
597 (or at worst insert their text) these are safe to insert.
598 .\" The following is a kludge to get a paragraph into the listing.
599 .TP
600 .B " "
601 It can be useful to define your own
602 .B URL
603 macro in manual pages for the benefit of those viewing it with a roff
604 viewer other than
605 .BR groff .
606 That way, the URL, link text, and trailer text (if any) are still visible.
607 .\" The following is a kludge to get a paragraph into the listing.
608 .TP
609 .B " "
610 Here's an example:
611 .RS 1.5i
612 \&.de URL
613 .br
614 \\\\$2 \\(laURL: \\\\$1 \\(ra\\\\$3
615 .br
616 \&..
617 .br
618 \&.if \\n[.g] .mso www.tmac
619 .br
620 \&.TH
621 .I ...
622 .br
623 .I (later in the page)
624 .br
625 This software comes from the
626 .br
627 \&.URL "http://www.gnu.org/" "GNU Project" " of the"
628 .br
629 \&.URL "http://www.fsf.org/" "Free Software Foundation" .
630 .RE
631 .\" The following is a kludge to get a paragraph into the listing.
632 .TP
633 .B " "
634 In the above, if
635 .B groff
636 is being used, the
637 .B www.tmac
638 macro package's definition of the URL macro will supersede the locally
639 defined one.
640 .PP
641 A number of other link macros are available.
642 See
643 .BR groff_www (7)
644 for more details.
645 .SS "Miscellaneous Macros"
646 .TP 9m
647 .B \&.DT
648 Reset tabs to default tab values (every 0.5 inches);
649 does not cause a break.
650 .TP
651 .BI \&.PD " d"
652 Set inter-paragraph vertical distance to d
653 (if omitted, d=0.4v);
654 does not cause a break.
655 .TP
656 .BI \&.SS " t"
657 Subheading
658 .I t
659 (like
660 .BR \&.SH ,
661 but used for a subsection inside a section).
662 .SS "Predefined Strings"
663 The
664 .B man
665 package has the following predefined strings:
666 .IP \e*R
667 Registration Symbol: \*R
668 .IP \e*S
669 Change to default font size
670 .IP \e*(Tm
671 Trademark Symbol: \*(Tm
672 .IP \e*(lq
673 Left angled doublequote: \*(lq
674 .IP \e*(rq
675 Right angled doublequote: \*(rq
676 .SS "Safe Subset"
677 Although technically
678 .B man
679 is a troff macro package, in reality a large number of other tools
680 process man page files that don't implement all of troff's abilities.
681 Thus, it's best to avoid some of troff's more exotic abilities where possible
682 to permit these other tools to work correctly.
683 Avoid using the various troff preprocessors
684 (if you must, go ahead and use
685 .BR tbl (1),
686 but try to use the
687 .B IP
688 and
689 .B TP
690 commands instead for two-column tables).
691 Avoid using computations; most other tools can't process them.
692 Use simple commands that are easy to translate to other formats.
693 The following troff macros are believed to be safe (though in many cases
694 they will be ignored by translators):
695 .BR \e" ,
696 .BR . ,
697 .BR ad ,
698 .BR bp ,
699 .BR br ,
700 .BR ce ,
701 .BR de ,
702 .BR ds ,
703 .BR el ,
704 .BR ie ,
705 .BR if ,
706 .BR fi ,
707 .BR ft ,
708 .BR hy ,
709 .BR ig ,
710 .BR in ,
711 .BR na ,
712 .BR ne ,
713 .BR nf ,
714 .BR nh ,
715 .BR ps ,
716 .BR so ,
717 .BR sp ,
718 .BR ti ,
719 .BR tr .
720 .PP
721 You may also use many troff escape sequences (those sequences beginning
722 with \e).
723 When you need to include the backslash character as normal text,
724 use \ee.
725 Other sequences you may use, where x or xx are any characters and N
726 is any digit, include:
727 .BR \e' ,
728 .BR \e` ,
729 .BR \e- ,
730 .BR \e. ,
731 .BR \e" ,
732 .BR \e% ,
733 .BR \e*x ,
734 .BR \e*(xx ,
735 .BR \e(xx ,
736 .BR \e$N ,
737 .BR \enx ,
738 .BR \en(xx ,
739 .BR \efx ,
740 and
741 .BR \ef(xx .
742 Avoid using the escape sequences for drawing graphics.
743 .PP
744 Do not use the optional parameter for
745 .B bp
746 (break page).
747 Use only positive values for
748 .B sp
749 (vertical space).
750 Don't define a macro
751 .RB ( de )
752 with the same name as a macro in this or the
753 mdoc macro package with a different meaning; it's likely that
754 such redefinitions will be ignored.
755 Every positive indent
756 .RB ( in )
757 should be paired with a matching negative indent
758 (although you should be using the
759 .B RS
760 and
761 .B RE
762 macros instead).
763 The condition test
764 .RB ( if,ie )
765 should only have 't' or 'n' as the condition.
766 Only translations
767 .RB ( tr )
768 that can be ignored should be used.
769 Font changes
770 .RB ( ft
771 and the \fB\ef\fP escape sequence)
772 should only have the values 1, 2, 3, 4, R, I, B, P, or CW
773 (the ft command may also have no parameters).
774 .PP
775 If you use capabilities beyond these, check the
776 results carefully on several tools.
777 Once you've confirmed that the additional capability is safe,
778 let the maintainer of this
779 document know about the safe command or sequence
780 that should be added to this list.
781 .SH NOTES
782 .PP
783 By all means include full URLs (or URIs) in the text itself;
784 some tools such as
785 .BR man2html (1)
786 can automatically turn them into hypertext links.
787 You can also use the new
788 .B URL
789 macro to identify links to related information.
790 If you include URLs, use the full URL
791 (e.g., <http://www.kernelnotes.org>) to ensure that tools
792 can automatically find the URLs.
793 .PP
794 Tools processing these files should open the file and examine the first
795 non-whitespace character.
796 A period (.) or single quote (')
797 at the beginning of a line indicates a troff-based file (such as man or mdoc).
798 A left angle bracket (<) indicates an SGML/XML-based
799 file (such as HTML or Docbook).
800 Anything else suggests simple ASCII
801 text (e.g., a "catman" result).
802 .PP
803 Many man pages begin with '\e" followed by a space and a list of characters,
804 indicating how the page is to be preprocessed.
805 For portability's sake to non-troff translators we recommend that you avoid
806 using anything other than
807 .BR tbl (1),
808 and Linux can detect that automatically.
809 However, you might want to include this information so your man page
810 can be handled by other (less capable) systems.
811 Here are the definitions of the preprocessors invoked by these characters:
812 .TP 3
813 .B e
814 eqn(1)
815 .TP
816 .B g
817 grap(1)
818 .TP
819 .B p
820 pic(1)
821 .TP
822 .B r
823 refer(1)
824 .TP
825 .B t
826 tbl(1)
827 .TP
828 .B v
829 vgrind(1)
830 .SH FILES
831 .IR /usr/share/groff/ [*/] tmac/tmac.an
832 .br
833 .I /usr/man/whatis
834 .SH BUGS
835 .PP
836 Most of the macros describe formatting (e.g., font type and spacing) instead
837 of marking semantic content (e.g., this text is a reference to another page),
838 compared to formats like mdoc and DocBook (even HTML has more semantic
839 markings).
840 This situation makes it harder to vary the
841 .B man
842 format for different media,
843 to make the formatting consistent for a given media, and to automatically
844 insert cross-references.
845 By sticking to the safe subset described above, it should be easier to
846 automate transitioning to a different reference page format in the future.
847 .LP
848 The Sun macro
849 .B TX
850 is not implemented.
851 .\" .SH AUTHORS
852 .\" .IP \(em 3m
853 .\" James Clark (jjc@jclark.com) wrote the implementation of the macro package.
854 .\" .IP \(em
855 .\" Rickard E. Faith (faith@cs.unc.edu) wrote the initial version of
856 .\" this manual page.
857 .\" .IP \(em
858 .\" Jens Schweikhardt (schweikh@noc.fdn.de) wrote the Linux Man-Page Mini-HOWTO
859 .\" (which influenced this manual page).
860 .\" .IP \(em
861 .\" David A. Wheeler (dwheeler@ida.org) heavily modified this
862 .\" manual page, such as adding detailed information on sections and macros.
863 .SH "SEE ALSO"
864 .BR apropos (1),
865 .BR groff (1),
866 .BR man (1),
867 .BR man2html (1),
868 .BR mdoc (7),
869 .BR mdoc.samples (7),
870 .BR groff_man (7),
871 .BR groff_www (7),
872 .BR whatis (1)