对齐环境问题

对齐环境问题

目前我有这样的东西:

  \[ 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}

在此处输入图片描述

相关内容