𝓝𝓮𝓶𝓸&博客

【MathJax】语法总结

基础语法

1.显示公式

在行中显示的 (inline mode),就用 $...$
单独一行显示 (display mode),则用 $$...$$

2.希腊字母

要显示希腊字母,可以用 \alpha, \beta, …, \omega,输出α,β,,ω
想要显示大写的话,就用 \Gamma, \Delta, …, \Omega, 输出Γ,Δ,,Ω

3. 上下标

上下标可用 ^_, 比如\log_2 x 显示 log2x
上下标符号只能用于接下来一个 Group,即 单个字符,或一组花括号内的东西,比如 1010 要写成10^{10}

4. 括号

小括号、方括号直接输,花括号要用 \{\}
括号不会伸缩,如写 (\frac{\sqrt x}{y^3}) 会得到 (xy3)
如果需要伸缩,就需要用 \left(…\right) 来进行自动伸缩,如写 \left(\frac{\sqrt x}{y^3}\right) 得到 (xy3)
\left\right 的用法在这些中有用:三种括号,绝对值符号,范数符号 \vert x \vert |x|\Vert x \Vert x,尖角符号 \langle\rangle x,向上下取整符号 \lceil \rceil\lfloor \rfloor。如果只需显示一半的符号,可以用 . 来表示另一边为空,如\left. \frac 1 2 \right \rbrace 就是 12}
当然也可以手动调整括号的大小,如\Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) 会得到 (((((x)))))

5. 求和与积分

\sum_1^n 显示 1n, \int_1^n 显示 1n,当然也有Group的概念,不止一位时需要花括号。
类似的还有连乘号 \prod 、并集\bigcup 、交集\bigcap 、多重积分 \iint 等。

6. 分数

有两种方法来显示分数,一种是 \frac a b 来显示ab,另一种是用 \over, 如{a+1 \over b+1} 显示 a+1b+1

7. 字体

\mathbb\Bbb 选择blackboard bold 字体,如\mathbb {ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ \\ abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz}
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathbf 选择 boldface 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathtt 选择 typewriter 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathrm 选择 roman 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathsf 选择 sans-serif字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathcal 选择 calligraphic 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathscr 选择 script 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

\mathfrak 选择 Fraktur 字体:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

8. 根号

\sqrt {x^3}可显示根号x3\sqrt[3] {\frac x y} 显示三次根号 xy3

9. 三角函数、极限和对数

像 “lim”, “sin”, “max”, “ln”等符号,已包括在roman 字体中,用 \lim等即可,极限可用\lim_{x\to 0}来表示:limx0

10. 特殊符号和记号

有很多,以下是一小部分:

  • \lt \gt \le \ge \neq 表示<>≤≥≠,还可以在不等号上加\not,如 \not\lt 表示
  • \times \div \pm \mp 表示 ×÷±,点乘用\cdot表示,如 x \cdot y 表示 xy
  • 集合类符号,\cup \cap \setminus \subset \subseteq \subsetneq \supset \in \notin \emptyset \varnothing 表示 ⊂⊆⊊⊃∈∉
  • 组合数,{n+1 \choose 2k}\binom{n+1}{2k} 表示(n+12k)
  • 箭头,\to \rightarrow \leftarrow \Rightarrow \Leftarrow \mapsto 表示 →→←⇒⇐↦
  • \land \lor \lnot \forall \exists \top \bot \vdash \vDash 表示 ¬⊢⊨
  • \star \ast \oplus \circ \bullet 表示
  • \approx \sim \simeq \cong \equiv \prec \lhd 表示 ≈∼≃≅≡≺⊲
  • \infty \aleph_0 表示 0\nabla \partial 表示 \Im \Re 表示
  • 取模,用\pmod,如a \equiv b\pmod n 表示 ab(modn)
  • 省略号,底一点的中的省略用\ldots,如a_1, a_2, \ldots ,a_n 表示 a1,a2,,an,中间位置的的省略用\cdots,如a_1 + a_2 + \ldots + a_n 表示 a1+a2++an

11. 空格

MathJax中加入空格不会改变表达式,如果想在表达式中加空格,根据空格的不同,可用\, \; \quad \qquad,如 aa,aa,aa,aa
如果想加入一段文字,可用\text{…},如\{x \in s \mid x \text{ is extra large}\}表示 {xsx is extra large},在\text{…}里面还可以嵌套$…$

12. Accents (重音符) and diacritical (变音符) marks

