We will not try to describe the language precisely here;
interested readers may refer to the appendix for more details.
Throughout this section, we will write expressions
as they are handed to the typesetting program (hereinafter called
except that we won't show the delimiters
that the user types to mark the beginning and end of the expression.
is described at the end of this section.
As we said, typing x=y+z+1 should produce $x=y+z+1$,
Variables are made italic, operators and digits become roman,
and normal spacings between letters and operators are altered slightly
to give a more pleasing appearance.
Spaces and new lines in the input are used by
to separate pieces of the input;
they are not used to create space in the output.
Free-form input is easier to type initially;
subsequent editing is also easier,
for an expression may be typed as many short lines.
Extra white space can be forced into the output by several
characters of various sizes.
A tilde ``\|~\|'' gives a space equal
to the normal word spacing in text;
a circumflex gives half this much,
and a tab charcter spaces to the next tab stop.
also serve to delimit pieces of the input.
f(t) = 2 pi int sin ( omega t )dt
f(t) = 2 pi int sin ( omega t )dt
are special, and potentially worth special treatment.
looks up each such string of characters
in a table, and if appropriate gives it a translation.
become their greek equivalents,
becomes the integral sign
(which must be moved down and enlarged so it looks ``right''),
is made roman, following conventional mathematical practice.
Parentheses, digits and operators are automatically made roman
Fractions are specified with the keyword
Similarly, subscripts and superscripts are introduced by the keywords
x sup 2 + y sup 2 = z sup 2
x sup 2 + y sup 2 = z sup 2
The spaces after the 2's are necessary to mark the end of
has to be marked off by spaces or
some equivalent delimiter.
The return to the proper baseline is automatic.
Multiple levels of subscripts or superscripts
``x\|\|sup\|\|y\|\|sup\|\|z'' is
is recognized as a special case,
$x sub i sup 2$ instead of ${x sub i} sup 2$.
More complicated expressions can now be formed with these
{partial sup 2 f} over {partial x sup 2} =
x sup 2 over a sup 2 + y sup 2 over b sup 2
{partial sup 2 f} over {partial x sup 2} =
x sup 2 over a sup 2 + y sup 2 over b sup 2
Braces {} are used to group objects together;
in this case they indicate unambiguously what goes over what
on the left-hand side of the expression.
The language defines the precedence of
to be higher than that of
no braces are needed to get the correct association on the right side.
Braces can always be used when in doubt
The braces convention is an example of the power
of using a recursive grammar
It is part of the language that if a construct can appear
can also occur in that context.
operator for making square roots of the appropriate size:
``sqrt a+b'' produces $sqrt a+b$,
x = {-b +- sqrt{b sup 2 -4ac}} over 2a
x={-b +- sqrt{b sup 2 -4ac}} over 2a
Since large radicals look poor on our typesetter,
is not useful for tall expressions.