MathJax尝试渲染\ begin {itemize}

时间:2016-06-23 18:39:24

标签: mathjax

当MathJax看到\ begin {itemize} ... \ end {itemize}时,它会尝试将其渲染为数学对象。我希望它只能将美元符号中的内容解释为数学。我找不到任何明显的原因,它会将\ begin {itemize}解释为某个分隔符。

最小工作示例:

<script type="text/javascript" 
        src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">  

    MathJax.Hub.Config({
        jax: ["input/TeX", "output/HTML-CSS"], 
        tex2jax: {
            inlineMath: [ ['$','$'] ]
        }, 
        "HTML-CSS": { availableFonts: ["TeX"] }
    }); 

</script>

<body>
Here is some thing:

\begin{itemize}
\item mathjax shouldn't care about this latex environment but it does
\item this WON'T be rendered as math: $x+y+z$
\end{itemize}

but this WILL: $\sum_{i=0}^n 1/2^i$
</body>

结果:

  

enter image description here

预期:

  

enter image description here

其他评论:

如果我将其更改为\ begin {asdf} .. \ end {asdf},仍会出现不需要的行为。所以它并不特定于&#34;逐项列出&#34;。但是\ begin {foo} .. \ end {bar}会导致我的预期行为(即MathJax什么都不做)。

1 个答案:

答案 0 :(得分:2)

tex2jax扩展是处理页面中数学标识的扩展,并且由于\begin{align}...\end{align}之类的环境是不需要分隔符的数学环境,tex2jax在文档中查找\begin{xxx}...\end{xxx}。由于除了代码片段之外没有其他理由在HTML文档中包含此类字符串(如果它们位于<code><pre>块中将被跳过,并且可以配置为跳过其他方式) ,或者如果你正在对你的页面进行额外的基于javascript的处理(在这种情况下你可以用MathJax协调你的工作),并且因为tex2jax不知道你的文档中可能定义了什么环境,这似乎是一个合理的方法。

在任何情况下,您都可以通过在MathJax配置的processEnvironments: false块中设置tex2jax来阻止它(请参阅tex2jax documentation)。但是,如果你这样做,那么你必须将\begin{align}...\end{align}和任何其他数学环境包含在display-math delimiters中。