0

我想使用 AsciiMath 在我的页面上呈现数学公式。我遵循 AsciiMath 入门并将脚本放在 head 标签中:

<script>
    MathJax = {
        tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]}
    };
 </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/latest.js?config=AM_CHTML"> 
</script>
<script src="/statics/js/libs/ASCIIMathML.js"></script>

这是我的段落:

<p>some sample text `sqrt{3x-1}+(1+x)^2` some sample text $\sqrt{3x-1}+(1+x)^2$ some sample text</p>

尽管我将 MathJax 配置更改为用作分隔符,但它只呈现sqrt{3x-1}+(1+x)^2用反引号包围的部分。$

我不确定我在这里缺少什么。

4

1 回答 1

1

您的 MathJax 配置文件是AM_CHTML,它只包括 AsciiMath 输入处理器,而不是 TeX 输入处理器,所以这就是您没有获得 TeX 表达式排版的原因。您将需要使用一个同时包含 AsciiMath 和 TeX 输入(比如 ,TeX-MML-AM_CHTML其中还包括 MathML),或者配置 MathJax 以通过单独加载 TeX 输入处理器

<script>
MathJax = {
  jax: ['input/TeX'],
  extensions: ['tex2jax.js'],
  tex2jax: {inlineMath: [['$', '$'], ['\\(', '\\)']]}
};
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=AM_CHTML"></script>

另请注意,您使用的是第 2 版的 MathJax,但使用的是第 3 版配置。对于版本 2,您需要inlineMathtex2jax配置块中配置 ,而不是tex(就像您在版本 3 中所做的那样)。

最后,您不需要该行

<script src="/statics/js/libs/ASCIIMathML.js"></script>

根本没有,因为 AsciiMath 包含在您正在使用的 MathJax 配置中,并且在此处包含它只会干扰 MathJax 对 AsciiMath 的处理(请注意,ASCIIMathML.js 会将数学转换为 MathML,这可能不会在所有浏览器中显示,尤其是 Microsoft Edge 和 Google Chrome)。

于 2020-07-24T12:22:42.243 回答