【问题标题】:Configuring mathjax to stick to certain divs配置 mathjax 以坚持某些 div
【发布时间】:2012-02-15 05:19:48
【问题描述】:

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

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

有人知道可以让我这样做的配置选项吗?我知道 JS,但我在文档中找不到任何选项。想在浏览代码之前先在这里问一下。

【问题讨论】:

  • 抱歉,这纯粹是一个 MathJax 问题,与 TeX 无关。请参阅faq
  • @MarkS.Everitt 我应该把它移到 StackOverflow 吗?
  • 如果您愿意,您可以提出要求,但不要交叉发布。让版主来做这件事。顺便说一句,您可能想查看 ignoreClass: "tex2jax_ignore" 以获取您的代码块。见here
  • 谢谢,下面有一个processClass: "tex2jax_process"。问题已回答。

标签: mathjax


【解决方案1】:

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>

希望对您有所帮助。

大卫

【讨论】:

    【解决方案2】:

    信用:@MarkS.Everitt

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

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

    tex2jax: {
    
    inlineMath: [['$','$'], ['\\(','\\)']],'
    
    ignoreClass: "[a-zA-Z1-9]*",
    
    processClass: "math"
    
    }
    });
    

    【讨论】:

    • 或 ignoreClass: "[a-zA-Z1-9]*" 因为它接受某种正则表达式,
    • 但要小心:它不是递归的,所以如果你在
      中有一个
      ,它会考虑更深层次的
      类名...我个人使用 processClass:" mathJax.*", ignoreClass: ".*"
    【解决方案3】:

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

    在导入 MathJax 的&lt;script&gt; 标记之前插入以下标记:

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

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

    【讨论】:

    • 这仅在存在一个或多个元素时才有效。否则,“如果没有提供,则处理完整的文档。”
    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多