2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-19 11:38:05 +02:00

added my TikZ examples

This commit is contained in:
Martin Thoma 2012-08-09 07:04:38 +02:00
parent dc9eb91aa2
commit fef9415b3d
92 changed files with 3624 additions and 0 deletions

25
tikz/arbelos/Makefile Normal file
View file

@ -0,0 +1,25 @@
SOURCE = arbelos
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

42
tikz/arbelos/arbelos.tex Normal file
View file

@ -0,0 +1,42 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\begin{document}
\begin{preview}
\begin{tikzpicture}
% Draw A
\coordinate[label=left:$A$] (A) at (0,0);
% Draw the Arbelos
\begin{scope}[shift={(4,0)}, scale=4]
\draw[fill=green!30, thick](-1,0)
arc (180:0:1)
arc (0:180:0.25)
arc (0:180:0.75);
\end{scope}
\begin{scope}[shift={(4,0)}]
% Draw D
\coordinate[label=below:$D$] (D) at (2,0);
% Perpendicular CD
\draw[thick] (2,0) -- node[] {} (2,3.47);
% Draw C
\coordinate[label=above:$C$] (C) at (2,3.47);
\end{scope}
% Draw B
\coordinate[label=below:$B$] (B) at (8,0);
% Cirlce CD
\draw[thick] (6,1.735) circle (1.735cm);
% Bottom line AB
\draw[thick] (0,0) -- node[] {} (8,0);
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/arc/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = arc
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

43
tikz/arc/arc.tex Normal file
View file

@ -0,0 +1,43 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes,snakes}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{preview}
\resizebox{250px}{250px}{
\begin{tikzpicture}[]
\newcommand\R{1.3cm}
\draw[fill=gray!2] (0,0) circle (\R);
% draw the background
\draw [line width=0.1pt, fill=gray!10]
(0,0) --
(170: \R) --
(45:\R) -- cycle;
\begin{scope}[color=green]
\draw[fill=green!15] (0,0) --
(170:{\R*0.3}) arc (170:45:{{(\R)*0.3}});
\end{scope}
% Kreisbogen
\begin{scope}[thick, color=red]
\draw[] (170:\R) arc (170:45:\R);
\end{scope}
% Winkel
\draw[] (0,0) -- (170:\R);
\draw[] (0,0) -- (45:\R);
\draw[thick, color=blue] (170:\R) -- (45:\R);
% draw alpha
\coordinate[label=$\alpha$] (Alpha) at (-{\R/20}, 0);
\coordinate[label=$r$] (Alpha) at ({\R/2}, {\R/5});
\end{tikzpicture}
}
\end{preview}
\end{document}

31
tikz/array/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = array
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

25
tikz/array/array.tex Normal file
View file

