在 LaTeX 中\listoftables
,我们有\listoffigures
、等等(至少据我记得这是名字)。
在 ConTeXt 中是否有类似的东西可以实现?
我最初的想法是定义一个用于表格的寄存器、一个用于图形的寄存器和一个用于我需要的其他浮点类型的寄存器,并将其与每个\placetable
、\placefigure
、一起使用\placeSOMETHING
,并在附录中放置一个对应的寄存器\completeregister
,但将寄存器与每个寄存器一起使用\place…
很容易忘记。而且顺序也可能是错误的,因为我想按出现顺序排列相应列表中的浮点数,而不是按“名称”或“标签”或其他顺序。
答案1
在上下文中,所有命令都来自
\definefloat
接收自己的列表,其行为就像由创建的普通列表一样\definelist
。例如,对于浮动物体,foo
相应的设置将是\setuplist[foo]
。为了输出文档中的列表,请使用\placelist[foo]
或\placelistoffoo
。
\useMPlibrary [dum]
\definefloat [foo]
\setuplist [foo] [style=italic]
\starttext
\placelistoffoo \page
\dorecurse {10} {
\startplacefoo [title=Some Foo Float]
\externalfigure [dummy] [width=42mm]
\stopplacefoo
}
\stoptext
另一个命令\completelistoffoo
,
自动插入\title
以列表名称开头的标题 。
由于\placefigure
和\placetable
是使用相同机制派生的,因此它们也各自带有一个预定义的列表:
\setupexternalfigures [location=default]
\setuplist [figure] [style=slanted]
\starttext
\placelist[figure]
\dorecurse{4}{
\startsection [title=Some Section]
\input knuth \endgraf
\startplacefigure [title=A Dutch Cow]
\externalfigure [cow] [width=4.2cm]
\stopplacefigure
\input ward \endgraf
\stopsection
}
\stoptext