基本数学公式语法(MathJax)
概述
为知笔记中markdown中支持数学公式LaTex语法。在书写数值计算类文章,特别是机器学习相关算法时,难免需要插入复杂的数学公式。一种是用图片在网页上展示,另外一种是使用 MathJax 来展示复杂的数学公式。它直接使用 Javascript渲染成矢量字库或 SVG 文件来显示数学公式。
优点是效果好,比如在 Retina 屏幕上也不会变得模糊。并且可以直接把公式写在 Markdown 文章里。
基本语法
呈现位置
- 正文(inline)中的LaTeX公式用$...$定义
- 语句为
$\sum_{i=0}^N \int_{a}^{b}g(t,i)\text{d}t$
- 显示为 \(\sum_{i=0}^N \int_{a}^{b}g(t,i)\text{d}t\)
- 语句为
- 单独显示(display)的LaTeX公式用
$$...$$
定义,此时公式居中并放大显示- 语句为
$$ \sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$$
- 显示为$$ \sum_{i=0}N\int_{a}{b}g(t,i)\text{d}t$$
- 语句为
- 下列描述语句中若非特别指出均省略
$...$
显示 | 命令 | 显示 | 命令 |
---|---|---|---|
$\alpha $ | \alpha | \(\beta\) | \beta |
\(\gamma\) | \gamma | \(\delta\) | \delta |
\(\epsilon\) | \epsilon | \(\zeta\) | \zeta |
\(\eta\) | \eta | \(\theta\) | \theta |
\(\iota\) | \iota | \(\kappa\) | \kappa |
\(\lambda\) | \lambda | \(\mu\) | \mu |
\(\nu\) | \nu | \(\xi\) | \xi |
\(\pi\) | \pi | \(\rho\) | \rho |
\(\eta\) | \eta | \(\eta\) | \eta |
\(\sigma\) | \sigma | \(\tau\) | \tau |
\(\upsilon\) | \upsilon | \(\phi\) | \phi |
\(\chi\) | \chi | \(\psi\) | \psi |
\(\omega\) | \omega |
- 若需要大写希腊字母,将命令首字母大写即可。
- \Gamma 呈现为$ \Gamma$
- 若需要斜体希腊字母,将命令前加上var前缀即可。
- \varGamma呈现为\(\varGamma\)
字母修饰
上下标
- 上标:^
- 下标:_
- 举例:C_n^2呈现为$ C_n^2$
矢量
- \vec a 呈现为$ \vec a $
- \overrightarrow{xy} 呈现为$ \overrightarrow{xy}$
分组
- 使用{}将具有相同等级的内容扩入其中,成组处理
- 举例:10{10}呈现为$10^{10}$,而1010呈现为\(10^10\)
$ [J_\alpha(x)=\sum_{m=0}^\infty \frac{(-1)^m}{m!\Gamma(m+ \alpha +1)}{\left({\frac{x}{2}}\right)}^{2m+\alpha}] $
括号
- 小括号:()呈现为\(()\)
- 中括号:[]呈现为\([]\)
- 使用\left(或者\right)使符号大小与邻近的公式相适应;该语句适用于素有括号类型
- (\frac{x}{y})呈现为\((\frac{x}{y})\)
- 而\left(\frac{x}{y}\right)呈现为\(\left(\frac{x}{y}\right)\)
求和、极限与积分
- 求和:\sum
- 举例:\sum_{i=1}^n{a_i}呈现为 \(\sum_{i=1}^n{a_i}\)
- 极限:\lim_{x\to 0}呈现为$ \lim_{x\to 0}$
- 积分:\int
- 举例:\int_0^\infty{f(x)dx} 呈现为$ \int_0^\infty{f(x)dx}$
分式与根式
- 分式(fractions):\frac{公式1}{公式2}呈现为\(\frac{公式1}{公式2}\)
-根式:\sqrt[x]{y}呈现为\(\sqrt[x]{y}\)
特殊函数
- \函数名
- 举例:\sin x,\ln x,\max(A,B,C)呈现为\(\sin x\),\(\ln x\),\(\max(A,B,C)\)
显示 | 命令 |
---|---|
\(\infty\) | \infty |
\(\cup\) | \cup |
\(\cap\) | \cap |
\(\subset\) | \subset |
\(\subseteq\) | \subseteq |
\(\supset\) | \supset |
\(\in\) | \in |
\(\notin\) | \notin |
\(\varnothing\) | \varnothing |
\(\forall\) | \forall |
\(\exists\) | \exists |
\(\lnot\) | \lnot |
\(\nabla\) | \nabla |
\(\partial\) | \partial |
空格
- LaTeX语法本身会忽略空格的存在
- 小空格 a\ b呈现为\(a\ b\)
- 4格空格:a\quad b 呈现为\(a\quad b\)
矩阵
基本语法
- 起始标记
\begin{matrix}
,结束标记\end{matrix}
- 每一行末尾标记
\\
,行间元素之间以&
分隔 - 举例
$$ \begin{matrix}
1&0&0\\
0&1&1\\
0&1&1\\
\end{matrix}$$
呈现为:
\[ \begin{matrix}
1&0&0\\
0&1&1\\
0&1&1\\
\end{matrix}\]
矩阵边框
- 在起始、结束标记处用下列词替换matrix
- pmatrix:小括号边框
- bmatrix:中括号边框
- Bmatrix:大括号边框
- vmatrix:单竖线边框
- Vmatrix:双竖线边框
省略元素
- 横省略号:
\cdots
- 竖省略号:
\vdots
- 斜省略号:
\ddots
- 举例
$$\begin{bmatrix}
{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\
{a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\
{\vdots}&{\vdots}&{\ddots}&{\vdots}\\
{a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\
\end{bmatrix}$$
呈现为:
\[\begin{bmatrix}
{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\
{a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\
{\vdots}&{\vdots}&{\ddots}&{\vdots}\\
{a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\
\end{bmatrix}\]
线性回归算法里的成本函数
$$ J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 $$
上面用 LaTex 格式书写的数学公式经过 MathJax 展示后效果如下:
\[J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
\]
几个非常有用的资源
- Github 上有个在线 Markdown MathJax 编辑器,可以在这里练习,平时写公式时也可以在这里先写好再拷贝到文章里
- 这是 LaTex 完整教程,包含完整的 LaTex 数学公式的内容,包括更高级的格式控制等
- 这是一份PDF 格式的 MathJax 支持的数学符号表,当需要书写复杂数学公式时,一些非常特殊的符号的转义字符可以从这里查到