编号方程包括标签中的枚举环境

编号方程包括标签中的枚举环境

我想要包括enumerate环境的数字方程;我的意思是

我想要类似的东西

节.子节.枚举.方程

这可能吗?

我正在使用那个代码

\counterwithin*{equation}{section}
\counterwithin*{equation}{subsection}
\counterwithin*{equation}{enumi}
\renewcommand\theequation{\ifnum\value{enumi}>0 \theenumi\else
                          \ifnum\value{subsection}>0 \thesubsection\else
                          \thesection\fi\fi.\arabic{equation}}

但它并不像我预期的那样有效。

答案1

enumerate我添加了一个条件,通过在你进入时设置开关来检查你是否在环境中\begin{enumerate}(感谢etoolbox\AtBeginEnvironment{enumerate})。然后使用此开关来条件添加\theenumi\theequation。其他条件检查您是否在\section或内\subsection,并相应地添加计数器表示:

在此处输入图片描述

\documentclass{article}

\usepackage{chngcntr,etoolbox}

\newif\ifinenumerate
\AtBeginEnvironment{enumerate}{\inenumeratetrue}

\counterwithin*{equation}{section}
\counterwithin*{equation}{subsection}
\counterwithin*{equation}{enumi}
\makeatletter
\renewcommand\theequation{%
  \ifnum\value{subsection}>0 \thesubsection.\else
  \ifnum\value{section}>0 \thesection.\fi\fi
  \ifinenumerate \theenumi.\fi
  \arabic{equation}}
\makeatother

% Just to show the equation number formatting
\newcommand{\printeqnum}[1]{%
  \setcounter{equation}{\numexpr#1-1}%
  \begin{equation}
    f(x) = ax^2 + bx + c
  \end{equation}}

\begin{document}

\section{A section}

\printeqnum{4}

\begin{enumerate}
  \item \printeqnum{7}
  \item \printeqnum{9}
\end{enumerate}


\subsection{A subsection}

\printeqnum{12}

\begin{enumerate}
  \item \printeqnum{15}
  \item \printeqnum{18}
\end{enumerate}

\end{document}

相关内容