使用 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]
不起作用)。