align latex 使用_LaTeX系列笔记(9)-数学模式下的间距及align等环境的实现
上一篇文章中第二個(gè)問題我一直知道但是沒有細(xì)想是什么原因,今天正好探索了一下。孫孟越:LaTeX系列筆記(8)-常見排版細(xì)節(jié)問題?zhuanlan.zhihu.com此處小于號(hào)之后的空格太小了
1. TeX 是如何給數(shù)學(xué)符號(hào)正確的間距的
強(qiáng)烈建議大家閱讀 Knuth 的著作 The TeXbook,下面的知識(shí)都是從這本書 17, 18 章節(jié)學(xué)來的。
數(shù)學(xué)模式下 TeX 生成的東西叫 math list,而 math list 里面的主要對(duì)象是 atom,TeX 把 atom 又分成如下幾類。普通(Ord),如
大的運(yùn)算符(Op),如
二元運(yùn)算符(Bin),如
關(guān)系符(Rel),如
開始(Open),如
結(jié)束(Close),如
標(biāo)點(diǎn)符號(hào)(Punct),如
(Inner),如
等等
TeX 會(huì)在這些東西之間加入正確的間距,有如下表格,來自書 The TeXbook。表格中單位是 math unit
這樣就能計(jì)算出合適的空格距離了。
比如 | 和 \mid 都是單豎線 | ,他們的差別就在于前者是 Ord(普通),而后者是 Rel(關(guān)系)。
\| 和 \parallel 都是雙豎線
,區(qū)別就在于前者是 Ord(普通),而后者是 Rel(關(guān)系)。
: 和 \colon 都是冒號(hào)
,區(qū)別就在于前者是 Rel(關(guān)系),而后者是 Punct(標(biāo)點(diǎn))。
所以你在表示函數(shù)的時(shí)候,請(qǐng)用
$f\colonX\toY$
2. 怎么樣定義一個(gè) ord/rel/bin/open/close 等
利用 \mathop 可以定義一個(gè) Op 類型,正如我們?cè)趯O孟越:LaTeX系列筆記(3)-數(shù)學(xué)運(yùn)算符 Math Operator?zhuanlan.zhihu.com
所做的那樣。而
\bigl( \bigr)
的命令實(shí)際上分別定義了 \mathopen 和 \mathclose 類型的左右括號(hào),確保間距合適。從上面的表格可以看出,確實(shí)有些許差別。
剩下幾個(gè)可以通過 \mathrel,\mathbin 實(shí)現(xiàn),\mathord 一般不會(huì)使用,因?yàn)槟J(rèn)就是 Ord 類型。
\mod 也有很多種,\pmod 表示被括號(hào)括起來的,\bmod 是二元運(yùn)算符號(hào),還有 \pod,示例如下。
a\equiv b\mod c,a\equiv b\pmod c,a\bmod b,a\equiv b\pod{c}
3. align 等數(shù)學(xué)環(huán)境中 & 的對(duì)齊機(jī)制
amsmath 提供了 split、align、align* 等多種對(duì)齊的數(shù)學(xué)模式。這些數(shù)學(xué)模式(注意:eqnarry 是與他們不同的)做到對(duì)齊的方式比較神奇。舉個(gè)例子,當(dāng)你輸入
\begin{align*}
A & B \\
C & D
\end{align*}
的時(shí)候,實(shí)際上輸出的是一個(gè)表格,是
所以而當(dāng)?shù)忍?hào)放在 $ = $ 的結(jié)尾處,= 后面就沒有空格了,除非在 = 后面加上一個(gè) { }。
可以試驗(yàn)如下代碼驗(yàn)證一下,也確實(shí)證實(shí)了我的猜測(cè)。
$A=$${}B$ % 等號(hào)后面沒有空格$A={}$${}B$ % 等號(hào)后面有空格
所以就有了上篇文章中,在 = 和 & 之間加入 = {} & 的解決方案。
前面不加 { },后面加 { },這個(gè)設(shè)計(jì)是在 Plain TeX 年代就定型的,amsmath 繼承了下來。前后都加 { } 的話,有時(shí)候空格會(huì)太大了(如下圖第四行相比第一行,等號(hào)后面空格大了很多)。
實(shí)際上,把等號(hào)放在左邊會(huì)有奇怪的問題。
比如在下面這個(gè)例子里面,只有把等號(hào)放在右邊,才能正確的把“負(fù)號(hào)”識(shí)別為 Ord 類型
考慮到 Rel 左邊一般都是 Ord 類型,Rel 右邊可能是 Ord/Op/Bin 多種類型,所以我們應(yīng)該把 Rel 和右邊的東西連在一起,以獲取正確的空格。
手冊(cè)中也寫了,沒有特殊情況的話,一定要把 Rel 放在 & 之后!
4. 如果想第一行不放等號(hào)
可以利用 \phantom 空出想要的距離(一個(gè)等號(hào)加兩個(gè) \; ),代碼如下:
\begin{align*}
&\phantom{\;=\;} A \\
& = B \\
& = C.
\end{align*}
參考^因?yàn)?Rel 后面不能跟著 Bin 類型,強(qiáng)制識(shí)別為 Ord 類型,見 Knuth 的 The TeXbook 18 章
總結(jié)
以上是生活随笔為你收集整理的align latex 使用_LaTeX系列笔记(9)-数学模式下的间距及align等环境的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国计算机等级考试二级 Python 语
- 下一篇: U盘出现“文件或目录损坏且无法读取”怎么