Seite 1 von 1

Problem mit equal

Verfasst: So 26. Okt 2014, 06:02
von Walter
Hallo Forum,

ich habe schon etwas gesucht, und wie es aussieht, liegt es an der Expandiebarkeit, bzw Nicht-Expandierbarkeit, der Koma-Variablen, dass folgendes Beispiel nicht richtig funktioniert. Habt ihr eine Alternative für mich?
\documentclass{scrlttr2}
\usepackage{ifthen}
\newkomavar[WerBinIch]{WerBinIch}
\setkomavar{WerBinIch}{Alice}
\begin{document}
\begin{letter}
Ich bin \usekomavar{WerBinIch}.
\ifthenelse{\equal{\usekomavar{WerBinIch}}{alice}}{Hallo Bob.}{Hallo Alice.}
\end{letter}
\end{document}

Verfasst: So 26. Okt 2014, 10:11
von Besserwisser
\documentclass{scrlttr2}
\usepackage{ifthen}
\newkomavar[WerBinIch]{WerBinIch}
\setkomavar{WerBinIch}{Alice}
\begin{document}
\begin{letter}{Hier fehlte die Adresse}
Ich bin \usekomavar{WerBinIch}.
\usekomavar[\edef\testvar]{WerBinIch}
\ifthenelse{\equal{\testvar}{Alice}}{Hallo Bob.}{Hallo Alice.}
\end{letter}
\end{document}
Es gibt hier übrigens gleich zwei Probleme. Nicht nur, dass \usekomavar nicht voll expandierbar ist, auch der Test von \ifthenelse ist sehr fragil, daher funktioniert das naheliegende
\ifthenelse{\usekomavar[\equal]{WerBinIch}{Alice}}{Hallo Bob.}{Hallo Alice.}
nicht.

Verfasst: So 26. Okt 2014, 11:39
von Walter
Vielen Dank!