MathML Demo: <mo> - operator, fence, separator, or accent
NOTES:
Alternate stylesheets are available from: "View -> Use
StyleSheet -> TeX | Mathematica"
Click on a MathML fragment to view its WYSIWYG source.
In the examples below, the text won't be allowed to decrease pass the
scriptminsize or your browser's minimum allowable font size -- this can be
set with, e.g, user_pref("font.minimum-size.x-western", 10). To see the
effect of the gradual decrease induced by changes in script levels more clearly,
you may have to increase your default font size in the menu:
"Edit -> Preferences -> Appearance -> Fonts".
Here is how the alphabet looks like at scriptminsize: a, b, c ... x, y, z
Here is how greek letters look like at scriptminsize: α, β, γ ...,
ψ, ω, ϑ, ϒ, ϖ
Here is how numbers look like at scriptminsize: 0, 1, 2, ..., 10, 11, 12, ...
You can use "View -> Text Zoom" in the usual way to zoom the MathML text along with the other text.
The following table contains instances of all operators found on the SWP
Binary Operations and Binary Relations panels. The symbols occur in the
context of a simple expression. In general, the lspace and rspace around the
relation should be greater than that around the operation. Operator and
relations center vertically on the math axis.
Arrows
The following table contains instances of all arrows found on the SWP Arrows
panel. The symbols occur in the context of a simple expression. In general,
the lspace and rspace around arrows should be similar to the spacing around
relations.
There is an issue with the markup of "long" LaTeX arrows in MathML. There are
entities from these arrows, ⟵ ⟸ ⟶ etc. but they
have no standard unicodes. They can be viewed as stretched versions of short
arrows. \longleftarrow can be scripted as <mo>⟵</mo> or
as <mo stretchy="true" minsize="1.8">←</mo>.
Negated Relations
The following table contains instances of all negated relations found on the
SWP panel. The symbols occur in the context of a simple expression. In
general, the lspace and rspace around negated relations should be similar to
the spacing around relations.
Fences
LaTeX fences that begin with \left and \right are stretchy. They grow
vertically to the height and depth of the enclosed math run. This growth is
continuous and symmetric. Here are examples of the standard LaTeX fences
and
.
Here are some examples with a bit more stretching
and
Generally, it is safest to script all attributes that configure an <mo>
as a fence (fence, stretchy,
symmetric, lspace, rspace). This is especially
important for vertical arrows used as fences. The default attributes given in
the MathML Operator Dictionary don't configure vertical arrows as fences.
In LaTeX, the lspace on a left side fence delimiter and the rspace on a right
side fence delimiter is not 0. Here's an example to illustrate spacing around
fences
In LaTeX, all fencing symbols are symmetric - they have equal extent above and
below the math axis of the run of math in which they occur directly.
Fences that enclose fractions illustrate the symmetry issue as seen
below.
Given the symmetric restriction on fences, it is very difficult for LaTeX to
produce the product of a fenced row vector and a fenced column vector as shown
below.
We
want the row vector to typeset at the same level as the top row of the column
vector, but this is difficult to achieve.
This problem can be solved using aligned arrays, as
followsHowever,
all reasonable attempts to fence the column vector will fail because LaTeX
fences are symmetric.
In MathML, operators that are used for fencing are never symmetric and are
always stretchy by default. (i.e., as documented in the suggested Operator
Dictionary). Hence <mo symmetric="true"> must be scripted if the intent
is to emulated LaTeX fence behavior.
The commands \big, \Big, \bigg and \Bigg produce a discreet set of
increasingly taller fences,
. Here's the same expression in a
displayThe
size ratio is 3.0 : 2.4 : 1.8 : 1.2. Fixed sized fences are useful with
nested fences as in the following
example
LaTeX fences that are built into fractions (\binom, etc.) are not stretchy,
but they are taller in displays. Emulating this behavior in MathML would
require a context sensitive transaltion. Further, non-stretchy fences aren't
usually desirable. Hence we script binomial fences as stretchy in MathML.
Some examples of inline fractions
with built in fences. Same expression in a
display.