乳胶方程不会在 Jekyll 中呈现(kramdown 引擎)

An Latex Equation Would Not Render in Jekyll (kramdown engine)

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

下面是我如何插入等式:

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

是不是kramdown的一些设置需要配置? 我已经在 MathJax 网站演示上尝试了这段代码,它呈现得很好。

谢谢!

我正在尝试回答我自己的问题。在深入研究了MathJax和Kramdown的指南后,做了一些实验,我发现了问题所在,而且与kramdown无关。

问题是由&符号引起的:&。在 LaTeX 中,除了在特殊环境中,写一个 & 字符是有效的,并且它会被正确渲染。然而,在 markdown 博客中,源代码在数学渲染器之前由浏览器处理,因此 & 字符被误解,导致 MathJax 无法正确读取它。我在生活中主要使用 LaTeX,所以我认为有效的 LaTeX 表达式也应该是有效的降价数学块,并且在我问这个问题时忽略了问题特殊字符。在线 MathJax 渲染器可以正确渲染裸 &,可能是因为浏览器没有首先处理输入的文本。

解决方法是把&符号转义,即写成\&,为了双重保险,用空格包围,这样浏览器会把它当作普通文本。

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