LaTeX_fleqn參數時,多行公式對齊居中的同時選擇性的加編號


【轉載請注明出處】http://www.cnblogs.com/mashiqi

2016/10/20

一年多沒寫博文了。今天寫一個短的,記錄一下使用LaTeX的一些經驗。

有些時候,我們的latex文檔是這樣開頭的

\documentclass[fleqn,leqno]{article}

其中 leqno 參數的作用是使得公式的編號顯示在左邊。當參數 fleqn 存在時,公式往往不能正確的居中。這時,我們就需要特別小心的使用equation、align、flalign、alignat等命令。下面詳細講講。

 

1、多行公式在一個地方對齊
如何居中多行的公式呢?我試過很多種方法后,覺得下面這個最好用:

\begin{flalign*}
    % In this way (this arrange of &), the equation will in the center and align at the third &. If use this method for 'split', equations will not be centered
    % However, 'flalign' will give each line a separate number. It cannot number the whole equations in one number.
    && a & = b & \\
    && a & = b & \\
    && a & = b & \\
    && a & = b &
\end{flalign*}

其中的多個&符號是專門安排好的。只用往第二個和第三個&符號后面添加代碼就行了,它們就能對齊 並且所有公式作為一個整體進行居中。但這里有個問題,就是編號的問題。這里沒有公式的編號。如果把flalign后面的*號去掉的話,那么就有編號了,但是是每一行公式一個編號,有些情況下這不太合適。因此,為了編號,我們要對上述代碼做如下更改:

\begin{flalign}
    % In this way (this arrange of &), the equation will in the center and align at the third &. If use this method for 'split', equations will not be centered
    % However, 'flalign' will give each line a separate number. It cannot number the whole equations in one number.
    && a & = b & \nonumber\\
    && a & = b & \\
    && a & = b & \nonumber\\
    && a & = b & \label{eq2}\\
    && a & = b & \nonumber
\end{flalign}
Now we refer equation (\ref{eq2}).

 

現在去掉了flalign后面的*號,那么給不想編號的行的結尾加上 \nonumber,給想加編號的行的后面 不添加任何東西 或者加上 \label{...} 。當 不添加任何東西 時,此行是有編號的,但這個編號將不能被引用到;當加上了 \label{...} 時,可以通過 \ref{...} 來引用這個編號。

下圖就是上面兩段代碼的輸出結果:

 

 

以上就基本解決了:多行公式、居中、對齊、加編號、引用編號這些問題。唯一的小缺點就是編號並不在整個公式的中間。不過這個小缺點可以容忍。

 

2、多行公式在多個地方對齊

為了達到多行公式在多個地方對齊的目的,我們必須取消最開始的 fleqn 命令。

有了上面使用 flalign 的經驗之后,我們可以使用 \begin{alignat*}{·} 進行多行公式在多個地方對齊的操作。“alignat”后面的那個括號里的數字是每行的“&”符號的個數加1后除以2。舉例如下:

 

\begin{alignat*}{2}
    a & = b &\quad c & = d \\
    a & = b &      c & = d
\end{alignat*}

注意:為了讓各個公式之間能有一個間隔,要在分隔各個公式的&符號之后加一個 \quad 。其實 flalign 也可以通過上面的方法實現多個地方對齊,但是當每一行的公式不多時,為了故意填滿一整行,公式間的間距會很大。而 alignat 命令不會可以去填滿一整行,而是會使得各個公式間盡量靠攏,所以各個公式間的水平距離會看起來更舒服一些。 alignat 和 flalign 之間的區別舉例如下:

\begin{alignat*}{2}
    a & = b &\quad c & = d \\
    a & = b &      c & = d
\end{alignat*}

\begin{flalign*}
    && a & = b & c & = d && \\
    && a & = b & c & = d &&
\end{flalign*}

3、 其他命令加編號

另外,使用

$$...$$

命令也是可以加編號的,方法是使用 \eqno{...} 命令。舉例如下:

$$a=b \eqno{(1)}$$

但這時的編號 (1) 要手動輸入,而且不能被引用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM