From dfe1c6f18763385b32870bfbe687530431fe683e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 17 May 2017 21:52:21 +0000 Subject: tikz-kalender (17may17) git-svn-id: svn://tug.org/texlive/trunk@44393 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/tikz-kalender/Feiertage-2016.events | 18 + .../doc/latex/tikz-kalender/Geburtstage.events | 8 + .../doc/latex/tikz-kalender/Kalender2016.pdf | Bin 35999 -> 0 bytes .../doc/latex/tikz-kalender/Kalender2016.tex | 19 - .../texmf-dist/doc/latex/tikz-kalender/README.md | 11 +- .../latex/tikz-kalender/Schulferien-2016.events | 9 + .../doc/latex/tikz-kalender/Sonstiges.events | 4 + .../doc/latex/tikz-kalender/Urlaub.events | 4 + .../doc/latex/tikz-kalender/events2016.tex | 31 -- .../latex/tikz-kalender/tikz-kalender-example1.pdf | Bin 0 -> 59563 bytes .../latex/tikz-kalender/tikz-kalender-example1.tex | 15 + .../latex/tikz-kalender/tikz-kalender-example2.pdf | Bin 0 -> 56867 bytes .../latex/tikz-kalender/tikz-kalender-example2.tex | 36 ++ .../tikz-kalender/tikz-kalender-translation.clo | 23 ++ .../tex/latex/tikz-kalender/tikz-kalender.cls | 408 ++++++++++++++------- 15 files changed, 395 insertions(+), 191 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Feiertage-2016.events create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Geburtstage.events delete mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.pdf delete mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.tex create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Schulferien-2016.events create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Sonstiges.events create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/Urlaub.events delete mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/events2016.tex create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.pdf create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.tex create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.pdf create mode 100644 Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.tex create mode 100644 Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender-translation.clo diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Feiertage-2016.events b/Master/texmf-dist/doc/latex/tikz-kalender/Feiertage-2016.events new file mode 100644 index 00000000000..e8c70d9d6b2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/Feiertage-2016.events @@ -0,0 +1,18 @@ + +% Jährlich wiederkehrende Termine sollten das Makro \year enthalten. +% Yearly events should contain the macro \year. + +\event*{\year-01-01}{Neujahr} +\event*{2016-03-25}{Karfreitag} +\event*{2016-03-27}{Ostersonntag} +\event*{2016-03-28}{Ostermontag} +\event*{\year-05-01}{Tag der Arbeit} +\event*{2016-05-05}{Himmelfahrt} +\event{2016-05-15}{Pfingstsonntag} +\event*{2016-05-16}{Pfingstmontag} +\event*{\year-10-03}{Tag der deutschen der deutschen Einheit} +\event{\year-12-24}{Heiligabend} +\event*{\year-12-25}{1. Weihnachtstag} +\event*{\year-12-26}{2. Weihnachtstag} + +\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Geburtstage.events b/Master/texmf-dist/doc/latex/tikz-kalender/Geburtstage.events new file mode 100644 index 00000000000..f15685f9fb0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/Geburtstage.events @@ -0,0 +1,8 @@ + +% Jährlich wiederkehrende Termine sollten das Makro \year enthalten. +% Yearly events should contain the macro \year. + +\event{\year-03-14}{Albert Einstein (1879)} +\event{\year-10-09}{John Lennon (1940)} + +\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.pdf b/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.pdf deleted file mode 100644 index fc340082760..00000000000 Binary files a/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.tex b/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.tex deleted file mode 100644 index adf3daeb8e4..00000000000 --- a/Master/texmf-dist/doc/latex/tikz-kalender/Kalender2016.tex +++ /dev/null @@ -1,19 +0,0 @@ -\listfiles -\documentclass[svgnames,print]{tikz-kalender} -% "print" means printer-fiendly twoside output - -\begin{document} - \makeKalender[% - year=2016, % default: current year - title=Termine, - showweeknumbers, % default: false - titleColor=dark, % default: dark - eventColor=medium, % default: medium - workdayColor=none, % default: none - saturdayColor=bright, % default: bright - sundayColor=medium, % default: medium - monthColor=white, % default: white - monthBGcolor=dark % default: dark - ] -\end{document} - diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/README.md b/Master/texmf-dist/doc/latex/tikz-kalender/README.md index a144443250c..68521aa6fc3 100644 --- a/Master/texmf-dist/doc/latex/tikz-kalender/README.md +++ b/Master/texmf-dist/doc/latex/tikz-kalender/README.md @@ -1,7 +1,12 @@ ## A LaTeX based calendar using TikZ -For usage see the example files »Kalender2016.tex« and »events2016.tex«. See also my [Git repository](https://github.com/rolfn/kalenderRN). The Code is inspired by this [document](http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/) and has the »Creative Commons attribution license (CC-BY-SA)«. +For usage see the example files »tikz-kalender-example1.tex«, +»tikz-kalender-example2.tex«, and »*.events«. See also my [Git +repository](https://github.com/rolfn/kalenderRN). The Code is inspired by this +[document](http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/) +and has the »Creative Commons attribution license (CC-BY-SA)«. -The class »tikz-kalender« requires »tikz« and the tkiz libraries »calc« and »calendar«. +The class »tikz-kalender« requires the package »tikz« and the tkiz libraries +»calc« and »calendar«. -Rolf Niepraschk, 2017-01-22 +Rolf Niepraschk, 2017-05-17 diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Schulferien-2016.events b/Master/texmf-dist/doc/latex/tikz-kalender/Schulferien-2016.events new file mode 100644 index 00000000000..ba111846f21 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/Schulferien-2016.events @@ -0,0 +1,9 @@ + +\period{2016-02-01}{2016-02-06}[color=LightGreen]% Winterferien in Berlin +\period{2016-03-21}{2016-04-02}[color=LightGreen]% Osterferien in Berlin +\period{2016-05-17}{2016-05-18}[color=LightGreen]% Pfingstferien in Berlin +\period{2016-07-21}{2016-09-02}[color=LightGreen]% Sommerferien in Berlin +\period{2016-10-17}{2016-10-28}[color=LightGreen]% Herbstferien in Berlin +\period{2016-12-23}{2017-01-03}[color=LightGreen]% Weihnachtsferien in Berlin + +\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Sonstiges.events b/Master/texmf-dist/doc/latex/tikz-kalender/Sonstiges.events new file mode 100644 index 00000000000..06f96d0f638 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/Sonstiges.events @@ -0,0 +1,4 @@ + +\event*{2016-07-10}{Fußball-EM: Endspiel}[color=DarkTurquoise] + +\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/Urlaub.events b/Master/texmf-dist/doc/latex/tikz-kalender/Urlaub.events new file mode 100644 index 00000000000..51fd4adbe45 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/Urlaub.events @@ -0,0 +1,4 @@ + +\period{2016-09-12}{2016-10-04}[color=red!30,name=Urlaub] + +\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/events2016.tex b/Master/texmf-dist/doc/latex/tikz-kalender/events2016.tex deleted file mode 100644 index 5548c0c832b..00000000000 --- a/Master/texmf-dist/doc/latex/tikz-kalender/events2016.tex +++ /dev/null @@ -1,31 +0,0 @@ - -% Jährlich wiederkehrende Termine sollten das Makro \year enthalten. -% Yearly events should contain the macro \year. - -\event*{\year-01-01}{Neujahr} -\event{\year-03-14}{Albert Einstein (1879)} -\event*{2016-03-25}{Karfreitag} -\event*{2016-03-27}{Ostersonntag} -\event*{2016-03-28}{Ostermontag} -\event*{\year-05-01}{Tag der Arbeit} -\event*{2016-05-05}{Himmelfahrt} -\event{2016-05-15}{Pfingstsonntag} -\event*{2016-05-16}{Pfingstmontag} -\event*{\year-10-03}{Tag der dt. Einheit} -\event{\year-10-09}{John Lennon (1940)} -\event{\year-12-24}{Heiligabend} -\event*{\year-12-25}{1. Weihnachtstag} -\event*{\year-12-26}{2. Weihnachtstag} - -\event*{2016-07-10}{Fußball-EM: Endspiel}[color=DarkTurquoise] - -\period{2016-09-12}{2016-10-04}[color=red!30,name=Urlaub] - -\period{2016-02-01}{2016-02-06}[color=LightGreen]% Winterferien in Berlin -\period{2016-03-21}{2016-04-02}[color=LightGreen]% Osterferien in Berlin -\period{2016-05-17}{2016-05-18}[color=LightGreen]% Pfingstferien in Berlin -\period{2016-07-21}{2016-09-02}[color=LightGreen]% Sommerferien in Berlin -\period{2016-10-17}{2016-10-28}[color=LightGreen]% Herbstferien in Berlin -\period{2016-12-23}{2017-01-03}[color=LightGreen]% Weihnachtsferien in Berlin - -\endinput diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.pdf b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.pdf new file mode 100644 index 00000000000..189a81a131a Binary files /dev/null and b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.pdf differ diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.tex b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.tex new file mode 100644 index 00000000000..9b3cd290eba --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example1.tex @@ -0,0 +1,15 @@ +\listfiles +\documentclass{tikz-kalender} + +% a simple calender + +\setup{% +,year=2016 +,title={Termine} +,events={Schulferien-2016,Feiertage-2016,Geburtstage,Urlaub,Sonstiges} +} + +\begin{document} + \makeKalender +\end{document} + diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.pdf b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.pdf new file mode 100644 index 00000000000..dd893479c84 Binary files /dev/null and b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.pdf differ diff --git a/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.tex b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.tex new file mode 100644 index 00000000000..8b08e56618b --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-kalender/tikz-kalender-example2.tex @@ -0,0 +1,36 @@ +\listfiles + +\documentclass{tikz-kalender} + +% all options: +\setup{% +,lang=german% language for day names and month names; default: english +,paper=a0% papersize understandable by the geometry package; default: a4 +,year=2016% base of the calender calculation +,yearFont={\itshape}% additional font definition +,yearText={}%default: the content of the year option +,title={2016} +,titleFont={\fontsize{1.4em}{1.4em}}% ~140% of default +,titleColor=IndianRed3 +,showweeknumbers% default: false +,events={Geburtstage}% events and periods (files with ending ".events") +,print=true% printer-friendly orientation (double-side printing) +,xcoloroptions={x11names}% additional options; default: svgnames +%,monthFont% additional font definition +%,dayFont% additional font definition +%,dayNbFont% additional font definition +%,weekNbFont% additional font definition +%,eventFont% additional font definition +%,eventColor% additional font definition +%,periodColor% additional font definition +%,monthBGcolor% additional font definition +%,monthColor% additional font definition +%,workdayColor% additional font definition +%,saturdayColo% additional font definitionr +%,sundayColor% additional font definition +} + +\begin{document} + \makeKalender +\end{document} + diff --git a/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender-translation.clo b/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender-translation.clo new file mode 100644 index 00000000000..d7b9ae98780 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender-translation.clo @@ -0,0 +1,23 @@ +\ProvidesFile{tikz-kalender-translation.clo}[2017/05/08 v1.0b + Calendar translations (RN)] + +% shorter strings +\deftranslation[to=Polish]{Mon}{Po}% Poniedziałek +\deftranslation[to=Polish]{Tue}{Wt}% Wtorek +\deftranslation[to=Polish]{Wed}{\'{S}r}% Środa +\deftranslation[to=Polish]{Thu}{Cz}% Czwartek +\deftranslation[to=Polish]{Fri}{Pi}% Piątek +\deftranslation[to=Polish]{Sat}{So}% Sobota +\deftranslation[to=Polish]{Sun}{Ni}% Niedziela + +\deftranslation[to=English]{Mon}{Mo} +\deftranslation[to=English]{Tue}{Tu} +\deftranslation[to=English]{Wed}{We} +\deftranslation[to=English]{Thu}{Th} +\deftranslation[to=English]{Fri}{Fr} +\deftranslation[to=English]{Sat}{Sa} +\deftranslation[to=English]{Sun}{Su} + +\endinput +%% +%% End of file `tikz-kalender-translation.clo'. diff --git a/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender.cls b/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender.cls index 46d9ff6b3fa..dfc813f53c4 100644 --- a/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender.cls +++ b/Master/texmf-dist/tex/latex/tikz-kalender/tikz-kalender.cls @@ -7,30 +7,114 @@ \setcounter{errorcontextlines}{100} \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesClass{kalenderRN}[2017/01/22 v0.3c Calendar class (RN)] +\ProvidesClass{tikz-kalender}[2017/05/17 v0.4a Calendar class (RN)] -\newif\ifRN@print \RN@printfalse +\DeclareOption*{\OptionNotUsed} +\ProcessOptions\relax -\DeclareOption{print}{\RN@printtrue} +\newcommand*\RN@events@files{} +\newcommand*\RN@titleFont{} +\newcommand*\RN@yearFont{} +\newcommand*\RN@monthFont{} +\newcommand*\RN@dayFont{} +\newcommand*\RN@dayNbFont{} +\newcommand*\RN@weekNbFont{} +\newcommand*\RN@eventFont{} +\newcommand*\RN@normalFont{} +\newcommand*\RN@title{} +\newcommand*\RN@year{}\edef\RN@year{\the\numexpr\year} +\newcommand*\RN@yearText{\RN@year} +\newcommand*\RN@period@name{} +\newcommand*\RN@xcolorOptions{} +\newcommand*\RN@events@I{} +\newcommand*\RN@events@II{} +\newcommand*\RN@backgrounds{} +\newcommand*\RN@periods{} +\newcommand*\RN@tempa{} +\newcommand*\RN@tempb{} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} -\ProcessOptions\relax -\LoadClass[a4paper,ngerman,10pt]{article} -\ifRN@print - \RequirePackage{graphicx} - \PassOptionsToPackage{portrait}{geometry} -\else - \PassOptionsToPackage{landscape}{geometry} -\fi -\RequirePackage[a4paper,margin={0mm,0mm}]{geometry} +\newcommand*\RN@titleColor{dark} +\newcommand*\RN@eventColor{medium} +\newcommand*\RN@monthBGcolor{dark} +\newcommand*\RN@monthColor{white} +\newcommand*\RN@workdayColor{none} +\newcommand*\RN@saturdayColor{bright} +\newcommand*\RN@sundayColor{medium} +\newcommand*\RN@periodColor{period} + +\newcounter{weeknumber} +\newsavebox\RN@pageI +\newsavebox\RN@pageII +\newsavebox\RN@tempbox + +\newdimen\RN@xunit +\newdimen\RN@yunit +\newdimen\RN@calheight +\newdimen\RN@calwidth +\newdimen\RN@daywidth +\newdimen\RN@daysep +\newdimen\RN@dayheight +\newdimen\RN@eventwidthL +\newdimen\RN@eventwidthS +\newif\ifRN@showweeknumbers \RN@showweeknumbersfalse +\newif\ifRN@print \RN@printfalse \newif\ifRN@XeOrLua \RN@XeOrLuafalse \RequirePackage{ifluatex,ifxetex} -\ifxetex\RN@XeOrLuatrue\else\ifluatex\RN@XeOrLuatrue\fi\fi +\ifxetex\RN@XeOrLuatrue\else\ifluatex\RN@XeOrLuatrue\fi\fi + +\LoadClass{article} + +\RequirePackage{pgfkeys,etoolbox,ragged2e} + +\pgfkeys{ + /RN/.cd, + showweeknumbers/.is if = RN@showweeknumbers, + print/.is if = RN@print, + events/.store in=\RN@events@files, + titleFont/.store in=\RN@titleFont, + yearFont/.store in=\RN@yearFont, + monthFont/.store in=\RN@monthFont, + dayFont/.store in=\RN@dayFont, + dayNbFont/.store in=\RN@dayNbFont, + weekNbFont/.store in=\RN@weekNbFont, + eventFont/.store in=\RN@eventFont,% ??? + title/.store in=\RN@title, + year/.store in=\RN@year, + yearText/.store in=\RN@yearText, + titleColor/.store in=\RN@titleColor, + eventColor/.store in=\RN@eventColor, + periodColor/.store in=\RN@periodColor, + monthBGcolor/.store in=\RN@monthBGcolor, + monthColor/.store in=\RN@monthColor, + workdayColor/.store in=\RN@workdayColor, + saturdayColor/.store in=\RN@saturdayColor, + sundayColor/.store in=\RN@sundayColor, + xcoloroptions/.code={\PassOptionsToPackage{#1}{xcolor}}, + lang/.code={\PassOptionsToPackage{#1}{babel}% + \PassOptionsToPackage{#1}{translator}}, + paper/.code={\PassOptionsToPackage{#1paper}{geometry}} +} + +\newcommand*\setup[1]{\pgfqkeys{/RN}{#1}} + +\PassOptionsToPackage{english}{babel} +\PassOptionsToPackage{english}{translator} +\PassOptionsToPackage{a4paper}{geometry} +\PassOptionsToPackage{svgnames}{xcolor} \ifRN@XeOrLua - \RequirePackage{fontspec} - \setsansfont{TeX Gyre Heros}[Ligatures=TeX] + \RequirePackage{fontspec,unicode-math} + \setmathfont{latinmodern-math}[% + Extension=.otf,math-style=ISO,bold-style=ISO, + ] + \setsansfont{texgyreheros}[% + Extension=.otf,Ligatures=TeX, + UprightFont= *-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic + ] \else \RequirePackage[T1]{fontenc} \RequirePackage{textcomp} @@ -40,130 +124,169 @@ \renewcommand*\familydefault{\sfdefault} -\RequirePackage{etoolbox} \AtEndPreamble{% "etoolbox" + \ifRN@print + \RequirePackage{graphicx} + \PassOptionsToPackage{portrait}{geometry} + \else + \PassOptionsToPackage{landscape}{geometry} + \fi + \RequirePackage[margin={0mm,0mm}]{geometry} \ifRN@XeOrLua\else \@ifpackageloaded{inputenc}{}{% \RequirePackage[utf8]{inputenc}% }% \fi + \RequirePackage{babel,translator,tikz} + \input{tikz-kalender-translation.clo} + \usetikzlibrary{calc} + \usetikzlibrary{calendar} } -\RequirePackage[main=ngerman]{babel} - -\RequirePackage[ngerman]{translator} - -\deftranslation[to=ngerman]{January}{Januar} -\deftranslation[to=ngerman]{February}{Februar} -\deftranslation[to=ngerman]{March}{März} -\deftranslation[to=ngerman]{April}{April} -\deftranslation[to=ngerman]{May}{Mai} -\deftranslation[to=ngerman]{June}{Juni} -\deftranslation[to=ngerman]{July}{Juli} -\deftranslation[to=ngerman]{August}{August} -\deftranslation[to=ngerman]{September}{September} -\deftranslation[to=ngerman]{October}{Oktober} -\deftranslation[to=ngerman]{November}{November} -\deftranslation[to=ngerman]{December}{Dezember} -\deftranslation[to=ngerman]{Mon}{Mo} -\deftranslation[to=ngerman]{Tue}{Di} -\deftranslation[to=ngerman]{Wed}{Mi} -\deftranslation[to=ngerman]{Thu}{Do} -\deftranslation[to=ngerman]{Fri}{Fr} -\deftranslation[to=ngerman]{Sat}{Sb} -\deftranslation[to=ngerman]{Sun}{So} - -\RequirePackage{tikz} -\usetikzlibrary{calc} -\usetikzlibrary{calendar} - -\RequirePackage{varwidth} - -\newcommand*\RN@year{} -\edef\RN@year{\the\numexpr\year} - -\newsavebox\RN@pageI -\newsavebox\RN@pageII -\newsavebox\RN@tempbox -\newdimen\RN@tempdima -\newdimen\RN@tempdimb -\newcommand*\RN@events@I{} -\newcommand*\RN@events@II{} -\newcommand*\RN@backgrounds{} -\newcommand*\RN@periods{} -\newcommand*\RN@title{} -\newcommand*\RN@tempa{} -\newcommand*\RN@tempb{} -\newcounter{weeknumber} -\newif\ifRN@showweeknumbers \RN@showweeknumbersfalse - -\pgfkeys{% - /CAL/.is family, /CAL, - showweeknumbers/.is if = RN@showweeknumbers, - title/.estore in = \RN@title, - year/.estore in = \RN@year, - default/.style={eventColor=medium,monthBGcolor=dark,monthColor=white,% - workdayColor=none,saturdayColor=bright,sundayColor=medium,titleColor=dark}, - titleColor/.estore in = \RN@titleColor, - eventColor/.estore in = \RN@eventColor, - monthBGcolor/.estore in = \RN@monthBGcolor, - monthColor/.estore in = \RN@monthColor, - workdayColor/.estore in = \RN@workdayColor, - saturdayColor/.estore in = \RN@saturdayColor, - sundayColor/.estore in = \RN@sundayColor +\AtBeginDocument{% + \definecolor{dark}{HTML}{A57C00} + \colorlet{medium}{dark!35} + \colorlet{bright}{dark!20} + \colorlet{period}{gray!30} + \RN@calwidth=\ifRN@print\paperheight\else\paperwidth\fi + \RN@calheight=\ifRN@print\paperwidth\else\paperheight\fi + \@tempcnta=\RN@calwidth + \divide\@tempcnta by \@M % + \RN@xunit=\@tempcnta sp % 0.0845pt (a4) + \@tempcnta=\RN@calheight + \divide\@tempcnta by \@M % + \RN@yunit=\@tempcnta sp % 0.05974pt (a4) + \RN@daywidth=1515\RN@xunit% 45mm (a4) + \RN@daysep=118\RN@xunit % 3.5mm (a4) + \RN@dayheight=192\RN@xunit% 5.7mm (a4) + \RN@setFont{RN@dayFont}{134}% 8pt (a4) + \RN@setFont{RN@dayNbFont}{167}% 10pt (a4) + \RN@setFont{RN@eventFont}{134}% 8pt (a4) + \RN@setFont[\normalfont]{RN@normalFont}{167}% 10pt (a4) + \RN@setFont{RN@weekNbFont}{134}% 8pt (a4) + \RN@setFont[\bfseries]{RN@monthFont}{167}% 10pt (a4) + \RN@setFont[\bfseries]{RN@titleFont}{666}% 40pt (a4) + \RN@setFont[\bfseries]{RN@yearFont}{1000}% 60pt (a4) + \RN@normalFont + \settowidth\@tempdima{\RN@formatDayNb{99}\RN@formatDay{0}}% + \RN@eventwidthL=\dimexpr\RN@daywidth-\@tempdima + \settowidth\@tempdima{\setcounter{weeknumber}{99}% + \RN@formatWeekNb{weeknumber}% + } + \RN@eventwidthS=\dimexpr\RN@eventwidthL-\@tempdima } + \pgfkeys{% - /CAL/.is family, /CAL, + /RN/.is family, /RN, period/.cd, - default/.style={color=period,name={}}, - color/.estore in = \RN@period@color, - name/.estore in = \RN@period@name + color/.estore in=\RN@periodColor, + name/.estore in=\RN@period@name } \pgfkeys{% - /CAL/.is family, /CAL, + /RN/.is family, /RN, event/.cd, color/.estore in = \RN@eventColor } +\newcommand\RN@formatTitle[3]{% + \raisebox{-.3\height}{\parbox[b]{#1}{% + \color{\RN@titleColor}% + \makebox[0pt][l]{\RN@yearFont#2}\hfill + \RN@titleFont#3\hfill\mbox{}% + }}% +} +\newcommand*\RN@formatDayNb[1]{% + \RN@dayNbFont#1\hspace{50\RN@xunit}% +} +\newcommand*\RN@formatDay[1]{% + \RN@dayFont\pgfcalendarweekdayshortname{#1}% +} +\newcommand*\RN@formatWeekNb[1]{% + \hspace{30\RN@xunit}\RN@weekNbFont + \raisebox{.15ex}{[\raisebox{-.15ex}{\arabic{#1}}]}% + \hspace{20\RN@xunit}% +} +\newcommand*\RN@formatEventX[1]{% + \varwidth{\RN@eventwidthL}#1\strut\endvarwidth% ?????? +} +\newcommand*\RN@formatEventXX[1]{% + \makebox[0pt][r]{\frame{\resizebox{\RN@eventwidthL}{!}{% ?????? + \parbox[t][\RN@dayheight]{% + \RN@eventwidthL}{\RN@eventFont\raggedleft#1\strut}}}}% +} +\newcommand*\RN@formatEventXXX[2]{% + \makebox[0pt][r]{\resizebox{#1}{\RN@dayheight}{% ?????? + \frame{\varwidth[t]{#1}#2\strut\endvarwidth}}}% +} +\newcommand*\RN@formatEvent[2]{% + \RN@eventFont + \def\RN@tempa{\strut\hfill#2}% + \settowidth\@tempdima{\mbox{\RN@tempa}}% + \ifdim\@tempdima>#1 % + \@tempdimb=\dimexpr\f@size pt % + \@tempdimb=.8\@tempdimb% + \def\RN@tempa{\fontsize{\@tempdimb}{1.1\@tempdimb}\selectfont#2}% + \fi + \makebox[-50\RN@xunit][r]{\raisebox{0.55\totalheight}[\totalheight]{% + \parbox[c]{#1}{\RaggedLeft\nointerlineskip\RN@tempa}}}% +} + +\newcommand*\RN@setFont[3][]{% + \@tempdima=#3\RN@yunit \@tempdimb=1.2\@tempdima % + \expandafter\protected@edef\csname#2\endcsname{\noexpand\fontsize + {\the\@tempdima}{\the\@tempdimb}#1\csname#2\endcsname\noexpand\selectfont}% +} + \newcommand*\period[2]{% - \@ifnextchar[{\period@i{#1}{#2}}{\period@i{#1}{#2}[]} + \@ifnextchar[{\RN@period@i{#1}{#2}}{\RN@period@i{#1}{#2}[]}% } -\newcommand*\period@i{} -\def\period@i#1#2[#3]{% - \pgfkeys{/CAL/period/.cd, default, #3}% +\newcommand*\RN@period@i{} +\def\RN@period@i#1#2[#3]{% + \begingroup + \pgfkeys{/RN/period/.cd, #3}% \edef\@tempa{% \noexpand\ifdate{between=#1 and #2}{% - \noexpand\tikzset{every day/.style={fill=\RN@period@color}}}{}% + \noexpand\tikzset{every day/.style={fill=\RN@periodColor}}}{}% }% \expandafter\g@addto@macro\expandafter\RN@periods\expandafter{\@tempa}% \ifx\RN@period@name\@empty\else \pgfcalendar{}{#1}{#2}{% - \edef\RN@tempa{\pgfcalendarcurrentyear-\pgfcalendarcurrentmonth-\pgfcalendarcurrentday}% + \edef\RN@tempa{\pgfcalendarcurrentyear-\pgfcalendarcurrentmonth-% + \pgfcalendarcurrentday}% \@ifundefined{event@\RN@tempa}{% + \let\RN@event@ii=\RN@event@ii@orig% activate again + % period name as event entry for event-less days \event{\RN@tempa}{\RN@period@name}% - \edef\RN@tempb{\noexpand\expandafter\noexpand\gdef - \noexpand\csname event@\RN@tempa\noexpand\endcsname{\RN@period@name}}% + \edef\RN@tempb{\noexpand\expandafter\noexpand\gdef\noexpand% + \csname event@\RN@tempa\noexpand\endcsname{\RN@period@name}}% \RN@tempb }{}% }% \fi + \endgroup } + \newcommand*\event{% \@ifstar{\@tempswatrue\RN@event@i}{\@tempswafalse\RN@event@i}% } \newcommand*\RN@event@i[2]{% - \@ifnextchar[{\RN@event@ii{#1}{#2}}{\RN@event@ii{#1}{#2}[]} + \@ifnextchar[{\RN@event@ii{#1}{#2}}{\RN@event@ii{#1}{#2}[]}% } + \newcommand*\RN@event@ii{}% \def\RN@event@ii#1#2[#3]{% - \pgfkeys{/CAL/event/.cd, #3}% + \begingroup + \pgfkeys{/RN/event/.cd, #3}% \@ifundefined{event@#1}{% + \@tempdima=\RN@eventwidthL + \ifRN@showweeknumbers + \pgfcalendarifdate{#1}{Monday}{\@tempdima=\RN@eventwidthS}{}% + \fi \protected@edef\@tempa{\noexpand\@ifundefined{pgf@sh@ns@cal-#1}{}{% - \noexpand\node[anchor=north west] at ($(cal-#1.north east)-(.6em,0em)$){% - \noexpand\makebox[0pt][r]{\noexpand\resizebox{!}{1.15ex}{% - \noexpand\varwidth{4.6cm}#2\noexpand\strut\noexpand\endvarwidth}}};}% + \noexpand\node[anchor=south west,inner sep=0pt] at (cal-#1.south east){% + \noexpand\RN@formatEvent{\the\@tempdima}{#2}};}% }% - \@namedef{event@#1}{#2}% + \expandafter\gdef\csname event@#1\endcsname{#2}% \pgfcalendarifdate{#1}{at most=06-last}% first half-year? {\expandafter\g@addto@macro\expandafter\RN@events@I\expandafter{\@tempa}}% {\expandafter\g@addto@macro\expandafter\RN@events@II\expandafter{\@tempa}}% @@ -171,78 +294,77 @@ \if@tempswa \edef\@tempa{% \noexpand\ifdate{equals=#1}{\noexpand\tikzset{% - every day/.style={fill=\RN@eventColor}}}{} + every day/.style={fill=\RN@eventColor}}}{}% }% \expandafter\g@addto@macro\expandafter\RN@backgrounds\expandafter{\@tempa}% \fi + \endgroup } - -\definecolor{dark}{HTML}{A57C00} -\colorlet{medium}{dark!35} -\colorlet{bright}{dark!20} -\colorlet{period}{gray!30} - -\newcommand\RN@@title{% - \raisebox{-.3\height}{\parbox[b]{\wd\RN@tempbox}{% - \fontsize{60}{70}\selectfont\color{\RN@titleColor}% - \textbf{\RN@year}~\textbf{\Huge\RN@title}\hfill - }}% -} +\let\RN@event@ii@orig=\RN@event@ii \newcommand\RN@makeKalender[2]{% \sbox\RN@tempbox{% \begin{tikzpicture}[every day/.style={anchor=north}]% - \calendar[dates=#1 to #2,name=cal,day text={\%d=},day yshift=3em,%]% + \calendar[dates=#1 to #2,name=cal,day text={\%d=},%day yshift=3em,% ???? day code={% - \node[name=\pgfcalendarsuggestedname,every day,shape=rectangle,% - minimum height=.53cm,text width=4.4cm,draw=black]{\tikzdaytext};% - \draw(-1.8cm,-.1ex) node[anchor=west]{\footnotesize - \pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}% - \ifRN@showweeknumbers - \ifdate{Monday}{~~\stepcounter{weeknumber}\normalsize[% - \mbox{\footnotesize\arabic{weeknumber}}]}{}% - \fi - };% + \node[name=\pgfcalendarsuggestedname,every day,% + shape=rectangle,minimum height=\RN@dayheight,% + text width=\RN@daywidth,draw=black + ]{\RN@formatDayNb{\tikzdaytext}% + \RN@formatDay{\pgfcalendarcurrentweekday}% + \ifRN@showweeknumbers + \ifdate{Monday}{\stepcounter{weeknumber}% + \RN@formatWeekNb{weeknumber}}{}% + \fi}; },% execute before day scope={% \ifdate{day of month=1}{% - \pgftransformxshift{4.8cm}% + \pgftransformxshift{\dimexpr\RN@daywidth+\RN@daysep}% % Print month name - \draw (0,0)node [shape=rectangle,minimum height=.53cm,% - text width=4.4cm,fill=\RN@monthBGcolor,draw=\RN@monthBGcolor,% - text=\RN@monthColor,text centered]{% - \textbf{\pgfcalendarmonthname{\pgfcalendarcurrentmonth}}};}{}% - \ifdate{workday}{\tikzset{every day/.style={fill=\RN@workdayColor}}}{}% + \draw (0,0)node [shape=rectangle,minimum height=\RN@dayheight,% + text width=\RN@daywidth,fill=\RN@monthBGcolor,% + draw=\RN@monthBGcolor,text=\RN@monthColor,text centered]{% + \RN@monthFont\pgfcalendarmonthname{\pgfcalendarcurrentmonth}}; + }{}% + \ifdate{workday}{\tikzset{every day/.style=% + {fill=\RN@workdayColor}}}{}% \RN@periods - \ifdate{Saturday}{\tikzset{every day/.style={fill=\RN@saturdayColor}}}{}% - \ifdate{Sunday}{\tikzset{every day/.style={fill=\RN@sundayColor}}}{}% + \ifdate{Saturday}{\tikzset{every day/.style=% + {fill=\RN@saturdayColor}}}{}% + \ifdate{Sunday}{\tikzset{every day/.style=% + {fill=\RN@sundayColor}}}{}% \RN@backgrounds },% execute at begin day scope={% - \pgftransformyshift{-.53*\pgfcalendarcurrentday cm}% + \pgftransformyshift{-\pgfcalendarcurrentday\RN@dayheight}% }% ];% \pgfcalendarifdate{#1}{at most=06-last}{\RN@events@I}{\RN@events@II}% \end{tikzpicture}% }% - \RN@tempdima=\ifRN@print\paperwidth\else\paperheight\fi - \RN@tempdimb=\ifRN@print\paperheight\else\paperwidth\fi - \parbox[c][\RN@tempdima]{\RN@tempdimb}{% + \parbox[c][\RN@calheight]{\RN@calwidth}{% \vfill \centering - \RN@@title\par + \RN@formatTitle{\wd\RN@tempbox}{\RN@yearText}{\RN@title}% \vfill - \usebox\RN@tempbox\par + \usebox\RN@tempbox \vfill }% } -\newcommand*\makeKalender[1][]{% - \pgfkeys{/CAL/.cd, default, #1}% +\newcommand*\makeKalender{% \setcounter{weeknumber}{0}% \begingroup \let\year=\RN@year - \InputIfFileExists{events\RN@year.tex}{}{}% + \def\RN@period@i##1##2[##3]{}% 1st loop: only the events + \def\do##1{\InputIfFileExists{##1.events}{}{}}% + \expandafter\docsvlist\expandafter{\RN@events@files}% + \endgroup + \begingroup + \let\year=\RN@year + \def\RN@event@ii##1##2[##3]{}% 2nd loop: only the periods + \def\do##1{\InputIfFileExists{##1.events}{}{}}% + \expandafter\docsvlist\expandafter{\RN@events@files}% \endgroup \sbox{\RN@pageI}{\RN@makeKalender{\RN@year-01-01}{\RN@year-06-30}}% \sbox{\RN@pageII}{\RN@makeKalender{\RN@year-07-01}{\RN@year-12-31}}% @@ -258,6 +380,16 @@ \usebox\RN@pageII \fi } + + + \setlength\parindent{0pt} \pagestyle{empty} + \endinput +%% +%% End of file `tikz-kalender.cls'. + + + + -- cgit v1.2.3