Seite 1 von 1

Variablen zusammen rechnen

Verfasst: Fr 7. Mai 2021, 10:21
von M_Rohsoft

Hallo. Ich habe da eine kleine Frage und hoffe man kann mir helfen.
Ich habe einen Befehl für eine Bewertung zusammengestellt.

\newcommand{\bewertung}[2]{ \ensuremath
	{
		\newcount\step
		\step=5
		\loop
		\ifnum#1<\step
		\advance\step by -1
		\textcolor{black}{\large\bigcirc}
		\repeat
		\newcount\step
		\step=0
		\loop
		\ifnum\step<#1
		\advance\step by 1
		\textcolor{ForestGreen}{\large\CIRCLE}
		\repeat
		\newcount\step
		\step=0
		\loop
		\ifnum\step<#2
		\advance\step by 1
		\textcolor{red}{\large\CIRCLE}
		\repeat
	}
}

Nun möchte ich eine zweite Variable hinzufügen. Es sollen #1 und #2 zusammengerechnet werden und wenn kleiner als....
So in der Art...

		...
		\step=5
		\loop
		\ifnum#1+#2<\step
		\advance\step by -1
		...		

Aber irgendwie fehlt mir der richtige Weg.
Dankce schonmal im voraus


Re: Variablen zusammen rechnen

Verfasst: Fr 7. Mai 2021, 10:37
von Gastname ungültig

\ifnum wertet keine Ausdrücke aus, sondern vergleicht Zahlen (daher der Name der Anweisung). Eine Zahl endet für TeX bei allem, was bei der Expansion keine Ziffer ist, in dem Fall also bei +. Seit LaTeX e-TeX verwendet, können aber natürlich number expressions verwendet werden, also beispielsweise (in Ermangelung eines Minimalbeispiel ungetestet):

\ifnum\numexpr#1+#2\relax<\step

Näheres zu \numexpr etc. ist im e-TeX Manual zu finden.


Re: Variablen zusammen rechnen

Verfasst: Fr 7. Mai 2021, 11:19
von Grummelgast

Wenn mehr gerechnet werden soll als nur zwei Integer zusammen zu zählen, sollte man übrigens über die Verwendung eines auf Berechnungen spezialisierten Pakets nachdenken. Wenn man ohnehin bereits pgf verwendet, kann man auch dessen Mathefähigkeiten verwenden. Auch die Möglichkeiten von l3kernel sind oftmals mehr als ausreichend. Dort gibt es auch bereits passende Conditionals.


Re: Variablen zusammen rechnen

Verfasst: Mi 19. Mai 2021, 14:15
von M_Rohsoft

Dachte da keine besonderen Pakete oder dergleichen verwendet werden, reicht das. Aber ich gelobe Besserung und die Lösung war genau das was ich brauchte. Dankeschoen