Posts tagged ‘TikZ’

Pre-Print meines neuen TikZ-Artikels, Teil 2

In Pre-Print meines neuen TikZ-Artikels hatte ich den Folgeteil versprochen, der ist jetzt auch soweit gediegen, dass ich ihn präsentieren kann.

Uwe-TikZ_II (PDF)

Uwe-TikZ_II (LaTeX)

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

ADSR Hüllkurve mit TikZ

Hier die Darstellung einer ADSR Hüllkurve (Quelle: Wikipedia) mit TikZ:

\begin{tikzpicture}
%\draw[step=0.5cm,lightgray,thin] (0,0) grid (10,7);
\draw[very thick, black,->](1,1) -- (9.5,1);
\draw[very thick, black,->](1,1) -- (1,6.5);
\draw[very thick, green,](3,1) -- (3,6);
\draw[very thick, orange,](5,1) -- (5,6);
\draw[very thick, black](7,1) -- (7,6);
\draw[very thick, magenta](9,1) -- (9,6);
 
\draw[very thick, gray,](1,1) -- (3,5.5) -- (5,4) -- (7,4)--(9,1);
% max amp line
\draw[thick, gray,dotted](0.8,5.5) -- (9.5,5.5);
 
\draw[very thick, blue,->](6,1.1) -- (6,3.9);
 
\draw[very thick, green,->](1.1,5.65) -- (2.9,5.65);
\draw[very thick, orange,->](3.1,5.65) -- (4.9,5.65);
 
\draw[very thick, blue](5.1,4) -- (6.9,4);
 
\draw[very thick, magenta,->](7.1,5.65) -- (8.9,5.65);
 
\node[label=left:0] (A) at (1,1) {};
\node[label=below:t] (B) at (9.5,1) {};
\node[label=left:{{\scriptsize Amp\textsubscript{max}}}] (C) at (1,5.5) {};
 
\node[label=above:A] (D) at (2,5.5) {};
\node[label=above:D] (E) at (4,5.5) {};
\node[label=left:S] (F) at (6,2.5) {};
\node[label=above:R] (G) at (8,5.5) {};
 
\draw[very thick, black,->](1,0.5) -- (1,0.9);
\draw[very thick, black,->](7,0.5) -- (7,0.9);
 
\node[label=above:{Key press}] (D) at (1.1,-0.2) {};
\node[label=above:{Key release}] (D) at (7.2,-0.2) {};
 
\end{tikzpicture}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

TikZ Diagramm

Hier ein kleiner Schnipsel TikZ, den ich für die Beantwortung einer LaTeX-Frage geschrieben habe.

\documentclass[fontsize=12pt]{scrartcl}
\usepackage{wasysym}
\usepackage{tikz}
\usepackage[right]{showlabels}
\usetikzlibrary{positioning}
\usepackage{graphicx} 
 
\newcommand{\half}{\rotatebox{-45}{\Huge\RIGHTcircle}}
\newcommand{\full}{\Huge\CIRCLE}
 
\begin{document}  
\begin{center}
\begin{tikzpicture}[x=20mm,y=20mm]
 
\node at (0,0) (a1)  {\half};
\node at (1,0)  (a2) {\half};
\node at (2,0) (a3) {\half};
\node at (3,0) (a4) {\half};
 
\node at (0,-1) (b1)  {\half};
\node at (1,-1) (b2){\full};
\node at (2,-1) (b3)  {\half};
\node at (3,-1) (b4) {\full};
 
\draw (a1) -- (b1);
\draw (a2) -- (b2);
\draw (a3) -- (b4);
\draw (a4) -- (b3);
 
 
\end{tikzpicture}
\end{center}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Overviews of SQL Joins (with LaTeX code)

Here’s a short overview of SQL joins, find the source code of the document attached to the PDF (use Adobe Reader to access it).

SQL Joins

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{arev}
\usepackage{attachfile}
 
 
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\def\firstcircle{(0,0) circle (2cm)}
\def\secondcircle{(0:3cm) circle (2cm)}
 
\colorlet{circle edge}{blue!50}
\colorlet{circle area}{blue!20}
\colorlet{white area}{white}
 
\tikzset{
filled/.style={fill=circle area, draw=circle edge, thick},
outline/.style={draw=circle edge, thick},
white/.style={fill=white area, draw=circle edge, very thick}
}
 
\begin{document}
 
\textattachfile{\jobname.tex}{\LaTeX~Code}
 
\section{Inner Join}
 
Inner joins return those records, that are present in table 1 and table 2.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Inner Join
    \begin{scope}
        \clip \firstcircle;
        \fill[filled] \secondcircle;
    \end{scope}
    \draw[outline] \firstcircle node {A};
    \draw[outline] \secondcircle node {B};
\end{tikzpicture}
\end{center}
 
\section{Left Join}
 
Every record from table 1 is returned, regardless if it has a matching record in table 2. If the record has a matching record in table 2 this record from table 2 is returned as well.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Left Join
    \begin{scope}
        \clip \firstcircle;
        \draw[filled] \firstcircle node {A}
                                     \secondcircle;
    \end{scope}
    \draw[outline] \firstcircle
                   \secondcircle node {B};
\end{tikzpicture}
\end{center}
 
\clearpage
 
\section{Left Outer Join}
 
Those records from table 1 are returned, that do not have a match in table 2.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Left Outer Join
    \draw[filled] \firstcircle node {A};
    \draw[white] \secondcircle node {B};
    \draw[outline] \firstcircle node {A};
\end{tikzpicture}
\end{center}
 
\section{Right Join}
 
Every record from table 2 is returned, regardless if it has a matching record in table 1. If the record has a matching record in table 1 this record from table 1 is returned as well.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Right Join
    \begin{scope}
        \clip \secondcircle;
        \draw[filled] \firstcircle \secondcircle node {B};
    \end{scope}
    \draw[outline] \firstcircle node {A} \secondcircle;
\end{tikzpicture}
 
\end{center}
 
\clearpage
 
\section{Right Outer Join}
 
Those records from table 2 are returned, that do not have a match in table 1.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Right Join 2
    \draw[filled]   \secondcircle node {B};
    \draw[white]  \firstcircle node {A};
    \draw[outline] \secondcircle node {B};
\end{tikzpicture}
\end{center}
 
 
 
\section{Theta Join}
 
Every row from dataset 1 is multiplied by every row of dataset 2. Usually a mistake unless you really want this Cartesian product.
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Theta
    \draw[filled] \firstcircle node {A} \secondcircle node {B};
\end{tikzpicture}
\end{center}
 
\clearpage
 
\section{Full Outer}
 
Returns all records from table 1 and table 2 regardless if they have matches in the other table. Records, that do match, are linked together via key. 
 
\begin{center}
\begin{tikzpicture}[scale=1, every node/.style={scale=1}] % Full Outer
    \draw[filled] \firstcircle node {A};
    \draw[filled] \secondcircle node {B};
    \begin{scope}
        \clip \firstcircle;
         \fill[white] \secondcircle;
        \draw[outline] \secondcircle;  
        \draw[outline] \firstcircle;  
    \end{scope}
\end{tikzpicture}
\end{center}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Ein Jahreskalender mit LaTeX und Excel

This entry is part 2 of 3 in the series Kalender mit tikz-kalender

Anbei ein Jahreskalender für 2020, erstellt mit LaTeX und Excel. Excel deshalb, weil die Datumsfunktionen recht praktisch sind und mein LaTeX-Programmierkünste dafür nicht ausreichen.

Die Formel für die einzelnen Tage lautet:

=WENNFEHLER("\node at (" & C$2-1 &"," & -1* $B3 & ") [" & WENN(LINKS(TEXT(DATWERT($B3&"."&C$2&"."&$B$2);"TTT");1)="S";"weekend";"workday") & "] {\hspace*{-0.9em}{"  & TEXT(DATWERT($B3&"."&C$2&"."&$B$2);"TTT")   & "}};";"")

Inhaltlich geschieht dabei folgendes, am 1.1.2020 (Zelle C3)erklärt:

  1. Ich baue ein Datum aus dem Jahr in B2, dem Monat in C2 und dem Tag in B3
  2. Dieses Datum wird mittels TEXT() Funktion in den Tagesnamen umgewandelt
  3. Fängt dieser Tagesname mit „S“ an, handelt es sich um einen Wochenendtag, dann wird „weekend“ genutzt, sonst „workday“
  4. Dann setze ich den Tagesnamen in jeden einzelnen Node und verschiebe den Text dabei um -0.9em nach links (gibt sicher auch was in TikZ, was das macht, so ging es schneller)
  5. Wenn die Formel für den entsprechenden Tag einen Fehler bringt, weil der Tag (31.2.2020) nicht existiert, so wird nichts ausgegeben.
  6. Alle Node-Infos werden dann per copy paste in die TeX-Datei eingefügt und kompiliert

Hier die Dateien:

kalender.pdf

Kalendermacher_blog.xlsx

Hier der LaTeX-Code:

\documentclass{scrartcl}
\usepackage[a4paper,landscape,left=0.25cm,right=0.25cm,top=0.5cm,bottom=0.5cm]{geometry}
 
\usepackage[]{ifdraft}
\usepackage[]{attachfile}
\usepackage[]{eso-pic}
 
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
 
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage[scaled=0.9]{helvet}
\usepackage{tikz}
\usepackage[right]{showlabels}
\usetikzlibrary{positioning}
\pagestyle{empty}
 
