
Hexo 中的数学公式是通过 MathJax 渲染 LaTeX 代码实现的,具体开启步骤以及简要语法介绍如下。
开启MathJax
在 next 主题配置文件 _config.yaml 中找到 MathJax 选项,将 enable 改成 true 即可:
1  | # MathJax Support  | 
!!关于转义的问题
在 Markdown 中,_ 表示斜体;在 Latex 中,_ 表示下标。
在生成文档的时候,先是 Markdown 解释成斜体,再到 Mathjax 解释的时候, _ 就不再了,所以我们要在前面加转义字符 \ ,即写成 \_ 的形式,就可以正确显示了。
如果不想这么做, 而是保持Latex的写法, 那么需要做如下修改
(20181220 参考知乎)
具体思路参考了使Marked.js与MathJax共存, 打开nodes_modules/marked/lib/marked.js:
第一步: 找到下面的代码:
1  | escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,  | 
改为:
1  | escape: /^\\([`*{}\[\]()# +\-.!_>])/,  | 
这样就会去掉\的转义了。
第二步: 找到em的符号:
1  | em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,  | 
改为:
1  | em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,  | 
完成
如何插入公式
1.行内插入公式, 不居中显示:
1  | $E=mc^2$ #$公式$  | 
$E=mc^2$
2.行间插入公式, 居中显示:
1  | $$E=mc^2$$ #$$公式$$  | 
$$E=mc^2$$
常用语法
上下标
^ 表示上标,_ 表示下标。
1  | $$a_{1} x^{2} $$  | 
$$a_{1}$$
$$x^{2}$$
$$e^{-\alpha t}$$
$$a^{i}_{ij}$$
$$e{x2} \neq {ex}2$$
此外,如果左右两边都有上下标,则使用 \sideset 命令,效果如下:
1  | $$\sideset{^xy}{^xy}\bigotimes$$  | 
$$\sideset{^xy}{^xy}\bigotimes$$
$$\sideset{^n_m}{}{H}$$
$$\sideset{^n_m}{}{\mathop{H}}$$
$$\sideset{^n_m}{}{\mathop{\mathrm{H}}}$$
$$\sideset{^\beta_a}{^\ast_\triangle}{\mathop{\mathrm{H}}}$$
平方根
平方根输入命令为 \sqrt,n次方根命令为 \sqrt[n],其符号大小由LaTeX 自动给定:
1  | $$\sqrt{x}$$  | 
$$\sqrt{x}$$
$$\sqrt{x^2}+\sqrt{y}$$
$$\sqrt[3]{x^2+y^2+z^2}$$
水平线
使用 \overline 和 \underline 分别在表达式上下方画出水平线:
1  | $$\overline{m + n}$$  | 
$$\overline{m + n}$$
$$\underline{m + n}$$
水平大括号
命令 \overbrace 和 \underrace,效果如下:
1  | $$\underbrace{a+b+\cdots+z}$$  | 
$$\overbrace{a+b+\cdots+z}$$
$$\underbrace{a+b+\cdots+z}$$
矢量
矢量的命令是 \vec,用于单个字母的向量表示。\overrightarrow 和 \overleftarrow分别表示向右和向左的向量箭头:
1  | $$\vec{a}$$  | 
$$\vec{a}$$
$$\overrightarrow{AB}$$
$$\overleftarrow{BA}$$
分数
分数使用 \frac{...}{...} 进行排版:
1  | $$1\frac{1}{2}$$  | 
$$1\frac{1}{2}$$
$$\frac{x^2}{k+1}$$
$$x^{1/2}$$
积分运算符
积分运算符使用 \int 生成。求和运算符使用 \sum 生成。乘积运算符使用 \prod 生成。上下限使用^ 和_ 命令,类似 上下标:
1  | $$\sum_{i=1}^{n}$$  | 
$$\sum_{i=1}^{n}$$
$$\int_{0}^{\frac{\pi}{2}}$$
$$\prod_\epsilon$$
希腊字母
| 希腊字母 | 效果 | 希腊字母 | 效果 | 
|---|---|---|---|
| $\alpha $ | \alpha | $\mu $ | \mu | 
| $\beta $ | \beta | $\nu $ | \nu | 
| $\gamma $ | \gamma | $\xi $ | \xi | 
| $\delta $ | \delta | $\pi $ | \pi | 
| $\epsilon $ | \epsilon | $\rho $ | \rho | 
| $\zeta $ | \zeta | $\sigma $ | \sigma | 
| $\eta $ | \eta | $\tau $ | \tau | 
| $\theta $ | \theta | $\phi $ | \phi | 
| $\iota $ | \iota | $\chi $ | \chi | 
| $\kappa $ | \kappa | $\psi $ | \psi | 
| $\lambda $ | \lambda | $\omega $ | \omega | 
若需要大写希腊字母,将命令首字母大写即可。
$\Gamma$呈现为$\Gamma$若需要斜体希腊字母,将命令前加上var前缀即可。
$\varGamma$呈现为$\varGamma$
字体转换
要对公式的某一部分字符进行字体转换,可以用{\rm需转换的部分字符}命令,其中\rm可以参照下表选择合适的字体。
一般情况下,公式默认为意大利体。
| 字体 | 关键词 | 代码 | 效果 | 
|---|---|---|---|
| 罗马体 | \rm | $\rm test$ | 
$\rm test$ | 
| 黑体 | \bf | $\bf test$ | 
$\bf test$ | 
| 花体 | \cal | $\cal test$ | 
$\cal test$ | 
| 倾斜体 | \sl | $\sl test$ | 
$\sl test$ | 
| 等线体 | \sf | $\sf test$ | 
$\sf test$ | 
| 数学斜体 | \mit | $\mit test$ | 
$\mit test$ | 
| 打字机字体 | \tt | $\tt test$ | 
$\tt test$ | 
| 小体大写字母体 | \sc | $\sc test$ | 
$\sc test$ | 
注:
1)|、-、:之间的多余空格会被忽略,不影响布局。
2)默认标题栏居中对齐,内容居左对齐。
3) - :表示内容和标题栏居右对齐, :- 表示内容和标题栏居左对齐, :-: 表示内容和标题栏居中对齐。
4)内容和|之间的多余空格会被忽略,每行第一个|和最后一个|可以省略,-的数量至少有一个。
矩阵环境
矩阵环境:array, matrix, bmatrix, Bmatrix, pmatrix, vmatrix, Vmatrix,
分段函数环境:cases
公式对齐环境:split, align, eqnarray, gathered  
| $\left[\begin{matrix} 1 & 2 & 3 \\\\ 4 & 5 & 6 \\\\ 7 & 8 & 9 \end{matrix}\right]$ | 
            
  | 
Reference
cat4coffee
ColdRomantic
MathJax basic tutorial and quick reference