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

MathJax
開發者 American Mathematical Society
穩定版本
2.7.5[1]
(2018年7月19日,​17個月前​(2018-07-19
源代码库 編輯維基數據鏈接
编程语言 JavaScript
操作系统 Cross-platform
类型 Mathematical software
许可协议 Apache License 2.0
网站 www.mathjax.org

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

MathJax被arXiv[8]爱思唯尔ScienceDirect[9]、MathSciNet[10]、n-category cafe、MathOverflow维基百科(在后台)[11][12]Scholarpedia、Project Euclid期刊[13]IEEE Xplore[14]、Publons、Coursera和全俄数学门户网站等网站使用。[15]

特性编辑

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

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

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

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

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

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

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图像字体模式。浏览器兼容性列表可以在官方网站上找到。[20]

插件支持编辑

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

Node.js编辑

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

公式编辑器的兼容性编辑

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

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

TeX支持编辑

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

MathML支持编辑

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

CDN服务器编辑

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

另请参阅编辑

  • 类别:符号字体
  • Google Chart API
  • KaTeX

参考文献编辑

  1. ^ MathJax v2.7.5. MathJax. 2018-07-19. 
  2. ^ MathJax: Rich Math display from LaTeX and MathML. 
  3. ^ MathJax AsciiMath support. [2018-12-21]. (原始内容存档于2018-03-23). 
  4. ^ Cuellar, Autumn; Topping, Paul. What you need to know about the Maths Stack. XML London 2013. June 2013: 63–68. ISBN 978-0-9926471-0-0. doi:10.14337/XMLLondon13.Cuellar01. 
  5. ^ 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 .
  6. ^ AMS becomes managing partner of the MathJax Consortium. 
  7. ^ MathJax Sponsorship. 
  8. ^ arXiv.org help - What is MathJax?. [2018-12-21]. (原始内容存档于2018-06-18). 
  9. ^ Archived copy. [2014-08-24]. (原始内容存档于2014-08-26). 
  10. ^ MathSciNet What's New. 
  11. ^ Schubotz, Moritz; Wicke, Gabriel. Intelligent Computer Mathematics. Lecture Notes in Computer Science 8543. 2014-01-01: 224–235. ISBN 978-3-319-08434-3. arXiv:1404.6179. doi:10.1007/978-3-319-08434-3_17. 
  12. ^ Extension:Math - MediaWiki. www.mediawiki.org. [2017-04-06] (英语). 
  13. ^ What is MathJax?. 
  14. ^ New features in IEEE Xplore, retrieved 2015-04-20.
  15. ^ All-Russian Mathematical Portal. 
  16. ^ 16.0 16.1 Cervone, Davide, Math Jax: A Platform for Mathematics on the Web (PDF), Notices of the American Mathematical Society, 2012, 59 (2): 312–316, doi:10.1090/noti794 
  17. ^ MathJax v2.0-beta now available on CDN. February 11, 2012. 
  18. ^ MathJax Font Help 互联网档案馆存檔,存档日期2012-07-28. accessed 2012-08-14.
  19. ^ MathJax: Accessibility. 
  20. ^ MathJax: Browser Compatibility. [2018-12-21]. (原始内容存档于2015-04-06). 
  21. ^ Using MathJax in popular web platforms. [2018-12-21]. (原始内容存档于2017-08-31). 
  22. ^ mathjax-node. 
  23. ^ Copy and Paste Math. 
  24. ^ MathJax: Supported LaTeX Commands. [2018-12-21]. (原始内容存档于2018-12-16). 
  25. ^ MathJax MathML Support — MathJax 2.3 documentation. [2018-12-21]. (原始内容存档于2018-12-15). 
  26. ^ MathJax CDN shutting down on April 30, 2017. MathJax. 31 March 2017. 

外部链接编辑