Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Vergleich von zwei strings mit ifthenelse

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.06.2007
    Beiträge
    21

    Vergleich von zwei strings mit ifthenelse

    Hallo allerseits,

    ich versuche, zwei strings mittels ifthenelse miteinander zu vergleichen. Leider entsteht bei der expansion der Variable, in der der eine string steht, ein Fehler, den ich nicht nachvollziehen kann. Hier mein Minimalbeispiel:

    Code:
    \documentclass{article}
    \usepackage{xifthen}
    \usepackage{datetime}
    \usepackage{pgf}
    
    \def\year{1906}
    \def\xmasday{\dayofweekname{24}{12}{\year}}
    
    
    \begin{document}
    
    \ifthenelse{\equal{\xmasday}{Monday}}{\pgfmathsetmacro{\FirstSunday}{27}}{}
    
    Christmas Day is \xmasday.
    
    \end{document}
    Als Fehlermeldung bekomme ich
    ! Incomplete \iffalse; all text was ignored after line x.
    Ersetzte ich
    Code:
    \def\xmasday{\dayofweekname{24}{12}{\year}}
    durch
    Code:
    \def\xmasday{Monday}
    funktioniert es.

    Bin für jede Idee dankbar!

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    \dayofweekname ist nicht voll expandierbar. Daher kann der Vergleich nicht funktionieren.

  3. #3
    Registrierter Benutzer
    Registriert seit
    13.06.2007
    Beiträge
    21
    Danke für die Erklärung! Die Fehlermeldung hat ja schon sowas angedeutet Hast Du auch eine Idee für eine Variante, die funktioniert?

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Probier mal:
    Code:
    \documentclass{article}
    \usepackage{scrdate}
    \usepackage{pgf}
    
    \def\year{1906}
    \def\xmasday{\DayName{\year}{12}{24}}
    
    
    \begin{document}
    
    \ifnum \DayNumber{\year}{12}{24}=1 % 1 = Montag, siehe KOMA-Script-Anleitung
      \pgfmathsetmacro{\FirstSunday}{27}
    \fi
    Christmas Day is \xmasday.
    
    \end{document}

  5. #5
    Registrierter Benutzer
    Registriert seit
    13.06.2007
    Beiträge
    21
    Läuft, vielen Dank
    Aber: \DayName behauptet, der 24.12.1906 wäre ein Dienstag gewesen. \dayofweekname und Tante google sagen beide, es war ein Montag ??? Was gibt dein Code denn bei dir zurück?

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Nun, da auch beim 24.12.2014 der falsche Wochentag rauskommt (und da brauche ich kein Google), ist es wohl ein Bug und du solltest mal Markus Kohm anschreiben. Wenn du übrigens eine Sprache lädst (\usepackage[ngerman]{babel}), passt es wieder, das heißt nur die Defaultdefinition vertut sich.

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Interessanter Weise gibt \DayNumber die richtige Nummer, nämlich 1 zurück. \DayName oder auch \DayNameByNumber macht daraus aber einen Dienstag. Für heute wird ebenfalls ein Freitag gemeldet. Sieht mir nach einem Bug bei der Umwandlung von Zahl in String aus …

    Bis dahin vielleicht:
    Code:
    \documentclass{article}
    \usepackage{scrdate}
    \usepackage{pgf}
    \usepackage[english]{babel}
    
    \def\year{1906}  
    \def\xmasday{\DayName{\year}{12}{24}}%
    
    \begin{document}
    
    \ifnum \DayNumber{\year}{12}{24}=1 % 1 = Montag, siehe KOMA-Script-Anleitung
      \pgfmathsetmacro{\FirstSunday}{27}
    \fi
    Christmas Day is \xmasday.
    
    \end{document}
    Geändert von klops (11-12-2014 um 14:48 Uhr) Grund: Ulrikes Lösung mit dem Laden von babel ist deutlich besser

  8. #8
    Registrierter Benutzer
    Registriert seit
    13.06.2007
    Beiträge
    21
    Ist alles genau so, wie ihr sagt! Vielen Dank für Eure Hilfe. Ich werde erstmal einfach eine Sprache laden und mir einen Kommentar ranmachen

  9. #9
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Siehe Bekannte Probleme und Änderungen in KOMA-Script 3.14. In der nächsten KOMA-Script Version dürfte das also behoben sein.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •