之前的文章:MathJax基础教程与快速参考,本篇文章将对进阶的MathJax语法做一个简单的介绍。大部分内容来自于MathJax basic tutorial and quick reference一文中后面的评论。
矩阵
MathJax提供了良好的矩阵支持。矩阵的语法为:$$\begin{matrix}…\end{matrix}$$
,如:
1 | $$ |
$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$
关于添加括号,除了在基础教程中提到的\left…\right
方法,还可以使用指定字符串替换上面提到的语法中的matrix
即可:
pmatrix
,$\begin{pmatrix}1&2\\3&4\\ \end{pmatrix}$bmatrix
,$\begin{bmatrix}1&2\\3&4\\ \end{bmatrix}$Bmatrix
,$\begin{Bmatrix}1&2\\3&4\\ \end{Bmatrix}$vmatrix
,$\begin{vmatrix}1&2\\3&4\\ \end{vmatrix}$Vmatrix
,$\begin{Vmatrix}1&2\\3&4\\ \end{Vmatrix}$
在矩阵中可以添加点号\cdots
$\cdots$、\ddots
$\ddots$、\vdots
$\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& \vdots & \ddots & \vdots \\
1 & a_m & a_m^2 & \cdots & a_m^n
\end{pmatrix}
$$
增广矩阵则使用格式化的表格:
$$
\left[\begin{array}{cc|c}
1&2&3\\
4&5&6
\end{array}\right]
$$
上面的矩阵的具体代码:
1 | $$ \left[ |
小型行内矩阵的表示方法为\bigl(\begin{smallmatrix} ... \end{smallmatrix}\bigr)
。例如$\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)$的代码为:
1 | $\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)$ |
对齐的方程式
很多时候,我们想让方程式对齐以显得更加整齐美观。为了达到这样的目的,我们采用语法\begin{align}…\end{align}
并且在每个换行符\\
之后,添加一个连接符&
即可。
举个例子:
$$
\begin{align}
\sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\
& = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\
& = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\
& = \frac{73}{12}\sqrt{1 - \frac{1}{73^2}} \\
& \approx \frac{73}{12}\left(1 - \frac{1}{2\cdot73^2}\right)
\end{align}
$$
以上方程式的代码为:
1 | \begin{align} |
分段函数
分段函数使用的语法为:\begin{cases}…\end{cases}
,在带有换行符\\
的一行中,在分段处加入连接符&
。
1 | f(n) = |
展示为:
$$
f(n) =
\begin{cases}
n/2, & \text{if $n$ is even} \\
3n+1, & \text{if $n$ is odd}
\end{cases}
$$
也可以将括号放在右边:
1 | \left. |
$$
\left.
\begin{array}{l}
\text{if $n$ is even:}&n/2\\
\text{if $n$ is odd:}&3n+1
\end{array}
\right\}
=f(n)
$$
要使得分段函数中间的空隙更大,可以使用\\[2ex]
替换\\
,如要得到:
$$
f(n) =
\begin{cases}
\frac{n}{2}, & \text{if $n$ is even} \\[2ex]
3n+1, & \text{if $n$ is odd}
\end{cases}
$$
使用以下代码即可:
1 | f(n) = |
数组表格化
先看一个例子:
$$
\begin{array}{c|lcr}
n & \text{Left} & \text{Center} & \text{Right} \\
\hline
1 & 0.24 & 1 & 125 \\
2 & -1 & 189 & -8 \\
3 & -20 & 2000 & 1+10i
\end{array}
$$
其代码为:
1 | \begin{array}{c|lcr} |
在上面的矩阵中,提到了格式化表格的方式。格式化代码\begin{array}{c|lcr}
中c
表示居中对齐,l
表示左对齐,r
表示右对齐。\hline
表示横向的水平线。
格式化的数组可以嵌套:
$$
\begin{array}{c}
\begin{array}{cc}
\begin{array}{c|cccc}
\text{min} & 0 & 1 & 2 & 3\\
\hline
0 & 0 & 0 & 0 & 0\\
1 & 0 & 1 & 1 & 1\\
2 & 0 & 1 & 2 & 2\\
3 & 0 & 1 & 2 & 3
\end{array}
&
\begin{array}{c|cccc}
\text{max}&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 1 & 2 & 3\\
2 & 2 & 2 & 2 & 3\\
3 & 3 & 3 & 3 & 3
\end{array}
\end{array}
\\
\begin{array}{c|cccc}
\Delta&0&1&2&3\\
\hline
0 & 0 & 1 & 2 & 3\\
1 & 1 & 0 & 1 & 2\\
2 & 2 & 1 & 0 & 1\\
3 & 3 & 2 & 1 & 0
\end{array}
\end{array}
$$
以上代码省略。
带颜色的文本
MathJax支持HTML颜色代码来对文本进行染色显示。
语法为\color{black}{text}
。black为颜色的名称,text为进行染色的文本。
$$
\begin{array}{|rc|}
\hline
\verb+\color{black}{text}+ & \color{black}{text} \\
\verb+\color{gray}{text}+ & \color{gray}{text} \\
\verb+\color{silver}{text}+ & \color{silver}{text} \\
\verb+\color{white}{text}+ & \color{white}{text} \\
\hline
\verb+\color{maroon}{text}+ & \color{maroon}{text} \\
\verb+\color{red}{text}+ & \color{red}{text} \\
\verb+\color{yellow}{text}+ & \color{yellow}{text} \\
\verb+\color{lime}{text}+ & \color{lime}{text} \\
\verb+\color{olive}{text}+ & \color{olive}{text} \\
\verb+\color{green}{text}+ & \color{green}{text} \\
\verb+\color{teal}{text}+ & \color{teal}{text} \\
\verb+\color{aqua}{text}+ & \color{aqua}{text} \\
\verb+\color{blue}{text}+ & \color{blue}{text} \\
\verb+\color{navy}{text}+ & \color{navy}{text} \\
\verb+\color{purple}{text}+ & \color{purple}{text} \\
\verb+\color{fuchsia}{text}+ & \color{magenta}{text} \\
\hline
\end{array}
$$
MathJax的HTML颜色,详情请参考这里。
交叉线
使用\require{cancel}
开启实现对本文添加交叉线的效果。该语法可以用来展示删除,取消等效果。
如:
$$
\require{cancel}\begin{array}{rl}
\verb|y+\cancel{x}| & y+\cancel{x}\\
\verb|\cancel{y+x}| & \cancel{y+x}\\
\verb|y+\bcancel{x}| & y+\bcancel{x}\\
\verb|y+\xcancel{x}| & y+\xcancel{x}\\
\verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x}\\
\verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\
\end{array}
$$
还可以使用\require{enclose}
:
修饰符
下面列出一些常见的文字修饰符:
\overline
$\overline A$
\underline
$\underline B$
\widetilde
$\widetilde C$
\widehat
$\widehat D$
\fbox
$\fbox {$E$}$
\underleftarrow
$\underleftarrow{F}$
\underrightarrow
$\underrightarrow{G}$
\underleftrightarrow
$\underleftrightarrow{H}$
\overbrace
$\overbrace{(n - 2) + \overbrace{(n - 1) + n + (n + 1)} + (n + 2)}$
\underbrace
$(n \underbrace{- 2) + (n \underbrace{- 1) + n + (n +} 1) + (n +} 2)$
\overbrace
和\underbrace
,可以添加上标/下标的文本。如\underbrace{a\cdot a\cdots a}_{b\text{ times}}
展示为:
$$\underbrace{a\cdot a\cdots a}_{b\text{ times}}$$
音阶修饰符:
\check
$\check{I}$
\acute
$\acute{J}$
\grave
$\grave{K}$
标签与标记
一些长公式,可能需要进行一些标注,或者是注明序号。
a := x^2-y^3 \tag{*}\label{*}
$$a := x^2-y^3 \tag{*}\label{*}$$
方程式等号之上也可以添加一些本文标注:
a+y^3 \stackrel{\eqref{*}}= x^2
$$a+y^3 \stackrel{\eqref{*}}= x^2$$
不带括号也可以,使用\ref{somelabel}
即可。
自定义命令
使用\newcommand
可以进行功能自定义。
\newcommand{\SES}[3]{ 0 \to #1 \to #2 \to #3 \to 0 }
定义过的命令SES
就可以进行调用了:\SES{A}{B}{C}
$$
\newcommand{\SES}[3]{ 0 \to #1 \to #2 \to #3 \to 0 }
\SES{A}{B}{C}
$$
指定操作符
使用\operatorname{…}
可以指定任意文本作为操作符进行展示。
如\operatorname{arsinh}(x)
展示为$\operatorname{arsinh}(x)$。
如果写成arsinh(x)
,会造成字体显示不对:$arsinh(x)$;写成\arsinh(x)
则会报错。
极限
在极限符号\lim
后再跟一个\limits
可以添加极限的下标。
\lim \limits_{x \to 1} \frac{x^2-1}{x-1}
$\lim \limits_{x \to 1} \frac{x^2-1}{x-1}$
高亮
使用\bbox
可以对方程式进行高亮展示。
如:
1 | \bbox[yellow] |
将展示为:
$$ \bbox[yellow] { e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1) } $$可以添加内边距:
1 | $$ \bbox[yellow,5px] |
也可以指定边框:
1 | $$ \bbox[#1695ea,5px,border:2px solid cyan] |
本文完。