\usepackage{xcolor}
 
\usepackage{hyperref}
\usepackage{url}
 
\definecolor{weekendday}{RGB}{240,240,240}
\newcommand{\file}[1]{\textattachfile{#1}{\textcolor{blue}{\LaTeX\ Sourcecode}}}
 
\begin{document}  
 
\AddToShipoutPictureFG*{
  \put(35,10){\footnotesize Uwe Ziegenhagen, ziegenhagen@gmail.com %, \file{\jobname.tex}	
}
}
 
\begin{center}
\begin{tikzpicture}
[
    x=23mm,y=6mm,
    mybox/.style={rectangle,rounded corners,minimum width=23mm, minimum height=6mm,align=left},
	month/.style={mybox,align=center,draw=black,align=left,fill=white,thick,font=\bfseries\large},
    date/.style={mybox,draw=gray,fill=white,align=left,thick,minimum width=5mm,font=\bfseries\large},
    workday/.style={mybox,draw=black,text width=1.5cm,font=\bfseries\tiny},
    weekend/.style={mybox,draw=black,text width=1.5cm,fill=weekendday,font=\bfseries\tiny}
]
\node at (0,0) [month] {Januar};
\node at (1,0) [month] {Februar};
\node at (2,0) [month] {März};
\node at (3,0) [month] {April};
\node at (4,0) [month] {Mai};
\node at (5,0) [month] {Juni};
\node at (6,0) [month] {Juli};
\node at (7,0) [month] {August};
\node at (8,0) [month] {September};
\node at (9,0) [month] {Oktober};
\node at (10,0) [month] {November};
\node at (11,0) [month] {Dezember};
 
\node at (-0.7,-1) [date] {01};
\node at (-0.7,-2) [date] {02};
\node at (-0.7,-3) [date] {03};
\node at (-0.7,-4) [date] {04};
\node at (-0.7,-5) [date] {05};
\node at (-0.7,-6) [date] {06};
\node at (-0.7,-7) [date] {07};
\node at (-0.7,-8) [date] {08};
\node at (-0.7,-9) [date] {09};
\node at (-0.7,-10) [date] {10};
\node at (-0.7,-11) [date] {11};
\node at (-0.7,-12) [date] {12};
\node at (-0.7,-13) [date] {13};
\node at (-0.7,-14) [date] {14};
\node at (-0.7,-15) [date] {15};
\node at (-0.7,-16) [date] {16};
\node at (-0.7,-17) [date] {17};
\node at (-0.7,-18) [date] {18};
\node at (-0.7,-19) [date] {19};
\node at (-0.7,-20) [date] {20};
\node at (-0.7,-21) [date] {21};
\node at (-0.7,-22) [date] {22};
\node at (-0.7,-23) [date] {23};
\node at (-0.7,-24) [date] {24};
\node at (-0.7,-25) [date] {25};
\node at (-0.7,-26) [date] {26};
\node at (-0.7,-27) [date] {27};
\node at (-0.7,-28) [date] {28};
\node at (-0.7,-29) [date] {29};
\node at (-0.7,-30) [date] {30};
\node at (-0.7,-31) [date] {31};
 
\node at (11.7,-1) [date] {01};
\node at (11.7,-2) [date] {02};
\node at (11.7,-3) [date] {03};
\node at (11.7,-4) [date] {04};
\node at (11.7,-5) [date] {05};
\node at (11.7,-6) [date] {06};
\node at (11.7,-7) [date] {07};
\node at (11.7,-8) [date] {08};
\node at (11.7,-9) [date] {09};
\node at (11.7,-10) [date] {10};
\node at (11.7,-11) [date] {11};
\node at (11.7,-12) [date] {12};
\node at (11.7,-13) [date] {13};
\node at (11.7,-14) [date] {14};
\node at (11.7,-15) [date] {15};
\node at (11.7,-16) [date] {16};
\node at (11.7,-17) [date] {17};
\node at (11.7,-18) [date] {18};
\node at (11.7,-19) [date] {19};
\node at (11.7,-20) [date] {20};
\node at (11.7,-21) [date] {21};
\node at (11.7,-22) [date] {22};
\node at (11.7,-23) [date] {23};
\node at (11.7,-24) [date] {24};
\node at (11.7,-25) [date] {25};
\node at (11.7,-26) [date] {26};
\node at (11.7,-27) [date] {27};
\node at (11.7,-28) [date] {28};
\node at (11.7,-29) [date] {29};
\node at (11.7,-30) [date] {30};
\node at (11.7,-31) [date] {31};
 
 
% hier kommen die Sachen aus Excel rein
 
\end{tikzpicture}
\end{center}
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Kalender mit tikz-calendar erstellen

This entry is part 3 of 3 in the series Kalender mit tikz-kalender

Hier ein Beispiel, wie man mit tikz-calendar Jahreskalender erstellen kann. Kalenderereignisse müssen in einer externen Datei abgelegt werden, im Beispiel ist das die meineevents.events.

Die Farbnamen für die einzelnen Elemente lassen sich in https://www.sciencetronics.com/greenphotons/wp-content/uploads/2016/10/xcolor_names.pdf nachlesen.

\documentclass{tikz-kalender}
 
\setup{%
lang=german,
year=2020,
showweeknumbers=true,
title={Urlaub},
xcoloroptions={x11names},
titleColor=cyan, 
eventColor=brown,
periodColor=lime,
monthBGcolor=red,
monthColor=Purple0,
workdayColor=yellow,
saturdayColor=magenta,
sundayColor=orange,
events={meineevents} % Einbinden der events-Datei
}
 
\begin{document}
\makeKalender
\end{document}

Hier der Inhalt der meineevents.events:

\event{\year-10-09}{John Lennon (1940)}
\event{2020-10-03}{Tag d. dt. Einheit}
\event*{2020-04-12}{Ostersonntag}
\period{2020-02-01}{2020-02-06}[color=Gray0,name={Urlaub}]; 

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Jahreskalender mit LaTeX & TikZ

Hier ein zusammengefrickeltes Beispiel für einen TikZ-basierten Jahreskalender. „Zusammengefrickelt“ deshalb, weil es bestimmt über die TikZ- und pgf-Kalenderfunktionen viel einfacher und eleganter geht. Letzlich tut es aber 😉

Kalender_2018 (auch wenn das PDF im Namen „2017“ trägt)

\documentclass[fontsize=6pt]{scrartcl}
\usepackage[a4paper,landscape,left=0.5cm,right=0.5cm,top=0.5cm,bottom=0.5cm]{geometry}
 
\usepackage[]{ifdraft}
\usepackage[]{attachfile}
\usepackage[]{eso-pic}
 
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
 
\renewcommand{\familydefault}{\sfdefault}
\RequirePackage[scaled=0.9]{helvet}
\usepackage{tikz}
\usepackage[right]{showlabels}
\usetikzlibrary{positioning}
\pagestyle{empty}
 
\usepackage{xcolor}
 
\usepackage{hyperref}
\usepackage{url}
 
\definecolor{weekendday}{RGB}{220,220,220}
\newcommand{\file}[1]{\textattachfile{#1}{\textcolor{blue}{\LaTeX\ Sourcecode}}}
 
\begin{document}  
 
\AddToShipoutPictureFG*{
  \put(35,10){\footnotesize Uwe Ziegenhagen, ziegenhagen@gmail.com, \file{\jobname.tex}	
}
}
 
\begin{center}
\begin{tikzpicture}
[
    x=23mm,y=6mm,
    mybox/.style={rectangle,rounded corners,minimum width=23mm, minimum height=6mm},
	month/.style={mybox,align=center,draw=black,fill=yellow,thick,font=\bfseries\Large},
    date/.style={mybox,draw=gray,fill=yellow,align=left,thick,minimum width=5mm,font=\bfseries\Large},
    day/.style={mybox,draw=black,align=left},
    weekendday/.style={mybox,draw=black,align=left,fill=weekendday}
]
\node at (0,0) [month] {Januar};
\node at (1,0) [month] {Februar};
\node at (2,0) [month] {März};
\node at (3,0) [month] {April};
\node at (4,0) [month] {Mai};
\node at (5,0) [month] {Juni};
\node at (6,0) [month] {Juli};
\node at (7,0) [month] {August};
\node at (8,0) [month] {September};
\node at (9,0) [month] {Oktober};
\node at (10,0) [month] {November};
\node at (11,0) [month] {Dezember};
 
\node at (-0.6,-1) [date] {01};
\node at (-0.6,-2) [date] {02};
\node at (-0.6,-3) [date] {03};
\node at (-0.6,-4) [date] {04};
\node at (-0.6,-5) [date] {05};
\node at (-0.6,-6) [date] {06};
\node at (-0.6,-7) [date] {07};
\node at (-0.6,-8) [date] {08};
\node at (-0.6,-9) [date] {09};
\node at (-0.6,-10) [date] {10};
\node at (-0.6,-11) [date] {11};
\node at (-0.6,-12) [date] {12};
\node at (-0.6,-13) [date] {13};
\node at (-0.6,-14) [date] {14};
\node at (-0.6,-15) [date] {15};
\node at (-0.6,-16) [date] {16};
\node at (-0.6,-17) [date] {17};
\node at (-0.6,-18) [date] {18};
\node at (-0.6,-19) [date] {19};
\node at (-0.6,-20) [date] {20};
\node at (-0.6,-21) [date] {21};
\node at (-0.6,-22) [date] {22};
\node at (-0.6,-23) [date] {23};
\node at (-0.6,-24) [date] {24};
\node at (-0.6,-25) [date] {25};
\node at (-0.6,-26) [date] {26};
\node at (-0.6,-27) [date] {27};
\node at (-0.6,-28) [date] {28};
\node at (-0.6,-29) [date] {29};
\node at (-0.6,-30) [date] {30};
\node at (-0.6,-31) [date] {31};
 
\node at (0,-1) [day] {};
\node at (0,-2) [day] {};
\node at (0,-3) [day] {};
\node at (0,-4) [day] {};
\node at (0,-5) [day] {};
\node at (0,-6) [weekendday] {};
\node at (0,-7) [weekendday] {};
\node at (0,-8) [day] {};
\node at (0,-9) [day] {};
\node at (0,-10) [day] {};
\node at (0,-11) [day] {};
\node at (0,-12) [day] {};
\node at (0,-13) [weekendday] {};
\node at (0,-14) [weekendday] {};
\node at (0,-15) [day] {};
\node at (0,-16) [day] {};
\node at (0,-17) [day] {};
\node at (0,-18) [day] {};
\node at (0,-19) [day] {};
\node at (0,-20) [weekendday] {};
\node at (0,-21) [weekendday] {};
\node at (0,-22) [day] {};
\node at (0,-23) [day] {};
\node at (0,-24) [day] {};
\node at (0,-25) [day] {};
\node at (0,-26) [day] {};
\node at (0,-27) [weekendday] {};
\node at (0,-28) [weekendday] {};
\node at (0,-29) [day] {};
\node at (0,-30) [day] {};
\node at (0,-31) [day] {};
 
 
\node at (1,-1) [day] {};
\node at (1,-2) [day] {};
\node at (1,-3) [weekendday] {};
\node at (1,-4) [weekendday] {};
\node at (1,-5) [day] {};
\node at (1,-6) [day] {};
\node at (1,-7) [day] {};
\node at (1,-8) [day] {};
\node at (1,-9) [day] {};
\node at (1,-10) [weekendday] {};
\node at (1,-11) [weekendday] {};
\node at (1,-12) [day] {};
\node at (1,-13) [day] {};
\node at (1,-14) [day] {};
\node at (1,-15) [day] {};
\node at (1,-16) [day] {};
\node at (1,-17) [weekendday] {};
\node at (1,-18) [weekendday] {};
\node at (1,-19) [day] {};
\node at (1,-20) [day] {};
\node at (1,-21) [day] {};
\node at (1,-22) [day] {};
\node at (1,-23) [day] {};
\node at (1,-24) [weekendday] {};
\node at (1,-25) [weekendday] {};
\node at (1,-26) [day] {};
\node at (1,-27) [day] {};
\node at (1,-28) [day] {};
 
 
 
\node at (2,-1) [day] {};
\node at (2,-2) [day] {};
\node at (2,-3) [weekendday] {};
\node at (2,-4) [weekendday] {};
\node at (2,-5) [day] {};
\node at (2,-6) [day] {};
\node at (2,-7) [day] {};
\node at (2,-8) [day] {};
\node at (2,-9) [day] {};
\node at (2,-10) [weekendday] {};
\node at (2,-11) [weekendday] {};
\node at (2,-12) [day] {};
\node at (2,-13) [day] {};
\node at (2,-14) [day] {};
\node at (2,-15) [day] {};
\node at (2,-16) [day] {};
\node at (2,-17) [weekendday] {};
\node at (2,-18) [weekendday] {};
\node at (2,-19) [day] {};
\node at (2,-20) [day] {};
\node at (2,-21) [day] {};
\node at (2,-22) [day] {};
\node at (2,-23) [day] {};
\node at (2,-24) [weekendday] {};
\node at (2,-25) [weekendday] {};
\node at (2,-26) [day] {};
\node at (2,-27) [day] {};
\node at (2,-28) [day] {};
\node at (2,-29) [day] {};
\node at (2,-30) [day] {};
\node at (2,-31) [weekendday] {};
 
\node at (3,-1) [weekendday] {};
\node at (3,-2) [day] {};
\node at (3,-3) [day] {};
\node at (3,-4) [day] {};
\node at (3,-5) [day] {};
\node at (3,-6) [day] {};
\node at (3,-7) [weekendday] {};
\node at (3,-8) [weekendday] {};
\node at (3,-9) [day] {};
\node at (3,-10) [day] {};
\node at (3,-11) [day] {};
\node at (3,-12) [day] {};
\node at (3,-13) [day] {};
\node at (3,-14) [weekendday] {};
\node at (3,-15) [weekendday] {};
\node at (3,-16) [day] {};
\node at (3,-17) [day] {};
\node at (3,-18) [day] {};
\node at (3,-19) [day] {};
\node at (3,-20) [day] {};
\node at (3,-21) [weekendday] {};
\node at (3,-22) [weekendday] {};
\node at (3,-23) [day] {};
\node at (3,-24) [day] {};
\node at (3,-25) [day] {};
\node at (3,-26) [day] {};
\node at (3,-27) [day] {};
\node at (3,-28) [weekendday] {};
\node at (3,-29) [weekendday] {};
\node at (3,-30) [day] {};
 
\node at (4,-1) [day] {};
\node at (4,-2) [day] {};
\node at (4,-3) [day] {};
\node at (4,-4) [day] {};
\node at (4,-5) [weekendday] {};
\node at (4,-6) [weekendday] {};
\node at (4,-7) [day] {};
\node at (4,-8) [day] {};
\node at (4,-9) [day] {};
\node at (4,-10) [day] {};
\node at (4,-11) [day] {};
\node at (4,-12) [weekendday] {};
\node at (4,-13) [weekendday] {};
\node at (4,-14) [day] {};
\node at (4,-15) [day] {};
\node at (4,-16) [day] {};
\node at (4,-17) [day] {};
\node at (4,-18) [day] {};
\node at (4,-19) [weekendday] {};
\node at (4,-20) [weekendday] {};
\node at (4,-21) [day] {};
\node at (4,-22) [day] {};
\node at (4,-23) [day] {};
\node at (4,-24) [day] {};
\node at (4,-25) [day] {};
\node at (4,-26) [weekendday] {};
\node at (4,-27) [weekendday] {};
\node at (4,-28) [day] {};
\node at (4,-29) [day] {};
\node at (4,-30) [day] {};
\node at (4,-31) [day] {};
 
\node at (5,-1) [day] {};
\node at (5,-2) [weekendday] {};
\node at (5,-3) [weekendday] {};
\node at (5,-4) [day] {};
\node at (5,-5) [day] {};
\node at (5,-6) [day] {};
\node at (5,-7) [day] {};
\node at (5,-8) [day] {};
\node at (5,-9) [weekendday] {};
\node at (5,-10) [weekendday] {};
\node at (5,-11) [day] {};
\node at (5,-12) [day] {};
\node at (5,-13) [day] {};
\node at (5,-14) [day] {};
\node at (5,-15) [day] {};
\node at (5,-16) [weekendday] {};
\node at (5,-17) [weekendday] {};
\node at (5,-18) [day] {};
\node at (5,-19) [day] {};
\node at (5,-20) [day] {};
\node at (5,-21) [day] {};
\node at (5,-22) [day] {};
\node at (5,-23) [weekendday] {};
\node at (5,-24) [weekendday] {};
\node at (5,-25) [day] {};
\node at (5,-26) [day] {};
\node at (5,-27) [day] {};
\node at (5,-28) [day] {};
\node at (5,-29) [day] {};
\node at (5,-30) [weekendday] {};
 
 
\node at (6,-1) [weekendday] {};
\node at (6,-2) [day] {};
\node at (6,-3) [day] {};
\node at (6,-4) [day] {};
\node at (6,-5) [day] {};
\node at (6,-6) [day] {};
\node at (6,-7) [weekendday] {};
\node at (6,-8) [weekendday] {};
\node at (6,-9) [day] {};
\node at (6,-10) [day] {};
\node at (6,-11) [day] {};
\node at (6,-12) [day] {};
\node at (6,-13) [day] {};
\node at (6,-14) [weekendday] {};
\node at (6,-15) [weekendday] {};
\node at (6,-16) [day] {};
\node at (6,-17) [day] {};
\node at (6,-18) [day] {};
\node at (6,-19) [day] {};
\node at (6,-20) [day] {};
\node at (6,-21) [weekendday] {};
\node at (6,-22) [weekendday] {};
\node at (6,-23) [day] {};
\node at (6,-24) [day] {};
\node at (6,-25) [day] {};
\node at (6,-26) [day] {};
\node at (6,-27) [day] {};
\node at (6,-28) [weekendday] {};
\node at (6,-29) [weekendday] {};
\node at (6,-30) [day] {};
\node at (6,-31) [day] {};
 
\node at (7,-1) [day] {};
\node at (7,-2) [day] {};
\node at (7,-3) [day] {};
\node at (7,-4) [weekendday] {};
\node at (7,-5) [weekendday] {};
\node at (7,-6) [day] {};
\node at (7,-7) [day] {};
\node at (7,-8) [day] {};
\node at (7,-9) [day] {};
\node at (7,-10) [day] {};
\node at (7,-11) [weekendday] {};
\node at (7,-12) [weekendday] {};
\node at (7,-13) [day] {};
\node at (7,-14) [day] {};
\node at (7,-15) [day] {};
\node at (7,-16) [day] {};
\node at (7,-17) [day] {};
\node at (7,-18) [weekendday] {};
\node at (7,-19) [weekendday] {};
\node at (7,-20) [day] {};
\node at (7,-21) [day] {};
\node at (7,-22) [day] {};
\node at (7,-23) [day] {};
\node at (7,-24) [day] {};
\node at (7,-25) [weekendday] {};
\node at (7,-26) [weekendday] {};
\node at (7,-27) [day] {};
\node at (7,-28) [day] {};
\node at (7,-29) [day] {};
\node at (7,-30) [day] {};
 
 
\node at (8,-1) [day] {};
\node at (8,-2) [weekendday] {};
\node at (8,-3) [weekendday] {};
\node at (8,-4) [day] {};
\node at (8,-5) [day] {};
\node at (8,-6) [day] {};
\node at (8,-7) [day] {};
\node at (8,-8) [day] {};
\node at (8,-9) [weekendday] {};
\node at (8,-10) [weekendday] {};
\node at (8,-11) [day] {};
\node at (8,-12) [day] {};
\node at (8,-13) [day] {};
\node at (8,-14) [day] {};
\node at (8,-15) [day] {};
\node at (8,-16) [weekendday] {};
\node at (8,-17) [weekendday] {};
\node at (8,-18) [day] {};
\node at (8,-19) [day] {};
\node at (8,-20) [day] {};
\node at (8,-21) [day] {};
\node at (8,-22) [day] {};
\node at (8,-23) [weekendday] {};
\node at (8,-24) [weekendday] {};
\node at (8,-25) [day] {};
\node at (8,-26) [day] {};
\node at (8,-27) [day] {};
\node at (8,-28) [day] {};
\node at (8,-29) [day] {};
\node at (8,-30) [weekendday] {};
\node at (8,-31) [weekendday] {};
 
 
\node at (9,-1) [day] {};
\node at (9,-2) [day] {};
\node at (9,-3) [day] {};
\node at (9,-4) [day] {};
\node at (9,-5) [day] {};
\node at (9,-6) [weekendday] {};
\node at (9,-7) [weekendday] {};
\node at (9,-8) [day] {};
\node at (9,-9) [day] {};
\node at (9,-10) [day] {};
\node at (9,-11) [day] {};
\node at (9,-12) [day] {};
\node at (9,-13) [weekendday] {};
\node at (9,-14) [weekendday] {};
\node at (9,-15) [day] {};
\node at (9,-16) [day] {};
\node at (9,-17) [day] {};
\node at (9,-18) [day] {};
\node at (9,-19) [day] {};
\node at (9,-20) [weekendday] {};
\node at (9,-21) [weekendday] {};
\node at (9,-22) [day] {};
\node at (9,-23) [day] {};
\node at (9,-24) [day] {};
\node at (9,-25) [day] {};
\node at (9,-26) [day] {};
\node at (9,-27) [weekendday] {};
\node at (9,-28) [weekendday] {};
\node at (9,-29) [day] {};
\node at (9,-30) [day] {};
\node at (9,-31) [day] {};
 
\node at (10,-1) [day] {};
\node at (10,-2) [day] {};
\node at (10,-3) [weekendday] {};
\node at (10,-4) [weekendday] {};
\node at (10,-5) [day] {};
\node at (10,-6) [day] {};
\node at (10,-7) [day] {};
\node at (10,-8) [day] {};
\node at (10,-9) [day] {};
\node at (10,-10) [weekendday] {};
\node at (10,-11) [weekendday] {};
\node at (10,-12) [day] {};
\node at (10,-13) [day] {};
\node at (10,-14) [day] {};
\node at (10,-15) [day] {};
\node at (10,-16) [day] {};
\node at (10,-17) [weekendday] {};
\node at (10,-18) [weekendday] {};
\node at (10,-19) [day] {};
\node at (10,-20) [day] {};
\node at (10,-21) [day] {};
\node at (10,-22) [day] {};
\node at (10,-23) [day] {};
\node at (10,-24) [weekendday] {};
\node at (10,-25) [weekendday] {};
\node at (10,-26) [day] {};
\node at (10,-27) [day] {};
\node at (10,-28) [day] {};
\node at (10,-29) [day] {};
\node at (10,-30) [day] {};
 
 
\node at (11,-1) [weekendday] {};
\node at (11,-2) [weekendday] {};
\node at (11,-3) [day] {};
\node at (11,-4) [day] {};
\node at (11,-5) [day] {};
\node at (11,-6) [day] {};
\node at (11,-7) [day] {};
\node at (11,-8) [weekendday] {};
\node at (11,-9) [weekendday] {};
\node at (11,-10) [day] {};
\node at (11,-11) [day] {};
\node at (11,-12) [day] {};
\node at (11,-13) [day] {};
\node at (11,-14) [day] {};
\node at (11,-15) [weekendday] {};
\node at (11,-16) [weekendday] {};
\node at (11,-17) [day] {};
\node at (11,-18) [day] {};
\node at (11,-19) [day] {};
\node at (11,-20) [day] {};
\node at (11,-21) [day] {};
\node at (11,-22) [weekendday] {};
\node at (11,-23) [weekendday] {};
\node at (11,-24) [day] {};
\node at (11,-25) [day] {};
\node at (11,-26) [day] {};
\node at (11,-27) [day] {};
\node at (11,-28) [day] {};
\node at (11,-29) [weekendday] {};
\node at (11,-30) [weekendday] {};
\node at (11,-31) [day] {};
 
\end{tikzpicture}
\end{center}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Beispiel für Diagramme mit TikZ

Hier ein Beispiel für Diagramme mit TikZ:

\documentclass[12pt,ngerman]{scrartcl}
 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
 
\usepackage{tikz}
 
\begin{document}
 
\begin{tikzpicture}
[
    mybox/.style={rectangle,rounded corners,xshift=1cm,yshift=1cm,minimum width=20mm, minimum height=5mm},
    lang/.style={mybox,black,align=center,draw=black,fill=yellow,very thick,font=\bfseries},
]
 
\node at (5,-1) {\bfseries\large imperativ/prozedural};
\node at (13,-1) {\bfseries\large objektorientiert};
 
\node at (1,12) {\textbf{1950}};
\node at (1,10) {\textbf{1960}};
\node at (1,8) {\textbf{1970}};
\node at (1,6) {\textbf{1980}};
\node at (1,4) {\textbf{1990}};
\node at (1,2) {\textbf{2000}};
\node at (1,0) {\textbf{2010}};
 
\draw (2,0) -- (15,0);
\draw (2,2) -- (15,2);
\draw (2,4) -- (15,4);
\draw (2,6) -- (15,6);
\draw (2,8) -- (15,8);
\draw (2,10) -- (15,10);
\draw (2,12) -- (15,12);
 
\node at (10,2.5) [lang] {Python};
\node at (4,10.5) [lang] {Fortran};
\end{tikzpicture}
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

TikZ-Pixelart mit dem pixelart Package

Hier ein Beispiel aus der Dokumentation des pixelart Pakets von Louis Paternault

\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pixelart}
 
\begin{document}
 
I
\bwpixelart[color=red, scale=.05, raise=-0.3ex]{%
001101100
011111110
111111111
111111111
111111111
011111110
001111100
000111000
000010000
}
\LaTeX
 
\end{document}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website

Animating TikZ Graphics

After drawing the cubic Bezier a few days ago I wanted to animate it. Using the animate package this is fairly simple:

\documentclass{article}
\usepackage[paperwidth=5.5cm,paperheight=5.3cm,left=0cm,right=0cm,bottom=0cm,top=0.25cm]{geometry}
\usepackage{tikz}
\definecolor{fom}{RGB}{0,153,139}
 
\newcommand{\dat}{0.7} % 0.67
\usepackage{animate}
 
\begin{document}
 
\begin{animateinline}[poster=last, controls, palindrome]{10}
\multiframe{70}{Ry=0.1+0.01}{
\begin{tikzpicture}[x=4cm,y=4cm]
\draw[line width=1pt,lightgray] (0,0) -- (1,1);
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0); 
\draw (0,0) -- (0.17,0.67); 
\draw (1,1) -- (0.83,\Ry); 
 
\draw [magenta,fill=magenta](0.17,0.67) circle (.5ex); 
\draw [fom,fill=fom](0.83,\Ry) circle (.5ex); 
 
\draw[line width=1pt] (0,0) .. controls (0.17,0.67) and (0.83,\Ry) .. (1,1);
 
\node[label={[label distance=0.0cm,text depth=-1ex,rotate=90]left:Fortschritt in \%}] at (-0.1,.8) {};
\node[label={[label distance=0.0cm,text depth=-1ex]right:Zeit-Achse}] at (0,-0.05) {};
\end{tikzpicture}}
\end{animateinline}
 
\end{document}

I am animating in the TeX code (not externally) so I use animateinline with 10 frames per second. Inside this environment I prepare 70 frames, where I have the y-coordinate of the second point loop from 0.1 in steps of 0.01. The looping is controlled via Ry (that translates to \Ry in the loop). That’s it!

Here is the resulting PDF: bezier

PS: I used pdflatex from the TeX Live 2014.

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website