我发现在我的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>
答案 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 source与rendered 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 。