无法在Google Chrome中呈现MathML内容

时间:2015-04-16 17:41:29

标签: html google-chrome mathjax mathml

我在HTML页面中有一些MathML内容,页面需要通过HTTPS连接在Google Chrome中呈现。所以我试着按照下面的链接说明

Displaying Mathml equations

但它不起作用(我在HTML页面中复制了脚本)。然后我尝试安装chrome的MathJax插件作为Google Chrome的扩展。这似乎在我的文件中呈现了一些MathML,但对于一些我得到了一个错误。我发现MathJax可以呈现Presentation MathML内容,但无法呈现Content MathML内容(我的页面中有两种类型的内容)。它也无法通过HTTPS连接工作。如果我得到一些解决方法来解决这个问题,那将非常有用。

此致 Anirban

5 个答案:

答案 0 :(得分:11)

The question linked to in the OP有点过时,并描述了如何在xhtml中包含MathML(不是html,因为那时它实际上并不有效)。使用HTML5,包含MathML会更容易。

Chrome不支持MathML,因此您需要使用polyfill。 MathJax可以渲染Presentation和Content MathML;请参阅http://docs.mathjax.org/en/latest/mathml.html的相关文档。

但是,作者需要正确配置MathJax才能这样做。仅供参考,Chrome商店中的插件由第三方制作;另外,如果正确完成,MathJax可以正常使用https。

下面的示例演示了如何启用MathJax可以提供的所有MathML功能,包括实验性功能的mml3.js扩展。



<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Fullest MathML support using MathJax</title>
  <script>window.MathJax = { MathML: { extensions: ["mml3.js", "content-mathml.js"]}};</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_HTMLorMML"></script>
</head>
<body>
  <math display="block"> 
    <apply> 
      <plus/> 
      <ci>a</ci> 
      <apply> 
        <minus/> 
        <ci>b</ci> 
        <ci>c</ci> 
      </apply> 
    </apply> 
  </math> 
  <math display="block">
    <mrow>
      <mi>a</mi>
      <mo>+</mo>
      <mrow>
        <mi>b</mi>
        <mo>-</mo>
        <mi>c</mi>
      </mrow>
    </mrow>
  </math>

</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

当我处于类似情况时,这对我来说非常有效。

<head>

中添加这些脚本
<script type="text/x-mathjax-config">MathJax.Hub.Config({
  config: ["MMLorHTML.js"],
  jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"],
  extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"],
  TeX: {
    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
  }
});</script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/2.0-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

然后,

<script>代码

结束后添加此<body>
<script type="text/javascript">
  MathJax.Hub.Configured()
</script>

请参阅documentation

你可以看到这个精彩的例子.. https://math.stackexchange.com/ ..检查math.stackexchange的来源......这将是非常有帮助的..

<强>更新

请参阅此link中的第54页。它说

  

MathJax支持MathML3.0数学标签,有些   限制。 MathML支持仍在积极开发中,因此   有些标签尚未实现,有些功能尚未完全实现   发达,但即将到来。缺点包括:

     

•不支持   表格中的对齐组。

     

•并非所有属性都受支持   表。例如,columnspan和rowspan尚未实现。

     

•基本数学标签的实验支持:mstack,mlongdiv,   msgroup,msrow,mscarries和mscarry。 (通过mml3扩展,请参阅   下面。)

     

•双向数学的实验支持。

答案 2 :(得分:0)

试试我的Chrome扩展程序“HTML + MathML”: https://chrome.google.com/webstore/detail/fmath-html-%2B-mathml-solut/emdjdpchbjipnjhkfljbcapgfecmnglm?hl=en-GB

或我对“所有浏览器”的解决方案: http://www.fmath.info/formula/js/allBrowser.jsp

问候

答案 3 :(得分:0)

似乎可以借助CSS和使用HTML5(即支持未知标记的Chrome版本)在Chrome中呈现MathML。

作为一项实验,包括一些婴儿步骤摆弄contenteditable =“true”来测试HTML5编辑,我在这里使用这个CSS:
https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/test-mathml-css

没有CSS的Chrome示例:

  

without CSS

使用CSS的Chrome示例:

  

enter image description here

源文件在这里:
https://gist.github.com/jburse/fb43afd01048feac7028b5642817af0a#file-mathml-html

答案 4 :(得分:0)