version 1.33, 2015/01/29 00:33:57 |
version 1.39, 2020/01/10 11:55:04 |
Line 44 specification (see |
|
Line 44 specification (see |
|
.Sx SEE ALSO |
.Sx SEE ALSO |
for references). |
for references). |
.Pp |
.Pp |
Equations within |
An equation starts with an input line containing exactly the characters |
.Xr mdoc 7 |
.Sq \&.EQ , |
or |
may contain multiple input lines, and ends with an input line |
.Xr man 7 |
containing exactly the characters |
documents are enclosed by the standalone |
.Sq \&.EN . |
.Sq \&.EQ |
Equivalently, an equation can be given in the middle of a single |
and |
text input line by surrounding it with the equation delimiters |
.Sq \&.EN |
defined with the |
tags. |
.Cm delim |
Equations are multi-line blocks consisting of formulas and control |
statement. |
statements. |
|
.Sh EQUATION STRUCTURE |
|
Each equation is bracketed by |
|
.Sq \&.EQ |
|
and |
|
.Sq \&.EN |
|
strings. |
|
.Em Note : |
|
these are not the same as |
|
.Xr roff 7 |
|
macros, and may only be invoked as |
|
.Sq \&.EQ . |
|
.Pp |
.Pp |
The equation grammar is as follows, where quoted strings are |
The equation grammar is as follows, where quoted strings are |
case-sensitive literals in the input: |
case-sensitive literals in the input: |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
eqn : box | eqn box |
eqn : box | eqn box |
box : text |
box : text |
| \*q{\*q eqn \*q}\*q |
| \(dq{\(dq eqn \(dq}\(dq |
| \*qdefine\*q text text |
| \(dqdefine\(dq text text |
| \*qndefine\*q text text |
| \(dqndefine\(dq text text |
| \*qtdefine\*q text text |
| \(dqtdefine\(dq text text |
| \*qgfont\*q text |
| \(dqgfont\(dq text |
| \*qgsize\*q text |
| \(dqgsize\(dq text |
| \*qset\*q text text |
| \(dqset\(dq text text |
| \*qundef\*q text |
| \(dqundef\(dq text |
| \*qsqrt\*q box |
| \(dqsqrt\(dq box |
| box pos box |
| box pos box |
| box mark |
| box mark |
| \*qmatrix\*q \*q{\*q [col \*q{\*q list \*q}\*q ]* |
| \(dqmatrix\(dq \(dq{\(dq [col \(dq{\(dq list \(dq}\(dq]* \(dq}\(dq |
| pile \*q{\*q list \*q}\*q |
| pile \(dq{\(dq list \(dq}\(dq |
| font box |
| font box |
| \*qsize\*q text box |
| \(dqsize\(dq text box |
| \*qleft\*q text eqn [\*qright\*q text] |
| \(dqleft\(dq text eqn [\(dqright\(dq text] |
col : \*qlcol\*q | \*qrcol\*q | \*qccol\*q | \*qcol\*q |
col : \(dqlcol\(dq | \(dqrcol\(dq | \(dqccol\(dq | \(dqcol\(dq |
text : [^space\e\*q]+ | \e\*q.*\e\*q |
text : [^space\e\(dq]+ | \e\(dq.*\e\(dq |
pile : \*qlpile\*q | \*qcpile\*q | \*qrpile\*q | \*qpile\*q |
pile : \(dqlpile\(dq | \(dqcpile\(dq | \(dqrpile\(dq | \(dqpile\(dq |
pos : \*qover\*q | \*qsup\*q | \*qsub\*q | \*qto\*q | \*qfrom\*q |
pos : \(dqover\(dq | \(dqsup\(dq | \(dqsub\(dq | \(dqto\(dq | \(dqfrom\(dq |
mark : \*qdot\*q | \*qdotdot\*q | \*qhat\*q | \*qtilde\*q | \*qvec\*q |
mark : \(dqdot\(dq | \(dqdotdot\(dq | \(dqhat\(dq | \(dqtilde\(dq | \(dqvec\(dq |
| \*qdyad\*q | \*qbar\*q | \*qunder\*q |
| \(dqdyad\(dq | \(dqbar\(dq | \(dqunder\(dq |
font : \*qroman\*q | \*qitalic\*q | \*qbold\*q | \*qfat\*q |
font : \(dqroman\(dq | \(dqitalic\(dq | \(dqbold\(dq | \(dqfat\(dq |
list : eqn |
list : eqn |
| list \*qabove\*q eqn |
| list \(dqabove\(dq eqn |
space : [\e^~ \et] |
space : [\e^~ \et] |
.Ed |
.Ed |
.Pp |
.Pp |
Line 125 int (integral), sum (summation), grad (gradient), del |
|
Line 113 int (integral), sum (summation), grad (gradient), del |
|
differential), times (multiply), cdot (center-dot), nothing (zero-width |
differential), times (multiply), cdot (center-dot), nothing (zero-width |
space), approx (approximately equals), prime (prime), half (one-half), |
space), approx (approximately equals), prime (prime), half (one-half), |
partial (partial differential), inf (infinity), >> (much greater), << |
partial (partial differential), inf (infinity), >> (much greater), << |
(much less), \-> (left arrow), <\- (right arrow), +\- (plus-minus), != |
(much less), <\- (left arrow), \-> (right arrow), +\- (plus-minus), != |
(not equal), == (equivalence), <= (less-than-equal), and >= |
(not equal), == (equivalence), <= (less-than-equal), and >= |
(more-than-equal). |
(more-than-equal). |
The character escape sequences documented in |
The character escape sequences documented in |
Line 146 is used as the delimiter for the value |
|
Line 134 is used as the delimiter for the value |
|
.Ar val . |
.Ar val . |
This allows for arbitrary enclosure of terms (not just quotes), such as |
This allows for arbitrary enclosure of terms (not just quotes), such as |
.Pp |
.Pp |
.D1 Cm define Ar foo 'bar baz' |
.D1 Cm define Ar foo \(aqbar baz\(aq |
.D1 Cm define Ar foo cbar bazc |
.D1 Cm define Ar foo cbar bazc |
.Pp |
.Pp |
It is an error to have an empty |
It is an error to have an empty |
|
|
Definitions can create arbitrary strings, for example, the following is |
Definitions can create arbitrary strings, for example, the following is |
a legal construction. |
a legal construction. |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
define foo 'define' |
define foo \(aqdefine\(aq |
foo bar 'baz' |
foo bar \(aqbaz\(aq |
.Ed |
.Ed |
.Pp |
.Pp |
Self-referencing definitions will raise an error. |
Self-referencing definitions will raise an error. |
Line 178 statement is a synonym for |
|
Line 166 statement is a synonym for |
|
while |
while |
.Cm tdefine |
.Cm tdefine |
is discarded. |
is discarded. |
|
.It Cm delim |
|
This statement takes a string argument consisting of two bytes, |
|
to be used as the opening and closing delimiters for equations |
|
in the middle of text input lines. |
|
Conventionally, the dollar sign is used for both delimiters, |
|
as follows: |
|
.Bd -literal -offset indent |
|
\&.EQ |
|
delim $$ |
|
\&.EN |
|
An equation like $sin pi = 0$ can now be entered |
|
in the middle of a text input line. |
|
.Ed |
|
.Pp |
|
The special statement |
|
.Cm delim off |
|
temporarily disables previously declared delimiters and |
|
.Cm delim on |
|
reenables them. |
.It Cm gfont |
.It Cm gfont |
Set the default font of subsequent output. |
Set the default font of subsequent output. |
Its syntax is as follows: |
Its syntax is as follows: |
Line 434 implementation (including GNU troff). |
|
Line 441 implementation (including GNU troff). |
|
.Bl -dash -compact |
.Bl -dash -compact |
.It |
.It |
The text string |
The text string |
.Sq \e\*q |
.Sq \e\(dq |
is interpreted as a literal quote in troff. |
is interpreted as a literal quote in troff. |
In mandoc, this is interpreted as a comment. |
In mandoc, this is interpreted as a comment. |
.It |
.It |
Line 470 commands are also ignored. |
|
Line 477 commands are also ignored. |
|
.%T System for Typesetting Mathematics |
.%T System for Typesetting Mathematics |
.%J Communications of the ACM |
.%J Communications of the ACM |
.%V 18 |
.%V 18 |
.%P 151\(en157 |
.%P pp. 151\(en157 |
.%D March, 1975 |
.%D March, 1975 |
.Re |
.Re |
.Rs |
.Rs |