Abstract
本博客集成了mathjax
,这使得Markdown
解析器更上一层楼。
在此 Post 这篇文章,以便应对硕士时大量的 essay 需求。希望以后能帮到同样奋斗在 System Engineering 领域的学习者。
只记录常用 LaTex 记号,根据自己需要更新。若用到更高级的技巧或想了解完整的 LaTex 语法,请参阅文末官方文档链接。
本文持续更新。
$$
J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
$$
My blog integrates mathjax
module, which makes Markdown
more advanced. This post is intended to deal with my essay demands during SE studying, and of course I hope that this post can help those who are struggling in the field of System Engineering.
I only posted my frequently-used LaTeX notations of math on my own need, and I will update this post constantly.
For more advanced techs, please refer to the official document link at the end of the article.
Content
行内公式和行间公式
- 行内公式
如果我们要插入一个公式,把公式放在$
与$
之间就可以了。如$h(x) = \theta_0 + \theta_1 x$ 在Markdown
中书写如下:1
Markdown 中 $h(x) = \theta_0 + \theta_1 x$ 公式的书写。
- 行间公式
公式独立显示一行,使用$$
作为公式的左右边界。
书写一个质能守恒公式:1
$$E=mc^2$$
效果如下:
$$E=mc^2$$
在数学模式中,空格均不起作用,需要诸如\, ~ \quad,\qquad
的命令。
上下标
上标命令为^{...}
,下标为_{...}
,角标为单个字符时可不用花括号,同时有上标和下标时,输入次序不重要。如果角标的位置看起来不明显,可以强制改变角标的层次,如一级角标改为二级角标,如y_N
渲染为 $y_N$ 看不出角标,可以使 $N$ 为二级下标,y_{_N}
渲染 $y_{_N}$。
上下标可以同时和嵌套使用,例如$a_2^{2^{2^2}}$
,输出$a_2^{2^{2^2}}$。
分式根式
短分数线直接使用/
,水平分数线$\frac{x+y}{2}$
,输出$\frac{x+y}{2}$。
当然也可以通过在花括号中添加一个分数的方式得到连分数,如:1
$$1+\frac{1}{2+\frac{1}{3+\frac{1}{4+\frac{1}{5+\dots}}}}$$
将输出:
$$1+\frac{1}{2+\frac{1}{3+\frac{1}{4+\frac{1}{5+\dots}}}}$$
开平方$\sqrt{x}$
输出$\sqrt{x}$,开高次方$\sqrt[n]{x}$
,$\sqrt[n]{x}$,同样也可以嵌套。
求和·连乘·积分·微分
行内求和$\sum_{k=1}^n$
,输出为$\sum_{k=1}^n$;行内连乘$\prod_{i=0}^n$
,输出为$\prod_{i=0}^n$;行内积分$\int_{k=1}^n$
,输出为$\int_{k=1}^n$,行间求和与积分只需要用两个$$
包围即可。
偏微分符号\partial
,微分算法 $d$ 应该是直体,输入为$\mathrm{d}$
,$\mathrm{d}$。
上划线·下划线·其他线
公式上划线$\overline{x+y}$
,输出$\overline{x+y}$;下划线$\underline{x+y}$
,$\underline{x+y}$;或者上方或下放花括号,使用\overbrace{}
或\underbrace{}
,例如:1
$$\underbrace{a + \overbrace{b + \dots + b}^{m\mbox{个}} + c}_{20\mbox{个}}$$
输出:
$$
\underbrace{a + \overbrace{b + \dots + b}^{m\mbox{个}} + c}_{20\mbox{个}}
$$
堆叠符号
在一个符号上面堆叠另一个符号,使用\stackrel{上方符号}{基位符号}
,如:1
$$\vec{x} \stackrel{\mathrm{def}}{=}(x_1,\dots,x_n)$$
输出:
$$\vec{x} \stackrel{\mathrm{def}}{=}(x_1,\dots,x_n)$$
这种方式得到的上下符号字号不同,要得到平等地位的结构,使用{上公式 \atop 下公式}
,如:1
$$\sum_{k+0,k_1,\ldots>0 \atop k_0+k_1+\cdots=n} A_{0k_0}A_{1K_1}\cdots$$
输出:
$$\sum_{k+0,k_1,\ldots>0 \atop k_0+k_1+\cdots=n} A_{0k_0}A_{1K_1}\cdots$$
或者,使用{上公式 \atop 下公式}
,整个公式被包围在括号中:1
$${n+1 \choose k} = {n \choose k} + {n \choose k-1}$$
输出:
$${n+1 \choose k} = {n \choose k} + {n \choose k-1}$$
定界符尺寸
诸如()、[]、{}、|等分割公式的称为定界符,前面加上\big,\Big,\bigg,\Bigg
可以放大这些符号,我比较喜欢用自适应的放大命令,\left...\right
,例如
1 | $$\left. \frac{\partial f(x, y)}{\partial x}\right|_{x=0}$$ |
输出:
$$\left. \frac{\partial f(x, y)}{\partial x}\right|_{x=0}$$
由于只有右侧有|需要变化,左侧没有需要变化的定界符,所以用英文句点.代替。
矩阵
1 | $$\left( \begin{array}{ccc} |
在{ }
中指定了对应的列格式,c
为内容居中对齐,l
为靠左,r
为靠右;&
为对齐符号,输出:
$$
\left(\begin{array}{ccc}
11 & 12 & 13 \\
21 & 22 & 23
\end{array}\right)
$$
Forms
使用大写开头字母来输入大写希腊字母,如 $\Gamma$
,生成 $\Gamma$。
Greek alphabet | Input | Symbols | Input |
---|---|---|---|
$\alpha$ | $\alpha$ |
$\vec{a}$ | $\vec{a}$ |
$\beta$ | $\beta$ |
$\dot{x}\ddot{x}$ | $\dot{x}\ddot{x}$ |
$\gamma$ | $\gamma$ |
$\dots \vdots \ddots$ | $\dots\vdots\ddots$ |
$\delta$ | $\delta$ |
$\bar{x}$ | $\bar{x}$ |
$\epsilon$ | $\epsilon$ |
$x’x’’x’’’$ | $x'x''x'''$ |
$\varepsilon$ | $\varepsilon$ |
$^{\circ}$C | $^{\circ}$C |
$\zeta$ | $\zeta$ |
$\hbar$ | $\hbar$ |
$\eta$ | $\eta$ |
$\mu m$ | $\mu m$ |
$\theta$ | $\theta$ |
$\pm$ | $\pm$ |
$\kappa$ | $\kappa$ |
$\nabla$ | $\nabla$ |
$\lambda$ | $\lambda$ |
$\mp$ | $\mp$ |
$\mu$ | $\mu$ |
$\times\div$ | $\times\div$ |
$\nu$ | $\nu$ |
$A^{\dagger}$ | $A^{\dagger}$ |
$\xi$ | $\xi$ |
$\oplus\otimes$ | $\oplus\otimes$ |
$\pi$ | $\pi$ |
$\Leftrightarrow\Updownarrow$ | $\Leftrightarrow\Updownarrow$ |
$\rho$ | $\rho$ |
$\cdot\bullet$ | $\cdot\bullet$ |
$\sigma$ | $\sigma$ |
$\le\ge\ll\gg$ | $\le\ge\ll\gg$ |
$\tau$ | $\tau$ |
$\ne\approx\sim\simeq\propto$ | $\ne\approx\sim\simeq\propto$ |
$\upsilon$ | $\upsilon$ |
$\in\ni\equiv$ | $\in\ni\equiv$ |
$\phi$ | $\phi$ |
$\infty$ | $\infty$ |
$\varphi$ | $\varphi$ |
$\forall\exists$ | $\forall\exists$ |
$\chi$ | $\chi$ |
$\rightarrow\Rightarrow$ | $\rightarrow\Rightarrow$ |
$\psi$ | $\psi$ |
$\Box$ | $\Box$ |
$\omega$ | $\omega$ |
$B_{\bot}B_{\parallel}$ | $B_{\bot}B_{\parallel}$ |
Resolve the Conflict (Optional)
可以通过修改Hexo渲染源码nodes_modules/lib/marked/lib/marked.js
来解决同时使用MathJax
与Markdown
时的转义冲突。
- 去掉
\
的额外转义。 - 将
em
标签对应的符号中,去掉_
,因为markdown
中有*
可以表示斜体,_
就可以去掉了。
去掉 \
的转义:
打开nodes_modules/marked/lib/marked.js
:1
escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,
改为:1
escape: /^\\([`*{}\[\]()# +\-.!_>])/,
去掉 _
的转义:
打开nodes_modules/marked/lib/marked.js
:1
em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
改为:1
em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
实例
解决了\\
的转义问题,便可大胆在Markdown
中使用多行公式了。
1 | $$ |
输出:
$$
\begin{align}
D(x) &= \int_{x_0}^x P(x^{\prime})\,\mathrm{dx^{\prime}} \\
&= C\int_{x_0}^x x^{\prime n}\,\mathrm{dx^{\prime}} \\
&= \frac{C}{n+1}(x^{n+1}-x_0^{n+1}) \\
&\equiv y
\end{align}
$$
结论
这种办法通用性很高,因为我们没有修改文章的内容,可以放到别的引擎下也会顺利渲染。
Further Reading
当你有问题的时候,来这里看看。
Github 上有个在线 Markdown MathJax 编辑器,可以在这里练习,平时写公式时也可以在这里先写好再拷贝到文章里。
这是一份
PDF
格式的 MathJax 支持的数学符号表,当需要书写复杂数学公式时,一些非常特殊的符号的转义字符可以从这里查到。在同时使用
MathJax
与Markdown
时,你可能需要解决 MathJax 与 Markdown 的冲突。针对
Hexo
下MathJax
的转义问题,本文给出了几种解决方法。另一篇针对
Hexo
下MathJax
的转义问题的文章。