Abfrage nach "leerem String" mit unklarem Ergebnis
Verfasst: Do 3. Feb 2011, 15:51
Hallo, in einem Makro möchte ich prüfen, ob ein String, der als Argument übergeben wird, leer ist oder nicht. Nach vielen Versuchen habe ich festgestellt, dass \ifstr immer richtig arbeitet, aber \ifx nur teilweise das erwartete Ergebnis liefert. Hier der Beispielcode:
Das Ergebnis bei ifx:
PS. Die Forumssuche nach "leere Zeichenkette" u.ä. hat mir keine erkennbaren Ergebnisse gebracht, oder ich habe die Hinweise übersehen.
\documentclass[paper=b5]{scrbook} \begin{document} \newcommand{\myif}[1] { \def\val{#1} \newcommand{\cmd}{#1} **** ifx **** \\ \#1 \ifx#1\empty leer \else voll \fi \\ val \ifx\val\empty leer \else voll \fi \\ cmd \ifx\cmd\empty leer \else voll \fi \\ **** ifstr **** \\ \#1 \ifstr{#1}{}{leer}{voll} \\ val \ifstr{\val}{}{leer}{voll} \\ cmd \ifstr{\cmd}{}{leer}{voll} \\ } \myif{} \end{document}
Kann mir jemand kurz erklären (oder einen Link auf eine solche Erklärung geben), warum ifx bei #1 und newcommand das leere Argument als nicht-leer interpretiert? Danke! Jürgen**** ifx ****
#1 voll
val leer
cmd voll
PS. Die Forumssuche nach "leere Zeichenkette" u.ä. hat mir keine erkennbaren Ergebnisse gebracht, oder ich habe die Hinweise übersehen.