1. 程式人生 > 實用技巧 >LaTex學習筆記

LaTex學習筆記

垂直間距

  果我們想要人為地增加段落之間的垂直間距,可以在兩個段落之間的位置使用 \vspace
命令:

A paragraph.
    \vspace{2ex}
Another paragraph.

  \vspace 也可用\stretch 設定無限延伸的垂直長度。

  在段落內的兩行之間增加垂直間距,一般通過給斷行命令 \\ 加可選引數,如 \\[6pt] 或
\\*[6pt]。\vspace 也可以在段落內使用,區別在於 \vspace 只引入垂直間距而不斷行。

  •   \stretch{⟨n⟩} 生成一個特殊彈性長度,引數 ⟨n⟩ 為權重。

它的基礎長度為 0pt,但可以無限延伸,直到佔滿可用的空間。如果同一行內出現多

個 \stretch{⟨n⟩},這一行的所有可用空間將按每個 \stretch 命令給定的權重 ⟨n⟩ 進行分配。

對齊環境

  center、flushleft 和 flushright 環境分別用於生成居中、左對齊和右對齊的文字環境。

\begin{center} … \end{center}
\begin{flushleft} … \end{flushleft}
\begin{flushright} … \end{flushright}

  除此之外,還可以用命令直接改變文字的對齊方式

\centering
\raggedright
\raggedleft

設定字型和字號

  latexe設定了兩組命令來修改字型和字號,全域性生效,如果是想要區域性生效,就要

使用{ }分組。也就是寫成 {\bfseries ⟨sometext⟩} 這樣的形式。值得注意的是,文字中的

字型控制和公式中的字型控制不大一樣。

  

  LATEX 還提供了一個基礎的命令 \fontsize 用於設定任意大小的字號:

\fontsize{⟨size⟩}{⟨base line-skip⟩}

\fontsize 用到兩個引數,⟨size⟩ 為字號,⟨base line-skip⟩ 為基礎行距。表 5.3 中的命令也
都各自設定了與字號對應的基礎行距,大小為字號的 1.2 倍。如果不是在導言區,\fontsize 的
設定需要 \selectfont 命令才能立即生效,而表 5.2 的字號設定都是立即生效的。

行距

  \fontsize 命令可以為字號設定對應的行距,但我們很少那麼用。更常用的辦法是在導

言區使用 \linespread 命令。

\linespread{⟨factor⟩} #factor表示  1.2*factor

預設的基礎行距是 1.2 倍字號大小(參考 \font-size 命令),因此使用 \linespread{1.5} 意

味著最終行距為 1.8 倍的字號大小。
  導言區是全域性修改,區域性修改的話:需要用 \selectfont 命令使 \linespread 命令的改

動立即生效:

{\linespread{2.0}\selectfont
The baseline skip is set to be
twice the normal baseline skip.
Pay attention to the \verb|\par|
command at the end. \par}

水平間距

LATEX 預設為將單詞之間的“空格”轉化為水平間距。如果需要在文中手動插入額外的水平

間距,可使用 \hspace 命令:

This\hspace{1.5cm}is a space of 1.5 cm.

  可以結合\stretch{⟨n⟩}命令使用。

  如果同一行內出現多個 \stretch{⟨n⟩},這一行的所有可用空間將按每個 \stretch 命令給定

的權重 ⟨n⟩ 進行分配。

  在正文中用 \hspace 命令生成水平間距時,往往使用 em 作為單位,生成的間距隨字號大
小而變。我們在數學公式中見過 \quad 和 \qquad 命令,它們也可以用於文字中,分別相當於
\hspace{1em} 和 \hspace{2em}

參考文獻用法

簡單的thebibliography環境,每條參考文獻由\bibitem開頭,其後是參考文獻本身的內容:

\begin{thebibliography}{⟨widest label⟩}
\bibitem[⟨item number⟩]{⟨citation⟩} ...

\end{thebibliography}

其中[⟨item number⟩]是可選的編號,不填便是預設的編號(奇怪的是預設編號走不動?){⟨citation⟩}就是引用了,別名。

當然還有其他的參考文獻用法,之後補充bib方法

參見:https://www.cnblogs.com/PiaYie/p/13777446.html

數學公式排版

首先說說數學模式:

