我想在网页中加入一些基本的数学公式。有没有简单的方法可以将 LaTeX 编译成可以上传的图像,或者让浏览器解析代码?
答案1
数学网址很酷。不过它是专门针对数学的。
答案2
答案3
将数学嵌入网页时,有两个主要问题:
- 应该用什么格式来显示呢?
- 应该在哪里进行转换?
在我看来,每个问题都有一个明确的答案,只有在最佳解决方案确实无法实现时才应该使用不同的解决方案。
数学语法. 理由:
- 它是仅有的 无障碍这样做的方法。将原始 LaTeX 放在
alt
图像的标签中是不可访问的 - 它依赖于接收者能够理解原始 LaTeX 源代码(稍后会详细介绍)。此外,并非所有需要可访问网页的人都使用屏幕阅读器,有些人只需要放大页面。 - 这是可样式化(不确定这是否是一个词)。由于 MathML 是 XHTML 套件的一部分,因此它可以采用与文档其余部分相同的样式(即通过 CSS),因此最终的显示效果比任何其他显示效果都要和谐得多(尝试在其中一个 wordpress 博客上将背景颜色更改为更适合眼睛的颜色,您就会明白我的意思)。
- 这是小的。对我的系统进行了一次快速测试,测试内容是我手头上 515 个简单文件,结果显示 PNG 的大小为 175kB,而 MathML 等效文件则略小于 60kB。PNG 的分辨率不高,例如,包含 Zeta 符号的 PNG 是一张 9x13 的图像。
- 它是仅有的 无障碍这样做的方法。将原始 LaTeX 放在
服务器端. 理由:
- 这是小的. 而不是同时发送源和有关如何编译它的说明,您只需发送结果即可。
- 这是可靠的。您可以轻松检查您希望用户看到的内容是否是他们应该看到的内容。具体来说,JavaScript 解决方案依赖于两件事的正确性:JavaScript 脚本和浏览器中 javascript 的实现。MathML 仅依赖于浏览器中 MathML 的实现。
- 这是快速地。有了服务器端缓存,你只需要处理一次数学运算就可以了。
- 这是可验证(我猜,类似于可靠)。我不完全理解类型是 w3c 制定的规范的一部分,但 MathML 无疑是推荐的。尽管浏览器支持各不相同,但这些差异是已知的,因为它们可以使用开放标准进行测量,因此可以考虑在内。
服务器端 MathML 是最佳解决方案。当然,这并不总是可行的,因此其他解决方案也是有用的。
有各种反对使用服务器端 MathML 的标准论点和其他有关网页中数学的误解,值得花一点时间来仔细考虑。
神话
在 alt 标签中发送原始 LaTeX 代码使图像可以访问。
当人们说这句话时,他们的意思是他们能读懂
$a^2 + b^2 = c^2$
它。试试他们做更复杂的事情,你很快就会发现这完全是胡说八道。例如,试着让某人读出以下内容:$\begin{array}\ell^0(\mathbb{R})&\;\mapsto&\;\ell^2(\mathbb{R})\\\downarrow&&\uparrow\\L^2(\mathbb{R})&\subseteq\,&L^\infty(\mathbb{R})\end{array}$
。当然,有人会说,“我可以理解!”但是这不是重点你为别人写了一个网页,LaTeX 越复杂,能立即读懂的人就越少。MathML 支持不佳。
这是典型的先有鸡还是先有蛋的问题。Firefox 对 MathML 的支持非常好,而 IE 则MathPlayer 插件,并且在阿玛雅(那是什么?我听到了你的哭声!)。此外,还有一些为 Opera 和 WebKit 工作的团队,他们只是需要一点鼓励!给他们发一封电子邮件说:“我喜欢你的浏览器,但除非它有适当的 MathML 支持,否则我无法使用它”,这会给他们更多的动力。当然,Firefox 和其他浏览器的实现中存在错误,但这些都不是问题已知等等都可以解决。
MathML 要求文档是有效的 XHTML。
事实上,这不是神话。这是绝对正确的。但你的页面从一开始就是有效的!我是一名数学家,我理想的文档是不能被误解。这是不可能的,所以我尝试实现一个较小的目标,即任何误解都可以归咎于阅读它的人而不是我。MathML 是一个开放标准,它允许我在网页上实现这一目标 - 至少从技术上讲,内容更加多样化!
最后 - 关于这一部分 - 对于那些仍然担心 Joe Blogs(或地理上正确的是 Ola Nordmann)由于使用旧版本的 IE 并拒绝安装插件而无法读取您的网页,实际上可以在您的服务器上提供两个版本的数学,并将 MathML 发送给可以看到它的用户,而将 PNG 发送给看不到它的用户,从而获得两全其美的效果。
那么实施起来如何呢?好吧,你很幸运。 特克斯可以做到一切,而且做得非常好。iTeX 是一个快速的 c++ 程序,可将 LaTeX 数学语言子集转换为 MathML。原始软件包附带 ruby 绑定,我已将其扩展到 PHP、Perl 和 Python。通过将其与其他软件包结合,特别是数学或者gtkmathview,可以进一步将 MathML 转换为图像以用于损坏的浏览器。(联系我获取这些扩展;我还没有来得及编写它们 - 它在我的 TODO 列表中!)
例如,请参阅实验室(纯 MathML)和论坛(MathML、SVG 或 PNG,取决于您使用的浏览器)。
最后,虽然我关心可访问性,但我并不是专家。因此,我将我的答案交叉发布到了 blindmath 邮件列表,并将根据我在那里收到的回复进行更新。
答案4
如果你使用的是 Mac,拉特西是一款很棒的实用程序,它允许您输入一些 latex(用于方程式,但它可以与有效的 latex 一起使用),运行 latex 并生成图像。它将 latex 嵌入到图像中,因此如果您稍后打开图像,就可以编辑 latex。这意味着您不需要一堆微小的 .tex 文件。