1. 程式人生 > >latex教程——讀書筆記整理(三)——數學公式

latex教程——讀書筆記整理(三)——數學公式

綜述

目錄

綜述

數學模式的群組

數學公式的基本元素

數學空格

垂直取齊

虛位

數學字型尺寸

定理、定律

粗體符號

數學符號表


LATEX 使用一種特有的模式來排版數學(mathematics) 公式。數學公式允許以行間形式排版在一個段落之中, 也可以以獨立形式排版,此時段落可能會被拆開。處於段內的數學文字要放在\( 與\) 之間, $ 與$ 之間,或者\begin{math} 與\end{math} 之間。

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GBK}{kai}

\TeX{} is pronounced as
\(\tau\epsilon\chi\).\\[6pt]
100 m$^{3}$ of water\\[6pt]
This comes from my
\begin{math}\heartsuit\end{math}

\end{CJK*}
\end{document}

效果:

Add $a$ squared and $b$ squared
to get $c$ squared. Or, using
a more mathematical approach:
$c^{2}=a^{2}+b^{2}$

效果

當你希望把自己的一些較長的數學方程或是公式單獨的放在段落之外的時候,那麼你最好顯示(display) 它們,而不要拆開此段落。為此,你可以把它們放在\[ 與\] 之間,或者\begin{displaymath} 與\end{displaymath} 之間。

Add $a$ squared and $b$ squared to get $c$ squared. Or, using
a more mathematical approach:
\begin{displaymath}
c^{2}=a^{2}+b^{2}
\end{displaymath}
or you can type less with:
\[a+b=c\]

效果:

如果你希望LATEX 給你的方程編上號,你可以使用equation 環境。然後你就可以用\label 來給一個方程加上標籤並在文中的某處用\ref 或amsmath 巨集包中的\eqref 命令來引用它。

\documentclass{article}
\usepackage{CJK,amsmath}
\begin{document}
\begin{CJK*}{GBK}{kai}

\begin{equation} \label{eq:eps}
\epsilon > 0
\end{equation}
From (\ref{eq:eps}), we gather
\ldots{}From \eqref{eq:eps} we
do the same.

\end{CJK*}
\end{document}


效果:

注意一下公式排版樣式的不同,前者是行間式樣,後者是顯示式樣
\(....\)行間顯示

\(\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}\)

效果:

\[....\]顯示式樣

\[\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}\]

效果:

數學模式和文字模式都一些不同之處。例如,在數學模式中:
1.大多數的空格和斷行沒有任何意義,而且所有的空隙要麼是從相應數學表示式中自然的生成,要麼是用一些專門的命令來指定,如\,, \quad 或\qquad。
2.空白行是不允許的。每個公式只能為一段。
3.每一個字母都會被認為是一個變數名,且會相應被排版為此種樣式。如果你想要在公式中排版普通的文字(直立字型和普通字距),那麼你必須要把這些文字放在\textrm{...} 命令中

\begin{equation}
\forall x \in \mathbf{R}:
\qquad x^{2} \geq 0
\end{equation}

效果:

\begin{equation}
x^{2} \geq 0\qquad
\textrm{for all }x\in\mathbf{R}
\end{equation}

效果:

數學家要使用空心粗體(“blackboard bold”), 要包含此字型,得用到amsfonts 或是amssymb 巨集包的\mathbb命令。上面的例子就變成

\documentclass{article}
\usepackage{CJK,amsmath,amssymb}
\begin{document}
\begin{CJK*}{GBK}{kai}

\begin{displaymath}
x^{2} \geq 0\qquad
\textrm{for all }x\in\mathbb{R}
\end{displaymath}

\end{CJK*}
\end{document}

效果:

數學模式的群組

大部分數學模式的命令只對其後的一個字元有效,因此,如果你希望一個命令對多個字元起作用,你必須把它們放在一個群組中,使用花括號:{...}.

\begin{equation}
a^x+y \neq a^{x+y}
\end{equation}

效果:

數學公式的基本元素