@ -0,0 +1,25 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}[array/.style={rectangle split,rectangle split horizontal, rectangle split parts=#1,draw, anchor=center, fill=white}]
\node[array=5] (a) {
\nodepart{one}d
\nodepart{two}
\nodepart{three}c
\nodepart{four}c
\nodepart{five}b
};
\node[color=gray, anchor=north, yshift=-0.5] at (a.one) {\tiny $0$};
\node[color=gray, anchor=north, yshift=-2] at (a.two) {\tiny $1$};
\node[color=gray, anchor=north, yshift=-2] at (a.three) {\tiny $2$};
\node[color=gray, anchor=north, yshift=-2] at (a.four) {\tiny $3$};
\node[color=gray, anchor=north, yshift=-0.5] at (a.five) {\tiny $4$};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = b-tree-2-small-2
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,75 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {white}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=5] (A) {
\nodepart{one}
\nodepart{two}7
\nodepart{three}
\nodepart{four}11
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5] (B) {
\nodepart{one}
\nodepart{two}1
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3,0){
\tikz \node[node=5] (C) {
\nodepart{one}
\nodepart{two}4
\nodepart{three}
\nodepart{four}8
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (6.7,0){
\tikz \node[node=7, rectangle split part fill={red, white, green, white, blue, white, purple}] (D) {
\nodepart{one}
\nodepart{two}14
\nodepart{three}
\nodepart{four}15
\nodepart{five}
\nodepart{six}16
\nodepart{seven}
};
};
\draw[pointer] (1.9, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.8, 3.1) -- ($(B)+(2.8,0.4)$) node[] {};
\draw[pointer] (3.9, 3.1) -- ($(B)+(6,0.4)$) node[] {};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = b-tree-2-small-3
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,82 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {white}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=7] (A) {
\nodepart{one}
\nodepart{two}7
\nodepart{three}
\nodepart{four}11
\nodepart{five}
\nodepart{six}15
\nodepart{seven}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5] (B) {
\nodepart{one}
\nodepart{two}1
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3,0){
\tikz \node[node=5] (C) {
\nodepart{one}
\nodepart{two}4
\nodepart{three}
\nodepart{four}8
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (5.6,0){
\tikz \node[node=3, rectangle split part fill={red, white, green}] (D) {
\nodepart{one}
\nodepart{two}14
\nodepart{three}
};
};
\node[align=center, draw, fill=yellow] at (7.8,0){
\tikz \node[node=3, rectangle split part fill={blue, white, purple}] (D) {
\nodepart{one}
\nodepart{two}16
\nodepart{three}
};
};
\draw[pointer] (1.4, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.25, 3.1) -- ($(B)+(3,0.4)$) node[] {};
\draw[pointer] (3.3, 3.1) -- ($(B)+(5.6,0.4)$) node[] {};
\draw[pointer] (4.4, 3.1) -- ($(B)+(7.8,0.4)$) node[] {};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = b-tree-2-small-4
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,84 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {white}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=7] (A) {
\nodepart{one}
\nodepart{two}7
\nodepart{three}
\nodepart{four}11
\nodepart{five}
\nodepart{six}15
\nodepart{seven}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5] (B) {
\nodepart{one}
\nodepart{two}1
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3,0){
\tikz \node[node=5] (C) {
\nodepart{one}
\nodepart{two}4
\nodepart{three}
\nodepart{four}8
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (5.6,0){
\tikz \node[node=3, rectangle split part fill={red, white, green}] (D) {
\nodepart{one}
\nodepart{two}14
\nodepart{three}
};
};
\node[align=center, draw, fill=yellow] at (8.4,0){
\tikz \node[node=5, rectangle split part fill={blue, white, purple, white}] (D) {
\nodepart{one}
\nodepart{two}16
\nodepart{three}
\nodepart{four}17
\nodepart{five}
};
};
\draw[pointer] (1.4, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.25, 3.1) -- ($(B)+(3,0.4)$) node[] {};
\draw[pointer] (3.3, 3.1) -- ($(B)+(5.6,0.4)$) node[] {};
\draw[pointer] (4.4, 3.1) -- ($(B)+(8.4,0.4)$) node[] {};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = b-tree-2-small
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,73 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {white}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=5] (A) {
\nodepart{one}
\nodepart{two}7
\nodepart{three}
\nodepart{four}11
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5] (B) {
\nodepart{one}
\nodepart{two}1
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3,0){
\tikz \node[node=5] (C) {
\nodepart{one}
\nodepart{two}4
\nodepart{three}
\nodepart{four}8
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (6.2,0){
\tikz \node[node=5] (D) {
\nodepart{one}
\nodepart{two}14
\nodepart{three}
\nodepart{four}15
\nodepart{five}
};
};
\draw[pointer] (1.9, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.8, 3.1) -- ($(B)+(2.8,0.4)$) node[] {};
\draw[pointer] (3.9, 3.1) -- ($(B)+(6,0.4)$) node[] {};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = b-tree-3-evolution
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,198 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {white}
}
}
\begin{document}
\begin{preview}
\begin{tabular}{c | c}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=1, rectangle split part fill={gray}] (A) {
\nodepart{one}
};
};
\end{tikzpicture}
&
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=3, rectangle split part fill={gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
};
};
\end{tikzpicture} \\
\hline
\\
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\end{tikzpicture}
&
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=7, rectangle split part fill={gray, white, gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
\nodepart{six}6
\nodepart{seven}
};
};
\end{tikzpicture} \\
\hline
\\
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=9, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
\nodepart{six}6
\nodepart{seven}
\nodepart{eight}8
\nodepart{nine}
};
};
\end{tikzpicture}
&
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (3,3){
\tikz \node[node=11, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
\nodepart{six}6
\nodepart{seven}
\nodepart{eight}8
\nodepart{nine}
\nodepart{ten}10
\nodepart{eleven}
};
};
\end{tikzpicture}
\\
\hline
Node is full $\rightarrow$ first split node\\
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (2,3){
\tikz \node[node=3, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}6
\nodepart{three}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (B) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3,0){
\tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (C) {
\nodepart{one}
\nodepart{two}8
\nodepart{three}
\nodepart{four}10
\nodepart{five}
};
};
\draw[pointer] (1.5, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.3, 3.1) -- ($(B)+(3,0.4)$) node[] {};
\end{tikzpicture}
&
\begin{tikzpicture}
\node[align=center, draw, fill=yellow] at (2,3){
\tikz \node[node=3, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (A) {
\nodepart{one}
\nodepart{two}6
\nodepart{three}
};
};
\node[align=center, draw, fill=yellow] at (0,0){
\tikz \node[node=5, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (B) {
\nodepart{one}
\nodepart{two}2
\nodepart{three}
\nodepart{four}4
\nodepart{five}
};
};
\node[align=center, draw, fill=yellow] at (3.5,0){
\tikz \node[node=7, rectangle split part fill={gray, white, gray, white, gray, white, gray, white, gray, white, gray}] (C) {
\nodepart{one}
\nodepart{two}8
\nodepart{three}
\nodepart{four}10
\nodepart{five}
\nodepart{six}12
\nodepart{seven}
};
};
\draw[pointer] (1.5, 3.1) -- ($(B)+(0,0.4)$) node[] {};
\draw[pointer] (2.3, 3.1) -- ($(B)+(3.5,0.4)$) node[] {};
\end{tikzpicture}
\end{tabular}
\end{preview}
\end{document}

31
tikz/b-tree-node/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = b-tree-node
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,70 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
font=\tt,
>= stealth,
every picture/.style={thick},
pointer/.style={*->},
node/.style={
align=center,
rectangle split, rectangle split horizontal,
rectangle split parts=#1,
draw,
anchor=center,
rectangle split part align={center},
rectangle split empty part width=1.5,
rectangle split part fill = {orange!50, blue!50, white}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[align=center, draw, fill=yellow]{
\tikz \node[node=13] (A) {
\nodepart{one}\tiny False
\nodepart{two}5
\nodepart{three}
\nodepart{four}-3
\nodepart{five}
\nodepart{six}0
\nodepart{seven}
\nodepart{eight}4
\nodepart{nine}
\nodepart{ten}17
\nodepart{eleven}
\nodepart{twelve}42
\nodepart{thirteen}
};
};
\node[orange!80] at ($(A.one)+(0, 0.6)$) {$\scriptscriptstyle isLeaf$};
\node[blue!80] at ($(A.two)+(0, -0.5)$) {$\scriptscriptstyle n$};
\node[gray] at ($(A.three)+(0, 0.6)$) {$\scriptscriptstyle c_1$};
\node[gray] at ($(A.four)+(0, -0.5)$) {$\scriptscriptstyle key_1$};
\node[gray] at ($(A.five)+(0, 0.6)$) {$\scriptscriptstyle c_2$};
\node[gray] at ($(A.six)+(0, -0.5)$) {$\scriptscriptstyle key_2$};
\node[gray] at ($(A.seven)+(0, 0.6)$) {$\scriptscriptstyle c_3$};
\node[gray] at ($(A.eight)+(0, -0.5)$) {$\scriptscriptstyle key_3$};
\node[gray] at ($(A.nine)+(0, 0.6)$) {$\scriptscriptstyle c_4$};
\node[gray] at ($(A.ten)+(0, -0.5)$) {$\scriptscriptstyle key_4$};
\node[gray] at ($(A.eleven)+(0, 0.6)$) {$\scriptscriptstyle c_5$};
\node[gray] at ($(A.twelve)+(0, -0.5)$) {$\scriptscriptstyle key_5$};
\node[gray] at ($(A.thirteen)+(0, 0.6)$) {$\scriptscriptstyle c_1$};
\draw[pointer] ($(A.three) + (0, 0.15)$) -- +(0,-1) node[] {};
\draw[pointer] ($(A.five) + (0, 0.15)$) -- +(0,-1) node[] {};
\draw[pointer] ($(A.seven) + (0, 0.15)$) -- +(0,-1) node[] {};
\draw[pointer] ($(A.nine) + (0, 0.15)$) -- +(0,-1) node[] {};
\draw[pointer] ($(A.eleven) + (0, 0.15)$) -- +(0,-1) node[] {};
\draw[pointer] ($(A.thirteen) + (0, 0.15)$) -- +(0,-1) node[] {};
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/b-tree/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = b-tree-2
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

32
tikz/b-tree/b-tree-2.tex Normal file
View file

@ -0,0 +1,32 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\tikzstyle{bplus}=[rectangle split, rectangle split horizontal,rectangle split ignore empty parts,draw, fill=white]
\tikzstyle{every node}=[bplus]
\tikzstyle{level 1}=[sibling distance=60mm]
\tikzstyle{level 2}=[sibling distance=15mm]
\node {8 \nodepart{two} 14} [->]
child {node {2 \nodepart{two} 5}
child {node {0 \nodepart{two} 1}}
child {node {3 \nodepart{two} 4}}
child {node {6 \nodepart{two} 7}}
}
child {node {11}
child {node { 9 \nodepart{two} 10}}
child {node {12 \nodepart{two} 13}}
}
child {node {17}
child {node {15 \nodepart{two} 16}}
child {node {18 \nodepart{two} 19}}
};
\end{tikzpicture}
\end{preview}
\end{document}

29
tikz/b-tree/b-tree-3.tex Normal file
View file

@ -0,0 +1,29 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\tikzstyle{bplus}=[rectangle split, rectangle split horizontal,rectangle split ignore empty parts,draw, fill=white]
\tikzstyle{every node}=[bplus]
\tikzstyle{level 1}=[sibling distance=60mm]
\tikzstyle{level 2}=[sibling distance=15mm]
\node {11} [->]
child {node {3 \nodepart{two} 7}
child {node {0 \nodepart{two} 1 \nodepart{three} 2}}
child {node {4 \nodepart{two} 5 \nodepart{three} 6}}
child {node {8 \nodepart{two} 9 \nodepart{three} 10}}
}
child {node {15 \nodepart{two} 18}
child[sibling distance=20mm] {node {12 \nodepart{two} 13 \nodepart{three} 14}}
child {node {16 \nodepart{two} 17}}
child {node {19}}
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,27 @@
SOURCE = bellman-ford-algorithm
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux *.toc *.snm *.out *.nav
animatedGif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg
# Alternatively, only this one (produces worse results):
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1 @@
TODO: Not ready, make ready!

View file

@ -0,0 +1,112 @@
\documentclass{beamer}
\usepackage{tikz}
\usepackage{verbatim}
\usetikzlibrary{arrows,shapes}
\begin{document}
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\tikzset{
vertex/.style={
circle,
fill=black!25,
minimum size=20pt,
inner sep=0pt,
text height=1ex,
text depth=1ex,
label={[weight label]center:\weight},
label={[pred label]center:\pred}
},
pred label/.style={
font=\tiny,
xshift=0.3em,
yshift=-0.8ex,
text height=1ex,
text depth=0pt
},
weight label/.style={
font=\tiny,
xshift=-0.3em,
yshift=-0.8ex,
text height=1ex,
text depth=0pt
}
}
\tikzstyle{vertexOnly}=[circle,fill=black!25,minimum size=20pt,inner sep=0pt]
\tikzstyle{selected vertex} = [vertex, fill=red!24]
\tikzstyle{edge} = [->,draw,thick]
\tikzstyle{weight} = [font=\small]
\tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
\tikzstyle{ignored edge} = [draw,line width=5pt,-,black!20]
\begin{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Given Graph %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}
\begin{tikzpicture}[scale=2.5, auto,swap]
% First we draw the vertices
\foreach \pos/\name in {{(0,2)/a}, {(1,2)/b}, {(2,2)/c},
{(0,1)/d}, {(1,1)/e}, {(2,1)/f},
{(0,0)/g}, {(1,0)/h}, {(2,0)/i}}
\node[vertexOnly] (\name) at \pos {$\name$};
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\weight/\style in {a/b/0/, b/c/1/, a/d/2/, e/d/5/,
b/e/3/bend right, e/b/-1/bend right, b/f/4/above, f/i/3/,
i/e/1/, g/h/1/}
\path (\source) edge[->,\style, thick] node {$\weight$} (\dest);
\end{tikzpicture}
\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Initialisation %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\begin{figure}
\begin{tikzpicture}[scale=2.5, auto,swap]
% First we draw the vertices
\foreach \pos/\name/\weight/\pred in {
{(0,2)/a/$0$/-},{(1,2)/b/$\infty$/-}, {(2,2)/c/$\infty$/-},
{(0,1)/d/$\infty$/-}, {(1,1)/e/$\infty$/-}, {(2,1)/f/$\infty$/-},
{(0,0)/g/$\infty$/-}, {(1,0)/h/$\infty$/-}, {(2,0)/i/$\infty$/-}}
\node[vertex] (\name) at \pos {$\name$};
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\weight/\style in {
a/b/0/, b/c/1/, a/d/2/, e/d/5/, b/e/3/bend right,
e/b/-1/bend right, b/f/4/above, f/i/3/, i/e/1/,
g/h/1/}
\path (\source) edge[->,\style, thick] node {$\weight$} (\dest);
\end{tikzpicture}
\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% first iteraton %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\begin{figure}
\begin{tikzpicture}[scale=2.5, auto,swap]
% First we draw the vertices
\foreach \pos/\name/\weight/\pred in {
{(1,2)/b/$\infty$/-}, {(2,2)/c/$\infty$/-},
{(0,1)/d/$\infty$/-}, {(1,1)/e/$\infty$/-}, {(2,1)/f/$\infty$/-},
{(0,0)/g/$\infty$/-}, {(1,0)/h/$\infty$/-}, {(2,0)/i/$\infty$/-}}
\node[vertex] (\name) at \pos {$\name$};
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\weight/\style in {
a/b/0/, b/c/1/, a/d/2/, e/d/5/, b/e/3/bend right,
e/b/-1/bend right, b/f/4/above, f/i/3/, i/e/1/,
g/h/1/}
\path (\source) edge[->,\style, thick] node {$\weight$} (\dest);
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = binary-search-tree
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,59 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=18pt,inner sep=0pt]
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,level/.style={sibling distance=70mm/#1}]
\node [vertex] (r){$17$}
child {
node [vertex] (a) {$9$}
child {
node [vertex] {$3$}
child {
node [vertex] {$-3$}
child {node [vertex] {$-4$}}
child {
node [vertex] {$2$}
child {
node [vertex] {$2$}
}
}
}
child {
node [vertex] {$8$}
child {
node [vertex] {$6$}
child {
node [vertex] {$5$}
}
child {
node [vertex] {$7$}
}
}
}
}
child {
node [vertex] {$11$}
child {
node [vertex] {$17$}
child {
node [vertex] {$17$}
}
}
}
}
child {
node [vertex] {$19$}
child {
node [vertex] {$20$}
}
};
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/binary-tree/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = binary-tree
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,45 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt]
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,level/.style={sibling distance=60mm/#1}]
\node [vertex] (r){$17$}
child {
node [vertex] (a) {$19$}
child {
node [vertex] {$20$}
child {
node [vertex] {$-3$}
child {node [vertex] {$17$}}
child {node [vertex] {$5$}}
}
child {node [vertex] {$6$}}
}
child {
node [vertex] {$3$}
child {node [vertex] {$7$}}
child {node [vertex] {$2$}}
}
}
child {
node [vertex] {$9$}
child {
node [vertex] {$8$}
child {node [vertex] {$2$}}
}
child {
node [vertex] {$11$}
child {node [vertex] {$17$}}
child {node [vertex] {$-4$}}
}
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = birthday-paradox
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,49 @@
% Plot of the probability that two people out of n people have the
% same birthday.
% Author: Martin Thoma
% Source: http://martin-thoma.com/plotting-graphs-with-pgfplots/
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{arrows, positioning, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\begin{axis}[
width=15cm, height=8cm, % size of the image
grid = major,
grid style={dashed, gray!30},
%xmode=log,log basis x=10,
%ymode=log,log basis y=10,
xmin=0, % start the diagram at this x-coordinate
xmax=62, % end the diagram at this x-coordinate
ymin=0, % start the diagram at this y-coordinate
ymax=1.1, % end the diagram at this y-coordinate
/pgfplots/xtick={0,5,...,60}, % make steps of length 5
extra x ticks={23},
extra y ticks={0.507297},
axis background/.style={fill=white},
ylabel=probability of at least one birthday-collision,
xlabel=people,
tick align=outside]
% import the correct data from a CSV file
\addplot table [id=exp]{data.csv};
% mark x=23
\coordinate (a) at (axis cs:23,0.507297);
\draw[blue, dashed, thick](a -| current plot begin) -- (a);
\draw[blue, dashed, thick](a |- current plot begin) -- (a);
% plot the stirling-formulae
\addplot[domain=0:60, red, thick]
{1-(365/(365-x))^(365.5-x)*e^(-x)};
\end{axis}
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,14 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
from math import factorial
from gmpy import bincoef
f = open('data.csv', 'w')
f.write('People\tprobability\n')
def prob(people):
return 1.0 - float(factorial(people)*bincoef(365,people))/(365**people)
for people in xrange(60+1):
f.write("%i\t%f\n" % (people, prob(people)))

View file

@ -0,0 +1,62 @@
People probability
0 0.000000
1 0.000000
2 0.002740
3 0.008204
4 0.016356
5 0.027136
6 0.040462
7 0.056236
8 0.074335
9 0.094624
10 0.116948
11 0.141141
12 0.167025
13 0.194410
14 0.223103
15 0.252901
16 0.283604
17 0.315008
18 0.346911
19 0.379119
20 0.411438
21 0.443688
22 0.475695
23 0.507297
24 0.538344
25 0.568700
26 0.598241
27 0.626859
28 0.654461
29 0.680969
30 0.706316
31 0.730455
32 0.753348
33 0.774972
34 0.795317
35 0.814383
36 0.832182
37 0.848734
38 0.864068
39 0.878220
40 0.891232
41 0.903152
42 0.914030
43 0.923923
44 0.932885
45 0.940976
46 0.948253
47 0.954774
48 0.960598
49 0.965780
50 0.970374
51 0.974432
52 0.978005
53 0.981138
54 0.983877
55 0.986262
56 0.988332
57 0.990122
58 0.991665
59 0.992989
60 0.994123
1 People probability
2 0 0.000000
3 1 0.000000
4 2 0.002740
5 3 0.008204
6 4 0.016356
7 5 0.027136
8 6 0.040462
9 7 0.056236
10 8 0.074335
11 9 0.094624
12 10 0.116948
13 11 0.141141
14 12 0.167025
15 13 0.194410
16 14 0.223103
17 15 0.252901
18 16 0.283604
19 17 0.315008
20 18 0.346911
21 19 0.379119
22 20 0.411438
23 21 0.443688
24 22 0.475695
25 23 0.507297
26 24 0.538344
27 25 0.568700
28 26 0.598241
29 27 0.626859
30 28 0.654461
31 29 0.680969
32 30 0.706316
33 31 0.730455
34 32 0.753348
35 33 0.774972
36 34 0.795317
37 35 0.814383
38 36 0.832182
39 37 0.848734
40 38 0.864068
41 39 0.878220
42 40 0.891232
43 41 0.903152
44 42 0.914030
45 43 0.923923
46 44 0.932885
47 45 0.940976
48 46 0.948253
49 47 0.954774
50 48 0.960598
51 49 0.965780
52 50 0.970374
53 51 0.974432
54 52 0.978005
55 53 0.981138
56 54 0.983877
57 55 0.986262
58 56 0.988332
59 57 0.990122
60 58 0.991665
61 59 0.992989
62 60 0.994123

View file

@ -0,0 +1,25 @@
SOURCE = circular-cone
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,31 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{shapes, calc}
\begin{document}
\begin{preview}
\tdplotsetmaincoords{70}{0}
\begin{tikzpicture}[tdplot_main_coords]
\def\RI{2}
\def\RII{1.25}
\draw[thick] (\RI,0)
\foreach \x in {0,300,240,180} { -- (\x:\RI) node at (\x:\RI) (R1-\x) {} };
\draw[dashed,thick] (R1-0.center)
\foreach \x in {60,120,180} { -- (\x:\RI) node at (\x:\RI) (R1-\x) {} };
\path[fill=gray!30] (\RI,0)
\foreach \x in {0,60,120,180,240,300} { -- (\x:\RI)};
\begin{scope}[yshift=2cm]
\draw[thick,fill=gray!30,opacity=0.2] (\RII,0)
\foreach \x in {0,60,120,180,240,300,360}
{ -- (\x:\RII) node at (\x:\RII) (R2-\x) {}};
\end{scope}
\foreach \x in {0,180,240,300} { \draw (R1-\x.center)--(R2-\x.center); };
\foreach \x in {60,120} { \draw[dashed] (R1-\x.center)--(R2-\x.center); };
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = cyclic-graph
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,36 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt]
\tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
\begin{document}
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{preview}
\begin{tikzpicture} [scale=1.2]
\node (a)[vertex] at (0,2) {a};
\node (b)[vertex] at (1,1) {b};
\node (c)[vertex] at (3,2) {c};
\node (d)[vertex] at (4,1) {d};
\node (e)[vertex] at (2,0) {e};
\node (f)[vertex] at (1,3) {f};
\node (g)[vertex] at (5,3) {g};
\node (h)[vertex] at (0,1) {h};
\foreach \from/\to in {a/f,f/g,h/b,b/c,c/d,d/e,e/b,f/c}
\draw (\from) -- (\to);
\begin{pgfonlayer}{background}
\draw (b.center) edge[selected edge] (c.center);
\draw (c.center) edge[selected edge] (d.center);
\draw (d.center) edge[selected edge] (e.center);
\draw (e.center) edge[selected edge] (b.center);
\end{pgfonlayer}
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dijkstra-fail
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,34 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzset{
%Define standard arrow tip
->,>=stealth',shorten >=1pt,auto,node distance=3cm, very thick,
% Define arrow style
main node/.style={
circle,
fill=blue!20,
draw,
font=\sffamily\Large\bfseries
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}[,]
\node[main node] (A) {A};
\node[main node] (C) [below of=A] {C};
\node[main node] (B) [right of=A] {B};
\node[main node] (D) [right of=C] {D};
\path[every node/.style={font=\sffamily\small}]
(A) edge node {4} (C)
edge node {3} (B)
(C) edge node {-2} (B)
(B) edge node {1} (D);
\end{tikzpicture}
\end{preview}
\end{document}

25
tikz/dijkstra/Makefile Normal file
View file

@ -0,0 +1,25 @@
SOURCE = dot-product-1
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

2
tikz/dijkstra/README Normal file
View file

@ -0,0 +1,2 @@
Das ist nicht fertig!
TODO: Fertig stellen

93
tikz/dijkstra/dijkstra.py Normal file
View file

@ -0,0 +1,93 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
class Node(object):
""" A node. """
def __init__(self, x, y, data):
self._data = data # data connected to the node
self._x = x # x-position
self._y = y # y-position
data = property(fget=lambda self: self._data)
x = property(fget=lambda self: self._x)
y = property(fget=lambda self: self._y)
def __str__(self):
return "{(%i,%i)/%s}" % (self.x, self.y, str(self.data))
def __repr__(self):
return "{(%i,%i)/%s}" % (self.x, self.y, str(self.data))
class Edge(object):
""" An edge. """
def __init__(self, startNode, endNode, weight=0, directed=False):
self._startNode = startNode
self._endNode = endNode
self._weight = weight
self._directed = directed
startNode = property(fget=lambda self: self._startNode)
endNode = property(fget=lambda self: self._endNode)
weight = property(fget=lambda self: self._weight)
directed = property(fget=lambda self: self._directed)
def __str__(self):
return "%s/%s/%i" % (str(id(self.startNode)), str(id(self.endNode)), self.weight)
def __repr__(self):
return "%s/%s/%i" % (str(id(self.startNode)), str(id(self.endNode)), self.weight)
class Graph(object):
""" A graph. """
def __init__(self, directed=False):
self._directed = directed
self._edges = []
self._vertices = []
directed = property(fget=lambda self: self._directed)
edges = property(fget=lambda self: self._edges)
vertices = property(fget=lambda self: self._vertices)
def printVertices(self):
vertexString = ""
for vertex in self.vertices:
vertexString += str(vertex)
return vertexString
def printEdges(self):
edgeString = "% Connect vertices with edges and draw weights\n"
edgeString += "\\foreach \source/ \dest /\weight in {"
for i, edge in enumerate(self.edges):
if i != 0:
edgeString += ", "
edgeString += str(edge)
edgeString += "}\n"
edgeString += "\path[edge] (\source) -- node[weight] {$\weight$} (\dest);"
return edgeString
def printGraph(self):
print("\\begin{tikzpicture}[scale=1.8, auto,swap]")
print("\\foreach \pos/\\name in {" + self.printVertices() + "}")
print("\t\\node[vertex] (\\name) at \pos {$\\name$};")
print(self.printEdges())
print("\end{tikzpicture}")
if '__main__' == __name__:
graph = Graph()
k1 = Node(1,2, 1)
k2 = Node(3,0, 2)
k3 = Node(3,3, 3)
k6 = Node(1,4, 6)
k5 = Node(4,5, 5)
k4 = Node(5,3, 4)
graph._vertices.append(k1)
graph._vertices.append(k2)
graph._vertices.append(k3)
graph._vertices.append(k4)
graph._vertices.append(k5)
graph._vertices.append(k6)
graph._edges.append(Edge(k1,k2, 7))
graph.printGraph()

View file

@ -0,0 +1,24 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=green!30] (0,0) -- (90:.75cm) arc (90:27:.75cm);
\draw[pil,color=black] (0,0) -- node[right=2pt] {$\vec a$} (27:2.2cm);
\draw[pil,color=black] (0,0) -- node[near end, right=-3pt] {$\vec b$} (90:2cm);
\draw(60:0.5cm) node {$\varphi$};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-1
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,24 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=green!30] (0,0) -- (90:.75cm) arc (90:27:.75cm);
\draw[pil,color=black] (0,0) -- node[right=2pt] {$\vec a$} (27:2.2cm);
\draw[pil,color=black] (0,0) -- node[near end, right=-3pt] {$\vec b$} (90:2cm);
\draw(60:0.5cm) node {$\varphi$};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-2
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,30 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=gray!30] (27:0.90) -- node[right=-0.28cm, near end] {$\cdot$} (27:1.08)
arc (27:117:.18cm);
\draw[fill=green!30] (0,0) -- (90:.55cm) arc (90:27:.55cm);
\draw[pil,color=red] (0,0) -- node[right=2pt] {$\vec a$} (27:3cm);
\draw[pil,color=blue] (0,0) -- node[near end, right=-3pt] {$\vec b$} (90:2cm);
\draw[pil,color=violet] (0,0) -- node[near start, right=7pt] {$\vec b_{\vec a}$} (27:0.90cm);
\draw[color=gray, dashed] (27:0.90) -- node[near end, right] {} (90:2cm);
\draw(60:0.35cm) node {$\varphi$};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-3.3
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,23 @@
\documentclass{article}
\usepackage{gensymb}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,decorations.pathreplacing,shapes}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[pil] (0,0) -- node[near end, above] {$\vec a$} (3cm, 0cm);
\draw[pil] (0,0.5cm) -- node[near end, above] {$\vec b$} (2cm,0.5cm);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
\documentclass{article}
\usepackage{gensymb}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,decorations.pathreplacing,shapes}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=gray!30, label=$a$] (0,0) -- node[above, near start] {$\cdot$} (0.5,0)
arc (0:90:0.5cm);
\draw[pil] (0,0) -- node[near end, above] {$\vec a$} (3cm, 0);
\draw[pil] (0,0) -- node[near end, right] {$\vec b$} (90:2cm);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
\documentclass{article}
\usepackage{gensymb}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,decorations.pathreplacing,shapes}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=green!30, label=$a$] (0,0) -- node[above] {$\varphi$} (0.7,0)
arc (0:60:0.7cm);
\draw[pil] (0,0) -- node[near end, above] {$\vec a$} (3cm, 0);
\draw[pil] (0,0) -- node[near end, right] {$\vec b$} (60:2cm);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-4
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,34 @@
\documentclass{article}
\usepackage{gensymb}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=green!30, dotted] (0,0) -- (90:1.00cm) arc (90:25:1.00cm);
\draw[fill=green!30, dotted] (6.8,3) -- (6.8,2) arc (-90:-155:1.00cm);
\draw(6.5,2.5) node {$\scriptstyle \varphi$};
\draw(50:0.6cm) node {$\scriptscriptstyle \varphi = 63 \degree$};
\coordinate[label=left:$\vec F$] (F) at (0cm, 3cm);
\coordinate[label=120:$A$,color=red] (A) at (0cm, 0cm);
\coordinate[label=right:$B$,color=red] (B) at (6.8cm, 3cm);
\draw[->, very thick, color=red] (A) to[] node[above, rotate=27] {$\vec s$} (B);
\draw[pil] (0,0) -- node[near end, right] {$F = 5 \mathrm{N}$} (0, 3cm);
\draw[color=gray, dashed] (0cm,0) -- node {} (6.8cm, 0cm);
\draw[color=gray, dashed] (6.8cm,0) -- node {} (6.8cm, 3cm);
\node (s) at ($(A)!0.5!(B)$) [below,rotate=25] {$s = 3\mathrm{m}$};
\node (txt) at ($(6.8,0)!0.4!(B)$) [below,rotate=90] {$\scriptscriptstyle h = s \cdot \cos(\varphi)$};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-5
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,40 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}[scale=0.8]
% draw the background
\draw [line width=0.1pt, fill=gray!2] (0,0) -- (3, 3) -- (5,0) -- cycle;
% angle gamma
\begin{scope}[shift={(3, 3)}]
\draw[fill=green!30] (0,0) -- (-135:.75cm) arc (-135:-55:.75cm);
\draw (-90:0.5cm) node {$\gamma$};
\end{scope}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (5,0);
\coordinate[label=above:$C$] (C) at (3,3);
\
\draw[->, very thick] (A) to[] node[above] {$\vec c$} (B);
\draw[->, very thick] (C) to[] node[above] {$\vec b$} (A);
\draw[->, very thick] (C) to[] node[above=0.1cm] {$\vec a$} (B);
\coordinate[label=-90:$c$] (c) at ($(A)!0.5!(B)$);
\coordinate[label=-120:$a$] (a) at ($(B)!0.5!(C)$);
\coordinate[label=-45:$b$] (b) at ($(C)!0.5!(A)$);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = dot-product-6
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,24 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\draw[fill=gray!30, label=$a$] (0,0) -- node[above, near start] {$\cdot$} (0.5,0)
arc (0:90:0.5cm);
\draw[pil] (0,0) -- node[near end, above] {$\vec e_1$} (2cm, 0);
\draw[pil] (0,0) -- node[near end, right] {$\vec e_2$} (0, 2cm);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = doubly-linked-list
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,51 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows,positioning}
\tikzset{
squarecross/.style={
draw, rectangle,minimum size=18pt, fill=orange!80,
inner sep=0pt, text=black,
path picture = {
\draw[black]
(path picture bounding box.north west) --
(path picture bounding box.south east)
(path picture bounding box.south west) --
(path picture bounding box.north east);
}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}[
list/.style={
very thick, rectangle split,
rectangle split parts=3, draw,
rectangle split horizontal, minimum size=18pt,
inner sep=5pt, text=black,
rectangle split part fill={blue!20, red!20, blue!20}
},
->, start chain, very thick
]
\node[list,on chain] (A) {\nodepart{second} 12};
\node[list,on chain] (B) {\nodepart{second} 99};
\node[list,on chain] (C) {\nodepart{second} 37};
\node[squarecross] (D) [right=of C] {};
\node[squarecross] (E) [left= of A] {};
\path[*->] let \p1 = (A.three), \p2 = (A.center) in (\x1,\y2) edge [bend left] ($(B.one)+(0,0.2)$);
\path[*->] let \p1 = (B.three), \p2 = (B.center) in (\x1,\y2) edge [bend left] ($(C.one)+(0,0.2)$);
\draw[*->] let \p1 = (C.three), \p2 = (C.center) in (\x1,\y2) -- (D);
\draw[*->] ($(A.one)+(0.2,0.1)$) -- (E);
\path[*->] ($(B.one)+(0.1,0.1)$) edge [bend left] ($(A.three)+(0,-0.05)$);
\path[*->] ($(C.one)+(0.1,0.1)$) edge [bend left] ($(B.three)+(0,-0.05)$);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = equilateral-triangle-heights
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,73 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzset{
%Define standard arrow tip
>=stealth',
% Define arrow style
pil/.style={
->,
thick}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}
% draw the background
\draw [line width=1.5pt, fill=gray!2] (0,0) -- (60:4) -- (4,0) -- cycle;
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (4,0);
\coordinate[label=above:$C$] (C) at (2,3.464);
\coordinate[label=below:$c$](c) at ($ (A)!.5!(B) $);
\coordinate[label=left:$b$](b) at ($ (A)!.5!(C) $);
\coordinate[label=right:$a$](a) at ($ (B)!.5!(C) $);
% angle alpha
\draw[fill=green!30] (0,0) -- (0:0.75cm) arc (0:60:.75cm);
\draw (0.35cm,0.25cm) node {$\alpha$};
% angle beta
\begin{scope}[shift={(4cm,0cm)}]
\draw[fill=green!30] (0,0) -- (-180:0.75cm) arc (180:120:0.75cm);
\draw[color=gray, dashed] (0,0) -- node[sloped, above=-0.1cm] {$\scriptstyle h_b$} (150:3.464cm);
\draw (150:0.5cm) node {$\beta$};
\end{scope}
% angle gamma
\begin{scope}[shift={(60:4)}]
\draw[fill=green!30] (0,0) -- (-120:.75cm) arc (-120:-60:.75cm);
\draw[color=gray, dashed] (0,0) -- node[right=-0.1cm] {$\scriptstyle h_c$} (-90:3.464cm);
\draw (-90:0.5cm) node {$\gamma$};
\end{scope}
% Sign for right angle of h_c
\begin{scope}[shift={(2,0)}]
\draw[fill=gray!30] (0,0) -- node[above=-0.15cm,near start] {$\cdot$} (0:0.18cm)
arc (0:90:.18cm);
\end{scope}
% sign of right angle of h_a
\begin{scope}[shift={(30:3.464cm)}]
\draw[fill=gray!30] (0,0) -- node[near end,right=-0.28cm] {$\cdot$} (-60:0.18cm)
arc (-60:-150:.18cm);
\end{scope}
% sign of right angle of h_b
\begin{scope}[shift={(60:2cm)}]
\draw[fill=gray!30] (0,0) -- node[right=-0.08cm, near start] {$\cdot$} (60:0.18cm)
arc (60:-30:.18cm);
\end{scope}
% Height with label
\draw[color=gray, dashed] (0,0) -- node[sloped, above=-0.1cm] {$\scriptstyle h_a$} (30:3.464cm);
% The triangle
\draw [line width=1.5pt] (0,0) -- (60:4) -- (4,0) -- cycle;
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = equilateral-triangle
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,42 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}[scale=0.8]
% draw the background
\draw [line width=1.5pt, fill=gray!2] (0,0) -- (60:4) -- (4,0) -- cycle;
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (4,0);
\coordinate[label=above:$C$] (C) at (2,3.464);
\coordinate[label=below:$c$](c) at ($ (A)!.5!(B) $);
\coordinate[label=left:$b$] (b) at ($ (A)!.5!(C) $);
\coordinate[label=right:$a$](a) at ($ (B)!.5!(C) $);
% angle alpha
\draw[fill=green!30] (0,0) -- (0:0.75cm) arc (0:60:.75cm);
\draw (0.35cm,0.25cm) node {$\alpha$};
% angle beta
\begin{scope}[shift={(4cm,0cm)}]
\draw[fill=green!30] (0,0) -- (-180:0.75cm) arc (180:120:0.75cm);
\draw (150:0.5cm) node {$\beta$};
\end{scope}
% angle gamma
\begin{scope}[shift={(60:4)}]
\draw[fill=green!30] (0,0) -- (-120:.75cm) arc (-120:-60:.75cm);
\draw (-90:0.5cm) node {$\gamma$};
\end{scope}
% the triangle
\draw [line width=1.5pt] (A) -- (B) -- (C) -- cycle;
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = evaluation-tree
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,26 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt]
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[vertex] {+}
child {
node[vertex] {+}
child {
node[vertex] {+}
child { node[vertex] {i} }
child { node[vertex] {++i} }
}
child { node[vertex] {i++} }
} child {
node[vertex] {++i}
}
;
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/heap/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = heap
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

