=================================================================== RCS file: /cvs/mandoc/mandoc_char.7,v retrieving revision 1.34 retrieving revision 1.49 diff -u -p -r1.34 -r1.49 --- mandoc/mandoc_char.7 2010/03/30 19:20:33 1.34 +++ mandoc/mandoc_char.7 2011/08/30 13:14:01 1.49 @@ -1,6 +1,6 @@ -.\" $Id: mandoc_char.7,v 1.34 2010/03/30 19:20:33 kristaps Exp $ +.\" $Id: mandoc_char.7,v 1.49 2011/08/30 13:14:01 kristaps Exp $ .\" -.\" Copyright (c) 2009 Kristaps Dzonsons +.\" Copyright (c) 2009 Kristaps Dzonsons .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -14,16 +14,12 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: March 30 2010 $ +.Dd $Mdocdate: August 30 2011 $ .Dt MANDOC_CHAR 7 .Os -. -. .Sh NAME .Nm mandoc_char .Nd mandoc special characters -. -. .Sh DESCRIPTION This page documents the special characters and predefined strings accepted by .Xr mandoc 1 @@ -32,7 +28,6 @@ to format and .Xr man 7 documents. -. .Pp Both .Xr mdoc 7 @@ -70,20 +65,16 @@ and .Sq \e*X as .Sq \e*[X] . -. .Pp Note that each output mode will have a different rendering of the characters. It's guaranteed that each input symbol will correspond to a (more or less) meaningful output rendering, regardless the mode. -. -. .Sh SPECIAL CHARACTERS These are the preferred input symbols for producing special characters. -. .Pp Spacing: -.Bl -column -compact -offset indent "Input" "Description" +.Bl -column "Input" "Description" -offset indent -compact .It Em Input Ta Em Description .It \e~ Ta non-breaking, non-collapsing space .It \e Ta breaking, non-collapsing n-width space @@ -94,10 +85,9 @@ Spacing: .It \e0 Ta breaking, non-collapsing digit-width space .It \ec Ta removes any trailing space (if applicable) .El -. .Pp Lines: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(ba Ta \(ba Ta bar .It \e(br Ta \(br Ta box rule @@ -107,10 +97,9 @@ Lines: .It \e(sl Ta \(sl Ta forward slash .It \e(rs Ta \(rs Ta backward slash .El -. .Pp Text markers: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(ci Ta \(ci Ta circle .It \e(bu Ta \(bu Ta bullet @@ -127,19 +116,17 @@ Text markers: .It \e(CR Ta \(CR Ta carriage return .It \e(OK Ta \(OK Ta check mark .El -. .Pp Legal symbols: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(co Ta \(co Ta copyright .It \e(rg Ta \(rg Ta registered .It \e(tm Ta \(tm Ta trademarked .El -. .Pp Punctuation: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(em Ta \(em Ta em-dash .It \e(en Ta \(en Ta en-dash @@ -149,10 +136,9 @@ Punctuation: .It \e(r! Ta \(r! Ta upside-down exclamation .It \e(r? Ta \(r? Ta upside-down question .El -. .Pp Quotes: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(Bq Ta \(Bq Ta right low double-quote .It \e(bq Ta \(bq Ta right low single-quote @@ -167,10 +153,9 @@ Quotes: .It \e(fo Ta \(fo Ta left single guillemet .It \e(fc Ta \(fc Ta right single guillemet .El -. .Pp Brackets: -.Bl -column -compact -offset indent "x[bracketrightbp]" Rendered Description +.Bl -column "xxbracketrightbpx" Rendered Description -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(lB Ta \(lB Ta left bracket .It \e(rB Ta \(rB Ta right bracket @@ -207,10 +192,9 @@ Brackets: .It \e[parenrightbp] Ta \[parenrightbp] Ta bottom-right hooked parenthesis .It \e[parenrightex] Ta \[parenrightex] Ta right hooked parenthesis extension .El -. .Pp Arrows: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(<- Ta \(<- Ta left arrow .It \e(-> Ta \(-> Ta right arrow @@ -225,10 +209,9 @@ Arrows: .It \e(dA Ta \(dA Ta down double-arrow .It \e(vA Ta \(vA Ta up-down double-arrow .El -. .Pp Logical: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(AN Ta \(AN Ta logical and .It \e(OR Ta \(OR Ta logical or @@ -241,10 +224,9 @@ Logical: .It \e(3d Ta \(3d Ta therefore .It \e(or Ta \(or Ta bitwise or .El -. .Pp Mathematical: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "xxcoproductxx" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(pl Ta \(pl Ta plus .It \e(mi Ta \(mi Ta minus @@ -306,11 +288,13 @@ Mathematical: .It \e(Re Ta \(Re Ta real .It \e(pd Ta \(pd Ta partial differential .It \e(-h Ta \(-h Ta Planck constant over 2\(*p +.It \e[12] Ta \[12] Ta one-half +.It \e[14] Ta \[14] Ta one-fourth +.It \e[34] Ta \[34] Ta three-fourths .El -. .Pp Ligatures: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(ff Ta \(ff Ta ff ligature .It \e(fi Ta \(fi Ta fi ligature @@ -325,10 +309,9 @@ Ligatures: .It \e(IJ Ta \(IJ Ta IJ ligature .It \e(ij Ta \(ij Ta ij ligature .El -. .Pp Accents: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(a" Ta \(a" Ta Hungarian umlaut .It \e(a- Ta \(a- Ta macron @@ -348,10 +331,9 @@ Accents: .It \e(ha Ta \(ha Ta hat (text) .It \e(ti Ta \(ti Ta tilde (text) .El -. .Pp Accented letters: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e('A Ta \('A Ta acute A .It \e('E Ta \('E Ta acute E @@ -409,10 +391,9 @@ Accented letters: .It \e(oA Ta \(oA Ta ring A .It \e(oa Ta \(oa Ta ring a .El -. .Pp Special letters: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(-D Ta \(-D Ta Eth .It \e(Sd Ta \(Sd Ta eth @@ -421,10 +402,9 @@ Special letters: .It \e(.i Ta \(.i Ta dotless i .It \e(.j Ta \(.j Ta dotless j .El -. .Pp Currency: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(Do Ta \(Do Ta dollar .It \e(ct Ta \(ct Ta cent @@ -435,10 +415,9 @@ Currency: .It \e(Cs Ta \(Cs Ta Scandinavian .It \e(Fn Ta \(Fn Ta florin .El -. .Pp Units: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(de Ta \(de Ta degree .It \e(%0 Ta \(%0 Ta per-thousand @@ -446,10 +425,9 @@ Units: .It \e(sd Ta \(sd Ta second .It \e(mc Ta \(mc Ta micro .El -. .Pp Greek letters: -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +.Bl -column "Input" "Rendered" "Description" -offset indent -compact .It Em Input Ta Em Rendered Ta Em Description .It \e(*A Ta \(*A Ta Alpha .It \e(*B Ta \(*B Ta Beta @@ -505,14 +483,15 @@ Greek letters: .It \e(+e Ta \(+e Ta epsilon variant .It \e(ts Ta \(ts Ta sigma terminal .El -. -. .Sh PREDEFINED STRINGS -These are not recommended for use, as they differ across -implementations: -. -.Pp -.Bl -column -compact -offset indent "Input" "Rendered" "Description" +Predefined strings are inherited from the macro packages of historical +troff implementations. +They are +.Em not recommended +for use, as they differ across implementations. +Manuals using these predefined strings are almost certainly not +portable. +.Bl -column "Input" "Rendered" "Description" -offset indent .It Em Input Ta Em Rendered Ta Em Description .It \e*(Ba Ta \*(Ba Ta vertical bar .It \e*(Ne Ta \*(Ne Ta not equal @@ -540,46 +519,90 @@ implementations: .It \e*(>= Ta \*(>= Ta greater-than-equal .It \e*(aa Ta \*(aa Ta acute .It \e*(ga Ta \*(ga Ta grave +.It \e*(Px Ta \*(Px Ta POSIX standard name +.It \e*(Ai Ta \*(Ai Ta ANSI standard name .El -. -. -.Sh COMPATIBILITY -This section documents compatibility of -.Nm -with older or existing versions of -.Xr groff 1 . -. +.Sh UNICODE CHARACTERS +The escape sequence .Pp -The following render differently in -.Fl T Ns Ar ascii -output mode: -.Bd -ragged -offset indent -\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], -\e[coproduct], \e(gr, \e(-h, \e(a. -.Ed -. +.Dl \e[uXXXX] .Pp -The following render differently in -.Fl T Ns Ar html -output mode: -.Bd -ragged -offset indent -\e(~=, \e(nb, \e(nc -.Ed -. +is interpreted as a Unicode codepoint. +The codepoint must be in the range above U+0080 and less than U+10FFFF. +For compatibility, points must be zero-padded to four characters; if +greater than four characters, no zero padding is allowed. +Unicode surrogates are not allowed. +.\" .Pp +.\" Unicode glyphs attenuate to the +.\" .Sq \&? +.\" character if invalid or not rendered by current output media. +.Sh NUMBERED CHARACTERS +For backward compatibility with existing manuals, +.Xr mandoc 1 +also supports the .Pp -Finally, the following have been omitted by being poorly documented or -having no known representation: -.Bd -ragged -offset indent -\e[radicalex], \e[sqrtex], \e(ru -.Ed -. -. +.Dl \eN\(aq Ns Ar number Ns \(aq +.Pp +escape sequence, inserting the character +.Ar number +from the current character set into the output. +Of course, this is inherently non-portable and is already marked +as deprecated in the Heirloom roff manual. +For example, do not use \eN'34', use \e(dq, or even the plain +.Sq \(dq +character where possible. +.Sh COMPATIBILITY +This section documents compatibility between mandoc and other other +troff implementations, at this time limited to GNU troff +.Pq Qq groff . +.Pp +.Bl -dash -compact +.It +The \eN\(aq\(aq escape sequence is limited to printable characters; in +groff, it accepts arbitrary character numbers. +.It +In +.Fl T Ns Cm ascii , +the +\e(ss, \e(nm, \e(nb, \e(nc, \e(ib, \e(ip, \e(pp, \e[sum], \e[product], +\e[coproduct], \e(gr, \e(\-h, and \e(a. special characters render +differently between mandoc and groff. +.It +In +.Fl T Ns Cm html +and +.Fl T Ns Cm xhtml , +the \e(~=, \e(nb, and \e(nc special characters render differently +between mandoc and groff. +.It +The +.Fl T Ns Cm ps +and +.Fl T Ns Cm pdf +modes format like +.Fl T Ns Cm ascii +instead of rendering glyphs as in groff. +.It +The \e[radicalex], \e[sqrtex], and \e(ru special characters have been omitted +from mandoc either because they are poorly documented or they have no +known representation. +.El .Sh SEE ALSO .Xr mandoc 1 -. -. .Sh AUTHORS The .Nm manual page was written by -.An Kristaps Dzonsons Aq kristaps@kth.se . +.An Kristaps Dzonsons , +.Mt kristaps@bsd.lv . +.Sh CAVEATS +The +.Sq \e*(Ba +escape mimics the behaviour of the +.Sq \&| +character in +.Xr mdoc 7 ; +thus, if you wish to render a vertical bar with no side effects, use +the +.Sq \e(ba +escape.