Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MDOC(7)			Miscellaneous Information Manual	       MDOC(7)

NAME
       mdoc -- semantic	markup language	for formatting manual pages

DESCRIPTION
       The  mdoc  language  supports  authoring	of manual pages	for the	man(1)
       utility by allowing semantic annotations	of words, phrases,  page  sec-
       tions  and complete manual pages.  Such annotations are used by format-
       ting tools to achieve a uniform presentation across all manuals written
       in mdoc,	and to support hyperlinking if supported by the	output medium.

       This reference document describes the structure of manual pages and the
       syntax and usage	of the mdoc language.  The reference implementation of
       a parsing and formatting	tool is	mandoc(1); the "COMPATIBILITY" section
       describes compatibility with other implementations.

       In an mdoc document, lines beginning with the control character `.' are
       called "macro lines".  The first	word is	the macro name.	  It  consists
       of two or three letters.	 Most macro names begin	with a capital letter.
       For  a  list of available macros, see "MACRO OVERVIEW".	The words fol-
       lowing the macro	name are arguments to the macro, optionally  including
       the names of other, callable macros; see	"MACRO SYNTAX" for details.

       Lines not beginning with	the control character are called "text lines".
       They  provide  free-form	text to	be printed; the	formatting of the text
       depends on the respective processing context:

	     .Sh Macro lines change control state.
	     Text lines	are interpreted	within the current state.

       Many aspects of the basic syntax	of the mdoc language are based on  the
       roff(7)	language; see the LANGUAGE SYNTAX and MACRO SYNTAX sections in
       the roff(7) manual for details, in particular regarding	comments,  es-
       cape  sequences,	 whitespace,  and quoting.  However, using roff(7) re-
       quests in mdoc documents	is discouraged;	 mandoc(1)  supports  some  of
       them merely for backward	compatibility.

MANUAL STRUCTURE
       A well-formed mdoc document consists of a document prologue followed by
       one or more sections.

       The  prologue,  which consists of the Dd, Dt, and Os macros in that or-
       der, is required	for every document.

       The first section (sections are denoted by Sh) must be  the  NAME  sec-
       tion, consisting	of at least one	Nm followed by Nd.

       Following  that,	 convention  dictates specifying at least the SYNOPSIS
       and DESCRIPTION sections, although this varies between manual sections.

       The following is	 a  well-formed	 skeleton  mdoc	 file  for  a  utility
       "progname":

	     .Dd $Mdocdate$
	     .Dt PROGNAME section
	     .Os
	     .Sh NAME
	     .Nm progname
	     .Nd one line about	what it	does
	     .\" .Sh LIBRARY
	     .\" For sections 2, 3, and	9 only.
	     .\" Not used in OpenBSD.
	     .Sh SYNOPSIS
	     .Nm progname
	     .Op Fl options
	     .Ar
	     .Sh DESCRIPTION
	     The
	     .Nm
	     utility processes files ...
	     .\" .Sh CONTEXT
	     .\" For section 9 functions only.
	     .\" .Sh HARDWARE
	     .\" For section 4 only.
	     .\" Not used in OpenBSD.
	     .\" .Sh IMPLEMENTATION NOTES
	     .\" Not used in OpenBSD.
	     .\" .Sh RETURN VALUES
	     .\" For sections 2, 3, and	9 function return values only.
	     .\" .Sh ENVIRONMENT
	     .\" For sections 1, 6, 7, and 8 only.
	     .\" .Sh FILES
	     .\" .Sh EXIT STATUS
	     .\" For sections 1, 6, and	8 only.
	     .\" .Sh EXAMPLES
	     .\" .Sh DIAGNOSTICS
	     .\" For sections 1, 4, 6, 7, 8, and 9 printf/stderr messages only.
	     .\" .Sh ERRORS
	     .\" For sections 2, 3, 4, and 9 errno settings only.
	     .\" .Sh SEE ALSO
	     .\" .Xr foobar 1
	     .\" .Sh STANDARDS
	     .\" .Sh HISTORY
	     .\" .Sh AUTHORS
	     .\" .Sh CAVEATS
	     .\" .Sh BUGS
	     .\" .Sh SECURITY CONSIDERATIONS
	     .\" Not used in OpenBSD.

       The sections in an mdoc document	are conventionally ordered as they ap-
       pear above.  Sections should be composed	as follows:

	     NAME
	     The  name(s)  and a one line description of the documented	mater-
	     ial.  The syntax for this as follows:

		   .Nm name0 ,
		   .Nm name1 ,
		   .Nm name2
		   .Nd a one line description

	     Multiple `Nm' names should	be separated by	commas.

	     The Nm macro(s) must precede the Nd macro.

	     See Nm and	Nd.

	     LIBRARY
	     The name of the library containing	the documented functions.  Us-
	     ing this section is no longer recommended.	 If any	 Lb  macro  is
	     needed, put it at the beginning of	the SYNOPSIS section instead.

	     SYNOPSIS
	     Documents the utility invocation syntax, function call syntax, or
	     device configuration.

	     For  the  first, utilities	(sections 1, 6,	and 8),	this is	gener-
	     ally structured as	follows:

		   .Nm bar
		   .Op Fl v
		   .Op Fl o Ar file
		   .Op Ar
		   .Nm foo
		   .Op Fl v
		   .Op Fl o Ar file
		   .Op Ar

	     Commands should be	ordered	alphabetically.

	     For the second, function calls (sections 2, 3, 9):

		   .Lb libname \" unless the functions are in libc
		   .In header.h
		   .Vt extern const char *global;
		   .Ft char *
		   .Fn foo "const char *src"
		   .Ft char *
		   .Fn bar "const char *src"

	     Ordering of In, Vt, Fn, and Fo macros should follow C header-file
	     conventions.

	     And for the third,	configurations (section	4):

		   .Cd "it* at isa? port 0x2e"
		   .Cd "it* at isa? port 0x4e"

	     Manuals not in these sections generally don't need	a SYNOPSIS.

	     Some macros are displayed differently in  the  SYNOPSIS  section,
	     particularly  Nm,	Cd,  Fd, Fn, Fo, In, Vt, and Ft.  All of these
	     macros are	output on their	own  line.   If	 two  such  dissimilar
	     macros are	pairwise invoked (except for Ft	before Fo or Fn), they
	     are  separated by a vertical space, unless	in the case of Fo, Fn,
	     and Ft, which are always separated	by vertical space.

	     When text and macros following an Nm macro	starting an input line
	     span multiple output lines, all output lines but the  first  will
	     be	 indented  to align with the text immediately following	the Nm
	     macro, up to the next Nm, Sh, or Ss macro or the end  of  an  en-
	     closing block, whichever comes first.

	     DESCRIPTION
	     This  begins with an expansion of the brief, one line description
	     in	NAME:

		   The
		   .Nm
		   utility does	this, that, and	the other.

	     It	usually	follows	with a breakdown of the	options	(if  document-
	     ing a command), such as:

		   The options are as follows:
		   .Bl -tag -width Ds
		   .It Fl v
		   Print verbose information.
		   .El

	     List  the	options	in alphabetical	order, uppercase before	lower-
	     case for each letter and with no  regard  to  whether  an	option
	     takes an argument.	 Put digits in ascending order before all let-
	     ter options.

	     Manuals  not  documenting a command won't include the above frag-
	     ment.

	     Since the DESCRIPTION section usually contains most of  the  text
	     of	 a  manual, longer manuals often use the Ss macro to form sub-
	     sections.	In very	long manuals, the  DESCRIPTION	may  be	 split
	     into multiple sections, each started by an	Sh macro followed by a
	     non-standard  section  name, and each having several subsections,
	     like in the present mdoc manual.

	     CONTEXT
	     This section lists	the contexts in	which functions	can be	called
	     in	section	9.  The	contexts are autoconf, process,	or interrupt.

	     HARDWARE
	     This  section  lists the hardware support provided	by kernel mod-
	     ules in section 4.	 FreeBSD Hardware Compatibility	Notes are gen-
	     erated from this section.

	     IMPLEMENTATION NOTES
	     Implementation-specific notes should be kept here.	 This is  use-
	     ful  when	implementing standard functions	that may have side ef-
	     fects or notable algorithmic implications.

	     RETURN VALUES
	     This section documents the	return values of functions in sections
	     2,	3, and 9.

	     See Rv.

	     ENVIRONMENT
	     Lists the environment variables used by the utility, and explains
	     the syntax	and semantics of their values.	The environ(7)	manual
	     provides examples of typical content and formatting.

	     See Ev.

	     FILES
	     Documents	files  used.   It's  helpful to	document both the file
	     name and a	short description of how the file  is  used  (created,
	     modified, etc.).

	     See Pa.

	     EXIT STATUS
	     This  section documents the command exit status for section 1, 6,
	     and 8 utilities.  Historically, this information was described in
	     DIAGNOSTICS, a practise that is now discouraged.

	     See Ex.

	     EXAMPLES
	     Example usages.  This often  contains  snippets  of  well-formed,
	     well-tested invocations.  Make sure that examples work properly!

	     DIAGNOSTICS
	     Documents	error messages.	 In section 4 and 9 manuals, these are
	     usually messages printed by the kernel to the console and to  the
	     kernel  log.   In	section	1, 6, 7, and 8,	these are usually mes-
	     sages printed by userland programs	to the standard	error output.

	     Historically, this	section	was used in place of EXIT  STATUS  for
	     manuals  in  sections 1, 6, and 8;	however, this practise is dis-
	     couraged.

	     See Bl -diag.

	     ERRORS
	     Documents errno(2)	settings in sections 2,	3, 4, and 9.

	     See Er.

	     SEE ALSO
	     References	other  manuals	with  related  topics.	 This  section
	     should  exist  for	most manuals.  Cross-references	should conven-
	     tionally be ordered first by section, then	alphabetically (ignor-
	     ing case).

	     References	to other documentation concerning  the	topic  of  the
	     manual page, for example authoritative books or journal articles,
	     may also be provided in this section.

	     See Rs and	Xr.

	     STANDARDS
	     References	any standards implemented or used.  If not adhering to
	     any standards, the	HISTORY	section	should be used instead.

	     See St.

	     HISTORY
	     A	brief history of the subject, including	where it was first im-
	     plemented,	and when it was	ported to or reimplemented for the op-
	     erating system at hand.

	     AUTHORS
	     Credits to	the person or persons who wrote	the code and/or	 docu-
	     mentation.	  Authors  should  generally be	noted by both name and
	     email address.

	     See An.

	     CAVEATS
	     Common misuses and	misunderstandings should be explained in  this
	     section.

	     BUGS
	     Known  bugs, limitations, and work-arounds	should be described in
	     this section.

	     SECURITY CONSIDERATIONS
	     Documents any security precautions	 that  operators  should  con-
	     sider.

MACRO OVERVIEW
       This  overview is sorted	such that macros of similar purpose are	listed
       together, to help find the best macro for any  given  purpose.	Depre-
       cated  macros  are not included in the overview,	but can	be found below
       in the alphabetical "MACRO REFERENCE".

   Document preamble and NAME section macros
       Dd		document date: $Mdocdate$ | month day, year
       Dt		document title:	TITLE section [arch]
       Os		operating system footer: [footer text]
       Nm		document name (one argument)
       Nd		document description (one line)

   Sections and	cross references
       Sh		section	header (one line)
       Ss		subsection header (one line)
       Sx		internal cross reference to a section or subsection
       Xr		cross reference	to another manual page:	name section
       Tg		tag the	definition of a	term (<= 1 arguments)
       Pp		start a	text paragraph (no arguments)

   Displays and	lists
       Bd, Ed		display	block: -type [-offset width] [-compact]
       D1		indented display (one line)
       Dl		indented literal display (one line)
       Ql		normal in-line literal display:	`text'
       Li		unquoted in-line literal display: text
       Bl,  El		 list  block:  -type  [-width	val]   [-offset	  val]
				       [-compact]
       It		list item (syntax depends on -type)
       Ta		table cell separator in	Bl -column lists
       Rs, %*, Re	bibliographic block (references)

   Spacing control
       Pf		prefix,	no following horizontal	space (one argument)
       Ns		roman	font,	no   preceding	horizontal  space  (no
				       arguments)
       Ap		apostrophe   without   surrounding   whitespace	   (no
				       arguments)
       Sm		switch horizontal spacing mode:	[on | off]
       Bk, Ek		keep block: -words

   Semantic markup for command line utilities
       Nm		start a	SYNOPSIS block with the	name of	a utility
       Fl		command	line options (flags) (>=0 arguments)
       Cm		command	modifier (>0 arguments)
       Ar		command	arguments (>=0 arguments)
       Op, Oo, Oc	optional syntax	elements (enclosure)
       Ic		internal or interactive	command	(>0 arguments)
       Ev		environmental variable (>0 arguments)
       Pa		file system path (>=0 arguments)

   Semantic markup for function	libraries
       Lb		function library (>0 arguments)
       In		include	file (one argument)
       Fd		other preprocessor directive (>0 arguments)
       Ft		function type (>0 arguments)
       Fo, Fc		function block:	funcname
       Fn		function name: funcname	[argument ...]
       Fa		function argument (>0 arguments)
       Vt		variable type (>0 arguments)
       Va		variable name (>0 arguments)
       Dv		defined	  variable   or	  preprocessor	 constant  (>0
				       arguments)
       Er		error constant (>0 arguments)
       Ev		environmental variable (>0 arguments)

   Various semantic markup
       An		author name (>0	arguments)
       Lk		hyperlink: uri [display_name]
       Mt		"mailto" hyperlink: localpart@domain
       Cd		kernel configuration declaration (>0 arguments)
       Ad		memory address (>0 arguments)
       Ms		mathematical symbol (>0	arguments)

   Physical markup
       Em		italic font or underline (emphasis) (>0	arguments)
       Sy		boldface font (symbolic) (>0 arguments)
       No		return to roman	font (normal) (>0 arguments)
       Bf, Ef		font block: -type | Em | Li | Sy

   Physical enclosures
       Dq, Do, Dc	enclose	in typographic double quotes: "text"
       Qq, Qo, Qc	enclose	in typewriter double quotes: "text"
       Sq, So, Sc	enclose	in single quotes: `text'
       Pq, Po, Pc	enclose	in parentheses:	(text)
       Bq, Bo, Bc	enclose	in square brackets: [text]
       Brq, Bro, Brc	enclose	in curly braces: {text}
       Aq, Ao, Ac	enclose	in angle brackets: <text>
       Eo, Ec		generic	enclosure

   Text	production
       Ex -std		standard command exit values: [utility ...]
       Rv -std		standard function return values: [function ...]
       St		reference to a standards document (one argument)
       At		AT&T UNIX
       Bx		BSD
       Bsx		BSD/OS
       Nx		NetBSD
       Fx		FreeBSD
       Ox		OpenBSD
       Dx		DragonFly

MACRO REFERENCE
       This section is a canonical reference of	all macros, arranged alphabet-
       ically.	For the	scoping	of individual macros, see "MACRO SYNTAX".

       %A first_name ... last_name
	    Author name	of an Rs block.	 Multiple authors should each  be  ac-
	    corded  their  own	%A  line.  Author names	should be ordered with
	    full or abbreviated	forename(s) first, then	full surname.

       %B title
	    Book title of an Rs	block.	This macro may also be used in a  non-
	    bibliographic context when referring to book titles.

       %C location
	    Publication	city or	location of an Rs block.

       %D [month day,] year
	    Publication	date of	an Rs block.  Provide the full English name of
	    the	month and all four digits of the year.

       %I name
	    Publisher or issuer	name of	an Rs block.

       %J name
	    Journal name of an Rs block.

       %N number
	    Issue number (usually for journals)	of an Rs block.

       %O line
	    Optional information of an Rs block.

       %P number
	    Book  or  journal page number of an	Rs block.  Conventionally, the
	    argument starts with `p.' for a single page	or `pp.' for  a	 range
	    of pages, for example:

		  .%P pp. 42\(en47

       %Q name
	    Institutional  author  (school,  government, etc.) of an Rs	block.
	    Multiple institutional authors should each be accorded  their  own
	    %Q line.

       %R name
	    Technical report name of an	Rs block.

       %T title
	    Article  title  of	an Rs block.  This macro may also be used in a
	    non-bibliographical	context	when referring to article titles.

       %U protocol://path
	    URI	of reference document.

       %V number
	    Volume number of an	Rs block.

       Ac   Close an Ao	block.	Does not have any tail arguments.

       Ad address
	    Memory address.  Do	not use	this for postal	addresses.

	    Examples:
		  .Ad [0,$]
		  .Ad 0x00000000

       An -split | -nosplit | first_name ... last_name
	    Author name.  Can be used both for the  authors  of	 the  program,
	    function,  or  driver documented in	the manual, or for the authors
	    of the manual itself.  Requires either the name of	an  author  or
	    one	of the following arguments:

		  -split     Start  a  new  output line	before each subsequent
			     invocation	of An.
		  -nosplit   The opposite of -split.

	    The	default	is -nosplit.  The effect of selecting  either  of  the
	    -split modes ends at the beginning of the AUTHORS section.	In the
	    AUTHORS  section,  the  default  is	 -nosplit for the first	author
	    listing and	-split for all other author listings.

	    Examples:
		  .An -nosplit
		  .An Kristaps Dzonsons	Aq Mt kristaps@bsd.lv

       Ao block
	    Begin a block enclosed by angle brackets.  Does not	have any  head
	    arguments.	 This  macro  is almost	never useful.  See Aq for more
	    details.

       Ap   Inserts an apostrophe without any surrounding whitespace.  This is
	    generally used as a	grammatical device when	referring to the  verb
	    form of a function.

	    Examples:
		  .Fn execve Ap	d

       Aq line
	    Enclose  the  rest	of the input line in angle brackets.  The only
	    important use case is for email addresses.	See Mt for an example.

	    Occasionally, it is	used for names of characters and keys, for ex-
	    ample:

		  Press	the
		  .Aq escape
		  key to ...

	    For	URIs, use Lk instead, and In for "#include" directives.	 Never
	    wrap Ar in Aq.

	    Since Aq usually renders with non-ASCII  characters	 in  non-ASCII
	    output modes, do not use it	where the ASCII	characters `<' and `>'
	    are	 required  as  syntax elements.	 Instead, use these characters
	    directly in	such cases, combining them with	the macros Pf, Ns,  or
	    Eo as needed.

	    See	also Ao.

       Ar [placeholder ...]
	    Command  arguments.	  If  an  argument is not provided, the	string
	    "file ..." is used as a default.

	    Examples:
		  .Fl o	Ar file
		  .Ar
		  .Ar arg1 , arg2 .

	    The	arguments to the Ar macro are names and	placeholders for  com-
	    mand  arguments;  for fixed	strings	to be passed verbatim as argu-
	    ments, use Fl or Cm.

       At [version]
	    Formats an AT&T UNIX version.  Accepts one optional	argument:

		  v[1-7] | 32v	 A version of AT&T UNIX.
		  III		 AT&T System III UNIX.
		  V | V.[1-4]	 A version of AT&T System V UNIX.

	    Note that these arguments do not begin with	a hyphen.

	    Examples:
		  .At
		  .At III
		  .At V.1

	    See	also Bsx, Bx, Dx, Fx, Nx, and Ox.

       Bc   Close a Bo block.  Does not	have any tail arguments.

       Bd -type	[-offset width]	[-compact]
	    Begin a display block.  Display blocks are used to select  a  dif-
	    ferent indentation and justification than the one used by the sur-
	    rounding  text.  They may contain both macro lines and text	lines.
	    By default,	a display block	is preceded by a vertical space.

	    The	type must be one of the	following:

		  -centered	 Produce one output line from each input line,
				 and center-justify  each  line.   Using  this
				 display  type	is  not	recommended; many mdoc
				 implementations render	it poorly.

		  -filled	 Change	the positions of line breaks  to  fill
				 each  line,  and  left- and right-justify the
				 resulting block.

		  -literal	 Produce one output line from each input line,
				 and do	not justify the	block  at  all.	  Pre-
				 serve white space as it appears in the	input.
				 Always	 use  a	constant-width font.  Use this
				 for displaying	source code.

		  -ragged	 Change	the positions of line breaks  to  fill
				 each  line,  and  left-justify	 the resulting
				 block.

		  -unfilled	 The same as -literal, but using the same font
				 as for	normal text, which is a	variable width
				 font if supported by the output device.

	    The	type must be provided first.  Additional arguments may follow:

		  -offset width	 Indent	the display by the width, which	may be
				 one of	the following:

				 One of	the pre-defined	 strings  indent,  the
				 width of a standard indentation (six constant
				 width	characters); indent-two, twice indent;
				 left, which has no effect; right, which  jus-
				 tifies	 to the	right margin; or center, which
				 aligns	around an imagined center axis.

				 A macro invocation, which  selects  a	prede-
				 fined	width associated with that macro.  The
				 most popular is the imaginary macro Ds, which
				 resolves to 6n.

				 A scaling width as described in roff(7).

				 An arbitrary string,  which  indents  by  the
				 length	of this	string.

				 When  the argument is missing,	-offset	is ig-
				 nored.

		  -compact	 Do not	assert vertical	space before the  dis-
				 play.

	    Examples:

		  .Bd -literal -offset indent -compact
		     Hello	 world.
		  .Ed

	    See	also D1	and Dl.

       Bf -emphasis | -literal | -symbolic | Em	| Li | Sy
	    Change  the	 font  mode for	a scoped block of text.	 The -emphasis
	    and	Em argument are	equivalent,  as	 are  -symbolic	 and  Sy,  and
	    -literal  and  Li.	 Without an argument, this macro does nothing.
	    The	font mode continues until broken by  a	new  font  mode	 in  a
	    nested scope or Ef is encountered.

	    See	also Li, Ef, Em, and Sy.

       Bk -words
	    For	 each macro, keep its output together on the same output line,
	    until the end of the macro	or  the	 end  of  the  input  line  is
	    reached, whichever comes first.  Line breaks in text lines are un-
	    affected.

	    The	-words argument	is required; additional	arguments are ignored.

	    The	following example will not break within	each Op	macro line:

		  .Bk -words
		  .Op Fl f Ar flags
		  .Op Fl o Ar output
		  .Ek

	    Be careful in using	over-long lines	within a keep block!  Doing so
	    will clobber the right margin.

       Bl -type	[-width	val] [-offset val] [-compact] [col ...]
	    Begin  a  list.   Lists  consist  of  items	specified using	the It
	    macro, containing a	head or	a body or both.

	    The	list type is mandatory	and  must  be  specified  first.   The
	    -width  and	 -offset arguments accept macro	names as described for
	    Bd -offset,	scaling	widths as described in	roff(7),  or  use  the
	    length  of	the given string.  The -offset is a global indentation
	    for	the whole list,	affecting both item  heads  and	 bodies.   For
	    those  list	 types	supporting it, the -width argument requests an
	    additional indentation of item bodies, to be added to the -offset.
	    Unless the -compact	argument is specified, list entries are	 sepa-
	    rated by vertical space.

	    The	following list types are commonly used:

		  -bullet	No  item  heads	can be specified, but a	bullet
				will be	printed	at  the	 head  of  each	 item.
				Item  bodies  start on the same	output line as
				the bullet and are indented according  to  the
				-width argument.

		  -column	A columnated list.  The	-width argument	has no
				effect;	instead, the string length of each ar-
				gument specifies the width of one column.  The
				width  specification  for the last column does
				not affect formatting.

				For two-column lists, using -tag often results
				in simpler code,  identical  terminal  output,
				and  better  HTML  output, especially when the
				first column contains short identifiers.

				For compatibility with	legacy	documents,  if
				the  first  line of the	body of	a -column list
				is not an It macro line, It contexts  spanning
				one  input  line  each are implied until an It
				macro line  is	encountered,  at  which	 point
				items  start being interpreted as described in
				the It documentation.

		  -dash		Like -bullet, except that dashes are  used  in
				place of bullets.

		  -diag		Like  -inset,  except  that item heads are not
				parsed for macro invocations.  Most often used
				in the DIAGNOSTICS section with	error messages
				in the item heads.

		  -enum		A numbered list.  No item heads	can be	speci-
				fied.  Formatted like -bullet, except that or-
				dinal  numbers	are  used in place of bullets,
				starting at 1.

		  -tag		Item bodies  are  indented  according  to  the
				-width	argument.   When an item head fits in-
				side the indentation, the  item	 body  follows
				this head on the same output line.  Otherwise,
				the  body  starts on the output	line following
				the head.

	    The	following list types are rarely	useful:

		  -hang		Like -tag, except that the first lines of item
				bodies are not indented, but follow  the  item
				heads like in -inset lists.

		  -hyphen	Synonym	for -dash.

		  -inset	Item  bodies  follow  items  heads on the same
				line, using normal inter-word spacing.	Bodies
				are not	indented, and the -width  argument  is
				ignored.

		  -item		No  item  heads	can be specified, and none are
				printed.  Bodies are  not  indented,  and  the
				-width argument	is ignored.

		  -ohang	Item  bodies  start on the line	following item
				heads and are not indented.  The -width	 argu-
				ment is	ignored.

	    Lists may be nested	within lists and displays.  Nesting of -column
	    and	-enum lists may	not be portable.

	    See	also El	and It.

       Bo block
	    Begin a block enclosed by square brackets.	Does not have any head
	    arguments.

	    Examples:
		  .Bo 1	,
		  .Dv BUFSIZ Bc

	    See	also Bq.

       Bq line
	    Encloses its arguments in square brackets.

	    Examples:
		  .Bq 1, Dv BUFSIZ

	    Remarks:  this macro is sometimes abused to	emulate	optional argu-
	    ments for commands;	the correct macros to use for this purpose are
	    Op,	Oo, and	Oc.

	    See	also Bo.

       Brc  Close a Bro	block.	Does not have any tail arguments.

       Bro block
	    Begin a block enclosed by curly braces.  Does not  have  any  head
	    arguments.

	    Examples:
		  .Bro 1 , ... ,
		  .Va n	Brc

	    See	also Brq.

       Brq line
	    Encloses its arguments in curly braces.

	    Examples:
		  .Brq 1, ..., Va n

	    See	also Bro.

       Bsx [version]
	    Format  the	 BSD/OS	 version provided as an	argument, or a default
	    value if no	argument is provided.

	    Examples:
		  .Bsx 1.0
		  .Bsx

	    See	also At, Bx, Dx, Fx, Nx, and Ox.

       Bt   Supported only for compatibility, do not use this in new  manuals.
	    Prints "is currently in beta test."

       Bx [version [variant]]
	    Format the BSD version provided as an argument, or a default value
	    if no argument is provided.

	    Examples:
		  .Bx 4.3 Tahoe
		  .Bx 4.4
		  .Bx

	    See	also At, Bsx, Dx, Fx, Nx, and Ox.

       Cd line
	    Kernel  configuration  declaration.	 This denotes strings accepted
	    by config(8).  It is most often used in section 4 manual pages.

	    Examples:
		  .Cd device le0 at scode?

	    Remarks: this macro	is commonly abused by using quoted literals to
	    retain whitespace and align	 consecutive  Cd  declarations.	  This
	    practise is	discouraged.

       Cm keyword ...
	    Command modifiers.	Typically used for fixed strings passed	as ar-
	    guments  to	 interactive  commands,	 to  commands  in  interpreted
	    scripts, or	to configuration file directives, unless  Fl  is  more
	    appropriate.

	    Examples:
		  .Nm mt Fl f Ar device	Cm rewind
		  .Nm ps Fl o Cm pid , Ns Cm command
		  .Nm dd Cm if=	Ns Ar file1 Cm of= Ns Ar file2
		  .Ic set Fl o Cm vi
		  .Ic lookup Cm	file bind
		  .Ic permit Ar	identity Op Cm as Ar target

       D1 line
	    One-line indented display.	This is	formatted by the default rules
	    and	is useful for simple indented statements.  It is followed by a
	    newline.

	    Examples:
		  .D1 Fl abcdefgh

	    See	also Bd	and Dl.

       Db   This  macro	is obsolete.  No replacement is	needed.	 It is ignored
	    by mandoc(1) and groff including its arguments.  It	 was  formerly
	    used to toggle a debugging mode.

       Dc   Close a Do block.  Does not	have any tail arguments.

       Dd $Mdocdate$ | month day, year
	    Document  date  for	 display in the	page footer, by	convention the
	    date of the	last change.  This is the mandatory first macro	of any
	    mdoc manual.

	    The	month is the full English month	name, the day  is  an  integer
	    number, and	the year is the	full four-digit	year.

	    Other  arguments  are  not portable; the mandoc(1) utility handles
	    them as follows:
	       -   To have the date automatically filled  in  by  the  OpenBSD
		   version  of	cvs(1),	the special string "$Mdocdate$"	can be
		   given as an argument.
	       -   The	 traditional,	 purely	   numeric    man(7)	format
		   year-month-day is accepted, too.
	       -   If a	date string cannot be parsed, it is used verbatim.
	       -   If no date string is	given, the current date	is used.

	    Examples:
		  .Dd $Mdocdate$
		  .Dd $Mdocdate: July 2	2018$
		  .Dd July 2, 2018

	    See	also Dt	and Os.

       Dl line
	    One-line indented literal display.	This is	formatted using	a con-
	    stant-width	 font  and is useful for commands and invocations.  It
	    is followed	by a newline.

	    Examples:
		  .Dl %	mandoc mdoc.7 \(ba less

	    See	also Ql, Bd -literal, and D1.

       Do block
	    Begin a block enclosed by double quotes.  Does not have  any  head
	    arguments.

	    Examples:
		  .Do
		  April	is the cruellest month
		  .Dc
		  \(em T.S. Eliot

	    See	also Dq.

       Dq line
	    Encloses its arguments in "typographic" double-quotes.

	    Examples:
		  .Dq April is the cruellest month
		  \(em T.S. Eliot

	    See	also Qq, Sq, and Do.

       Dt TITLE	section	[arch]
	    Document title for display in the page header.  This is the	manda-
	    tory second	macro of any mdoc file.

	    Its	arguments are as follows:

	      TITLE    The  document's	title (name), defaulting to "UNTITLED"
		       if unspecified.	To achieve  a  uniform	appearance  of
		       page header lines, it should by convention be all caps.

	      section  The  manual  section.   This  may  be one of 1 (General
		       Commands), 2 (System Calls), 3 (Library Functions),  3p
		       (Perl Library), 4 (Device Drivers), 5 (File Formats), 6
		       (Games),	  7  (Miscellaneous  Information),  8  (System
		       Manager's Manual), or 9	(Kernel	 Developer's  Manual).
		       It  should  correspond  to the manual's filename	suffix
		       and defaults to the empty string	if unspecified.

	      arch     This specifies the machine architecture a  manual  page
		       applies	to,  where relevant, for example alpha,	amd64,
		       i386, or	sparc64.   The	list  of  valid	 architectures
		       varies by operating system.

	    Examples:
		  .Dt FOO 1
		  .Dt FOO 9 i386

	    See	also Dd	and Os.

       Dv identifier ...
	    Defined  variables	such  as preprocessor constants, constant sym-
	    bols, enumeration values, and so on.

	    Examples:
		  .Dv NULL
		  .Dv BUFSIZ
		  .Dv STDOUT_FILENO

	    See	also Er	and Ev for special-purpose constants, Va for  variable
	    symbols,  and  Fd for listing preprocessor variable	definitions in
	    the	SYNOPSIS.

       Dx [version]
	    Format the DragonFly version provided as an	argument, or a default
	    value if no	argument is provided.

	    Examples:
		  .Dx 2.4.1
		  .Dx

	    See	also At, Bsx, Bx, Fx, Nx, and Ox.

       Ec [closing_delimiter]
	    Close a scope started by Eo.

	    The	closing_delimiter argument is used as the enclosure tail,  for
	    example, specifying	\(rq will emulate Dc.

       Ed   End	a display context started by Bd.

       Ef   End	a font mode context started by Bf.

       Ek   End	a keep context started by Bk.

       El   End	a list context started by Bl.  See also	It.

       Em word ...
	    Request  an	 italic	 font.	 If the	output device does not provide
	    that, underline.

	    This is most often used for	stress emphasis	(not  to  be  confused
	    with importance, see Sy).  In the rare cases where none of the se-
	    mantic  markup macros fit, it can also be used for technical terms
	    and	placeholders, except that for syntax elements, Sy and  Ar  are
	    preferred, respectively.

	    Examples:
		  Selected lines are those
		  .Em not
		  matching any of the specified	patterns.
		  Some of the functions	use a
		  .Em hold space
		  to save the pattern space for	subsequent retrieval.

	    See	also No, Ql, and Sy.

       En word ...
	    This  macro	 is  obsolete.	 Use  Eo or any	of the other enclosure
	    macros.

	    It encloses	its argument in	the delimiters specified by  the  last
	    Es macro.

       Eo [opening_delimiter]
	    An arbitrary enclosure.  The opening_delimiter argument is used as
	    the	enclosure head,	for example, specifying	\(lq will emulate Do.

       Er identifier ...
	    Error constants for	definitions of the errno libc global variable.
	    This is most often used in section 2 and 3 manual pages.

	    Examples:
		  .Er EPERM
		  .Er ENOENT

	    See	also Dv	for general constants.

       Es opening_delimiter closing_delimiter
	    This  macro	 is  obsolete.	 Use  Eo or any	of the other enclosure
	    macros.

	    It takes two arguments, defining the delimiters to be used by sub-
	    sequent En macros.

       Ev identifier ...
	    Environmental variables such as those specified in environ(7).

	    Examples:
		  .Ev DISPLAY
		  .Ev PATH

	    See	also Dv	for general constants.

       Ex -std [utility	...]
	    Insert a standard sentence regarding command exit values of	 0  on
	    success  and >0 on failure.	 This is most often used in section 1,
	    6, and 8 manual pages.

	    If utility is not specified, the document's	 name  set  by	Nm  is
	    used.   Multiple  utility arguments	are treated as separate	utili-
	    ties.

	    See	also Rv.

       Fa argument ...
	    Function argument or parameter.  Each argument may be a name and a
	    type (recommended for the SYNOPSIS section),  a  name  alone  (for
	    function  invocations), or a type alone (for function prototypes).
	    If both a type and a name are given	or if  the  type  consists  of
	    multiple  words, all words belonging to the	same function argument
	    have to be given in	a single argument to the Fa macro.

	    This macro is also used to specify the field name of a structure.

	    Most often,	the Fa macro is	used in	the SYNOPSIS within Fo	blocks
	    when  documenting multi-line function prototypes.  If invoked with
	    multiple arguments,	the arguments are separated by a comma.	  Fur-
	    thermore,  if the following	macro is another Fa, the last argument
	    will also have a trailing comma.

	    Examples:
		  .Fa "const char *p"
		  .Fa "int a" "int b" "int c"
		  .Fa "char *" size_t

	    See	also Fo.

       Fc   End	a function context started by Fo.

       Fd #directive [argument ...]
	    Preprocessor directive,  in	 particular  for  listing  it  in  the
	    SYNOPSIS.	Historically,  it  was	also  used to document include
	    files.  The	latter usage has been deprecated in favour of In.

	    Examples:
		  .Fd #define sa_handler __sigaction_u.__sa_handler
		  .Fd #define SIO_MAXNFDS
		  .Fd #ifdef FS_DEBUG
		  .Ft void
		  .Fn dbg_open "const char *"
		  .Fd #endif

	    See	also "MANUAL STRUCTURE", In, and Dv.

       Fl [word	...]
	    Command-line flag or option.  Used when listing arguments to  com-
	    mand-line  utilities.   For	each argument, prints an ASCII hyphen-
	    minus character `-', immediately followed by the argument.	If  no
	    arguments  are  provided,  a hyphen-minus is printed followed by a
	    space.  If the argument is a macro,	a hyphen-minus is prefixed  to
	    the	subsequent macro output.

	    Examples:
		  .Nm du Op Fl H | L | P
		  .Nm ls Op Fl 1AaCcdFfgHhikLlmnopqRrSsTtux
		  .Nm route Cm add Fl inet Ar destination gateway
		  .Nm locate.updatedb Op Fl \-fcodes Ns	= Ns Ar	dbfile
		  .Nm aucat Fl o Fl
		  .Nm kill Fl Ar signal_number

	    For	 GNU-style  long options, escaping the additional hyphen-minus
	    is not strictly required, but may be safer with future versions of
	    GNU	troff; see mandoc_char(7) for details.

	    See	also Cm.

       Fn funcname [argument ...]
	    A function name.

	    Function arguments are surrounded in parenthesis and are delimited
	    by commas.	If no arguments	are specified, blank  parenthesis  are
	    output.   In  the SYNOPSIS section,	this macro starts a new	output
	    line, and a	blank line is automatically inserted between  function
	    definitions.

	    Examples:
		  .Fn "int funcname" "int arg0"	"int arg1"
		  .Fn funcname "int arg0"
		  .Fn funcname arg0

		  .Ft functype
		  .Fn funcname

	    When  referring  to	 a function documented in another manual page,
	    use	Xr instead.  See also "MANUAL STRUCTURE", Fo, and Ft.

       Fo funcname
	    Begin a function block.  This is a multi-line version of Fn.

	    Invocations	usually	occur in the following context:

		  .Ft functype
		  .Fo funcname
		  .Fa "argtype argname"
		  ...
		  .Fc

	    A Fo scope is closed by Fc.

	    See	also "MANUAL STRUCTURE", Fa, Fc, and Ft.

       Fr number
	    This macro is obsolete.  No	replacement markup is needed.

	    It was used	to show	numerical function return values in an	italic
	    font.

       Ft functype
	    A function type.

	    In	the  SYNOPSIS section, a new output line is started after this
	    macro.

	    Examples:
		  .Ft int
		  .Ft functype
		  .Fn funcname

	    See	also "MANUAL STRUCTURE", Fn, and Fo.

       Fx [version]
	    Format the FreeBSD version provided	as an argument,	or  a  default
	    value if no	argument is provided.

	    Examples:
		  .Fx 7.1
		  .Fx

	    See	also At, Bsx, Bx, Dx, Nx, and Ox.

       Hf filename
	    This  macro	 is  not implemented in	mandoc(1).  It was used	to in-
	    clude the contents of a (header) file literally.

       Ic keyword ...
	    Internal or	interactive command, or	configuration instruction in a
	    configuration file.	 See also Cm.

	    Examples:
		  .Ic :wq
		  .Ic hash
		  .Ic alias

	    Note that using Ql,	Dl, or Bd -literal is preferred	for displaying
	    code samples; the Ic macro is used when referring to an individual
	    command name.

       In filename
	    The	name of	an include file.  This macro is	 most  often  used  in
	    section 2, 3, and 9	manual pages.

	    When  invoked  as the first	macro on an input line in the SYNOPSIS
	    section, the argument is displayed in angle	brackets and  preceded
	    by "#include", and a blank line is inserted	in front if there is a
	    preceding  function	 declaration.	In other sections, it only en-
	    closes its argument	in angle brackets and causes no	line break.

	    Examples:
		  .In sys/types.h

	    See	also "MANUAL STRUCTURE".

       It [head]
	    A list item.  The syntax of	this macro depends on the list type.

	    Lists of type -hang, -ohang, -inset, and -diag have	the  following
	    syntax:

		  .It args

	    Lists  of  type  -bullet, -dash, -enum, -hyphen and	-item have the
	    following syntax:

		  .It

	    with subsequent lines interpreted within the scope of the It until
	    either a closing El	or another It.

	    The	-tag list has the following syntax:

		  .It [args]

	    Subsequent lines are interpreted as	with -bullet and family.   The
	    line arguments correspond to the list's left-hand side; body argu-
	    ments correspond to	the list's contents.

	    The	 -column  list is the most complicated.	 Its syntax is as fol-
	    lows:

		  .It cell [Ta cell ...]
		  .It cell [<TAB> cell ...]

	    The	arguments consist of one or more lines of text and macros rep-
	    resenting a	complete table line.  Cells within the line are	delim-
	    ited by the	special	Ta block macro or by literal tab characters.

	    Using literal tabs is strongly discouraged because they  are  very
	    hard  to  use  correctly  and mdoc code using them is very hard to
	    read.  In particular, a blank character is syntactically  signifi-
	    cant  before  and after the	literal	tab character.	If a word pre-
	    cedes or follows the tab without an	intervening blank,  that  word
	    is never interpreted as a macro call, but always output literally.

	    The	tab cell delimiter may only be used within the It line itself;
	    on	following  lines,  only	 the  Ta  macro	can be used to delimit
	    cells, and portability requires that Ta is called by other macros:
	    some parsers do not	recognize it when  it  appears	as  the	 first
	    macro on a line.

	    Note  that	quoted	strings	 may span tab-delimited	cells on an It
	    line.  For example,

		  .It "col1 , <TAB> col2 ," ;

	    will preserve the whitespace  before  both	commas,	 but  not  the
	    whitespace before the semicolon.

	    See	also Bl.

       Lb libname [libname ...]
	    Specify one	or more	libraries to link against.  Putting this macro
	    at	the beginning of the SYNOPSIS section is recommended, in which
	    case it prints this	comment:
		  /* -lname [-lname ...] */

	    If used outside the	SYNOPSIS, this macro prints
		  library "libname"
	    instead.  For system libraries, some  operating  systems  print  a
	    short library description.

	    Example:
		  .Sh SYNOPSIS
		  .Lb libtls libssl libcrypto
		  .In tls.h
		  .Ft int
		  .Fn tls_init void

       Li word ...
	    Unquoted  in-line  literal display,	always set in a	constant-width
	    font.  In most cases, use Ql instead because  on  terminal	output
	    devices,  Li  is usually indistinguishable from normal text.  This
	    macro is only useful when enclosing	the argument in	quotes is  ex-
	    plicitly  not  desired,  for example because it already stands out
	    due	to being wrapped in another macro, e.g.	in an It head.

	    For	longer literal displays, use Dl	(single	line) or  Bd  -literal
	    (multi-line) instead.

       Lk uri [display_name]
	    Format a hyperlink.

	    Examples:
		  .Lk https://bsd.lv "The BSD.lv Project"
		  .Lk https://bsd.lv

	    See	also Mt.

       Lp   Deprecated synonym for Pp.

       Ms name
	    Display a mathematical symbol.

	    Examples:
		  .Ms sigma
		  .Ms aleph

       Mt localpart@domain
	    Format a "mailto:" hyperlink.

	    Examples:
		  .Mt discuss@manpages.bsd.lv
		  .An Kristaps Dzonsons	Aq Mt kristaps@bsd.lv

       Nd line
	    A  one  line  description  of  the	manual's content.  This	is the
	    mandatory last macro of the	NAME section and not  appropriate  for
	    other sections.

	    Examples:
		  .Nd mdoc language reference
		  .Nd format and display UNIX manuals

	    The	 Nd macro technically accepts child macros and terminates with
	    a subsequent Sh invocation.	 Do not	assume	this  behaviour:  some
	    whatis(1)  database	 generators are	not smart enough to parse more
	    than the line arguments and	will display macros verbatim.

	    See	also Nm.

       Nm [name]
	    The	name of	the manual page, or -- in particular in	section	1,  6,
	    and	 8  pages -- of	an additional command or feature documented in
	    the	manual page.  When first invoked, the Nm macro expects a  sin-
	    gle	argument, the name of the manual page.	Usually, the first in-
	    vocation  happens  in the NAME section of the page.	 The specified
	    name will be remembered and	used  whenever	the  macro  is	called
	    again  without  arguments  later  in  the page.  The Nm macro uses
	    "Block full-implicit" semantics when invoked as the	first macro on
	    an input line in the SYNOPSIS section; otherwise, it uses ordinary
	    "In-line" semantics.

	    Examples:

		  .Sh SYNOPSIS
		  .Nm cat
		  .Op Fl benstuv
		  .Op Ar

	    In the SYNOPSIS of section 2, 3 and	9 manual  pages,  use  the  Fn
	    macro rather than Nm to mark up the	name of	the manual page.

       No word ...
	    Normal  text.   Closes  the	 scope of any preceding	in-line	macro.
	    When used after physical formatting	macros like Em or Sy, switches
	    back to the	standard font face and weight.	Can also  be  used  to
	    embed  plain text strings in macro lines using semantic annotation
	    macros.

	    Examples:
		  .Em italic , Sy bold , No and	roman

		  .Sm off
		  .Cm :C No / Ar pattern No / Ar replacement No	/
		  .Sm on

	    See	also Em, Ql, and Sy.

       Ns   Suppress a space between the output	of the preceding macro and the
	    following text or macro.  Following	invocation,  input  is	inter-
	    preted as normal text just like after an No	macro.

	    This has no	effect when invoked at the start of a macro line.

	    Examples:
		  .Ar name Ns =	Ns Ar value
		  .Cm :M Ns Ar pattern
		  .Fl o	Ns Ar output

	    See	also No	and Sm.

       Nx [version]
	    Format  the	 NetBSD	 version provided as an	argument, or a default
	    value if no	argument is provided.

	    Examples:
		  .Nx 5.01
		  .Nx

	    See	also At, Bsx, Bx, Dx, Fx, and Ox.

       Oc   Close multi-line Oo	context.

       Oo block
	    Multi-line version of Op.

	    Examples:
		  .Oo
		  .Op Fl flag Ns Ar value
		  .Oc

       Op line
	    Optional part of a command line.  Prints the argument(s) in	brack-
	    ets.  This is most often used in the SYNOPSIS section of section 1
	    and	8 manual pages.

	    Examples:
		  .Op Fl a Ar b
		  .Op Ar a | b

	    See	also Oo.

       Os [footer text]
	    The	mandatory third	macro of every mdoc  file.   Usually,  do  not
	    specify any	arguments, in particular not the operating system name
	    and/or version.

	    If no argument is given, mandoc(1) prints its -Ios argument	in the
	    page footer, or sysname and	release	as returned by uname(3)	by de-
	    fault.

	    Manual  pages  that	 are  part  of a portable software project can
	    override the default by giving the project name and	version	number
	    as arguments, but leaving it blank is never	a bad choice.

	    See	also Dd	and Dt.

       Ot functype
	    This macro is obsolete.  Use Ft instead; with mandoc(1), both have
	    the	same effect.

	    Historical mdoc  packages  described  it  as  "old	function  type
	    (FORTRAN)".

       Ox [version]
	    Format  the	 OpenBSD version provided as an	argument, or a default
	    value if no	argument is provided.

	    Examples:
		  .Ox 4.5
		  .Ox

	    See	also At, Bsx, Bx, Dx, Fx, and Nx.

       Pa name ...
	    An absolute	or relative file system	path, or a file	 or  directory
	    name.   If	an argument is not provided, the character `~' is used
	    as a default.

	    Examples:
		  .Pa /usr/bin/mandoc
		  .Pa /usr/share/man/man7/mdoc.7

	    See	also Lk.

       Pc   Close parenthesised	context	opened by Po.

       Pf prefix macro [argument ...]
	    Removes the	space between its argument and	the  following	macro.
	    It is equivalent to:

		  No \&prefix Ns macro [argument ...]

	    The	 prefix	 argument is not parsed	for macro names	or delimiters,
	    but	used verbatim as if it were escaped.

	    Examples:
		  .Pf $	Ar variable_name
		  .Pf .	Ar macro_name
		  .Pf 0x Ar hex_digits

	    See	also Ns	and Sm.

       Po block
	    Multi-line version of Pq.

       Pp   Break a paragraph.	This will assert vertical space	between	 prior
	    and	subsequent macros and/or text.

	    Paragraph breaks are not needed before or after Sh or Ss macros or
	    before  displays  (Bd line)	or lists (Bl) unless the -compact flag
	    is given.

       Pq line
	    Parenthesised enclosure.

	    See	also Po.

       Qc   Close quoted context opened	by Qo.

       Ql line
	    Normal in-line literal display, always set in constant-width  font
	    and	 additionally  enclosed	 in  quotes by many formatters in many
	    cases.  This can be	used for complete command invocations and  for
	    multi-word code examples when an indented display is not desired.

	    See	also Dl, Bd -literal, and Li.

       Qo block
	    Multi-line version of Qq.

       Qq line
	    Encloses  its  arguments  in "typewriter" double-quotes.  Consider
	    using Dq.

	    See	also Dq, Sq, and Qo.

       Re   Close an Rs	block.	Does not have any tail arguments.

       Rs   Begin a bibliographic ("reference")	block.	Does not have any head
	    arguments.	The block macro	may only contain %A, %B, %C,  %D,  %I,
	    %J,	 %N, %O, %P, %Q, %R, %T, %U, and %V child macros (at least one
	    must be specified).

	    Examples:
		  .Rs
		  .%A J. E. Hopcroft
		  .%A J. D. Ullman
		  .%B Introduction to Automata Theory, Languages, and Computation
		  .%I Addison-Wesley
		  .%C Reading, Massachusetts
		  .%D 1979
		  .Re

	    If an Rs block is used within a SEE	ALSO section, a	vertical space
	    is asserted	before the rendered output, else the  block  continues
	    on the current line.

       Rv -std [function ...]
	    Insert  a  standard	 sentence  regarding  a	function call's	return
	    value of 0 on success and -1 on error, with	the errno libc	global
	    variable set on error.

	    If	function  is  not  specified, the document's name set by Nm is
	    used.  Multiple function arguments are treated as  separate	 func-
	    tions.

	    See	also Ex.

       Sc   Close single-quoted	context	opened by So.

       Sh TITLE	LINE
	    Begin  a new section.  For a list of conventional manual sections,
	    see	"MANUAL	STRUCTURE".  Use the conventional sections  where  ap-
	    plicable.  For unusually long and complicated manual pages,	adding
	    custom sections is occasionally useful.

	    Avoid using	macros inside the TITLE	LINE and keep that line	unique
	    within the manual page, such that it can be	pointed	to with	Sx.

	    See	also Pp, Ss, and Sx.

       Sm [on |	off]
	    Switches the spacing mode for output generated from	macros.

	    By	default,  spacing is on.  When switched	off, no	white space is
	    inserted between macro arguments and between the output  generated
	    from  adjacent macros, but text lines still	get normal spacing be-
	    tween words	and sentences.

	    When called	without	an argument, the Sm macro toggles the  spacing
	    mode.   Using  this	 is  not recommended because it	makes the code
	    harder to read.

       So block
	    Multi-line version of Sq.

       Sq line
	    Encloses its arguments in `typewriter' single-quotes.

	    See	also Dq, Qq, and So.

       Ss Title	line
	    Begin a new	subsection.  Unlike with Sh, there  is	no  convention
	    for	 the  naming  of subsections.  Except DESCRIPTION, the conven-
	    tional sections described in "MANUAL STRUCTURE" rarely  have  sub-
	    sections.

	    Avoid using	macros inside the Title	line and keep that line	unique
	    within the manual page, such that it can be	pointed	to with	Sx.

	    See	also Pp, Sh, and Sx.

       St -abbreviation
	    Replace  an	 abbreviation  for a standard with the full form.  The
	    following standards	are  recognised.   Where  multiple  lines  are
	    given  without a blank line	in between, they all refer to the same
	    standard, and using	the first form is recommended.

	    C language standards

	       -ansiC	       ANSI X3.159-1989	("ANSI C89")
	       -ansiC-89       ANSI X3.159-1989	("ANSI C89")
	       -isoC	       ISO/IEC 9899:1990 ("ISO C90")
	       -isoC-90	       ISO/IEC 9899:1990 ("ISO C90")
			       The original C standard.

	       -isoC-amd1      ISO/IEC 9899/AMD1:1995 ("ISO C90, Amendment 1")

	       -isoC-tcor1     ISO/IEC 9899/TCOR1:1994	("ISO  C90,  Technical
			       Corrigendum 1")

	       -isoC-tcor2     ISO/IEC	9899/TCOR2:1995	 ("ISO	C90, Technical
			       Corrigendum 2")

	       -isoC-99	       ISO/IEC 9899:1999 ("ISO C99")
			       Edition 2 of the	C language standard.

	       -isoC-2011      ISO/IEC 9899:2011 ("ISO C11")
			       Edition 3 of the	C language standard.

	       -isoC-2023
			       Edition 5 of the	C language standard.

	    POSIX.1 before XPG4.2

	       -p1003.1-88     IEEE Std	1003.1-1988 ("POSIX.1")
	       -p1003.1	       IEEE Std	1003.1 ("POSIX.1")
			       The original POSIX standard, based on ANSI C.

	       -p1003.1-90     ISO/IEC 9945-1:1990 ("POSIX.1")
	       -iso9945-1-90   ISO/IEC 9945-1:1990 ("POSIX.1")
			       The first update	of POSIX.1.

	       -p1003.1b-93    IEEE Std	1003.1b-1993 ("POSIX.1")
	       -p1003.1b       IEEE Std	1003.1b	("POSIX.1")
			       Real-time extensions.

	       -p1003.1c-95    IEEE Std	1003.1c-1995 ("POSIX.1")
			       POSIX thread interfaces.

	       -p1003.1i-95    IEEE Std	1003.1i-1995 ("POSIX.1")
			       Technical Corrigendum.

	       -p1003.1-96     ISO/IEC 9945-1:1996 ("POSIX.1")
	       -iso9945-1-96   ISO/IEC 9945-1:1996 ("POSIX.1")
			       Includes	POSIX.1-1990, 1b, 1c, and 1i.

	    X/Open Portability Guide before XPG4.2

	       -xpg3	       X/Open Portability Guide	Issue 3	("XPG3")
			       An XPG4 precursor, published in 1989.

	       -p1003.2	       IEEE Std	1003.2 ("POSIX.2")
	       -p1003.2-92     IEEE Std	1003.2-1992 ("POSIX.2")
	       -iso9945-2-93   ISO/IEC 9945-2:1993 ("POSIX.2")
			       An XCU4 precursor.

	       -p1003.2a-92    IEEE Std	1003.2a-1992 ("POSIX.2")
			       Updates to POSIX.2.

	       -xpg4	       X/Open Portability Guide	Issue 4	("XPG4")
			       Based on	 POSIX.1  and  POSIX.2,	 published  in
			       1992.

	    X/Open Portability Guide Issue 4 Version 2 and related standards

	       -susv1	       Version	1  of  the  Single  UNIX Specification
			       ("SUSv1")
	       -xpg4.2	       X/Open Portability Guide	 Issue	4,  Version  2
			       ("XPG4.2")
			       This  standard  was  published in 1994.	It was
			       used as the basis for  UNIX  95	certification.
			       The following two refer to parts	of it.

	       -xcurses4.2     X/Open Curses Issue 4, Version 2	("XCURSES4.2")

	       -p1003.1g-2000  IEEE Std	1003.1g-2000 ("POSIX.1")
			       Networking APIs,	including sockets.

	       -svid4	       System  V  Interface Definition,	Fourth Edition
			       ("SVID4"),
			       Published in 1995.

	    X/Open Portability Guide Issue 5 and related standards

	       -susv2	       Version 2  of  the  Single  UNIX	 Specification
			       ("SUSv2")
			       This Standard was published in 1997 and is also
			       called  X/Open  Portability  Guide Issue	5.  It
			       was used	as the basis for  UNIX	98  certifica-
			       tion.  The following refer to parts of it.

	       -xbd5	       X/Open Base Definitions Issue 5 ("XBD5")

	       -xsh5	       X/Open  System  Interfaces  and Headers Issue 5
			       ("XSH5")

	       -xcu5	       X/Open Commands and Utilities Issue 5 ("XCU5")

	       -xns5	       X/Open Networking Services Issue	5 ("XNS5")
	       -xns5.2	       X/Open Networking Services Issue	5.2 ("XNS5.2")

	    POSIX Issue	6

	       -p1003.1-2001  IEEE Std 1003.1-2001 ("POSIX.1")
	       -susv3	      Version  3  of  the  Single  UNIX	 Specification
			      ("SUSv3")
			      This   standard	is   based   on	  C99,	SUSv2,
			      POSIX.1-1996, 1d,	and 1j.	  It  is  also	called
			      X/Open Portability Guide Issue 6.	 It is used as
			      the basis	for UNIX 03 certification.

	       -p1003.1-2004  IEEE Std 1003.1-2004 ("POSIX.1")
			      The second and last Technical Corrigendum.

	    POSIX Issues 7 and 8

	       -p1003.1-2008   IEEE Std	1003.1-2008 ("POSIX.1")
	       -susv4	       Version	4  of  the  Single  UNIX Specification
			       ("SUSv4")
			       This standard is	based  on  C99.	  It  is  also
			       called  the Open	Group Standard Base Specifica-
			       tions, Issue 7.

	       -p1003.1-2024
			       This standard is	based  on  C17.	  It  is  also
			       called  the Open	Group Standard Base Specifica-
			       tions, Issue 8.

	    Other standards

	       -ieee754	       IEEE Std	754-1985
			       Floating-point arithmetic.

	       -iso8601	       ISO 8601
			       Representation of dates and times, published in
			       1988.

	       -iso8802-3      ISO/IEC 8802-3:1989
			       Ethernet	local area networks.

	       -ieee1275-94    IEEE Std	1275-1994 ("Open Firmware")

       Sx Title	line
	    Reference a	section	or subsection in the same  manual  page.   The
	    referenced section or subsection name must be identical to the en-
	    closed argument, including whitespace.

	    Examples:
		  .Sx MANUAL STRUCTURE

	    See	also Sh	and Ss.

       Sy word ...
	    Request a boldface font.

	    This is most often used to indicate	importance or seriousness (not
	    to	be  confused  with stress emphasis, see	Em).  When none	of the
	    semantic macros fit, it is also adequate for syntax	elements  that
	    have to be given or	that appear verbatim.

	    Examples:
		  .Sy Warning :
		  If
		  .Sy s
		  appears in the owner permissions, set-user-ID	mode is	set.
		  This utility replaces	the former
		  .Sy dumpdir
		  program.

	    See	also Em, No, and Ql.

       Ta   Table  cell	 separator in Bl -column lists;	can only be used below
	    It.

       Tg [term]
	    Announce that the next input line starts a definition of the term.
	    This macro must appear alone on its	own input line.	 The  argument
	    defaults  to  the  first  argument	of the first macro on the next
	    line.  The argument	may not	 contain  whitespace  characters,  not
	    even  when	it is quoted.  This macro is a mandoc(1) extension and
	    is typically ignored by other formatters.

	    When viewing terminal output with less(1), the interactive :t com-
	    mand can be	used to	go to the definition of	the term as  described
	    for	the MANPAGER variable in man(1); when producing	HTML output, a
	    fragment  identifier  (id  attribute) is generated,	to be used for
	    deep linking to this place of the document.

	    In most cases, adding  a  Tg  macro	 would	be  redundant  because
	    mandoc(1)  is  able	 to  automatically tag most definitions.  This
	    macro is intended for cases	where automatic	tagging	of a  term  is
	    unsatisfactory, for	example	if a definition	is not tagged automat-
	    ically (false negative) or if places are tagged that do not	define
	    the	 term  (false positives).  When	there is at least one Tg macro
	    for	a term,	no other places	are automatically  marked  as  defini-
	    tions of that term.

       Tn word ...
	    Supported  only for	compatibility, do not use this in new manuals.
	    Even though	the macro name ("tradename") suggests a	semantic func-
	    tion, historic usage is inconsistent, mostly using it as a presen-
	    tation-level macro to request a small caps font.

       Ud   Supported only for compatibility, do not use this in new  manuals.
	    Prints out "currently under	development."

       Ux   Supported  only for	compatibility, do not use this in new manuals.
	    Prints out "Unix".

       Va [type] identifier ...
	    A variable name.

	    Examples:
		  .Va foo
		  .Va const char *bar;

	    For	function arguments and parameters, use Fa instead.  For	decla-
	    rations of global variables	in the SYNOPSIS	section, use Vt.

       Vt type [identifier]
	    A variable type.

	    This is also used for indicating global variables in the  SYNOPSIS
	    section,  in  which	 case a	variable name is also specified.  Note
	    that it accepts "Block partial-implicit" syntax  when  invoked  as
	    the	 first macro on	an input line in the SYNOPSIS section, else it
	    accepts ordinary "In-line" syntax.	In the former case, this macro
	    starts a new output	line, and a blank line is inserted in front if
	    there is a preceding function definition or	include	directive.

	    Examples:
		  .Vt unsigned char
		  .Vt extern const char	* const	sys_signame[] ;

	    For	parameters in function prototypes, use Fa instead,  for	 func-
	    tion  return types Ft, and for variable names outside the SYNOPSIS
	    section Va,	even when including a type with	the  name.   See  also
	    "MANUAL STRUCTURE".

       Xc   Close a scope opened by Xo.

       Xo block
	    Extend the header of an It macro or	the body of a partial-implicit
	    block  macro  beyond the end of the	input line.  This macro	origi-
	    nally existed to work around  the  9-argument  limit  of  historic
	    roff(7).

       Xr name section
	    Link to another manual ("cross-reference").

	    Cross reference the	name and section number	of another man page.

	    Examples:
		  .Xr mandoc 1
		  .Xr mandoc 1 ;
		  .Xr mandoc 1 Ns s behaviour

MACRO SYNTAX
       The  syntax of a	macro depends on its classification.  In this section,
       `-arg' refers to	macro arguments, which may be followed by zero or more
       `parm' parameters; `Yo' opens the scope of a macro; and	if  specified,
       `Yc' closes it out.

       The  Callable  column  indicates	 that  the macro may also be called by
       passing its name	as an argument to another macro.  For example, `.Op Fl
       O Ar file' produces `[-O	file]'.	 To prevent a macro  call  and	render
       the  macro  name	literally, escape it by	prepending a zero-width	space,
       `\&'.  For example, `Op \&Fl O' produces	`[Fl O]'.  If a	macro  is  not
       callable	 but  its  name	appears	as an argument to another macro, it is
       interpreted as opaque text.  For	example, `.Fl Sh' produces `-Sh'.

       The Parsed column indicates whether the macro may call other macros  by
       receiving  their	 names as arguments.  If a macro is not	parsed but the
       name of another macro appears as	an  argument,  it  is  interpreted  as
       opaque text.

       The Scope column, if applicable,	describes closure rules.

   Block full-explicit
       Multi-line  scope closed	by an explicit closing macro.  All macros con-
       tains bodies; only Bf and (optionally) Bl contain a head.

	     .Yo [-arg [parm...]] [head...]
	     [body...]
	     .Yc

	     Macro     Callable	    Parsed     Scope
	     Bd	       No	    No	       closed by Ed
	     Bf	       No	    No	       closed by Ef
	     Bk	       No	    No	       closed by Ek
	     Bl	       No	    No	       closed by El
	     Ed	       No	    No	       opened by Bd
	     Ef	       No	    No	       opened by Bf
	     Ek	       No	    No	       opened by Bk
	     El	       No	    No	       opened by Bl

   Block full-implicit
       Multi-line scope	closed by end-of-file or implicitly by another	macro.
       All macros have bodies; some (It	-bullet, -hyphen, -dash, -enum,	-item)
       don't have heads; only one (It in Bl -column) has multiple heads.

	     .Yo [-arg [parm...]] [head... [Ta head...]]
	     [body...]

	     Macro     Callable	    Parsed     Scope
	     It	       No	    Yes	       closed by It, El
	     Nd	       No	    No	       closed by Sh
	     Nm	       No	    Yes	       closed by Nm, Sh, Ss
	     Sh	       No	    Yes	       closed by Sh
	     Ss	       No	    Yes	       closed by Sh, Ss

       Note  that  the Nm macro	is a "Block full-implicit" macro only when in-
       voked as	the first macro	 in  a	SYNOPSIS  section  line,  else	it  is
       "In-line".

   Block partial-explicit
       Like block full-explicit, but also with single-line scope.  Each	has at
       least a body and, in limited circumstances, a head (Fo, Eo) and/or tail
       (Ec).

	     .Yo [-arg [parm...]] [head...]
	     [body...]
	     .Yc [tail...]

	     .Yo [-arg [parm...]] [head...] [body...] Yc [tail...]

	     Macro     Callable	    Parsed     Scope
	     Ac	       Yes	    Yes	       opened by Ao
	     Ao	       Yes	    Yes	       closed by Ac
	     Bc	       Yes	    Yes	       closed by Bo
	     Bo	       Yes	    Yes	       opened by Bc
	     Brc       Yes	    Yes	       opened by Bro
	     Bro       Yes	    Yes	       closed by Brc
	     Dc	       Yes	    Yes	       opened by Do
	     Do	       Yes	    Yes	       closed by Dc
	     Ec	       Yes	    Yes	       opened by Eo
	     Eo	       Yes	    Yes	       closed by Ec
	     Fc	       Yes	    Yes	       opened by Fo
	     Fo	       No	    No	       closed by Fc
	     Oc	       Yes	    Yes	       closed by Oo
	     Oo	       Yes	    Yes	       opened by Oc
	     Pc	       Yes	    Yes	       closed by Po
	     Po	       Yes	    Yes	       opened by Pc
	     Qc	       Yes	    Yes	       opened by Oo
	     Qo	       Yes	    Yes	       closed by Oc
	     Re	       No	    No	       opened by Rs
	     Rs	       No	    No	       closed by Re
	     Sc	       Yes	    Yes	       opened by So
	     So	       Yes	    Yes	       closed by Sc
	     Xc	       Yes	    Yes	       opened by Xo
	     Xo	       Yes	    Yes	       closed by Xc

   Block partial-implicit
       Like  block full-implicit, but with single-line scope closed by the end
       of the line.

	     .Yo [-arg [val...]] [body...] [res...]

	     Macro     Callable	    Parsed
	     Aq	       Yes	    Yes
	     Bq	       Yes	    Yes
	     Brq       Yes	    Yes
	     D1	       No	    Yes
	     Dl	       No	    Yes
	     Dq	       Yes	    Yes
	     En	       Yes	    Yes
	     Op	       Yes	    Yes
	     Pq	       Yes	    Yes
	     Ql	       Yes	    Yes
	     Qq	       Yes	    Yes
	     Sq	       Yes	    Yes
	     Vt	       Yes	    Yes

       Note that the Vt	macro is a "Block partial-implicit" only when  invoked
       as the first macro in a SYNOPSIS	section	line, else it is "In-line".

   Special block macro
       The  Ta macro can only be used below It in Bl -column lists.  It	delim-
       its blocks representing table cells; these blocks have bodies,  but  no
       heads.

	     Macro     Callable	    Parsed     Scope
	     Ta	       Yes	    Yes	       closed by Ta, It

   In-line
       Closed  by  the	end of the line, fixed argument	lengths, and/or	subse-
       quent macros.  In-line macros have only text children.  If a number (or
       inequality) of arguments	is (n),	then the macro	accepts	 an  arbitrary
       number of arguments.

	     .Yo [-arg [val...]] [args...] [res...]

	     .Yo [-arg [val...]] [args...] Yc...

	     .Yo [-arg [val...]] arg0 arg1 argN

	     Macro     Callable	    Parsed     Arguments
	     %A	       No	    No	       >0
	     %B	       No	    No	       >0
	     %C	       No	    No	       >0
	     %D	       No	    No	       >0
	     %I	       No	    No	       >0
	     %J	       No	    No	       >0
	     %N	       No	    No	       >0
	     %O	       No	    No	       >0
	     %P	       No	    No	       >0
	     %Q	       No	    No	       >0
	     %R	       No	    No	       >0
	     %T	       No	    No	       >0
	     %U	       No	    No	       >0
	     %V	       No	    No	       >0
	     Ad	       Yes	    Yes	       >0
	     An	       Yes	    Yes	       >0
	     Ap	       Yes	    Yes	       0
	     Ar	       Yes	    Yes	       n
	     At	       Yes	    Yes	       1
	     Bsx       Yes	    Yes	       n
	     Bt	       No	    No	       0
	     Bx	       Yes	    Yes	       n
	     Cd	       Yes	    Yes	       >0
	     Cm	       Yes	    Yes	       >0
	     Db	       No	    No	       1
	     Dd	       No	    No	       n
	     Dt	       No	    No	       n
	     Dv	       Yes	    Yes	       >0
	     Dx	       Yes	    Yes	       n
	     Em	       Yes	    Yes	       >0
	     Er	       Yes	    Yes	       >0
	     Es	       Yes	    Yes	       2
	     Ev	       Yes	    Yes	       >0
	     Ex	       No	    No	       n
	     Fa	       Yes	    Yes	       >0
	     Fd	       No	    No	       >0
	     Fl	       Yes	    Yes	       n
	     Fn	       Yes	    Yes	       >0
	     Fr	       Yes	    Yes	       >0
	     Ft	       Yes	    Yes	       >0
	     Fx	       Yes	    Yes	       n
	     Hf	       No	    No	       n
	     Ic	       Yes	    Yes	       >0
	     In	       Yes	    Yes	       1
	     Lb	       No	    No	       >0
	     Li	       Yes	    Yes	       >0
	     Lk	       Yes	    Yes	       >0
	     Lp	       No	    No	       0
	     Ms	       Yes	    Yes	       >0
	     Mt	       Yes	    Yes	       >0
	     Nm	       Yes	    Yes	       n
	     No	       Yes	    Yes	       >0
	     Ns	       Yes	    Yes	       0
	     Nx	       Yes	    Yes	       n
	     Os	       No	    No	       n
	     Ot	       Yes	    Yes	       >0
	     Ox	       Yes	    Yes	       n
	     Pa	       Yes	    Yes	       n
	     Pf	       Yes	    Yes	       1
	     Pp	       No	    No	       0
	     Rv	       No	    No	       n
	     Sm	       No	    No	       <2
	     St	       No	    Yes	       1
	     Sx	       Yes	    Yes	       >0
	     Sy	       Yes	    Yes	       >0
	     Tg	       No	    No	       <2
	     Tn	       Yes	    Yes	       >0
	     Ud	       No	    No	       0
	     Ux	       Yes	    Yes	       n
	     Va	       Yes	    Yes	       n
	     Vt	       Yes	    Yes	       >0
	     Xr	       Yes	    Yes	       2

   Delimiters
       When a macro argument consists of one single input character considered
       as  a delimiter,	the argument gets special handling.  This does not ap-
       ply when	delimiters appear in arguments containing more than one	 char-
       acter.	Consequently,  to  prevent special handling and	just handle it
       like any	other argument,	a delimiter can	be  escaped  by	 prepending  a
       zero-width  space  (`\&').  In text lines, delimiters never need	escap-
       ing, but	may be used as normal punctuation.

       For many	macros,	when the leading  arguments  are  opening  delimiters,
       these  delimiters are put before	the macro scope, and when the trailing
       arguments are closing delimiters, these delimiters are  put  after  the
       macro scope.  Spacing is	suppressed after opening delimiters and	before
       closing delimiters.  For	example,

	     .Aq ( [ word ] ) .

       renders as:

	     ([<word>]).

       Opening delimiters are:

	     (	     left parenthesis
	     [	     left bracket

       Closing delimiters are:

	     .	     period
	     ,	     comma
	     :	     colon
	     ;	     semicolon
	     )	     right parenthesis
	     ]	     right bracket
	     ?	     question mark
	     !	     exclamation mark

       Note  that  even	a period preceded by a backslash (`\.')	gets this spe-
       cial handling; use `\&.'	to prevent that.

       Many in-line macros interrupt their scope when  they  encounter	delim-
       iters,  and  resume their scope when more arguments follow that are not
       delimiters.  For	example,

	     .Fl a ( b | c \*(Ba d ) e

       renders as:

	     -a	(-b | -c | -d) -e

       This applies to both opening and	closing	delimiters, and	 also  to  the
       middle delimiter, which does not	suppress spacing:

	     |	     vertical bar

       As  a special case, the predefined string \*(Ba is handled and rendered
       in the same way as a plain `|' character.  Using	this predefined	string
       is not recommended in new manuals.

       Appending a zero-width space (`\&') to the end of an input line is also
       useful to prevent the interpretation of a trailing period,  exclamation
       or question mark	as the end of a	sentence, for example when an abbrevi-
       ation happens to	occur at the end of a text or macro input line.

   Font	handling
       In  mdoc	documents, usage of semantic markup is recommended in order to
       have proper fonts automatically selected; only when no fitting semantic
       markup is available, consider falling back to "Physical markup" macros.
       Whenever	any mdoc macro switches	the roff(7) font mode, it  will	 auto-
       matically  restore  the previous	font when exiting its scope.  Manually
       switching the font using	the roff(7)  `\f'  font	 escape	 sequences  is
       never required.

COMPATIBILITY
       This  section  provides	an incomplete list of compatibility issues be-
       tween mandoc and	GNU troff ("groff").

       The following problematic behaviour is found in groff:

       -   Pa does not format its arguments when used in the FILES section un-
	   der certain list types.
       -   Ta can only be called by other macros, but not at the beginning  of
	   a line.
       -   `\f'	 (font face) and `\F' (font family face) "Text Decoration" es-
	   capes behave	irregularly when specified within line-macro scopes.
       -   Negative scaling units return  to  prior  lines.   Instead,	mandoc
	   truncates them to zero.

       The following features are unimplemented	in mandoc:

       -   Bd -file file is unsupported	for security reasons.
       -   Bd -filled does not adjust the right	margin,	but is an alias	for Bd
	   -ragged.
       -   Bd  -literal	 does  not  use	a literal font,	but is an alias	for Bd
	   -unfilled.
       -   Bd -offset center and -offset right don't work.  Groff does not im-
	   plement centered and	flush-right  rendering	either,	 but  produces
	   large indentations.

SEE ALSO
       man(1), mandoc(1), eqn(7), man(7), mandoc_char(7), roff(7), tbl(7)

       The   web   page	  extended   documentation   for  the  mdoc  language:
       https://mandoc.bsd.lv/mdoc/ provides a few tutorial-style pages for be-
       ginners,	an extensive style guide for advanced authors, and  an	alpha-
       betic index helping to choose the best macros for various kinds of con-
       tent.

       The  manual  page  groff_mdoc(7):  https://man.voidlinux.org/groff_mdoc
       contained in the	"groff"	package	documents exactly the same language in
       a somewhat different style.

HISTORY
       The mdoc	language first appeared	as a troff macro  package  in  4.4BSD.
       It was later significantly updated by Werner Lemberg and	Ruslan Ermilov
       in  groff-1.17.	 The  standalone  implementation  that	is part	of the
       mandoc(1) utility written by Kristaps Dzonsons appeared in OpenBSD 4.6.

AUTHORS
       The mdoc	reference was written by Kristaps Dzonsons <kristaps@bsd.lv>.

FreeBSD	15.0			August 19, 2025			       MDOC(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mdoc&sektion=7&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help