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:
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:
Greife auf den Zähler zu, so wie er auf dem Bildschirm erscheint.
Setze den Zähler auf 0.
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.
Inkrementiere den Zähler um 1, zeige den Zähler auf dem Bildschirm und setze das aktuelle Label.
Um Anpassungen zu erleichtern, definiert
Dieses Makro transformiert den numerischen Wert des Zählers in denjenigen, der auf dem Bildschirm gezeigt wird.
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:
erzeugt eine neue Zählergruppe mit dem Namen g und gleichzeitig folgende Makros:
Diese Makros verhalten sich analog zu den oben beschriebenen
Makros
Neue Zähler können zur Gruppe zugefügt werden mit:
Damit wird ein neuer Zähler x
definiert und zur Gruppe g
hinzugefügt. Die Rolle der Makros
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:
Benutze einen gemeinsamen Zähler für die Zählergruppe. Dieser wird in der Kontextvariablen g-nr gespeichert.
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>