MathML 3
took a big step towards becoming a standard by moving to "last call" a
week ago, the first of three steps towards becoming an official W3C
recommendation. Design Science is a leader in developing MathML
technology with its MathPlayer renderer for IE, its MathFlow products, and MathType's ability to import and export MathML. .
MathML
3 cleans up a number of unclear areas and adds a number of new
features. In this post, I want to talk about two big new features in
MathML 3: support for linebreaking and support for elementary math
notations. MathML 3 adds extensive support for linebreaks and the
indentation that follows. You can use this to achieve all different
sorts of alignment of the next line. For example, in the image below,
two linebreaks were forced. The alignment points were tagged with ids and at the forced linebreak, the indentation target was given as the ids:
This is an example of forced linebreaks, but the same can be done for automatic linebreaks: if the
expression breaks at a certain point, you can tell it where it should
align. The image above was generated by the development version of
MathPlayer, which has full support for MathML 3's linebreaking
specification including automatic linebreaking.
Another big new feature is support for elementary notations like those shown below:
Elementary
math notation is notoriously hard to lay out, but MathML 3 makes it
easy. It has lots of flexibility for the position of the borrows,
carries, and location of the operator to accommodate the many styles
used in the US and around the world.
We've been hard at work implementing MathML 3 support in our products
-- all of the images in this post were generated by MathPlayer -- and
we are looking forward to the impending release of MathML 3.