在博客上写LaTex数学公式

最近在学习研究一些算法,遇到很多数学公式。想到以前要在博客上写数学公式的时候,总是要在本地生成一张复杂公式的图片,再在博客上引用图片,这种方式显然满足不了「程序员」。遂折腾了一番。

下面推荐两种比较常用的方法。

使用Google的绘图服务

Google Chart API 是一个非常强大的工具,通过 API 接口,会动态生成一张 png 图片,当然也支持 LaTex 语言。

API 调用方式如下

http://chart.apis.google.com/chart?cht=tx&chl=E=mc^2

其中参数cht表示图表类型, tx表示图表类型为tex语言,chl 表示图表标注,E=mc^2就是质能守恒方程的 LaTex 语句。在 markdown 中就可以通过引用图片的方式加入进来。

<img src="http://chart.apis.google.com/chart?cht=tx&chl=E=mc^2" /> 

或者

![](http://chart.apis.google.com/chart?cht=tx&chl=E=mc^2)

就能看到这样的图片效果:

但是第二种方法在某些情况下不太实用。例如在需要显示 $\frac{t^2}{\int(x+y)dxdy}$ 时,公式内容为\frac{t^2}{\int(x+y)dxdy},由于公式中带有),会提前闭包,所以公式会显示不全。在这种情况下,只能使用第一种调用方式。

使用MathJax库

MathJax 是一套开源 JavaScript 库,它并不是将公式转化为一个图片,而是在浏览器端通过位置控制、字体、大小来显示一个公式。已经支持 LaTeX、MathML、和 AsciiMath 数学公式。无需过多的设置、无需浏览器插件、无需安装字体。听起来好屌…

那么如何使用呢?
可以在官网上下载所需的 js 库,大约17M,解压后大约有130M(我了个去!)。我整个博客也就1M,这显然不太适用。

所以,MathJax 提供了另一种方式,直接使用他们的 CDN,这样就不用上传下载了。

对于 hexo 用户,可以修改themes/jacman/layout/_partial/after_footer.ejs文件(不同主题的用户,文件位置可能不一样),在文件末尾添加下面的代码:

<script type="text/x-mathjax-config"> 
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

现在,就可以在 markdown 中随意调用 LaTex 公式了。

$ 表示行内公式:

质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表达:$E=mc^2$ 。

$$ 表示整行公式:

$$\sum_{i=1}^n a_i=0$$
$$\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k}$$

$$\sum_{i=1}^n a_i=0$$

$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$

更多使用方法请访问 MathJax

参考文献

PS:有任何关于 Hexo 的问题,欢迎来 Hexo 中文社区 咨询。