【问题标题】:Math equations on the web网络上的数学方程式
【发布时间】:2015-04-02 05:34:58
【问题描述】:

如何在网络上呈现数学方程式?我已经熟悉 LaTeX 的数学模式了。

【问题讨论】:

  • 我实际上已经做了很多。我只能说,在你开始之前确保你想走这条路,祝你好运。

标签: html math latex equation mathml


【解决方案1】:

其他答案已过时。截至 2012 年,漂亮的数学很容易编写和呈现。该技术称为MathJax。你可以在 MathOverflow 和数百个数学博客上看到它的安静动作。

MathJax 是一个开源的 JavaScript 数学显示引擎,适用于所有现代浏览器。不再为读者设置。没有更多的浏览器插件。没有更多的字体安装......它只是工作。

Mathjax 可靠且不引人注目,因此您只需要编写数学即可。您在 Tex (Latex) 中执行此操作,这是一种大多数科学家和数学家都熟悉的简洁语法(并且共享了数十年的优秀教程)。对于 Mathjax,您只需在 HTML 中的双美元符号之间内嵌 Tex 代码,例如。

当$$a \ne 0$$时,$$ax^2 + bx + c = 0$$有两种解,它们是$$x = {-b \pm \sqrt{b^2- 4ac} \over 2a}.$$

要使用 Mathjax 来呈现您的数学,请在 HTML 标头中添加一行 Javascript:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>

如果您在 Wordpress、Tumblr 或 Blogger 等平台上发布,他们的画廊中有插件可以执行此操作 (Wordpress)。

Mathjax 如何渲染数学?使用 Javascript,它可以在几分之一秒内将您的数学呈现为漂亮的 HTML 和 CSS(非常类似于 Latex)。如果浏览器支持 MathML,它也可以通过它呈现数学,但这并不重要。这是一个普遍的成功,因为最终用户的工作流程很简单,而不是因为它背后的技术。

如果您有帐户,您可以在维基百科上选择使用 Mathjax(通过 png 图像)。寻找Special:Preferences/外观。


MathML 很荒谬。它既不可读也不可写(二次方程采用 800 characters - 在 Tex 中为 50)。这只是 another pointless XML language 。值得庆幸的是,在大多数浏览器支持它之前它已经过时了。它甚至看起来不如 Tex 或 Mathjax 的 HTML-CSS!

【讨论】:

  • 我理解并同意您关于 MathML 不是人类可读或可写的观点。但是,当您希望机器读取、生成和验证语义正确的数学时,MathML Content 是您的最佳选择。从 MathML 内容生成 MathML Presentation(MathJax 可以渲染)、LaTeX 或 AsciiMathML 非常容易。
  • 我很高兴我向下滚动到足够远才能看到这个答案;它比 MathML 简单得多,也易于设置。我向任何想要渲染数学的人推荐这个。
  • 未来注意事项:cdn.mathjax.org 即将结束生命周期,请查看mathjax.org/cdn-shutting-down 了解迁移提示。
【解决方案2】:

事实证明这有点痛苦。

您可以使用MathML,但浏览器支持仍然不确定。如果您从 Latex 开始,您有几个转换为 html 的选项,但它们通常最终都会将实际方程式渲染为图像并内联这些。

没有什么漂亮的(除非你求助于 pdf 或其他东西)。什么是最好的取决于内容的种类、方程的数量以及方程的复杂程度。

Here 是一个不错的总结。

【讨论】:

  • 基于 firefox 和 gecko 的浏览器支持 MathML...您还想要什么?
  • 请注意,并非所有解决方案都嵌入图像。例如,MathJax 使用纯 HTML 和 CSS 呈现数学。
  • Joey,我很确定 MathJax 在得到回答时不在身边。答案有点老了,但基本上网络上的数学仍然是一个问题,但比我写这篇文章时要好。
  • @Joey 我在我的博客上使用 MathML,我很高兴放弃对我最不喜欢的浏览器(Chrome 和 IE)的支持,以在我认为不是邪恶的浏览器(Firefox 和歌剧)。当然,我在客户的网站上使用 MathJax/images。
【解决方案3】:

我最喜欢的两种方法:

