无限深度列表

无限深度列表

我想创建一个命令集,允许我执行类似以下操作

\nestedlist{
  \listitem An item
  \sublist{
    \listitem A sub item
    \listitem Another sub item
  }
}

并得到

  1. 一个项目
    1.1 一个子项目
    1.2 另一个子项目

等等,但深度无限(也就是说,我希望能够\sublist递归使用,而不必事先指定允许多少个嵌套级别,或者必须编写额外的代码来允许另一个级别)。

我尝试使用一个计数器来跟踪当前深度,并使用每个嵌套级别一个计数器来跟踪数字。但是,当我尝试使用以下方法创建数字计数器时

\newcounter{n\arabic{depth}}

当我第二次到达嵌套层级时,我收到错误,因为计数器已经定义。有没有办法检查计数器是否已经定义,以及是否将其设置为零(或任何合适的数字)?

附注:是否已经有一些提供此功能的软件包?我的要求是嵌套深度不应有限制,并且在每个项目上,整个“面包屑”都应显示为项目符号。

答案1

paralistpackage 提供了 package 选项pointedenum(或者pointlessenum取决于您想要 1.1.1. 还是 1.1.1),使enumerate环境的行为完全按照这种方式进行。如果您只想在某些枚举上使用它,您可以定义(使用paralistloaded)

\newenvironment{myenum}%
{\pointedenum\begin{enumerate}}%
{\end{enumerate}}

同样的作用\pointlessenum

相关内容