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