【讨论】:

    【解决方案4】:

    jsMath 包是另一个使用 LaTeX 标记和本机字体的选项。引用他们的网页http://www.math.union.edu/~dpvc/jsMath/

    jsMath 包提供了一个方法 在 HTML 页面中包含数学 适用于多个浏览器 在 Windows、Macintosh OS X、Linux 下 和其他风格的unix。它 克服了一些缺点 传统的使用方法 代表数学的图像: jsMath 使用原生字体,所以它们 更改大小时调整大小 浏览器中的文本,它们打印在 打印机的全分辨率, 你不必等待几十个 要下载的图像,以便 在网页中查看数学。 网页也有好处 作者,因为没有必要 预处理您的网页以生成 任何图像,数学是 以 TeX 形式输入,因此很容易 创建和维护您的网页。

    参见例如this pagethat one

    【讨论】:

    • jsMath 现在是令人愉快的MathJax
    【解决方案5】:

    Katex

    Khan Academy 的一些开发人员发布了一个基于 Tex 的 快速 库,名为 Katex

    • 快速
    • 高品质
    • 独立的;并且,
    • 可以在服务器上渲染

    看起来是一个很棒的现代选择。

    【讨论】:

      【解决方案6】:

      您可以直接在 HTML 中进行比大多数人意识到的更多的数学运算。请参阅这些notes

      渲染 LaTeX 的唯一安全方法是将输出保存为图像。一些站点尝试使用工具即时执行此操作,但它们从未可靠地工作。例如,在某些博客上,如果您直接访问网页,则此功能有效,但如果您通过 Feedburner/Google Reader 则无效。

      我在 Firefox 和 IE 中对 MathML 浏览器支持的体验很糟糕。甚至不要尝试。还没有。也许几年后。

      这是我用来将 LaTeX 编译为 gif 的 site

      如果您愿意使用 PDF 而不是 HTML,事情会变得容易得多。只需创建您的 LaTeX 文档并使用pdflatex 将其编译为 PDF。如果您确实选择了 PDF 路线,您可能会对 how to include PDF properties 感兴趣,例如您的 LaTeX 文件中的作者、关键字等。此外,this page 解释了如何标记 LaTeX 以在 PDF 中创建链接。

      【讨论】:

      • +1 获取有关使用简单 HTML 处理简单公式的提示,感谢您提供的链接。
      【解决方案7】:

      texvc 可以将 LaTeX 数学方程式转换为 png 或 HTML。

      【讨论】:

        【解决方案8】:

        LaTeX 和MathML 是唯一“正确”的方法。然而,每个都有严重的局限性。其他选项是图像(如果您稍后需要编辑方程式,则不是最佳选择)或复杂的 HTML(需要一些培训,但可以完成)。

        【讨论】:

          【解决方案9】:

          我确实在我的 wiki 中“按需”渲染 LaTeX 公式。基本上,我从每个 wiki 部分提取乳胶代码并将其放入 .tex 文件中(其文件名是乳胶的 md5sum,因此如果再次使用相同的代码,将使用相同的 tex 并因此使用相同的图像) . 然后,tex 文件每分钟由一个 cron 任务编译,首先生成一个 .ps,然后使用转换程序生成一个 .png(再次以原始 md5 命名)。 wiki 条目将乳胶文本替换为引用此 png 的 img 标记(原始乳胶代码作为 alt,用于文本阅读器)。

          如果您想这样做,请非常小心,尽可能多地消毒您的乳胶。 Latex 中有一些命令,例如 \input,您绝对不想让它们通过,因为任何能够使用它们的人都可以在您的服务器磁盘中包含任何可读文件并将其包含在生成的 Latex 输出中。

          为了解决这个问题,Mediawiki(维基百科的名声)有一个特殊的插件来清理乳胶输入,但我不想使用它有两个原因:首先我没有使用 mediawiki,其次它是用 OCaml 编写的我不想乱用我不懂的语言。

          【讨论】:

            【解决方案10】:

            我过去曾为此使用过 ASCIIMathML。它本质上是一个 JavaScript 库,可以在 IE 中使用插件来优化性能,但在 IE 和 Firefox/Mozilla 中也可以在没有它的情况下工作(虽然速度有点慢)。该语法支持 LaTeX 的一个子集,但差异会导致一些混淆,因此它可能会使您的用户感到困惑,具体取决于他们来自哪里。

            这里有一些链接,您可以自己查看:

            并不完美,也不能在所有浏览器(Safari 等)中使用,但至少在今天是可以使用的,尽管在网络的一些选择性子集中。

            【讨论】:

              【解决方案11】:

              我为此编写了一个开源 javascript 模块,名为 jqmath。见http://mathscribe.com/author/jqmath.html。您以简化的类似 TeX 的语法键入方程,jqmath 将它们转换为 MathML 或简单的 HTML 和 CSS,具体取决于浏览器。这比使用图像更高效、更易于访问。

              顺便说一句,这里其他答案中提到的一些摘要和注释现在已经过时了。此外,Firefox 现在支持 MathML,并且 webkit(Chrome 和 Safari)在他们的夜间构建中都有它,尽管他们还没有发布它。如果您有 MathPlayer 插件,Internet Explorer 会呈现 MathML。 Opera 使用样式表伪造 MathML。 MathML 是 HTML 5 标准的一部分,因此可能所有这些浏览器都会早早地原生支持它。确实,在那之前,jqmath 的输出看起来不会像 TeX 的那么好,但它肯定是可读的,并且对于未来的网页来说绝对是一个更好的解决方案。

              【讨论】:

                【解决方案12】:

                如果您确实使用图像,盲人用户的阅读器是否能够阅读方程式?有些人可能想要。

                【讨论】:

                  【解决方案13】:

                  有一个名为LatexIt 的小 Mac 应用程序可以很容易地将 LaTeX 方程转换为 PDF、PNG 等。

                  (我用它在 Keynote 或 PowerPoint 中为我的幻灯片创建方程式。它非常棒,支持拖放操作,因此您可以在任何地方“拖动”方程式来插入它们。)

                  【讨论】:

                    【解决方案14】:

                    我的印象是 MediaWiki 将允许您输入 LaTeX 标记(或类似的东西)并动态决定显示它的最佳方式。目前,我认为在可能的情况下将 HTML 用于小型表达式,将图像用于无法以其他方式表示的更复杂的表达式;我怀疑有一天它可能会利用任何其他成为最先进技术的方法,即如果浏览器开始支持它,MathML。所以我想你可能会发现,如果你使用 MediaWiki,就好像它是你的网站引擎一样,你将与未来的任何东西向前兼容。

                    【讨论】:

                      【解决方案15】:

                      您可以通过 LaTeX 服务器即时生成方程式图像。

                      http://www.forkosh.com/mimetex.html

                      如果您使用的是 WordPress,则可以使用 LaTeX for WordPress (http://wordpress.org/extend/plugins/latex/) 插件。

                      【讨论】:

                        【解决方案16】:

                        目前客户端 MathML 渲染的状态还没有准备好被广泛采用。这意味着您确实需要将 MathML 呈现为图像。你如何做到这一点取决于你的环境。

                        您对自己的服务器有 root 访问权限吗?您是否愿意在其上安装软件?在这种情况下,您可以渲染自己的图像。如果您正在运行博客软件或 wiki,通常您可以找到一个可以利用您的平台功能的插件。如果您打算编写大量数学表达式,这通常是理想的场景。

                        如果您托管自己的图像,则可以预渲染它们,或使用 mimetex.cgi 之类的扩展程序。如果您允许渲染任意 MathML 表达式,您将面临其他网站热链接到您的图像渲染器的风险。如果您在网络服务器上设置过滤器以防止热链接,那么通过提要阅读器查看您网站的人也将被阻止。

                        如果您无法渲染自己的图像,或者您只想渲染几个表情,那么您通常可以让其他服务生成图像,然后在您的网站上热链接图像。当然,不利的一面是您依赖于另一个站点,该站点为您提供图像而一无所获。

                        其他服务的示例(如其他 cmets 中所述)包括: * http://www.artofproblemsolving.com/LaTeX/AoPS_L_TeXer.php : alt text http://alt2.artofproblemsolving.com/Forum/latexrender/pictures/a/f/c/afc183343d84d030898f589bac12a8d9cf04558a.gif * http://www.forkosh.com/mimetex.html : mimetex.cgi http://www.forkosh.dreamhost.com/mimetex.cgi?c=%5Csqrt%7Ba%5E2+b%5E2%7D

                        使用 mimetex 的优点是可以轻松更改公式并重新渲染。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多