我想知道是否有命令可以查找编译时enum
计数器的深度(即enumi
、enumii
等)是什么。我正在尝试创建一个\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}