在自定义对齐环境中增加每行的计数器

在自定义对齐环境中增加每行的计数器

在自定义对齐环境中,增加计数器的好方法是什么?我定义了regalign下面的环境,但为了让计数器随着每一行增加,我必须定义一个新命令 ( \regline) 来添加新行并更改计数器。这基本上没问题,但似乎是一个糟糕的选择,因为语法与类似环境不同(使得读取和编写代码变得困难),并且编辑器突出显示会将第一行之后的对齐字符(例如 in &)标记z &= xy^2为错误。

\documentclass{article}
\usepackage{amsmath}

% Set the counter for the regression environment
\newcounter{regcounter}
% Define the regression environment
\newenvironment{regalign}{%
    \addtocounter{equation}{-1}
    \stepcounter{regcounter}
    \renewcommand\theequation{Regression \theregcounter}
    \align
    }{
    \endalign
    }
% Define a command for new lines that advances the counter
\newcommand{\regline}{\\[1em] \stepcounter{regcounter}}

\begin{document}
    \begin{regalign}
        x & = y \regline
        z &= xy^2
    \end{regalign}
\end{document}

答案1

我建议采用类似于amsmath的方法subequations:使用计数器存储的当前值equation,然后重新定义它以使用所需的格式。

\documentclass{article}
\usepackage{amsmath}

\newcounter{tempcounter}
% Define the regression environment
\newcounter{regcounter}
\newenvironment{regalign}
 {%
  \setcounter{tempcounter}{\value{equation}}%
  \setcounter{equation}{\value{regcounter}}%
  \def\theequation{Regression \arabic{equation}}%
  \align
 }
 {%
  \endalign
  \setcounter{equation}{\value{tempcounter}}%
  \setcounter{regcounter}{\value{equation}}%
  \stepcounter{regcounter}
 }

\begin{document}

\begin{equation}
1=1
\end{equation}

\begin{regalign}
x & = y \\
z &= xy^2
\end{regalign}

\begin{equation}
1=1
\end{equation}


\begin{regalign}
x & = y \\
z &= xy^2
\end{regalign}

\begin{equation}
1=1
\end{equation}

\end{document}

环境equation是为了表明主方程计数器不受regalign其间环境的影响。

在此处输入图片描述

相关内容