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. We've worked hard to expand MathML to handle areas where our customers have requested more functionality.
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. One very big advantage of a clear markup for elementary math is the ability to make it accessible, something we are constantly working on.
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.
