I've found a workaround, but it's not pretty.
In order to have MathJax number equations, you have to add a configuration flag (from MathJax docs). Configuration flags in IPython are set in IPython/html/static/notebook/js/mathjaxutils.js (as of IPython 1.1, at least). It seems like there should be a configuration option to hook into this, but I wasn't able to find one. Instead, I edited this manually:
>>> locate mathjaxutils.js
/home/me/.virtualenvs/nengo/lib/python2.7/site-packages/IPython/html/static/notebook/js/mathjaxutils.js
>>> emacs -nw `locate mathjaxutils.js`
In that file, modify the MathJax.Hub.Config call to include TeX: { equationNumbers: { autoNumber: "AMS" } },. It should look like:
// MathJax loaded
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }, # Add this line
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
displayAlign: 'left', // Change this to 'center' to center equations.
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}}
}
});
Clear your cache and reload the notebook and you should have numbered equations that reference properly.
If you stop here, then rerunning a cell with a labelled equation will cause that equation to stop rendering, because the label already exists. As noted in the comments, there's a workaround for this as well.
In the same file as above, mathjaxutils.js, edit the process_math function to configure the hub's queue: hub.Queue( ["resetEquationNumbers",MathJax.InputJax.TeX], ["Typeset",hub] );. It should look like:
var process_math = function (i, j, pre_process, math, blocks) {
var hub = MathJax.Hub;
hub.Queue( ["resetEquationNumbers",MathJax.InputJax.TeX], ["Typeset",hub] );
...
This allows cells with labelled equations to be rerendered; however, equation numbering will then be local to each cell, meaning that you can't reference equations across cells.