嵌套两个环境时出错;尝试重新定义 \begin{equation*} 和 \begin{spit};命令已定义?

嵌套两个环境时出错;尝试重新定义 \begin{equation*} 和 \begin{spit};命令已定义?

我正在尝试将 \begin{equation*} 和 \begin{split} 合并为一个缩写。而不是这样做:

\begin{equation*}
\begin{split}
      a = b & = b \\ & = b
\end{split}
\end{equation*}

我想创建一些如下的内容:

    \fff a = b & = b \\ & = b 
    \endfff

我正在尝试使用 \newenvironment 和 \newcommand,但效果不太好。

\newenvironment{placeholdername}
{\begin{equation*}
\begin{split}
}
{ 
\end{split} 
\end{equation*}
}

\newcommand{\fff}{\begin{placeholdername}}
\newcommand{\endfff}{\end{placeholdername}}

请原谅我糟糕的命名方案。我还收到一条错误信息“命令 \endfff 已定义”,这对我来说毫无意义。顺便说一句,我是 LaTeX 新手。请帮忙!

答案1

你可以这样做,但我认为它没什么用。这里的想法是获取全部内容,然后执行你需要的操作。

\documentclass{article}
\usepackage{amsmath}

\NewDocumentEnvironment{eqsplit*}{b}
 {\begin{equation*}\begin{split}#1\end{split}\end{equation*}}
 {}

\begin{document}

\begin{eqsplit*}
  a & = b \\ & = c
\end{eqsplit*}

\end{document}

在此处输入图片描述

答案2

您不能\end在 LaTeX 中定义以 开头的命令,否则会阻止定义环境fff

另外由于其他原因,您无法在宏中隐藏 AMS 对齐环境,split需要抓取其环境主体,因此需要提前扫描以找到所有 AMS 显示结构(如等)也是\end{split}如此。aligngather

请注意,任何合理的编辑器都会允许您输入\begin{equation}..\end{equation}两到三个键或一个菜单选项,因此定义缩写语法不会节省输入时间,并且很难或不可能在编辑器中获得上下文相关的语法着色或完成。

相关内容