ConTeXt:引用当前页面中计数器的第一个和最后一个值

ConTeXt:引用当前页面中计数器的第一个和最后一个值

我寻找一种方法来在标题中显示计数器的第一个和最后一个值,例如问题,但对于 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

在此处输入图片描述

相关内容