
考慮以下程式碼及其結果:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
A >& B > C &> D \\
A >& E &>D
\end{align}
\begin{eqnarray}
A >& B > C &> D \\
A >& E &> D
\end{eqnarray}
\end{document}
我希望結果是第二個而不是第一個。但是,我想在對齊環境中實現這一點。
- 我可以這樣做嗎?
- & 到底是做什麼的?
編輯:感謝迄今為止的幫助。我喜歡(並贊成)所有提議的選項,但如果我希望兩行都編號怎麼辦?所以代替align*
, align
.
答案1
alignat
與的變體,模仿指令eqmakebox
的構造: \documentclass{article}\vdotswithin
mathtools
\usepackage{amsmath}
\usepackage{eqparbox}
\begin{document}
\begin{alignat}{3}
A & > B & & \eqmakebox[A]{$ {}>{} $} C &&> D \\
A & > & & \eqmakebox[A]{$ E $}& & >D
\end{alignat}
\end{document}
關於 & 符號用法的解釋
align
和之間的唯一差異alignat
是對齊方程式列之間的間距由使用者根據環境情況選擇alignat
。
為了n列,你必須使用2n – 1 &
:從第二個開始,每一個都&
標記一個新列的開始,下面&
標記其列中的對齊點。
在這裡,我設定了3
列,wherence 5&
,列之間沒有間距。
答案2
使用數組可以更好地實現這一點:
\documentclass{article}
\usepackage{array}
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.5}
\begin{array}{c *{3}{ >{{}}c<{{}} c } }
A &> & B &> & C &> & D \\
A &> & \multicolumn{3}{c}{E} &> & D
\end{array}
\]
\end{document}
七個對齊點,偶數列為關係符號,因此用空子公式包圍以產生正確的空間。列間填充(局部)設定為零。
答案3
您可以使用alignat
而不是align
然後使用一些低階命令來獲得居中,或者您可以使用該eqnarray
套件。
對準
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\ccol}[1]{\omit\column@plus\hfill$\m@th\displaystyle #1$\hfill\span}
\makeatother
\begin{document}
\begin{alignat}{2}
A >{}& B > C &&> D \\
A >{}&\ccol{E}&>D
\end{alignat}
\end{document}
方程式組
\documentclass{article}
\usepackage{eqnarray}
\begin{document}
\arraycolsep 0pt
\begin{equationarray}{rcl}
A >{}& B > C &{}> D \\
A >{}&E&{}>D
\end{equationarray}
\end{document}