小寫希臘字母(Greek letters) 的輸入為\alpha、 \beta、 \gamma⋯⋯,大寫字母的輸入為\Gamma、 \Delta ⋯⋯

$\lambda,\xi,\pi,\mu,\Phi,\Omega$

效果:

指數和下標可以使用^ 和_ 兩個符號來指定。

$a_{1}$ \qquad $x^{2}$ \qquad
$e^{-\alpha t}$ \qquad
$a^{3}_{ij}$\\
$e^{x^2} \neq {e^x}^2$

效果:

平方根(square root) 輸入用\sqrt; n 次根用\sqrt[n] 來得到。根號的大小由LATEX自動決定。如果僅僅需要根號,可以用\surd 得到。
 

$\sqrt{x}$ \qquad
$\sqrt{ x^{2}+\sqrt{y} }$
\qquad $\sqrt[3]{2}$\\[3pt]
$\surd[x^2 + y^2]$

效果:

命令\overline 和\underline 產生水平線,它們會被放在表示式的正上方或是正下方。

$\overline{m+n}$ \\
\(\underline{m+n}\)

效果:

命令\overbrace 和\underbrace 可以在一個表示式的上方或下方生成水平括號

$\underbrace{a+b+\cdots+z}_{26}$\\
$\overbrace{a+b+\cdots+z}^{26}$

效果:

為了給變數增加數學重音符號,如小箭頭或是˜(tilde), 你可以使用表3.1 所列出的命令。覆蓋多個字元的寬“帽子”和寬˜號,可以由\widehat和\widetilde 得到。 ' 符號則給出了一個撇號(prime)。

\begin{displaymath}
y=x^{2}\qquad y'=2x\qquad y''=2 \qquad\widehat{x} \qquad \widetilde{y}
\end{displaymath}

效果:

向量可以通過在一個變數上方新增小箭頭(arrow symbols) 來指定。為此,使用\vec 命令即可。 \overrightarrow 和\overleftarrow 這兩個命令可以用來表示一個從A 到B 的向量。

\begin{displaymath}
\vec a\quad\overrightarrow{AB}
\end{displaymath}

效果:

通常沒有必要打出一個明顯的點號來表明乘法運算;但是有時候也需要它來幫助讀者分清一個公式。在這些情況下,你應該使用\cdot 命令。

\begin{displaymath}
v = {\sigma}_1 \cdot {\sigma}_2
{\tau}_1 \cdot {\tau}_2
\end{displaymath}

效果:

log 等類似的函式名通常是用直立字型,而不是如同變數一樣用斜體,因此LATEX 提供了以下的命令來排版這些最重要的函式名:

\arccos \cos \csc \exp \ker \limsup \arcsin \cosh \deg \gcd \lg \ln
\arctan \cot \det \hom \lim \log \arg \coth \dim \inf \liminf \max
\sinh \sup \tan \tanh \min \Pr \sec \sin

示例:

\[\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\]%先分子後分母

效果:

取模函式(modulo function),有兩個命令: \bmod 用於二元運算“a modb”,而\pmod 則用於表示式如“x ≡ a (mod b)”。

$a\bmod b$\\
$x = a \pmod{b}$

效果:

一個上下的分式(fraction) 可用\frac{...}{...} 命令得到。而其傾斜形式如1/2,有時是更好的選擇,因為對於簡短的分子分母來說,這看上去更美觀。

$1\frac{1}{2}$ hours
\begin{displaymath}
\frac{ x^{2} }{ k+1 }\qquad
x^{ \frac{2}{k+1} }\qquad
x^{ 1/2 }
\end{displaymath}

效果:

排版二項式係數或類似的結構,你可以使用amsmath 巨集包中的\binom命令。

對於二元關係,有時候你需要到把符號互相堆積起來。 \stackrel 命令會把其第一個引數中的符號以上標大小放在第二個上面,而第二個符號則以正常的位置擺放。

\begin{displaymath}
\int f_N(x) \stackrel{!}{=} 1
\end{displaymath}

效果:

