MathJax
使用MathJax
https://blog.csdn.net/u010945683/article/details/46757757
中文文档:
https://mathjax-chinese-doc.readthedocs.io/en/latest/
<script type="text/javascript" src="../../vimwiki-theme/3rd-libs/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ // ... }); MathJax.Hub.Queue(function() { // ... }); </script>
使用公式
默认的displayed公式分隔符有:
$$...$$ \[...\]
而默认的inline公式分隔符为(...)
。
配置中也可以自定义:
MathJax.Hub.Config({ // ... { inlineMath : [['$','$'], ['\\(','\\)']], displayMath: [['$$', '$$'], ['\\[','\\]']], skipTags : ['script', 'noscript', 'style', 'textarea','code','pre'] }, // ... });
行内(inline)公式
这是一个嵌入到文件中的行内公式:\(a^2+b^2=c^2\)
源代码:
这是一个嵌入到文件中的行内公式:$a^2+b^2=c^2$
独立显示(display)公式
这是一个独立显示的公式:
\[ \frac{n_1}{d_1} + \frac{n_2}{d_2} = \frac{n_1d_2 + n_2d_1}{d_1d_2} \]源代码:
\frac{n_1}{d_1} + \frac{n_2}{d_2} = \frac{n_1d_2 + n_2d_1}{d_1d_2}
引用公式
要打开配置:
MathJax.Hub.Config({ // ... TeX: { // ... equationNumbers: { autoNumber: ["AMS"], useLabelIds: true } // ... }, // ... });
使用\tag{yourtat}
来标记公式,如果想在之后引用该公式,
则还需要加上\label{yourlabel}
在\tag
之后
使用label标记
-
在一个公式内使用
\label{id}
给公式编号 -
引用的地方
\ref{id}
即可引用该公式
例子:
对于这个公式:
\[ \begin{equation} r = r_F+ \beta (r_M - r_F) + \epsilon \end{equation} \label{exampleone} \]源代码为:
\begin{equation} r = r_F+ \beta (r_M - r_F) + \epsilon \end{equation} \label{exampleone}
引用的时候可以使用引用标记ref
或是公式标记eqref
:
引用$\ref{exampleone}$: 公式$\eqref{exampleone}$:
效果为:
- 引用\(\ref{exampleone}\)
- 公式\(\eqref{exampleone}\)
使用tag标记
label与tag一起使用,使用带名字的标记:
\begin{equation} \begin{cases} \begin{split} \frac{\partial z^3_1}{\partial a^2_1} = \frac{\partial (w^3_{1,1} \cdot a^2_1 + w^3_{1,2} \cdot a^2_2 + w^3_{1,3} \cdot a^2_3 + b^3_1)}{\partial a^2_1} = w^3_{1,1} \\ \frac{\partial z^3_2}{\partial a^2_1} = \frac{\partial (w^3_{2,1} \cdot a^2_1 + w^3_{2,2} \cdot a^2_2 + w^3_{2,3} \cdot a^2_3 + b^3_2)}{\partial a^2_1} = w^3_{2,1} \end{split} \end{cases} \end{equation} \tag{cose_bpmp16}\label{cose_bpmp16}\[ \begin{equation} \begin{cases} \begin{split} \frac{\partial z^3_1}{\partial a^2_1} = \frac{\partial (w^3_{1,1} \cdot a^2_1 + w^3_{1,2} \cdot a^2_2 + w^3_{1,3} \cdot a^2_3 + b^3_1)}{\partial a^2_1} = w^3_{1,1} \\ \frac{\partial z^3_2}{\partial a^2_1} = \frac{\partial (w^3_{2,1} \cdot a^2_1 + w^3_{2,2} \cdot a^2_2 + w^3_{2,3} \cdot a^2_3 + b^3_2)}{\partial a^2_1} = w^3_{2,1} \end{split} \end{cases} \end{equation} \tag{cose_bpmp16}\label{cose_bpmp16} \]
引用的效果为:
- 引用\(\ref{cose_bpmp16}\)
- 公式\(\eqref{cose_bpmp16}\)
在公式中引用公式
a := x^2-y^3 \label{a} \tag{a}\[ a := x^2-y^3 \label{a} \tag{a} \]
- 引用\(\ref{a}\)
- 公式\(\eqref{a}\)
在其他公式中引用:
a+y^3 \stackrel{\eqref{a}}= x^2\[ a+y^3 \stackrel{\eqref{a}}= x^2 \]
color.js插件
MathJax.Hub.Config({ // ... TeX: { // ... extensions: ["color.js", "enclose.js"] // ... }, // ... })
例如,在表达式 \((\lambda {\color{blue}x}. \lambda {\color{orange}y}.({\color{blue}x}){\color{orange}y})\lambda {\color{green}x}.({\color{red}y}){\color{green}x}\) 中, 变量 \({\color{blue}x}\) 和变量 \({\color{green}x}\) 都是约束变量,虽然二者都是同一个字母, 但并不是同一个约束变量,因为它们被不同的\(\lambda\)-抽象绑定着, 有着各自的辖域(已经用颜色标记出来)。而变量 \({\color{red}y}\) 是自由变量, 而\({\color{orange}y}\)是约束变量,因为它被 \( \lambda {\color{orange}y}\) 所绑定。 所以 \(\phi\big{(}(\lambda x. \lambda y.(x)y)\lambda x.(y)x \big{)} = { { \color{red} y }}\)
TeX公式
TeX指令定义格式,生效于指令后的第一个字符或是分组,分组用{...}
指定。
在公式上右键可以打开菜单,查看公式的源代码(MathJax格式与TeX格式都可以)。
字体
数学字体可以选择用图片显示还是用网络字体:
MathJax.Hub.Config({ // .... "HTML-CSS": { // .... availableFonts: ["TeX"], // 使用网络字体格式 // .... }, // .... });
MathJax.Hub.Config({ // .... "HTML-CSS": { // .... fonts: ["Latin-Modern"], // 使用图片作为字体 // .... }, // .... });
数学字体
-
使用
\mathbb
或\Bbb
显示黑板粗体字,此字体经常用来表示实数、整数、有理数、复数。 如:\(\mathbb{CHNQRZ}\) -
使用
\mathbf
显示黑体字,如:\(\mathbf{ABCDEabcde}\) -
使用
\mathtt
显示打印机字体,如:\(\mathtt{ABCDEabcde}\) -
使用
\mathbb
显示空心字体,如:\(\mathbb{KL}\) -
使用
\mathrm
显示罗马字体,如:\(\mathrm{ABCDEabcde}\) -
使用
\mathscr
显示手写体,如:\(\mathscr{ABCDE}\) -
使用
\mathfrak
显示Fraktur字母(一种德国字体),如:\(\mathfrak{ABCDEabcde}\)
手写的例子:
颜色
命名颜色是浏览器相关的,直接使用HTML色彩名:
\[ \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{fuchsia}{text} \\ \verb+\color{magenta}{text}+ & \color{magenta}{text} \\ \hline \end{array} \]
颜色也可以使用#rgb
形式来表示:
基础数字指令
-
实值直接用字母表示,如
x
显示为:\(x\) -
上标和下标分别使用
^
与_
,例如x_i^2
生成:\(x_i^2\) -
分数用
\frac
表示:\frac{1}{2}
生成:\(\frac{1}{2}\) -
分数还可以用
\over
,如{a+1 \over b+1}
生成:\({a+1 \over b+1}\)
书写连分数表达式时,使用\cfrac
代替\frac
或者\over
,两者效果对比如下:
-
根式使用
\sqrt
表示,如:\sqrt[4]{x}
:\(\sqrt[4]{x}\)、\sqrt{x}
:\(\sqrt{x}\) -
表示排列使用
\binom{n+1}{2k}
:\(\binom{n+1}{2k}\)或{n+1 \choose 2k}
:\({n+1 \choose 2k}\) -
模运算
\pmode
,如a \equiv b \pmod n
:\(a \equiv b \pmod n\) - ldots位置稍低:\(a_1, a_2, \ldots , a_n\),cdots位置居中:\(a_1 + a_2 + \cdots + a_n\)。
-
向量、矩阵用
\mathrm{x, y}
显示为:\(\mathrm{x, y}\)
括号
-
小括号与方括号:使用原始的
()
,[]
即可,如(2+3)[4+4]
生成:\((2+3)[4+4]\) -
大括号:由于大括号
{}
被用来分组,因此需要使用\{...\}
表示大括号, 也可以使用\lbrace ... \rbrace
来表示。如\{a*b\}
生成:\(\{a*b\}\),\lbrace a*b \rbrace
生成:\(\lbrace a*b \rbrace\) -
尖括号:使用
\langle ... \rangle
表示左尖括号和右尖括号。如:\langle x \rangle
生成:\(\langle x \rangle\) -
上取整:使用
\lceil ... \rceil
表示。 如\lceil x \rceil
:\(\lceil x \rceil\) -
下取整:使用
\lfloor ... \rfloor
表示。如\lfloor x \rfloor
:\(\lfloor x \rfloor\)
需要注意的是,原始符号并不会随着公式大小缩放,可以使用\left(...\right)
来自适应地调整括号大小。
如未放大的括号:
加上放大指令以后:
\[ \left\lbrace\sum_{i=0}^0 i^2 = \frac{(n^2+n)(2n+2)}{6}\right\rbrace\tag{1.2} \]常用函数
求和、积分,极限:
\[ \begin{equation} \begin{split} \int^1_0f(x){\rm d}x=\lim\limits_{\lambda \rightarrow 0}\sum\limits^{n}_{k=1}f(\xi_k)\Delta x_k \end{split} \end{equation} \]源代码:
\begin{equation} \begin{split} \int^1_0f(x){\rm d}x=\lim\limits_{\lambda \rightarrow 0}\sum\limits^{n}_{k=1}f(\xi_k)\Delta x_k \end{split} \end{equation}\[ \begin{equation} \begin{split} \max\limits_{1\leq k\leq n} \Delta x_k \end{split} \end{equation} \]
源代码:
\begin{equation} \begin{split} \max\limits_{1\leq k\leq n} \Delta x_k \end{split} \end{equation}
同样常用的符号还有:
-
\iint
\(\iint\)、\iiint
\(\iiint\) -
\bigcup
\(\bigcup\)、\bigcap
\(\bigcap\) -
\prod
\(\prod\)
对于多重积分,应该使用\iint
、\iiint
等特殊形式:
在微分前应该使用\,
来增加些许空间,否则\(TeX\)会将微分紧凑地排列在一起:
微分,导数,正弦,余弦
\[ \begin{equation} \begin{split} \frac{{\rm d}y}{{\rm d}x}=\frac{\frac{{\rm d}y}{{\rm d}t}}{\frac{{\rm d}x}{{\rm d}t}}= \frac{\cos t}{\sin t}=\cot t \end{split} \end{equation} \]源代码:
\begin{equation} \begin{split} \frac{{\rm d}y}{{\rm d}x}=\frac{\frac{{\rm d}y}{{\rm d}t}}{\frac{{\rm d}x}{{\rm d}t}}= \frac{\cos t}{\sin t}=\cot t \end{split} \end{equation}
基本格式
表格
\begin{array}{列样式}...\end{array}
这样的形式来创建表格:
-
列样式
中每个字符代表一个列的样式。每个列用c
、l
、r
分别, 表示居中、左、右对齐,还可以使用|
表示一条竖线。 -
表格中各行使用
\\
分隔,各列使用&
分隔,使用\hline
在本行前加入一条水平线。
例如:
\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}\[ \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} \]
例:
\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}\[ \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} \]
矩阵
使用\begin{matrix}...\end{matrix}
来表示矩阵,
矩阵的行之间用\\
分隔,列之间用&
分隔。
例:
\begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \end{matrix}\[ \begin{matrix} 1 & x & x^2 \\ 1 & y & y^2 \\ 1 & z & z^2 \end{matrix} \]
如果要对矩阵加括号,可以像上文中提到的那样,使用\left
与\right
配合表示括号符号。
也可以使用特殊的符号:pmatrix
、bmatrix
、Bmatrix
、vmatrix
、Vmatrix
可以使用\cdots
:\(\cdots\)、\ddots
:\(\ddots\)、\vdots
:\(\vdots\)
来省略矩阵中的元素,如:
增广矩阵需要使用array来实现,如:
\left[ \begin{array}{cc|c} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right]\[ \left[ \begin{array}{cc|c} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right] \]
多行公式
等号对齐:
\begin{split} \frac{n_1}{d_1} + \frac{n_2}{d_2} &= \frac{n_1d_2 + n_2d_1}{d_1d_2} \\ \frac{n_1}{d_1} - \frac{n_2}{d_2} &= \frac{n_1d_2 - n_2d_1}{d_1d_2} \\ \frac{n_1}{d_1} \times \frac{n_2}{d_2} &= \frac{n_1n_2}{d_1d_2} \\ \frac{n_1}{d_1} \div \frac{n_2}{d_2} &= \frac{n_1d_2}{d_1n_2} \\ \frac{n_1}{d_1} &= \frac{n_2}{d_2} \quad \quad \quad \quad \quad \quad \text{当且仅当 $n_1d_2 = n_2d_1$} \end{split}\[ \begin{split} \frac{n_1}{d_1} + \frac{n_2}{d_2} &= \frac{n_1d_2 + n_2d_1}{d_1d_2} \\ \frac{n_1}{d_1} - \frac{n_2}{d_2} &= \frac{n_1d_2 - n_2d_1}{d_1d_2} \\ \frac{n_1}{d_1} \times \frac{n_2}{d_2} &= \frac{n_1n_2}{d_1d_2} \\ \frac{n_1}{d_1} \div \frac{n_2}{d_2} &= \frac{n_1d_2}{d_1n_2} \\ \frac{n_1}{d_1} &= \frac{n_2}{d_2} \quad \quad \quad \quad \quad \quad \text{当且仅当 $n_1d_2 = n_2d_1$} \end{split} \]
每行一个标号:
\begin{align} \sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\ & = \sqrt{\frac{73^2}{12^2} \cdot \frac{73^2-1}{73^2}} \\ & = \frac{73}{12} \sqrt{1 - \frac{1}{73^2}} \\ & \approx \frac{73}{12} \left( 1 - \frac{1}{2 \cdot 73^2} \right) \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}} \\ & = \frac{73}{12} \sqrt{1 - \frac{1}{73^2}} \\ & \approx \frac{73}{12} \left( 1 - \frac{1}{2 \cdot 73^2} \right) \end{align} \]
使用\begin{align}
时,在每个式子末尾加上\nonumber
可以去掉显示式子的标号。
条件式与分类式
花括号在左边
花括号在左边的例子:
Fib(n)=\begin{cases} & 0 & \text{当:} n=0 \\ & 1 & \text{当:} n=1 \\ & Fib(n-1) + Fib(n-2) & \text{其他情况} \end{cases}\[ Fib(n)=\begin{cases} & 0 & \text{当:} n=0 \\ & 1 & \text{当:} n=1 \\ & Fib(n-1) + Fib(n-2) & \text{其他情况} \end{cases} \]
花括号在右边
花括号在右边的例子需要使用array来实现:
\left. \begin{array}{l} \text{if $n$ is even:} & n/2 \\ \text{if $n$ is odd:} & 3n+1 \end{array} \right\} = f(n)\[ \left. \begin{array}{l} \text{if $n$ is even:} & n/2 \\ \text{if $n$ is odd:} & 3n+1 \end{array} \right\} = f(n) \]
方程组
使用\begin{array}...\end{array}
与\left ...\right.
配合表示方程组,如:
\left\{ \begin{array}{c} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d3 \end{array} \right.\[ \left\{ \begin{array}{c} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d3 \end{array} \right. \]
同时,还可以使用\begin{cases}...\end{cases}
表达同样的方程组,如:
\begin{cases} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{cases}\[ \begin{cases} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{cases} \]
对齐方程组中的等号,可以使用\begin{aligned}...\end{aligned}
,如:
\left\{ \begin{aligned} a_1x+b_1y+c_1z & = d_1+e_1 \\ a_2x+b_2y & = d_2 \\ a_3x+b_3y+c_3z & = d_3 \end{aligned} \right.\[ \left\{ \begin{aligned} a_1x+b_1y+c_1z & = d_1+e_1 \\ a_2x+b_2y & = d_2 \\ a_3x+b_3y+c_3z & = d_3 \end{aligned} \right. \]
空间调整
行距调整
如果需要让分类之间的垂直间隔变大,可以使用\\[2ex]
代替\\
来分隔不同情况。
(3ex
, 4ex
也可以使用,1ex
相当于原始距离)。
控制水平间距
命令 | 描述 | 尺寸 |
---|---|---|
\quad
|
空格 | 当前字体大小 |
\qquad
|
两倍空格 | 两倍当前字体 |
\,
|
小空格 | 3/18的quad |
\:
|
中等空格 | 4/18的quad |
\;
|
大空格 | 4/18的quad |
\!
|
负空格 | -3/18的quad |
\int y \quad \rm{d}x \int y \qquad, \rm{d}x \int y \: \rm{d}x \int y \; \rm{d}x \int y \! \rm{d}x
调整分式
在指数或者基本表达式中使用\frac
会使表达式看起来不清晰,
因此在专业的数学排版中很少被使用。应该使用一个水平的/
来代替,效果如下:
调整|分隔符
符号|
作为分隔符时有排版空间大小的问题,应该使用\mid
代替,效果如下:
速查表
常用符号
不知道代码的符号可以在Detexify 上查找。用鼠标在网页上直接画出符号。
希腊字母
名称 | 大写 | TeX | 小写 | TeX | 名称 | 大写 | TeX | 小写 | TeX |
---|---|---|---|---|---|---|---|---|---|
alpha | \(A\) |
A
|
\(\alpha\) |
\alpha
|
nu | \(N\) |
N
|
\(\nu\) |
\nu
|
beta | \(B\) |
B
|
\(\beta\) |
\beta
|
xi | \(\Xi\) |
\Xi
|
\(\xi\) |
\xi
|
gamma | \(\Gamma\) |
\Gamma
|
\(\gamma\) |
\gamma
|
omicron | \(O\) |
O
|
\(\omicron\) |
\omicron
|
delta | \(\Delta\) |
\Delta
|
\(\delta\) |
\delta
|
pi | \(\Pi\) |
\Pi
|
\(\pi\) |
\pi
|
epsilon | \(E\) |
E
|
\(\epsilon\) |
\epsilon
|
rho | \(P\) |
P
|
\(\rho\) |
\rho
|
zeta | \(Z\) |
Z
|
\(\zeta\) |
\zeta
|
sigma | \(\Sigma\) |
\Sigma
|
\(\sigma\) |
\sigma
|
eta | \(Eta\) |
Eta
|
\(\eta\) |
\eta
|
tau | \(T\) |
T
|
\(\tau\) |
\tau
|
theta | \(\Theta\) |
\Theta
|
\(\theta\) |
\theta
|
upsilon | \(\Upsilon\) |
\Upsilon
|
\(\upsilon\) |
\upsilon
|
iota | \(I\) |
I
|
\(\iota\) |
\iota
|
phi | \(\Phi\) |
\Phi
|
\(\phi\) |
\phi
|
kappa | \(K\) |
K
|
\(\kappa\) |
\kappa
|
chi | \(X\) |
X
|
\(\chi\) |
\chi
|
lambda | \(\Lambda\) |
\Lambda
|
\(\lambda\) |
\lambda
|
psi | \(\Psi\) |
\Psi
|
\(\psi\) |
\psi
|
mu | \(M\) |
M
|
\(\mu\) |
\mu
|
omega | \(\Omega\) |
\Omega
|
\(\omega\) |
\omega
|
一些希腊字母具有变体形式,如\epsilon \varepsilon
:\(\epsilon \varepsilon\),\phi \varphi
:\(\phi \varphi\)。