配置mathjax坚持一定的div

问题描述 投票:16回答:3

我最近开始了一个博客,在我谈论节目,阅读,科学和数学。现在,对于编程部分,我已经安装了SyntaxHighlighter,但我搞糊涂了与我应该使用数学。我在考虑使用MathJax,因为我已经习惯了它,它是相当不错的。问题是,MathJax将与其他的东西干扰。例如,它可以与任何PHP代码(其中有大量的美元符号),我在编程后使用干扰。

现在,我想保持在线/块美元的迹象,但我不希望它炸掉其他的东西。我在想MathJax具有一定的CSS类关联,这样我可以附上其广泛使用的数学与这些标签的所有部分。通过这种方式,我的意思是,我仍然可以这些div内正常型(不必是数学指明分数),但我可以用美元符号,并得到数学代码。的div之外,任何美元符号将被单独留在家中。

有谁知道,让我这样做一个配置选项?我知道JS,但我不能找到文档中的任何选项。认为我会问这里通过代码耕前。

mathjax
3个回答
22
投票

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

希望帮助。

大卫


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"

}
});

0
投票

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

插入进口MathJax的<script>标记之前以下标记:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.