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

问题描述 投票:0回答:2

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

例如,在this帖子中

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

应该是这样的

其他一些乳胶语法效果很好,比如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>
latex jekyll mathjax
2个回答
2
投票

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

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


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

注意配置是如何在<script>标签内进行采购(src="<url-or-path>"),

为了完整性,post sourcerendered post一起使用,它使用$$方式在源的前30行中进行多行格式化,然后$以第一个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} ... $ ... src语法。

对于那些已经达到这个目标但希望因某种原因减少CDN使用量的人,你可能会对我发布的使用MathJax和Jekyll玩得很好的other answer感兴趣。

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