networking上的math方程

如何在networking上渲染math方程? 我已经熟悉LaTeX的math模式。

事实certificate,这有点痛苦。

你可以使用MathML ,但浏览器支持仍然是可能的。 如果你开始使用胶乳,你有几个select转换为HTML,但他们通常最终将实际方程渲染到图像和内联。

没有什么漂亮的(除非你诉诸pdf或什么的)。 什么是最好的将取决于什么样的内容,多less方程,以及这些方程是多么复杂。

这是一个体面的总结。

其他答案是过时的。 截至2012年, 漂亮的math很容易写和渲染。 这项技术被称为MathJax 。 您可以在MathOverflow和数百个math博客上以安静的方式看到它。

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

Mathjax是可靠和不显眼的,所以你只需要写math。 你在Tex(Latex)中这样做,这是一个大多数科学家和math家熟悉的简明语法(并且已经分享了数十年的优秀教程)。 对于Mathjax,您只需在两个美元符号之间在HTML中内联编写Tex代码,例如。

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

要使用Mathjax来渲染math,请在您的HTML标头中放入一个Javascript行:

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

如果您在Wordpress,Tumblr或Blogger等平台上发布,则其画廊中会有插件来执行此操作( WordPress )。

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

如果你有一个帐户,你可以select在Wikipedia上使用Mathjax(通过PNG图像)。 寻找Special:Preferences /外观。


MathML是荒谬的。 它既不可读也不可写(二次方程式需要800个字符 ,在Tex中是50 个字符 )。 这只是另一个毫无意义的XML语言 。 谢天谢地,大多数浏览器都支持它。 它甚至不像Tex或Mathjax的HTML-CSS那么好!

我最喜欢的两种方法:

  • 客户端: MathJax 。 看到这里的一些例子 。 它的使用和安装非常简单,其开发得到了AMS和SIAM等科研机构的支持。 我希望这成为在网上显示math的事实标准。

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

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

jsMath软件包提供了一种在HTML页面中包含math的方法,可以在Windows,Macintosh OS X,Linux和其他unix版本的多个浏览器上运行。 它克服了使用图像来表示math的传统方法的一些缺点:jsMath使用原生字体,因此当您更改浏览器中文本的大小时,它们将resize,以打印机的完整分辨率进行打印,而您不必等待几十个下载的图像才能看到网页中的math。 网页作者也有其优点,因为不需要预处理你的网页来生成任何图像,而math是以TeX的formsinput的,所以很容易创build和维护你的网页。

看例如这个页面或那个 。

你可以直接用HTML做更多的math,而不是大多数人意识到的。 看到这些笔记 。

渲染LaTeX的唯一安全方法是将输出保存为图像。 一些网站尝试使用工具来实现这一点,他们从来没有可靠的工作。 例如,在一些博客上,如果你直接访问网页,这种方式是有效的,但如果你通过Feedburner / Google阅读器浏览,这种方式就不行。

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

这里是我用来编译LaTeX到gif的网站。

如果你愿意使用PDF而不是HTML,事情变得更容易。 只需创build您的LaTeX文档并使用pdflatex将其编译为PDF。 如果您使用PDF路线,您可能会对如何在PDF文件中包含作者,关键字等PDF属性感兴趣。 另外, 这个页面解释了如何标记LaTeX在PDF中build立链接。

Katex公司

可汗学院的一些开发人员发布了一个基于Tex的快速图书馆Katex :

  • 快速
  • 高质量
  • 自足; 和,
  • 可以在服务器上呈现

看起来像一个伟大的现代select。

Katex样品

texvc可以将LaTeXmath公式转换为png或HTML。

LaTeX和MathML是唯一“正确”的方法来做到这一点。 然而每个都有严格的限制。 其他选项是图像(如果以后需要编辑公式,则不是最佳select)或复杂的HTML(需要一些培训,但可以完成)。

我在维基上按需提供LaTeX公式。 基本上,我从每个wiki部分提取乳胶代码,并将其放入一个.tex文件(其文件名是乳胶的md5sum,所以如果再次使用相同的代码,将使用相同的tex,因此将使用相同的图像) 。 tex文件然后每分钟通过一个cron任务进行乳胶编译,首先生成一个.ps,然后用转换程序生成一个.png(用原来的md5再次命名)。 wiki条目用一个指向这个PNG的img标签replace乳胶文本(原始乳胶代码作为alt,用于文本阅读器)。

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

为了解决这个问题,Mediawiki(维基百科成名)有一个特殊的插件来清理胶乳input,但我不想使用它有两个原因:第一,我没有使用mediawiki,第二个是用OCaml写的,我不想惹一个我不认识的语言。

过去我使用过ASCIIMathML。 它本质上是一个JavaScript库,可以在IE中使用插件来优化性能,但是在IE和Firefox / Mozilla中也可以不使用它(虽然速度稍慢)。 该语法支持LaTeX的一个子集,但是这些差异会造成一些混淆,所以它可能会让用户感到困惑,这取决于它们来自哪里。

这里有一些链接,所以你可以自己检查一下:

  • ASCIIMathML
  • ASCIIMath教程

不完美,并不适用于所有的浏览器(Safari等),但至less在今天是有效的,尽pipe在networking上有一些select性的子集。

我写了一个开源的javascript模块来做到这一点,名为jqmath。 参见http://mathscribe.com/author/jqmath.html 。 您可以使用简化的类TeX语法键入公式,并根据浏览器将jqmath转换为MathML或简单的HTML和CSS。 这比使用图像更有效率和可访问性。

顺便说一下,其他答案中提到的一些摘要和说明现在已经过时了。 此外,Firefox现在支持MathML,而webkit(Chrome和Safari)在夜间制作,尽pipe他们还没有发布。 如果您有MathPlayer插件,Internet Explorer将呈现MathML。 Opera使用样式表来伪造MathML。 MathML是HTML 5标准的一部分,所以大概所有这些浏览器都会在本地支持,而不是晚些时候。 的确,在那之前,jqmath的输出效果不会像TeX的那么好,但是它确实是可读的,对于网页来说,这绝对是一个更好的解决scheme。

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

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

(我用它在Keynote或PowerPoint中为我的幻灯片创build方程式,非常好,拖放支持,所以你可以在任何地方拖动方程来插入它们。)

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

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

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

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

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

你有权访问你自己的服务器? 你舒服的安装软件吗? 在这种情况下,您可以渲染自己的图像。 如果你正在运行的博客软件或维基,一般你可以find一个插件,将利用您的平台function。 如果你打算写很多mathexpression式,这通常是想法的场景。

如果您托pipe自己的图像,您可以预先渲染它们,或者使用像mimetex.cgi这样的扩展名。 如果您允许渲染任意MathMLexpression式,则可能会冒着其他网站热链接到图像渲染器的风险。 如果您在Web服务器上放置了一个filter以防止热链接,那么通过供稿阅读器查看您网站的人也将被阻止。

如果您无法渲染自己的图像,或者只有几个表情需要渲染,那么您通常可以使用其他服务生成图像,然后热连接网站上的图像。 当然,不利的一面是你依赖于另一个网站,他们无法为你提供图片。

其他服务的例子(如其他评论中提到的)包括:* 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的好处是可以轻松地更改公式并重新渲染。