Loading AI tools
来自维基百科,自由的百科全书
MathJax是一个跨浏览器的JavaScript库,它使用MathML、LaTeX和ASCIIMathML标记在Web浏览器中显示数学符号。[3][4][5]MathJax是在Apache许可证下作为开源软件发布的。
开发者 | American Mathematical Society |
---|---|
当前版本 | |
原始码库 | |
编程语言 | JavaScript |
操作系统 | Cross-platform |
类型 | Mathematical software |
许可协议 | Apache License 2.0 |
网站 | www |
MathJax项目始于2009年,是早期JavaScript数学格式化库jsMath的继承者,[6]由美国数学学会管理。[7]该项目由美国数学学会、设计科学学会、工业和应用数学学会共同发起,并得到美国物理联合会和Stack Exchange等众多资助机构的支持。[8]
MathJax被arXiv[9]、爱思唯尔的ScienceDirect[10]、MathSciNet[11]、n-category cafe、MathOverflow、维基百科(在后台)[12][13]、Scholarpedia、Project Euclid期刊[14]、IEEE Xplore[15]、Publons、Coursera和全俄数学门户网站等网站使用。[16]
MathJax下载网页内容,扫描页面内容寻找等式标记,并对数学进行排版。因此,MathJax不需要在阅读器系统上安装软件或额外的字体。这允许MathJax在任何支持JavaScript的浏览器中运行,包括移动设备。[17]
MathJax可以使用HTML和CSS的组合显示数学,或者在可用时使用浏览器的原生MathML支持。MathJax用于排版数学的确切方法取决于用户浏览器的功能、用户系统上可用的字体和配置设置。MathJax 自 v2.0-beta版引入了SVG渲染功能。[18]
在HTML和CSS排版的情况下,MathJax通过使用数学字体(如果有的话)和使用旧浏览器的图像来最大化数学显示质量。对于支持Web字体的新浏览器,MathJax提供了一组全面的Web字体,可以根据需要下载。如果浏览器不支持Web字体,MathJax将检查用户系统上是否有有效的字体。如果这不起作用,MathJax将提供所需符号的图像。可以配置MathJax来启用或禁用Web字体、本地字体和图像字体。
MathJax使用STIX字体在Web页面中包含数学。在本地电脑上安装字体可以提高MathJax的排版速度。[19]
MathJax可以显示用LaTeX或MathML标记编写的数学符号。因为MathJax只用于数学显示,而LaTeX是一种文档布局语言,所以MathJax只支持用于描述数学表示法的LaTeX子集。[17]
MathJax还通过其API将MathML公开给辅助技术软件,以及基本的WAI-ARIA“角色”和更老的“altext”属性,从而支持数学可访问性。[20]
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图像字体模式。浏览器兼容性列表可以在官方网站上找到。[21]
MathJax可以很容易地添加到许多流行的Web平台上。[22]
MathJax可以通过MathJax-node库在NodeJS中使用[23]
在受支持的浏览器中显示的任何MathJax公式,都可以通过右键单击或控件单击“Show Math as”子菜单,以MathML或LaTeX格式复制出来。然后,它可以粘贴到任何支持MathML或LaTeX的公式编辑器中,例如Mathematica、MathType、MathMagic、Firemath,以便重用。[24]
任何第三方公式编辑器以MathML或LaTeX格式生成的方程都可以在支持MathJax的Web页面中使用。
MathJax复制LaTeX的数学环境命令。通过扩展支持AMS-LaTeX数学命令。MathJax还支持TeX宏和其他格式,比如\color
和\underline
。[25]
MathJax在beta 2版本中增加了对MathML 2.0和一些MathML 3.0构造的部分支持。MathJax支持演示MathML,并且从2.2版开始提供了对内容MathML的实验性支持。[26]
MathJax站点提供了一个内容分发网络(CDN),其中,浏览器可以在运行时从CDN加载MathJax工作所需的JavaScript。这简化了安装,并确保始终使用库的最新版本。随着时间的推移,伺服器的使用从2011年的每月1.3TB流量增长到2017年的每月70TB流量。由于伺服器托管成本增加,主CDN伺服器于2017年4月底关闭。备用第三方CDN伺服器可用。[27]