重音符可用\hat,如\hat x表示 x^
变音符可用\widehat,如\widehat {xy}表示 xy^
\bar x 表示 x¯\overline {xyz} 表示 xyz¯
\vec x表示x\overrightarrow {xy} 表示 xy\overleftrightarrow {xy} 表示 xy
如果用点号,可用\dot\ddot,如可用\frac d{dx}x\dot x = \dot x^2 + x\ddot x 表示 ddxxx˙=x˙2+xx¨

13. 转义符

一般情况下可用\来作转义,但如果想要表示\本身,需要用\backslash,因为\\表示换行。


矩阵

1. 矩阵表示

可以用 $$\begin{matrix}…\end{matrix}$$ 来表示矩阵。将矩阵元素放在 \begin\end 之间即可。 用 \\ 来分割行,用 & 来分割同一行的矩阵元素。如:

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

表示:

1xx21yy21zz2

MathJax 会自动调整行列的尺寸。

2. 矩阵两端的括号

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

给矩阵两端加上括号,可以用\left…\right 或者把 {matrix} 替换为 {pmatrix}, 变成

(1234)

替换为 {bmatrix},变成

[1234]

替换为{Bmatrix}变成

{1234}

替换为 {vmatrix} 变成

|1234|

替换为 {Vmatrix}变成

1234

3. 在中间省略一些项

可以用 \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} 

显示:

(1a1a12a1n1a2a22a2n1amam2amn)

4. 增广矩阵 augmented matrix

对于增广矩阵,要用到 {array} 语句。如:

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

可以得到:

[123456]

{cc|c}的作用是,在第二列和第三列之间画一条垂直线,c表示列中心对齐。

5. 在行内画小矩阵

如果只是需要在行内画个小矩阵,可以用 \bigl(\begin{smallmatrix} ... \end{smallmatrix}\bigr)来画。
$\bigl( \begin{smallmatrix} a & b \\ c & d \end{smallmatrix} \bigr)$ 可以画出 (abcd)

对齐等式

如果有一系列的等式需要写,并且等号需要对齐,那么可以用 \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=7321122(2)=7321227321732(3)=7321227321732(4)=731211732(5)7312(112732)

在这里,$$符号可以省略。


分段函数 piecewise functions

怎么写分段函数呢?用关键词 {case}
主要格式是 \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

如果想把括号放右边,就这样写:

\left.
\begin{array}{l}
\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] 代替 \\,接着举例子:

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

注:ex是指字母x的高度,\\[2ex]就表示两倍的字母x的高度。

Array

用 MathJax 来表示 array 或 table 比用 “文本+空格”的方式方便得多。

\begin{array} 之后,要再用一个 {}格式写出每一列应该如何对齐, 在花括号里面,用 c 表示列中心对齐,用 r 表示右对齐,l 表示左对齐,| 表示垂直线。

和矩阵一样,用 & 来分割单元,用 \\ 来换行。

如果要作水平线,在当前行的前面加上 \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.24112521189832020001+10i

Array可嵌套,形成一个 “array of tables”,例子如下:

min012300000101112012230123max012300123111232222333333Δ012300123110122210133210

源代码是这样的:

% outer vertical array of arrays
\begin{array} {c}
% inner horizontal array of arrays
\begin{array} {cc}
% inner array of minimum values
\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}
&
% inner array of maximum values
\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}
\\
% inner array of delta values
\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}…\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=d_3
\end{array}
\right. 
$$

就可以显示:

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


另外,也可以使用 \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}
$$

显示:

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


