我正在尝试用多行写一个集合符号,例如:
这是我获取它的代码。
\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*}
结果如下: