]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc.7
Removed need for superfluous `os' value in overstep calculation (thanks Ingo Schwarze).
[mandoc.git] / mdoc.7
diff --git a/mdoc.7 b/mdoc.7
index 6c00e540110b40ec634db05cb765f3f0d84abfc7..47410dc53bad1b988c87176c44556b1d3d798f20 100644 (file)
--- a/mdoc.7
+++ b/mdoc.7
@@ -1,4 +1,4 @@
-.\"    $Id: mdoc.7,v 1.65 2009/10/19 11:02:23 kristaps Exp $
+.\"    $Id: mdoc.7,v 1.69 2009/10/24 05:52:13 kristaps Exp $
 .\"
 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
 .\"
 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
@@ -14,7 +14,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd $Mdocdate: October 19 2009 $
+.Dd $Mdocdate: October 24 2009 $
 .Dt MDOC 7
 .Os
 .
 .Dt MDOC 7
 .Os
 .
@@ -210,7 +210,42 @@ considered literal text.  Thus, the following produces
 In free-form mode, quotes are regarded as opaque text.
 .
 .Ss Dates
 In free-form mode, quotes are regarded as opaque text.
 .
 .Ss Dates
-TODO.
+There are several macros in
+.Nm
+that require a date argument.  The 
+.Em canonical form
+for dates is the American format:
+.Pp
+.D1 Cm Month Day , Year
+.Pp
+The
+.Cm Day
+value is an optionally zero-padded numeral.  The
+.Cm Month
+value is the full month name.  The
+.Cm Year
+value is the full four-digit year.
+.Pp
+The
+.Em non-canonical form
+is the same as the canonical form, but without the comma between the
+.Cm Day
+and
+.Cm Year
+field.
+.Pp
+Lastly,
+.Em reduced form
+dates range from only a
+.Cm Year
+to the full canonical or non-canonical form.
+.Pp
+Some examples of valid dates follow:
+.Pp
+.D1 "May, 2009" Pq reduced form
+.D1 "2009" Pq reduced form
+.D1 "May 20, 2009" Pq canonical form
+.D1 "May 20 2009" Pq non-canonical form
 .
 .Ss Scaling Widths
 Many macros support scaled widths for their arguments, such as
 .
 .Ss Scaling Widths
 Many macros support scaled widths for their arguments, such as
@@ -267,17 +302,31 @@ is necessarily non-portable across output media.  See
 .
 .
 .Sh MANUAL STRUCTURE
 .
 .
 .Sh MANUAL STRUCTURE
-Each
+A well-formed
 .Nm
 .Nm
-document must begin with a document prologue, containing, in order,
+document consists of a document prologue followed by one or more
+sections.
+.Pp
+The prologue, which consists of (in order) the
 .Sx \&Dd ,
 .Sx \&Dt ,
 and
 .Sx \&Dd ,
 .Sx \&Dt ,
 and
-.Sx \&Os ,
-then the NAME section containing at least one
+.Sx \&Os
+macros, is required for every document.
+.Pp
+The first section (sections are denoted by 
+.Sx \&Sh )
+must be the NAME section, consisting of at least one
 .Sx \&Nm
 followed by
 .Sx \&Nm
 followed by
-.Sx \&Nd :
+.Sx \&Nd .
+.Pp
+Following that, convention dictates specifying at least the SYNOPSIS and
+DESCRIPTION sections, although this varies between manual sections.
+.Pp
+The following is a well-formed skeleton
+.Nm
+file:
 .Bd -literal -offset indent
 \&.Dd $\&Mdocdate$
 \&.Dt mdoc 7
 .Bd -literal -offset indent
 \&.Dd $\&Mdocdate$
 \&.Dt mdoc 7
@@ -320,10 +369,44 @@ utility processes files ...
 \&.\e\*q .Sh BUGS
 \&.\e\*q .Sh SECURITY CONSIDERATIONS
 .Ed
 \&.\e\*q .Sh BUGS
 \&.\e\*q .Sh SECURITY CONSIDERATIONS
 .Ed
-.
 .Pp
 .Pp
-Subsequent SYNOPSIS and DESCRIPTION sections are strongly encouraged,
-but non-compulsory.
+The sections in a
+.Nm
+document are conventionally ordered as they appear above.  Sections
+should be composed as follows:
+.Bl -tag -width Ds -offset Ds
+.It NAME
+Must contain at least one
+.Sx \&Nm
+followed by
+.Sx \&Nd .
+The name needs re-stating since one
+.Nm
+documents can be used for more than one utility or function, such as
+.Xr grep 1
+also being referenced as
+.Xr egrep 1
+and
+.Xr fgrep 1 .
+.It LIBRARY
+.It SYNOPSIS
+.It DESCRIPTION
+.It IMPLEMENTATION NOTES
+.It EXIT STATUS
+.It RETURN VALUES
+.It ENVIRONMENT
+.It FILES
+.It EXAMPLES
+.It DIAGNOSTICS
+.It ERRORS
+.It SEE ALSO
+.It STANDARDS
+.It HISTORY
+.It AUTHORS
+.It CAVEATS
+.It BUGS
+.It SECURITY CONSIDERATIONS
+.El
 .
 .
 .Sh MACRO SYNTAX
 .
 .
 .Sh MACRO SYNTAX
@@ -528,8 +611,10 @@ then the macro accepts an arbitrary number of arguments.
 .It Sx \&%N  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%O  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%P  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%N  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%O  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%P  Ta    \&No     Ta    \&No     Ta    >0
+.It Sx \&%Q  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%R  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%R  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%T  Ta    \&No     Ta    \&No     Ta    >0
+.It Sx \&%U  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&An  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&%V  Ta    \&No     Ta    \&No     Ta    >0
 .It Sx \&Ad  Ta    Yes      Ta    Yes      Ta    n
 .It Sx \&An  Ta    Yes      Ta    Yes      Ta    n
@@ -604,10 +689,8 @@ Author name of an
 .Sx \&Rs
 block.  Multiple authors should each be accorded their own
 .Sx \%%A
 .Sx \&Rs
 block.  Multiple authors should each be accorded their own
 .Sx \%%A
-line.
-.Pp
-Author names should be ordered with full or abbreviated forename(s)
-first, then full surname.
+line.  Author names should be ordered with full or abbreviated
+forename(s) first, then full surname.
 .
 .Ss \&%B
 Book title of an
 .
 .Ss \&%B
 Book title of an
@@ -627,8 +710,10 @@ this macro is not implemented in
 .Ss \&%D
 Publication date of an
 .Sx \&Rs
 .Ss \&%D
 Publication date of an
 .Sx \&Rs
-block.  This should follow the canonical syntax for 
+block.  This should follow the reduced syntax for 
 .Sx Dates .
 .Sx Dates .
+Canonical or non-canonical form is not necessary since publications are
+often referenced only by year, or month and year.
 .
 .Ss \&%I
 Publisher or issuer name of an
 .
 .Ss \&%I
 Publisher or issuer name of an
@@ -673,6 +758,9 @@ Article title of an
 block.  This macro may also be used in a non-bibliographical context
 when referring to article titles.
 .
 block.  This macro may also be used in a non-bibliographical context
 when referring to article titles.
 .
+.Ss \&%U
+URI of current document.
+.
 .Ss \&%V
 Volume number of an
 .Sx \&Rs
 .Ss \&%V
 Volume number of an
 .Sx \&Rs
@@ -698,7 +786,7 @@ Author name.  This macro may alternatively accepts the following
 arguments, although these may not be specified along with a parameter:
 .Bl -tag -width 12n -offset indent
 .It Fl split
 arguments, although these may not be specified along with a parameter:
 .Bl -tag -width 12n -offset indent
 .It Fl split
-Renders a line break is rendered before each author listing.
+Renders a line break before each author listing.
 .It Fl nosplit
 The opposite of
 .Fl split .
 .It Fl nosplit
 The opposite of
 .Fl split .
@@ -770,9 +858,9 @@ See also
 .Sx \&Ao .
 .
 .Ss \&Ar
 .Sx \&Ao .
 .
 .Ss \&Ar
-Command arguments.  If an argument is not provided, the strings
+Command arguments.  If an argument is not provided, the string
 .Dq file ...
 .Dq file ...
-are used as a default.
+is used as a default.
 .Pp
 Examples:
 .Bd -literal -offset indent
 .Pp
 Examples:
 .Bd -literal -offset indent
@@ -801,8 +889,9 @@ Examples:
 .Ed
 .Pp
 See also
 .Ed
 .Pp
 See also
-.Sx \&Bx ,
 .Sx \&Bsx ,
 .Sx \&Bsx ,
+.Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
@@ -859,7 +948,7 @@ which aligns around an imagined centre axis.
 .It
 As a precalculated width for a named macro.  The most popular is the
 imaginary macro
 .It
 As a precalculated width for a named macro.  The most popular is the
 imaginary macro
-.Ar Ds ,
+.Ar \&Ds ,
 which resolves to
 .Ar 6n .
 .It
 which resolves to
 .Ar 6n .
 .It
@@ -887,6 +976,11 @@ Examples:
    Hello       world.
 \&.Ed
 .Ed
    Hello       world.
 \&.Ed
 .Ed
+.Pp
+See also
+.Sx \&D1
+and
+.Sx \&Dl .
 .
 .Ss \&Bf
 .Ss \&Bk
 .
 .Ss \&Bf
 .Ss \&Bk
@@ -966,6 +1060,7 @@ Examples:
 See also
 .Sx \&At ,
 .Sx \&Bx ,
 See also
 .Sx \&At ,
 .Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
@@ -973,6 +1068,9 @@ and
 .Sx \&Ux .
 .
 .Ss \&Bt
 .Sx \&Ux .
 .
 .Ss \&Bt
+Prints
+.Dq is currently in beta test.
+.
 .Ss \&Bx
 Format the BSD version provided as an argument, or a default value if no
 argument is provided.
 .Ss \&Bx
 Format the BSD version provided as an argument, or a default value if no
 argument is provided.
@@ -986,6 +1084,7 @@ Examples:
 See also
 .Sx \&At ,
 .Sx \&Bsx ,
 See also
 .Sx \&At ,
 .Sx \&Bsx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
@@ -993,29 +1092,330 @@ and
 .Sx \&Ux .
 .
 .Ss \&Cd
 .Sx \&Ux .
 .
 .Ss \&Cd
+Configuration declaration (suggested for use only in section four
+manuals).  This denotes strings accepted by
+.Xr config 8 .
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Cd device le0 at scode?
+.Ed
+.Pp
+.Em Remarks :
+this macro is commonly abused by using quoted literals to retain
+white-space and align consecutive
+.Sx \&Cd
+declarations.  This practise is discouraged.
+.
 .Ss \&Cm
 .Ss \&Cm
+Command modifiers.  Useful when specifying configuration options or
+keys.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Cm ControlPath
+\&.Cm ControlMaster
+.Ed
+.Pp
+See also
+.Sx \&Fl .
+.
 .Ss \&D1
 .Ss \&D1
+One-line indented display.  This is formatted by the default rules and
+is useful for simple indented statements.  It is followed by a newline.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.D1 Fl abcdefgh
+.Ed
+.Pp
+See also
+.Sx \&Bd
+and
+.Sx \&Dl .
+.
 .Ss \&Db
 .Ss \&Dc
 .Ss \&Db
 .Ss \&Dc
+Closes a
+.Sx \&Do
+block.  Does not have any tail arguments.
+.
 .Ss \&Dd
 .Ss \&Dd
+Document date.  This is the mandatory first macro of any
+.Nm
+manual.  Its calling syntax is as follows:
+.Pp
+.D1 \. Ns Sx \&Dd Cm date
+.Pp
+The 
+.Cm date
+field may be either
+.Ar $\&Mdocdate$ ,
+which signifies the current manual revision date dictated by
+.Xr cvs 1
+or instead a valid canonical date as specified by
+.Sx Dates .
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dd $\&Mdocdate$
+\&.Dd $\&Mdocdate: July 21 2007$
+\&.Dd July 21, 2007
+.Ed
+.Pp
+See also
+.Sx \&Dt
+and
+.Sx \&Os .
+.
 .Ss \&Dl
 .Ss \&Dl
+One-line intended display.  This is formatted as literal text and is
+useful for commands and invocations.  It is followed by a newline.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dl % mandoc mdoc.7 | less
+.Ed
+.Pp
+See also
+.Sx \&Bd
+and
+.Sx \&D1 .
+.
 .Ss \&Do
 .Ss \&Do
+Begins a block enclosed by double quotes.  Does not have any head
+arguments.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.D1 Do April is the cruellest month Dc \e(em T.S. Eliot
+.Ed
+.Pp
+See also
+.Sx \&Dq .
+.
 .Ss \&Dq
 .Ss \&Dq
+Encloses its arguments in double quotes.  
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dq April is the cruellest month
+\e(em T.S. Eliot
+.Ed
+.Pp
+See also
+.Sx \&Do .
+.
 .Ss \&Dt
 .Ss \&Dt
+Document title.  This is the mandatory second macro of any
+.Nm
+file.  Its calling syntax is as follows:
+.Pp
+.D1 \. Ns Sx \&Dt Cm title section Op Cm volume | arch
+.Pp
+Its arguments are as follows:
+.Bl -tag -width Ds -offset Ds
+.It Cm title
+The document's title (name).  This should be capitalised and is
+required.
+.It Cm section
+The manual section.  This may be one of
+.Ar 1
+.Pq utilities ,
+.Ar 2
+.Pq system calls ,
+.Ar 3
+.Pq libraries ,
+.Ar 3p
+.Pq Perl libraries ,
+.Ar 4
+.Pq devices ,
+.Ar 5
+.Pq file formats ,
+.Ar 6
+.Pq games ,
+.Ar 7
+.Pq miscellaneous ,
+.Ar 8
+.Pq system utilities ,
+.Ar 9
+.Pq kernel functions ,
+.Ar X11
+.Pq X Window System ,
+.Ar X11R6
+.Pq X Window System ,
+.Ar unass
+.Pq unassociated ,
+.Ar local
+.Pq local system ,
+.Ar draft
+.Pq draft manual ,
+or
+.Ar paper
+.Pq paper .
+It is also required and should correspond to the manual's filename
+suffix.
+.It Cm volume
+This overrides the volume inferred from
+.Ar section .
+This field is optional, and if specified, must be one of
+.Ar USD
+.Pq users' supplementary documents ,
+.Ar PS1
+.Pq programmers' supplementary documents ,
+.Ar AMD
+.Pq administrators' supplementary documents ,
+.Ar SMM
+.Pq system managers' manuals ,
+.Ar URM
+.Pq users' reference manuals ,
+.Ar PRM
+.Pq programmers' reference manuals ,
+.Ar KM
+.Pq kernel manuals ,
+.Ar IND
+.Pq master index ,
+.Ar MMI
+.Pq master index ,
+.Ar LOCAL
+.Pq local manuals ,
+.Ar LOC
+.Pq local manuals ,
+or
+.Ar CON
+.Pq contributed manuals .
+.It Cm arch
+This specifies a specific relevant architecture.  If
+.Cm volume
+is not provided, it may be used in its place, else it may be used
+subsequent that.  It, too, is optional.  It must be one of
+.Ar alpha ,
+.Ar amd64 ,
+.Ar amiga ,
+.Ar arc ,
+.Ar arm ,
+.Ar armish ,
+.Ar aviion ,
+.Ar hp300 ,
+.Ar hppa ,
+.Ar hppa64 ,
+.Ar i386 ,
+.Ar landisk ,
+.Ar luna88k ,
+.Ar mac68k ,
+.Ar macppc ,
+.Ar mvme68k ,
+.Ar mvme88k ,
+.Ar mvmeppc ,
+.Ar pmax ,
+.Ar sgi ,
+.Ar socppc ,
+.Ar sparc ,
+.Ar sparc64 ,
+.Ar sun3 ,
+.Ar vax ,
+or
+.Ar zaurus .
+.El
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dt FOO 1
+\&.Dt FOO 4 KM
+\&.Dt FOO 9 i386
+\&.Dt FOO 9 KM i386
+.Ed
+.Pp
+See also
+.Sx \&Dd
+and
+.Sx \&Os .
+.
 .Ss \&Dv
 .Ss \&Dv
+Defined variables such as preprocessor constants.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dv BUFSIZ
+\&.Dv STDOUT_FILENO
+.Ed
+.Pp
+See also
+.Sx \&Er .
+.
 .Ss \&Dx
 .Ss \&Dx
+Format the DragonFlyBSD version provided as an argument, or a default
+value if no argument is provided.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Dx 2.4.1
+\&.Dx
+.Ed
+.Pp
+See also
+.Sx \&At ,
+.Sx \&Bsx ,
+.Sx \&Bx ,
+.Sx \&Fx ,
+.Sx \&Nx ,
+.Sx \&Ox ,
+and
+.Sx \&Ux .
+.
 .Ss \&Ec
 .Ss \&Ed
 .Ss \&Ef
 .Ss \&Ek
 .Ss \&El
 .Ss \&Em
 .Ss \&Ec
 .Ss \&Ed
 .Ss \&Ef
 .Ss \&Ek
 .Ss \&El
 .Ss \&Em
+Denotes text that should be emphasised.  Note that this is a
+presentation term and should not be used for stylistically decorating
+technical terms.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Ed Warnings!
+\&.Ed Remarks :
+.Ed
+.
 .Ss \&En
 .Ss \&Eo
 .Ss \&Er
 .Ss \&En
 .Ss \&Eo
 .Ss \&Er
+Error constants (suggested for use only in section two manuals).
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Er EPERM
+\&.Er ENOENT
+.Ed
+.Pp
+See also
+.Sx \&Dv .
+.
 .Ss \&Es
 .Ss \&Es
+.
 .Ss \&Ev
 .Ss \&Ev
+Environmental variables such as those specified in
+.Xr environ 7 .
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Ev DISPLAY
+\&.Ev PATH
+.Ed
+.
 .Ss \&Ex
 .Ss \&Ex
+Inserts text regarding a utility's exit values.  This macro must have
+first the
+.Fl std
+argument specified, then an optional
+.Ar utility .
+If
+.Ar utility
+is not provided, the document's name as stipulated in
+.Sx \&Nm
+is provided.
 .Ss \&Fa
 .Ss \&Fc
 .Ss \&Fd
 .Ss \&Fa
 .Ss \&Fc
 .Ss \&Fd
@@ -1036,8 +1436,9 @@ Examples:
 .Pp
 See also
 .Sx \&At ,
 .Pp
 See also
 .Sx \&At ,
-.Sx \&Bx ,
 .Sx \&Bsx ,
 .Sx \&Bsx ,
+.Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Nx ,
 .Sx \&Ox ,
 and
 .Sx \&Nx ,
 .Sx \&Ox ,
 and
@@ -1069,8 +1470,9 @@ Examples:
 .Pp
 See also
 .Sx \&At ,
 .Pp
 See also
 .Sx \&At ,
-.Sx \&Bx ,
 .Sx \&Bsx ,
 .Sx \&Bsx ,
+.Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Ox ,
 and
 .Sx \&Fx ,
 .Sx \&Ox ,
 and
@@ -1080,7 +1482,37 @@ and
 .Ss \&Oo
 .Ss \&Op
 .Ss \&Os
 .Ss \&Oo
 .Ss \&Op
 .Ss \&Os
+Document operating system version.  This is the mandatory third macro of
+any
+.Nm
+file.  Its calling syntax is as follows:
+.Pp
+.D1 \. Ns Sx \&Os Op Cm system
+.Pp
+The optional
+.Cm system
+parameter specifies the relevant operating system or environment.  Left
+unspecified, it defaults to the local operating system version.  This is
+the suggested form.
+.Pp
+Examples:
+.Bd -literal -offset indent
+\&.Os
+\&.Os KTH/CSC/TCS
+\&.Os BSD 4.3
+.Ed
+.Pp
+See also
+.Sx \&Dd
+and
+.Sx \&Dt .
+.
 .Ss \&Ot
 .Ss \&Ot
+Unknown usage.
+.Pp
+.Em Remarks :
+this macro has been deprecated.
+.
 .Ss \&Ox
 Format the OpenBSD version provided as an argument, or a default value
 if no argument is provided.
 .Ss \&Ox
 Format the OpenBSD version provided as an argument, or a default value
 if no argument is provided.
@@ -1095,6 +1527,7 @@ See also
 .Sx \&At ,
 .Sx \&Bsx ,
 .Sx \&Bx ,
 .Sx \&At ,
 .Sx \&Bsx ,
 .Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 and
 .Sx \&Fx ,
 .Sx \&Nx ,
 and
@@ -1119,7 +1552,7 @@ block.  Does not have any tail arguments.
 .Ss \&Rs
 Begins a bibliographic
 .Pq Dq reference
 .Ss \&Rs
 Begins a bibliographic
 .Pq Dq reference
-block.  Does not have any head arguments.  The block macro and may only
+block.  Does not have any head arguments.  The block macro may only
 contain
 .Sx \&%A ,
 .Sx \&%B ,
 contain
 .Sx \&%A ,
 .Sx \&%B ,
@@ -1177,8 +1610,9 @@ Examples:
 .Pp
 See also
 .Sx \&At ,
 .Pp
 See also
 .Sx \&At ,
-.Sx \&Bx ,
 .Sx \&Bsx ,
 .Sx \&Bsx ,
+.Sx \&Bx ,
+.Sx \&Dx ,
 .Sx \&Fx ,
 .Sx \&Nx ,
 and
 .Sx \&Fx ,
 .Sx \&Nx ,
 and