summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/kalender
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/kalender
Initial commit
Diffstat (limited to 'macros/latex/contrib/kalender')
-rw-r--r--macros/latex/contrib/kalender/kalender.sty244
1 files changed, 244 insertions, 0 deletions
diff --git a/macros/latex/contrib/kalender/kalender.sty b/macros/latex/contrib/kalender/kalender.sty
new file mode 100644
index 0000000000..34e665806f
--- /dev/null
+++ b/macros/latex/contrib/kalender/kalender.sty
@@ -0,0 +1,244 @@
+%====================================================================
+% Allg. (La)TeX-Regeln:
+% Dieser Style darf uebernommen oder geandert werden, aber nur mit
+% Nennung des Orginalautors. (ich habe ja auch meinen Stolz ;-))
+%====================================================================
+% Style zum automatischen Ertellen eines Kalenders
+% Es werden die Packete ifthen und calc ben”tigt
+% zum Erstellen nur den Befehl \Kalender{Jahr} eingeben
+% Jahr: Die Jahreszahl z.B. 1995
+% J”rg S”hner 24.03.95
+% e-mail: joerg.soehner@stud.uni-karlsruhe.de
+% www: http://www.uni-karlsruhe.de/~uh6f
+%
+% Kalender.sty bercksichtigt Schaltjahre.
+% Referenzjahr ist 1900. Es sind alle Jahre m”glch; auch < 1900
+% Er berckisichtigt auch folgende Regeln:
+% Jahrhundert-Jahre sind keine Schaltjahre
+% Jahrhundert-Jahre, die durch 400 teilbar sind, sind Schaltjahre
+%====================================================================
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{kalender}[1995/03/25 Kalender-Style von Joerg Soehner]
+\RequirePackage{ifthen,calc}
+\newcounter{Jahr}
+\newcounter{Vorjahr}
+\newcounter{Nextjahr}
+\newcounter{n}
+\newcounter{vielfaches}
+\newboolean{Schaltjahr}
+\newcounter{differ}
+\newcounter{grenze}
+\newcounter{ycopya}
+\newcounter{ycopyb}
+\newcounter{ykoordrahmen}
+\newcounter{spalte} % Z„hler fr Spalte, wo Tage gesetzt werden
+\newcounter{zeile} % Z„hler fr Monatszeile
+\newcounter{tag} % Z„hler fr die Tage
+\newcounter{xkoord} % x-Koordinate fr Setzen der Tage
+\newcounter{ykoord} % y-Koordinate fr Setzen der Tage
+\newcounter{monatnr} % Fr Ermittlung der Monatsgrenze
+\newcounter{monatna} % Fr Ermittlung des Monatsnamen
+\newcounter{zeilenanzahl} %Fr mehrere Zeilen pro Monat
+\newcounter{ykoordmonat}
+\newcounter{boxhoehe}
+\newcounter{Kurzjahr}
+
+\newcommand{\Kalender}[1]{
+\setcounter{Jahr}{#1} %hier wird das Jahr dem Z„hler zugewiesen
+\setcounter{Vorjahr}{\value{Jahr}-1} %das Vor- und das Nachfolgejahr
+\setcounter{Nextjahr}{\value{Jahr}+1}
+% ab hier werden die Kurzbezeichungen erstellt
+\setcounter{Kurzjahr}{#1}
+\whiledo{\value{Vorjahr} > 99}{\setcounter{Vorjahr}{
+\value{Vorjahr}- 100}}
+\whiledo{\value{Kurzjahr} > 99}{\setcounter{Kurzjahr}{
+\value{Kurzjahr}- 100}}
+\ifthenelse{\value{Kurzjahr} = 100}{\setcounter{Kurjahr}{00}}
+% ein kleiner Hinweis, daá es ein wenig dauert
+\typeout{Erstelle Kalender des Jahres \theJahr}
+\typeout{... bitte warten ...}
+\begin{scriptsize}
+\unitlength0.7mm
+\begin{picture}(198,143)
+\modulJahr{#1} %dieser Befehl errechnet die Spalte fr den ersten Tag
+\Tage %dieser Befehl setzt die Tage
+\Kalenderrahmen %am Schluá noch der Rahmen um das Ganze
+\end{picture}
+\end{scriptsize}}
+
+
+%#####################################################################
+%=====================================================================
+% Damit wird das Schaltjahr bercksichtigt und die Position des ersten
+% Tages wird ermittelt. Fixjahr ist 1900 (ist halt so)
+%=====================================================================
+
+\newcommand{\modulJahr}[1]{%
+\setcounter{n}{#1}
+\setcounter{vielfaches}{0}
+\setcounter{differ}{\value{n}-1900}
+\setcounter{n}{\value{n}-1900} %Jahresabstand von Jahr und Fixjahr
+
+%fr Jahre ber Fixjahr 1900
+\ifthenelse{\value{n} > 0}{
+\whiledo{\value{n} > 4}{ %solange n>4, 4 wegen den Schaltjahren
+\setcounter{n}{\value{n}-4} % Anzahl der Schaltjahren werden ermittelt
+\stepcounter{vielfaches}} % Volltreffer: Jahr ist Schaltjahr, oder doch nicht
+\ifthenelse{\value{n}=4}{%
+\setboolean{Schaltjahr}{true}}{\setboolean{Schaltjahr}{false}}}{}
+
+%fr Jahre unter Fixjahr 1900
+\ifthenelse{\value{n} < 0}{
+\whiledo{\value{n} < -4}{ %solange n<-4
+\setcounter{n}{\value{n}+4}
+\addtocounter{vielfaches}{-1}}
+\ifthenelse{\value{n}=-4}{%
+\setboolean{Schaltjahr}{true}\addtocounter{vielfaches}{-1}}{%
+\setboolean{Schaltjahr}{false}}}{}
+
+%fr das Fixjahr 1900
+\ifthenelse{\value{n} = 0}{
+\setcounter{vielfaches}{0}
+\setboolean{Schaltjahr}{false}}{}
+
+% wenn Jahr durch 100 teilbar, dann kein Schaltjahr
+\setcounter{n}{#1} %Jahresabstand von Jahr und Fixjahr
+\whiledo{\value{n} > 100}{ %solange n>100, 100 wegen den Jahrhunderten
+\setcounter{n}{\value{n}-100}} % Anzahl der Schaltjahren werden ermittelt
+\ifthenelse{\value{n}=100}{%
+\setboolean{Schaltjahr}{false}}{}
+% wenn Jahr durch 400 teilbar, dann wiederum = Schaltjahr
+\setcounter{n}{#1} %Jahresabstand von Jahr und Fixjahr
+\whiledo{\value{n} > 400}{ %solange n>100, 100 wegen den Jahrhunderten
+\setcounter{n}{\value{n}-400}} % Anzahl der Schaltjahren werden ermittelt
+\ifthenelse{\value{n}=400}{%
+\setboolean{Schaltjahr}{true}}{}
+}
+
+
+%#####################################################################
+%==============================
+% Hier wird die Spalte mit den Monatsnamen definiert
+% mit Vorjahr und Nachfolgejahr
+%=====================================================================
+\newcommand{\monatname}{%
+\ifcase\value{monatna}\or
+\ifthenelse{\value{Vorjahr} < 10}{\bf Dezember 0\theVorjahr}{\bf Dezember
+\theVorjahr}\or
+ {\bf Januar \theJahr}\or
+ {\bf Februar}\or
+ {\bf M"arz}\or
+ {\bf April}\or
+ {\bf Mai}\or
+ {\bf Juni}\or
+ {\bf Juli}\or
+ {\bf August}\or
+ {\bf September}\or
+ {\bf Oktober}\or
+ {\bf November}\or
+\ifthenelse{\value{Kurzjahr} < 10}{\bf Dezember 0\theKurzjahr}{\bf Dezember
+\theKurzjahr}
+ \or
+ {\bf Januar \theNextjahr}\fi}
+
+%#####################################################################
+%=====================================================================
+% Hier werden die Anzahl der Tage des Monats gesetzt
+% Das Schaltjahr wird auch bercksichtigt
+%====================================================================
+
+\newcommand{\setgrenze}{%
+ \ifcase\value{monatnr}\or {\setcounter{grenze}{31+1}}\or
+ {\ifthenelse{\boolean{Schaltjahr}}{
+ \setcounter{grenze}{29+1}}{\setcounter{grenze}{28+1}}}\or
+ {\setcounter{grenze}{31+1}}\or
+ {\setcounter{grenze}{30+1}}\or
+ {\setcounter{grenze}{31+1}}\or
+ {\setcounter{grenze}{30+1}}\or
+ {\setcounter{grenze}{31+1}}\or
+ {\setcounter{grenze}{31+1}}\or
+ {\setcounter{grenze}{30+1}}\or
+ {\setcounter{grenze}{31+1}}\or
+ {\setcounter{grenze}{30+1}}\or
+ {\setcounter{grenze}{31+1}}\or\fi}
+
+% das +1 kommt daher, weil Zeilennummer <> Monatsnummer
+%=====================================================================
+
+%#####################################################################
+%=====================================================================
+% Hier wird der Rahmen des Kalenders gesetzt und mein Vermerk
+%=====================================================================
+
+\newcommand{\Kalenderrahmen}{
+\setcounter{ykoordrahmen}{141-\value{ykoord}-3}
+\setcounter{ycopya}{\value{ykoord}-14}
+\setcounter{ycopyb}{\value{ykoord}-17}
+\put(0,141){\line(0,-1){\value{ykoordrahmen}}} %linke Randlinie
+\multiput(30,141)(6,0){29}{\line(0,-1){\value{ykoordrahmen}}} %senkr Linien
+\put(1.5,135){\bf Monat}
+\multiput(30,135)(42,0){4}{\makebox(6,0)[b]{\bf M\hspace*{-0.4mm}o}}
+\multiput(36,135)(42,0){4}{\makebox(6,0)[b]{\bf Di}}
+\multiput(42,135)(42,0){4}{\makebox(6,0)[b]{\bf Mi}}
+\multiput(48,135)(42,0){4}{\makebox(6,0)[b]{\bf Do}}
+\multiput(54,135)(42,0){4}{\makebox(6,0)[b]{\bf Fr}}
+\multiput(60,135)(42,0){4}{\makebox(6,0)[b]{\bf Sa}}
+\multiput(66,135)(42,0){4}{\makebox(6,0)[b]{\bf So}}
+\put(0,141){\line(1,0){198}}
+\put(0,133){\line(1,0){198}}
+\put(158,\value{ycopya}){\makebox(30,15)[t]{\tiny \copyright 1995 J"org
+S"ohner}}
+\put(158,\value{ycopyb}){\makebox(30,15)[t]{\tiny formed and printed by
+\LaTeXe}}}
+
+%####################################################################
+%====================================================================
+% Hier werden die Tage richtig gesetzt
+%====================================================================
+
+\newcommand{\Tage}{
+\setcounter{monatnr}{12} %Monatsnummer wird gesetzt (mit Dezember f„ngts an)
+\setcounter{ykoord}{130} % Anfangs - y - Koordinate
+\setcounter{monatna}{1} % Fr dem Monatsnamen
+\setcounter{spalte}{5+\value{differ}+\value{vielfaches}}
+% Die Zahl 5 bedeutet, dass der 1 Dez. 1899 am 5. Wochentag (Freitag beginnt)
+\whiledo{\value{spalte} > 28}{\setcounter{spalte}{\value{spalte} - 28}}
+\whiledo{\value{spalte} < 1}{\setcounter{spalte}{\value{spalte} + 28}}
+\setcounter{zeile}{1}
+\setzetage} % Die Tage werden nun fr alle Monate gesetzt
+
+%===================================================================
+\newcommand{\zeileunten}{\setcounter{ykoord}{\value{ykoord}-4}}
+\newcommand{\linie}{\setcounter{ykoord}{\value{ykoord}-1}
+ \put(0,\value{ykoord}){\line(1,0){198}}
+ \setcounter{ykoord}{\value{ykoord}-3}}
+%=====================================================================
+\newcommand{\setzemonatname}{\setcounter{ykoordmonat}{\value{ykoord}+3}
+ \setcounter{boxhoehe}{\value{zeilenanzahl}*4}
+\put(1.5,\value{ykoordmonat}){\makebox(0,\value{boxhoehe})[l]{\monatname}}}
+%===================================================================
+\newcommand{\setxkoord}{\setcounter{xkoord}{24+3+\value{spalte}*6}}
+
+%===================================================================
+
+\newcommand{\setzetage}{ % Befehl zum Setzen der Tage
+\setcounter{tag}{1}
+\setgrenze % Die Monatsgrenze wird ermittel
+\setcounter{zeilenanzahl}{1}
+\whiledo{\value{tag} < \value{grenze}}{\setxkoord
+\put(\value{xkoord},\value{ykoord}){\makebox(0,0)[b]{\thetag}}
+\stepcounter{tag}
+\stepcounter{spalte}
+\ifthenelse{\value{spalte}=29}{\setcounter{spalte}{1}
+\ifthenelse{\value{tag} <
+\value{grenze}}{\zeileunten\stepcounter{zeilenanzahl}}{}}{}
+}
+\linie
+\setzemonatname
+\stepcounter{zeile}
+\whiledo{\value{zeile} < 15}{\stepcounter{monatnr}
+\stepcounter{monatna}
+\ifthenelse{\value{monatnr} > 12}{\setcounter{monatnr}{1}}{}
+\setzetage} % fr die restlichen Monate
+}
+%========================== E N D E =================================