\newenvironment 不起作用

\newenvironment 不起作用

我使用以下命令创建了一个新环境:

\newenvironment{eqs}
    {\begin{subequations}\begin{align}}
    {\end{align}\end{subequations}
    }

我想将子方程和对齐环境结合起来,但就是不行。任何想法都会很感激。

答案1

由于技术原因,您提议的语法无法\begin在“开始”部分和\end“完成”部分中使用。这是因为它align在开始排版之前会收集整个环境的内容;原因是它必须进行一些测量,因此必须多次处理内容。

收集工作通过获取结束符 之前出现的任何内容来完成\end{...},其中...是对齐开始的环境的名称。问题是:当你有

\newenvironment{eqs}
  {\begin{subequations}\begin{align}}
  {\end{align}\end{subequations}}

并执行\begin{eqs},对齐从开始\begin{align},但\end{align}看不到,因为它隐藏在中\end{eqs},而\end{align}应该明确地在输入中。

align解决方案很简单:使用和使用的“内部”宏subequations

\newenvironment{eqs}
  {\subequations\align}
  {\endalign\endsubequations}

这样就\align启动了对齐,但是由于打开的环境的名称是eqs(因为没有\begin执行过其他命令),所以amsmath知道必须找到\end{eqs}终止对齐的方法,然后才会执行“完成”部分。

据我所知,无法在 Texmaker 中更改用户定义环境的颜色,请参阅更改 TeXmaker 中用户定义命令的颜色附有答案和评论。另请参阅环境定义给出错误对于类似的问题。

相关内容