Mathematics in ebooks

Improving MathML in Gecko & WebKit and Creating a collection of EPUB samples

End of the project

Dear all,

Today is the official end of the "Mathematics in ebooks" project and the Open Type MATH specification has just been integrated into the Working Draft of the 3rd edition text of ISO/IEC 14496-22. In the short term, I plan to move to another mission but I hope what has been achieved during the past months will be a great boost for native MathML and for sophisticated scientific ebooks / web content.

About hundred MathML bugs in Mozilla and WebKit have been fixed. I have not been able to get all my patches reviewed and merged, though. The remaining WebKit and Mozilla paches are available on GitHub and I expect to get them integrated into the official builds during my free time and/or to rely on the help of other contributors. Here is an overview of the results for the announced goals (see the previous links for the detailed lists of bugs):

  • "WebKit has serious rendering bugs and very limited support for spacing and stretchy operators and the purpose will be to improve its MathML implementation with focus on addressing these issues.". The MathML operator dictionary and many of its properties (including spacing) have been implemented. Note that Apple does not communicate about WebKit plans, so there is no certitude about when/whether the improvements will be included in Safari and other Apple products ; however you can try the official nightly builds. I have also written some patches to implement operator stretching (vertical, horizontal and large operator) by reading the OpenType MATH table, but they have not been merged yet (this will require cross-platform testing, code review and coordination with Apple about MATH fonts). See some previous screenshots for how the patches would improve the rendering.
  • "Gecko has much better MathML support and the main objective will instead be to rely on the Open Type MATH table to get high rendering quality with modern math fonts." . The ssty feature for prime accent as well as operator stretching via Open Type MATH fonts will be available in Gecko 31 ESR (which will be in the Aurora channel soon). I also have pending patches for more refactoring and at least the main Open Type MATH constants. You can test the new support with the Mozilla MathML torture test. Bill Gianopoulos also provides some Firefox builds.
  • "Create a collection of educational & scientific documents". A collection of 18 documents in XHTML/EPUB format has been published on my website demonstrating the use of various Web technologies (HTML, SVG, MathML, CSS, Javascript, Canvas, WebGL, Web fonts, Web components via the X-tag polyfill, <video>, Unicode, RTL, etc) presenting various topics (mathematics, physics, chemistry, computer science, education etc) and using various math font style (Latin Modern, XITS, Neo Euler etc). The script to generate these documents is also provided and relies on several tools, including LaTeXML, tex4ht/make4ht/tex4ebook, itex2MML or TeXZilla. Everything is released under open licenses.

My personal plans for the future (which will depend on time/money available) are:

  • Continue the OpenType MATH implementation in Gecko and fix some rendering bugs. Gecko has the best native MathML support, there is an active Mozilla MathML community and there is the Mozilla Science Lab project so I think the Mozilla community can continue to take the lead in science on the web. In particular, the development of FirefoxOS is an opportunity to finally get a clean and standard way to bring scientific content on mobile platforms.
  • Continue to collaborate with the WebKit community to improve the MathML implementation. The main short term goal will be to merge the patches improving the rendering of stretchy operators via the OpenType MATH table, but there are other serious issues like support for displaystyle or mathvariant. I believe Apple has an important role to play thanks to its MathML accessibility, its large mobile market and the WebKit popularity. Another important goal will be to port the MathML improvements to Blink-based browsers, by adding the support into Chromium (ideally) and otherwise by maintaining a Chrome fork with MathML support.
  • Continue to work with various actors to encourage the use of native MathML, to develop tools to create advanced scientific materials such as those in the collection and to improve math accessibility. In particular, I wish to help MediaWiki developers to enable native MathML in Wikipedia for Gecko/WebKit, which I believe will be a great step forward.
  • Work with font designers and OS vendors to ensure that OpenType MATH fonts become popular and pre-installed ; and that they can be used by browser rendering engines to provide high-quality mathematical rendering.

I'd like to thank again all the people who helped with that project and hope we will be able to continue to work together on MathML developments!