在 WordPress 博客排版出漂亮的 LaTex 数学公式

这段时间为了完成偏学术的几何特征系列,在博客上写了不少数学公式。在此之前研究了一下在 WordPress 中如何输出公式,看看有没有可能支持 LaTex 的解决方案,结果发现了一个非常方便的 Latex for WordPress 插件。利用这个插件可直接在 WordPress 博客的标题、文章内容和留言等地方使用 LaTex 代码输入公式。于是,这篇文章就想分享一下我的这段折腾史,并介绍如何在 WordPress 博客中排版出美观的 LaTex 公式。

LaTex for WordPress 和 MathJax

LaTex for WordPress 插件安装和配置需要介绍的不多,在 WordPress 的后台中即可直接完成。这个插件的核心,是在浏览器中用来显示数学公式的 MathJax 引擎。MathJax 项目开始于2009年,很可能会成为今后浏览器中数学符号渲染引擎中的主流,下面引用一段话对 MathJax 进行简单的介绍。

MathJax 是一个开源的基于 Ajax 的数学公式显示的解决方案,其最大的优势在于可以以基于文本的方式显示页面中的数学公式。结合多种先进的 Web 技术,支持几乎所有的主流浏览器。MathJax 可以在 HTML 页面中,为 LaTex 数据和 MathML 数学公式提供了一个切实可行的的解决方案,支持 Tex 和 LaTex、MathML、ASCIIMathML 语言,拥有丰富的 API 接口。根据页面中定义的 LaTex 数据,便可生成对应的数学公式。

mathjax_banner

在撰写会出现很多数学公式的博客文章时,如果使用贴出公式图片的方式不仅不够美观,而且排版上十分不便,尤其是当需要修改公式时,会带来很多的麻烦。MathJax 的强大和优势在于能支持各种不同的浏览器对公式进行渲染,用户无需额外安装软件或插件就能直接查看到排版整洁的公式了。

配置 LaTex for WordPress 和 MathJax

Latex for WordPress 这个插件有一个值得一提的特性,那就是根据需要才会去加载 MathJax,并允许用户在设置中修改 MathJax Server。默认的服务器地址是选择使用 MathJax CDN,也就是说在需要加载时,网页会添加这么一段代码:

直接使用提供的 CDN 选项的好处是简单,无需在本地进行配置,但缺点是国内地区对国外 CDN 的加载可能会受到一些网络速度或网络稳定性的影响。如果出现了访问不稳定的情况,会导致网页上的公式都无法被渲染。不过也无需太过担心,你可以直接将 MathJax 部署在自己的服务器上,具体可参考 MathJax 官网的教程。大概的步骤就是下载一份最新的 MathJax,解压并上传到服务器中,然后选择合适的配置,在插件的 MathJax Server 设置中填入自定义的服务器地址即可。可能是因为我购买的是配置最基础的云服务器,经过对比测试,我在使用这种方法时访问速度并没有提升,渲染的速度反而下降了。同时,这种方法还有一个需要注意的地方,就是需要在服务器不定期地手动更新你的 MathJax 到最新版本,以对各种最新的浏览器保持良好的支持。

另外,Latex for WordPress 插件也提供了缓存公式图片的选项,供 MathJax 载入之前或 RSS 订阅的使用。如果你想配置自己的 LaTex 图片缓存服务,最简单的方法是在自己的服务器中搭建 MimeTex,具体请参考其官网所提供的教程

在文章中书写漂亮的数学公式

完成了插件的配置后,首先简单介绍一下在博客中输入 LaTex 代码的方式。

  • 使用\(...\)输出「行内公式」,例如\(\alpha+\beta\geq\frac12\)的输出结果是:\alpha+\beta\geq\frac12
  • 使用\[...\]输出「行间公式」,例如\[\alpha+\beta\geq\frac12\]的输出结果则是:

    \alpha+\beta\geq\frac12

  • 在公式最后添加「!」可输出公式源代码,如\(\alpha+\beta\geq\frac12!\)将输出:\(\alpha+\beta\geq\frac12\)

在书写 LaTex 公式时,可能会出现不熟悉 LaTex 公式语法的情况,接下来我分享一下我所使用的方法,那就是借助 MathType + 在线 LaTex 公式编辑器 Detexify 这三个工具。

首先,使用 MathType 这个桌面软件以图形化方式输入和编辑初步的公式,随后在「选项」中选择「剪切和复制选项」,按照下图所示进行设置。

mathtype_snapshot

这时,你就可以选中你的公式,用键盘按下“Ctrl+C”后复制公式,在上述提到的在线 LaTex 公式编辑器中粘贴,即可得到一段转换后的 LaTex 的公式了。MathType 发挥的主要作用是帮助我们得到公式大致的 LaTex 语法结构,在转换的过程中有可能会出现一些小的问题,所以我们仍然需要借助 LaTex 编辑器进一步编辑和完善,同时验证 LaTex 公式是否能被正确地解析。

latex_editor_snapshot

在公式编辑的过程中,可能还需要用到一些特殊的符号,如果要时刻记住或者重新翻阅查询会是一件非常麻烦的事情,这里再推荐一款手写识别符号的工具 Detexify。操作十分直观,用户只需用鼠标在画板中画出符号,在右侧系统就会根据相似度匹配出一系列 LaTex 支持的符号,并给出相应的 LaTex 代码。

detexify_snapshot

在文章的最后,给出一个导数定义的简单公式例子:

\large f^\prime(x)\ = \lim_{\Delta x\to0}\frac{f(x+\Delta x)-f(x)}{\Delta x}.

参考文献

在博客上写数学公式的插件LaTex for WordPress. http://zhiqiang.org/blog/it/latex-for-wordpress.html

MathJax basic tutorial and quick reference. http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference/5044

LEEMANCHIU

LEEMANCHIU

香港科技大学在读博士研究生,曾是中国科学院大学的硕士研究生
联系邮箱 | Personal Homepage
LEEMANCHIU

Latest posts by LEEMANCHIU (see all)

发表评论

电子邮件地址不会被公开。 必填项已用*标注