My organisation needs to update its website, which, in particular, will host a number of blogs and wikis on mathematics-related themes. We need to use some way of rendering of LaTeX on our web pages. Given a choice of MathJax and MathML, which one would you recommend? Any other solutions?
It seems that to use MathML, I ("hypothetical I") need to use a Ruby program called iTeX
There seem to be some very confused descriptions of MathML, which doesn't require iTeX or Ruby or any server side configuration at all.
You can't really compare MathJax and MathML as they are different things,
MathJax is a an implementation of a client side parser for both a TeX-like syntax and MathML.
Then (which ever input syntax is used for input) it can use various rendering methods including native MathML in the browser (including IE+MathPlayer, or recent WebKit builds, not just Firefox) or it can use CSS rendering.
Whether you want to use a linear TeX-like syntax or the XML/HTML syntax of MathML is pretty much a matter of choice, it is exactly analogous to a choice of whether to use a linear wiki style markup for your web pages, or to directly code (or generate) HTML markup. Sometimes one is more appropriate than the other, many sites use both wiki and traditional HTML markup, depending on the context.
(co editor of mathml2 and 3, and before that co-developer of latex2e, and before that a long time association with the Mathematics department at Manchester, and still an LMS member should you want any discussion offline at any stage about MathML, I'm easy enough to find:-)
I would recommend MathJax. MathJax has the ability to be configured to use native MathML rendering when available in a browser, and only fall back to HTML-CSS mode when native rendering is not available. This way you get the best part of both worlds. (One limitation of MathJax is that fonts tend to load slowly. However, once they are cached in the browser the display is very quick).
This question is similar to Embedding LaTeX equations into a webpage and I think that my arguments for MathML there are pretty strong. I can also now add a couple of extra things since MathOverflow uses MathJaX so I've some direct experience.
MathJaX is really slow, particularly when the server is in the US and I'm sitting here in Norway. You need to consider the geographical locations of your users. Yiannis says that one limitation is that the fonts take a long time to load. That's true, and if - like a good internet user - you clear your cache then they have to load again each session. And even in the same session, I find that the same page takes just as long the second time as it did the first. And even in the right geographical location, not everyone can afford fancy computers and high-speed internet connections. When I'm "on the road", I use a 6-year old iBook that creaks along running Linux off a USB-stick. Add to that the dodgy internet connection and MathJaX makes a site completely unusable.
MathJaX with HTML+CSS is just plain awful. It looks really nice with MathML rendering but then why not go for MathML in the first place?
I've decided to interpret the "Any other solutions" as a request for implementations. I don't think this is the place for a full list, but just to let you know that on the server side, there is MathML-capable software for all the usual things:
- Wiki: instiki is a MathML-enabled wiki system. It's what the nLab uses.
- Forum: Vanilla is a forum software that I've adapted to be MathML-enabled. It's what the nForum uses.
- Blog: Vanilla can actually be run as a blog. Also I've written a plugin for Wordpress for MathML (see here for an example), blosxom can also generate MathML, and the n-Category Cafe runs on Moveable Type.
I am involved with the MathJax project and, IMHO, David Carlisle has the best explanation on this thread (as usual).
You might want to look at using SVG on the web page, with dvisgm to generate the SVG, and Google's svgweb for IE prior to version 9.