ConTeXt: 現在のページのカウンターの最初と最後の値を参照します

ConTeXt: 現在のページのカウンターの最初と最後の値を参照します

ヘッダーにカウンターの最初と最後の値を表示する方法を探しています。これ質問、しかしConTeXtの場合

ページ区切りで問題が発生している場合は、参照番号を現在のページの前のページから始まる番号にするか、現在のページの最初の新しい番号にするかを選択できます。

ページに問題が 1 つしかない場合は、問題 XX ではなく問題 X を優先します。

質問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

ここに画像の説明を入力してください

関連情報