查找当前枚举深度的命令?

查找当前枚举深度的命令?

我想知道是否有命令可以查找编译时enum计数器的深度(即enumienumii等)是什么。我正在尝试创建一个\question命令。我目前拥有的:

\newcommand{\question}[2][\value{enumi}+1]{\setcounter{enumi}{#1-1} \item \textbf{#2}}

这对于第一级非常有用(注意:需要包calc)。我正在寻找一个命令(或一系列命令),用\value{enumi}+1当前深度替换,以便类似:

\begin{enumerate}
   \question{Whatever}
   \question[10]{Blah}
      \begin{enumerate}
         \question[2]{Stuff}
      \end{enumerate}
\end{enumerate}

将产生如下输出:

1. Whatever
10. Blah
   (b). Stuff

答案1

需要知道当前的深度enumerate才能修改相应的计数器;\@enumdepth保存当前枚举嵌套的深度:

\documentclass{article}
\usepackage{calc}

\makeatletter
\newcommand{\question}[2][\value{enum\romannumeral\@enumdepth}+1]{\setcounter{enum\romannumeral\@enumdepth
}{#1-1} \item \textbf{#2}}
\makeatother
\begin{document}

\begin{enumerate}
   \question{Whatever}
   \question[10]{Blah}
      \begin{enumerate}
         \question[2]{Stuff}
        \begin{enumerate}
           \question[6]{Other stuff}
        \end{enumerate}
      \end{enumerate}
\end{enumerate}

\end{document}

在此处输入图片描述

相关内容