ConTeXt: Verweisen Sie auf den ersten und letzten Wert eines Zählers auf der aktuellen Seite

ConTeXt: Verweisen Sie auf den ersten und letzten Wert eines Zählers auf der aktuellen Seite

Ich suche nach einer Möglichkeit, den ersten und letzten Wert eines Zählers in der Kopfzeile anzuzeigen, wie inDasFrage,aber für ConTeXt.

Wenn wir uns bei einem Seitenumbruch mitten in einem Problem befinden, könnte ich damit leben, dass sich die Referenznummer entweder auf die vor der aktuellen Seite beginnende oder auf die erste neue auf der aktuellen Seite bezieht.

Wenn es auf der Seite nur ein Problem gibt, würde ich Problem X statt Problem XX bevorzugen.

FrageGibt es eine (einfache) Möglichkeit, dies in ConTeXT zu tun?

Mein Versuch:

ich fanddiese Frage, was mein Problem zu lösen scheint, aber ich habe einen Zähler und keine Markierung mit meiner Aufzählung. Mit dem naiven

\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

Ich erhalte die folgende, unerwünschte Ausgabe (ich würde erwarten, dass die linke Seite die Überschrift „Problem 1–2“ und die rechte Seite „Problem 3–4“ hat):

Bild mit noch problematischem Ergebnis

Vielleicht könnte man die Frage folgendermaßen umformulieren:

FrageGibt es eine Möglichkeit, automatisch eine Markierung zu verbinden, die ich mit dem Aufzählungszähler verwenden kann, um das zu erhalten, wonach ich suche?

Antwort1

Um die Werte der Aufzählungen im Header anzuzeigen, müssen Sie markmit dem Befehl ein neues Register erstellen \definemarking.

Um den Wert des Zählers zu speichern, muss man den \markingBefehl verwenden und den Zählerwert als Argument übergeben. Diese Zuweisung kann man in den numbercommandSchlüssel einhängen.

\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

Bildbeschreibung hier eingeben

verwandte Informationen