47
tikz/heap/heap.tex Normal file
View file

@ -0,0 +1,47 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=18pt,inner sep=0pt]
\begin{document}
\begin{preview}
\begin{tikzpicture}[very thick,level/.style={sibling distance=70mm/#1}]
\node [vertex] (r){$-4$}
child {
node [vertex] (a) {$2$}
child {
node [vertex] {$5$}
child {
node [vertex] {$6$}
child {node [vertex] {$20$}}
}
child {
node [vertex] {$9$}
}
}
child {
node [vertex] {$3$}
child {node [vertex] {$19$}}
child {node [vertex] {$7$}}
}
}
child {
node [vertex] {$-3$}
child {
node [vertex] {$8$}
child {node [vertex] {$17$}}
child {node [vertex] {$17$}}
}
child {
node [vertex] {$2$}
child {node [vertex] {$11$}}
child {node [vertex] {$17$}}
}
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = isosceles-triangle-more
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,107 @@
\documentclass{article}
\usepackage{xcolor}
\definecolor{cWinkelhalbierende}{HTML}{00940A}
\definecolor{cSeitenhalbierende}{HTML}{FF0000}
\definecolor{cAchse}{HTML} {94008A}
\definecolor{cMittelsenkrechten}{HTML}{181FED}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (3.2,0);
\coordinate[label=left:$C$] (C) at (1.6,4);
% Draw the background of the triangle
\node[isosceles triangle, isosceles triangle apex angle=44,draw,
inner sep=0pt,anchor=lower side,rotate=90,draw=black,
line width=1.5pt, minimum height=4cm, fill=gray!2]
(triangle) at (1.6,-0.05) {};
% Rechte Winkel
\begin{scope}[shift={($(A)!0.5!(C)$)}, rotate=-22]
\draw[fill=gray!30] (0,0) -- (-180:0.25cm) arc (180:90:0.25cm);
\draw (140:0.15cm) node {$\cdot$};
\end{scope}
\begin{scope}[shift={($(B)!0.5!(C)$)}, rotate=-70]
\draw[fill=gray!30] (0,0) -- (-180:0.25cm) arc (180:90:0.25cm);
\draw (140:0.15cm) node {$\cdot$};
\end{scope}
\begin{scope}[shift={($(A)!0.5!(B)$)}]
\draw[fill=gray!30] (0,0) -- (-180:0.25cm) arc (180:90:0.25cm);
\draw (140:0.15cm) node {$\cdot$};
\end{scope}
% Mittelsenkrechten
% y = m * x + t
% Für die Mittelsenkrechte m_AB gilt ($(A)!0.5!(B)$) ist auf m_AB
% m = - (delta x) / (delta y) = - (A.x - B.x) / (A.y - B.y)
% t = y - m*x
% AB
\draw[color=cAchse, thick] (1.6cm,-0.3) -- node {} (1.6cm, 4.2cm);
% AC
% (0.8, 2) \in Mittelsenkrechte auf b
% m = - (-1.6)/(-4) = - 0.4
% t = 2 + 0.4 * 0.8 = 2.32
% y = -0.4 * x + 2.32
% (0, 2.32) und (3, 1.12)
\draw[color=cMittelsenkrechten] (0,2.32) -- node {} (3, 1.12);
% Umkreismittelpunkt
% x = 1.6
% y = -0.4*1.6 + 2.32 = 1.68
\node [circle,inner sep=1pt,fill=cMittelsenkrechten] at (1.6,1.68) {};
% ((3.2+1.6)/2, (0+4)/2) ) = (2.4, 2) \in Mittelsenkrechte auf a
% 2 = m * 2.4 + t
% m_BC = delta y / delta x = (0-4)/(3.2-1.6) = -2.5 = -5/2
% m = 2/5
% t = y - m*x = 2 - 2.4 * 2/5 = 1.04
% => y = 2/5 * x + 1.04
% (0, 1.04) und (3, 2.24)
\draw[color=cMittelsenkrechten] (0, 1.04) -- node {} (3, 2.24);
% Seitenhalbierende
\draw[color=cSeitenhalbierende,dashed] (A) -- node {} ($(B)!0.5!(C)$);
\draw[color=cSeitenhalbierende,dashed] (B) -- node {} ($(A)!0.5!(C)$);
%\draw[color=red, dashed] (C) -- node {} ($(A)!0.5!(B)$);
% Schwerpunkt
% x = 1.6
\node [circle,inner sep=1pt,fill=cSeitenhalbierende] at (1.6,1.34) {};
% Winkelhalbierende
% apex angle = 44° => alpha = 68° => 34°
\draw[color=cWinkelhalbierende, densely dashed] (A) -- node {} (34:4);
\begin{scope}[shift={($(B)$)}]
\draw (146:4) node (BEnd) {};
\end{scope}
\draw[color=cWinkelhalbierende, densely dashed] (B) -- node {} (BEnd);
%\draw[color=red, dashed] (C) -- node {} ($(A)!0.5!(B)$);
% Inkreismittelpunkt
% x = 1.6
% tan(68/2) = y/x => y = tan(34)*x = 1.48
\node [circle,inner sep=1pt,fill=cWinkelhalbierende] at (1.6,1.08) {};
% Draw the triangle
\node[isosceles triangle, isosceles triangle apex angle=44,draw,
inner sep=0pt,anchor=lower side,rotate=90,draw=black,
line width=1.5pt, minimum height=4cm]
(triangle) at (1.6,-0.05) {};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,25 @@
SOURCE = isosceles-triangle
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,40 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\node[isosceles triangle, isosceles triangle apex angle=44,draw,
inner sep=0pt,anchor=lower side,rotate=90,draw=black,
line width=1.5pt, minimum height=4cm, fill=gray!2] (triangle) at (1.6,-0.05) {};
\draw[fill=green!30] (0,0) -- (0:0.50cm) arc (0:68:.50cm);
\begin{scope}[shift={(3.2cm,0cm)}]
\draw[fill=green!30] (0,0) -- (-180:0.50cm) arc (180:110:0.5cm);
\draw (150:0.35cm) node {$\beta$};
\end{scope}
\begin{scope}[shift={(1.6cm,4cm)}]
\draw[fill=red!30] (0,0) -- (250:.75cm) arc (250:292:.75cm);
\draw (-90:0.5cm) node {$\gamma$};
\end{scope}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (3.2,0);
\coordinate[label=above:$C$] (C) at (1.6,4);
\coordinate[label=below:$c$](c) at ($ (A)!.5!(B) $);
\coordinate[label=left:$b$](b) at ($ (A)!.5!(C) $);
\coordinate[label=right:$a$](a) at ($ (B)!.5!(C) $);
\node[isosceles triangle, isosceles triangle apex angle=44,draw,
inner sep=0pt,anchor=lower side,rotate=90,draw=black,
line width=1.5pt, minimum height=4cm] (triangle) at (1.6,-0.05) {};
\coordinate[label=45:$\alpha$] (Alpha) at (A);
\end{tikzpicture}
\end{preview}
\end{document}

25
tikz/parse-tree/Makefile Normal file
View file

@ -0,0 +1,25 @@
SOURCE = parse-tree
DELAY = 80
DENSITY = 300
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,32 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt]
\begin{document}
\begin{preview}
\begin{tikzpicture}[font=\sffamily,thick,level/.style={sibling distance=50mm/#1}]
\node[vertex] {S}
child {
node[vertex] {A}
child {
node[vertex] {a}
}
child {
node[vertex] {A}
child { node[vertex] {a} }
child {
node[vertex] {A}
child { node[vertex] {$\varepsilon$} }
}
}
} child {
node[vertex] {B}
child { node[vertex] {b} }
}
;
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/path/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = path
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

34
tikz/path/path.tex Normal file
View file

@ -0,0 +1,34 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning, calc}
\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt]
\tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
\begin{document}
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{preview}
\begin{tikzpicture} [scale=1.2]
\node (a)[vertex] at (0,2) {a};
\node (b)[vertex] at (1,1) {b};
\node (c)[vertex] at (3,2) {c};
\node (d)[vertex] at (4,1) {d};
\node (e)[vertex] at (2,0) {e};
\node (f)[vertex] at (1,3) {f};
\node (g)[vertex] at (5,3) {g};
\node (h)[vertex] at (0,1) {h};
\foreach \from/\to in {a/f,f/g,h/b,b/c,c/d,d/e,e/b,f/c}
\draw (\from) -- (\to);
\begin{pgfonlayer}{background}
\foreach \from/\to in {a/f,f/c,c/d,d/e,e/b,b/h}
\draw (\from.center) edge[selected edge] (\to.center);
\end{pgfonlayer}
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = red-black-tree
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,27 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{trees,arrows,positioning, calc}
\tikzstyle{redVertex} =[draw,fill=red, circle,minimum size=18pt,inner sep=0pt, text=white]
\tikzstyle{blackVertex}=[draw,fill=black, circle,minimum size=18pt,inner sep=0pt, text=white]
\tikzstyle{nil} =[draw,fill=black,rectangle,minimum size=18pt,inner sep=0pt, text=white]
\begin{document}
\begin{preview}
\begin{tikzpicture}[font=\sffamily,very thick,level/.style={sibling distance=80mm/#1}]
\node [blackVertex] (r){2}
child {
node [blackVertex] {1}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
child {
node [blackVertex] {3}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = red-black-tree
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,76 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{trees,arrows,positioning, calc}
\tikzstyle{redVertex} =[draw,fill=red, circle,minimum size=18pt,inner sep=0pt, text=white]
\tikzstyle{blackVertex}=[draw,fill=black, circle,minimum size=18pt,inner sep=0pt, text=white]
\tikzstyle{nil} =[draw,fill=black,rectangle,minimum size=18pt,inner sep=0pt, text=white]
\begin{document}
\begin{preview}
\begin{tikzpicture}[font=\sffamily,very thick,level/.style={sibling distance=80mm/#1}]
\node [blackVertex] (r){8}
child {
node [blackVertex] {3}
child {
node [redVertex] {2}
child {
node [blackVertex] {-3}
child {
node [redVertex] {-4}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
child {
node [blackVertex] {2}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
child {
node [blackVertex] {6}
child {
node [redVertex] {5}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
child {
node [redVertex] {7}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
}
child {
node [blackVertex] {17}
child {
node [blackVertex] {9}
child {
node [redVertex] {11}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
child {
node [redVertex] {19}
child {
node [blackVertex] {17}
child {
node [redVertex] {17}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
child {
node [blackVertex] {20}
child {node [nil] {NIL}}
child {node [nil] {NIL}}
}
}
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = right-triangle
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,53 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes,snakes}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\newcommand\XC{4}
\newcommand\ALPHA{30}
\newcommand\XB{{(\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5}}
\newcommand\YB{{sqrt(cos(\ALPHA)*\XC*cos(\ALPHA)*\XC - (\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5*(\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5)}}
% Draw the triangle
\draw[fill=gray!10] (0, 0) coordinate (A)
-- (\XB,\YB) coordinate (C)
-- (\XC, 0) coordinate (B)
-- (0, 0);
% Draw nodes
\node at (A)[anchor=north] {A};
\node at (B)[anchor=north] {B};
\node at (C)[anchor=south] {C};
% Draw edge text
\node (c) at ($(A)!0.50!(B)$) [below,font=\tiny] {Hypothenuse};
\node (b) at ($(A)!0.50!(C)$) [above,rotate=\ALPHA,font=\tiny]
{Ankathete zu Winkel $\alpha$};
\node (a) at ($(B)!0.35!(C)$) [above,rotate={\ALPHA-90},font=\tiny]
{\parbox{2cm}{Gegenkathete\\ zu Winkel $\alpha$}};
% draw alpha
\draw[fill=green!30] (0,0) -- (0:0.75cm) arc (0:\ALPHA:.75cm);
\coordinate[label=right:$\alpha$] (Alpha) at (0.25,0.15);
% draw beta
\begin{scope}[shift={(\XC, 0)}]
\draw[fill=red!30] (0,0) -- (-180:0.50cm) arc (180:{180-(90-\ALPHA)}:0.5cm);
\draw (150:0.35cm) node {$\beta$};
\end{scope}
% draw gamma
\begin{scope}[shift={(\XB, \YB)}]
\draw[fill=blue!30] (0,0) -- ({180+\ALPHA}:0.5cm) arc ({180+\ALPHA}:{180+\ALPHA+90}:0.5cm);
\draw (-0.1, -0.05) node[below] {$\gamma$};
\end{scope}
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = singly-linked-list
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,44 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows}
\tikzset{
squarecross/.style={
draw, rectangle,minimum size=18pt, fill=orange!80,
inner sep=0pt, text=black,
path picture = {
\draw[black]
(path picture bounding box.north west) --
(path picture bounding box.south east)
(path picture bounding box.south west) --
(path picture bounding box.north east);
}
}
}
\begin{document}
\begin{preview}
\begin{tikzpicture}[
list/.style={
very thick, rectangle split,
rectangle split parts=2, draw,
rectangle split horizontal, minimum size=18pt,
inner sep=4pt, text=black,
rectangle split part fill={red!20, blue!20}
},
->, start chain, very thick
]
\node[list,on chain] (A) {12};
\node[list,on chain] (B) {99};
\node[list,on chain] (C) {37};
\node[squarecross] (D) [right=of C] {};
\draw[*->] let \p1 = (A.two), \p2 = (A.center) in (\x1,\y2) -- (B);
\draw[*->] let \p1 = (B.two), \p2 = (B.center) in (\x1,\y2) -- (C);
\draw[*->] let \p1 = (C.two), \p2 = (C.center) in (\x1,\y2) -- (D);
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/stack/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = stack
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

19
tikz/stack/stack.tex Normal file
View file

@ -0,0 +1,19 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{preview}
\begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center, fill=white}]
\node[stack=5] {
\nodepart{two}a
\nodepart{three}c
\nodepart{four}c
\nodepart{five}b
};
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = teststrategien-anschaulich
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,51 @@
\documentclass{article}
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes,snakes, automata}
\usepackage{amsmath,amssymb}
\tikzstyle{midnode}=[
draw=blue!70, % draw the border with 70% transparent blue
rectangle, % the shape of the node is a rectangle
fill=blue!10, % fill the box with 20% blue
text width=1cm,
text centered]
\tikzstyle{smallnode}=[
draw=blue!70, % draw the border with 70% transparent blue
rectangle, % the shape of the node is a rectangle
fill=blue!10, % fill the box with 20% blue
text width=0.4cm,
text centered]
\begin{document}
\begin{preview}
\begin{tikzpicture}[->,>=stealth,auto, very thick, scale=5]
% Draw the vertices.
\node[midnode] (s) {Start};
\node[smallnode, right of=s, node distance=1.8cm] (a) {1};
\node[smallnode, below of=a] (b) {2};
\node[smallnode, right of=a, node distance=1.8cm] (c) {3};
\node[smallnode, below of=c] (d) {4};
\node[smallnode, right of=c, node distance=1.8cm] (e) {5};
\node[midnode, below of=e] (x) {Stopp};
% Connect vertices with edges
\path (s) edge node {} (a);
\path (a) edge node {} (c);
\path (a) edge node {} (b);
\path (b) edge node {} (c);
\path (c) edge node {} (d);
\path (c) edge node {} (e);
\path (d) edge node {} (e);
\path (e) edge node {} (x);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = teststrategien
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,61 @@
\documentclass{article}
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes,snakes, automata}
\usepackage{amsmath,amssymb}
\tikzstyle{textnode}=[
draw=blue!70, % draw the border with 70% transparent blue
rectangle, % the shape of the node is a rectangle
fill=blue!10, % fill the box with 20% blue
text width=4cm,
inner xsep=3pt,
text centered]
\tikzstyle{smallnode}=[
draw=blue!70, % draw the border with 70% transparent blue
rectangle, % the shape of the node is a rectangle
fill=blue!10, % fill the box with 20% blue
text width=1cm,
text centered]
\begin{document}
\begin{preview}
\begin{tikzpicture}[->,>=stealth,auto, very thick]
% Draw the vertices.
\node[textnode] (a) {Pfadüberdeckung};
\node[textnode, below of=a, node distance=4cm] (b) {Zweigüberdeckung};
\node[textnode, below of=b] (c) {Anweisungsüberdeckung};
\node[textnode, right of=a, node distance=5cm] (d) {Mehrfache\\Bedingungsüberdeckung};
\node[textnode, below of=d, node distance=2cm] (e) {Minimal-mehrfache Bedinungsüberdeckung};
\node[textnode, below of=e, node distance=2.2cm] (f) {Einfache\\Bedinungsüberdeckung};
% Legende
\node[smallnode, below of=c, node distance=1.5cm] (x) {x};
\node[smallnode, below of=x] (y) {y};
\draw (x.south) -- (y.north)
node [midway,
right of=x,
node distance=3cm,
draw=none,
text width=4cm]
{Testverfahren x\\subsummiert\\Testverfahren y};
% Connect vertices with edges and draw weights
\path (a) edge node {} (b);
\path (b) edge node {} (c);
\path (d) edge node {} (e);
\path (e) edge node {} (f);
\path (e) edge node {} (b.east);
\path (x) edge node {} (y);
\end{tikzpicture}
\end{preview}
\end{document}

31
tikz/triangle/Makefile Normal file
View file

@ -0,0 +1,31 @@
SOURCE = triangle
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,56 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes,snakes}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{preview}
\begin{tikzpicture}[thick]
\newcommand\XC{4}
\newcommand\ALPHA{30}
\newcommand\XB{{(\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5}}
\newcommand\YB{{sqrt(cos(\ALPHA)*\XC*cos(\ALPHA)*\XC - (\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5*(\XC*(cos(\ALPHA)*cos(\ALPHA) - sin(\ALPHA)*sin(\ALPHA)) + \XC)*0.5)}}
% Draw the triangle
\draw[fill=gray!10] (0, 0) coordinate (A)
-- (\XB,\YB) coordinate (C)
-- (\XC, 0) coordinate (B)
-- (0, 0);
% Draw nodes
\node at (A)[anchor=north] {A};
\node at (B)[anchor=north] {B};
\node at (C)[anchor=south] {C};
% Draw edge text
\node (c) at ($(A)!0.5!(B)$) [below] {c};
\node (b) at ($(A)!0.5!(C)$) [above] {b};
\node (a) at ($(B)!0.6!(C)$) [right] {a};
% draw alpha
\draw[fill=green!30] (0,0) -- (0:0.75cm) arc (0:\ALPHA:.75cm);
\coordinate[label=right:$\alpha$] (Alpha) at (0.25,0.15);
% draw beta
\begin{scope}[shift={(\XC, 0)}]
\draw[fill=red!30] (0,0) -- (-180:0.50cm) arc (180:{180-(90-\ALPHA)}:0.5cm);
\draw (150:0.35cm) node {$\beta$};
\end{scope}
% draw gamma
\begin{scope}[shift={(\XB, \YB)}]
\draw[fill=blue!30] (0,0) -- ({180+\ALPHA}:0.5cm) arc ({180+\ALPHA}:{180+\ALPHA+90}:0.5cm);
\draw (-0.1, -0.05) node[below] {$\gamma$};
\end{scope}
\draw (0, 0) coordinate (X)
-- (\XB,\YB) coordinate (Y)
-- (\XC, 0) coordinate (Z)
-- (0, 0);
\end{tikzpicture}
\end{preview}
\end{document}

View file

@ -0,0 +1,31 @@
SOURCE = url-structure
DELAY = 80
DENSITY = 300
WIDTH = 500
make:
pdflatex $(SOURCE).tex -output-format=pdf
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux
gif:
pdfcrop $(SOURCE).pdf
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
make clean
png:
make
make svg
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
transparentGif:
convert $(SOURCE).pdf -transparent white result.gif
make clean
svg:
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
pdf2svg $(SOURCE).pdf $(SOURCE).svg
# Necessary, as pdf2svg does not always create valid svgs:
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg

View file

@ -0,0 +1,43 @@
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage{tikz}
\usetikzlibrary{shapes,snakes}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{preview}
% Define box and box title style
\tikzstyle{mybox} = [
draw=red,
fill=blue!20,
very thick,
rectangle,
rounded corners,
inner sep=10pt,
inner ysep=20pt
]
\tikzstyle{fancytitle} =[fill=red, text=white]
\begin{tikzpicture}
\node [mybox] (box){
\begin{minipage}{0.9\textwidth}
$\underbrace{\text{http}}_{\text{protocol}}
\text{://}
\underbrace{
\overbrace{\text{martin-thoma}}^\text{2\textsuperscript{nd} level domain}
\text{.}
\overbrace{\text{com}}^\text{TLD}
}_\text{hostname}
\underbrace{\text{/why-to-study-math/}}_\text{path}
\text{\#}
\underbrace{\text{Math\_is\_fun}}_\text{Fragment identifier}$
\end{minipage}
};
\node[fancytitle, right=10pt] at (box.north west) {The URL};
\end{tikzpicture}
\end{preview}
\end{document}