【问题标题】:MathJax equation containing multiple summations with indexMathJax 方程包含多个带索引的求和
【发布时间】:2026-01-15 17:30:02
【问题描述】:

背景:

这是我在页面中包含 MathJax 库的方式:

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

问题:

MathJax 字符串(我相信)会显示我想要的:

$$\sum_{s=1}^{1000} p_s  \sum_{c=1}^{4} x_c$$


我可以开始工作的最接近的 MathJax 字符串(正确显示):

$$\sum_{s=1}^{1000} p_s  \sum_c^{4} x_c$$

作为调试的一部分,我已将第二个求和简化为“x_c”,但它仍然不起作用。这使我相信问题是由第二个求和索引定义引起的。当我尝试将 'c=1' 位添加到第二个求和符号时,似乎 MathJax 将不再呈现方程。这种行为看起来很奇怪,因为第一个求和可以具有定义的索引(例如,'i=1')。在这一点上,任何想法都值得赞赏。

【问题讨论】:

  • 不知道出了什么问题,除了你的输出看起来像管道而不是反斜杠。我将您的上层代码粘贴到:mathjax.org/#demo 它在那里工作。
  • 你可以试试:使用&lt;script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML-full&amp;latest"&gt;&lt;/script&gt;
  • 随机猜测:是否涉及降价?
  • @Sarcoma 我更新到 2.7.5 并使用了提供的链接,但仍然有同样的问题
  • 截图看起来像是一个降价处理器已经运行并用斜体替换下划线,因此破坏了内容。您需要转义它们或使用支持/隔离 TeX 语法的处理器。

标签: javascript html mathjax hugo


【解决方案1】:

正如@Peter_Krautzberger 所指出的,Markdown 解析器似乎已将一些文本转换为斜体。这可能是导致问题的原因。

下面的 sn-p 是为了验证问题不在于 MathJax。

<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML-full&latest"></script>

$$\sum_{s=1}^{1000} p_s  \sum_{c=1}^{4} x_c$$

根据https://divadnojnarg.github.io/blog/mathjax/ MathJax \sum_ 在markdown 中不能正常工作,你必须使用\sum\_

乳胶渲染错误 经典的 Latex 表达式和 markdown 文档中使用的语法存在一些差异。例如,\sum_ 不使用 Hugo 渲染,您应该使用 \sum_ 代替(注意下划线之前的第二个反斜杠)。

尝试转义下划线。

要么:

$$\sum\_{s=1}^{1000} p\_s \sum\_{c=1}^{4} x\_c$$

$$\sum\_{s=1}^{1000} p_s \sum\_{c=1}^{4} x_c$$

可能会成功。

文章中还提到了一些可能需要的附加配置:

<script type="text/javascript" async
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
  MathJax.Hub.Config({
  tex2jax: {
    inlineMath: [['$','$'], ['\\(','\\)']],
    displayMath: [['$$','$$']],
    processEscapes: true,
    processEnvironments: true,
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
    TeX: { equationNumbers: { autoNumber: "AMS" },
         extensions: ["AMSmath.js", "AMSsymbols.js"] }
  }
  });
  MathJax.Hub.Queue(function() {
    // https://github.com/mojombo/jekyll/issues/199
    var all = MathJax.Hub.getAllJax(), i;
    for(i = 0; i < all.length; i += 1) {
        all[i].SourceElement().parentNode.className += ' has-jax';
    }
  });

  MathJax.Hub.Config({
  // Autonumbering by mathjax
  TeX: { equationNumbers: { autoNumber: "AMS" } }
  });
</script>

【讨论】:

  • 谢谢@Sarcoma,用 _ 转义下划线字符就像一个魅力。