跳轉到內容

LaTeX/數學

來自華夏公益教科書

LaTeX

入門
  1. 介紹
  2. 安裝
  3. 安裝額外包
  4. 基礎知識
  5. 如何獲得幫助

常用元素

  1. 文件結構
  2. 文字格式
  3. 段落格式
  4. 顏色
  5. 字型
  6. 列表結構
  7. 特殊字元
  8. 國際化
  9. 旋轉
  10. 表格
  11. 標題建立
  12. 頁面佈局
  13. 自定義頁面頁首和頁尾‎
  14. 匯入圖形
  15. 浮動體、圖形和標題
  16. 腳註和邊注
  17. 超連結
  18. 標籤和交叉引用
  19. 首字母

機制

  1. 錯誤和警告
  2. 長度
  3. 計數器
  4. 方框
  5. 規則和撐杆

技術文字

  1. 數學
  2. 高階數學
  3. 定理
  4. 化學圖形
  5. 演算法
  6. 原始碼清單
  7. 語言學

特殊頁面

  1. 索引
  2. 詞彙表
  3. 參考文獻管理
  4. 更多參考文獻

特殊文件

  1. 科學報告(學士報告、碩士論文、博士論文)
  2. 信件
  3. 簡報
  4. 教師專區
  5. 簡歷
  6. 學術期刊(MLA、APA 等)

建立圖形

  1. 介紹過程圖形
  2. MetaPost
  3. 圖片
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 建立 3D 圖形

程式設計

  1. 純 TeX
  2. 建立包
  3. 建立包文件
  4. 主題

雜項

  1. 模組化文件
  2. 協作編寫 LaTeX 文件
  3. 匯出到其他格式

幫助和建議

  1. 常見問題解答
  2. 提示和技巧

附錄

  1. 作者
  2. 連結
  3. 包參考
  4. LaTeX 文件示例
  5. 索引
  6. 命令詞彙表

編輯此框編輯目錄

°

當唐納德·克努斯開始開發最初的 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 環境在功能上是等效的。

如果你正在正常輸入文字,則稱你處於文字模式,但當你輸入這些數學環境之一時,則稱你處於數學模式,它與文字模式相比有一些不同之處

  1. 大多數空格和換行符都沒有意義,因為所有空格都是從數學表示式中邏輯地推匯出來的,或者必須使用特殊的命令來指定,例如 \quad
  2. 不允許空行。每個公式只允許一個段落。
  3. 每個字母都被認為是變數的名稱,並將按此方式排版。如果你想在公式中排版普通文字(普通直立字型,正常間距),則必須使用專用命令 來輸入文字。

在文字塊中插入“顯示”數學

[編輯 | 編輯原始碼]

為了讓一些運算子,例如 \lim\sum,在一些數學環境(閱讀 $......$)中正確顯示,在環境內部寫入 \displaystyle 類可能很方便。這樣做可能會導致行變高,但會使一些數學運算子的指數和索引正確顯示。例如,$\sum$ 會列印一個較小的 Σ,而 $\displaystyle \sum$ 會列印一個較大的 Σ ,就像在方程式中一樣。[注 1] 可以透過在前言中(即在 \begin{document} 之前)宣告 \everymath{\displaystyle},強制所有數學環境都執行此行為。

數學有很多符號!以下是可以直接從鍵盤訪問的一組符號

+ - = ! / ( ) [ ] < > | ' : *

除了上面列出的符號之外,為了顯示所需的符號,必須發出不同的命令。有很多例子,例如希臘字母、集合和關係符號、箭頭、二元運算子等。

例如

\forall x \in X, \quad \exists y \leq \epsilon

幸運的是,有一個工具可以大大簡化搜尋特定符號的命令。在下面的 外部連結 部分中查詢“Detexify”。另一個選擇是檢視下面的 外部連結 部分中的“LaTeX 符號列表”。

希臘字母

[編輯 | 編輯原始碼]

