]> git.cameronkatri.com Git - mandoc.git/blobdiff - eqn.7
Various improvements related to .Ex and .Rv:
[mandoc.git] / eqn.7
diff --git a/eqn.7 b/eqn.7
index 595d040d170725a19f117dcd2d59f8c1a2b9b0c1..dcbad41cc15bd865c1b9d356ba327a839dde1b4b 100644 (file)
--- a/eqn.7
+++ b/eqn.7
@@ -1,4 +1,4 @@
-.\"    $Id: eqn.7,v 1.18 2011/07/22 14:59:02 kristaps Exp $
+.\"    $Id: eqn.7,v 1.29 2013/07/13 19:41:16 schwarze Exp $
 .\"
 .\" Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
 .\"
@@ -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.
 .\"
-.Dd $Mdocdate: July 22 2011 $
+.Dd $Mdocdate: July 13 2013 $
 .Dt EQN 7
 .Os
 .Sh NAME
 .Sh DESCRIPTION
 The
 .Nm eqn
-language is a equation-formatting language.
+language is an equation-formatting language.
 It is used within
 .Xr mdoc 7
 and
 .Xr man 7
 .Ux
 manual pages.
-This manual describes the subset of the
+It describes the
+.Em structure
+of an equation, not its mathematical meaning.
+This manual describes the
 .Nm
 language accepted by the
 .Xr mandoc 1
-utility.
+utility, which corresponds to the Second Edition eqn specification (see
+.Sx SEE ALSO
+for references).
 .Pp
 Equations within
 .Xr mdoc 7
@@ -64,35 +69,39 @@ case-sensitive literals in the input:
 .Bd -literal -offset indent
 eqn     : box | eqn box
 box     : text
-        | "{" eqn "}"
-        | "define" text text
-        | "gfont" text
-        | "gsize" text
-        | "set" text text
-        | "undef" text
+        | \*q{\*q eqn \*q}\*q
+        | \*qdefine\*q text text
+        | \*qndefine\*q text text
+        | \*qtdefine\*q text text
+        | \*qgfont\*q text
+        | \*qgsize\*q text
+        | \*qset\*q text text
+        | \*qundef\*q text
         | box pos box
         | box mark
-        | pile "{" list "}"
+        | \*qmatrix\*q \*q{\*q [col \*q{\*q list \*q}\*q ]*
+        | pile \*q{\*q list \*q}\*q
         | font box
-        | "size" text box
-        | "left" text eqn ["right" text]
-text    : TEXT
-pile    : "lpile" | "cpile" | "rpile"
-pos     : "over" | "sup" | "sub" | "to" | "from"
-mark   : "dot" | "dotdot" | "hat" | "tilde" | "vec"
-        | "dyad" | "bar" | "under"
-font    : "roman" | "italic" | "bold"
-list    : eqn 
-        | list "above" eqn
+        | \*qsize\*q text box
+        | \*qleft\*q text eqn [\*qright\*q text]
+col     : \*qlcol\*q | \*qrcol\*q | \*qccol\*q | \*qcol\*q
+text    : [^space\e\*q]+ | \e\*q.*\e\*q
+pile    : \*qlpile\*q | \*qcpile\*q | \*qrpile\*q | \*qpile\*q
+pos     : \*qover\*q | \*qsup\*q | \*qsub\*q | \*qto\*q | \*qfrom\*q
+mark   : \*qdot\*q | \*qdotdot\*q | \*qhat\*q | \*qtilde\*q | \*qvec\*q
+        | \*qdyad\*q | \*qbar\*q | \*qunder\*q
+font    : \*qroman\*q | \*qitalic\*q | \*qbold\*q | \*qfat\*q
+list    : eqn
+        | list \*qabove\*q eqn
+space   : [\e^~ \et]
 .Ed
 .Pp
-Data in TEXT form is a non-empty sequence of non-space characters or a
-non-empty quoted string.
-Unless within a quoted string, white-space (and enclosing literal quote
-pairs) is thrown away.
-Quoted strings are not scanned for replacement definitions.
+White-space consists of the space, tab, circumflex, and tilde
+characters.
+If within a quoted string, these space characters are retained.
+Quoted strings are also not scanned for replacement definitions.
 .Pp
-The following TEXT terms are translated into a rendered glyph, if
+The following text terms are translated into a rendered glyph, if
 available: alpha, beta, chi, delta, epsilon, eta, gamma, iota, kappa,
 lambda, mu, nu, omega, omicron, phi, pi, psi, rho, sigma, tau, theta,
 upsilon, xi, zeta, DELTA, GAMMA, LAMBDA, OMEGA, PHI, PI, PSI, SIGMA,
@@ -108,7 +117,7 @@ partial (partial differential), inf (infinity), >> (much greater), <<
 The following control statements are available:
 .Bl -tag -width Ds
 .It Cm define
-Replace all occurances of a key with a value.
+Replace all occurrences of a key with a value.
 Its syntax is as follows:
 .Pp
 .D1 define Ar key cvalc
@@ -123,7 +132,8 @@ This allows for arbitrary enclosure of terms (not just quotes), such as
 .D1 define Ar foo cbar bazc
 .Pp
 It is an error to have an empty
-.Ar key or
+.Ar key
+or
 .Ar val .
 Note that a quoted
 .Ar key
@@ -143,6 +153,13 @@ foo bar 'baz'
 .Ed
 .Pp
 Self-referencing definitions will raise an error.
+The
+.Cm ndefine
+statement is a synonym for
+.Cm define ,
+while
+.Cm tdefine
+is discarded.
 .It Cm gfont
 Set the default font of subsequent output.
 Its syntax is as follows:
@@ -171,6 +188,7 @@ The
 and
 .Ar val
 are not expanded for replacements.
+This statement is a GNU extension.
 .It Cm undef
 Unset a previously-defined key.
 Its syntax is as follows:
@@ -183,6 +201,7 @@ is discarded.
 The
 .Ar key
 is not expanded for replacements.
+This statement is a GNU extension.
 .El
 .Sh COMPATIBILITY
 This section documents the compatibility of mandoc
@@ -197,6 +216,26 @@ The text string
 .Sq \e\*q
 is interpreted as a literal quote in troff.
 In mandoc, this is interpreted as a comment.
+.It
+In troff, The circumflex and tilde white-space symbols map to
+fixed-width spaces.
+In mandoc, these characters are synonyms for the space character.
+.It
+The troff implementation of
+.Nm
+allows for equation alignment with the
+.Cm mark
+and
+.Cm lineup
+tokens.
+mandoc discards these tokens.
+The
+.Cm back Ar n ,
+.Cm fwd Ar n ,
+.Cm up Ar n ,
+and
+.Cm down Ar n
+commands are also ignored.
 .El
 .Sh SEE ALSO
 .Xr mandoc 1 ,
@@ -237,4 +276,4 @@ was added in 2011.
 This
 .Nm
 reference was written by
-.An Kristaps Dzonsons Aq kristaps@bsd.lv .
+.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .