MathJax 拒绝编译特定类别的命令

问题描述 投票:0回答:1

我最近在 blogger.com 上开设了一个博客,主要写一些简短的数学片段。为此,我必须编辑 HTML 并添加 MathJax。经过一番谷歌搜索后,我发现(也许是错误的)人们这样做的方式是复制以下代码:-

<script src='https://polyfill.io/v3/polyfill.min.js?features=es6'/>
<script async='async' id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js' type='text/javascript'/>
<script>
window.MathJax = {
  tex: {
    inlineMath: [ [&#39;$&#39;,&#39;$&#39;],[&#39;\\(&#39;,&#39;\\)&#39;] ],
    displayMath: [ [&#39;$$&#39;,&#39;$$&#39;], [&#39;\\[&#39;,&#39;\\]&#39;] ],
    processEscapes: true,      
    processEnvironments: true, 
    processRefs: true       
  },
  options: {
   ignoreHtmlClass: &#39;tex2jax_ignore|editor-rich-text&#39;
  }
};
</script>

虽然最初感觉这很有效,但很快我意识到这种形式的命令

\begin{equation}
...
\end{equation}

没有被编译,尽管那些形式

$$ .. $$

甚至

\[ .. \]

工作绝对没问题。

我一直在用一些资源来管理这个问题,直到我意识到,甚至

$$\begin{cases}
...
\end{cases}$$

并且(更糟糕)

$$\begin{bmatrix}
...
\end{bmatrix}$$

不工作。简而言之,任何

\begin{blah}...\end{blah}
形式的命令都无法编译。

我想这不是 blogger.com 的问题,因为我看过许多其他帖子,其中方程非常一致。我已经尝试了我所知道的所有“愚蠢的方法”来解决它。但似乎问题在某个地方更深层次。如果有人能帮助我,我会很高兴。请注意,我不是一个精通技术的人 - 所以这个问题的答案可能只是我自己的愚蠢。


另一篇文章中,建议我将所有

&#39
更改为
'
。这会产生新的问题——结果我做不到。每次我尝试保存这些更改时,系统都会自动保存

<script async='async' id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js' type='text/javascript'/>
<script>
window.MathJax = {
  tex: {
    inlineMath: [ [&#39;;$&#39;;,&#39;;$&#39;;],[&#39;;\\(&#39;;,&#39;;\\)&#39;;] ],
    displayMath: [ [&#39;;$$&#39;;,&#39;;$$&#39;;], [&#39;;\\[&#39;;,&#39;;\\]&#39;;] ],
    processEscapes: true,      
    processEnvironments: true, 
    processRefs: true       
  },
  options: {
   ignoreHtmlClass: &#39;;tex2jax_ignore|editor-rich-text&#39;;
  }
};
</script>

此外,对于自动保存的版本,只有命令

$$..$$
有效,而
$..$
则无效。

这是 HTML 前几行的屏幕截图,以防有帮助:- enter image description here

javascript html blogger mathjax
1个回答
0
投票

您的代码片段存在几个问题。

首先,

<script>
标签在HTML中需要
</script>
,并且不能通过
<script ... />
自动关闭。

其次,您的

&#39;
需要是实际的引号(
'
"
)而不是实体。 由于它们位于
<script>
标签内,因此浏览器不会翻译它们,但会逐字使用。 这意味着您的配置不是有效的 JavaScript,您应该在浏览器控制台窗口中看到一条错误消息(您在发布消息之前检查过该消息吗?)。

第三,加载

tex-mml-chtml.js
的脚本应该位于设置配置的脚本之后 ,否则,您将面临加载 MathJax(例如从浏览器缓存)并在之前查找配置的竞争条件的风险它已经被定义了,所以忽略它。

最后,您应该删除

polypill.io

的脚本。  该网站最近被一家中国公司收购,该公司利用该网站将恶意代码插入到使用该网站的网页中,因此您“绝对”想要避免这种情况。  有关更多详细信息,请参阅 
MathJax 文档

© www.soinside.com 2019 - 2024. All rights reserved.