3 排版數學公式
3.1 宏包
- amsmath宏包:多行公式的排版;
- amsfonts宏包以及基於它的amssymb宏包提供了豐富的數學符號;
- amsthm宏包:擴展了Latex定理證明格式。
3.2 公式排版基礎
3.1.1 行內和行間公式
- 數學公式有兩種排版公式:
- 與文字混排,稱為行內公式;
- 由一對$符號包裹
- 單獨列為一行排版,稱為行間公式。
- 由equation環境包裹
- 該環境為公式自動生成一個編號,這個編號可以用\label和\ref生成交叉引用。
- amsmath的\eqref命令可以為引用自動加上圓括號;
- \tag命令手動修改公式的編號;
- \notag命令取消公式編碼。
- 將公式用命令 \[ 和 \] 包裹行間公式,將不帶編號;
- 行間公式的對齊、編號位置等性質由文檔類選項控制:
- 文檔類的fleqn選項令行間公式左對齊;
- 文檔類的Leqno選項令編號放在公式左邊。
1 \documentclass{article} 2 \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 3 \begin{document} 4 The Pythagorean theorem is $a^2 + b^2 = c^2$.%兩個$符號直接引用 5 6 The Pythagorean theorem is: 7 \begin{equation} %equation環境自動帶編號 8 a^2 + b^2 = c^2 \label{pythagorean} 9 \end{equation} 10 11 Equation \eqref{pythagorean} is called `Gougu theorem' in Chinese. 12 13 It's wrong to say 14 \begin{equation} 15 1 + 1 = 3 \tag{tagname} 16 \end{equation} 17 or 18 \begin{equation} 19 1 + 1 = 4 \notag %equation環境自動帶編號,\notag命令去掉帶編號的命令 20 \end{equation} 21 22 \begin{equation*}%帶星號的equation環境 23 a^2 + b^2 = c^2 24 \end{equation*} 25 26 \begin{equation}%未帶星號的equation環境 27 a^2 + b^2 = c^2 28 \end{equation} 29 30 For short: 31 \[ a^2 + b^2 = c^2 \] 32 33 Or if you like the long one: 34 \begin{displaymath} 35 a^2 + b^2 = c^2 36 \end{displaymath} 37 38 In text: 39 $\displaystyle\lim_{n \to \infty}\sum_{k=1}^n \dfrac{1}{k^2} = \dfrac{\pi^2}{6}$. 40 In display: 41 \[ 42 \lim_{n \to \infty}\sum_{k=1}^n \dfrac{1}{k^2} = \dfrac{\pi^2}{6} 43 \] 44 \end{document}
3.2.2 數學模式
- 使用$開啟行內公式輸入,或時使用\[命令、equation環境時,latex就進入了數學模式;
- 數學模式相比於文本模式由以下特點:
- 輸入的空格會被忽略。需要認為引入間距時,使用\quad和\qquad等命令;
- 不允許有空行(分段)。
- 所有的字母被當作數學公式中的變量處理,字母間距與文本模式不一致,也無法生成單詞之間的空格。如果想在數學公式中輸入正體的文本,
- 簡單情況可以使用\mathrm命令;
- 用amsmath提供的\text命令。
1 \documentclass{article} 2 \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 3 \begin{document} 4 $x^{2} \geq 0 \qquad\text{for \textbf{all} }x\in\mathbb{R}$ 5 \end{document}
3.3 數學符號
latex默認提供了常用的數學符號,amssymb宏包提供了一些次常用的符號。
3.3.1 一般符號
- 希臘字母符號的名稱就是其英文名稱,如α(\alpha)、β(\beta) 等等;
- 大寫的希臘字母為首字母大寫的命令,如Γ(\Gamma)、Δ(\Delta) 等等;
- 無窮大符號為∞(\infty);
- 省略號有...(\dots) 和…(\cdots) 兩種形式;
- \ldots 和\dots 是完全等效的,它們既能用在公式中,也用來在文本里作為省略號;
- 在矩陣中可能會用到豎排的...(\vdots) 和斜排的...(\ddots)。
3.3.2 指數、上下標和導數
- 在latex中用^和_標明上下標;
- 注意:上下標的內容(子公式)一般需要用花括號包裹,否則上下標只對后面的一個符號起作用。
- 導數符號'是一類特殊的上標,可以適當連用表示多階導數,也可以在其后連用上標。
\documentclass{article} \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 \begin{document} $p^3_{ij} \qquad m_\mathrm{Knuth}\qquad \sum_{k=1}^3 k $ $a^x+y \neq a^{x+y}\qquad e^{x^2} \neq {e^x}^2$ $f(x) = x^2 \quad f'(x) = 2x \quad f''^{2}(x) = 4 \quad f^{(2)}(x) = 4$ \end{document}
3.3.3 分式和根式
- 分式使用\frac{分子}{分母}來書寫。
- amsmath宏包提供了方便的命令\dfrac和\tfrac,令用戶能夠在行內使用正常大小的分式,或是反過來。
- 分式的大小在行間公式中是正常大小,而在行內被極度壓縮。一般的根式使用\sqrt{…};表示n次方根時寫成\sqrt[n]{…}。
- 特殊的分式形式,如二項式結構,由amsmath宏包的\binom命令生成。
\documentclass{article} \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 \begin{document} In display style: \[ 3/8 \qquad \frac{3}{8} \qquad \tfrac{3}{8} \] In text style: $1\frac{1}{2}$~hours \qquad $1\dfrac{1}{2}$~hours $\sqrt{x} \Leftrightarrow x^{1/2} \quad \sqrt[3]{2} \quad \sqrt{x^{2} + \sqrt{y}}$ Pascal's rule is \[ \binom{n}{k} =\binom{n-1}{k} + \binom{n-1}{k-1} \] \end{document}
3.3.4 關系符
latex還提供了自定義二元關系符分命令\stackrel,用於將一個符號疊加在原有的二元關系符之上 \[ f_n(x) \stackrel{*}{\approx} 1 \] ;效果如下圖:
3.3.5 算符
- 常用的有乘號× (\times)、除號÷ (\div)、點乘· (\cdot)、加減號± (\pm) / ∓(\mp) 等等;
- ∇ (\nabla) 和@ (\partial) 也是常用的算符,雖然它們不屬於二元算符。
3.3.6 巨算符
- 積分號∫(\int)、求和號∑(\sum) 等符號稱為巨算符;巨算符在行內公式和行間公式的大小和形狀有區別。
- 巨算符的上下標位置可由\limits 和\nolimits 調整:
- 前者令巨算符類似lim 或求和算符∑,上下標位於上下方;
- 后者令巨算符類似積分號,上下標位於右上方和右下方。
- amsmath 宏包還提供了\substack,能夠在下限位置書寫多行表達式;subarray 環境更進一步,令多行表達式可選擇居中(c) 或左對齊(l)。
1 \documentclass{article} 2 \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 3 \begin{document} 4 In text: 5 $\sum_{i=1}^n \quad \int_0^{\frac{\pi}{2}} \quad \oint_0^{\frac{\pi}{2}} \quad \prod_\epsilon $ \\ 6 In display: 7 \[\sum_{i=1}^n \quad \int_0^{\frac{\pi}{2}} \quad \oint_0^{\frac{\pi}{2}} \quad \prod_\epsilon \] 8 9 In text: 10 $\sum\limits_{i=1}^n \quad \int\limits_0^{\frac{\pi}{2}} \quad \prod\limits_\epsilon $ \\ 11 In display: 12 \[\sum\nolimits_{i=1}^n \quad \int\limits_0^{\frac{\pi}{2}} \quad \prod\nolimits_\epsilon \] 13 14 \[ \sum_{\substack{0\le i\le n \\ 15 j\in \mathbb{R}}} P(i,j) = Q(n) \] 16 \[ 17 \sum_{ 18 \begin{subarray}{l} 19 0\le i\le n \\ 20 j\in \mathbb{R} 21 \end{subarray} 22 } 23 P(i,j) = Q(n) 24 \] 25 \end{document}
3.3.7 數學重音和上下括號
- \overbrace 和 \underbrance 命令用來生成上/下括號,各自可帶一個上/下標公式。
- $\underbrace{\overbrace{(a+b+c)}^6 \cdot \overbrace{(d+e+f)}^7} _\text{meaning of life} = 42$
- $\underbrace{\overbrace{(a+b+c)}^6 \cdot \overbrace{(d+e+f)}^7} _\text{meaning of life} = 42$
3.3.8 箭頭
- amsmath 的\xleftarrow 和\xrightarrow 命令提供了長度可以伸展的箭頭,並且可以為箭頭增加上下標:
- 1 \[ a\xleftarrow{x+y+z} b \] 2 \[ c\xrightarrow[x<y]{a*b*c}d \]
3.3.9 括號和定界符
- 定界符大小的調整(\big,\bigg,\bigl,\biggl,\bigr,\biggr等)
1 $\Bigl((x+1)(x-1)\Bigr)^{2}$ 2 3 $\bigl( \Bigl( \biggl( \Biggl( \quad \bigr\} \Bigr\} \biggr\} \Biggr\} \quad \big\| \Big\| \bigg\| \Bigg\| \quad \big\Downarrow \Big\Downarrow \bigg\Downarrow \Bigg\Downarrow$
3.4 多行公式
3.4.1 長公式折行
- amsmath宏包的multline環境提供了書寫折行長公式的方便環境;
- 它允許\\折行,將公式編號放在最后一行;
- 多行公式的首行左對齊,末行右對齊,其余行居中;
- 公式的最后一行不寫\\,如果寫了,反倒會產生一個多余的空行。
3.4.2 多行公式
- align環境,將公式用&隔為兩部分並對齊,分隔符通常放在等號左邊;
- align環境會給每行公式都編號,可以用\notag去掉某行的編號;
- 為了對齊等號,我們可以將分隔符放在右側,並且此時需要在等號后添加一對括號{}以產生正常的間距;
- align還能夠對齊多組公式,除等號前的&之外,公式之間也用&分隔;
- 如果不需要按等號對齊,只需羅列數個公式,gather將是一個很好用的環境。
1 \documentclass{article} 2 \usepackage{amsmath,amsfonts,amssymb,amsthm}%數學公式宏包 3 \begin{document} 4 5 \begin{align} 6 a & = b + c \\ 7 & = d + e 8 \end{align} 9 10 \begin{align} 11 a ={} & b + c \\ 12 ={} & d + e + f + g + h + i + j + k + l \notag \\ 13 & + m + n + o \\ 14 ={} & p + q + r + s 15 \end{align} 16 17 \begin{align} 18 a &=1 & b &=2 & c &=3 \\ 19 d &=-1 & e &=-2 & f &=-5 20 \end{align} 21 22 \begin{gather} 23 a = b + c \\ 24 d = e + f + g \\ 25 h + i = j + k \notag \\ 26 l + m = n 27 \end{gather} 28 29 \end{document}
3.4.3 公用編號的多行公式
- 將多個公式組在一起公用一個編號,編號位於公式的居中位置:
- amsmath宏包提供了諸多aligned、gathered等環境,與equation環境套用。
- 以-ed結尾的環境用法與前一節不以-ed結尾的環境用法一一對應。
- 和aligned環境用法類似
- 用於和equation環境套用;
- 區別:split只能將每行的一個公式分兩欄,aligned允許每行多個公式多欄。
以aligned舉例:
1 \begin{equation} 2 \begin{aligned} 3 a &= b + c \\ 4 d &= e + f + g \\ 5 h + i &= j + k \\ 6 l + m &= n 7 \end{aligned} 8 \end{equation}
3.5 數組和矩陣
- 排版二維數組,提供array環境:
- 用法與tabular環境極為類似;
- 需要定義列格式,並用\\換行;
- 數組可作為一個公式塊,在外套用\left、\rigt等定界符。
- 可以利用空的定界符排版除大括號方程組的效果(同cases環境效果相同)。
- 不帶定界符的matrix,以及帶各種定界符的矩陣pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix,使用這些環境,無需給定列格式。