首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在广场上可以使用MathJax吗?

在广场上可以使用MathJax吗?
EN

Stack Overflow用户
提问于 2014-09-15 00:42:36
回答 2查看 3.1K关注 0票数 5

我目前正在尝试创建一个新的网站使用squarespace,我想使用MathJax排版数学。例如,这是SE用来在physics.SE上呈现数学的相同引擎。

使用MathJax的标准方法是在页面标题中放置特定的代码片段,您希望使用MathJax,如概述的here。我试图通过使用“代码注入”功能来实现这一点,该特性允许人们将所需的代码放入squarespace站点上所有页面的头中,但数学上似乎并没有这样做。

This person声称已经完成了我在上面描述的过程,但是按照他的建议,在将所需的数学公式输入到HTML代码块之后,MathJax似乎就不起作用了。下面是一个代码示例。

JavaScript:

代码语言:javascript
复制
<script type="text/javascript"
   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

HTML:

代码语言:javascript
复制
When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

Update.似乎确实使用上面概述的过程(即,如果您将其输入到html代码块中)正确呈现,但只有当您以访问者的身份查看站点时,而不是在您登录到squarespace帐户时,才能正确呈现。

EN

回答 2

Stack Overflow用户

发布于 2015-01-11 18:05:25

我发现使用协议不可知论者:

代码语言:javascript
复制
<script type="text/javascript"
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

可以嵌入到HTML代码块中,也可以作为注入代码。

some动态生成一些页面,因此可能需要在MathJax第一次看到页面后排版该页面。在动态加载的内容中插入以下脚本将告诉MathJax在下一次机会时再次排版页面。

代码语言:javascript
复制
<script> 
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
</script>
票数 4
EN

Stack Overflow用户

发布于 2016-09-08 14:22:47

由于种族的原因,上面的答案对我不起作用。insert呈现Markdown块的方式是在运行时处理它们,并动态地将输出的HTML插入DOM中。如果这发生在我们调用MathJax API来排版页面之后,新插入的元素将显示原始LaTeX而不是类型集输出。

为了解决这一问题,我将其放在脚注中:

代码语言:javascript
复制
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

<script>
document.addEventListener("DOMNodeInserted", function(event){
  var element=event.target;
  MathJax.Hub.Queue(["Typeset",MathJax.Hub,element.parent]);
});

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
</script>

请注意,如果您使用此代码,您应该非常小心,不要将LaTeX封装在HTML元素中的Markdown块中,以避免无限循环。

更新:由于MathJax CDN已经关闭(并且允许Markdown块中的LaTeX修复我在上面提到的问题),我使用的当前代码如下:

代码语言:javascript
复制
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script>
document.addEventListener("DOMNodeInserted", function(event){
  var element=event.target;
  if (element.tagName.toLowerCase()!= 'script') {
    MathJax.Hub.Queue(["Typeset",MathJax.Hub,element.parent]);
  }
});

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25839396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档