在没有分隔符的类中使用mathjax呈现公式



我使用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 &amp;   = { x mid x in mathbb{Q},x leq 0} cup left{ x mid x in mathbb{Q},x &gt; 0,x^{2} &lt; 2 right} \
U &amp;   = mathbb{Q} - L = left{ x mid x in mathbb{Q},x &gt; 0,x^{2} &gt; 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 &gt; 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 &gt; r &gt; 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后用您的配置覆盖它。

我认为你可能误解了ignoreHtmlClassprocessHtmlClass的目的。这些标签用于控制将在文档中搜索哪些容器元素来搜索数学,而不是用什么标记来分隔实际的数学表达式。只有(...)[...]用于标记配置中的数学。ignoreHtmlClass/processHtmlClass选项用于在查找数学分隔符时将页面的部分标记为跳过/不跳过。

相关内容

  • 没有找到相关文章

最新更新