Ich habe hier einen Algorithmus, der mit pgfmath das Osterdatum berechnet. Allerdings kann ich das Ergebnis scheints nicht in der Form Was muss ich anders machen? Öffne in Overleaf
\documentclass[margin=5mm, varwidth]{standalone} \usepackage{tikz} \usetikzlibrary{calendar} \pgfmathtruncatemacro{\year}{2018} \begin{document} % Ostersonntag % https://www.tondering.dk/claus/cal/easter.php \newcommand*{\Easter}[1][\year]{% \Easter[year] \pgfmathtruncatemacro{\G}{mod(#1,19)}% \pgfmathtruncatemacro{\C}{floor(#1/100)}% \pgfmathtruncatemacro{\H}{mod(\C-floor(\C/4)-floor((8*\C+13)/25)+19*\G+15,30)}% \pgfmathtruncatemacro{\I}{\H-floor(\H/28)*(1-floor(29/(\H+1))*floor((21-\G)/11))}% \pgfmathtruncatemacro{\J}{mod(#1+floor(#1/4)+\I+2-\C+floor(\C/4),7)} \pgfmathtruncatemacro{\L}{\I-\J}% \pgfmathtruncatemacro{\eastermonth}{3+floor((\L+40)/44)}% \pgfmathsetmacro{\EasterMonth}{"0\eastermonth"}% \pgfmathtruncatemacro{\easterday}{\L+28-31*floor(\eastermonth/4)}% \pgfmathsetmacro{\EasterDay}{\easterday < 10 ? "0\easterday" : "\easterday"}% % #1-\EasterMonth-\EasterDay% } Easterdate: \Easter, \year-\EasterMonth-\EasterDay \pgfkeys{/pgf/calendar/Easter/.default = 0} \pgfkeys{/pgf/calendar/Easter/.code ={ ? ? ? }} \begin{tikzpicture} \calendar[dates=\year-04-01 to \year-05-last, week list, month label above centered, month text=\%mt \%y- ] if ( % Easter=-3, % Maundy Thursday % Easter=-2, % Good Friday % Easter, % Easter Sunday % Easter=1, % Easter Monday % Easter=39, % Feast of the Ascension % Easter=49, % Pentecost % Easter=50 % Whit Monday )[red] if (equals=2018-4-1) [red]; % geht if (equals=\year-\EasterMonth-\EasterDay) [red] % geht %if (equals=\Easter) [red] % geht nicht. ; \end{tikzpicture} \end{document} gefragt 26 Nov '18, 16:44 cis |
Das ist keine komplette Antwort, aber wie aus Ulrike's Antwort implizit hervorgeht, ist das Problem, dass das Öffne in Overleaf
\documentclass[margin=5mm, varwidth]{standalone} \usepackage{tikz} \usetikzlibrary{calendar} \pgfmathtruncatemacro{\year}{2018} \begin{document} % Ostersonntag % https://www.tondering.dk/claus/cal/easter.php \newcommand*{\Easter}[1][\year]{% \Easter[year] \pgfmathtruncatemacro{\G}{mod(#1,19)}% \pgfmathtruncatemacro{\C}{floor(#1/100)}% \pgfmathtruncatemacro{\H}{mod(\C-floor(\C/4)-floor((8*\C+13)/25)+19*\G+15,30)}% \pgfmathtruncatemacro{\I}{\H-floor(\H/28)*(1-floor(29/(\H+1))*floor((21-\G)/11))}% \pgfmathtruncatemacro{\J}{mod(#1+floor(#1/4)+\I+2-\C+floor(\C/4),7)} \pgfmathtruncatemacro{\L}{\I-\J}% \pgfmathtruncatemacro{\eastermonth}{3+floor((\L+40)/44)}% \pgfmathsetmacro{\EasterMonth}{"0\eastermonth"}% \pgfmathtruncatemacro{\easterday}{\L+28-31*floor(\eastermonth/4)}% \pgfmathsetmacro{\EasterDay}{\easterday < 10 ? "0\easterday" : "\easterday"}% % #1-\EasterMonth-\EasterDay% } Easterdate: \Easter, \year-\EasterMonth-\EasterDay \edef\myEaster{\year-\EasterMonth-\EasterDay} \pgfkeys{/pgf/calendar/Easter/.default = 0} \pgfkeys{/pgf/calendar/Easter/.code ={ ? ? ? }} \begin{tikzpicture} \calendar[dates=\year-04-01 to \year-05-last, week list, month label above centered, month text=\%mt \%y- ] if ( % Easter=-3, % Maundy Thursday % Easter=-2, % Good Friday % Easter, % Easter Sunday % Easter=1, % Easter Monday % Easter=39, % Feast of the Ascension % Easter=49, % Pentecost % Easter=50 % Whit Monday )[red] %if (equals=2018-4-1) [red]; % geht %if (equals=\year-\EasterMonth-\EasterDay) [red] % geht if (equals=\myEaster) [red] % geht nicht. ; \end{tikzpicture} \end{document} Mir ist leider nicht klar, was Du mit beantwortet 27 Nov '18, 01:53 Community Aus meiner Antwort ging implizit gar nichts hervor, ich hatte bei einem (kurzen Besuch) nur das damals noch vorhandene (und bei dir noch enthaltene)
(27 Nov '18, 09:50)
Ulrike Fischer
Ach so, ja gut, das konnte man nicht wissen. Hier hat er
(27 Nov '18, 15:46)
cis
|
Definiere nicht
\year
um. Das ist ein reserviertes Register.OK, hatte eigentlich
\Year
, war noch aus älteren Versuchen. Aber: hat das mit dem Problem zu tun?Ebenso solltest du nicht
\H
und\L
umdefinieren:\H{o}
undH{u}
geben die ungarischen Buchstaben ő und ű,\L
gibt den polnischen Buchstaben Ł.Ich verstehe nicht ganz, die Frage und die Antworten sind doch schon länger online als die Frage und die Mathematik ist gelöst. Mittlerweile ist der
Easter
-Test auch in PGF enthalten. (Implementiert mit plain eTeX.) Ich habe in einem anderen Zusammenhang mal versucht mit PGFMath Ganzzahl-Berechnungen zu machen, aber die haben nicht zum Ergebnis geführt, vermutlich wegen der schlechten Genauigkeit. Die Lösung war dann einfach auf die Ganzzahl-Arithemtik von TeX zurück zugreifen. (\pgfinteval
oder\inteval
mit L3.)