我有以下代码,它产生两个对齐的方程式:一个是一行长,而另一个则aligned
有多行。
\begin{align}
W' &= W \cup W^\star &\text{donde } \left| W^\star \right| = \left| W \right| \text{ y } W \cap W^\star = \varnothing \\
R' &=
\begin{aligned}[t]
&\left\{ \left< u, v \right> \mid u \neq v \wedge u \operatorname{R} v \right\} \\
\cup &\left\{ \left< f(u), f(v) \right> \mid u \neq v \wedge u \operatorname{R} v \right\} \\
\cup &\left\{ \left< u, f(u) \right> \mid u \operatorname{R} u \right\} \\
\cup &\left\{ \left< f(u), u \right> \mid u \operatorname{R} u \right\}
\end{aligned}
&\text{donde } f : M \to W
\end{align}
结果就是这幅图,后面有一个很大的断点,W'
以便它具有与 相同的高度R'
。
奇怪的是,如果我不对齐第二列(donde ...
),就不会发生这种情况。
我怎样才能防止出现这种较大的垂直空间?两条线应该合理靠近。
答案1
不幸的是,当方程式编号必须向下移动因为它无法适合这条线时,就会发生这种情况。
解决方法:稍微退格一下。
\documentclass{article}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{align}
W' &= W \cup W^\star
&\hspace{-4em}\text{donde } \lvert W^\star \rvert = \lvert W \rvert \text{ y } W \cap W^\star = \varnothing \\
R' &=
\begin{aligned}[t]
&\{ \langle u, v \rangle \mid u \neq v \wedge u \mathrel{\mathrm{R}} v \} \\
&\cup \{ \langle f(u), f(v) \rangle \mid u \neq v \wedge u \mathrel{\mathrm{R}} v \} \\
&\cup \{ \langle u, f(u) \rangle \mid u \mathrel{\mathrm{R}} u \} \\
&\cup \{ \langle f(u), u \rangle \mid u \mathrel{\mathrm{R}} u \}
\end{aligned}
&\hspace{-4em}\text{donde } f : M \to W
\end{align}
\end{document}
我删除了全部 \left
并且\right
在特定情况下只会添加不必要的空间。我还将四行集合描述修改为更标准的外观。
答案2
您可以在最长的行中使用mathrlap
命令(来自)。mathtools
然而,我认为以下两种解释东德不需要对齐,在我们定义了\set
和命令之后,我建议使用更好看的布局和更简单的代码,\innerp
这些命令需要 \DeclarePairedDelimiterX
命令(再次来自mathtools
)和xparse
:
\documentclass{article}
\usepackage{xparse}
\usepackage{mathtools, amssymb}
\DeclarePairedDelimiterX{\set}[1]\{\}{\setargs{#1}}
\NewDocumentCommand{\setargs}{>{\SplitArgument{1}{;}}m}
{\setargsaux#1}
\NewDocumentCommand{\setargsaux}{mm}
{\IfNoValueTF{#2}{#1}{\nonscript\,#1\nonscript\;\delimsize\vert\nonscript\:\allowbreak #2\nonscript\,}}
\DeclarePairedDelimiterX{\innerp}[1]{\langle}{\rangle}{\innpargs{#1}}
\NewDocumentCommand{\innpargs}{ >{\SplitArgument{1}{,}}m }
{\innpargsaux#1}
\NewDocumentCommand{\innpargsaux}{ m m }
{#1\,,#2}%
\begin{document}
\begin{align}
W' &= W \cup W^\star & & \text{donde } \left| W^\star \right| = \left| W \right| \text{ y } W \cap W^\star = \varnothing \\
R' &=
\begin{aligned}[t]
&\left\{ \left< u, v \right> \mid u \neq v \wedge u \operatorname{R} v \right\} \\
\cup &\mathrlap{\left\{ \left< f(u), f(v) \right> \mid u \neq v \wedge u \operatorname{R} v \right\}} \\
\cup &\left\{ \left< u, f(u) \right> \mid u \operatorname{R} u \right\} \\
\cup &\left\{ \left< f(u), u \right> \mid u \operatorname{R} u \right\}
\end{aligned}
& & \text{donde } f : M \to W
\end{align}
\vskip 2ex
\begin{align}
W' &= W \cup W^\star, \qquad \text{donde } \left| W^\star \right| = \left| W \right| \text{ y } W \cap W^\star = \varnothing \\
R' &=
\begin{aligned}[t]
&\set[\big]{\innerp{u, v } ; u \neq v \wedge u \operatorname{R} v } \\
& \cup \set[\big]{\innerp{f(u), f(v) } ; u \neq v \wedge u \operatorname{R} v } \qquad
\text{donde } f : M \to W\\
& \cup \set[\big]{\innerp{u, f(u) } ; u \operatorname{R} u } \cup \set[\big]{\innerp{f(u), u} \mid u \operatorname{R} u }
\end{aligned}
\end{align}
\end{document}