LaTeX/數學
°
當唐納德·克努斯開始開發最初的 TeX 系統時,最偉大的動力之一是創造一種工具,可以簡單地構建數學公式,同時在列印時看起來很專業。他成功的事實很可能是 TeX(後來是 LaTeX)在科學界如此受歡迎的原因。排版數學是 LaTeX 最大的優勢之一。由於存在大量的數學符號,這也成了一個龐大的話題。
如果你的文件只需要一些簡單的數學公式,那麼基本的 LaTeX 就包含了你會用到的所有工具。如果你正在編寫一篇包含大量複雜公式的科學文件,那麼 amsmath 包[1] 介紹了一些新的命令,這些命令比基本的 LaTeX 提供的命令更強大、更靈活。 mathtools 包修復了 amsmath 的一些問題,併為 amsmath 添加了一些有用的設定、符號和環境。[2] 為了使用這兩個包,在文件的序言中包含
\usepackage{amsmath}
或者
\usepackage{mathtools}
在文件的序言中。 mathtools 包載入了 amsmath 包,因此如果使用 mathtools,則無需在序言中使用 \usepackage{amsmath}。
LaTeX 需要知道文字何時是數學文字。這是因為 LaTeX 以不同於普通文字的方式排版數學符號。因此,為這個目的聲明瞭特殊的環境。根據它們如何呈現,可以將它們區分為兩類
- 文字 - 文字公式以行內方式顯示,即在宣告公式的文字主體中顯示,例如,我可以說 在這句話中。
- 顯示 - 顯示的公式在單獨的一行上。
由於數學需要特殊的環境,自然地,可以使用標準方式來使用適當的環境名稱。但是,與大多數其他環境不同,有一些方便的縮寫形式用於宣告你的公式。下表總結了它們
| 型別 | 行內(文字內)公式 | 顯示的方程式 | 顯示的並自動編號的方程式 |
|---|---|---|---|
| 環境 | math
|
displaymath
|
equation
|
| LaTeX 縮寫 | \(...\)
|
\[...\]
|
|
| TeX 縮寫 | $...$
|
$$...$$
|
|
| 註釋 | equation*(帶星號的版本)禁止編號,但需要 amsmath |
建議:應避免使用 $$...$$,因為它可能會導致問題,尤其是在使用 AMS-LaTeX 宏時。此外,如果出現問題,錯誤訊息可能沒有幫助。
equation* 和 displaymath 環境在功能上是等效的。
如果你正在正常輸入文字,則稱你處於文字模式,但當你輸入這些數學環境之一時,則稱你處於數學模式,它與文字模式相比有一些不同之處
- 大多數空格和換行符都沒有意義,因為所有空格都是從數學表示式中邏輯地推匯出來的,或者必須使用特殊的命令來指定,例如
\quad - 不允許空行。每個公式只允許一個段落。
- 每個字母都被認為是變數的名稱,並將按此方式排版。如果你想在公式中排版普通文字(普通直立字型,正常間距),則必須使用專用命令 來輸入文字。
為了讓一些運算子,例如 \lim 或 \sum,在一些數學環境(閱讀 $......$)中正確顯示,在環境內部寫入 \displaystyle 類可能很方便。這樣做可能會導致行變高,但會使一些數學運算子的指數和索引正確顯示。例如,$\sum$ 會列印一個較小的 Σ,而 $\displaystyle \sum$ 會列印一個較大的 Σ ,就像在方程式中一樣。[注 1] 可以透過在前言中(即在 \begin{document} 之前)宣告 \everymath{\displaystyle},強制所有數學環境都執行此行為。
數學有很多符號!以下是可以直接從鍵盤訪問的一組符號
+ - = ! / ( ) [ ] < > | ' : *
除了上面列出的符號之外,為了顯示所需的符號,必須發出不同的命令。有很多例子,例如希臘字母、集合和關係符號、箭頭、二元運算子等。
例如
\forall x \in X, \quad \exists y \leq \epsilon
|
|
幸運的是,有一個工具可以大大簡化搜尋特定符號的命令。在下面的 外部連結 部分中查詢“Detexify”。另一個選擇是檢視下面的 外部連結 部分中的“LaTeX 符號列表”。
希臘字母在數學中很常見,而且在數學模式中很容易輸入。你只需要在反斜槓後輸入字母的名稱:如果第一個字母是小寫,你將得到一個小寫希臘字母;如果第一個字母是大寫(並且只有第一個字母是大寫),那麼你將得到一個大寫字母。注意,一些大寫希臘字母看起來像拉丁字母,所以 LaTeX 沒有提供它們(例如,大寫Alpha 和Beta 只是“A”和“B”,分別)。小寫 epsilon、theta、kappa、phi、pi、rho 和 sigma 提供了兩種不同的版本。備用或變體版本是透過在字母名稱之前新增“var”來建立的。
\alpha, \Alpha, \beta, \Beta, \gamma, \Gamma, \pi, \Pi, \phi, \varphi, \mu, \Phi
|
|
向下滾動到 #數學符號列表 以獲取完整 的希臘符號列表。
運算子是一個以單詞形式表示的函式:例如三角函式 (sin、cos、tan)、對數和指數函式 (log、exp)、極限 (lim),以及跡和行列式 (tr、det)。LaTeX 定義了很多這樣的函式作為命令
\cos (2\theta) = \cos^2 \theta - \sin^2 \theta
|
|
對於某些運算子,例如 極限,下標放在運算子下方
\lim\limits_{x \to \infty} \exp(-x) = 0
|
|
對於 模運算子,有兩個命令:\bmod 和 \pmod
a \bmod b
|
|
x \equiv a \pmod{b}
|
|
要使用未預定義的運算子,例如 argmax,請參閱 自定義運算子
冪和指數等效於普通文字模式中的上標和下標。插入符號 (^; 也稱為抑音符) 字元用於提升某物,而下劃線 (_) 用於降低某物。如果包含多個字元的表示式被提升或降低,則應使用花括號 ({ 和 }) 進行分組。
k_{n+1} = n^2 + k_n^2 - k_{n-1}
|
|
對於多位數的冪,用 {} 將冪括起來。
x^{1.01}
|
|
下劃線 (_) 可以與豎線 () 一起使用,以在數學中表示使用下標表示法的求值。
f(n) = n^5 + 4n^2 + 2 |_{n=17}
|
|
分數和二項式
[edit | edit source]分數使用 \frac{numerator}{denominator} 命令建立(對於那些需要重新整理記憶的人來說,那就是分別是 *頂部* 和 *底部*!)。類似地,二項式係數(也稱為選擇函式)可以使用 \binom 命令編寫:[注 1]
\frac{n!}{k!(n-k)!} = \binom{n}{k}
|
|
您可以在分數中巢狀分數
\frac{\frac{1}{x}+\frac{1}{y}}{y-z}
|
|
請注意,當出現在另一個分數內部或內聯文字中時 ,分數明顯小於顯示的數學。 \tfrac 和 \dfrac 命令[注 1] 強制使用各自的樣式,\textstyle 和 \displaystyle。類似地,\tbinom 和 \dbinom 命令排版二項式係數。
對於相對簡單的分數,特別是在文字中,使用 冪和索引 可能會在美學上更令人愉悅。
^3/_7
|
|
如果這看起來有點“鬆散”(即間距過大),可以透過插入一些負間距來定義一個更緊湊的版本。
%running fraction with slash - requires math mode.
\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\rfrac{3}{7}
|
|
如果您在整個文件中使用它們,建議使用 xfrac 包。此包提供 \sfrac 命令來建立傾斜分數。用法
Take $\sfrac{1}{2}$ cup of sugar, \dots
3\times\sfrac{1}{2}=1\sfrac{1}{2}
Take ${}^1/_2$ cup of sugar, \dots
3\times{}^1/_2=1{}^1/_2
|
如果分數用作指數,則必須在 \sfrac 命令周圍使用花括號。
$x^\frac{1}{2}$ % no error
$x^\sfrac{1}{2}$ % error
$x^{\sfrac{1}{2}}$ % no error
$x^\frac{1}{2}$ % no error
|
|
在某些情況下,僅使用該包會導致有關某些字型形狀不可用的錯誤。在這種情況下,還需要新增 lmodern 和 fix-cm 包。
或者,nicefrac 包提供了 \nicefrac 命令,其用法類似於 \sfrac。
連分數
[edit | edit source]連分數應該使用 \cfrac 命令編寫:[注 1]
\begin{equation}
x = a_0 + \cfrac{1}{a_1
+ \cfrac{1}{a_2
+ \cfrac{1}{a_3 + \cfrac{1}{a_4} } } }
\end{equation}
|
|
為了使乘法在視覺上類似於分數,可以使用巢狀陣列。例如,將上下排列的數字相乘可以按如下方式排版
\begin{equation}
\frac{
\begin{array}[b]{r}
\left( x_1 x_2 \right)\\
\times \left( x'_1 x'_2 \right)
\end{array}
}{
\left( y_1y_2y_3y_4 \right)
}
\end{equation}
|
|
\sqrt 命令建立一個圍繞表示式的平方根。它接受一個可選引數,該引數在方括號([ 和 ])中指定以更改幅度
\sqrt{\frac{a}{b}}
|
|
\sqrt[n]{1+x+x^2+x^3+\dots+x^n}
|
|
有些人更喜歡在根號的“封閉”處寫根號,覆蓋其內容。這種方法可能使根號範圍內的內容更清晰。這種習慣通常不在計算機寫作中使用,但是如果您仍然想改變平方根的輸出,LaTeX 為您提供了這種可能性。只需在文件的序言中新增以下程式碼
此 TeX 程式碼首先將 \sqrt 命令重新命名為 \oldsqrt,然後根據舊的命令重新定義 \sqrt,新增更多內容。左側圖片中的新平方根與右側的舊平方根進行了比較。不幸的是,如果您想使用多個根號,此程式碼將不起作用:如果您嘗試在使用上述程式碼後編寫 作為 \sqrt[b]{a},您只會得到錯誤的輸出。換句話說,只有在整個文件中不使用多個根號的情況下,才能以這種方式重新定義平方根。
允許使用多個根號的另一種 TeX 程式碼是
\usepackage{letltxmacro}
\makeatletter
\let\oldr@@t\r@@t
\def\r@@t#1#2{%
\setbox0=\hbox{$\oldr@@t#1{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
\LetLtxMacro{\oldsqrt}{\sqrt}
\renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{#2} }
\makeatother
$\sqrt[a]{b} \quad \oldsqrt[a]{b}$
|
但是,這需要 \usepackage{letltxmacro} 包。
\sum 和 \int 命令分別插入求和符號和積分符號,使用插入符號 (^) 和下劃線 (_) 指定限制。求和的典型符號是
\sum_{i=1}^{10} t_i
|
|
或者
\displaystyle\sum_{i=1}^{10} t_i
|
|
積分的限制遵循相同的符號。同樣重要的是要用一個直立的 d 表示積分變數,在數學模式下,它是透過 \mathrm{} 命令獲得的,並且用一個小的空格將它與被積函式分開,這是透過 \, 命令實現的。
\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x
|
|
還有許多其他以類似方式運作的“大型”命令。
\sum |
\prod |
\coprod |
|||||
\bigoplus |
\bigotimes |
\bigodot |
|||||
\bigcup |
\bigcap |
\biguplus |
|||||
\bigsqcup |
\bigvee |
\bigwedge |
|||||
\int |
\oint |
\iint[note 1] |
|||||
\iiint[note 1] |
\iiiint[note 1] |
\idotsint[note 1] |
有關更多積分符號,包括預設情況下未包含在 Computer Modern 字型中的符號,請嘗試使用 esint 包。
\substack 命令[note 1] 允許使用 \\ 在多行上寫入極限。
\sum_{\substack{
0<i<m \\
0<j<n
}}
P(i,j)
|
|
如果你想要積分的上下限出現在符號的上方和下方(像求和符號一樣),請使用 \limits 命令
\int\limits_a^b
|
|
但是,如果你希望這適用於所有積分,最好在載入 amsmath 包時指定 intlimits 選項
\usepackage[intlimits]{amsmath}
|
下標和上標在其他情況下,以及與它們相關的 amsmath 包的其他引數,在 高階數學 章節中描述。
對於更大的積分,你可以使用個人宣告,或者 bigints 包[3]。
括號、大括號和分隔符
[edit | edit source]如何在多行方程中使用大括號在 高階數學 章節中描述。
當處理除最簡單的方程之外的任何內容時,使用分隔符(如括號)變得很重要。如果沒有它們,公式可能會變得模稜兩可。此外,諸如矩陣之類的特殊型別的數學結構通常依靠分隔符來包圍它們。
LaTeX 提供了各種可用於分隔符
( a ), [ b ], \{ c \}, | d |, \| e \|,
\langle f \rangle, \lfloor g \rfloor,
\lceil h \rceil, \ulcorner i \urcorner,
/ j \backslash
|
|
其中 \lbrack 和 \rbrack 可用於代替 [ 和 ]。
自動調整大小
[edit | edit source]通常,數學符號的大小會不同,在這種情況下,包圍表示式的分隔符應該相應地變化。可以使用 \left、\right 和 \middle 命令來自動執行此操作。任何前面的分隔符都可以與這些命令結合使用
\left(\frac{x^2}{y^3}\right)
|
|
P\left(A=2\middle|\frac{A^2}{B}>4\right)
|
大括號使用 \left\{ 和 \right\} 進行不同的定義,
\left\{\frac{x^2}{y^3}\right\}
|
|
如果表示式只有一側需要分隔符,那麼可以使用句點 (.) 表示另一側的不可見分隔符。
\left.\frac{x^3}{3}\right|_0^1
|
|
手動調整大小
[edit | edit source]在某些情況下,\left 和 \right 命令生成的尺寸可能不理想,或者你可能只想更細緻地控制分隔符尺寸。在這種情況下,可以使用 \big、\Big、\bigg 和 \Bigg 修飾符命令
( \big( \Big( \bigg( \Bigg(
|
|
這些命令主要在處理巢狀分隔符時有用。例如,當排版
\frac{\mathrm d}{\mathrm d x} \left( k g(x) \right)
|
|
我們注意到 \left 和 \right 命令生成的分隔符大小與巢狀在其中的分隔符大小相同。這可能難以閱讀。要解決此問題,我們寫道
\frac{\mathrm d}{\mathrm d x} \big( k g(x) \big)
|
|
當一個方程式太大,超出頁面邊緣,必須使用對齊命令將其分成兩行時,手動調整大小也很有用。雖然命令\left. 和 \right. 可用於平衡每行上的定界符,但這可能會導致定界符大小錯誤。此外,手動調整大小可用於避免過大的定界符 - 如果一個 \underbrace 或類似命令出現在定界符之間。
可以使用 matrix 環境[注 1] 建立一個基本矩陣:與其他表格結構一樣,條目按行指定,列之間用一個 ampersand (&) 分隔,新行之間用雙反斜槓 (\\) 分隔。
\[
\begin{matrix}
a & b & c \\
d & e & f \\
g & h & i
\end{matrix}
\]
|
|
要指定表格中列的對齊方式,請使用帶星號的版本[注 2]。
\begin{matrix}
-1 & 3 \\
2 & -4
\end{matrix}
=
\begin{matrix*}[r]
-1 & 3 \\
2 & -4
\end{matrix*}
|
|
預設對齊方式是 c,但它可以是 array 環境中有效的任何列型別。
但是,矩陣通常用某種定界符括起來,雖然可以使用 \left 和 \right 命令,但還有各種其他預定義的環境,它們會自動包含定界符。
| 環境名稱 | 周圍定界符 | 說明 |
|---|---|---|
| pmatrix[注 1] | 預設情況下將列居中。 | |
| pmatrix*[注 2] | 允許在可選引數中指定列的對齊方式。 | |
| bmatrix[注 1] | 預設情況下將列居中。 | |
| bmatrix*[注 2] | 允許在可選引數中指定列的對齊方式。 | |
| Bmatrix[注 1] | 預設情況下將列居中。 | |
| Bmatrix*[注 2] | 允許在可選引數中指定列的對齊方式。 | |
| vmatrix[注 1] | 預設情況下將列居中。 | |
| vmatrix*[注 2] | 允許在可選引數中指定列的對齊方式。 | |
| Vmatrix[注 1] | 預設情況下將列居中。 | |
| Vmatrix*[注 2] | 允許在可選引數中指定列的對齊方式。 |
當寫下任意大小的矩陣時,通常使用水平、垂直和對角線三個點(稱為 省略號)來填充某些列和行。可以使用 \cdots、\vdots 和 \ddots 分別指定它們。
A_{m,n} =
\begin{pmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{pmatrix}
|
|
在某些情況下,您可能希望更精細地控制每列中的對齊方式,或者在列或行之間插入線條。這可以使用 array 環境來實現,它本質上是 tabular 環境 的數學模式版本,它要求預先指定列。
\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}
|
|
您可能會發現,當與分數一起使用時,AMS 矩陣類環境不會留下足夠的空格,從而導致類似於此的輸出。
為了解決這個問題,可以透過可選引數在 \\ 命令中新增額外的前導空格。
M = \begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}
|
|
如果您需要在矩陣上新增“邊框”或“索引”,則純TeX提供宏 \bordermatrix。
M = \bordermatrix{~ & x & y \cr
A & 1 & 0 \cr
B & 0 & 1 \cr}
|
行文中的矩陣
[edit | edit source]要插入一個小矩陣,而不增加包含它的行的前導空格,請使用 smallmatrix 環境。
A matrix in text must be set smaller:
$\bigl(\begin{smallmatrix}
a&b \\ c&d
\end{smallmatrix} \bigr)$
to not increase leading in a portion of text.
|
在方程中新增文字
[edit | edit source]數學環境在文字表示方面與文字環境不同。以下是一個嘗試在數學環境中表示文字的示例。
50 apples \times 100 apples = lots of apples^2
|
|
有兩個明顯的問題:單詞或數字之間沒有空格,並且字母是斜體的,並且比正常的文字間距更大。這兩個問題僅僅是數學模式的產物,因為它將文字視為數學表示式:空格被忽略(LaTeX根據自己的規則對數學進行空格處理),並且每個字元都是一個獨立的元素(因此與普通文字相比,它們的位置不那麼緊密)。
有許多方法可以正確新增文字。典型的方法是用 \text{...} 命令[note 1](類似的命令是 \mbox{...},儘管這會導致下標出現問題,並且名稱沒有那麼具有描述性)。讓我們看看當上述方程程式碼被修改後會發生什麼。
50 \text{apples} \times 100 \text{apples}
= \text{lots of apples}^2
|
|
文字看起來更好了。但是,數字和單詞之間沒有空格。不幸的是,您需要顯式地新增它們。有很多方法可以新增數學元素之間的空格,但為了簡單起見,我們可以簡單地將空格字元插入 \text 命令中。
50 \text{ apples} \times 100 \text{ apples}
= \text{lots of apples}^2
|
|
格式化文字
[edit | edit source]使用 \text 很好,並且可以得到基本結果。但是,還有另一種選擇,它提供了更大的靈活性。您可能還記得字型格式化命令的介紹,例如 \textrm,\textit,\textbf 等。這些命令將相應地格式化引數,例如,\textbf{bold text} 會得到 bold text。這些命令在數學環境中同樣有效,可以包含文字。這裡額外的好處是,您可以更好地控制字型格式,而不是使用 \text 所實現的標準文字。
50 \textrm{ apples} \times 100
\textbf{ apples} = \textit{lots of apples}^2
|
|
格式化數學符號
[edit | edit source]現在我們可以格式化文字;那麼如何格式化數學表示式呢?有一組格式化命令非常類似於剛剛使用的字型格式化命令,只是它們專門針對數學模式下的文字(需要 amsfonts 包)。
| LaTeX 命令 | 示例 | 描述 | 常用 |
|---|---|---|---|
\mathnormal{…}(或者簡單地省略任何命令) |
預設的數學字型 | 大多數數學符號 | |
\mathrm{…}
|
這是預設或正常字型,不斜體 | 計量單位,單字函式 | |
\mathit{…}
|
斜體字型 | 多字母函式或變數名。與 \mathnormal 相比,單詞間距更自然,數字也斜體。 | |
\mathbf{…}
|
粗體字型 | 向量 | |
\mathsf{…}
|
無襯線字型 | 類別 | |
\mathtt{…}
|
等寬(固定寬度)字型 | ||
\mathfrak{…}(需要 amsfonts 或 amssymb 包[注 3]) |
哥特體 | 李代數的幾乎規範字體,環論中的理想 | |
\mathcal{…}
|
書法(僅限大寫[注 3]) | 常用於層/概形和範疇,用於表示密碼學概念,例如定義字母表(),訊息空間(),密文空間()和金鑰空間();克萊尼的;描述邏輯中的命名約定;拉普拉斯變換()和傅立葉變換() | |
\mathbb{…}(需要amsfonts或amssymb包[注 3]) |
黑板粗體(僅大寫[注 3]) | 用於表示特殊集合(例如,實數) | |
\mathscr{…}(需要mathrsfs包[注 3]) |
手寫體(僅大寫[注 3]) | 範疇和層的一種替代字型。 |
這些格式化命令可以包裝在整個方程周圍,而不僅僅是文字元素:它們只格式化字母、數字和大寫希臘字母,其他數學命令不受影響。
要使小寫希臘字母或其他符號變為粗體,請使用\boldsymbol命令[注 1];這隻有在當前字型中存在該符號的粗體版本時才有效。作為最後的手段,可以使用\pmb命令[注 1](窮人粗體):它列印多個版本稍微偏移的字元。
\boldsymbol{\beta} = (\beta_1,\beta_2,\dotsc,\beta_n)
|
|
要更改數學模式中的字型大小,請參閱更改字型大小。
重音
[edit | edit source]那麼,當你用完符號和字型時該怎麼辦?好吧,下一步是使用重音
a' 或 a^{\prime} |
a'' |
||
\hat{a} |
\bar{a} |
||
\grave{a} |
\acute{a} |
||
\dot{a} |
\ddot{a} |
||
\not{a} |
\mathring{a} |
å | |
\overrightarrow{AB} |
\overleftarrow{AB} |
||
a''' |
a'''' |
||
\overline{aaa} |
\check{a} |
||
\breve{a} |
\vec{a} |
||
\dddot{a}[note 1] |
\ddddot{a}[note 1] |
||
\widehat{AAA} |
\widetilde{AAA} |
||
\stackrel\frown{AAA} |
|||
\tilde{a} |
\underline{a} |
包 xcolor,在 顏色 中描述,允許我們為方程新增顏色。例如,
k = {\color{red}x} \mathbin{\color{blue}-} 2
|
|
唯一的問題是,這破壞了預設的 LaTeX 圍繞 - 運算子的格式。要解決此問題,我們將它包含在 \mathbin 環境中,因為 - 是二元運算子。此過程在 這裡 進行了描述。
LaTeX 以兩種可能的方式處理 + 和 − 符號。最常見的是作為二元運算子。當符號兩側出現兩個數學元素時,它被認為是二元運算子,因此,它在符號兩側分配一些空間。另一種方式是符號指定。這是指明數學量是正還是負。對於後者來說,這很常見,因為在數學中,這樣的元素被認為是正的,除非它們前面加了 − 。在這種情況下,您希望符號緊挨著相應的元素,以顯示它們的關聯性。如果您在 + 或 − 之前沒有任何東西,但您希望它像二元運算子一樣被處理,則可以在運算子之前使用 {} 新增一個不可見字元。這在您編寫多行公式並且新行可能以 − 或 + 開頭時很有用,例如,然後您可以新增必要的不可見字元來修復一些奇怪的對齊方式。
加減號寫成
\pm
|
|
類似地,也存在減加號
\mp
|
|
LaTeX 顯然非常擅長排版數學公式——這是 LaTeX 所擴充套件的核心 TeX 系統的主要目標之一。但是,它並不總是能可靠地按您的意願解釋公式。在存在模稜兩可的表示式時,它必須做出某些假設。結果往往是水平間距略有不正確。在這種情況下,輸出仍然令人滿意,但任何完美主義者無疑都希望微調他們的公式以確保間距正確。這些通常是非常細微的調整。
還有其他一些情況,LaTeX 做得很好,但您只是想新增一些空格,也許是為了新增一些註釋。例如,在以下等式中,最好確保數學公式和文字之間有足夠的空格。
\[ f(n) =
\begin{cases}
n/2 & \quad \text{if } n \text{ is even}\\
-(n+1)/2 & \quad \text{if } n \text{ is odd}
\end{cases}
\]
|
|
此程式碼在 Miktex 2.9 中產生錯誤,並且不會產生右側顯示的結果。使用 \mathrm 而不是 \text。
(請注意,這個特定的示例可以透過 cases 結構以更優雅的程式碼表達,該結構由 amsmath 包提供,如 高階數學 章節中所述。)
LaTeX 定義了兩個命令,可以在文件的任何位置使用(不僅僅是在數學公式中)來插入一些水平空格。它們是 \quad 和 \qquad
A \quad 是等於當前字型大小的空格。因此,如果您使用的是 11pt 字型,那麼 \quad 提供的空格也將是 11pt(當然是水平的)。\qquad 提供兩倍的量。從上面示例的程式碼中可以看出,\quad 用於在數學公式和文字之間新增一些間隔。
好的,現在回到文件開頭提到的微調。一個很好的例子是顯示 y 關於 x 的不定積分的簡單方程
如果您要嘗試一下,您可以寫
\int y \mathrm{d}x
|
|
但是,這並沒有給出正確的結果。LaTeX 不尊重程式碼中留下的空格來表示 y 和 dx 是獨立的實體。相反,它把它們全部 lumped together。在這種情況下一 \quad 顯然是過分了——需要使用一些小空格來在這種情況下使用,而這就是 LaTeX 提供的
| 命令 | 描述 | 大小 |
|---|---|---|
\,
|
小空格 | 3/18 個 quad |
\:
|
中等空格 | 4/18 個 quad |
\;
|
大空格 | 5/18 個 quad |
\!
|
負空格 | -3/18 個 quad |
注意,您可以按順序使用多個命令來實現更大的空間,如果需要的話。
因此,要糾正當前問題
\int y\, \mathrm{d}x
|
|
\int y\: \mathrm{d}x
|
|
\int y\; \mathrm{d}x
|
|
負空格可能看起來很奇怪,但是,如果它沒有某種用途,它就不會存在!以下面的例子為例
\left(
\begin{array}{c}
n \\
r
\end{array}
\right) = \frac{n!}{r!(n-r)!}
|
|
用於表示二項式係數的矩陣式表示式過於冗長。括號和實際內容之間留有太多空白。這可以透過在左括號後和右括號前新增一些負空格來輕鬆修正。
\left(\!
\begin{array}{c}
n \\
r
\end{array}
\!\right) = \frac{n!}{r!(n-r)!}
|
|
無論如何,應儘可能避免手動新增空格:這會使原始碼更復雜,並且違反了所見即所得方法的基本原則。最好的做法是使用您想要的空格定義一些命令,然後,當您使用命令時,您就不需要新增任何其他空格。之後,如果您改變了對水平空格長度的想法,您可以輕鬆地更改它,只需要修改之前定義的命令即可。讓我們舉個例子:您希望積分中dx的d為羅馬字型,並且與其餘部分有一小段距離。如果您想輸入類似於\int x \, \mathrm{d} x的積分,您可以定義一個像這樣的命令
\newcommand{\dd}{\mathop{}\,\mathrm{d}}
|
在文件的前言中。我們選擇\dd只是因為它讓人想起它所替換的“d”,並且輸入速度很快。這樣,您積分的程式碼就變成了\int x \dd x。現在,無論何時您寫積分,您只需要使用\dd代替“d”,您所有的積分將具有相同的樣式。如果您改變主意,您只需要改變前言中的定義,所有積分將相應地更改。
手動指定公式樣式
[edit | edit source]要手動使用文字樣式顯示公式的一部分,請用花括號括起該片段,並在該片段前加上\textstyle。需要花括號,因為\textstyle宏會改變渲染器狀態,以文字樣式渲染所有後續數學。花括號將此狀態更改限制在封閉的片段內。例如,要僅對求和符號使用文字樣式,您將輸入
\begin{equation}
C^i_j = {\textstyle \sum_k} A^i_k B^k_j
\end{equation}
|
與命令相同的是這樣
\newcommand{\tsum}[1]{{\textstyle \sum_{#1}}}
|
注意額外的花括號。只在一組表示式周圍是不夠的。這將導致\tsum k之後的數學都以文字樣式顯示。
要以顯示樣式顯示公式的一部分,請執行相同的操作,但使用\displaystyle代替。
高階數學:AMS 數學包
[edit | edit source]AMS(美國數學學會)數學包是一個強大的包,它在數學 LaTeX 語言之上建立了一個更高的抽象層;如果您使用它,它將使您的生活更輕鬆。一些命令amsmath引入將使其他純 LaTeX 命令過時:為了保持最終輸出的一致性,您最好在可能的情況下使用amsmath命令。如果您這樣做,您將獲得優雅的輸出,而無需擔心對齊和其他細節,使您的原始碼可讀。如果您想使用它,您需要在前言中新增以下內容
\usepackage{amsmath}
|
在公式中引入點
[edit | edit source]amsmath還定義了\dots命令,它是現有\ldots的泛化。您可以在文字和數學模式下使用\dots,LaTeX 將用三個點“…”替換它,但它將根據上下文決定是將其放在底部(如\ldots)還是居中(如\cdots)。
點
[edit | edit source]LaTeX 提供了幾個命令,以便在您的公式中插入點(省略號)。如果您需要輸入大型矩陣並省略元素,這將特別有用。首先,以下是 LaTeX 提供的主要與點相關的命令
| 程式碼 | 輸出 | 註釋 |
|---|---|---|
\dots |
通用點(省略號),用於文字(也用於公式之外)。它根據上下文自動管理前後空格,這是一個更高層的命令。 | |
\ldots |
輸出類似於上一個,但沒有自動空格管理;它在更低級別上工作。 | |
\cdots |
這些點相對於字母的高度居中。還有二元乘法運算子\cdot,如下所述。 | |
\vdots |
垂直點 | |
\ddots |
對角點 | |
\iddots |
反向對角點(需要mathdots包) | |
\hdotsfor{n} |
用於矩陣中,它會建立跨越 *n* 列的一行點。 |
不要使用 \ldots 和 \cdots,而是使用語義導向的命令。這樣可以根據需要動態調整您的文件以適應不同的約定,例如,如果您需要將文件提交給堅持遵循內部傳統的出版商。
| 程式碼 | 輸出 | 註釋 |
|---|---|---|
A_1,A_2,\dotsc, |
用於 "帶逗號的點" | |
A_1+\dotsb+A_N |
用於 "帶二元運算子/關係的點" | |
A_1 \dotsm A_N |
用於 "乘法點" | |
\int_a^b \dotsi |
![]() |
用於 "帶積分的點" |
A_1\dotso A_N |
用於 "其他點"(不包括以上型別) |
使用 align 環境編寫方程式
[edit | edit source]如何在使用 amsmath 包的情況下,使用 align 環境編寫方程式,請參見 高階數學 中的描述。
數學符號列表
[edit | edit source]以下是 \TeX\ 包中所有預定義的數學符號。更多符號可在其他包中獲取。
| 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<
|
>
|
=
|
\parallel
|
\nparallel
| |||||||||
\leq
|
\geq
|
\doteq
|
\asymp
|
\bowtie
| |||||||||
\ll
|
\gg
|
\equiv
|
\vdash
|
\dashv
| |||||||||
\subset
|
\supset
|
\approx
|
\in
|
\ni
| |||||||||
\subseteq
|
\supseteq
|
\cong
|
\smile
|
\frown
| |||||||||
\nsubseteq
|
\nsupseteq
|
\simeq
|
\models
|
\notin
| |||||||||
\sqsubset
|
\sqsupset
|
\sim
|
\perp
|
\mid
| |||||||||
\sqsubseteq
|
\sqsupseteq
|
\propto
|
\prec
|
\succ
| |||||||||
\preceq
|
\succeq
|
\neq
|
\sphericalangle
|
\measuredangle
| |||||||||
\therefore
|
\because
|
| 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | |||
|---|---|---|---|---|---|---|---|---|---|---|
\pm
|
\cap
|
\diamond
|
\oplus
| |||||||
\mp
|
\cup
|
\bigtriangleup
|
\ominus
| |||||||
\times
|
\uplus
|
\bigtriangledown
|
\otimes
| |||||||
\div
|
\sqcap
|
\triangleleft
|
\oslash
| |||||||
\ast
|
\sqcup
|
\triangleright
|
\odot
| |||||||
\star
|
\vee
|
\bigcirc
|
\circ
| |||||||
\dagger
|
\wedge
|
\bullet
|
\setminus
| |||||||
\ddagger
|
\cdot
|
\wr
|
\amalg
|
| 符號 | 指令碼 | 符號 | 指令碼 | |
|---|---|---|---|---|
\exists
|
\rightarrow 或 \to | |||
\nexists
|
\leftarrow 或 \gets | |||
\forall
|
\mapsto
| |||
\neg
|
\implies
| |||
\cap
|
||||
\cup
|
||||
\subset
|
⟸ | \impliedby
| ||
\supset
|
\Rightarrow 或 \implies | |||
\in
|
\leftrightarrow
| |||
\notin
|
\iff
| |||
\ni
|
\Leftrightarrow (等價(iff)的首選) | |||
\land
|
\top
| |||
\lor
|
\bot
| |||
\angle
|
和 | \emptyset 和 \varnothing[1] | ||
\rightleftharpoons
|
| 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 或 \mid (間距不同) |
\|
|
/
|
\backslash
| |||||||
\{
|
\}
|
\langle
|
\rangle
| |||||||
\uparrow
|
\Uparrow
|
\lceil
|
\rceil
| |||||||
\downarrow
|
\Downarrow
|
\lfloor
|
\rfloor
|
注意:在 LaTeX 中使用與拉丁字母外觀相同的希臘字母,只需使用拉丁字母:例如,使用 A 而不是 Alpha,使用 B 而不是 Beta,等等。
| 符號 | 指令碼 | 符號 | 指令碼 | |
|---|---|---|---|---|
| 和 | A 和 \alpha |
和 | N 和 \nu | |
| 和 | B 和 \beta |
和 | \Xi 和 \xi | |
| 和 | \Gamma 和 \gamma |
和 | O 和 o | |
| 和 | \Delta 和 \delta |
, 和 | \Pi, \pi 和 \varpi | |
| , 和 | E, \epsilon 和 \varepsilon |
, 和 | P、\rho 和 \varrho | |
| 和 | Z 和 \zeta |
, 和 | \Sigma、\sigma 和 \varsigma | |
| 和 | H 和 \eta |
和 | T 和 \tau | |
| , 和 | \Theta、\theta 和 \vartheta |
, 和 | Y、\Upsilon 和 \upsilon | |
| 和 | I 和 \iota |
, , 和 | \Phi, \phi 和 \varphi | |
| , 和 | K, \kappa 和 \varkappa |
和 | X 和 \chi | |
| 和 | \Lambda 和 \lambda |
和 | \Psi 和 \psi | |
| 和 | M 和 \mu |
和 | \Omega 和 \omega |
| 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\partial
|
\imath
|
\Re
|
\nabla
|
\aleph
| |||||||||
\eth
|
\jmath
|
\Im
|
\Box
|
\beth
| |||||||||
\hbar
|
\ell
|
\wp
|
\infty
|
\gimel
|
^ 在 LaTeX 2 中未預定義。請使用 latexsym、amsfonts、amssymb、txfonts、pxfonts 或 wasysym 包中的一個。
| 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | 符號 | 指令碼 | |||
|---|---|---|---|---|---|---|---|---|---|---|
\sin
|
\arcsin
|
\sinh
|
\sec
| |||||||
\cos
|
\arccos
|
\cosh
|
\csc
| |||||||
\tan
|
\arctan
|
\tanh
|
||||||||
\cot
|
\arccot
|
\coth
|
如果 LaTeX 不包含您想要使用的數學運算子的命令,例如 \cis(cosine 加上 i 乘以 sine),請在您的前言中新增
\DeclareMathOperator\cis{cis}
然後,您就可以像使用 \cos 或任何其他數學運算子一樣在文件中使用 \cis。
摘要
[edit | edit source]正如您所見,排版數學公式有時會很棘手。 但是,由於 LaTeX 提供瞭如此多的控制,您可以用相對較少的努力獲得專業質量的數學排版(當然,在您練習了一段時間之後!)。 由於可能性似乎無窮無盡,因此可以詳細說明數學的細枝末節。 但是,使用本教程,您應該能夠足夠地進行操作。
- meta:幫助:顯示公式: 維基媒體使用 LaTeX 命令的子集。
- detexify: 透過繪製它們查詢 LaTeX 符號的小程式
- amsmath文件
- LaTeX - 學生房間
- LaTeX 符號列表
- 數學符號的完整列表




