
Рассмотрим следующий код и его результат:
\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.
- Я могу сделать это?
- Что именно делает &?
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}