19

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

现在我想保留内联/块美元符号,但我不希望它炸毁其他东西。我正在考虑将 MathJax 与某个 CSS 类相关联,这样我就可以将所有广泛使用数学的部分与这些标签括起来。我的意思是,我仍然可以在这些 div 中正常输入(无需对其进行数学化),但我可以使用美元符号并获取数学代码。在 div 之外,任何美元符号都将被单独留下。

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

4

3 回答 3

24

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

<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>

希望有帮助。

戴维德

于 2012-02-15T14:07:51.430 回答
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"

}
});
于 2012-02-15T05:44:14.250 回答
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").

于 2019-02-03T17:41:30.510 回答