如何在Markdown中插入公式

如何优雅地在Markdown中输入数学公式

参考:

作者:咕噜咕噜酱

链接:原文链接

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

对于一些理科生来说,在学习数学知识的时候,在计算机上写公式是比较头疼的事情。好在Markdown支持LATEX公式输入,在一定程度上缓解了输入的麻烦。今天,我们就来介绍一下,如何在Markdown中编写公式。

一、基础部分

1. 公式标记

在Markdown中,有两种输入公式的方法:一是行内公式(inline),用一对美元符号$包裹。二是整行公式(displayed),用一对紧挨的两个美元符号$$包裹。

这是一个行内公式E=mc2,写法是:$E=mc^2$

这是一个整行公式:

∑i=0ni2=(n2+n)(2n+1)6

写法是:

$$
\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}
$$

2. 希腊字母

名称大写Tex小写Tex
alphaAAα\alpha
betaBBβ\beat
gammaΓ\Gammaγ\gamma
deltaΔ\Deltaδ\delta
epsilonEEϵ\epsilon
zetaZZζ\zeta
etaHHη\eta
thetaΘ\Thetaθ\theta
iotaIIι\iota
kappaKKκ\kappa
lambdaΛ\Lambdaλ\lambda
muMMμ\mu
nuNNν\nu
xiΞ\Xiξ\xi
omicronOOο\omicron
piΠ\Piπ\pi
rhoPPρ\rho
sigmaΣ\Sigmaσ\sigma
tauTTτ\tau
upsilonΥ\Upsilonυ\upsilon
phiΦ\Phiϕ\phi
chiXXχ\chi
psiΨ\Psiψ\psi
omegaΩ\Omegaω\omega

3. 上标与下标

上标和下标分别使用^_来表示。例如x_i^2:xi2,\log_2 x:log2⁡x。

默认情况下,上下标符号仅仅对下一个组起作用。一个组即单个字符或者使用{}包裹起来的内容。也就是说,如果使用10^10会得到1010,而10^{10}才是1010。同时,大括号还能消除二义性,如x^5^6会显示错误,必须使用大括号来界定^的结合性,如{x^5}^6:x56或者x^{5^6}:x56。注意区分x_i^2:xi2和x_{i_2}:xi2。

另外,如果要在左右两边都有上下标,可以用\sideset来表示,如\sideset{^1_2}{^3_4}\bigotimes:⨂4321。

4. 括号

  • 小括号与方括号:使用原始的()[]即可。如(2+3)[4+4]:(2+3)[4+4]。
  • 大括号:由于大括号{}被用来分组,因此需要使用\{\}表示大括号,也可以使用\lbrace\rbrace来表示。如\{a*b\}或者\lbrace a*b \rbrace,都会显示为{a∗b}。
  • 尖括号:使用\langle\rangle分别表示左尖括号和右尖括号。如\langle x \rangle:〈x〉。
  • 上取整:使用\lceil\rceil表示。如\lceil x \rceil:⌈x⌉。
  • 下取整:使用\lfloor\rfloor表示。如\lfloor x \rfloor:⌊x⌋。

需要注意的是,原始括号并不会随着公式大小缩放。如(\frac12):(12)。可以使用\left( ...\right)来自适应的调整括号。如\left( \frac12 \right):(12)。可以明显看出,后一组公式中的括号是经过缩放的。

5. 求和与积分

\sum用来表示求和符号,其下标表示求和下限,上标表示上线。如\sum_1^n:∑1n。

\int用来表示积分符号,同样地,其上下标表示积分的上下限。如\int_1^\infty:∫1∞。

与此类似的符号还有,\prod:∏,\bigcup:⋃,\bigcap:⋂,\iint:∬。

6. 分式与根式

分式有两种表示方法。第一种,使用\frac ab,其中\frac作用于气候的两个组a和b,结果为ab。如果分子或分母不是单个字符,需要使用{}来分组。第二种,使用\over来分隔一个组的前后两部分,如{a+1\over b+1}:a+1b+1。

