本文主要介绍MathJax公式的基本语法。
插入公式
如果是在文本中插入公式,则用$...$。
如果公式自成段落,则使用$$...$$。
字体使用\mathbb或\Bbb来显示黑板粗体字,$\mathbb{NQRZ}$
使用\mathbf来显示粗体字,$\mathbf {ABCDabcd}$
使用\mathtt来显示打印式字体,$\mathtt{ABCDabcd}$
使用\mathrm来显示罗马字体,$\mathrm{ABCDabcd}$
使用\mathcal来显示手写字体,$\mathcal{ABCDabcd}$
使用\mathscr来显示剧本字体,$\mathscr{ABCDabcd}$
使用\mathfrak来显示Fraktur字母(一种旧的德国字体),$\mathfrak{ABCDabcd}$
多行公式
如果要写出多行公式,就使用
\begin{equation}\begin{split}
end{split}\end{equation}
\\ 符号表示换行,再使用&符号表示要对齐的位置,例子如下
\begin{equation}\begin{split}
H(Y|X)&=\sum_{x\in X} p(x)H(Y|X)\\
&=-\sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\
&=-\sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x)
\end{split}\end{equation}
当然,再加上$$...$$之后,显示如下:
$$\begin{equation}\begin{split}
H(Y|X)&=\sum_{x\in X} p(x)H(Y|X)\\
&=-\sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\
&=-\sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x)
\end{split}\end{equation}$$
分组
通过大括号{}将操作数与符号分割开,消除二义性。
例如,若使用x^10,其效果为$x^10$,这里就要用到大括号,x^{10},最终效果为$x^{10}$。
空间
MathJax通常用自己的一套复杂策略来决定公式的空间距离。直接在两个元素之间加入空格是毫无用处的。
因此为了增加空间距离,使用\,可以增加稍许空间;使用\;可以增加更多的空间;\quad和\qquad分别对应更大的空间。
数学符号
上标与下标
上标或下标只需在后面加上^或_。另外需要注意的是,如果上下标不止一个字符,就需要用大括号括起来,表示是一个整体{...}。
分式
有两种方式做到这个效果。
使用\frac ab。如\frac {1+a}{4+b},效果为$\frac{1+a}{4+b}$;
使用a \over b。如{1+a} \over {4+b},效果为${1+a}\over {4+b}$。
一般推荐使用第二种。个人倾向于使用第一种。
根式
平方根: \sqrt{x^3},效果为 $\sqrt{x^3} $。
其余: \sqrt[4]{\frac xy},效果为 $\sqrt[4]{\frac xy}$。
关系比较符号< \lt
> \gt
≤ \le
≥ \ge
≠ \neq
$$\begin{array}{c|lcr}
\text{符号} & \text{\表示} \\
\hline
< & lt \\
> & gt \\
≤ & le \\
≥ & ge \\
≠ & neq \\
\end{array}$$
argmax\underset{f}{\mathrm{argmin}}
效果如下:
$$\underset{f}{\mathrm{argmin}}$$
不显示斜体
对于常量部分,有时候我们不想让他显示成斜体,而是正常的竖直显示,可加上\text{...},就可以正常显示。
矩阵
使用$$\begin{matrix}…\end{matrix}$$,每一行末用\\结束表示换行,用&分隔矩阵元素。
$$
\begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{matrix}
$$
效果:
$$
\begin{matrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{matrix}
$$
如果要加括号,可以使用上面的括号符号。
除此之外,还可以直接将matrix替换为pmatrix(小括号),或者bmatrix(中括号),或者Bmatrix(大括号),或者vmatrix(竖线),或者Vmatrix(是双竖线)
如果你想省略一些项,可以使用\cdots⋯,\ddots⋱,\vdots⋮。
如:
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n\\
1 & a_2 & a_2^2 & \cdots & a_2^n \\
\vdots & \vdots & \ddots & \vdots \\
1 & a_n & a_n^2 & \cdots & a_n^n \\
\end{pmatrix}
$$
效果:
$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n\\
1 & a_2 & a_2^2 & \cdots & a_2^n \\
\vdots & \vdots & \ddots & \vdots \\
1 & a_n & a_n^2 & \cdots & a_n^n \\
\end{pmatrix}
$$
代码块
不同语言的代码块,可以用不同的标识符。如python语言,则代码块表示为
1//下一行写具体代码
就是用三个反引号(英文状态下、键盘左上角、ESC下面的那个键)包围的部分就是代码块,上面的三个点号之后,可以标识一下具体的语言,如c,c++,python,java,javascript,yml,html等等。
测试:
JavaScript代码块效果如下:
1
2
3if (condition){
return true
}
Python代码块效果如下:
1
2
3def func(A):
'''intresting document.'''
return len(A)