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

введите описание изображения здесь

Связанный контент