希臘字母在數學中很常見,而且在數學模式中很容易輸入。你只需要在反斜槓後輸入字母的名稱:如果第一個字母是小寫,你將得到一個小寫希臘字母;如果第一個字母是大寫(並且只有第一個字母是大寫),那麼你將得到一個大寫字母。注意,一些大寫希臘字母看起來像拉丁字母,所以 LaTeX 沒有提供它們(例如,大寫AlphaBeta 只是“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

在某些情況下,僅使用該包會導致有關某些字型形狀不可用的錯誤。在這種情況下,還需要新增 lmodernfix-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 為您提供了這種可能性。只需在文件的序言中新增以下程式碼

% New definition of square root:
% it renames \sqrt as \oldsqrt
\let\oldsqrt\sqrt
% it defines the new \sqrt in terms of the old one
\def\sqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{%
\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
左側是新樣式,右側是舊樣式

此 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]
另見:w:數學字母數字符號w:幫助:顯示公式#字母和字型w:維基百科:LaTeX 符號#字型

現在我們可以格式化文字;那麼如何格式化數學表示式呢?有一組格式化命令非常類似於剛剛使用的字型格式化命令,只是它們專門針對數學模式下的文字(需要 amsfonts 包)。

LaTeX 命令 示例 描述 常用
\mathnormal{}
(或者簡單地省略任何命令)
預設的數學字型 大多數數學符號
\mathrm{} 這是預設或正常字型,不斜體 計量單位,單字函式
\mathit{} 斜體字型 多字母函式或變數名。與 \mathnormal 相比,單詞間距更自然,數字也斜體。
\mathbf{} 粗體字型 向量
\mathsf{} 無襯線字型 類別
\mathtt{} 等寬(固定寬度)字型
\mathfrak{}
(需要 amsfontsamssymb[注 3]
哥特體 李代數的幾乎規範字體,環論中的理想
\mathcal{} 書法(僅限大寫[注 3] 常用於層/概形和範疇,用於表示密碼學概念,例如定義字母表),訊息空間),密文空間)和金鑰空間);克萊尼的描述邏輯中的命名約定拉普拉斯變換)和傅立葉變換)
\mathbb{}
(需要amsfontsamssymb[注 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)!}

無論如何,應儘可能避免手動新增空格:這會使原始碼更復雜,並且違反了所見即所得方法的基本原則。最好的做法是使用您想要的空格定義一些命令,然後,當您使用命令時,您就不需要新增任何其他空格。之後,如果您改變了對水平空格長度的想法,您可以輕鬆地更改它,只需要修改之前定義的命令即可。讓我們舉個例子:您希望積分中dxd為羅馬字型,並且與其餘部分有一小段距離。如果您想輸入類似於\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)。

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 Oo
\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 不包含您想要使用的數學運算子的命令,例如 \ciscosine 加上 i 乘以 sine),請在您的前言中新增

\DeclareMathOperator\cis{cis}

然後,您就可以像使用 \cos 或任何其他數學運算子一樣在文件中使用 \cis


摘要

[edit | edit source]

正如您所見,排版數學公式有時會很棘手。 但是,由於 LaTeX 提供瞭如此多的控制,您可以用相對較少的努力獲得專業質量的數學排版(當然,在您練習了一段時間之後!)。 由於可能性似乎無窮無盡,因此可以詳細說明數學的細枝末節。 但是,使用本教程,您應該能夠足夠地進行操作。


Clipboard

待辦事項

  • [2] 介紹符號
  • [3] 新增符號
  • 考慮從 [4] 新增符號 - 幾乎所有可用於 LaTeX 的符號列表
  • 考慮使用 [5] 中已介紹的內容,而不是使用上述提到的符號,而不是重新鍵入表格
  • 如何在 align 環境中框定一個方程式
  • 方程式中的顏色


參考文獻

[編輯 | 編輯原始碼]
  1. a b c d e f g h i j k l m n o p q r s t 需要 amsmath
  2. a b c d e f 需要 mathtools
  3. a b c d e f mathalpha 包允許指定在 \mathfrak{}\mathbb{}\mathcal{}\mathscr{} 命令中使用的更廣泛的字型。 例如,命令 \usepackage[bb=pazo]{mathalpha} 使 \mathbb{} 使用 "pazo" 字型。 mathalpha文件 對不同的字型選項進行了比較; 其中一些具有預設情況下沒有的小寫字母、希臘字母或數字。

進一步閱讀

[編輯 | 編輯原始碼]
[編輯 | 編輯原始碼]


上一個:規則和撐杆 索引 下一個:高階數學
華夏公益教科書