выровнять

выровнять

Рассмотрим следующий код и его результат:

\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.

  1. Я могу сделать это?
  2. Что именно делает &?

EDIT: Спасибо за помощь. Мне нравятся (и я проголосовал за) все предложенные варианты, но что, если я хочу, чтобы ОБЕ строки были пронумерованы? Поэтому вместо align*, align.

решение1

Вариант с alignat и eqmakebox, имитирующий конструкцию команды \vdotswithinиз mathtools: \documentclass{article}

\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.

Длянстолбцы, вы должны использовать2н – 1 &: начиная со второго, каждый &отмечает начало нового столбца, следующий &отмечает точку выравнивания в своем столбце.

Здесь я установил 3столбцы, откуда 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}

решение4

Если вам не нужна нумерация отдельных уравнений, вот она с TABstack.

\documentclass[a4paper]{article}
\usepackage{tabstackengine}
\TABstackMath
\begin{document}
\[
\setstacktabulargap{0pt}
\TABbinary
\tabularCenterstack{rcl}{
 A >& B > C &> D \\
 A >& E &> D
}
\]
\end{document}

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

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