我创建了一个命令\newcommand{\br}[1]{$\left\{{#1}\right\}$}
来提供围绕输入的左花括号和右花括号。
\br{g \in G : \theta(g) = M/N}
在我尝试按如下方式使用它之前,这种用法非常有效:
\begin{align*}
\ker\theta &= \br{g \in G : \theta(g) = M/N} \\
&= \br{g \in G : (M/N)Ng = M/N}
\end{align*}
是否有更好的宏用于封闭
{}
?有没有办法在对齐内使用这个或更好的宏?
更新:
我定义的宏还有另一种方法,\Set
称为布拉克特包。这是由于如何自动调整集合理解中的垂直条的大小?评论者什里瓦萨。
\usepackage{braket}
\begin{align*}
\ker\theta &= \Set{g \in G \colon \theta(g) = M/N} \\
&= \Set{g \in G \colon (M/N)Ng = M/N}
\end{align*}
答案1
这里的问题是align*
(以及所有显示数学环境)会自动将您进入数学模式,因此$...$
如果您在那里使用它,则在这样的环境中使用的定义将会导致错误。
从定义中省略$
符号。如果它随后在文本中使用,最好明确地将它们包含在输入流中 - 这将清楚地表明其中的内容是数学,从而当您在文件中查找某些内容时更容易找到。
另一种可能性是在定义中使用\ensuremath
,这样无论在数学模式下还是不在数学模式下它都能同样好地工作。然而,这并不被真正推荐,因为它掩盖了命令的性质。这里给出了一些不使用它的其他原因:何时不应使用 \ensuremath 作为数学宏?。