Babba_Blubb
30-06-2012, 19:59
Nabend zusammen,
nachdem ich fast den ganzen Tag mit meinem ehr bescheidenen LaTeX-Wissen das Internet erfolglos nach einer Lösung für mein Problem durchsucht habe und nichts finden konnte hoffe ich, dass mir hier weitergeholfen werden kann.
Das Problem lässt sich etwas blöd beschreiben. Ich hab mich bemüht ein einfaches Beispiel zusammenzustellen, welches zwar für sich alleine nicht besonders sinnig ist, aber den Kern meines Problems darstellt. Der Kern ist, dass ich innerhalb des Dokumentes an verschiedenen stellen neue Zähler mit variablem Namen erstelle und den Wert dieser Zähler am Ende des Dokumentes über ein \AtEndDocument ausgebe. Hier mal der Quelltext:
\documentclass{article}
\begin{document}
\newcounter{printingCounterNumber}
\newcommand{\newPrintingCounter}{
\stepcounter{printingCounterNumber}
\newcounter{ctr\arabic{printingCounterNumber}}
\setcounter{ctr\arabic{printingCounterNumber}}{\va lue{printingCounterNumber}}
ctr\arabic{printingCounterNumber}: \arabic{ctr\arabic{printingCounterNumber}}\par
\AtEndDocument{
ctr\arabic{printingCounterNumber}: \arabic{ctr\arabic{printingCounterNumber}}\par
}
}
\newPrintingCounter
\newPrintingCounter
\newPrintingCounter
\end{document}
Das Kommando \newPrintingCounter dient der Erzeugung eines neuen Zählers. Damit sich die Namen dieser Zähler nicht überschneiden habe ich einen weiteren Zähler (printingCounterNumber), dessen Wert ich immer eins hochzähle und dann als Zahl mit in den Namen des neuen Zählers verbaue. Das funktioniert soweit auch ganz gut. Ich weise im obigen Beispiel dem Zähler ctr1 den Wert 1 zu, dem Zähler ctr2 den Wert 2 und so weiter. Wenn ich den Wert des neuen Zählers dann direkt ausgebe (also die Zeile vor \AtEndDocument), dann wird auch alles richtig ausgegeben.
Jetzt will ich den Wert des neu erzeugten Zählers aber auch am Ende des Dokumentes ausgeben. Dazu hab ich mir gedacht, mach ich ein \AtEndDocument und verwende zur Ausgabe die gleiche Zeile wie über dem \AtEndDocument. Hätte jetzt gedacht, dass dann am Ende die gleiche Ausgabe kommt. Allerdings kommt am Ende drei mal ein "crt3: 3".
Also erwartet hätte ich die Ausgabe
crt1: 1 ctr2: 2 crt3: 3
crt1: 1 ctr2: 2 crt3: 3
raus kommt allerdings
crt1: 1 ctr2: 2 crt3: 3
crt3: 3 ctr3: 3 crt3: 3
Hat jemand eine Idee wie ich es schaffen kann, dass über \AtEndDocument der Wert der drei unterschiedlichen Zähler ausgegeben wird und nicht drei mal der Wert des dritten Zählers? Wäre echt super, ich bin hier am Verzweifeln.
nachdem ich fast den ganzen Tag mit meinem ehr bescheidenen LaTeX-Wissen das Internet erfolglos nach einer Lösung für mein Problem durchsucht habe und nichts finden konnte hoffe ich, dass mir hier weitergeholfen werden kann.
Das Problem lässt sich etwas blöd beschreiben. Ich hab mich bemüht ein einfaches Beispiel zusammenzustellen, welches zwar für sich alleine nicht besonders sinnig ist, aber den Kern meines Problems darstellt. Der Kern ist, dass ich innerhalb des Dokumentes an verschiedenen stellen neue Zähler mit variablem Namen erstelle und den Wert dieser Zähler am Ende des Dokumentes über ein \AtEndDocument ausgebe. Hier mal der Quelltext:
\documentclass{article}
\begin{document}
\newcounter{printingCounterNumber}
\newcommand{\newPrintingCounter}{
\stepcounter{printingCounterNumber}
\newcounter{ctr\arabic{printingCounterNumber}}
\setcounter{ctr\arabic{printingCounterNumber}}{\va lue{printingCounterNumber}}
ctr\arabic{printingCounterNumber}: \arabic{ctr\arabic{printingCounterNumber}}\par
\AtEndDocument{
ctr\arabic{printingCounterNumber}: \arabic{ctr\arabic{printingCounterNumber}}\par
}
}
\newPrintingCounter
\newPrintingCounter
\newPrintingCounter
\end{document}
Das Kommando \newPrintingCounter dient der Erzeugung eines neuen Zählers. Damit sich die Namen dieser Zähler nicht überschneiden habe ich einen weiteren Zähler (printingCounterNumber), dessen Wert ich immer eins hochzähle und dann als Zahl mit in den Namen des neuen Zählers verbaue. Das funktioniert soweit auch ganz gut. Ich weise im obigen Beispiel dem Zähler ctr1 den Wert 1 zu, dem Zähler ctr2 den Wert 2 und so weiter. Wenn ich den Wert des neuen Zählers dann direkt ausgebe (also die Zeile vor \AtEndDocument), dann wird auch alles richtig ausgegeben.
Jetzt will ich den Wert des neu erzeugten Zählers aber auch am Ende des Dokumentes ausgeben. Dazu hab ich mir gedacht, mach ich ein \AtEndDocument und verwende zur Ausgabe die gleiche Zeile wie über dem \AtEndDocument. Hätte jetzt gedacht, dass dann am Ende die gleiche Ausgabe kommt. Allerdings kommt am Ende drei mal ein "crt3: 3".
Also erwartet hätte ich die Ausgabe
crt1: 1 ctr2: 2 crt3: 3
crt1: 1 ctr2: 2 crt3: 3
raus kommt allerdings
crt1: 1 ctr2: 2 crt3: 3
crt3: 3 ctr3: 3 crt3: 3
Hat jemand eine Idee wie ich es schaffen kann, dass über \AtEndDocument der Wert der drei unterschiedlichen Zähler ausgegeben wird und nicht drei mal der Wert des dritten Zählers? Wäre echt super, ich bin hier am Verzweifeln.