使用者使用 $ 開啟行內公式輸入,或是使用 \[ 命令、equation 環境時,LATEX 就進入了
數學模式。

數學模式相比於文字模式有以下特點:

  • 數學模式中輸入的空格被忽略。數學符號的間距預設由符號的性質(關係符號、運算子等)

決定。需要人為引入間距時,使用 \quad 和 \qquad 等命令

  • 不允許有空行(分段)。行間公式中也無法用 \\ 命令手動換行。排版多行公式需要用到各種環境(下面會介紹部分,詳見4.4多行公式)
  • 所有的字母被當作數學公式中的變數處理,字母間距與文字模式不一致,也無法生成單詞
    之間的空格。如果想在數學公式中輸入正體的文字,簡單情況下可用 4.7.1 小節中提供的
    \mathrm 命令。或者用 amsmath 提供的 \text 命令,舉例:

$x^{2} \geq 0 \qquad
\text{for \textbf{all} }
x\in\mathbb{R}$

輸出:

=======================分割線=========================

AMS巨集包 \usepackage{amsmath}

第一,行間公式:

由equatio環境包裹的在一行的公式,例如

The Pythagorean theorem is
$a^2 + b^2 = c^2$.

輸出:

值得注意的是,行間公式如果使用equation環境(或者是$...$),會自動給公式生成一個編號,

這個編號可以用\ref或者\label生成交叉引用。需要用到它的時候,使用amsmath包的\eqref命令。

amsmath貼心地給交叉引用加上了圓括號()!!!

舉例:

The Pythagorean theorem is:
\begin{equation}
a^2 + b^2 = c^2 \label{pythagorean}
\end{equation}
Equation \eqref{pythagorean} is
called `Gougu theorem' in Chinese.

輸出:

注:會有這麼幾種情況,

1-自動編號不想要,我要手動給他編號:使用\tag命令

2-使用\notag命令取消給公式編號

3-如果需要直接使用不帶編號的行間公式,方便地使用\[ 和\]包裹,即等效{displaymath}環境,或者{equation*}環境

\begin{equation*}
a^2 + b^2 = c^2
\end{equation*}
For short:
\[ a^2 + b^2 = c^2 \]
Or if you like the long one:
\begin{displaymath}
a^2 + b^2 = c^2
\end{displaymath}

輸出:

第二,數學符號:

  • 一般符號

希臘字母符號: 要想寫出希臘字母,直接使用公式 \某希臘字母的名字 即可,分為大寫字母和小寫字母

  如 α (\alpha)、β (\beta) 等等。大寫的希臘字母為首字母大寫的命令,如 Γ (\Gamma)、∆ (\Delta) 等等。

  無窮大符號為 ∞ (\infty),更多參考如下:

省略號: latex中的省略號有. . . (\dots) 和 · · · (\cdots) 兩種形式,各自用途明確:

$a_1, a_2, \dots, a_n$ \\
$a_1 + a_2 + \cdots + a_n$

輸出:

注意\dots 和 \dots是完全一致的既能用在公式中,也用來在文本里作為省略

甚至有時候,我們會用到斜的省略號或者豎的省略號:斜排的 ... (\ddots)和豎排的 (→自己想象ha!←) (\vdots)。

  • 指數上下標和導數

latex中的上下標需要用到這個符號^(上標符號)和_(下標符號)後面接一個域用{ }包含。否則上下標只對後面的一個符號起作用。

導數'(’)是特殊的上標,直接在符號後面使用,可以連用多個表示多階導數。

$f(x) = x^2 \quad f'(x)
= 2x \quad f''^{2}(x) = 4$

輸出:

P.S. latex中建議只在公式中插入少量文字,用\text命令, 但是如果要在很多文字中使用公式,就要像正常的行內公式那樣使用

  • 分式和根式

  \frac{分子}{分母} 是分式的書寫方式,(注意:分式的大小在行間是正常大小,在某一行中就會被壓縮

  命令 \dfrac 和 \tfrac 用來在 行內顯示正常大小的分式 和 行間顯示被壓縮的分式

  \sqrt{...} 一般根式

  \sqrt[n]{...} n次方根的寫法

(當然,這些都要在公式中)

P.S. 特殊的分式,如二項式結構,需要用到巨集包\binom

Pascal's rule is
\[
\binom{n}{k} =\binom{n-1}{k}
+ \binom{n-1}{k-1}
\]

輸出:

  • 關係符號

直接輸入:= 、>、<

公式輸入:\ne 不等號≠、\ge 大於等於號≥、\le小於等於號≤、\approx 約等號≈、\equiv 等價符號≡、 \propto 正比符號 、\sim 相似符號

一種自定義的二元關係符,將一個符號疊加在另一個符號之上:\stackrel

舉例:

\[
f_n(x) \stackrel{*}{\approx} 1
\]

輸出:

  • 其他二元關係符:

  • 算符

大多數都是二元運算子,

直接輸入:+、-、*、/

命令輸入:\times 乘號×、\div 除號÷、\cdot 點乘 · 、\pm 加減號±、\mp 減加號

常用特殊算符:∇ (\nabla) 和 ∂ (\partial)

更多符號參考:

特別的,在latex中將數學函式的名稱作為一個算符排版,字型為直立字型

栗子:

\[
\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1
\]

輸出:

還有,求模表達式,

\bmod 類似於一個二元運算子 $a\bmod b $ 即 a mod b

\pmod 是同餘表示式的字尾 $x\equiv a \pmod{b}$ 即 x≡ a (mod b)

P.S. 如果這些算符還不夠,可以嘗試自己定義運算子,使用amsmath巨集包中的 \DeclareMathOperator{代號}{書寫方式}

栗子:(帶星號的\DeclareMathOperator*)是為了定義帶上下限的運算子

\DeclareMathOperator{\argh}{argh}
\DeclareMathOperator*{\nut}{Nut}

\[\argh 3 = \nut_{x=1} 4x\]

輸出:

  • 巨算符

顧名思義,巨算符就是看起來比較 巨大 的算符,如積分符號(\int) 和 求和符號(\sum)

值得注意的是,巨算符在行內和行間的大小是不一樣的

例子:

In text:
$\sum_{i=1}^n \quad
\int_0^{\frac{\pi}{2}} \quad
\oint_0^{\frac{\pi}{2}} \quad
\prod_\epsilon $ \\
In display:
\[\sum_{i=1}^n \quad
\int_0^{\frac{\pi}{2}} \quad
\oint_0^{\frac{\pi}{2}} \quad
\prod_\epsilon \]

輸出:

巨算符一般都有寫明上下標,有時候在上下方,有時候在右上下方,怎麼控制?當然是使用控制命令:

\limits 上標位於上下方

\nolimits 上標位於右上下方

栗子:

In text:
$\sum\limits_{i=1}^n \quad
\int\limits_0^{\frac{\pi}{2}} \quad
\prod\limits_\epsilon $ \\
In display:
\[\sum\nolimits_{i=1}^n \quad
\int\limits_0^{\frac{\pi}{2}} \quad
\prod\nolimits_\epsilon \]

輸出:

有時候我們需要在下限位置書寫多行的表示式,這時:amsmath 巨集包還提供了 \substack,

subarray 環境更進一步,令多行表示式可選擇居中 (c) 或左對齊 (l)。

栗子:

\[
\sum_{\substack{0\le i\le n \\
j\in \mathbb{R}}}
P(i,j) = Q(n)
\]
\[
\sum_{\begin{subarray}{l}
0\le i\le n \\
j\in \mathbb{R}
\end{subarray}}
P(i,j) = Q(n)
\]

輸出:

  • 數學重音和上下括號

有時候我們要用到求導、向量、和物理算符等,需要在符號之上 加個標誌:

比如求導符號 ˙r (\dot{r})、¨r (\ddot{r})、表示向量的箭頭 ⃗r (\vec{r}) 、表示單位向量的符號 ˆe (\hat{\mathbf{e}}) 等

更多參考:

特別的,使用的時候要注意重音的作用區域!一般是對某個符號使用重音而不是對“符號加下標”使用重音。

如果要為多個符號加重音,

直線:\overline 和 \underline 命令(可疊加使用)

\hat{}、寬重音符號 \widehat{}

箭頭:\overrightarrow

栗子:

$0.\overline{3} =
\underline{\underline{1/3}}$ \\[5pt]
$\hat{XY} \qquad \widehat{XY}$\\[5pt]
$\vec{AB} \qquad
\overrightarrow{AB}$

輸出:

更多參考:

有時候我們會使用到上下括號:

\overbrace 和 \underbrace 命令用來生成上/下括號,各自可帶一個上/下標公式。

栗子:

$\underbrace{\overbrace{(a+b+c)}^6
\cdot \overbrace{(d+e+f)}^7}
_\text{meaning of life} = 42$

輸出:

  • 箭頭

常用的箭頭:左右箭頭 \rightarrow (→,或 \to)、\leftarrow(←,或 \gets)

有時候我們希望在箭頭上寫下一些表示式,而且看起來飽滿,需要使用amsmath 的 \xleftarrow 和 \xrightarrow 命令,

提供了長度可以伸展的箭頭,並且可以為箭頭增加上下標

栗子:

\[ a\xleftarrow{x+y+z} b \]
\[ c\xrightarrow[x<y]{a*b*c}d \]

輸出:

更多箭頭使用參見:

  • 括號和定界符

latex提供多種括號來表示公式塊的邊界,如小括號 ()、中括號 []、

大括號 {}(\{\})、

尖括號 ⟨⟩ (\langle \rangle)等

更多參見:

注意:技巧來了,在使用定界符或者括號的時候,可以在這一對定界符之前,分別加上

\left 和 \right, 效果是什麼,自動匹配大小,是不是很牛逼!!!!!

還有,\left 和 \right必須成對使用,如果你非得使用一個定界符,那麼另一邊的定界符號

用\left. 和 \right. 代替.

栗子:

\[1 + \left(\frac{1}{1-x^{2}}
\right)^3 \qquad
\left.\frac{\partial f}{\partial t}
\right|_{t=0}\]

輸出:

人的慾望總是難以滿足,這樣也好,會賺錢的人就能賺到一輩子都賺不到的錢.

有時候我們不滿足於使用\left 和 \right 自動匹配得到的(不美的)定界符, 簡單, 我們手動調整就好了,

使用 \big \bigg 命令來生成固定大小的定界符

(顯著的優點:使用\left和\right定界符包裹的公式快是不允許換行的,而使用\big \bigg 命令卻沒有這種限制)

常用的用法是(即在固定大小命令後增加書寫符號,左邊關鍵詞l, 右邊關鍵詞r), 而且這些不必成對出現

\left ====>\bigl( \Bigl( \biggl( \Biggl(

\right ====>bigr\} \Bigr\} \biggr\} \Biggr\}

栗子:

$\Bigl((x+1)(x-1)\Bigr)^{2}$\\
$\bigl( \Bigl( \biggl( \Biggl( \quad
\bigr\} \Bigr\} \biggr\} \Biggr\} \quad
\big\| \Big\| \bigg\| \Bigg\| \quad
\big\Downarrow \Big\Downarrow
\bigg\Downarrow \Bigg\Downarrow$

輸出:

第三: 多行公式

  • 長公式折行

原則上儘量避免寫出需要折行的一行公式, 有時候情非得已就這樣,

使用amsmath 巨集包的 multline 環境,允許使用 \\ 來折行

multline 環境下將公式編號放在最後一行。多行公式的首行左對齊,末行右對齊,其餘行居中。

公式的最後一行不寫 \\,如果寫了,反倒會產生一個多餘的空行。

栗子:

\begin{multline}
a + b + c + d + e + f
+ g + h + i \\
= j + k + l + m + n\\
= o + p + q + r + s\\
= t + u + v + x + z
\end{multline}

輸出:

p.s. equation*,multline* 環境排版不帶編號的折行長公式。

  • 多行公式

前面講了multline環境下的對齊方式,但是更多的時候,我們想要的是:

羅列一連串公式,然後按照等號對齊,

使用align環境+ &分隔符實現

作用:將公式分割為兩個部分並對齊,分隔符&常放在等號的左邊

栗子:

\begin{align}
a & = b + c \\
& = d + e
\end{align}

輸出:

離譜的是, algin會給每一行公式都編上號碼, 不要慌, 我能可以用 \notag命令去掉某行的編號,像這樣:

注:這裡在等號後面使用{}原因是,希望產生正常的間距,空格不被吞掉 對齊分隔符用在等號右側, 細品

\begin{align}
a ={} & b + c \\
={} & d + e + f + g + h + i
+ j + k + l \notag \\
& + m + n + o \\
={} & p + q + r + s
\end{align}

輸出:

神奇的是, align 還能夠對齊多組公式,除等號前的 & 之外,公式之間也用 & 分隔

栗子:

\begin{align}
a &=1   & b &=2  & c &=3  \\
d &=-1  & e &=-2 & f &=-5
\end{align}

輸出:

當然, 如果我們只需要簡單地羅列公式,而不必考慮對齊, 那麼就是

使用gather環境

栗子:

\begin{gather}
a = b + c \\
d = e + f + g \\
h + i = j + k \notag \\
l + m = n
\end{gather}

輸出:

gather環境下, 就是multline環境 的除去對齊效果的刪減版

P.S.align 和 gather 有對應的不帶編號的版本 align* 和 gather*。

  • 公用編號的多行公式

我們有時候需要為多個公式只匹配一個編號, 編號位於公式的居中位置, 怎麼辦呢?

使用amsmath 巨集包:equation 環境 +(套用)aligned、gathered 等環境 <禁止套娃>

栗子:

\begin{equation}
\begin{aligned}
a &= b + c \\
d &= e + f + g \\
h + i &= j + k \\
l + m &= n
\end{aligned}
\end{equation}

輸出:

p.s. split 環境和 aligned 環境用法類似,也用於和 equation 環境套用,區別是 split 只能

將每行的一個公式分兩欄,aligned 允許每行多個公式多欄。

第四: 陣列和矩陣