W3C home > Mailing lists > Public > www-math@w3.org > April 2016

RE: should MathML dictate a specific graphical rendering

From: Paul Topping <pault@dessci.com>
Date: Fri, 8 Apr 2016 22:02:30 +0000
To: Murray Sargent <murrays@exchange.microsoft.com>, Daniel Kinzler <daniel@brightbyte.de>, Moritz Schubotz <schubotz@tu-berlin.de>, "www-math@w3.org" <www-math@w3.org>, Peter Krautzberger <peter.krautzberger@mathjax.org>
CC: Wikimedia developers <wikitech-l@lists.wikimedia.org>, wikidata-tech <wikidata-tech@lists.wikimedia.org>
Message-ID: <B6C5B1ABA88AF446821B281774E6DB71B717EBBE@FERMAT.corp.dessci>

I guess I forgot about Appendix G of the TeXbook. Thanks for the correction. Did you find that it defined the rendering accurately enough for your line services implementation? Since it has OpenType ‘math’ table support, does it really render exactly as TeX? I guess one could say that the two implementations render the same modulo the fonts used. Did your line services improve on TeX math rendering at all or fill in any gaps in Appendix G. Were there any concessions made to compatibility with layout of non-math text?

I am not asking these questions to argue against your point. I’m just suggesting that while a reader may regard two renderings as being equal, there may still be unavoidable, or by-design, differences due to variations in rendering technology, software environment, and other considerations.


From: Murray Sargent [mailto:murrays@exchange.microsoft.com]
Sent: Friday, April 8, 2016 2:34 PM
To: Paul Topping <pault@dessci.com>; Daniel Kinzler <daniel@brightbyte.de>; Moritz Schubotz <schubotz@tu-berlin.de>; www-math@w3.org; Peter Krautzberger <peter.krautzberger@mathjax.org>
Cc: Wikimedia developers <wikitech-l@lists.wikimedia.org>; wikidata-tech <wikidata-tech@lists.wikimedia.org>
Subject: RE: should MathML dictate a specific graphical rendering

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/lineservices/>. 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-document-math-properties/>, 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-math-omml/>-like 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(v=vs.85).aspx> 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.


Received on Friday, 8 April 2016 22:03:00 UTC

This archive was generated by hypermail 2.3.1 : Friday, 8 April 2016 22:03:00 UTC