javascript - 在 MathJax 中有什么理由支持 MathML 语法而不是 TeX?

标签 javascript html math mathjax

MathJax ,用于呈现数学的开源 javascript 库,支持多种语法,包括 MathML 和 LaTeX。与 TeX 语法相比,是否有任何理由支持页内方程使用 MathML 语法?在我看来,MathML 冗长得多。

最佳答案

好吧,如果你仔细观察编码,你会发现 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。

我使用过 jsMath,最近使用过 MathJax。但我目前仍然使用 Codecogs.com 将 latex 动态转换为 GIF。 (它们都有一个 <script> 并且你可以使用直接链接 )

事实是,您只有两个选择(嗯,技术上有四个)。您有 MathML 或 GIF 图像作为主要的两个。所有这些脚本和托管站点的作用是促进从 LaTeX 到 GIF 或 MathML(或不太理想的 SVG 或 HTML-CSS)的转换。纯 LaTeX 文本与 MathML 源代码一样难以阅读 - 您必须有某种渲染过程。

编写自己的 MathML 代码的一个巨大优势是您可以完全控制基于 XML 的语言的语法和结构(以防您将其用于其他数学程序和站点)。但其他优点是:您不需要 javascript,因此您的访问者不必启用 javascript。

巧合的是,ASCIIMath 是一个简单的 javascript 以非常漂亮和流线型的方式将 LaTeX 转换为 Unicode 和 HTML-CSS 的好例子。

关于javascript - 在 MathJax 中有什么理由支持 MathML 语法而不是 TeX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545010/

相关文章:

javascript - $ ("<div/>").text(value).html 不是函数错误

javascript - 注入(inject) HTML5 数据属性与注入(inject) javascript 数据结构

Javascript 找出根据数字组成的自然群有多少个?

java - 如何求和之字形算法

c++ - C++ 中的唯一数字

javascript - 从 JSON 对象读取值

javascript - Rails 4 : Testing out AJAX . 单击并.load

html - 在具有指定尺寸的 div 内部时,图像宽度和最大宽度有什么区别?

javascript - 为什么 element.setAttribute ('checked' , true) 不起作用?

javascript - 列表其他部分中 ng-model 值的变化也发生了变化