標籤:

LaTeX 第五課:數學公式排版

本文同時發佈於微信公眾號:兩個少年的奇幻漂流(ID:Amazing_Adventure)

本期的主要內容是數學公式的排版,包含以下內容:

  • 行內公式與行間公式
  • 數學結構的輸入
  • 數學符號的輸入
  • 多行公式排版

數學公式的排版是 LaTeX 的看家本領,下面我們就來看看吧!

---

行內公式與行間公式

大家在閱讀數學書籍的時候都會看到,有些公式是和正文嵌套在一起的,有的則單獨成段。比如下面這個樣子:

兩行正文中都嵌套有公式,同時還有一個大型的積分計算和概率密度函數。前者就是行內公式(inline equation),後者則是行間公式(displayed equation)。因為有的數學符號非常大,比如求和、積分等,或者需要表現的內容比較複雜,如上圖中的概率密度函數,所以我們經常需要用單獨的公式環境來處理大型的數學公式。在數學模式下,符號會使用單獨的字體,符號之間的間距也和一般的文字排版不同。因此只要是排版公式,就一定要用數學模式來排版。下面的例子表現了數學模式的不同:

對於行文中出現的行內公式,我們用兩個「$」來把公式的內容包起來,這樣就會以公式的形式呈現。比如上圖中的例子,只需要用 $a+b=b+a$ 就可以得到第二行中數學模式的效果。

在數學模式中,所有的字母都會被認為是分離的變數,一般會用義大利體來表示,字母間的間距也會相對更大一些。因此如果你想在公式環境中加入文字,要把文字用 ext{公式中的文字} 來表示(需要調用 amsmath 宏包),這樣就會正常地排版文字。

對於最基本的行間公式,可以用 「[」 和 「]」 包圍起來實現。比如下面這個例子:

這其實是一個行間公式環境,會生成一個不編號的公式。LaTeX 也提供了 equation 環境來排版帶編號的公式,例子如下:

這樣的公式可以加上標籤來進行交叉引用,打標籤的方法和引用章節相同,引用的時候則需要用 eqref 命令,例子如下:

---

數學結構的輸入

我們知道,數學公式不是簡單地把符號水平拼接在一起,而是要經過特別方式進行組合,稱之為數學結構。在數學模式下,空格都是不起實際作用的,但它可以讓公式代碼更好看一些。下面我們介紹一些基本的數學結構。

上標與下標。這是數學模式中最常見的結構。在數學模式下,用「_」表示下標,用「^」表示上標。如果上標或下標的內容多於一個字元,需要用大括弧括起來,否則上下標效果將只對第一個字元起作用。例子如下:

對於求和符號等大型運算符,它們的上下標通常在符號的正上方和正下方。如果對積分這樣的運算符(一般上下標都在右上角和右下角)需要手動把上下標移動到正下方或正上方的話,需要用 limits 命令。例子如下:

分式。排版分式使用的命令是 frac{分子}{分母}。如果分子或者分母只有一個字元,也可以省略大括弧。例子如下:

根式。排版根式的基本命令是 sqrt 。將被開方的式子作為它的參數就可以了。另外這個命令還可以有一個選項,表示開幾次方。我們用下面這個例子來說明其用法。

矩陣。排版矩陣需要使用矩陣環境。 amsmath 宏包為我們提供了多個排版矩陣的環境,其區別主要是用什麼包圍矩陣。列舉如下:

  • matrix:無
  • bmatrix:方括弧
  • vmatrix:豎線
  • pmatrix:圓括弧
  • Bmatrix:花括弧
  • Vmatrix:雙豎線

在排版矩陣中的元素時,需要用 & 符號作為對齊的標誌,並用 \ 表示換行。舉例如下:

---

數學符號

首先要跟大家說明的是數學模式中的文字規範。在數學公式中,只有變數才使用義大利體。而數學常數 e、i,微分符號 d,函數名 sin、cos、log、ln 等都需要用羅馬正體來表示。另外表示數集的字母 R、C、Q、N 等,需要用空心字體來表示。還有一些特殊的花體,使用場合比較有限,大家可以查閱相關的資料和書籍來了解使用方式。

