Ich verzweifele gerade mal wieder.
Ich bastele aktuell an einer eigene Umgebung für Multiple-Choice-Fragen. Den Antwortalternativen möchte ich eine 0 (für falsch) bzw. eine 1 (für richtig) voranstellen, also z.B. "0Wasser ist trocken" und "1Wasser ist nass".
Abhängig vom ersten Zeichen möchte ich dann in meiner Umgebung verzweigen, also z.B. in der Musterlösung bei 0 ein rotes Kästchen und bei 1 einen grünen Haken ausgeben.
Im Minimalbeispiel (unten) macht die erste \ifcase ... \fi - Struktur das, was ich möchte - da ist die 0 (bzw. 1) "hart" codiert.
Was ich aber brauche, ist die zweite \ifcase ... \fi - Struktur, welche per \StrLeft{...}{1} das linke Zeichen zurück gibt. Und das bringt einen Fehler.
Die xstring-Paketbeschreibung sagt dazu --- nullkommanichts ---.
Hilfe!!!
\documentclass[parskip=half]{scrartcl} \usepackage{xstring} \begin{document} \newcommand{\MCa}{0Diese erste Antwort a) ist falsch} \newcommand{\MCb}{1Diese zweite Antwort b) ist richtig} Falsch (0) / Wahr (1): \StrLeft{\MCa}{1} \\ % Ergibt korrekterweise 0 Falsch (0) / Wahr (1): \StrLeft{\MCb}{1} \\ % Ergibt korrekterweise 1 \ifcase 0 % Funktioniert für 0 bzw. 1 wie beabsichtigt FALSCH: \StrGobbleLeft{\MCa}{1} \or RICHTIG: \StrGobbleLeft{\MCa}{1} \fi \ifcase \StrLeft{\MCa}{1} % Ergibt einen Fehler =Missing number, treated as zero.= FALSCH: \StrGobbleLeft{\MCa}{1} \or RICHTIG: \StrGobbleLeft{\MCa}{1} \fi \end{document}
Gruß Rolli