Zähler und Zählergruppen

TeXmacs benutzt zum automatischen Nummerieren von Abschnitten, Sätzen usw. Zähler „counter”. Solche Zähler können individuelle Zähler sein wie z.B. equation-nr oder zu einer Gruppe ähnlicher Zähler gehören wie etwa theorem-nr. TeXmacs erlaubt die Anpassung von Zählern auf individueller oder auf Gruppenbasis. Man kann die Darstellung des Zählers ändern, diesen beispielsweise mit römischen Zahlen ausgeben, oder man kann spezielle Aktionen durchführen, dem Zähler z.B. erhöhen oder einen Unterzähler neu initialisieren.

Neue individuelle Zähler können mit dem folgenden Makro definiert werden:

<new-counter|x>

definiert einen neuen Zähler mit dem Namen x. Der Zähler wird in dem numerischen Kontext x-nr gespeichert. Gleichzeitig werden die folgenden Makros erzeugt:

<the-x>

Greife auf den Zähler zu, so wie er auf dem Bildschirm erscheint.

<reset-x>

Setze den Zähler auf 0.

<inc-x>

Inkrementiere den Zähler um 1. Dieses Makro kann so geändert werden, dass es auch andere Zähler inkrementiert, auch wenn das so in den Standard-Stil-Definitionen nicht gemacht wird.

<next-x>

Inkrementiere den Zähler um 1, zeige den Zähler auf dem Bildschirm und setze das aktuelle Label.

Um Anpassungen zu erleichtern, definiert new-counter zusätzlich die folgenden beiden Makros:

<display-x|nr>

Dieses Makro transformiert den numerischen Wert des Zählers in denjenigen, der auf dem Bildschirm gezeigt wird.

<counter-x|x>

Dieses interne Makro gibt den Namen desjenigen Kontexts zurück, dem der Zähler angehört. Normalerweise ist dies „nr-x”, es kann aber auch umdefiniert worden sein, wenn der Zähler zu einer Gruppe gehört.

Wie bereits gesagt benutzt TeXmacs Zählergruppen, um ähnliche Zähler auf ähnliche Weise zu behandeln. Z.B. gehören zu Zählergruppe theorem-env die Zähler theorem, proposition, lemma, usw.. Man definiert neue Zählergruppen werden mit:

<new-counter-group|g>

erzeugt eine neue Zählergruppe mit dem Namen g und gleichzeitig folgende Makros:

<display-in-g|x|nr>

<counter-in-g|x>

Diese Makros verhalten sich analog zu den oben beschriebenen Makros display-x und counter-x jedoch für Zähler der Gruppe g. Sie übernehmen als Argument den Namen x des Zählers.

Neue Zähler können zur Gruppe zugefügt werden mit:

<add-to-counter-group|x|g>

Damit wird ein neuer Zähler x definiert und zur Gruppe g hinzugefügt. Die Rolle der Makros display-x und counter-x wird bei Gruppen von den Makros display-in-g und counter-in-g übernommen. Zusätzlich werden aber zwei weitere Makros definiert ind-display-x und ind-counter-x, die die Rolle von display-x und counter-x in denjenigen Fällen übernimmt, in denen die Gruppe aus individuellen Zählern besteht.

Jederzeit kann man entscheiden, ob die Zähler einer Gruppe einen gemeinsamen Gruppenzähler oder sie individuelle Zähler benutzt. Dies wird z.B. gebraucht, wenn man zwischen dem Amerikanischen Nummerierungsstil und dem europäischen wechselt:

<group-common-counter|g>

Benutze einen gemeinsamen Zähler für die Zählergruppe. Dieser wird in der Kontextvariablen g-nr gespeichert.

<group-individual-counters|g>

Benutze einen individuellen Zähler für jedes Gruppenmitglied. Das ist die Vorgabe.

Es sei darauf hingewiesen, dass Gruppenzähler rekursiv zu Obergruppen gehören können. Das zeigen z.B. die folgenden Ausdrücke aus env-base.ts:

<document|<new-counter-group|std-env>>

<new-counter-group|theorem-env>

<add-to-counter-group|theorem-env|std-env>

<group-common-counter|theorem-env>

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".