45

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

4

16 回答 16

32

其他答案已过时。截至 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} \超过 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,它也可以通过它呈现数学,但这并不重要。这是一个普遍的成功,因为最终用户的工作流程很简单,而不是因为它背后的技术。

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


MathML 是荒谬的。它既不可读也不可写(二次方程需要800 个字符- 在 Tex 中是 50)。它只是另一种毫无意义的 XML 语言。值得庆幸的是,在大多数浏览器支持它之前它已经过时了。它甚至不如 Tex 或 Mathjax 的 HTML-CSS 好

于 2012-08-03T10:03:12.427 回答
25

事实证明,这有点痛苦。

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

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

是一个体面的总结。

于 2009-04-21T23:55:28.153 回答
19

我最喜欢的两种方法:

  • 客户端:MathJax。在此处查看一些示例。它非常易于使用和安装,其开发得到了 AMS 和 SIAM等科研机构的支持。我希望这将成为在 Web 上显示数学的事实标准。

  • 服务器端:LaTeXML。这用于生成NIST 数学函数数字图书馆。如果您的 TeX 源代码中有自定义宏,它往往会打嗝,但总的来说,它确实给出了非常好的结果。

于 2011-03-20T09:52:16.633 回答
11

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

jsMath 包提供了一种在 HTML 页面中包含数学的方法,该方法可以在 Windows、Macintosh OS X、Linux 和其他风格的 unix 下跨多个浏览器工作。它克服了使用图像来表示数学的传统方法的许多缺点:jsMath 使用原生字体,因此当您更改浏览器中文本的大小时它们会调整大小,它们会以打印机的全分辨率打印,并且您无需等待下载数十张图像即可在网页中查看数学。网页作者也有优势,因为不需要对网页进行预处理以生成任何图像,并且数学是以 TeX 形式输入的,因此很容易创建和维护您的网页。

参见例如这一页一页。

于 2009-04-23T20:09:34.687 回答
11

凯特克斯

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

  • 快速地
  • 高质量
  • 自给自足;和,
  • 可以在服务器上渲染

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

凯特克斯样品

于 2015-04-01T21:34:58.683 回答
8

你可以直接在 HTML 中做比大多数人意识到的更多的数学运算。请参阅这些说明

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

在 Firefox 和 IE 中,我在 MathML 浏览器支持方面有过糟糕的经历。甚至不要尝试。还没有。也许几年后。

这是我用来将 LaTeX 编译为 gif 的网站。

如果您愿意使用 PDF 而不是 HTML,事情会变得容易得多。只需创建您的 LaTeX 文档并用于pdflatex将其编译为 PDF。如果您确实走 PDF 路线,您可能会对如何在 LaTeX 文件中包含 PDF 属性(例如作者、关键字等)感兴趣。此外,此页面还解释了如何标记 LaTeX 以在 PDF 中创建链接。

于 2009-04-22T01:00:21.600 回答
1

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

于 2009-04-21T23:54:57.373 回答
1

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

于 2009-04-21T23:56:00.630 回答
1

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

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

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

于 2009-04-22T01:30:59.450 回答
1

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

以下是一些链接,您可以自己查看:

并不完美,并且不适用于所有浏览器(Safari 等),但它至少在今天是有效的,尽管在网络的一些选择性子集中。

于 2009-04-22T02:15:32.980 回答
1

为此,我编写了一个开源 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 的那么好,但它肯定是可读的,并且对于未来的网页来说绝对是一个更好的解决方案。

于 2011-03-19T23:08:14.867 回答
0

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

于 2009-04-22T00:00:02.493 回答
0

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

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

于 2009-04-22T00:13:22.650 回答
0

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

于 2009-04-22T01:57:30.993 回答
0

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

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

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

于 2009-04-22T06:59:21.270 回答
0

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

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

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

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

其他服务的示例(如其他评论中所述)包括: * 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 的优点是可以轻松更改公式并重新渲染。

于 2009-06-05T07:05:40.733 回答