作为免责声明,我是MathJAX和TeX语法的新手。
我在尝试转换以下内容时遇到了麻烦:
<div class='challenge__description'>
The Ackermann function is usually defined as follows
$$A(m, n) =
\begin{cases}
n+1 & \mbox{if } m = 0 \\
A(m-1, 1) & \mbox{if } m > 0 \mbox{ and } n = 0 \\
A(m-1, A(m, n-1)) & \mbox{if } m > 0 \mbox{ and } n > 0.
\end{cases}$$
Its arguments are never negative and it always terminates...
</div>
我的</body>
标记前面有以下内容:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} });
MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.querySelector('.challenge__description')]);
</script>
但似乎没有任何事情发生。一切都打印出来,没有任何变换。它工作正常by itself。
一个重要的注意事项是我正在尝试在React / Redux中应用MathJax转换。我正在使用challenge__description
动态设置dangerouslySetInnerHTML
div的内容。
react-mathjax
似乎没有解决这个问题,因为它将TeX表示包装在React组件中进行处理。如果我直接使用dangerouslySetInnerHTML
设置所有内容,那么TeX代码的<MathJax.Node>
组件化是没有意义的,因为标签没有特殊意义。
答案 0 :(得分:0)
答案最终很简单。在需要使用MathJax进行更新的组件中,只需在生命周期方法中包含MathJax ctx.result = newVar;
和Config
:
Queue