增广遗贤

MathJax With Hexo

写在最前

牛顿是站在巨人的肩膀上的,路人皆知.虽然现如今的不少中国”二代”,不是站在老爹的肩膀上,就是站在老丈人的肩膀上.不得不承认脚下的肩膀有时候还是很牛的。至少在Hexo中实现$LaTeX$公式渲染,还需向这位MathJax 瑟(Sir)致敬!

Hexo中调用MathJax

年头兴致勃勃地开着Hexo牌挖掘机开辟了一片新田地,以为在这搭了窝,从此可以过上世外桃源的日子了。殊不知,到了春耕的季节,下地干活(键入公式),结果(复制粘贴公式图片)差点叫猪八戒倒搂一耙 —— 打回原形。原来的桃源梦,难道是我真得想多了吗?

话说工欲善其事,必先利其器。心里也明白,这样人肉渲染公式迟早会被Markdown parser吃掉。今天特意去Hexo店咨询了老板此事,老板告诉我,MathJax师傅可以解决此类问题,MathJax瑟(Sir)不知有没有黑我,现在测试下,请各位看官作个见证。

试毒中…

示例

  • 行内公式

$F(x) = \frac {1}{\sqrt{2 \pi} \sigma} \int_{- \infty}^x e^{- \frac{(t - u)^2}{2 \sigma^2}}\, \mathrm{d}t$,我们好像在哪里见过?

代码如下 :

1
$F(x) = \frac {1}{\sqrt{2 \pi} \sigma} \int_{- \infty}^x e^{- \frac{(t - u)^2}{2 \sigma^2}}\, \mathrm{d}t$,我们好像在哪里见过?

规范式代码:

1
$F(x) = \frac {1}{\sqrt{2 \pi} \sigma} \int_{- \infty}^x e^{- \frac{{(t - u)}^2}{2 \sigma^2}}\,\mathrm{d}t$,我们好像在哪里见过?

相差那么一点点,若好奇请仔细观察.

  • 行间公式
\[ \varlimsup_{k \to \infty} A_k = \lim_{J \to \infty} \lim_{K \to \infty} \bigcap_{j=1}^J \bigcup_{k=j}^K A_k , K \in \mathbb{R} \]

代码如下

1
2
3
\[
\varlimsup_{k \to \infty} A_k = \lim_{J \to \infty} \lim_{K \to \infty} \bigcap_{j=1}^J \bigcup_{k=j}^K A_k , K \in \mathbb{R}
\]
\begin{align} \mathcal{L} ( \mu ,\sigma^2 ) &= \prod_{i = 1}^n \left\lbrace \frac{1}{\sqrt{2 \pi} \sigma } \text{exp} \left\lbrace - \frac{( x_i - \mu)^2}{2 \sigma^2}\right\rbrace \right\rbrace ,\\ &= (2 \pi \sigma^2)^{- \frac{n}{2}} \text{exp} \left\lbrace - \frac{1}{2 \sigma^2} \sum_{i = 1}^{n} (x_i - \mu)^2 \right\rbrace . \end{align}

代码如下:

1
2
3
4
\begin{align}
\mathcal{L} ( \mu ,\sigma^2 ) &= \prod_{i = 1}^n \left\lbrace \frac{1}{\sqrt{2 \pi} \sigma } \text{exp} \left\lbrace - \frac{( x_i - \mu)^2}{2 \sigma^2}\right\rbrace \right\rbrace ,\\
&= (2 \pi \sigma^2)^{- \frac{n}{2}} \text{exp} \left\lbrace - \frac{1}{2 \sigma^2} \sum_{i = 1}^{n} (x_i - \mu)^2 \right\rbrace .
\end{align}

中毒已深,解毒中…

配方 :

  • 基本的$LaTeX$语法不变,复杂的公式会导致Hexo挂掉,笔者在民间搜了一个偏方,即用$\left\lbrace{\% \enspace \text{raw} \enspace \%} \right\rbrace$ 、$\left\lbrace{\% \enspace \text{endraw} \enspace \%} \right\rbrace$将其代码包裹起来.

  • 单独使用\ [ \ ]时需变化为\\[ \\],但用$\left\lbrace{\% \enspace \text{raw} \enspace \%} \right\rbrace$ 、$\left\lbrace{\% \enspace \text{endraw} \enspace \%} \right\rbrace$包裹时,基本的$LaTeX$语法仍然有效.

  • 公式编号需手动加入.

遗留杂症

如何在Hexo中调用MathJax实现$LaTeX$宏包的功能。如化学式

上式是笔者在$LaTeX$中实现的,代码如下

1
2
3
4
5
6
\usepackage{mhchem}
...
\begin{equation}
\ce{2H2 + O2 ->[\text{燃烧}] 2H2O2}
\end{equation}
...

Hexo调用MathJax实现,偏方寻找中…

写在最后

告诉你一个更炫酷的秘密,请君俯首贴耳过来:在公式上 右键 $ - >$ Math Settings $- >$ Zoom Trigger $- >$ Click或者单击左键可将公式放大.