许多技术专业人员开始使用 LaTeX 的原因之一是它便于排版数学公式。在某些圈子里,类似 LaTeX 的语法已成为在电子邮件和其他电子通信中传达数学公式的事实上的语言。
在过去的几年中,人们做出了许多努力来为这种“语言”实现非基于 TeX 的解释器。其中最引人注目的可能是 MathJax(及其前身 jsMath),但还有其他的;例如,WordPress 有一个使用类似 TeX 语法包含数学的系统。
虽然有许多不同的解释器可以解释这种 TeX 风格数学“标记语言”,但似乎没有任何标准来规定这种解释器应该能够做什么。当然,它不应该被要求提供 (La)TeX 的全部功能,因为这与 Markdown 和 HTML 等设置不兼容。缺乏标准似乎可能会导致 TeX 类语法出现许多不同的变体,这些变体在重要细节上都有所不同。另一方面,如果有标准,那么浏览器可能会开始提供运行速度更快、产生更高质量结果的本机实现。
是否曾经有人努力开发“类似 TeX 的语法”作为数学标记语言的标准?
答案1
我们(W3C 数学工作组)在 MathML2 周期开始时确实考虑过为 mathml 指定线性(类似 latex)语法(这是明确提议的可交付成果),但初步调查结果并不乐观。正如您所注意到的,我们调查了几个,但我记不清具体是哪些,可能是 jsmath(当时)、asciimathml、Word 的线性格式、itex 和其他几个,对于如果定义了标准语法,您是否会转向标准语法这个问题,我们得到的答案几乎一致是“否”,这并没有鼓励我们定义标准,我们放弃了这项工作。
在 LaTeX 方面,打包必需的以及根据LaTeX 的发布正是出于这个原因,试图标记出一个标准的 LaTeX 语法:特别是包括数组包表扩展、amsmath 数学对齐和 babel 所做的事情。
这就是说
另一方面,如果有一个标准,那么浏览器可能就会开始提供原生实现
浏览器支持方面最大的障碍不是解析器,而是渲染。像弹性括号这样的要求意味着以一种与 CSS 自上而下的样式方法不相符的方式测量子表达式。正如 Firefox 和 Webkit 所展示的那样,这并非不可能,但它并不像人们希望的那么简单(这基本上就是 Chrome 开发人员突然抛弃它的原因)。