積分號(integral operator) 可以用\int 產生, 求和號(sum operator)用\sum 命令, 而乘積號(product operator) 要用\prod 命令。上限和下限用^ 和_ 來指定,如同上標與下標一樣。

\begin{displaymath}
\sum_{i=1}^{n} \qquad
\int_{0}^{\frac{\pi}{2}} \qquad
\prod_\epsilon
\end{displaymath}


效果:

TEX提供了各種各樣的符號來得到括號(braces) 和其他定界符(delimiters)(如: [ h k l )。圓括號和方括號可以由對應的鍵直接輸入而花括號要用\{, 但是所有其它的定界符都要用一定的命令(如:\updownarrow) 生成。所有可用定界符的列表, 請查閱表3.7。

\begin{displaymath}
{a,b,c}\neq\{a,b,c\}
\end{displaymath}

效果:

如果你在某個左定界符前放一個\left 命令或是在某個右定界符前放一個\right 命令, TEX 將會自動決定這對定界符的大小。請注意,你必須為每個\left 命令配對相應的\right 命令,而且只有在左右定界符被排版在同一行時才會獲得正確的大小尺寸。如果你不想使用任何右定界符,使用看不見的‘\right.’ 即可!

\begin{displaymath}
1 + \left(\frac{1}{ 1-x^{2} }\right)^3
\end{displaymath}

效果:

有些情況下,有必要手工指定一個數學定界符的正確尺寸,這可以使用\big, \Big, \bigg 和\Bigg 命令,大多數情況下你只需把它們放在定界符命令的前面。

$\Big( (x+1) (x-1) \Big) ^{2}$\\
$\big(\Big(\bigg(\Bigg($\quad
$\big\}\Big\}\bigg\}\Bigg\}$
\quad
$\big\|\Big\|\bigg\|\Bigg\|$

效果:

有很多命令可以實現在公式中插入三點列(three dots)。 \ldots 得到在基線上的點列而\cdots 是上下居中的點列。另外,還有\vdots 命令產生豎直的點列, \ddots 產生對角線的點列。你可以在第3.5 節找到另外一個例子。

\begin{displaymath}
x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

效果:

數學空格

如果公式內由TEX 選擇的空格不令人滿意,那麼也可以通過插入一些
特殊的空格控制命令來調整。有一些命令可以產生小空格:
\, 得到3/18 quad ( )
\: 得到4/18 quad ( )
\; 得到5/18 quad ( )。
轉義的空格符\ 產生一箇中等大小的空格,而\quad ( ) 和\qquad ( )產生大的空格。 \quad 的大小與當前字型中字母‘M’ 的寬度有關。

\! 命令會產生一個-3/18 quad ( ) 的負空格。

\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\int\!\!\!\int_{D} g(x,y)
\, \ud x\, \ud y
\end{displaymath}
instead of
\begin{displaymath}
\int\int_{D} g(x,y)\ud x \ud y
\end{displaymath}

效果:

請注意這裡微分中的‘d’ 按慣例要設定成羅馬字型。 AMS-LATEX 為多重積分號之間空格的微調提供了另一種方法,即使用\iint,\iiint, \iiiint,和\idotsint 命令。
加入amsmath 巨集包後,上面的例子可以寫成這樣:

\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\iint_{D} \, \ud x \, \ud y
\end{displaymath}

效果:

垂直取齊

要排版陣列,使用array 環境。它的使用與tabular 環境有些類似。\\ 命令可用來斷行。
 

\begin{displaymath}
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}

效果:

array 環境也可以用來排版這樣的表示式,表示式中使用一個“.” 作為其隱藏的\right 定界符。

\begin{displaymath}
y = \left\{ \begin{array}{ll}
a & \textrm{if $d>c$}\\
b+x & \textrm{in the morning}\\
l & \textrm{all day long}
\end{array} \right.
\end{displaymath}

效果:

就像在tabular 環境中一樣,你也可以在array 環境中畫線,如分隔矩陣中元素:

\begin{displaymath}
\left(\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}\right)
\end{displaymath}

效果:

對於跨行的長公式或是方程組(equation system),你可以使用eqnarray 和eqnarray* 環境來替代equation 環境。在eqnarray 環境中每一行都有一個等式編號。 eqnarray* 則不新增編號。
eqnarray 和eqnarray* 環境的用法與一個{rcl} 形式的3 列表格相類似,這裡中間一列可以用來放等號,不等號, 或者是其他你選擇的符號。\\ 命令可以斷行。

\begin{eqnarray}
f(x) & = & \cos x \\
f'(x) & = & -\sin x \\
\int_{0}^{x} f(y)dy &
= & \sin x
\end{eqnarray}

效果:

注意,這裡等號兩邊空白都有些大。\setlength\arraycolsep{2pt} 可以調小它。 長等式不能被分成合適的小段。作者必須指定在哪裡斷且如何縮排。以下兩種方法是最常用的。

{\setlength\arraycolsep{2pt}
\begin{eqnarray}
\sin x & = & x -\frac{x^{3}}{3!}
+\frac{x^{5}}{5!}-{}\nonumber\\
&& {}-\frac{x^{7}}{7!}+{}\cdots
\end{eqnarray}}

效果:

\begin{eqnarray}
\lefteqn{ \cos x = 1
-\frac{x^{2}}{2!} +{} }
\nonumber\\
& & {}+\frac{x^{4}}{4!}
-\frac{x^{6}}{6!}+{}\cdots
\end{eqnarray}

效果:

\nonumber 命令告訴LATEX 不要給這個等式編號。

虛位

我們看不見虛位(phantom,也有幻影的意思),但是在許多人的頭腦中它們依然佔有一定的位置。 LATEX 中也一樣。我們可以使用它來實現一些有趣的小技巧。
當使用^ 和_ 時, LATEX 對文字的垂直對齊有時顯得太過於自作多情。使用\phantom 命令你可以給不在最終輸出中顯示的字元保留位置。理解此意的最好方法是看下面的例子。

\begin{displaymath}
{}^{12}_{\phantom{1}6}\textrm{C}
\qquad \textrm{versus} \qquad
{}^{12}_{6}\textrm{C}
\end{displaymath}

效果:

\begin{displaymath}
\Gamma_{ij}^{\phantom{ij}k}
\qquad \textrm{versus} \qquad
\Gamma_{ij}^{k}
\end{displaymath}

效果:

數學字型尺寸

在數學模式中, TEX 根據上下文選擇字型大小。例如,上標會排版成較小的字型。如果你想要把等式的一部分排版成羅馬字型,不要用\textrm命令,只因\textrm 會暫時切換到文字模式, 而此時字型大小切換機制將不起作用。使用\mathrm 來保持字型大小切換機制的正常。但是要小心,\mathrm 只對較短的項有效。空格依然無效而且重音符號也不起作用。

\begin{equation}
2^{\textrm{nd}} \quad
2^{\mathrm{nd}}
\end{equation}

效果:

有時你仍需告訴LATEX 正確的字型大小。在數學模式中,可用以下四
個命令來設定:
\displaystyle (123), \textstyle (123), \scriptstyle (123) and \scriptscriptstyle (123).
改變樣式也會影響到上下限的顯示方式。

\begin{displaymath}
\frac{\displaystyle
\sum_{i=1}^n(x_i-\overline x)
(y_i-\overline y)}
{\displaystyle\biggl[
\sum_{i=1}^n(x_i-\overline x)^2
\sum_{i=1}^n(y_i-\overline y)^2
\biggr]^{1/2}}
\end{displaymath}

效果:

這個例子中的括號要比\left[ \right] 提供的括號更大些。 \biggl和\biggr命令分別對應於左和右括號。

定理、定律

當寫數學文件時, 你可能需要一種方法來排版“引理”、“定義”、“公理”及其他類似的結構。
\newtheorem{name}[counter]{text}[section]
參量name 是用來標識“定理”的短關鍵字。而引數text 才是真正的“定理”名,它會在最終的文件中被打印出來。方括號中是可選參量。兩者都均用來指定“定理”的編號問題。使用counter引數來指定先前宣告的“定理”的name。則此新的“定理”將與先前定理統一編號。 section 引數讓你來指定章節單元,而“定理”會按相應的章節層次來編號。
在你的文件的導言區執行\newtheorem 命令後,你就可以在文件中使用以下命令了。

\documentclass{article}
\usepackage{CJK,amsmath,amssymb}


\begin{document}
\begin{CJK*}{GBK}{kai}

\newtheorem{name}{Definition}
\begin{name}[text]
This is my interesting theorem
\end{name}

\end{CJK*}
\end{document}

效果:

amsthm 巨集包提供了\newtheoremstyle{style} 命令,通過從三個預定義樣式中選擇其一來定義定理的外觀,三個樣式分別為: definition (標題粗體,內容羅馬體), plain (標題粗體,內容斜體)和remark (標題斜體,內容羅馬體)。
理論上已經說夠多了,下面我們聯絡一下實踐,這個例子希望能夠帶走你的疑問並讓你知道\newtheorem 環境其實比較複雜且不易理解。
首先定義定理環境:

\documentclass{article}
\usepackage{CJK,amsmath,amssymb}


\begin{document}
\begin{CJK*}{GBK}{kai}

\newtheorem{law}{Law}
\newtheorem{jury}[law]{Jury}
\newtheorem{marg}{Margaret}
\begin{law} \label{law:box}
Don't hide in the witness box
\end{law}
\begin{jury}[The Twelve]
It could be you! So beware and
see law \ref{law:box}\end{jury}
\begin{marg}No, No, No\end{marg}

\end{CJK*}
\end{document}

效果:

“Jury” 定理與“Law” 定理共用了同一個計數器,因此它的編號與其他“Law” 定理的編號是順序下來的。方括號中的參量用來指定定理的一個標題或是其他類似的內容。

\documentclass{article}
\usepackage{CJK,amsmath,amssymb}


\begin{document}
\begin{CJK*}{GBK}{kai}

\flushleft
\newtheorem{mur}{Murphy}[section]
\begin{mur}
If there are two or more
ways to do something, and
one of those ways can result
in a catastrophe, then
someone will do it.\end{mur}

\end{CJK*}
\end{document}

效果:

Murphy” 定理有一個與當前章節相聯絡的編號。你也可以使用其他的單元,如章(chapter) 或小節(subsection)。

粗體符號

在LATEX 中要得到粗體符號相當的不容易;這也許是故意設定的,以防業餘水平的排版者過度的使用它們。字型變換命令\mathbf 可得到粗體字母,但是得到的是羅馬體(直立的)而數學符號通常要求是斜體。還有一個\boldmath 命令,但是它只能用在數學模式之外。它不僅作用於字母也作用於符號。

\begin{displaymath}
\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath $\mu, M$}
\end{displaymath}

效果:

請注意,逗號也成粗體了,這也許不是所需的。使用amsbsy 巨集包(包含在amsmath 中)或tool 巨集包集中的bm 將會便利許多,因為它們包含一個叫\boldsymbol 的命令。

\begin{displaymath}
\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}
\end{displaymath}

效果:

數學符號表

以下表格列出了數學模式中的所有常用符號。
要使用表3.11–3.15。 必須在導言區先載入amssymb 巨集包而且系統中安裝了AMS 數學字型。
表3.1 – 數學模式重音符號。

表3.2 – 希臘字母。

α \alpha θ \theta o o υ \upsilon
β \beta ϑ \vartheta π \pi φ \phi
γ \gamma ι \iota ϖ \varpi ϕ \varphi
δ \delta κ \kappa ρ \rho χ \chi
ɛ \epsilon λ \lambda ϱ \varrho ψ \psi
ε \varepsilon μ \mu σ \sigma ω \omega
ζ \zeta ν \nu ς \varsigma
η \eta ξ \xi τ \tau
Γ \Gamma Λ \Lambda Σ \Sigma Ψ \Psi
Δ \Delta Ξ \Xi Υ \Upsilon Ω \Omega
Θ \Theta Π \Pi Φ \Phi