比较 MathJax 和 MathML

比较 MathJax 和 MathML

我的组织需要更新其网站,特别是,该网站将托管大量与数学相关的主题的博客和维基。我们需要使用某种方式在我们的网页上呈现 LaTeX。如果可以选择 MathJax 和 MathML,您会推荐哪一个?还有其他解决方案吗?

答案1

似乎要使用 MathML,我(“假设的我”)需要使用一个名为 iTeX 的 Ruby 程序

MathML 的描述似乎非常混乱,它根本不需要 iTeX 或 Ruby 或任何服务器端配置。

你无法真正比​​较 MathJax 和 MathML,因为它们是不同的东西,

MathJax 是 TeX 类语法和 MathML 的客户端解析器实现。
然后(无论使用哪种输入语法进行输入)它都可以使用各种渲染方法,包括浏览器中的原生 MathML(包括 IE+MathPlayer,或最近的 WebKit 版本,而不仅仅是 Firefox),或者它可以使用 CSS 渲染。

目前,如果您不想使用某些 JavaScript,例如 MathJax(或更简单、更不具挑战性的 asciimathml),那么您确实需要将文件作为格式良好的 XHTML(不一定是有效的 XHTML,尽管有上述评论)提供,但这种情况正在发生变化,MathML 解析内置于 HTML5 中,因此例如 Firefox 4(测试版)将在 HTML 页面中呈现 MathML,而不仅仅是 XHTML。因此,在未来一两年内,人们会期望 HTML+MathML 页面根本不需要任何 JavaScript 或服务器端支持。而类似 TeX 的语法(如 wiki)将始终需要一些额外的 JavaScript 或服务器处理。

是否要使用线性 TeX 类语法或 MathML 的 XML/HTML 语法在很大程度上取决于您的选择,这完全类似于选择是否为您的网页使用线性 wiki 样式标记,还是直接编码(或生成)HTML 标记。有时一种比另一种更合适,许多网站同时使用 wiki 和传统 HTML 标记,具体取决于上下文。

大卫

(mathml2 和 3 的联合编辑,以及 latex2e 的联合开发者,并且在此之前长期与曼彻斯特数学系合作,并且仍然是 LMS 成员,如果您想在任何阶段离线讨论 MathML,我很容易找到 :-)

答案2

我推荐 MathJax。MathJax 可以配置为在浏览器中可用时使用原生 MathML 渲染,并且仅在原生渲染不可用时才返回 HTML-CSS 模式。这样您就可以两全其美。(MathJax 的一个限制是字体加载速度往往很慢。但是,一旦它们缓存在浏览器中,显示速度就会非常快)。

答案3

这个问题类似于将 LaTeX 方程式嵌入网页我认为我对 MathML 的论据非常有力。我现在还可以添加一些额外的东西,因为 MathOverflow 使用 MathJaX,所以我有一些直接的经验。

  1. MathJaX 是真的很慢,尤其是当服务器在美国而我坐在挪威这里时。你需要考虑用户的地理位置。Yiannis 说,一个限制是字体需要很长时间才能加载。这是真的,如果你像一个好的互联网用户一样清除缓存,那么它们必须在每个会话中重新加载。即使在同一个会话中,我也发现同一个页面第二次加载的时间和第一次一样长。即使在正确的地理位置,也不是每个人都能买得起高档电脑和高速互联网连接。当我“在路上”时,我用的是一台 6 年前的 iBook,它运行着 USB 上的 Linux,吱吱作响。再加上不稳定的互联网连接,MathJaX 让网站完全无法使用。

  2. 使用 HTML+CSS 的 MathJaX 简直糟透了。使用 MathML 渲染看起来确实不错,但为什么不首先使用 MathML 呢?


我决定将“任何其他解决方案”解释为实现请求。我不认为这里是完整列表的合适地方,但只是想让你知道,在服务器端,有支持 MathML 的软件可用于所有常见的事情:

  • 维基百科:因斯蒂基是一个支持 MathML 的 wiki 系统。nLab 正在使用它。
  • 论坛:香草是一款我改编的论坛软件,支持 MathML。nForum 就是使用它的。
  • 博客:香草可以作为博客运行。我还为 Wordpress 编写了一个 MathML 插件(请参阅这里例如),布洛索姆还可以生成 MathML,并且 n-Category Cafe 在 Moveable Type 上运行。

答案4

Peter Luschny 准备了精美的测试页并开始讨论在 de.ctt 上(德语)。

相关内容