配置mathjax以坚持某些div

时间:2012-02-15 05:19:49

标签: mathjax

我最近开设了一个博客,其中我讲的是编程,阅读,科学和数学。现在,对于编程部分,我已经安装了SyntaxHighlighter,但我对我应该用于数学的东西感到困惑。我正在考虑使用MathJax,因为我已经习惯了它并且非常好。问题是,MathJax会干扰其他东西。例如,它可能会干扰我在编程帖子中使用的任何PHP代码(有很多美元符号)。

现在我想保持内联/阻止美元符号,但我不希望它爆炸其他东西。我正在考虑将MathJax与某个CSS类相关联,这样我就可以将所有使用数学的部分与这些标签一起包含在内。通过这个,我的意思是我仍然可以在这些div中正常输入(没有数学运算),但我可以使用美元符号并获得数学代码。在div之外,任何美元符号都将被遗漏。

有谁知道让我这样做的配置选项?我知道JS,但我在文档中找不到任何选项。我想在翻阅代码之前会问这里。

3 个答案:

答案 0 :(得分:22)

class="tex2jax_ignore"添加到您的文档<body>标记中,然后在容器上使用class="tex2jax_process"作为您要包含数学的部分页面。正如其他人所指出的,您可以配置用于这些功能的类名。 E.g。

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
    inlineMath: [['$','$'],['\\(','\\)']],
    processClass: "mathjax",
    ignoreClass: "no-mathjax"
  }
});
</script>

然后你的页面将是

<html>
<head>
  ...
</head>
<body class="no-mathjax">
  ...
  <div class="mathjax">
  ... (math goes here) ...
  </div>
  ...
</body>
</html>

希望有所帮助。

的Davide

答案 1 :(得分:7)

信用:@ MarkS.Everitt

http://www.mathjax.org/docs/1.1/options/tex2jax.html

有一个配置选项processClass: "tex2jax_process" 最终配置变为:

tex2jax: {

inlineMath: [['$','$'], ['\\(','\\)']],'

ignoreClass: "[a-zA-Z1-9]*",

processClass: "math"

}
});

答案 2 :(得分:0)

现有答案不是IMO真正的解决方案,因为它们涉及修改HTML。有时候这甚至是不可能的,但是即使是这样,谁又想让无意义的CSS类弄脏他们的标记只是为了使MathJax工作?

在导入MathJax的<script>标签之前之前插入以下标签:

<script type="text/x-mathjax-config">
    MathJax.Hub.Config(
        {
            elements: mathElements
        }
    );
</script>

其中mathElements包含要处理的DOM元素列表,例如类似var mathElements = document.querySelectorAll("article")的东西。