我有以下内容:
\newenvironment{examplebox}[1]{
\begin{flalign*}
}
{
\end{flalign*}
}
\begin{examplebox}{Test}
& \lim_{x \to 2} f(x)
\end{examplebox}
这会导致以下两个错误:
LaTeX Error: \begin{examplebox} on input line 47 ended by \end{document}.
LaTeX Error: \begin{flalign*} on input line 47 ended by \end{examplebox}
如果每次我 \begin 时都将 flalign 放入环境中,环境就会正常工作。但是,我希望将其放在 \newenvironemnt 中,因为我想在其周围添加样式,并使其每次需要时都可以轻松重现。此外,我还没有决定它的样式,因为我更关注文档的内容,所以我希望能够更改一次并让它更改它的所有实例。
此错误是否有任何特殊原因,或者这只是 flalign 的限制。如果是限制,那么是否有其他替代方案?
答案1
这是对齐的一个常见问题amsmath
。你可能做
\makeatletter
\newenvironment{examplebox}[1]{%
% do something with #1
\start@align\tw@\st@rredtrue\m@ne
}
{\endalign}
\makeatother
但使用起来更简单ltcmd
(以前xparse
):
\NewDocumentEnvironment{examplebox}{mb}{%
% do something with #1
\begin{flalign*}#2\end{flalign*}%
}{}