newenvironment:\begin{align} 和 \end{align} 错误

newenvironment:\begin{align} 和 \end{align} 错误

在下面的例子中,错误是由\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}

相关内容