Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 7
kleines Update: \Ifstr ersetzt \ifstr ab KOMA-Script Version 3.28

16 Jan '20, 14:12

esdd's gravatar image

esdd
17.8k304257

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} %\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}}{% \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][1] Das gleiche Ergebnis erreichst Du übrigens auch, wenn Du in dem [Vorschlag von @Ulrike][2] 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} %\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][3] [1]: http://texwelt.de/wissen/upfiles/2016_2.png [2]: http://texwelt.de/wissen/fragen/10957/erste-montag-im-jahr-mit-scrdate-ermitteln/10959 [3]: http://texwelt.de/wissen/upfiles/2007.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6
Typfähler

09 Jan '15, 21:59

saputello's gravatar image

saputello
11.1k174365

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} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \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][1] Das gleiche Ergebnis erreichst Du übrigens auch, wenn Du in dem [Vorschlag von @Ulrike][2] ebenfalls `\jahr` definierst und die Berechnung entpsrechend entsprechend dem Kommentar von @saputello änderst: \documentclass{scrreprt} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \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][3] [1]: http://texwelt.de/wissen/upfiles/2016_2.png [2]: http://texwelt.de/wissen/fragen/10957/erste-montag-im-jahr-mit-scrdate-ermitteln/10959 [3]: http://texwelt.de/wissen/upfiles/2007.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

09 Jan '15, 21:38

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

09 Jan '15, 21:20

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

09 Jan '15, 20:49

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

09 Jan '15, 17:02

esdd's gravatar image

esdd
17.8k304257

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

09 Jan '15, 16:05

esdd's gravatar image

esdd
17.8k304257