
Извините, если эта ветка похожа на множество других веток, но я не смог найти хорошего решения своей проблемы. По сути, я хотел бы выровнять некоторые уравнения, но я также хотел бы, чтобы эти уравнения были разделены на несколько строк и отступы были сделаны с использованием разных точек, как это (см., например, уравнение 4, которое имеет две точки разрыва):
Основная проблема в том, что с alignat
, это &
не просто знак, чтобы сказать "выровнять эту точку с этой точкой", а &
на самом деле разграничивает столбцы. Так что если одна строка до или после слишком длинная, это делает все остальные элементы в том же столбце длиннее.
На данный момент я решаю свою проблему, помещая \nonumber
(это означает, что числа уравнения, такие как , (2)
не центрируются в уравнении, когда количество строк четное) и \hspace{<find the good space in 5 tries>}
везде, но это на самом деле непрактично/неэлегантно.
У вас есть лучшее решение? Вот MWE, в начале которого мой «идеальный синтаксис»:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
My ideal syntax:
% \begin{align}
% 2\times(1+\dots+10) &= 2 \times (1+2+3+4+5+6+7+8+9+10)\\
% &=
% \begin{split}
% 2 \times (&1+2+3+4\\
% &+5+6+7+8+9+10)\\
% \end{split}
% &=
% \begin{split}
% (1+1) \times (&3+7\\
% &+11+7+8+19)
% \end{split}
% &=
% \begin{split}
% (1+1) \times (&1+2+&(3
% & &+4)\\
% &+ 11+7+8+19)
% \end{split}
% \end{align}
My more or less ideal result:
\begin{align}
2\times(1+\dots+10) &= 2 \times (1+2+3+4+5+6+7+8+9+10)\\
&= 2 \times (1+2+3+4\\
&\hspace{10mm} +5+6+7+8+9+10)\nonumber\\
&= (1+1) \times (3+7\\
&\hspace{20mm}+ 11+7+8+19)\nonumber\\
&= (1+1) \times (1+2+(3\nonumber\\
&\hspace{33mm}+ 4)\\
&\hspace{20mm}+ 11+7+8+19)\nonumber
\end{align}
\end{document}
-- РЕДАКТИРОВАТЬ --
Предложенное решение великолепно, за исключением случая, когда я использую макрос, который расставляет скобки за меня. Например, рассмотрим следующее изображение. Я бы ожидал, что скобка справа от первой строки будет на второй строке. А если я добавлю новую строку, то она будет одна на третьей строке, чего я не ожидаю. И та же проблема будет, если я добавлю что-то после \pr
. Можно ли заставить этот код работать без вставки alignedat
внутри макроса? (Мне нравится иметь окружение, потому что оно делает отступы автоматическими, и я не могу найти, как создать команду окружения для pr
...
\documentclass{article}
\usepackage{mathtools}
\usepackage{etoolbox}
\newcommand*{\pr}[2][]{\Pr_{\substack{#1}}[\,#2\,]}
\begin{document}
\begin{align}
&\pr[a \leftarrow \{0,1\}]{
\begin{alignedat}[t]{2}
&\forall x\\
& \pr[b \leftarrow \{0,1\}]{b = a} \geq \delta
\end{alignedat}}+\alpha\\
&\geq \eta
\end{align}
\end{document}
Спасибо!
решение1
Вы можете вкладывать alignedat
среды.
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat}{2}
2\times(1+\dots+10) &= 2 \times (1+2+3+4+5+6+7+8+9+10)\\
&=
\begin{alignedat}[t]{2}
2 \times (&1+2+3+4\\
&+5+6+7+8+9+10)
\end{alignedat}\\
&=
\begin{alignedat}[t]{2}
(1+1) \times (&3+7\\
&+11+7+8+19)
\end{alignedat}\\
&=
\begin{alignedat}[t]{2}
(1+1) \times (&1+2+
\begin{alignedat}[t]{2}
&(3\\
&+4)
\end{alignedat}\\
&+ 11+7+8+19)
\end{alignedat}
\end{alignat}
\end{document}