KaTeX \tag hack
HTML
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.js"></script>
<div class="tex">
a^2 + b^2 = c^2 \tag{1}
</div>
<div class="tex">
\begin{pmatrix} x \\ y \\ z \end{pmatrix} \tag{2}
</div>
<div class="tex">
\begin{aligned} x = 1 \\ y = 2 \\ z = 4 \end{aligned} \tag{3}
</div>
CSS
.katex-display {
position: relative;
}
.katex-display .katex .eqno {
display: inline-block;
position: absolute;
right: 0;
}
JavaScript
var tex = document.querySelectorAll('div.tex');
for (var i = 0; i < tex.length; ++i) {
katex.render(tex[i].textContent, tex[i], {
displayMode: true,
macros: {
'\\tag': '\\pod\\text'
}
});
}
var eqno = document.querySelectorAll(".katex span > span.mspace.quad");
for (var i = 0; i < eqno.length; ++i) {
if (eqno[i].parentNode.className)
continue;
var quad = eqno[i];
var span = quad.parentNode;
var text = span.nextSibling;
var pare = text.nextSibling;
span.appendChild(text);
span.appendChild(pare);
span.className = 'eqno';
}