Paul commented "TeX doesn't specify its rendering in detail either except via the
code itself. In other words, the only proper rendering of TeX is that done by TeX
itself."
Actually Appendix G of The TeXbook describes how TeX lays out math. The Office math layout
program<https://blogs.msdn.microsoft.com/murrays/2006/11/14/lineservices… uses the
algorithms therein, which is why the results look so much like TeX. The actual code is
completely different from TeX’s, but the layout principles are generally the same.
It’s good to have this discussion. Clearly Presentation MathML is used a lot for
interchanging math zones between programs. Also I haven’t given up on the idea of the
browsers rendering MathML well natively. If IE ever succeeds, it’ll likely look like TeX,
since both IE and Edge use
LineServices<https://blogs.msdn.microsoft.com/murrays/2006/11/14/lineser…s/>. And
it should be way faster than Java script code.
My main complaints about Presentation MathML are 1) lack of an explicit n-ary element (for
integrals, summations, products, etc.) and 2) lack of document level math
properties<https://blogs.msdn.microsoft.com/murrays/2008/10/27/default-d…s/>,
like default math font. Also Presentation MathML depends too much on proper use of
<mrow>, which wouldn’t even be needed if the elements were all “prefix” elements
like <mfrac> and <mfenced>. But infix notation can be translated to prefix
notation, a good example being conversion of the linear
format<http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v3.pdf> to the
OMML<https://blogs.msdn.microsoft.com/murrays/2006/10/06/mathml-and-ecma…
internal format for LineServices. Similarly RichEdit’s MathML reader converts using the
rich-text string
stack<https://msdn.microsoft.com/en-us/library/windows/desktop/hh768736(…
originally developed for the linear format.
The bottom line is that MathML isn’t perfect, but it’s a widely used standard and gets the
job done. As such, it’s hardly a failure. And it’s nicely supported on the web thanks to
MathJax.
Murray