2
2

Hallo ihr lieben!

Ich bin gerade dabei mir einen Kalender anzufertigen (für den hauseigenen Gebrauch). Dafür wollte ich ein tolles Design benutzen, doch leider waren die LaTeX-Vorlagen nicht gerade das, wonach ich gesucht habe. Also habe ich mir kurzer Hand entschlossen selbst eine Vorlage zu erstellen. Leider bin ich nicht so bewandert in LaTeX, und brauche deshalb Hilfe. In Scribus habe ich eine rohe Skizze produziert, um zu zeigen wie das Resultat im besten Fall aussehen wird (Magenta ist da wo die Bilder, eins für Jeden Monat, sein sollte; die roten Zahlen sind Sonntage):

Kalender

Ich habe schon Hilfe bekommen automatisierte Datums- und Monatsangaben, in dem gewünschten Design, zu erstellen. Mark Wibrow hat hier diesen LaTeX Code geschrieben:

Open in writeLaTeX
\documentclass[tikz,border=5]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usetikzlibrary{calendar,backgrounds}    
\newcount\daycount
\begin{document}    
\begin{tikzpicture}[background rectangle/.style={fill=black!95}, show background rectangle]
\calendar[%
dates=2015-01-01 to 2015-12-last,
every day/.style={anchor=base west, font=\sffamily},
execute before day scope={
  \ifdate{day of month=1}{%
    % On the first of the month move down...
    \pgftransformyshift{-6em}%
    % ...do the month label...
    \scshape \tikzmonthcode%
    % ...and draw the line.
    \draw [line cap=round,white, thick] (0,-.75em) -- (18*2em,-.75em);
  }{}%
},
execute at begin day scope={
  % Grr. \pgfcalendarcurrentday is zero prefixed
  % so the math parser will think it is octal.
  \daycount=\pgfcalendarcurrentday\relax
  % Now shift into position for the current day.
  \pgftransformxshift{(mod(\daycount-1,18)+(\daycount>18)*2.5)*2em}%
  \pgftransformyshift{-floor(\daycount/19)*2em}%
},
every month/.style={anchor=text, yshift=-3em, text=white, font=\rmfamily}
] if (Sunday) [text=red] else [text=white] ;
\end{tikzpicture}
\end{document}

Hier das Bild welches ich jetzt rausbekomme: Kalender bis jetzt

Fragen und Probleme die ich dabei noch habe sind:

  • Monatsnamen auf Deutsch
  • Den schwarzen Balken auf din-A4-Querformats Breite zu bekommen

  • Die ganzen Balken in 12 Stücke zerlegen (eine für jeden Monat) und darüber mit einem Bild aus zu füllen

Kann mir Jemand helfen, damit der LaTeX Code so wird wie meine Skizze? Hier der LaTeX Code den ich geschrieben hatte bevor ich Hilfe bekam. Vielleicht kann man diese beiden Codes zusammenschneiden:

Open in writeLaTeX
\documentclass[12pt,a4paper,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[landscape, left=0cm,right=0cm,top=0cm,bottom=0cm]{geometry}
\usepackage{tikz}
\usepackage[T1]{fontenc}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}[remember picture, overlay] 
\fill[black] (current page.south west) rectangle ($(current page.south east) + (0,5cm)$);
\fill[green] (current page.north west) rectangle ($(current page.south east) + (0,5cm)$);
\fill[white] ($(current page.south west) + (30pt, 3cm)$) rectangle ($(current page.south east) + (-30pt, 3.07cm)$);
\node[white] at  ($(current page.south west) + (30pt, 30pt)$) {{\fontsize{30}{25} \scshape \bfseries January}};
%the node doesn't work ... January is not placed correctly. It should be placed at 30pt, 30pt but it is "hiding".
\end{tikzpicture}
\end{document}

Vielen Dank schon mal im Voraus! Und vielen Dank an Mark Wibrow für den bisherigen Code! Wäre echt schön wenn mir Jemand hier helfen könnte!

gefragt 06 Dez '14, 20:30

Basilius%20Sapientia's gravatar image

Basilius Sap...
510143442
Akzeptiert-Rate: 33%

bearbeitet 07 Dez '14, 00:15

esdd's gravatar image

esdd
17.7k254256


Die Übersetzung übernimmt das Paket translator mit der Option ngerman:

Open in writeLaTeX
\usepackage[ngerman]{translator}

Für den Rest ist hier ein Vorschlag, bei dem die einzelnen Blätter einer \foreach Schleife über die einzufügenden Bilder erstellt werden:

Open in writeLaTeX
% basiert auf http://tex.stackexchange.com/questions/215645 (Antwort von Mark Wibrow)
\documentclass[ngerman,landscape,fontsize=14pt]{scrartcl}
\usepackage[margin=0pt]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage{translator}

\usepackage{tikz}
\usetikzlibrary{calendar,backgrounds}
\renewcommand\tikzmonthcode{%
  \node[every month]{\pgfcalendarmonthname{\pgfcalendarcurrentmonth}};}

