第二次渲染时出现MathJax错误

时间:2015-09-16 20:59:22

标签: mathjax

我使用MathJax动态渲染以下代码:

When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$  

In equation \eqref{eq:sample}, we find the value of an interesting integral:
\begin{equation}
  \int_0^\infty \frac{x^3}{e^x-1}\,dx = \frac{\pi^4}{15}
  \label{eq:sample}
\end{equation}

使用Hub.Queue

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

第一次渲染效果很好。但是当我尝试使用相同的代码再次渲染时,只渲染第一部分,但是第二部分(从\ begin开始)不会被解析并显示在黑框中。为什么会这样?

1 个答案:

答案 0 :(得分:3)

问题在于使用\label。当重新排版数学时,标签已经存在(来自第一个排版),因此TeX输入jax将其报告为错误(禁用noErrors扩展以查看错误消息)。

您需要在再次排版之前重置标签(可能是公式编号)。为此,请使用

MathJax.Hub.Queue(
  ["resetEquationNumbers",MathJax.InputJax.TeX],
  ["Typeset",MathJax.Hub]
);

而不是MathJax.Hub.Queue(["Typeset",MathJax.Hub])来电。