根式使用\sqrt[a]b来表示。其中,方括号内的值用来表示开几次方,省略方括号则表示开方,如\sqrt[4]{\frac xy}:xy4,\sqrt{x^3}:x3。

7. 字体

  • 使用\it显示意大利体(公式默认字体):ACDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathbb\Bbb显示黑板粗体(黑板黑体),如\mathbb{CHNQRZ}:CHNQRZ。
  • 使用\mathbf\bf示黑体:ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathtt\tt显示打印机字体:ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathrm\rm显示罗马体:ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathsf\sf显示等线体(sans-serif体):ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathcal显示艺术字体:ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mathscr\cal显示手写字体(花体):ABCDEFGHIJKLMNOPQRSTUVWXYZ。
  • 使用\mathfrak显示Fraktur字体(老式德国字体):ABCDEFGHIJKLMnopqrstuvwxyz。
  • 使用\mit显示数学斜体:1234567890。

8. 特殊函数与符号

  • 关系运算符:

    输入显示输入显示输入显示输入显示
    \pm±\mp\times×\div÷
    \mid\nmid\circ\bullet
    \cdot\ast\odot\bigodot
    \otimes\bigotimes\oplus\bigoplus
    \lt<\gt>\leq\geq
    \neq\approx\equiv\sim
    \simeq\cong\prec\lhd
    \sum\prod\coprod
  • 集合运算符:

    输入显示输入显示输入显示输入显示
    \emptyset\varnothing\in\notin
    \subset\supset\cup\cap
    \subseteq\supseteq\subsetneq\supsetneq
    \bigcup\bigcap\bigvee\bigwedge
    \uplus\biguplus\sqcup\bigsqcup
  • 对数运算符

    输入显示输入显示输入显示
    \loglog\lglg\lnln
  • 三角运算符

    输入显示输入显示输入显示
    \bog\angle30^\circ30∘
    \sinsin\coscos\tantan
    \cotcot\secsec\csccsc
  • 微积分运算符

    输入显示输入显示输入显示
    \prime\int\iint
    \iiint\iiiint\oint
    \limlim\infty\nabla
  • 逻辑运算符

    输入显示输入显示输入显示输入显示
    \because\therefore\forall\exists
    \not=\lnot¬\vdash\vDash
    \land\lor\top\bot
  • 箭头符号

    输入显示输入显示输入显示输入显示
    \uparrow\downarrow\rightarrow(\to)\leftarrow
    \Uparrow\Downarrow\Rightarrow\Leftarrow
    \longrightarrow\longleftarrow\Longrightarrow\mapsto
  • 表示排列使用{n+1 \choose 2k}\binom{n+1}{2k}:(n+12k)。

  • 使用\pmod表示模运算,如a\equiv b\pmod n:a≡b(modn)。

  • 使用\ldots\cdots表示省略号,二者的区别是dots的位置不同,ldots位置稍低a1,a2,…,an,cdots位置居中a1+a2+⋯+an。

  • 使用\overline\underline表示连线符号,如\overline{a+b+c+d}:a+b+c+d―,\underline{x+y+z}:x+y+z―。

  • 其他特殊字符:\star:⋆、\aleph_0:ℵ0、\partial:∂、\Im:ℑ、\Re:ℜ。

  • 一些希腊字母具有变体形式,如\epsilon \varepsilon:ϵε、\phi \varphi:ϕφ。

  • 需要注意的是,一些特殊字符可以使用\转义为原来的含义,如\$表示$、\_表示下划线。

9. 空间

在书写公式的时候,a和b之间无论输入多少空格,最后都会显示为ab。可以通过在ab间加入\,增加些许间隙,如a\,b:ab;\;增加较宽的间隙,如a\;b:ab;\quad\qquad会增加更大的间隙,如a\quad b:ab,a\qquad b:ab。

10. 顶部符号

