=================================================================== RCS file: /cvs/mandoc/eqn.7,v retrieving revision 1.16 retrieving revision 1.30 diff -u -p -r1.16 -r1.30 --- mandoc/eqn.7 2011/07/22 14:26:32 1.16 +++ mandoc/eqn.7 2014/10/10 08:44:24 1.30 @@ -1,4 +1,4 @@ -.\" $Id: eqn.7,v 1.16 2011/07/22 14:26:32 kristaps Exp $ +.\" $Id: eqn.7,v 1.30 2014/10/10 08:44:24 kristaps Exp $ .\" .\" Copyright (c) 2011 Kristaps Dzonsons .\" @@ -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: October 10 2014 $ .Dt EQN 7 .Os .Sh NAME @@ -23,18 +23,23 @@ .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,33 +69,38 @@ case-sensitive literals in the input: .Bd -literal -offset indent eqn : box | eqn box box : text - | "{" eqn "}" - | "define" text 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 + | \*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, @@ -106,7 +116,7 @@ partial (partial differential), inf (infinity), >> (mu 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 @@ -121,7 +131,8 @@ This allows for arbitrary enclosure of terms (not just .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 @@ -141,9 +152,32 @@ 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: +.Pp +.D1 gfont Ar font +.Pp +In mandoc, this value is discarded. +.It Cm gsize +Set the default size of subsequent output. +Its syntax is as follows: +.Pp +.D1 gsize Ar size +.Pp +The +.Ar size +value should be an integer. .It Cm set Set an equation mode. -Both arguments are thrown away. +In mandoc, both arguments are thrown away. Its syntax is as follows: .Pp .D1 set Ar key val @@ -153,6 +187,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: @@ -165,6 +200,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 @@ -179,6 +215,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 , @@ -219,4 +275,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 .