So wie ich es verstehe, sollte ein Zähler automatisch hochzählen. Wenn ich jedoch versuche, einen zu verwenden, erhalte ich nur Nullen. Hier ist ein MWE.
\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{mcounter}
\begin{document}
\themcounter \lipsum[1]
\themcounter \lipsum[2]
\themcounter \lipsum[3]
\end{document}
Ehrlich gesagt versuche ich, einen Seitenzähler in der Mitte einer Liste mit Unterrichtsplänen zu erstellen. Die Liste sieht ungefähr so aus: „Tag 1: Arbeitsblätter Nr. 1, Nr. 2 und Notizen. Tag 2: Arbeitsblätter Nr. 3, Notizen und Arbeitsblatt Nr. 4“. Wenn ich ein Arbeitsblatt hinzufüge (oder eines entferne), möchte ich nicht alles in der Liste für diesen Tag und alle folgenden Tage neu nummerieren.
Irgendwelche Vorschläge, was ich falsch mache? Ich verwende LauLaTeX auf Texmaker auf einem Win 10-PC.
Antwort1
Sie schrieben,
So wie ich das verstehe, soll ein Zähler automatisch hochzählen.
Das ist nicht richtig. Wenn Sie einen Zähler erstellen, aber nie etwas damit machen, außer seinen Wert anzuzeigen (etwa über \themcounter
), bleibt der Wert des Zählers 0
im gesamten Dokument auf seinem Anfangswert (normalerweise ).
In LaTeX kann der Wert eines Zählers mit den Befehlen \setcounter
, \addtocounter
, \stepcounter
, und geändert werden \refstepcounter
. \setcounter
und \addtocounter
nehmen zwei Argumente entgegen: den Namen des Zählers und eine ganze Zahl. \stepcounter
und \refstepcounter
erhöhen den Wert des Zählers um 1
, und sie nehmen nur ein Argument entgegen – den Namen des Zählers, dessen Wert erhöht werden soll.
Wenn Sie ein LaTeX-Makro erstellen möchten, das (a) den Zähler mit dem Namen erhöht mycounter
und 1
(b) den neu erhöhten Wert von anzeigt mycounter
, können Sie dies auf verschiedene Weise tun. Beispielsweise können Sie nach dem Erstellen des Zählers mit
\newcounter{mycounter}
Sie können eine der folgenden drei Definitionen von verwenden \showmycounter
:
\newcommand\showmycounter{\addtocounter{mycounter}{1}\themycounter}
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}
\newcommand\showmycounter{\refstepcounter{mycounter}\themycounter}
Standardmäßig erzeugen die Anweisungen \themycounter
und \arabic{mycounter}
dieselbe Ausgabe, d. h., standardmäßig werden arabische Ziffern verwendet, um den Wert eines Zählers anzuzeigen. Wenn Sie den Wert des Zählers beispielsweise als römische Großzahl anzeigen möchten, müssen Sie entweder die obigen Anweisungen neu definieren \themycounter
(über \renewcommand\themycounter{\Roman{mycounter}}
) oder ändern \newcommand
, z. B.:
\newcommand\showmycounter{\stepcounter{mycounter}\Roman{mycounter}}
DerWerteines Zählers kann jede beliebige ganze Zahl sein, einschließlich 0
negativer ganzer Zahlen. Es ist nicht überraschend, dass bei einem nicht positiven Wert der mycounter
Versuch, den Wert als alphabetisches Zeichen oder römische Zahl darzustellen, eine Fehlermeldung erzeugt.
Ein MWE (Minimum Working Example), das auf diesen Ideen aufbaut:
\documentclass{article}
\newcounter{mycounter} % create a new counter, called 'mycounter'
% default def'n of '\themycounter' is '\arabic{mycounter}'
%% command to increment 'mycounter' by 1 and to display its value:
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}
\usepackage{lipsum}
\newcommand\showlips{\stepcounter{mycounter}\lipsum[\value{mycounter}]}
\begin{document}
\showmycounter, \showmycounter, \showmycounter
\showlips
% verifying that the preceding command used '4':
\lipsum[4]
\end{document}