多行对齐来描述集合符号

多行对齐来描述集合符号

我正在尝试用多行写一个集合符号,例如:

在此处输入图片描述

这是我获取它的代码。

\usepackage{amsmath}

\begin{document}
...  
\begin{align*}
Lookup &= \{\, \langle C, A.m, B.m \rangle   \mid & \textrm{class $A$ contains virtual method $m$, $C \le^{*} B \le^{*} A$}, \\
            &      & \textrm{class $B$ contains virtual method $m$}, \\
            &      & \textrm{there is no class $B^{'}$ tht contains method $m$ such that $C \le^{*} B^{'} <^{*} B$}
\, \}\\
LC &= \{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in ...\, \}
\end{align*}

但是,我无法使第二个&正确对齐。

在此处输入图片描述

可能出了什么问题?

添加

在此处输入图片描述 我用 替换了第二行,&&&使线条正确对齐。但是,我发现 和 之间的间距太大$\mid$$class A$有没有办法控制它们之间的间隙?

添加2

在芭芭拉 (Barbara) 的帮助下,这是我的工作代码。

\usepackage{amsmath}

\begin{align*}
 \textit{Lookup} &= \{\, \langle C, A.m, B.m \rangle   \mid {}
   \begin{aligned}[t] &\text{class $A$ contains ...}, \\
            & \text{class $B$ contains ...}, \\
            & \text{there is no class $B'$ that contains ...} \, \}
   \end{aligned}\\
\rlap{LC}\hphantom{\textit{Lookup}}
       &= \{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in ...\, \}
\end{align*}

在此处输入图片描述

答案1

我建议使用子环境aligned来处理这三种情况。此外,由于撇号会自动被视为素数(在所需的位置),我会省略明确的上标代码——这就是导致行间距不规则的原因。

这是我的建议:

\begin{align*}
 \textit{Lookup} &= \{\, \langle C, A.m, B.m \rangle   \mid {}
   \begin{aligned}[t] &\text{class $A$ contains ...}, \\
            & \text{class $B$ contains ...}, \\
            & \text{there is no class $B'$ that contains ...}
   \end{aligned}\\
\rlap{LC}\hphantom{\textit{Lookup}}
       &= \{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in ...\, \}
\end{align*}

结果

代码示例的输出

在大多数情况下也没有必要使用\textrm;只需这样\text做即可(例如,除非您碰巧在定理中)。我将等号前的元素左对齐,因为这是您的第一个示例中的内容——这需要使用人为加宽的组件来匹配第一行中的“查找”。

答案2

感谢彼得的帮助,我才能成功。

这是修改后的代码:

\begin{align*}
Lookup &= \{\, \langle C, A.m, B.m \rangle   \mid && \textrm{class $A$ contains virtual method $m$, $C \le^{*} B \le^{*} A$}, \\
            & && \textrm{class $B$ contains virtual method $m$}, \\
            & && \textrm{there is no class $B^{'}$ tht contains method $m$ such that $C \le^{*} B^{'} <^{*} B$}
\, \}\\
LC &= \rlap{$\{\, \langle a, b \rangle \mid \langle a, b, c \rangle \in \textrm{there is no class $B^{'}$ tht contains method $m$ such that $C \le^{*} B^{'} <^{*} B$}\, \}$}
\end{align*}

结果如下: 在此处输入图片描述

相关内容