LATEX資料公式基本文法
作者:@houkai本文為作者原創
0x00 概述
TEX 是Donald E. Knuth 編寫的一個以排版文章及數學公式為目标的計算機程式。TEX的版本号不斷趨近于π,現在為3.141592。由Pascal 語言寫成,特點: 免費、輸出品質高、擅長科技排版、有點像程式設計。
LATEX 目前使用最廣泛的TEX 宏集。 每一個LATEX 指令實際上最後都會被轉換解釋成幾個甚至上百個TEX指令。
CTEX 國内緻力于TEX 推廣的網站:http://www.ctex.org/。該網站提供了CTEX 中文套裝,這個安裝程式把MiKTEX(TEX 在Windows 作業系統上的實作版本)和一些相關工具(如WinEdt、GSview 等)打包在一起,同時對中文接口進行了配置,以實作對中文文本的編輯。
如果想學習LATEX安裝CTEX套裝就可以了。LATEX 的功能和宏包有很多,每個人用到的功能是有限的;邊用邊學,建立了基本的概念以後,在使用中根據需求去解決問題就可以了。本文主要簡單介紹LATEX的數學排版。
0x01 基礎知識
1.1 LATEX控制序列的概念(類似于函數)
控制序列可以是作為指令:以“\”開頭,參數:必須參數{}和可選參數[]。
1.2 環境概念
以“bengin 環境名”開始,并以“end 環境名”結束。
1.3.LATEX可以排版公式與文字
故分為:數學模式和文本模式。如果你想要在公式中排版普通的文本(直立字型和普通字距),那麼你必須要把這些文本放在\textrm{...} 指令中。
1.4 在數學模式中又分為兩種,一種是公式排版在一個段落之中;另一種是公式獨立形式排版。
前一種,公式直接放在文字之間,公式高度一般受文本高度限制;後一種,公式另起一行,高度可調整。處于段内的數學文本要放在\\( 與\\) 之間, 與與
之間,或者\\begin{math} 與\\end{math} 之間;處于段外的數學文本放在\\[ 與\\] 之間,
與與
之間,或者\\begin{displaymath} 與\\end{displaymath} 之間(為了網頁顯示,這裡用雙斜杠表示單斜杠)。如下:
a.
b.
$\sum_{i=0}^{n}i^2$ %第一種
$$\sum_{i=0}^{n}i^2$$ %第二種
0x02 數學公式基本文法
2.1 上标與下标
上标指令是 ^{角标},下标指令是 _{角标}。當角标是單個字元時可以不用花括号(在 LaTeX 中,花括号是用于分組,即花括号内部文本為一組)。
$$x_1$$
$$x_1^2$$
$$x^2_1$$
$$x_{22}^{(n)}$$
$${}^*\!x^*$$ %(“\!” 表示其前後字元之間無間隙)
、 、 、 、
2.2 分式
輸入較短的分式時,最簡單的方法是使用斜線,譬如輸入 (x+y)/2,可得到 。
要輸入帶有水準分數線的公式,可用指令:\frac{分子}{分母}。
$$\frac{x+y}{2}$$
$$\frac{1}{1+\frac{1}{2}}$$
、
2.3 根式
排版根式的指令是:開平方:\sqrt{表達式};開 n 次方:\sqrt[n]{表達式}
$$\sqrt{2}<\sqrt[3]{3}$$
$$\sqrt{1+\sqrt[p]{1+a^2}}$$
$$\sqrt{1+\sqrt[^p\!]{1+a^2}}$$
、 、
注意:上面第三個示例與第二個示例的差別,有時候 LaTeX 公式需要經過這樣的微調會更美觀。
2.4 求和與積分
排版求和符号與積分符号的指令分别為 \sum 和 \int,它們通常都有上下限,在排版上就是上标和下标。
$$\sum_{k=1}^{n}\frac{1}{k}$$
$\sum_{k=1}^n\frac{1}{k}$
$$\int_a^b f(x)dx$$
$\int_a^b f(x)dx$
微分符直體:$$\int_a^b f(x)\mathrm{d}x$$
在數學模式中,TEX 根據上下文選擇字型大小。例如,上标會排版成較小的字型。如果你想要把等式的一部分排版成羅馬字型,不要用\textrm 指令,隻因\textrm 會暫時切換到文本模式, 而此時字型大小切換機制将不起作用。使用\mathrm 來保持字型大小切換機制的正常
。
、 、 、 、
2.5.公式中的空格
LaTeX 能夠自動處理公式中的大多數字元之間的空格,但是有時候需要自己手動進行控制。
緊貼 $a\!b$
沒有空格 $ab$
小空格 a\,b
中等空格 a\;b
大空格 a\ b
quad空格 $a\quad b$
兩個quad空格 $a\qquad b$
、 、 、 、 、 、
注意:不同的TEX解析器給出的結果稍有不同,這裡使用Google API生成的公式空格的間隔大小就和CTEX中不同。貌似在這裡空格的差别不大...,看來Google API功能削減了一些。
在公式中靈活的運用空格指令可以起到美化公式的作用。
$$\int_a^b f(x)\mathrm{d}x$$
插入小空格:$$\int_a^b f(x)\,\mathrm{d}x$$
、
2.6 公式中的定界符
這裡所謂的定界符是指包圍或分割公式的一些符号
$($ %(
$)$ %)
$[$ %[
$]$ %]
$\{$ %{
$\}$ %}
$|$ %|
$\|$ %||
在上述這些定界符之前冠以 \left(修飾左定界符)或 \right(修飾右定界符),可以得到自适應縮放的定界符,它們會根據定界符所包圍的公式大小自适應縮放。
$$\left(\sum_{k=\frac{1}{2}}^{N^2}\frac{1}{k}\right)$$
2.7 矩陣
對于少于 10 列的矩陣,可使用 matrix,pmatrix,bmatrix,Bmatrix,vmatrix 和 Vmatrix 等環境。
$$\begin{matrix}1 & 2\\3 &4\end{matrix}$$
$$\begin{pmatrix}1 & 2\\3 &4\end{pmatrix}$$
$$\begin{bmatrix}1 & 2\\3 &4\end{bmatrix}$$
$$\begin{Bmatrix}1 & 2\\3 &4\end{Bmatrix}$$
$$\begin{vmatrix}1 & 2\\3 &4\end{vmatrix}$$
$$\begin{Vmatrix}1 & 2\\3 &4\end{Vmatrix}$$
、 、 、 、 、
2.8 排版數組
當矩陣規模超過 10 列,或者上述矩陣類型不敷需求,可使用
array
環境。該環境可把一些元素排列成橫豎都對齊的矩形陣列。
$$
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
$$
\mathbf大寫控制符,\\表示換行,{ccc}表示列樣式。array 環境也可以用來排版這樣的表達式,表達式中使用一個“.” 作為其隐藏的\right 定界符。
$$
y = \left\{ \begin{array}{ll}
a & \textrm{if $d>c$}\\
b+x & \textrm{in the morning}\\
l & \textrm{all day long}
\end{array} \right.
$$
你也可以在array 環境中畫線,如分隔矩陣中元素。
$$
\left(\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}\right)
$$