我寻找一种方法来在标题中显示计数器的第一个和最后一个值,例如这问题,但对于 ConTeXt。
如果我们在分页符处遇到问题,我可以使用参考编号作为当前页面之前开始的参考编号,或者当前页面上第一个新参考编号。
如果页面上只有一个问题,我会更喜欢问题 X,而不是问题 XX。
问题在 ConTeXT 中是否有一种(简单的)方法可以做到这一点?
我的尝试:
我发现这个问题,这看起来可以解决我的问题,但我有一个计数器,而不是枚举标记。使用天真的
\setuppapersize[A6][A5,landscape]
\setuparranging[2SIDE]
\setupheadertexts[{Problem \getnumber[problem][first]--\getnumber[problem][last]}]
\defineenumeration[problem][
text=Problem,
]
\starttext
\dorecurse{4}{\startproblem[problem:\recurselevel]
\samplefile{ward} We are now in problem
\in[problem:\recurselevel]\stopproblem}
\stoptext
我得到了以下不想要的输出(我期望左页有标题“问题 1-2”,右页有“问题 3-4”):
或许这个问题可以改写为:
问题有没有办法自动连接标记与枚举计数器以获得我想要的东西?
答案1
要显示标题栏中枚举的值,您必须mark
使用命令创建一个新的寄存器\definemarking
。
要保存计数器的值,您必须使用命令\marking
并将计数器值作为参数传递。您可以将此任务挂接到numbercommand
键中。
\setuppapersize [A5]
\definemarking [problem]
\setupheadertexts
[{Problem \getmarking[problem][top]–\getmarking[problem][bottom]}]
\defineenumeration
[problem]
[text=Problem,
numbercommand=\groupedcommand{}{\expanded{\marking[problem]{\rawcountervalue[problem]}}}]
\starttext
\dorecurse{10}
{\startproblem
\samplefile{weisman}
\stopproblem}
\stoptext