对于单字符,可以使用\hat x:x^。多字符可以使用\widehat {xy}:xy^。

类似的还有,\check x:xˇ、\breve x:x˘、\bar x:x¯、\overline {xyz}:xyz―、\vec x:x→、\overrightarrow x:xyz→、\overleftrightarrow {xyz}:xyz↔、\dot x:x˙、\ddot x:x¨。


二、高级部分

1. 表格

使用$$\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}
$$

结果:

nLeftCenterRight10.2411252−1189−83−2020001+10i

2. 矩阵

  • 基本用法

    使用$$\begin{matrix}...\end{matrix}$$这样的形式来表示矩阵,在\begin\end之间加入矩阵中的元素即可。

    矩阵的行之间使用\\分隔,列之间使用&分隔。例如,

    $$
    \begin{matrix}
    1 & x & x^2 \\
    1 & y & y^2 \\
    1 & z & z^2 \\
    \end{matrix}
    $$
    

    结果:

    1xx21yy21zz2

  • 加括号:

    如果要对矩阵加括号,可以像上文中提到的,使用\left\right配合表示括号符号。

    也可以使用特殊的matrix,即替换\begin{matrix}...\end{matrix}中的matrix为pmatrixbmatrixBmatrixvmatrixVmatrix。例如,

    $$
    \begin{pmatrix}
    1 & 2 \\
    3 & 4 \\
    \end{pmatrix}
    $$
    

    结果:

    (1234)

    或者,

    bmatrix:\begin{bmatrix}1 & 2 \3 & 4 \end{bmatrix}\begin{bmatrix}1 & 2 \3 & 4 \\end{bmatrix}\begin{bmatrix}1 & 2 \3 & 4 \\end{bmatrix}

    Bmatrix:\begin{Bmatrix}1 & 2 \3 & 4 \end{Bmatrix}\begin{Bmatrix}1 & 2 \3 & 4 \\end{Bmatrix}\begin{Bmatrix}1 & 2 \3 & 4 \\end{Bmatrix}

    vmatrix:\begin{vmatrix}1 & 2 \3 & 4 \end{vmatrix}\begin{vmatrix}1 & 2 \3 & 4 \\end{vmatrix}\begin{vmatrix}1 & 2 \3 & 4 \\end{vmatrix}

    Vmatrix:\begin{Vmatrix}1 & 2 \3 & 4 \end{Vmatrix}\begin{Vmatrix}1 & 2 \3 & 4 \\end{Vmatrix}\begin{Vmatrix}1 & 2 \3 & 4 \\end{Vmatrix}

  • 省略元素:

    可以使用\cdots:⋯、\ddots:⋱、\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}
    $$
    

    结果:

    (1a1a12⋯a1n1a2a22⋯a2n⋮⋮⋮⋱⋮1amam2⋯amn)

  • 增广矩阵

    增广矩阵需要使用前面的array来实现。例如,

    $$
    \left[
    	\begin{array}{cc|c}
    	1 & 2 & 3 \\
    	4 & 5 & 6 \\
    	\end{array}
    \right]
    $$
    

    结果:

    [123456]

3. 对齐的公式

有时候可能需要一系列的公式中等号对齐,这需要使用形如\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)37=732−1122(2)=732122⋅732−1732(3)=732122732−1732(4)=73121−1732(5)≈7312(1−12⋅732)

4. 分类表达式

定义函数的时候经常需要分情况给出表达式,可使用\begin{cases}...\end{cases}。其中,使用\来分类,使用&指示需要对齐的位置。例如,

$$
f(n)=
\begin{cases}
n/2,&\text{if $n$ is even}\\
3n+1,&\text{if $n$ is odd}
\end{cases}
$$

结果:

f(n)={n/2,if n is even3n+1,if n is odd

上述公式的括号也可以移动到右侧,不过需要使用array来实现。如下,

$$
\left.
\begin{array}{1}
\text{if $n$ is even:}&n/2\\
\text{if $n$ is odd:}&3n+1
\end{array}
\right\}
=f(n)
$$

