最近在学习一些机器学习相关的知识,想把本身学习的东西经过 MD 的形式在线记录下来,可是以前一直没有开始行动,由于里面的公式什么的感受实在是麻烦。因而今天打算花点时间了解一下
如何在 markdown 中插入数学公式
,发现其实很简单,大概花一个小时左右就能知道如何编写了。javascript
笔者认为所谓插入数学公式其实就是引入一种规则,而后经过
模板?
渲染成公式,不知道这个理解对不对,不对望指正。其实你之前可能就看到过有的博客本该出现公式的时候不显示,点击后会连接到一个 new tab 而后显示一张公式的图片,有时却出现一大堆的代码。这里就是经过这段代码解析成公式而后显示的。html
这里咱们选取 MathJax 引擎。 引入脚本,把下面代码插入 MD 文件里面,若是你怕这份在线文件源别人访问不到的话,能够把这个下下来本身作一个源,这样比较稳定缺点是要本身手动更新源。java
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>
复制代码
好了到这里就能够插入公式了,若是你懂 LaTeX 的话那看一两个例子就知道了,不懂也不要紧,本身写一写代码就知道了,能够找一个能够预览 MD 的工具一直尝试。git
这里分两种,一种是行间插入,另外一种是另取一行github
\\(a + b\\)
复制代码
这里是行间插入公式 a + b : \(a + b\),特色就是经过(
和 )
包含公式,而后为了模板引擎可以区分该 (
不是普通文本的 (
而是公式的 (
,经过 \\
转义一下。这样应该就很好理解这个语法构成了。注意这里方式不惟一,这是笔者喜欢的方式,其余的使用方式自行搜索。下面的介绍一样是这样。数组
PS: 这里掘金使用的是 $a + b$
: ,若是对您的阅读产生印象,请看最后说明,这里就不作一一更改了。谢谢。bash
$$a + b$$
复制代码
这里是另取一行markdown
特色就是经过$$
包含公式。app
笔者认为第二种方式更好,如下没看 JS 源码纯属猜想:行间的须要考虑到当前行的行高并对公式进行处理,而另取一行就更简单一些,可能解析起来更快。最最最最最最主要是看起来漂亮 ^_^ 不太要考虑空间不够换行。机器学习
这里对 @houkai :LATEX数学公式基本语法 的思路稍加修改,而后进行介绍。
先看结果再总结语法吧。
$$x_1$$
$$x_1^2$$
$$x^2_1$$
$$x_{22}^{(n)}$$
$${}^*x^*$$
$$x_{balabala}^{bala}$$
复制代码
能够看到 x
元素的上标经过 ^
符号后接的内容体现,下表经过 _
符号后接的内容体现,多于一位是要加 {}
包裹的。 笔者习惯先下标后上标的写法,和个人书写习惯一致:x_{balabala}^{bala}
,无论你使用哪种风格,最好本身注意统一,不要混用。
$$\frac{x+y}{2}$$
$$\frac{1}{1+\frac{1}{2}}$$
复制代码
这里就出现了一个 frac{}{}
函数的东西,一样,为了区分这是函数不是几个字母,经过 \frac
转义,因而 frac
被解析成函数,而后第一个 {}
里面的被解析成分子,第二个 {}
被解析成分母。这里能够试试分数的行间解析。我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果我要看行间填充效果。
$$\sqrt{2}<\sqrt[3]{3}$$
$$\sqrt{1+\sqrt[p]{1+a^2}}$$
$$\sqrt{1+\sqrt[^p\!]{1+a^2}}$$
复制代码
读到这里你已经了解了函数的概念,那么这历久很简单了,语法就是 sqrt[]{}
。[]
中表明是几回根式,{}
表明根号下的表达式。第二和第三个的区别在于为了美观微调位置 ^_^。
$$\sum_{k=1}^{n}\frac{1}{k}$$
$\sum_{k=1}^n\frac{1}{k}$
$$\int_a^b f(x)dx$$
$\int_a^b f(x)dx$
复制代码
这里很容易看出求和函数表达式 sum_{起点}^{终点}表达式
,积分函数表达式 int_下限^上限 被积函数d被积量
。还有一个有趣的是行间的公式都被压缩了。
紧贴 $a\!b$
没有空格 $ab$
小空格 a\,b
中等空格 a\;b
大空格 a\ b
quad空格 $a\quad b$
两个quad空格 $a\qquad b$
复制代码
这个直接看上面的文字,介绍很清楚,主要指微调距离,使得公式更加漂亮。请比较下面的积分公式:
$$\int_a^b f(x)\mathrm{d}x$$
$$\int_a^b f(x)\,\mathrm{d}x$$
复制代码
\\( ( \\)
\\( ) \\)
\\( [ \\)
\\( ] \\)
\\( \\{ \\)
\\( \\} \\)
\\( | \\)
\\( \\| \\)
掘金:
$ ( $
$ ) $
$ [ $
$ ] $
$ \{ $
$ \} $
$ | $
$ \| $
复制代码
主要符号有
那么如何使用呢? 经过
\left
和 \right
后面跟界定符来对同时进行界定。
$$\left(\sum_{k=\frac{1}{2}}^{N^2}\frac{1}{k}\right)$$
复制代码
$$\begin{matrix}1 & 2\\\\3 &4\end{matrix}$$
$$\begin{pmatrix}1 & 2\\\\3 &4\end{pmatrix}$$
$$\begin{bmatrix}1 & 2\\\\3 &4\end{bmatrix}$$
$$\begin{Bmatrix}1 & 2\\\\3 &4\end{Bmatrix}$$
$$\begin{vmatrix}1 & 2\\\\3 &4\end{vmatrix}$$
$$\left|\begin{matrix}1 & 2\\\\3 &4\end{matrix}\right|$$
$$\begin{Vmatrix}1 & 2\\\\3 &4\end{Vmatrix}$$
复制代码
相似于 left right,这里是 begin 和 end。并且里面有具体的矩阵语法,&
区分行间元素,\\\\
表明换行。能够理解为 HTML 的标签之类的。
\mathbf{X} =
\left( \begin{array}{ccc}
x\_{11} & x\_{12} & \ldots \\\\
x\_{21} & x\_{22} & \ldots \\\\
\vdots & \vdots & \ddots
\end{array} \right)
复制代码
持续更新……
主要是各类方程的表达
$$
\begin{multline}
x = a+b+c+{} \\\\
d+e+f+g
\end{multline}
$$
$$
\begin{aligned}
x ={}& a+b+c+{} \\\\
&d+e+f+g
\end{aligned}
$$
复制代码
不对齐
对齐
$$
\begin{gather}
a = b+c+d \\\\
x = y+z
\end{gather}
$$
$$
\begin{align}
a &= b+c+d \\\\
x &= y+z
\end{align}
$$
复制代码
$$
y=\begin{cases}
-x,\quad x\leq 0 \\\\
x,\quad x>0
\end{cases}
$$
复制代码
里面用到了 \(\leq\) 符号,下一章会介绍经常使用数学符号。
$$
\left(\begin{array}{|c|c|}
1 & 2 \\\\
\\hline
3 & 4
\end{array}\right)
$$
复制代码
$$
\begin{array}{|c|c|}
\hline
{1111111111} & 2 \\\\
\hline
3 & 4 \\\\
\hline
\end{array}
$$
复制代码
能够看到,其实其余不少东西均可以很灵活的表达出来。碰到其余有趣的我会继续写出来的。
这里提供一个文档下载,若是上面的连接失效,也能够到个人 GitHub 下载 pdf 版。下面举几个例子。
$$
\begin{array}{|c|c|c|c|c|c|c|c|}
\hline
{\alpha} & {\backslash alpha} & {\theta} & {\backslash theta} & {o} & {o} & {\upsilon} & {\backslash upsilon} \\\\
\hline
{\beta} & {\backslash beta} & {\vartheta} & {\backslash vartheta} & {\pi} & {\backslash pi} & {\phi} & {\backslash phi} \\\\
\hline
{\gamma} & {\backslash gamma} & {\iota} & {\backslash iota} & {\varpi} & {\backslash varpi} & {\varphi} & {\backslash varphi} \\\\
\hline
{\delta} & {\backslash delta} & {\kappa} & {\backslash kappa} & {\rho} & {\backslash rho} & {\chi} & {\backslash chi} \\\\
\hline
{\epsilon} & {\backslash epsilon} & {\lambda} & {\backslash lambda} & {\varrho} & {\backslash varrho} & {\psi} & {\backslash psi} \\\\
\hline
{\varepsilon} & {\backslash varepsilon} & {\mu} & {\backslash mu} & {\sigma} & {\backslash sigma} & {\omega} & {\backslash omega} \\\\
\hline
{\zeta} & {\backslash zeta} & {\nu} & {\backslash nu} & {\varsigma} & {\backslash varsigma} & {} & {} \\\\
\hline
{\eta} & {\backslash eta} & {\xi} & {\backslash xi} & {\tau} & {\backslash tau} & {} & {} \\\\
\hline
{\Gamma} & {\backslash Gamma} & {\Lambda} & {\backslash Lambda} & {\Sigma} & {\backslash Sigma} & {\Psi} & {\backslash Psi} \\\\
\hline
{\Delta} & {\backslash Delta} & {\Xi} & {\backslash Xi} & {\Upsilon} & {\backslash Upsilon} & {\Omega} & {\backslash Omega} \\\\
\hline
{\Omega} & {\backslash Omega} & {\Pi} & {\backslash Pi} & {\Phi} & {\backslash Phi} & {} & {} \\\\
\hline
\end{array}
$$
复制代码
写太累了😂😂😂。。。其余的详见 PDF。
经过这样梳理一下基本的公式都能插入了,并且也会如何查资料。对于本身往后学习 LaTeX 写论文有很大帮助。如下建议带有很强的主观性,仅供参考。
$$***$$
里,保证独立性
,一个公式错误不影响另外一个公式。x_{balabala}^{bala}
\\(a\\)
代替 a
,养成本身的写做风格。十分感谢如下做者的无私分享。
说明:掘金好像有些转义不出来,若是想看效果能够参考这篇本身多试试。