我使用markdown_it
将Markdown转换为html,转换后的公式失去了分隔符,这导致我的mathjax无法呈现公式,我的mathjax确认为:
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script type="text/javascript">
var MathJax = {
tex: {
inlineMath: [ ["\(","\)"] ],
displayMath: [ ["\[","\]"] ],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "math"
}
};
</script>
HTML:
<p>a rational number like <span class="math inline">begin{matrix}
L & = { x mid x in mathbb{Q},x leq 0} cup left{ x mid x in mathbb{Q},x > 0,x^{2} < 2 right} \
U & = mathbb{Q} - L = left{ x mid x in mathbb{Q},x > 0,x^{2} > 2 right} \
end{matrix}</span> .<br />
2. A fact between two Dedekind cuts(the density of <span class="math inline">Q</span> in <span class="math inline">R</span>): For any pair of real numbers <span class="math inline">alpha</span> and <span class="math inline">beta</span>, where <span class="math inline">alpha > beta</span>, there can always be found a real, and even in particular a rational, number <span class="math inline">r</span> which lies between them, i.e. <span class="math inline">alpha > r > beta</span> (and, consequently, an infinite set of such rational numbers).</p>
演示:https://jsbin.com/qecewiz/edit?html输出
您没有说您正在使用markdown_it的什么数学插件,但看起来它可能是一个旧的,因为它似乎正在生成jsmath风格的分隔符(<span class="math">...</span>
)而不是mathjax风格的分隔符。JsMath是MathJax的前身,从2004年到2008年一直在使用,虽然MathJax v2包含了一个可以解析JsMath分隔符的扩展,但这在版本3中不可用。有一个例子展示了如何查找MathJax v2<script>
标记,如果您对javascript足够精通,可以将其修改为查找jsmath样式的标记。
你可能想改变你正在使用markdown_it的数学插件。在google上快速搜索一下,找到了markdown-it-mathjax3,它应该可以与mathjax3版本一起使用。我没有使用markdown_it,所以无法为您验证这一点,但这看起来像是一个开始的地方。
另外,您的配置也有一些问题。首先,您应该将window.MathJax = {...}
配置放在一个脚本中,该脚本在之前出现加载tex-mml-chtml.js
的脚本,否则,当MathJax需要配置时,配置可能不可用,并且可能在加载MathJax后用您的配置覆盖它。
我认为你可能误解了ignoreHtmlClass
和processHtmlClass
的目的。这些标签用于控制将在文档中搜索哪些容器元素来搜索数学,而不是用什么标记来分隔实际的数学表达式。只有(...)
和[...]
用于标记配置中的数学。ignoreHtmlClass
/processHtmlClass
选项用于在查找数学分隔符时将页面的部分标记为跳过/不跳过。