仅具有同一列表类型的重复数字的枚举

仅具有同一列表类型的重复数字的枚举

使用 ConTeXt 我尝试生成如下所示的嵌套枚举:

1  Level 1
   1.1 Level 2
       1.1.1 Level 3
             a) Level 3 subitem
             b) Level 3 subitem

我有以下内容:

\defineitemgroup[legal]
\setuplegal[each][n,repeat,joinedup][stopper=]

\setuplegal[1][width=1em]
\setuplegal[2][width=2em]
\setuplegal[3][width=3em]

\starttext

\startlegal
  \item Level 1
  \startlegal
    \item Level 2
    \startlegal
      \item Level 3
      \startitemize[a,joinedup][stopper=)]
        \item Level 3 subitem
        \item Level 3 subitem
      \stopitemize
    \stoplegal
  \stoplegal
\stoplegal

\stoptext

然而,这会产生:

列表

有没有办法配置合法项目化,以便其他类型(例如字母或罗马)的枚举不受影响?不确定这是否相关,但其他类型的枚举可以出现在任何级别,而不仅仅是如上所示的第 3 级。

答案1

正如我在评论中所说,这是一个错误。我已在上下文邮件列表中提交了一份错误报告。同时,如果您需要正确的输出,请legal在第四级使用 as itemize:

\defineitemgroup[legal]
\setuplegal[each][n,repeat,joinedup][stopper=]

\setuplegal[1][width=1em]
\setuplegal[2][width=2em]
\setuplegal[3][width=3em]

\starttext

\startlegal
  \item Level 1
  \startlegal
    \item Level 2
    \startlegal[norepeat]
      \item Level 3
      \startlegal[a,joinedup][stopper=)]
        \item Level 3 subitem
        \item Level 3 subitem
      \stoplegal
    \stoplegal
  \stoplegal
\stoplegal

\stoptext

这使

在此处输入图片描述

答案2

因为我只需要重复合法的数字(以便其他项目不以合法的数字作为前缀),所以我做了一些有点肮脏的事情:

\def\legalconversion#1{
  \dorecurse{\numexpr\currentitemlevel-1}{%
    \rawcounter[itemgroup:\currentparentitemgroup][\recurselevel].}%
  #1%
}

\defineconversion[legal][\legalconversion]

\setupitemgroup[itemize][joinedup]
\setupitemgroup[itemize][stopper=,itemalign=flushright,distance=1em]

\starttext

\startitemize[legal]
  \item Level 1
  \startitemize[legal]
    \item Level 2
    \startitemize[legal]
      \item Level 3
      \startitemize[a][stopper=)]
        \item Level 3 subitem
        \item Level 3 subitem
      \stopitemize
    \stopitemize
  \stopitemize
\stopitemize

\stoptext

这将产生以下内容:

结果

不管其他类型的项目处于什么级别,这都会起作用,但是,如果没有进一步的肮脏,这仅当顶级项目为时才起作用legal,并且只有在相邻子级别也为时才起作用legal(例如,\startitemize[legal]\startitemize[a]\startitemize[legal]不起作用)。

相关内容