\newcount\daycount
\pagecolor{black}
\newcommand\Kalender[2]{%
\centering\includegraphics[width=\paperwidth,height=16cm,
  %keepaspectratio % Seitenverhältnis beachten
]{#2}
\vfill
\begin{tikzpicture}
\calendar[%
dates=2015-#1-01 to 2015-#1-last,
every day/.style={anchor=base west, font=\sffamily\LARGE},
execute before day scope={
  \ifdate{day of month=1}{%
    % ...do the month label...
    \tikzmonthcode%
    % ...and draw the line.
    \draw [line cap=round,white, thick] (0,-.75em) -- (0.97*\paperwidth,-.75em);
  }{}%
},
execute at begin day scope={
  % Grr. \pgfcalendarcurrentday is zero prefixed
  % so the math parser will think it is octal.
  \daycount=\pgfcalendarcurrentday\relax
  % Now shift into position for the current day.
  \pgftransformxshift{(mod(\daycount-1,18)+(\daycount>18)*2.5)*0.055*\paperwidth}%
  \pgftransformyshift{-floor(\daycount/19)*2.5em}%
},
every month/.style={anchor=text, yshift=-5.5em, text=white, font=\rmfamily\Huge\scshape}
] if (Sunday) [text=red] else [text=white] ;
\end{tikzpicture}%
\vspace{.5cm}\clearpage}

\usepackage{mwe}% für die Beispielbilder
\begin{document}
\foreach[count=\i] \bild in {
  example-image,example-image-A,example-image-B,example-image-C,
  example-image,example-image-A,example-image-B,example-image-C,
  example-image,example-image-A,example-image-B,example-image-C%
  }{\Kalender{\i}{\bild}}
\end{document}

alt text

Um andere Bilder einzufügen werden die Bilder in die \foreach Schleife in der gleichen Weise eingetragen, wie sie im Argument von \includegraphics stehen würden:

Open in writeLaTeX
\foreach[count=\i] \bild in {
  BildJanuar,BildFebruar,BildMärz,BildApril,
  BildMai,BildJuni,BildJuli,BildAugust,
  BildSeptember,BildOktober,BildNovember,BildDezember%
  }{\Kalender{\i}{\bild}}

Mit obigem Code werden die Bilder auf Papierbreite und eine Höhe von 16cm gestreckt. Wenn das Seitenverhältnis des Bildes anders ist, dann sieht es verzerrt aus. Verhindern kann man das durch die Option keepaspectratio bei \includegraphics (das % vor der entsprechenden Zeile oben entfernen), hat dann aber entweder unterhalb des Bildes oder links und rechts einen zusätzlichen Abstand.

Will man die Bilder nicht vorher bearbeiten, sondern erst im Dokument die anzuzeigenden Bereich mit trim, clip oder viewport festlegen oder überhaupt für die einzelnen Bilder unterschiedliche Optionen beim Einbinden verwenden, dann kann man auch auf das \foreach verzichten:

Open in writeLaTeX
% basiert auf http://tex.stackexchange.com/questions/215645 (Antwort von Mark Wibrow)
\documentclass[ngerman,landscape,fontsize=14pt]{scrartcl}
\usepackage[margin=0pt]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage{translator}

\usepackage{tikz}
\usetikzlibrary{calendar,backgrounds}
\renewcommand\tikzmonthcode{%
  \node[every month]{\pgfcalendarmonthname{\pgfcalendarcurrentmonth}};}

\newcount\daycount
\pagecolor{black}
\newcommand\Kalender[1]{%
\vfill
\begin{tikzpicture}
\calendar[%
dates=2015-#1-01 to 2015-#1-last,
every day/.style={anchor=base west, font=\sffamily\LARGE},
execute before day scope={
  \ifdate{day of month=1}{%
    % ...do the month label...
    \tikzmonthcode%
    % ...and draw the line.
    \draw [line cap=round,white, thick] (0,-.75em) -- (0.97*\paperwidth,-.75em);
  }{}%
},
execute at begin day scope={
  % Grr. \pgfcalendarcurrentday is zero prefixed
  % so the math parser will think it is octal.
  \daycount=\pgfcalendarcurrentday\relax
  % Now shift into position for the current day.
  \pgftransformxshift{(mod(\daycount-1,18)+(\daycount>18)*2.5)*0.055*\paperwidth}%
  \pgftransformyshift{-floor(\daycount/19)*2.5em}%
},
every month/.style={anchor=text, yshift=-5.5em, text=white, font=\rmfamily\Huge\scshape}
] if (Sunday) [text=red] else [text=white] ;
\end{tikzpicture}%
\vspace{.5cm}\clearpage}

\usepackage{mwe}% für die Beispielbilder
\begin{document}
\centering\includegraphics[width=\paperwidth,height=16cm]{%
  example-image}\Kalender{1}
\centering\includegraphics[width=\paperwidth,height=16cm,keepaspectratio]{%
  example-image-A}\Kalender{2}
\centering\includegraphics[width=\paperwidth,height=16cm,trim=2cm 2cm 2cm 2cm,clip]{%
  example-image-B}\Kalender{3}
        \centering\includegraphics[width=\paperwidth,height=16cm,keepaspectratio]{%
  example-image}\Kalender{1}
\centering\includegraphics[width=\paperwidth,height=16cm]{%
  example-image-C}\Kalender{4}
\end{document}
Permanenter link

beantwortet 06 Dez '14, 22:26

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 07 Dez '14, 11:33

Vielen Dank dafür! :-)

(07 Dez '14, 06:54) Basilius Sap...
1

@esdd sieht wirklich gut aus! Doch etwas verstehe ich nicht. Was muss ich eingeben um ein example-image mit einem eigenen Bild auszutauschen (und so anzupassen, dass das eigene Bild den gesamten Bildbereich ausfüllt)?

(07 Dez '14, 09:28) goldsonne23
1

@goldsonne Ich habe meine Antwort noch etwas ergänzt.

(07 Dez '14, 11:35) esdd

@esdd Vielen Dank! Es ist wirklich sehr nett und schön wie ihr LaTeXbeginner wie mir helft, damit wir auch im Genuss von LaTeX kommen :-)

(07 Dez '14, 12:06) goldsonne23

@esdd vielen Dank!

(07 Dez '14, 12:29) Basilius Sap...
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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

Frage-Themen:

×728
×14
×11

gestellte Frage: 06 Dez '14, 20:30

Frage wurde gesehen: 11,296 Mal

zuletzt geändert: 07 Dez '14, 12:29