
Я ищу способ показать первое и последнее значение счетчика в заголовке, как вэтотвопрос,но для 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