jameshunt (.us)

Math on the Web — or — Who Stole My Sigma?

I’ve been meaning to work my way back through Knuth’s Art of Computer Programming, and maybe even Essentials of Programming Languages. I cracked the digital spine on EOPL3 last night, and realized that doing the
exercises was going to require the maths.

Which is no problem, except that I have fallen out of the habit of writing in notebooks. That leaves some digital format, and I immediately thought of my blog! That of course brought up the question at hand: how to display mathematical formulae with beauty and clarity, using only HTML?

$$∑↙{i=0}↖n i={n(n+1)}/2$$

Easy, right?

I’m using a small library called jQMath, that acts like a live, in-browser source filter. It converts tagged regions of text (surrounded by $$) into stylized HTML like the Sigma summation above.

A few things to note:

  1. You must have good Unicode support in your authoring tools
  2. The setup instructions are a little preachy
  3. You really really need good Unicode support…

$$(\table \cos θ, – \sin θ; \sin θ, \cos θ)$$

I ended up rewriting John Gruber’s markdown tool (the one that you can get
from the Ubuntu repos) so that it handled UTF-8 input and produced proper
UTF-8 output. Otherwise, you can’t do much beyond simple ASCII variables:

$$a^2+b^2=c^2$$

That works without Unicode, but not much else does. And what’s the point of
having a kick-ass formula renderer if you can’t use the really cool math
symbols?

$${1+√5}/2=1+1/{1+1/{1+⋯}}$$

As for the setup, all you really have to do is the following:

  1. Link the jqmath.css stylesheet in <HEAD>
  2. Include the jqmath.js and jquery.js libraries somewhere.

Happy Hacking!