网络上的数学方程式

时间:2009-04-21 23:51:21

标签: html math latex equation mathml

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

16 个答案:

答案 0 :(得分:28)

其他答案已过时。截至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一样好!

答案 1 :(得分:25)

事实证明这有点痛苦。

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

Nothings一切都很漂亮(除非你诉诸于pdf或其他东西)。什么是最好的将取决于什么样的内容,有多少方程,以及方程有多复杂。

Here是一个不错的总结。

答案 2 :(得分:18)

我最喜欢的两种方法:

答案 3 :(得分:11)

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

  

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

例如,请参阅this pagethat one

答案 4 :(得分:7)

你可以直接用HTML做更多的数学,而不是大多数人意识到的。请参阅这些notes

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

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

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

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

答案 5 :(得分:7)

Katex

来自Khan Academy的一些开发人员发布了一个基于Tex的{strong>超快速库,名为Katex

  • 快速
  • 高品质
  • 自包含;和,
  • 可以在服务器上呈现

看起来很棒的现代选择。

Katex sample

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

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

为了解决这个问题,Mediawiki(维基百科成名)有一个特殊的插件来消毒乳胶输入,但我不想使用它有两个原因:首先我没有使用mediawiki,第二个是用OCaml编写的,我不想乱用一种我不知道的语言。

答案 9 :(得分:1)

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

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

并不完美,并且在所有浏览器(Safari等)中都不起作用,但它至少在今天起作用,尽管在某种程度上是选择性的网络子集。

答案 10 :(得分: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,但它肯定是可读的,对于未来的网页来说绝对是一个更好的解决方案。

答案 11 :(得分:0)

如果您使用图像,盲人用户是否能够阅读等式?有些人可能想要。

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

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

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

答案 15 :(得分:0)

目前,客户端MathML呈现的状态还没有为广泛采用做好准备。您真正需要将MathML渲染为图像的方法。如何执行此操作取决于您的环境。

您是否拥有自己服务器的root权限?你觉得安装软件很舒服吗?在这种情况下,您可以渲染自己的图像。如果您正在运行博客软件或维基,通常您可以找到一个可以利用您的平台功能的插件。如果您计划编写大量数学表达式,这通常是想法场景。

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

如果您无法渲染自己的图像,或者您只想渲染一些表达式,那么您通常可以使用其他服务生成图像,并热链接您网站上的图像。当然,缺点是您依赖于另一个网站,他们无法为您提供图像。

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

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