目前我有这样的东西:
\[ A = B \]
\begin{alignat*}{2}
AAA = BBBB &= CCCCCCCC &&= DDDD \\
AAA = BBBB &= \qquad CCC &&= DDDD \\
\end{alignat*}
想要在没有第一个和第二个方程之间的垂直间距的情况下获得几乎相同的效果,那么有没有办法将第一个方程推入对齐环境内并保持其居中?
另外,有没有更好的方法将第三个方程中的“CCC”置于中心?
答案1
只是amsmath
您可以alignedat
在内部使用gather*
。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{gather*}
A = B \\
\begin{alignedat}{2}
AAA = BBBB &= CCCCCCCC &&= DDDD \\
AAA = BBBB &= \qquad CCC &&= DDDD \\
\end{alignedat}
\end{gather*}
\end{document}
使用calc
包居中
一种可能的居中方式CCC
是使用包\widthof
中的方法calc
来计算的宽度CCCCCCCC
,并将CCC
其设置在该宽度的框中。
\documentclass{article}
\usepackage{amsmath,calc}
\begin{document}
\begin{gather*}
A = B \\
\begin{alignedat}{2}
AAA = BBBB &= CCCCCCCC &&= DDDD \\
AAA = BBBB &= \makebox[\widthof{$\displaystyle CCCCCCCC$}][c]{$\displaystyle CCC$} &&= DDDD \\
\end{alignedat}
\end{gather*}
\end{document}
Ignasi 答案的变体
这里我在数组规范中添加了等号,而不是明确输入它们。为了获得更好的间距,在两边添加了一个空组,即@{ {}={} }
。
\jot
是多行数学环境中行与行之间的默认间距amsmath
。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\begin{array}{*{3}{@{} c@{ {}={} }} c}
\multicolumn{4}{c}{A=B}\\[\jot]
AAA & BBBB & CCCCCCCC & DDDD \\[\jot]
AAA & BBBB & CCC & DDDD \\[\jot]
\end{array}
\]
\end{document}
答案2
只是一个想法:使用array
。列间距不太好,但可以调整。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\begin{array}{*{7}{c}}
\multicolumn{7}{c}{\begin{array}{ccc}A&=&B\end{array}}\\
AAA & = & BBBB & = & CCCCCCCC &=& DDDD \\
AAA & = & BBBB &= & CCC &= &DDDD \\
\end{array}
\]
\end{document}
编辑:仍然不完美,但下一个代码看起来更好:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\setlength{\arraycolsep}{1pt}
\begin{array}{*{4}{c}}
\multicolumn{4}{c}{A=B}\\
AAA = & BBBB = & CCCCCCCC &= DDDD \\
AAA = & BBBB = & CCC &= DDDD \\
\end{array}
\]
\end{document}