在下面的例子中,错误是由\begin{align}
和引起的,\end{align}
但是我不知道为什么:
\documentclass{book}
\usepackage{amsmath}
\newenvironment{subalign}{\begin{subequations}\begin{align}}{\end{align}\end{subequations}}
\begin{document}
\begin{subalign}
a&=b\\
&=b
\end{subalign}
\end{document}
答案1
这是由环境定义的方式引起的LaTeX
。最简单的解决方法是使用\env
...\endenv
构造而不是\begin{env}
... \end{env}
:
\documentclass{book}
\usepackage{amsmath}
\newenvironment{subalign}{\subequations\align}{\endalign\endsubequations}
\begin{document}
\begin{subalign}
a&=b\\
&=b
\end{subalign}
\end{document}
答案2
使用以下方式定义环境environ
:
\documentclass{article}
\usepackage{amsmath,environ}
\NewEnviron{subalign}{%
\begin{subequations}
\begin{align}
\BODY
\end{align}
\end{subequations}
}
\begin{document}
\begin{subalign}
a &= b \\
&= b
\end{subalign}
\end{document}
答案3
为了针对同一问题提供不同的方法,这是一个xparse
解决方案,使用b
-type 参数说明符。
\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\NewDocumentEnvironment{subalign}{b}{%
\begin{subequations}
\begin{align}
#1
\end{align}
\end{subequations}
}{}
\begin{document}
\begin{subalign}
a &= b \\
&= b
\end{subalign}
\end{document}