如果这个帖子看起来与许多其他帖子相似,我很抱歉,但我无法找到一个很好的解决方案来解决我的问题。基本上,我想对齐一些方程式,但我还希望将这些方程式分成几行,并使用不同的点进行缩进(例如,参见具有两个断点的方程式 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}