在 alignat 环境中对齐水平 cdots

在 alignat 环境中对齐水平 cdots

我正在使用alignat环境来对齐一组方程,这些方程实际上描述了相同的事物,但针对不同的数量。因此,我决定跳过常见的东西并用 替换它们\cdots,但我似乎无法将它们对齐到中心。

在此处输入图片描述

有什么办法可以让点居中吗?

示例代码如下

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{alignat*}{4}
  &\sigma(E) &=& \vec{\sigma(E)} = \big\{\sigma(E_1), \sigma(E_2), \cdots, \sigma(E_n)\big\} &=&  \big\{\sigma_1, \sigma_2, \cdots, \sigma_n\big\}&\\
 &C(E) &=&{\cdots}&=&  \big\{C_1, C_2, \cdots, C_n\big\}&\\
\end{alignat*}

\end{document}

答案1

您可以使用以下方法将结果转换为低级 TeX,以\omit摆脱当前格式的限制:

示例输出

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\begin{alignat*}{2}
  \sigma(E) &={}& \vec{\sigma(E)}
  = \bigl\{\sigma(E_1), \sigma(E_2), \dots, \sigma(E_n)\bigr\}
  &= \bigl\{\sigma_1, \sigma_2, \dots, \sigma_n\bigr\}\\
  C(E) &={}&\omit\hfill$\cdots$\hfill
  &= \bigl\{C_1, C_2, \dots, C_n\bigr\}
\end{alignat*}

\end{document}

注意,我还添加了组{}以在等号处获得正确的间距,并使用\bigl...\bigr而不是\big。此外,在逗号之间您应该只使用\dots(或\dotsc)。

这里要小心使用 & 符号&。在 中alignat,对齐隐含地是rlrl...第一组右对齐,第二组左对齐,等等。

答案2

带有软件包的解决方案eqparbox。请注意,2 个对齐列就足够了。

\documentclass{article}
\usepackage{amsmath}
\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][M]{\eqmakebox[#1]{$\displaystyle#2$}}

\begin{document}

\begin{alignat*}{2}
  \sigma(E) &= {}& \eqmathbox{\vec{\sigma(E)} = \big\{\sigma(E_1), \sigma(E_2), \cdots, \sigma(E_n)\big\}} &= \big\{\sigma_1, \sigma_2, \cdots, \sigma_n\big\}\\
 C(E) &= {}& \eqmathbox{\cdots\cdots}&= \big\{C_1, C_2, \cdots, C_n\big\}\\
\end{alignat*}

\end{document} 

在此处输入图片描述

答案3

array不是为对齐方程式而设计的,但在这种情况下,通过一些技巧(@{}以及{}我们想要在第一个/最后一个等号之后/之前有正确的间距),它可能会很方便。

\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\[
\begin{array}{r@{}c@{}l}
  \sigma(E) ={} & \vec{\sigma(E)} = \big\{\sigma(E_1), \sigma(E_2), \cdots, \sigma(E_n)\big\} & {}= \big\{\sigma_1, \sigma_2, \cdots, \sigma_n\big\}\\
 C(E) ={} &\cdots& {}=  \big\{C_1, C_2, \cdots, C_n\big\}\\
\end{array}
\]
\end{document}

在此处输入图片描述

相关内容