Introduction

For writing math papers I always use Latex (actually miktex), it's really the only thing that can be used in a sane manner. As a programmer I kind of like it as well, since it's very easy to structure your document and you get a lot of things just for free, that seems to work poorly or is right down broken in other so called word processing softwares. For writing mathematical notation it's great. It's not all like the WYSIWYG editors like Microsoft Equation (in the office suite) or Mathematica's one for that matter. No, here it's fairly straightforward and writing more complex things are a breeze.

So, now enter the html page. The dreaded html page where nothing you write is really aching to what's coming out on the other end, browsers are free to do whatever they want more or less (including crashing it seems). And that's just for plain old ASCII text.

Math ML

So how do I display things on the web that at least looks somewhat similar to what I would write down in a paper or in an article written with Latex? This seems to be a know problem, people have tried various tactics, one is to invent a new web language to place the burden on the browsers to render math. Enter MathML, or MML for short. It seems like a great idea, sadly not all browsers supports it. Firefox does, kind of. Neither IE nor Safari supports it (they both render some crap). You also have to install a font pack locally to get it to work. All this kind of results into the fact that no one is going to see the equations in the end, it's too much hazzle.

I installed the itex2MML plugin for Movable Type. It did the job, but then the renderers all fouled up (IE, not unexpectedly, promptly crashed on me when I pointed it at the new page). I inspected the source html+xml, it looked fine, but none of my browsers could actually show the equations the way I intended. Which is kind of sad.

There is apparently a plugin for IE that shows the mathML language correctly, but again, if you require people to install plugins to read your text, then chances are they will not.

Back to basics

I also seriously considered to just say bother with the whole thing and go back to the drawing board. Literally. I'd scan my pen and paper notes and just be done with it. It's not too bad, I scanned some figures and placeholder illustrations recently for this little UI mockup I was working on at home and it turned out much better than I hoped for. Certainly much better than I could have done myself pushing pixels in Paint.NET or such. While it can produce complex results very quickly, it's very much reliable on a scanner and a person that can draw or write reasonably well. Me, not so much. My teachers jokingly said that I should be a doctor, since I scrabbled like they do on their recipes.

Mimetex

So the version I settled on finally was the mimetex cgi program which simply transforms a query string in latex to a gif image. It will always work on any browser that supports images (gif was one of the first ones) so unless you're running lynx you should be safe (hey, all the IE people are safe!). The method works for me as well, since I can generate the pictures either offline or just refer to them from my home computer.

Eq 1: Sample output from mimetex

In closing

Is math symbols too cutting edge? Maybe it is. Just plain old text is not that cut and dry to render, as more and more windows users become aware of after getting chocked with Safari and Apple's rendering [Spoolsky07] and [Maxim07]. Now that's just plain old regular text. And oh, did I mention that web layout has become increasingly complicated? Back when the web was new, HTML 1.0 was just some simple tags and that was it!

As more and more of our information intake is done through just regular webpages instead of antiquated paper magazines, I think it's important to have some kind of standardized delivery system for math symbols. Math is after all, universal. You can only get so far with the ascii art. Anyone out there got a better system for rendering math on HTML pages? I'd love to know what you guys are using.









References

Comments