MathML标记语言, 数学公式(一)介绍

首先这是什么?

MathML全名叫做Mathematical Markup Language(数学-标记-语言),它被用来描述数学公式,主要频繁出现于电子书办公格式。需要展示数学公式场合上。

这样的数学格式不是很久很久实现,MathML3.0现在的意义有多大作用?

角度有点不同,位于前端工程师角度来看,它的实现方式更加优秀,通常完成既是简单的数据格式需要配合复杂样式表,对于更复杂公式格式,要一套健全的管理模式,不管canvas还是svg实现办法都非常麻烦。如果公式格式渲染是由游览器客户端来完成,看起来使用就像“原生”(如写input)一样,或许这一切都迎刃而解,是时候使用并倡导MathML3.0了。

优缺点

有许多简单的符号(例如Wiki或markdown语法)来生成HTML页面。MathML也是如此:例如,计算器中使用的ASCII语法或功能更强大的LaTeX语言,在科学界非常流行。——MDN

优点:

    • 编写数学表达式可能只需要标准的文本编辑器。
    • 有许多工具可用,其中一些与经典的LaTeX-to-pdf工作流程兼容。
    • 这样就可以访问LaTeX的高级功能,例如宏。
    • 设置非常简单:只需上传少量Javascript和CSS文件和/或添加链接至文档标题即可。
    • 这是一个纯粹的基于Web的解决方案:一切都由浏览器完成,并且无需安装或编译其他程序。

 

缺点:

    • 这可能更难使用:人们必须学习语法,代码中的错别字可能轻易导致解析或渲染错误等
    • 该界面不是用户友好的:只有代码编辑器,而没有立即显示数学表达式。
    • 没有一种语法已经标准化,使得转换器之间的交叉兼容性变得困难。甚至流行的LaTeX语言也不断添加新的软件包。
    • 如果访问者禁用了Javascript,则此方法将无效。
    • MathML代码不会暴露给Web爬网程序(例如,数学搜索引擎或feed聚合程序的爬网程序)。特别是,您的内容将无法在Planet上正确显示。
    • 转换必须在每次加载页面时完成,可能会很慢并且可能与HTML解析冲突(例如,“ <”表示标记,或“ $”表示金额)
    • 您可能需要将Javascript转换器与页面上的其他Javascript程序同步。

进入生产!Hooo~

别急,  对于近期(截止2020年3月)MathML依旧没被大量游览器所支持,从观察来看PC上支持情况不乐观, PE上仅火狐一家。对于这样情况投入生产后总不能让用户必须使用火狐吧。

实际上MathML有一个向下兼容方式,如果只需要基本的数学结构,则只需要一个mathml.css样式表即可:

<link src="https://github.com/fred-wang/mathml.css" />
<script src="https://fred-wang.github.io/mathml.css/mspace.js"></script>

复杂的构造,则可以考虑使用较重的MathJax库作为MathML polyfill:

<script src="https://fred-wang.github.io/mathjax.js/mpadded-min.js"></script>

npm中:(https://github.com/mathjax/MathJax#readme)

npm install MathJax

感受 它就是SVG!

 

参考:

  • https://developer.mozilla.org/en-US/docs/Web/MathML
  • https://fred-wang.github.io/MozSummitMathML/
  • https://mathml.igalia.com/project/

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注


Cabbagelol将做些什么
负责记录Cabbagelol的总结,或者共享有趣的内容,这就是后院的最重要做的事情⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。
备案:粤ICP备15107172号-1
邮箱:nickmiku@foxmail.com

Copyright © 2015 - 2017 Cabbagelol. All Rights Reserved. Powered By Wordpress(EverBox).