TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

Ich möchte wenn \ifstr zutrifft einen Wert in einer Variable speichern.

Ich habe das versucht nur leider funktioniert es nicht.

Open in writeLaTeX
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{scrdate}
\usepackage{pgffor}

\newcommand\jahr{2016}
\begin{document}
\huge{Jahr: \jahr, \\ Neujahr: \DayName{\jahr}{1}{1}, erster Montag:}
\foreach \tag in {1,...,7}{%
    \ifstr{\DayName{\jahr}{1}{\tag}}
        {\DayNameByNumber{1}}
        {\tag.\,Januar~\jahr
        \newcommand[\firstmonday]{\tag.\,Januar~\jahr}}% HIER
    {}%
    Der erste Montag im Jahr \firstmonday.
}
\end{document}

gefragt 09 Jan '15, 15:25

micneu's gravatar image

micneu
2524
Akzeptiert-Rate: 0%

bearbeitet 09 Jan '15, 17:55

saputello's gravatar image

saputello
10.7k93763

Code markieren und <strg>+<k> drücken um Code zu markieren. Ich war anfangs auch von Markdown verwirrt. ;-)

(09 Jan '15, 15:37) Johannes

@micneu: Bitte beachte meinen Kommentar und meine Änderungen zu Deiner anderen Frage.

(09 Jan '15, 17:51) saputello
2
(10 Jan '15, 11:25) esdd

Neben mindestens einem Klammerfehler besteht eines der Probleme darin, dass die Definition von \firstmonday mit \newcommand in einer \foreach Schleife nicht global ist. Verwende statt dessen \xdef:

\documentclass{scrreprt}
%\providecommand*\Ifstr{\ifstr}% nötig bis einschließlich KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif
\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% nur bei veralteten TeX-Distributionen nötig
\usepackage[T1]{fontenc}

\usepackage{scrdate}
\usepackage{pgffor}
\newcommand\firstmonday{}% Kontrolle, dass \firstmonday noch nicht definiert

\newcommand\jahr{2016}

\begin{document}
{\raggedright
  {\huge 
    Jahr: \jahr,\par
    Neujahr: \DayName{\jahr}{1}{1},\par
    erster Montag:
      \foreach \tag in {1,...,7}{%
        \Ifstr{\DayName{\jahr}{1}{\tag}}{\DayNameByNumber{1}}{%
          \xdef\firstmonday{\tag.\,Januar~\jahr}\firstmonday\breakforeach%
        }{}%
      }\par
  }
  \bigskip
  Gespeichert ist der \firstmonday\par
}
\end{document}

alt text

Das gleiche Ergebnis erreichst Du übrigens auch, wenn Du in dem Vorschlag von @Ulrike ebenfalls \jahr definierst und die Berechnung entsprechend dem Kommentar von @saputello änderst:

\documentclass{scrreprt}
%\providecommand*\Ifstr{\ifstr}% nötig bis einschließlich KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif
\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% nur bei veralteten TeX-Distributionen nötig
\usepackage[T1]{fontenc}

\usepackage{scrdate}

\newcommand\jahr{2007}
\newcommand\erstermontag{%
  \the\numexpr\XmodY{8-\DayNumber{\jahr}{1}{1}}{7}+1\relax.\,Januar~\jahr}

\begin{document}
{\raggedright
  {\huge 
    Jahr: \jahr,\par
    Neujahr: \DayName{\jahr}{1}{1},\par
    erster Montag: \erstermontag
  \par}
  \bigskip
  Gespeichert ist der \erstermontag\par
}
\end{document}

alt text

Permanenter link

beantwortet 09 Jan '15, 16:05

esdd's gravatar image

esdd
15.3k134054
Akzeptiert-Rate: 62%

bearbeitet 16 Jan, 14:12

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×121
×26
×18
×5

gestellte Frage: 09 Jan '15, 15:25

Frage wurde gesehen: 5,761 Mal

zuletzt geändert: 10 Jan '15, 11:25