MathJax

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
MathJax
开发者美国数学会
稳定版本
3.2
编程语言JavaScript
操作系统跨平台
类型数学软件
许可协议Apache License 2.0
网站www.mathjax.org

MathJax是一个跨浏览器JavaScript库,它使用MathMLLaTeX和ASCIIMathML标记在Web浏览器中显示数学符号[1][2][3]MathJax是在Apache许可证下作为开源软件发布的。

MathJax项目始于2009年,是早期JavaScript数学格式化库jsMath的继承者,[4]美国数学学会管理。[5]该项目由美国数学学会、设计科学学会、工业和应用数学学会共同发起,并得到美国物理联合会Stack Exchange等众多资助机构的支持。[6]

MathJax被arXiv[7]爱思唯尔ScienceDirect[8]、MathSciNet[9]、n-category cafe、MathOverflowScholarpedia、Project Euclid期刊[10]IEEE Xplore[11]、Publons、Coursera和全俄数学门户网站等网站使用。[12]

特性

MathJax下载网页内容,扫描页面内容寻找等式标记,并对数学进行排版。因此,MathJax不需要在阅读器系统上安装软件或额外的字体。这允许MathJax在任何支持JavaScript的浏览器中运行,包括移动设备。[13]

MathJax可以使用HTMLCSS的组合显示数学,或者在可用时使用浏览器的原生MathML支持。MathJax用于排版数学的确切方法取决于用户浏览器的功能、用户系统上可用的字体和配置设置。MathJax 自 v2.0-beta版引入了SVG渲染功能。[14]

在HTML和CSS排版的情况下,MathJax通过使用数学字体(如果有的话)和使用旧浏览器的图像来最大化数学显示质量。对于支持Web字体的新浏览器,MathJax提供了一组全面的Web字体,可以根据需要下载。如果浏览器不支持Web字体,MathJax将检查用户系统上是否有有效的字体。如果这不起作用,MathJax将提供所需符号的图像。可以配置MathJax来启用或禁用Web字体、本地字体和图像字体。

MathJax使用STIX字体在Web页面中包含数学。在本地计算机上安装字体可以提高MathJax的排版速度。[15]

MathJax可以显示用LaTeX或MathML标记编写的数学符号。因为MathJax只用于数学显示,而LaTeX是一种文档布局语言,所以MathJax只支持用于描述数学表示法的LaTeX子集。[13]

MathJax还通过其API将MathML公开给辅助技术软件,以及基本的WAI-ARIA“角色”和更老的“altext”属性,从而支持数学可访问性。[16]

MathJax体系结构旨在通过动态加载的模块支持在将来添加输入语言和显示方法。MathJax还包括一个JavaScript API,用于枚举页面中的数学实例并与之交互。

浏览器兼容性

MathJax在大多数流行的浏览器中呈现数学,包括Internet Explorer 6+、Firefox 3+、Google Chrome 0.3+、Safari 2.0+、Opera 9.5+、iPhone/iPad Safari和Android浏览器。一些旧版本的浏览器不支持Web字体(使用@font-face CSS结构),因此它们必须使用MathJax图像字体模式。浏览器兼容性列表可以在官方网站上找到。[17]

插件支持

MathJax可以很容易地添加到许多流行的Web平台上。[18]

Node.js

MathJax可以通过MathJax-node库在NodeJS中使用[19]

公式编辑器的兼容性

在受支持的浏览器中显示的任何MathJax公式,都可以通过右键单击或控件单击“Show Math as”子菜单,以MathML或LaTeX格式复制出来。然后,它可以粘贴到任何支持MathML或LaTeX的公式编辑器中,例如MathematicaMathType、MathMagic、Firemath,以便重用。[20]

任何第三方公式编辑器以MathML或LaTeX格式生成的方程都可以在支持MathJax的Web页面中使用。

TeX支持

MathJax复制LaTeX的数学环境命令。通过扩展支持AMS-LaTeX数学命令。MathJax还支持TeX宏和其他格式,比如\color\underline[21]

MathML支持

MathJax在beta 2版本中增加了对MathML 2.0和一些MathML 3.0构造的部分支持。MathJax支持演示MathML,并且从2.2版开始提供了对内容MathML的实验性支持。[22]

CDN服务器

MathJax站点提供了一个内容分发网络(CDN),其中,浏览器可以在运行时从CDN加载MathJax工作所需的JavaScript。这简化了安装,并确保始终使用库的最新版本。随着时间的推移,服务器的使用从2011年的每月1.3TB流量增长到2017年的每月70TB流量。由于服务器托管成本增加,主CDN服务器于2017年4月底关闭。备用第三方CDN服务器可用。[23]

参考文献

  1. MathJax: Rich Math display from LaTeX and MathML. [2018-12-21]. 
  2. MathJax AsciiMath support. [2018-12-21]. 
  3. Cuellar, Autumn; Topping, Paul. What you need to know about the Maths Stack. XML London 2013. 2013-06: 63–68 [2018-12-21]. ISBN 978-0-9926471-0-0. doi:10.14337/XMLLondon13.Cuellar01. 
  4. Hayes, Brian, Writing Math on the Web: The Web would make a dandy blackboard if only we could scribble an equation, American Scientist, 2009, 92 (2): 98, doi:10.1511/2009.77.98 .
  5. AMS becomes managing partner of the MathJax Consortium. [2018-12-21]. 
  6. MathJax Sponsorship. [2018-12-21]. 
  7. arXiv.org help - What is MathJax?. [2018-12-21]. 
  8. Archived copy. [2014-08-24]. 
  9. MathSciNet What's New. [2018-12-21]. 
  10. What is MathJax?. [2018-12-21]. 
  11. New features in IEEE Xplore , retrieved 2015-04-20.
  12. All-Russian Mathematical Portal. [2018-12-21]. 
  13. 13.0 13.1 Cervone, Davide, Math Jax: A Platform for Mathematics on the Web (PDF), Notices of the American Mathematical Society, 2012, 59 (2): 312–316 [2018-12-21], doi:10.1090/noti794 
  14. MathJax v2.0-beta now available on CDN. 2012-02-11. 
  15. MathJax Font Help accessed 2012-08-14.
  16. MathJax: Accessibility. [2018-12-21]. 
  17. MathJax: Browser Compatibility. [2018-12-21]. 
  18. Using MathJax in popular web platforms. [2018-12-21]. 
  19. mathjax-node. [2018-12-21]. 
  20. Copy and Paste Math. [2018-12-21]. 
  21. MathJax: Supported LaTeX Commands. [2018-12-21]. 
  22. MathJax MathML Support — MathJax 2.3 documentation. [2018-12-21]. 
  23. MathJax CDN shutting down on April 30, 2017. MathJax. 2017-03-31 [2018-12-21]. 

外部链接