alt text

Ich habe hier einen Algorithmus, der mit pgfmath das Osterdatum berechnet. \Easter liefert z.B. 2018-04-01.

Allerdings kann ich das Ergebnis scheints nicht in der Form
\calendar[] if (equals=\Easter)[red];
verwenden.

Was muss ich anders machen?
Günstig wäre dieses berechnete Osterdatum als pgfkey zu haben, weil ich dann die von Ostern abgeleiteten Feiertage berechnen/hervorheben könnte, z.B. Easter=39 für Ostertag + 39 Tage = Christi Himmelfahrt.
Wie kann ich dass 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, 10:44

cis's gravatar image

cis
9.3k20201323
Akzeptiert: 62%

bearbeitet 26 Nov '18, 10:47

Definiere nicht \year um. Das ist ein reserviertes Register.

(26 Nov '18, 11:05) Ulrike Fischer

OK, hatte eigentlich \Year, war noch aus älteren Versuchen. Aber: hat das mit dem Problem zu tun?

(26 Nov '18, 14:36) cis

Ebenso solltest du nicht \H und \L umdefinieren: \H{o} und H{u} geben die ungarischen Buchstaben ő und ű, \L gibt den polnischen Buchstaben Ł.

(26 Nov '18, 15:53) Henri
Sei der Erste, der diese Frage beantwortet!
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×655
×12

Frage gestellt: 26 Nov '18, 10:44

Frage wurde angeschaut: 1,166 Mal

Zuletzt aktualisiert: 27 Nov '18, 09:46