Categories

Display Equation with MathJaX

之前一直用一个 LaTeX 的 WordPress 插件来显示公式,插件的工作原理很简单,把公式用 LaTeX 编译为 dvi ,然后用 dvi2png 之类的工具转换为图片,最后根据公式的文本内容算出一个 Hash 值,作为图片的文件名,缓存起来,下次遇到需要显示同样的公式的时候,如果文件已经存在的话,就不重新生成一遍了。

不过最近换成了用 MathJaX 来显示公式。这个东西易用性实在是非常好,安装配置基本上没有什么可说的,几乎是解压一下,然后把一条引用它脚本的语句加到 WordPress 的页面显示模版就可以了。和之前我使用的方式不同的是,这是一个 Javascript 插件,主要工作都在客户端完成,因此服务端基本上不需要做什么配置,所以不只是 WordPress ,配合几乎任何 web application 都是很简单的。

当然,由此也带来另外的问题:比如,如果不支持或者关闭了 Javascript 的浏览器,就不能显示公式了。不过我想这个问题应该不是很大,因为看不到公式的情况下会显示出 LaTeX 代码,使用这么原始的浏览器的人看个 LaTeX 代码格式的公式应该不成什么问题。不过还有一个情况就是通过 Google Reader 等方式来看文章的时候,也是看不到公式的了。我后来想了想,觉得应该也不是太大的问题,因为通常在 Google Reader 里都没有太多的耐心看一堆公式什么的,若是真的觉得有趣,通常会点过来看或者把网址记下来有时间的时候再仔细看,也就没有问题了。

当然另外一个促使我切换的原因是原来的插件写个公式太繁琐,inline 的公式要用 [ tex ] 这样的标签包起来,单行的公式则更麻烦了,虽然应该也是可以 hack 的,但是既然 MathJaX 提供了现成的解决方案,干嘛不用呢?现在只要像在写 LaTeX 文档那样用美元号就可以写 inline equation 了。另外 MathJaX 渲染出来的公式并不是整个是一个图片,而是文字的形式,这一点让人更加亲切一些,也和周围的文本结合得更紧密一些,不过也因此导致在不同的平台下面结果看上去可能就有些差别。比如我就觉得在 Windows 下的 Firefox 里看起来比较难看,不过在本地装了 STIX 字体之后,似乎好了不少。于是顺便再 8g 一句 STIX 吧,这个是一个野心勃勃的字体项目,目的是为了打造优良和完整的数学字体,当然,除了优良和完整之外,另一个重要的特性就是开放,嗯总之作为亲近 Open Source Community 的人来说,是很有亲和力的。最近(今年 5 月底)刚刚发布了可用的 1.0 版。

啊,总之呢,于是决定以后与时俱进用 MathJax 了,毕竟它的 Logo 也做得很 pp 啊! :p

7 comments to Display Equation with MathJaX

  • bob

    支持,纯感性上的支持,因为理性上看不懂啊。:)

  • 最新版本的Emacs org-mode在export html时也默认使用MathJax了

  • yxh

    非常感谢,找这种东西很久了

  • ran

    这个好,我到时候也试试,我发现我快成你的金牌粉丝了,得意吧,我今天把你这里研究的很是认真哪,其实你的这个leave a reply也比我的好,我的就没有anti spam, 我一直琢磨从哪搞个插件用用来着,垃圾非常多,不知道怎么办

  • 我现在在用你用过的方法和MathJax结合,可避免MathJax的缺陷,比如在GReader看不到公式。

    不过我这里是想问下,MathJax生成的公式,无论是复制到word里还是直接打印成PDF,格式都乱掉了,有没有解决办法?

  • read it later用户小郁闷。。opera mobile执行js貌似也好慢= =