Counter in newcommand expandieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Counter in newcommand expandieren

von Besserwisser » Di 26. Jan 2016, 08:30

godi hat geschrieben:Jedoch bräuchte ich in meinem Fall eine dynamische Anzahl an Zähler (sicher 50 oder mehr).
Das ist mit aktuellen LaTeX überhaupt kein Problem. Du kannst hunderte von Zähler anlegen.
godi hat geschrieben:Weiters wird der Wert nicht in meinem Dokument ausgegeben sondern in ein Textfile geschrieben, also muss ich sowieso den Zählwert irgendwie exportieren.
Du kannst per \write oder \protected@write problemlos \arabic{Zählername} in eine Datei schreiben.

von godi » Mo 25. Jan 2016, 22:45

Danke für eure Antworten und die Hinweise. Mein Vorhaben funktioniert nun.

Normalerweise würde ich den Zählerwert in einen Zähler speichern.
Jedoch bräuchte ich in meinem Fall eine dynamische Anzahl an Zähler (sicher 50 oder mehr). Weiters wird der Wert nicht in meinem Dokument ausgegeben sondern in ein Textfile geschrieben, also muss ich sowieso den Zählwert irgendwie exportieren. Somit fällt in diesem Fall das Speichern in einem Zähler weg.

von Besserwisser » Sa 23. Jan 2016, 16:39

\theZählername ist für das Speichern des Werts eines Zählers denkbar ungeeignet. Das kann ja auch gerne mal eine römische Zahl oder eine Zahl mit anschließendem Punkt oder etwas ganz anderes zurückgeben. Also besser \the\value{Zählername} verwenden. Das ist immer eine arabische Zahl. Am einfachsten speichert man aber einen Zählerwert in einem Zähler:
\newcounter{pagewas}
\setcounter{pagewas}{\value{page}}
…
\setcounter{page}{\value{pagewas}}

Re: Counter in newcommand expandieren

von rais » Sa 23. Jan 2016, 10:26

godi hat geschrieben: ich würde gerne den Wert eines Counters speichern und zu einem späteren Zeitpunkt ausgeben. Jedoch gelingt es mir nicht, den Counter zu expandieren, also den aktuellen Wert zu speichern.
Beim \edef wird zwar \themyCT expandiert, beim \g@addto@macro schreibst Du aber nur `\myCTVal ;' zu \counterNR hinzu, nicht dessen Inhalt...
\documentclass{scrartcl}


\newcounter{myCT}

\newcommand \counterNR{}
\makeatletter
\newcommand \addCounterNR{%
   \xdef\counterNR{\counterNR \themyCT ;}% Aktuellen Wert speichern
}
\makeatother

\begin{document}

\addCounterNR
\addtocounter{myCT}{3}
\addCounterNR
\stepcounter{myCT}
\addCounterNR

Teste Ausgabe:
\counterNR

\end{document}
(\xdef: \global\edef)

VG
Rainer

Counter in newcommand expandieren

von godi » Fr 22. Jan 2016, 22:07

Hallo,

ich würde gerne den Wert eines Counters speichern und zu einem späteren Zeitpunkt ausgeben. Jedoch gelingt es mir nicht, den Counter zu expandieren, also den aktuellen Wert zu speichern.

Ich habe schon einiges ausprobiert, bin aber noch nicht auf eine Lösung gekommen. Hier mal mein Beispiel:
\documentclass{scrartcl} 


\newcounter{myCT}

\newcommand \counterNR{}
\makeatletter
\newcommand \addCounterNR{
	\edef\myCTVal{\themyCT} % Hier sollte der aktuelle Wert des Zählers gelesen werden.
	\g@addto@macro\counterNR{\myCTVal ;} % Aktuellen Wert speichern
}
\makeatother

\begin{document}

\addCounterNR
\addtocounter{myCT}{3}
\addCounterNR
\stepcounter{myCT}
\addCounterNR

Teste Ausgabe:
\counterNR

\end{document}
Hat jemand eine Idee wie ich dies Lösen könnte?

godi

Nach oben