Выровняйте горизонтальные cdots в выровненной среде

Выровняйте горизонтальные 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}

введите описание изображения здесь

Связанный контент