无法在github页面上使用Jekyll在MathJax中呈现一些乳胶语法

时间:2018-04-22 20:42:18

标签: latex jekyll mathjax

我发现在我的git页面中没有使用带有Jekyll的MathJax渲染一些乳胶语法。

例如,在this帖子中

这一行: $ z = \ overbrace {\ underbrace {x} \ text {real} + \ underbrace {iy} \ text {imaginary}} ^ \ text {complex number} $

应该是这样的

example showing the result of \underbrace{•} and \overbrace{•}

其他一些乳胶语法效果很好,例如this

我应该添加什么来解决这个问题?我猜MathJax没有加载所需的库(例如在上面的例子中是\ usepackage {amsmath})。

页面代码为here

以下代码显示了我对matjax的配置。

<script type="text/x-mathjax-config"> MathJax.Hub.Config({ TeX: { equationNumbers: { autoNumber: "all" } } }); </script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>

2 个答案:

答案 0 :(得分:1)

请注意,在Jekyll的Markdown语法中,下划线用于表示斜体文本,因此Jekyll会在<em>周围插入\text{real} +\underbrace{iy}标记(注意下划线中缺少下划线)输出和文本以斜体显示)。 MathJax无法处理包含HTML标记的数学,因此会跳过此数学公式。

您需要确保Markdown不会干扰您的TeX表示法。这可以通过几种方式完成。您可以使用\_代替_,以防止下划线被解释为斜体。或者,您可以使用<span>...</span>围绕内联数学和<div>...</div>围绕显示数学,如建议here

答案 1 :(得分:1)

只是预感,但查看问题中发布的代码,我认为将所有与MathJax相关的材料保留在<script>中可能会更好标签。我写这篇文章是因为我还没有发现需要将任何东西包装在<span>中。

这是我的_includes/mathjax.html文件的样子,它是将docs的两个块拼接在一起。

<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [['$','$'], ['\\(','\\)']],
      processEscapes: true
    }
  });
</script>

...这就是我的添加方式...

---
layout: post
title: Some of Thing
---
{%- include mathjax.html -%}

Notes about $ \sum_{Thing} $
  

请注意配置与 sourcing <script> src)在同一个="<url-or-path>"标签中的方式,

为了完整起见,post sourcerendered post一起使用,它使用$$的方式在源代码的前三十行中进行多行格式化,然后在{{1 }}在呈现版本的第一个$格式化块(在注释中)之后以行方式进行处理。

(我想是为了获得加分),我认为从问题中看纠正后的代码会是什么样子。

code

值得一提的是,我发现自己的测试是<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"> MathJax.Hub.Config({ TeX: { equationNumbers: { autoNumber: "all" } } }); MathJax.Hub.Config({ tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ], processEscapes: true } }); </script> ... \( ... \sum_{Thing},内联语法不是触发任何预先解析器Jekyll用来添加html标签的东西;换句话说,即使在为MathJax的\) ing添加任何配置之前,我也必须使用$ ... \sum_{Thing} ... $语法。

对于那些已经走了这么远但出于某种原因想要减少CDN使用率的用户,您可能对我发布的other answer感兴趣,目的是让MathJax和Jekyll玩 -nice