【问题标题】:Customize AsciiMath math delimiters自定义 AsciiMath 数学分隔符
【发布时间】:2020-07-23 07:57:42
【问题描述】:

我想使用 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>

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

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

【问题讨论】:

    标签: javascript html math mathjax asciimath


    【解决方案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>
    

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

    最后,你不需要这条线

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 2017-06-13
      • 2012-10-07
      相关资源
      最近更新 更多