数学公式生成器

作者: 阮一峰

日期: 2011年7月11日

腾讯课堂 NEXT 学院

上一篇文章《数学常数e的含义》,有很多数学公式。

但是,在网页上显示数学公式,是一件非常麻烦的事情。以下面的公式为例:

  

怎样才能把这个公式放到网页上呢?

传统的方式是,先在相关软件中把公式做出来,然后截图,再把图片贴到网页上,这样既麻烦又耗时。我就在想,有没有便捷的方法,可以生成数学公式。

我知道,Google Chart接受TeX语言,实时返回数学公式的图片。于是,我就用了一天时间,根据它的API,写出了一个"数学公式生成器"

经过初步测试,我自我感觉很不错,觉得写作数学公式从此不再麻烦了。我把这个作品推荐给大家,欢迎试用。

如果你懂得TeX语法,使用起来应该毫无困难。如果不懂,也没有关系,用起来很简单,下面我做一个初步介绍。

对于简单的公式,可以直接在文本框输入,比如"y=2x+8":

  

然后点击"查看"按钮,就会显示数学公式的图片,并且给出图片代码。

  

接着,就来看怎么生成本文开头那个稍微复杂一点的公式:

  

首先,按照顺序输入左括号、1、+:

  

加号后面是一个分数,这时就要用到TeX语法了,点击菜单里的"结构"选项,选择"分数"那一栏:

  

文本框中就会插入"\frac{1}{2}"这样的结构:

  

在TeX语法中,斜杠开头的语句表示命令,所以"\frac"表示后面要生成分数;命令后面的大括号,表示命令的参数,"\frac"后面的第一个大括号表示分子,第二个大括号表示分母。现在,依次在"分子"中填入"100%",在"分母"中填入"n"。

  

最后,加上右括号和"^n"。

  

点击"查看"按钮,这个公式就显示出来了。

  

其他公式的生成方法与其类似,大家可以自己摸索,任何时候都可以点击"查看"按钮,了解是否写错。

TeX几乎可以写出所有的数学公式(查看MediaWiki的参考网页),但是Google Chart只支持一部分的TeX语法,因此不保证所有时候都能得到想要的结果。

除了Google Chart,还有另一些服务,也能生成数学公式的图片,比如mathtran.orgmathurl.com,还有这里这里

(完)

留言(31条)

请允许我抢一次沙发。顺便赞阮老师的分享和钻研精神。

感觉还是onenote那个最方便。毕竟可以玩数学的时间太少了

果然方便,赞,为楼主和google!

阮老师的博客怎么没有“分享到微博”的功能啊??

其实如果是Wordpress博客的话,装一个LaTeX插件就可以了。否则一张张贴图,多么麻烦⋯⋯(看看Terry Tao的博客上面有多少公式你就知道了。)

发表留言能否不需要reload整个页面啊⋯⋯很少有做个评论还要翻两页的。

非常不错,不过网上有相应的latex生成器。还是感謝阮兄的作品了。

这个方法虽然可用,但我感到结果有两个不甚满意的地方。一个是输入过程难免繁琐。一个是括号格式不太好看。

输入过程,我是跟 wordpress.com 下的 blog 里输入数学公式相比较。那里只需要输入 $latex *****$ 就可以识别成 LaTeX 输出。关于括号格式,我给出以下在 wordpress.com 里的例子。比较这四种输入

$latex (1+\frac{100\%}{n})^n$

$latex \big(1+\frac{100\%}{n}\big)^n$

$latex \displaystyle (1+\frac{100\%}{n})^n$

$latex \displaystyle \Big(1+\frac{100\%}{n}\Big)^n$

对应的输出在这里:http://d.pr/5r0s

头两种是不带 displaystyle 的行内公式,区别不是很大,但第二个的括号位置稍微更顺眼一些。后两种是带 displaystyle 的单行公式,其中第三种就是本文给出的例子,括号太小,很不好看,但是只要用 Big 稍作调整就合适多了。不知道 Google Chart 是否接受这种微调。

我想说的是,如果只是偶然使用一两个数学公式,那么这种美观效果也是不是太重要。但如果要写一个基于数学的帖子,那写得好看一些,应该是相当有意义的。我对 wordpress.com 的 LaTeX 显示也不是非常满意,不过马马虎虎用它写过几个教数学的博客,凑合还能使用。如果每次让我用 Google Chart 这么转换一次,那就有点不堪设想了。

可以用javascript生成数学公式:
http://www.math.union.edu/~dpvc/jsMath/


现在很多东西都可以交给浏览器完成了。

最快的方法是使用MathJax,文章中如同latex输入公式,然后引用MathJax的Javascript库。载入速度稍微有些慢,但是用很方便。

如果是WordPress用户,并且经常写 公式的话,可以使用插件,比如我写过一个 http://zhiqiang.org/blog/it/latex-for-wordpress.html

麻烦了点,其实早已经有现成完善的在线编辑器可用了 http://www.codecogs.com/latex/eqneditor.php

我覺得,數學公式用圖片還是不盡人意的。期待著將來有一天,能在瀏覽器中顯示 TeX 生成的數學公式。

没人提 MathML,这就是那种被称为标准的东西,也和所有被称为标准的东西一样,被支持的乱七八糟的。

其实我一直是用wiki的tex功能,在沙盘里就可以完成这些动作。但它没有图片大小的设置,博主正好帮了我个忙,太感谢了。

Google Chart生成公式图片最大的问题是URL参数的长度限制得太小,通常输入一个矩阵方程就无法处理了。所以后来我自己在VPS上安装mathtex了,ubuntu下直接用 apt-get 就能搞定。

Mathjax
我们数学物理界的博客网站很多都是用Mathjax。

哦,我忽略了大多数人都不用TeX了吧

Wonderful.
你这个开源么。可以放到商业项目中么。

@Denny:

可以的,Apache许可证。

To 阮一峰,

谢谢。 如果弄个英文界面,然后和Mathjax简单集成下,这样可以脱离GOOGLE,变成内网也可用的方案。

不错啊,一直用mathtype。。传图片麻烦啊。

哈哈,好东西,顶一个。

恭喜你重新发明了轮子。
WolframAlpha早就支持普通表达式和latex,同时也可以作图解方程等等。
http://www.wolframalpha.com/input/?i=%281%2B%5Cfrac{100%25}{n}%29^n

部分国内网站使用了ScienceWord插件解决这个问题,不理想。
通用形式,如Google的方案,或者TeX是解决的可实施方案。

有了这个公式就很方便了

太强大了!

谢谢你的这个工具,我今天正好需要用了一下,感觉很不错。

是啊,MathML不被IE和chrome支持,图片又有速度问题,目前MathML+Mathjax组合可能是最好的方法。代码用MathML,显示能过Mathjax控制显示方法,如果浏览器支持MathML就用MathMl,否则就用Mathjax。
http://www.qiujingyu.com/insert-math-formula-into-web-page.html
这样也不需要插件了。

谢谢你啦~

有没有好的能生成maxjax的编辑器?

阮老师,数学公式生成器的链接打不开了。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接