如果想把等号对齐,就用 \begin{aligned}...\end{aligned}\left\{…\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. 
$$

显示:

{a1x+b1y+c1z=d1+e1a2x+b2y=d2a3x+b3y+c3z=d3


如果想要等号对齐,并左右两边左对齐,就可以用 array 中的 l 参数:

$$
\left\{
\begin{array}{ll}
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{array} 
\right.
$$

显示:

{a1x+b1y+c1z=d1+e1a2x+b2y=d2a3x+b3y+c3z=d3

连续分式

如果要书写连续分式,请使用 \cfrac,如:

x = a_0 + \cfrac{1^2}{a_1
          + \cfrac{2^2}{a_2
          + \cfrac{3^2}{a_3 + \cfrac{4^4}{a_4 + \cdots}}}}

显示为

x=a0+12a1+22a2+32a3+44a4+

如果用 \frac,会怎么样呢?

x = a_0 + \frac{1^2}{a_1
          + \frac{2^2}{a_2
          + \frac{3^2}{a_3 + \frac{4^4}{a_4 + \cdots}}}}

显示为:

x=a0+12a1+22a2+32a3+44a4+

看起来就很奇怪。
如果非要用\frac,那就写成这样吧:

x = a_0 + \frac{1^2}{a_1+}
          \frac{2^2}{a_2+}
          \frac{3^2}{a_3 +} \frac{4^4}{a_4 +} \cdots

显示为:

x=a0+12a1+22a2+32a3+44a4+

打 Tag 和引用公式

如果在某个公式之后,又想要引用原公式并说明原公式的出处,该怎么办呢?
可以用 tagging/labelling/referencing system来做。
可以用 \tag{yourtag} 来给原公式打 Tag。如果在后面需要引用它,就在 \tag 后面加上 \label{somelabel}yourtagsomelabel 不一定要一样,但最好一样。
下面是一个例子。
比如我先对原公式打 Tag:
$$ a := x^2-y^3 \tag{*}\label{*} $$
显示为:

(*)a:=x2y3

需要引用该公式时,就可以用 \eqref{somelabel}
$$ a+y^3 \stackrel{\eqref{*}}= x^2 $$
显示为:

a+y3=(*)x2

也可以用 \ref{somelabel},这样的话就没有括号,$$ a+y^3 \stackrel{\ref{*}}= x^2 $$,显示为:

a+y3=*x2

Commutative diagrams

AMScd 图一定要以”require”开头。
例子:

\require{AMScd}
\begin{CD}
    A @>a>> B\\
    @V b V V= @VV c V\\
    C @>>d> D
\end{CD}

显示为:

AaBb=cCdD

符号说明如下:
@>>> 向右箭头
@<<< 向左箭头
@VVV 向下箭头
@AAA 向上箭头
@= 水平的 double line
@| 垂直的 double line
@. 没有箭头

另一个例子:

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

显示为:

ABvery long labelCD=EF

这招可以用来写化学方程式:

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

显示为:

RCOHRSO3NaHydrolysis,Δ,Dil.HCl(RCOR)+NaCl+SO2+H2O

让括号变大

\left\right可以让三种括号(圆括号、方括号、花括号)的尺寸适应公式的大小。
比如:

$$
f\left(
   \left[ 
     \frac{
       1+\left\{x,y\right\}
     }{
       \left(
          \frac{x}{y}+\frac{y}{x}
       \right)
       \left(u+1\right)
     }+a
   \right]^{3/2}
\right)
$$

显示为:

f([1+{x,y}(xy+yx)(u+1)+a]3/2)

注意,花括号,要用 \{ \}.
如果左边括号用了 \left,并需要在另一行用 \right 的右括号,那么就要先使用 \right.\left.,来当成“隐形的”括号。
例子如下:

$$
\begin{aligned}
a=&\left(1+2+3+  \cdots \right. \\
& \cdots+ \left. \infty-2+\infty-1+\infty\right)
\end{aligned}
$$

显示为:

a=(1+2+3++2+1+)

如果是对称的符号(如绝对值符号,没有左右之分)要伸缩,那就用 \middle,例子如下:

$$
\left\langle  
  q
\middle\|
  \frac{\frac{x}{y}}{\frac{u}{v}}
\middle| 
   p 
\right\rangle
$$

显示为:

qxyuv|p

但是,用 \left|\left| 也是可以的。

任意运算符

有时候想打某个运算符,但它又不在 built-in command 中,这时候该怎么办?

可以用 \operatorname{…}将它打出来。
比如, \operatorname{arsinh}(x)可以打出 arsinh(x)
如果用 \arsinh(x) 的话,\arsinh(x)是不合规则的
如果直接写 arsinh(x),会显示 arsinh(x) ,它的字体又不符合函数的要求。

如果需要在运算符的上面或下面添加一些限制,可以用 \operatorname*{…},如 \operatorname*{Res}_{z=1}\left(\frac1{z^2-z}\right)=1 会显示:
Resz=1(1z2z)=1

极限符号

怎样在一行内写出一个像 limx1x21x1 一样的极限符号?
如果用MathJax基础(1)中的方法,在一行内,$\lim_{x \to 1}$,会渲染成limx1,只有独立成一行时,这种写法才会渲染正常。

下面说详细步骤:

  1. $\lim 开头,它会被渲染成 lim,注意要加反斜杠,防止lim倾斜。
  2. 在后面再写 \limits_{x \to 1},就会渲染成 \limits_{x \to 1}.
  3. 最后,写上要求极限的函数即可。

所以最后的源代码为 $\lim \limits_{x \to 1} \frac{x^2-1}{x-1}$,写出来就是limx1x21x1.

参考文献

posted @   Nemo&  阅读(1434)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示