MathJax,开源javascript库来渲染数学,支持多种语法,包括MathML和LaTeX。是否有理由支持使用MathML语法进行页内方程式与TeX语法?它只是在我看来,MathML更加冗长。
答案 0 :(得分: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。
我使用过jsMath,最近使用过MathJax。但我目前仍然使用Codecogs.com将乳胶转换为GIF。 (他们有一个< script>你可以使用直接链接< img src =>)
事实上,你只有两种选择(好吧,技术上有四种)。您有MathML或GIF图像作为主要两个。所有这些脚本和托管站点所做的是它们促进从LaTeX到GIF或MathML(或不太理想的SVG或HTML-CSS)的转换。直接LaTeX文本与MathML源代码一样难以阅读 - 您必须有某种渲染过程。
编写自己的MathML的一个巨大优势是,您可以完全控制基于XML的语言的语法和结构(如果您将其提供给其他数学程序和站点)。但其他优点是:您不需要javascript,因此您的访问者不必启用javascript。
巧合的是,ASCIIMath是一个很好的例子,简单的javascript以非常漂亮和简化的方式将LaTeX转换为Unicode和HTML-CSS。
答案 1 :(得分:1)
如果您不需要人来编写方程式,MathML会更加健壮。对标记有一个明确的解释(在所有MathJax实现中默认使用哪种显示模式?),对MathML的文本到语音支持的可能性更大。通过XPath可以轻松搜索数学元素等等。
MathJax方法的其他缺点是,启动时税,它迫使您的浏览器使用Javascript。
答案 2 :(得分:0)
MathML为视障人士提供辅助功能,但即使您使用LaTeX创作,也可以将您的方程式显示为MathML。
至于Elazar关于“在所有MathJax实现中默认使用哪种显示模式”的问题,在设置页面时,完全取决于您。它是使用<script>
标记完成的,如MathJax documentation。