我最近开设了一个博客,其中我讲的是编程,阅读,科学和数学。现在,对于编程部分,我已经安装了SyntaxHighlighter,但我对我应该用于数学的东西感到困惑。我正在考虑使用MathJax,因为我已经习惯了它并且非常好。问题是,MathJax会干扰其他东西。例如,它可能会干扰我在编程帖子中使用的任何PHP代码(有很多美元符号)。
现在我想保持内联/阻止美元符号,但我不希望它爆炸其他东西。我正在考虑将MathJax与某个CSS类相关联,这样我就可以将所有使用数学的部分与这些标签一起包含在内。通过这个,我的意思是我仍然可以在这些div中正常输入(没有数学运算),但我可以使用美元符号并获得数学代码。在div之外,任何美元符号都将被遗漏。
有谁知道让我这样做的配置选项?我知道JS,但我在文档中找不到任何选项。我想在翻阅代码之前会问这里。
答案 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")
的东西。