一般的拉丁字母大家都可以方便地用鍵盤輸入。而數學中常用的希臘字母就不太好用美式鍵盤輸入了。在 LaTeX 中輸入小寫希臘字母時,只需要用反斜杠加上字母的讀音就可以輸入相應的希臘字母了。比如用 alpha 輸入 α,用 eta 輸入 β 等。對應的大寫字母只需要將讀音的首字母大寫即可(LaTeX 中提供的大寫希臘字母只有11個,不過已經夠用了)。通常我們還會用到希伯來字母 ?,可以用 aleph 來輸入。

對於特殊的符號,我們在這裡作一個簡單的列舉,大家可以自己在電腦上嘗試輸入一下。

  • 普朗克常數,hbar

  • 無窮符號,infty

  • 空集符號,emptyset(也可以調用 amssymb 宏包後使用 varnothing)

  • 偏微分符號,partial

  • 積分符號,int,iint,iiint,iiiint,分別對應一重、二重、三重、四重積分;更多重積分可以用 idotsint

  • 環路積分符號,oint

  • 求和符號,sum

  • 求積符號,prod

  • 交集符號,cap;並集符號,cup

  • 乘號, imes;除號,div

  • 不等號,
    eq;小於等於,leq;大於等於,geq;

  • 屬於,in;

另外還有很多函數名,應該用羅馬正體書寫的,都可以用反斜杠加函數名來實現。比如 sin,cos,log,ln。還有一些運算元也需要這樣實現,如 lim,max、min、gcd 等。

數學符號實在是太多了,變化也十分多樣,以上只是一些非常基本的符號,篇幅所限沒有辦法囊括更多。大家可以去看《LaTeX 入門》的第四章了解更多數學符號的輸入方式。對於一般的使用而言,上面的這些應該已經足夠了。

---

多行公式排版

大家如果自己嘗試了 equation 環境就會發現,在這個環境中是沒有辦法換行的。那麼我們遇到特別長的公式或者方程組之類的公式,equation 環境就無能為力了。這個時候我們就需要運用多行公式的排版技巧。

如果是簡單的多個公式的堆積,我們可以用 gather 和 align 環境。gather 環境中,所有的公式都是居中的;而 align 環境可以用 & 符號指定位置對齊(比如按等號對齊)。兩個環境都默認編號,例子如下:

如果我們是要把一個公式拆分成多行來書寫,並給出一個單獨的編號,那麼上面的兩個環境就不那麼適用了。在這裡為大家介紹 split 環境。split 環境需要嵌套在 equation 環境中使用,也支持像 align 環境中那樣的對齊方式(但不能多列對齊),舉例如下:

還有一種情況,是我們想把多個公式組合成一個大的公式,這時候我們就要用到另外的一些技巧了。最典型的例子就是本文開始的地方展示的概率密度函數了。我們在這裡需要用到 cases 環境。我們來看看剛才那個函數的代碼。

cases 環境有一個重大的缺陷,就是在每個 case 中,公式都會被變成行內公式。所以在這裡我們用 dfrac 命令來強制讓分式變成行間公式。如果我們想簡單地解決這個問題,就需要使用 mathtools 宏包定義的 dcases 環境,用法和 cases 完全相同,但是可以以行間公式的形式來排版每個 case。

---

數學公式的排版非常繁雜,我只能在這掛一漏萬地介紹最基本的一點知識。如果想對公式進行更細緻的調整和定製,大家可以去查閱一些文檔或者用 Google 搜索。下期我們將介紹圖表的排版,敬請期待!

歡迎關注我們??

weixin.qq.com/r/rzlIUCT (二維碼自動識別)

推薦閱讀:

在ApTeX中使用OpenType
LaTeX的編輯器TeXStudio能夠識別中文嗎?為何添加字體庫中沒有中文的?
LaTeX 怎麼禁止標題在目錄中的折行?

TAG:LaTeX |