乳胶方程式不会在Jekyll(kramdown引擎)中渲染

时间:2016-02-24 20:21:39

标签: jekyll mathjax kramdown

我正在使用Jekyll + kramdown来渲染我的博客。但我发现这个特殊的方程式不可渲染,它或者出现在原始乳胶代码中,或者只是空白,取决于我在美元符号周围放置了多少个空白区域。所有其他方程式都已经很好了。

以下是我插入等式的方法:

$$S_S \to (([tdh],)^{*} [tdh]&)^{?} [tdh]$$

我需要配置kramdown的一些设置吗? 我已经在MathJax网站演示中尝试了这个代码,并且它被渲染得很好。

谢谢!

1 个答案:

答案 0 :(得分:0)

我想回答我自己的问题。在深入研究MathJax和Kramdown的指导方针并做了一些实验后,我发现了问题,并且它与kramdown无关。

问题是由&符号&引起的。在LaTeX中,写一个&符号是有效的,除非在特殊环境中,它将被正确呈现。但是,与markdown博客一样,源代码在数学渲染器之前由浏览器处理,因此&字符被误解,导致MathJax无法正确读取它。我大部分时间都在使用LaTeX,所以我认为一个有效的LaTeX表达式也应该是一个有效的markdown数学块,当我提出这个问题时,忽略了特殊字符的问题。在线MathJax渲染器可以正确渲染裸&,可能是因为浏览器不首先处理输入的文本。

解决方案是逃避&符号,即写\&,对于双重保险,用空格包围它,因此浏览器会将其视为普通文本。

在html中具有特殊含义的其他字符也会出现类似问题,例如<>。同样的解决方案适用,角色必须被转义,或者如果不可能,则以其他方式表达。