MathJax是用于渲染数学的开源 JavaScript 库,支持多种语法,包括 MathML 和 LaTeX。是否有任何理由支持将 MathML 语法用于页内方程而不是 TeX 语法?在我看来,MathML 更加冗长。
3 回答
好吧,如果您仔细查看编码,您会发现 MathJax 以及 jsMath 和其他类似的 javascript 程序都做几乎相同的事情。他们将由服务器提供的网页源代码中的 LaTeX 转换为客户端的 MathML。随意突出显示您的“LaTeX”并查看所选源代码在浏览器中的实际外观。您会发现它是 MathML(在大多数情况下)。
除非您使用脚本或托管站点将 LaTeX 光栅化为 GIF 或 PNG 图像(这是另一个可行的选择),否则您的 LaTeX 将呈现为 MathML-Presentation。
然而,在 MathJax 的情况下,它还为您提供了 SVG 和 HTML-CSS 渲染的选项。这两者都需要大量的客户端源代码。SVG 不是很实用(不幸的是,它甚至没有被普遍认可),但它确实很酷。HTML-CSS 虽然看起来更好,但数学解析器或 XML 解析器无法读取......它也是 MathJax 的默认设置,它给客户端带来了更重的负载。因此,在我看来,默认使用他们的 MathML 渲染会更好。
因此,如果我正确理解了您的问题,那么您的问题实际上是没有实际意义的。在这两种情况下,您已经在处理 MathML。不同之处在于,您觉得哪个更容易编写和嵌入到页面中?就个人而言,我更喜欢用 LaTeX 写作,而不是 MathML。
I have used jsMath and most recently MathJax. But I also currently do still use Codecogs.com to convert latex into GIF on the fly. (They have both a <script> and you can use direct linking <img src=> )
The fact of the matter is, you only have two options (well, four technically). You have MathML or GIF images as the primary two. What all these scripts and hosting sites do is they facilitate a conversion from LaTeX to either GIF or MathML (or the less desirable SVG or HTML-CSS). Straight LaTeX text is as difficult to read as MathML source code - you have to have some sort of rendering process.
编写自己的 MathML 的一个巨大优势是您可以完全控制基于 XML 的语言的语法和结构(以防您将其提供给其他数学程序和站点)。但其他优点是:您不需要 javascript,因此您的访问者不必启用 javascript。
巧合的是,ASCIIMath 是一个简单的 javascript 示例,它以非常漂亮和流线型的方式将 LaTeX 转换为 Unicode 和 HTML-CSS。
如果您不需要人来编写方程,MathML 会更加健壮。对标记有一个清晰的解释(默认情况下,在所有 MathJax 实现中将使用哪种显示模式?),MathML 的文本到语音支持有更好的机会。通过 XPath 很容易搜索数学元素所在的位置等。
MathJax 方法的其他缺点是启动时间税,它迫使您的浏览器使用 Javascript。
MathML 为视障人士提供了可访问性,但即使您使用 LaTeX 创作方程式,您也可以将方程式显示为 MathML。
至于 Elazar 关于“在所有 MathJax 实现中默认使用哪种显示模式”的问题,这完全取决于您在设置页面时。<script>
如MathJax 文档中所述,它是使用标记完成的。