结果:

if n is even:n/2if n is odd:3n+1}=f(n)

如果想分类之间的垂直间隔变大,可以在行末使用\\[2ex]代替\\来分隔不同的情况(3ex,4ex也可以用,1ex相当于原始距离)。例如,

$$
f(n)=
\begin{cases}
\frac{n}{2},&\text{if $n$ is even}\\[2ex]
3n+1,&\text{if $n$ is odd}
\end{cases}
$$

结果:

f(n)={n2,if n is even3n+1,if n is odd

5. 空间问题

在使用LATEX公式时,有一些不会影响公式正确性,但却会使其看上去很糟糕的问题。

  • 不要在指数或者积分中使用\frac

    在指数或者积分表达式中使用\frac会使表达式看起来不清晰,因此在专业的数学排版中很少被使用。应该使用一个水平的/来代替,效果如下:

    BadBettereiπ2eiπ2eiπ/2∫−π2π2sin⁡xdx∫−π/2π/2sin⁡xdx

  • 使用\mid代替|作为分隔符

    符号|作为分隔符时,有排版空间大小的问题,应该使用\mid代替,效果如下:

    BadBetter{x|x2∈Z}{x∣x2∈Z}

  • 多重积分

    对于多重积分,不要使用\int\int此类表达,应该使用\iint\iiint等特殊形式,效果如下:

    BadBetter∫∫Sf(x)dydx∬Sf(x)dydx∫∫∫Vf(x)dzdydx∭Vf(x)dzdydx

    此外,在微分前应该使用\,来增加些许空间,否则TEX会将微分紧凑地排列在一起,如下:

    BadBetter∭Vf(x)dzdydx∭Vf(x)dzdydz

6. 连分数

书写连分数表达式时,请使用\cfrac代替\frac或者\over,两者效果对比如下:

(\cfrac)x=a0+12a1+22a2+32a3+42a4+⋯

(\frac)x=a0+12a1+22a2+32a3+42a4+⋯

7. 方程组

使用\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_3\\
a_ex+b_3y+c_3z=d_3
\end{array}
\right.
$$

显示:

{a1x+b1y+c1z=d1a2x+b2y+c2z=d3aex+b3y+c3z=d3

还可以使用\begin{cases}...\end{cases}表达上面同样的方程组,如:

$$
\begin{cases}
a_1x+b_1y+c_1z=d_1\\
a_2x+b_2y+c_2z=d_3\\
a_ex+b_3y+c_3z=d_3
\end{cases}
$$

对齐方程组中的=号,可以使用\begin{aligned}...\end{aligned},如:

$$
\left\{
\begin{aligned}
a_1x+b_1y+c_1z&=d_1\\
a_2x+b_2y&=d_2\\
a_3x+b_3y+c_3z&=d_3
\end{aligned}
\right.
$$

显示:

{a1x+b1y+c1z=d1a2x+b2y=d2a3x+b3y+c3z=d3

如果要对齐=号和项,可以使用\begin{array}{列样式}...\end{array},如:

$$
\left\{
\begin{array}{ll}
a_1x+b_1y+c_1z&=d_1\\
a_2x+b_2y&=d_2\\
a_3x+b_3y+c_3z&=d_3
\end{array}
\right.
$$

{a1x+b1y+c1z=d1a2x+b2y=d2a3x+b3y+c3z=d3

8. 附加装饰

\overline:A―AA―AAA―

\underline:B―BB―BBB―

\widetilde:C~CC~CCC~

\widehat:D^DD^DDD^

\fbox:EEEEEE

\underleftarrow:F←FF←FFF←

\underrightarrow:G→GG→GGG→

\underleftrightarrow:H↔HH↔HHH↔

\overbrace:(n−2)+(n1)+n+(n+1)⏞+(n+2)⏞

\underbrace:(n−2)+(n1)+n+(n+1)⏟+(n+2)⏟

\overbrace\underbrace可以使用上下标进行注释,如:\underbrace{a\cdot a\cdots a}_{b_\text{ times}}显示为a⋅a⋯a⏟b times

注释音标:\check:Iˇ、\acute:J´、\grave:K`。

9. 交换图表

使用\begin{CD}...\end{CD}表示交换图表,如下:

$$
\begin{CD}
A@>a>>B\\
@VbVV=@VVcV\\
C@>>d>D
\end{CD}
$$

显示:

A→aBb↓=↓cC→dD

\@>>>表示箭头向右。

\@<<<表示箭头向左。

\@AAA表示箭头向上。

\@VVV表示箭头向下。

\@=表示水平双线。

\@|表示垂直双线。

\@.表示没有箭头。

例如:

\begin{CD}
A@>>>B@>{\text{very long label}}>>C\\
@.@AAA@|\\
D@=E@<<<F
\end{CD}

显示:

A→B→very long labelC↑∥D=E←F

也可以用此方法编写一个化学方程式,例如:

$$
\begin{CD}
RCOHR'SO_3Na@>{\text{Hydrolysis,$\Delta, Dil.HCl$}}>>(RCOR')+NaCl+SO_2+H_2O
\end{CD}
$$

显示:

RCOHR′SO3Na→Hydrolysis,Δ,Dil.HCl(RCOR′)+NaCl+SO2+H2O

10. 颜色

颜色的命名是和浏览器相关的,如果浏览器没有定义相关的颜色名称,则相关文本将被渲染为黑色。以下颜色是HTML4与CSS2标准中定义的一些颜色,其应该被大多数浏览器定义了。

\color{black}{text}text\color{gray}{text}text\color{silver}{text}text\color{white}{text}text\color{maroon}{text}text\color{red}{text}text\color{yellow}{text}text\color{lime}{text}text\color{olive}{text}text\color{green}{text}text\color{teal}{text}text\color{aqua}{text}text\color{blue}{text}text\color{navy}{text}text\color{purple}{text}text\color{fuchsia}{text}text

HTML5与CSS3定义了更多的颜色名称。

此外,颜色也可以使用#rgb的形式来表示,r、g、b分别表示代表颜色值的16进制数,如:

#000text#005text#00Atext#00Ftext#500text#505text#50Atext#50Ftext#A00text#A05text#A0Atext#A0Ftext#F00text#F05text#F0Atext#F0Ftext#080text#085text#08Atext#08Ftext#580text#585text#58Atext#58Ftext#A80text#A85text#A8Atext#A8Ftext#F80text#F85text#F8Atext#F8Ftext#0F0text#0F5text#0FAtext#0FFtext#5F0text#5F5text#5FAtext#5FFtext#AF0text#AF5text#AFAtext#AFFtext#FF0text#FF5text#FFAtext#FFFtext

11. 等式高亮

使用\bbox可以高亮一个等式,例如:

$$
\bbox[yellow]{e^x=\lim_{n\to\infty}\left(1+\frac{x}{n}\right)^n\qquad(1)}
$$

显示:

ex=limn→∞(1+xn)n(1)

可以在背景色后面加上数值,以增加公式与背景色四周的间距,例如:

\bbox[yellow,10px]{e^x=\lim_{n\to\infty}\left(1+\frac{x}{n}\right)^n\qquad(1)}

显示:

ex=limn→∞(1+xn)n(1)

也可以设置边框,例如:

$$
\bbox[5px,border:2px solid red]{e^x=\lim_{n\to\infty}\left(1+\frac{x}{n}\right)^n\qquad(1)}
$$

显示:

ex=limn→∞(1+xn)n(1)

当然,你还可以同时设置背景色和边框,例如:

$$
\bbox[10px,yellow,border:2px dashed red]{e^x=\lim_{n\to\infty}\left(1+\frac{x}{n}\right)^n\qquad(1)}
$$

显示:

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值