Eqn is another popular formatter for math formulas. It is
designed for use with the TROFF text formatter, and comes standard
with many versions of Unix. The d E (calc-eqn-language
)
command selects eqn notation.
The eqn language's main idiosyncrasy is that whitespace plays
a significant part in the parsing of the language. For example,
`sqrt x+1 + y' treats `x+1' as the argument of the
sqrt
operator. Eqn also understands more conventional
grouping using curly braces: `sqrt{x+1} + y'. Braces are
required only when the argument contains spaces.
In Calc's eqn mode, however, curly braces are required to
delimit arguments of operators like sqrt
. The first of the
above examples would treat only the `x' as the argument of
sqrt
, and in fact `sin x+1' would be interpreted as
`sin * x + 1', because sin
is not a special operator
in the eqn language. If you always surround the argument
with curly braces, Calc will never misunderstand.
Calc also understands parentheses as grouping characters. Another
peculiarity of eqn's syntax makes it advisable to separate
words with spaces from any surrounding characters that aren't curly
braces, so Calc writes `sin ( x + y )' in eqn mode.
(The spaces around sin
are important to make eqn
recognize that sin
should be typeset in a roman font, and
the spaces around x
and y
are a good idea just in
case the eqn document has defined special meanings for these
names, too.)
Powers and subscripts are written with the sub
and sup
operators, respectively. Note that the caret symbol `^' is
treated the same as a space in eqn mode, as is the `~'
symbol (these are used to introduce spaces of various widths into
the typeset output of eqn).
As in TeX mode, Calc's formatter omits parentheses around the
arguments of functions like ln
and sin
if they are
"simple-looking"; in this case Calc surrounds the argument with
braces, separated by a `~' from the function name: `sin~{x}'.
Font change codes (like `roman x') and positioning codes
(like `~' and `down n x') are ignored by the
eqn reader. Also ignored are the words left
, right
,
mark
, and lineup
. Quotation marks in eqn mode input
are treated the same as curly braces: `sqrt "1+x"' is equivalent to
`sqrt {1+x}'; this is only an approximation to the true meaning
of quotes in eqn, but it is good enough for most uses.
Accent codes (`x dot') are handled by treating them as
function calls (`dot(x)') internally. See section TeX Language Mode for a table of these accent functions. The prime
accent
is treated specially if it occurs on a variable or function name:
`f prime prime ( x prime )' is stored internally as
`f''(x')'. For example, taking the derivative of `f(2 x)'
with a d x will produce `2 f'(2 x)', which eqn mode
will display as `2 f prime ( 2 x )'.
Assignments are written with the `<-' (left-arrow) symbol,
and evalto
operators are written with `->' or
`evalto ... ->' (see section TeX Language Mode, for a discussion
of this). The regular Calc symbols `:=' and `=>' are also
recognized for these operators during reading.
Vectors in eqn mode use regular Calc square brackets, but
matrices are formatted as `matrix { ccol { a above b } ... }'.
The words lcol
and rcol
are recognized as synonyms
for ccol
during input, and are generated instead of ccol
if the matrix justification mode so specifies.