Hexo 中 LaTeX的使用

我使用 Hexo 已经有很长时间了, 最近升级到 3.0 问题实在是太多. 不过实在是不想在折腾回去了.

最近在学习算法导论, 需要解决很多的公式问题, 所以, 我求助于 LaTeX. LaTeX 是一种基于 TEX 的排版. 我们可以使用它来生成许多的数学公式. 我在这里就简单介绍一下如何使用好了.

准备工作

如果你是用的 Hexo 主题是 Jacman, 那么非常简单, 你只需要在 front-matter 中添加:

mathjax: true  

这样就可以在 markdown 中随意使用 LaTeX 了, 对于我来说, 我直接找到主题资源文件中与 MathJax 有关的代码

themes/jacman/layout/_partial/mathjax.ejs  

也就是这个文件, 删除掉第一行和最后一行, 也就是下面这两行.

<% if (theme.mathjax || page.mathjax){ %>  
<% } %>  

然后, 你就不要在每次添加 mathjax: true 了, 你也可以去更改你的模板 scaffolds/post.md 在其中加入以下代码, 也可以省去每次添加的麻烦.

mathjax: true  

LaTeX使用

做好了准备工作之后, 我们就可以尝试在 post 中添加 LaTeX 公式了, 你可以上网找一些在线的 editor 帮助你写 LaTeX 公式.

我们做几个简单的演示:

$T(n) = \Theta(n)$

$T(n) = \Theta(n)$

LaTeX 需要使用 $ 符号进行包围, 当我最开始使用的时候不知道在公式的两边都要加入 $ 符号, 所以出现了这样的错误

$T(n) = \Theta(n)

LaTeX 公式不会被渲染, 使用单个的 $ 符号时时候, 我们可以在行内中添加, 但是如果想在整行内使用, 我们使用双 $ 符号, 也就是:

$$T(n) = \Theta(n)$$

$$T(n) = \Theta(n)$$

更多的使用方法以及文档可以访问 MathJax.

LaTeX使用的问题

我在是用LaTeX的过程中遇到了这样一种问题, 当我使用下面这个公式的时候, LaTeX 公式不会被渲染.

$$T(n) = \Theta(n) + \sum_{i=0}^{n-1}{O({n}_{i}^2)}$$

$$T(n) = \Theta(n) + \sum{i=0}^{n-1}{O({n}{i}^2)}$$

我在官网上尝试了一下, 发现这个公式是完全正确的, 当时百思不得其解, 后来突然发现这个公式的中间部分 {i=0}^{n-1}{O({n} 竟然是倾斜的.

在 Markdown 中, _ _ 表示的是中间部分的倾斜, 所以我就将这个公式改成了:

$$T(n) = \Theta(n) + \sum\_{i=0}^{n-1}{O({n}\_{i}^2)}$$

加了两个用于转义的 \ 符号, 这样, 公式就可以正确的显示了.

$$T(n) = \Theta(n) + \sum_{i=0}^{n-1}{O({n}_{i}^2)}$$

结束

初次体验感觉 LaTeX 还是很强大的, 可以非常轻易的表示各种各样的数学公式, 不过遇到比较复杂的公式, 还是很难一次性完成的, 而且对于已经写好的 LaTeX, 有的实在太过于庞大并且复杂了, 完全无法理解到底是什么意思.

Draveness

继续阅读此作者的更多文章

comments powered by Disqus