确定一行是否位于 itemize 或 enumerate 环境内

确定一行是否位于 itemize 或 enumerate 环境内

我希望能够分辨出一条线是在里面\begin{itemize} ... \end{itemize}还是在外面\begin{enumerate} ... \end{enumerate}。我对此的需求源于增加最外层 \begin 的计数器。

答案1

像这样吗?

\documentclass{article}
\usepackage{enumitem}
\newcounter{mycounter}
\newif\ifinside
\setlist[itemize,enumerate,1]{before*={\ifinside\relax\else\stepcounter{mycounter}\insidetrue\fi},after*={\insidefalse}}
\begin{document}
\begin{enumerate}
  \item one
  \item two
  \begin{enumerate}
    \item three
    \item four
    \begin{itemize}
      \item thing
      \item thing
    \end{itemize}
  \end{enumerate}
\end{enumerate}
\themycounter
\begin{itemize}
  \item thing
  \item thing
  \item thing
  \begin{enumerate}
    \item one
    \item two
    \begin{itemize}
      \item thing
      \begin{enumerate}
        \item three
        \item four
      \end{enumerate}
    \end{itemize}
  \end{enumerate}
\end{itemize}
\themycounter
\end{document}

计算外部列表

相关内容