diff --git a/workshops/latex/beamer/README.md b/workshops/latex/beamer/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..739e4c08a4f4997e88b7d776c24d4d80707b8212
--- /dev/null
+++ b/workshops/latex/beamer/README.md
@@ -0,0 +1,8 @@
+### Beamer presentation
+Build:
+```bash
+mkdir pgf-img
+lualatex beamer
+make -f beamer.makefile # this takes some time
+lualatex beamer
+```
diff --git a/workshops/latex/beamer/animation.py b/workshops/latex/beamer/animation.py
new file mode 100644
index 0000000000000000000000000000000000000000..168edcc0d3cd7ff4d9789d10a30d1a0a2d9ead9a
--- /dev/null
+++ b/workshops/latex/beamer/animation.py
@@ -0,0 +1,70 @@
+# Create a very basic animation as an example
+# This is a simple, but not the best way of implementing this animation.
+#
+# This script should work with both python2 and python3
+
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib.animation import FuncAnimation
+
+# Resolution of the video (should be at least 200 for a good quality)
+dpi = 400
+# Number of time steps, for which the plot is calculated
+nt = 500
+# Number of points on the x axis
+nx = 400
+x = np.linspace(-1, 1, nx)
+
+# Calculate a function of x and time, which will be shown in the animation
+# The function is a wavefunction of a quantum mechanical particle in a one dimensional box.
+
+y1 = np.cos(np.pi*x/2)
+y2 = np.sin(np.pi*x)
+y3 = np.cos(3*np.pi*x/2)
+y4 = np.sin(2*np.pi*x)
+e1 = 0.5
+e2 = 1
+e3 = 1.5
+e4 = 2
+
+# psi(t) returns an array of complex y values.
+psi = lambda t: 0.4*np.exp(2j*np.pi*e1*t)*y1 + 0.3*np.exp(2j*np.pi*e2*t)*y2 - 0.2*np.exp(2j*np.pi*e3*t)*y3 - 0.1*np.exp(2j*np.pi*e4*t)*y4
+
+y = psi(0)
+
+# Set up a plot
+fig, ax = plt.subplots()
+fig.set_size_inches(8/2.54, 5/2.54)
+ax.set_xlim(-1, 1)
+ax.set_ylim(0, 0.85)
+
+# Show the phase of the complex values in psi(t) as a color plot
+img = ax.imshow(np.angle(y).reshape((1,nx)), cmap=plt.cm.hsv, norm=plt.Normalize(-np.pi,np.pi), extent=[-np.pi,np.pi,0,0.85])
+
+# Clip this color plot, such that it is only shown in the area defined by 0 < y < abs( psi(t) )
+fill, = ax.fill(x, np.abs(y), facecolor='none')
+img.set_clip_path(fill)
+
+# Plot the absolute value of psi as a black line
+plot, = ax.plot(x, np.abs(y), color='black')
+
+# Set aspect ratio
+ax.set_aspect(1.5)
+
+# Save the plot to an image
+fig.savefig("image.jpg", dpi=dpi)
+
+# Define a function which updates the data
+def calc_data(t):
+    y = psi(t)
+    fill.set_xy( np.array((x, np.abs(y))).T )
+    img.set_data(np.angle(y).reshape((1, nx)))
+    img.set_clip_path(fill)
+    plot.set_ydata(np.abs(y))
+
+# Define an array of times, for which the plot will be shown
+times = np.linspace(0, 2*np.pi, nt, endpoint=False)
+# Create an animation
+anm = FuncAnimation(fig, calc_data, times)
+# Save the animation
+anm.save("movie.mp4", fps=50, dpi=dpi)
diff --git a/workshops/latex/beamer/beamer.tex b/workshops/latex/beamer/beamer.tex
new file mode 100644
index 0000000000000000000000000000000000000000..df596a5317d9b0c2612ccf4ff1dfa5de9da2c0b4
--- /dev/null
+++ b/workshops/latex/beamer/beamer.tex
@@ -0,0 +1,396 @@
+\documentclass[aspectratio=169, xcolor=dvipsnames, ngerman]{beamer}
+
+%\usepackage[utf8]{inputenc}
+%\usepackage[T1]{fontenc}
+\usepackage[ngerman]{babel}
+%\usepackage{lmodern}
+\usepackage{verbatim}
+\usepackage{dtk-logos}
+\usepackage{tikz}
+\usetikzlibrary{backgrounds, fit, matrix, calc}
+\usepackage{listings}
+\usepackage{calc}
+\usepackage{multimedia}
+\usepackage{mathtools}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{amssymb}
+\usepackage{amsfonts}
+\usepackage{dsfont}
+\graphicspath{{figures/}{examples/}}
+\usefonttheme{professionalfonts}
+
+\newcommand{\red}[1]{{\color{red}#1}}
+\newcommand{\blue}[1]{{\color{blue}#1}}
+\newcommand{\green}[1]{{\color[rgb]{0,.5,0}#1}}
+\newcommand{\gray}[1]{{\color{gray}#1}}
+\newcommand{\black}{\color{black}}
+
+%%% TIKZ SETTINGS
+
+%% packages
+\usepackage{pgf}
+\usepackage{tikz}
+\usepackage{pgfplots}
+
+%% libraries
+\usetikzlibrary{external}
+\usetikzlibrary{backgrounds, fit, decorations.pathreplacing, shapes.geometric, matrix, calc, fadings}
+
+
+%% externalize
+\tikzexternalize[shell escape=-shell-escape, prefix=pgf-img/]
+\tikzset{
+  external/mode=list and make,
+  external/system call={
+    lualatex \tikzexternalcheckshellescape -halt-on-error 
+  -interaction=batchmode -jobname="\image" "\texsource"},
+  external/optimize command away=\includepdf,
+  %external/optimize=false,
+}
+\tikzsetfigurename{figure_}
+\pgfplotsset{compat=1.16}
+
+\newlength\termlength
+\newcommand{\Underbrace}[3][]{% Surprisingly, this seems to work.
+  \ensuremath{%
+    \mathrlap{%
+      \setlength{\termlength}{\widthof{$#3$}-\widthof{$#2$}}%
+      \hspace*{0.5\termlength}%
+      \underbrace{#3}^{#1}_{\displaystyle#2}%
+    }%
+    \hphantom{#3}%
+  }%
+}
+
+
+\hypersetup{unicode=true}
+
+\setmonofont{FiraCode}
+
+\usetheme{OSAK}
+\addtobeamertemplate{frametitle}{}{\vspace{-6pt}}
+
+\lstset{
+  basicstyle=\footnotesize\ttfamily,
+  language={[LaTeX]TeX},
+  texcsstyle=*\color{Mahogany}\bfseries,
+  commentstyle=\itshape\color{RoyalBlue},
+  keywordstyle=\color{RoyalBlue}\bfseries,
+  moretexcs={lstset,subsubsection,paragraph,subsection,color,sl,textcolor,lstinputlisting,newfontfamily,fontsize,section,documentclass,begin,includegraphics,hello,bye,setmainlanguage,setlength},
+  morekeywords={center,document,flushleft,flushright,itemize,enumerate,tabular,article,polyglossia,geometry,amsmath,graphicx,xcolor,hyperref,alert,frame,example,definition,theorem,proof,block,column,columns,exampleblock,alertblock,only,onslide},
+  moredelim=**[is][\smash]{@}{@}
+}
+
+\makeatletter
+\newcommand\notsotiny{\@setfontsize\notsotiny{7}{8}}
+\makeatother
+\setbeamersize{text margin left=6mm, text margin right=6mm}
+
+% TODO Titel & Autoren anpassen!
+\date{\today}
+\title[\LaTeX-Workshop]{\LaTeX-Beamer}
+\subtitle{Präsentationen mit \LaTeX}
+\author{OSAK-Mitglied \#42}
+\institute[OSAK]{
+  Open Source Arbeitskreis der \\
+  Fachschaft Mathematik/Physik/Informatik an der RWTH Aachen \\
+  und der Aachener Linux User Group
+}
+
+\newlength\marginwidth
+\newcommand\marginbox[3][2pt]{
+  % USAGE: \marginbox[margin width]{width}{content}
+  % TODO: width is set manually such that it fits real width!
+  \setlength\marginwidth{#1}
+  \begin{tikzpicture}[even odd rule, scale=1]
+    \node[anchor=north west] (text) {%
+      \begin{minipage}{#2-2\marginwidth-10pt}%
+        #3%
+      \end{minipage}%
+    };
+    \begin{pgfonlayer}{background}
+      \node[draw opacity=.5, draw=blue, line width=#1, inner sep=2pt, fit = (text)] {};
+    \end{pgfonlayer}
+  \end{tikzpicture}
+}
+
+\begin{document}
+
+\begin{frame}
+  \titlepage
+\end{frame}
+
+\begin{frame}{Inhaltsverzeichnis}
+  \tableofcontents
+\end{frame}
+
+\section{Was ist \LaTeX-Beamer}
+\begin{frame}{Was ist \LaTeX-Beamer?}
+  \null\hspace{.25\textwidth}\begin{minipage}{.5\textwidth}\lstinputlisting[basicstyle=\large]{examples/documentclass-beamer.tex}\end{minipage}
+  \begin{itemize}
+    \item Dokumentklasse für diese Präsentation
+    \item Saubere Formatierung
+    \item teilweise automatische Formatierung
+    \item Praktisch für Formeln, Theoreme
+    %\item<2-> Overlays
+    %\item Freie Software
+    %\item Ausgabe als PDF (portabel)
+    \item<2-> Beispiel: Euklids Präsentation
+  \end{itemize}
+\end{frame}
+
+% TODO: Installation testen?
+
+\section{Beispiel: Euklids Präsentation}
+\begin{frame}{Was sind Primzahlen}
+  \begin{columns}[c]
+    \begin{column}{.5\textwidth}
+      Eine Primzahl hat genau zwei Teiler.
+    \end{column}
+    \begin{column}{.5\textwidth}
+      \lstinputlisting{examples/euklid1.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\subsection{Was sind Primzahlen}
+\begin{frame}{Was sind Primzahlen}
+  \begin{columns}[c]
+    \begin{column}{.5\textwidth}
+      \begin{definition}{Primzahl}
+        Eine Primzahl hat genau zwei Teiler.
+      \end{definition}
+      \begin{example}
+        \begin{itemize}
+          \item 2 ist Primzahl (Teiler: 1, 2)
+          \item 3 ist Primzahl (Teiler: 1, 3)
+          \item 4 ist keine Primzahl (Teiler: 1, 2, 4)
+        \end{itemize}
+      \end{example}
+    \end{column}
+    \begin{column}{.5\textwidth}
+      \lstinputlisting{examples/euklid2.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\begin{frame}{Was sind Primzahlen}
+  \begin{columns}[c]
+    \begin{column}{.5\textwidth}
+      \begin{definition}{Primzahl}
+        Eine \alert{Primzahl} hat genau zwei Teiler.
+      \end{definition}
+      \begin{example}
+        \begin{itemize}
+          \item 2 ist Primzahl (Teiler: 1, 2)
+          \item 3 ist Primzahl (Teiler: 1, 3)
+          \item 4 ist \alert{keine} Primzahl (Teiler: 1, \alert{2}, 4)
+        \end{itemize}
+      \end{example}
+    \end{column}
+    \begin{column}{.5\textwidth}
+      \lstinputlisting{examples/euklid3.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\subsection{Keine größte Primzahl}
+\OSAKthemenologo
+\begin{frame}{Keine größte Primzahl}
+  \begin{columns}[c]
+    \begin{column}{.5\textwidth}
+      \begin{theorem}
+        Es gibt keine größte Primzahl.
+      \end{theorem}
+      \begin{proof}
+        \begin{enumerate}
+          \setlength\itemindent{-6pt}%
+          \item Angenommen $p$ ist die größte Primzahl.
+          \item Sei $q$ das Produkt der ersten $p$ Zahlen.
+          \item $q+1$ ist durch keine davon teilbar.
+          \item Damit ist $q+1$ Primzahl und größer als $p$.
+        \end{enumerate}
+      \end{proof}
+    \end{column}
+    \begin{column}{.5\textwidth}
+      \lstinputlisting{examples/euklid4.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\begin{frame}{Keine größte Primzahl}
+  \begin{columns}[c]
+    \begin{column}{.5\textwidth}
+      \begin{theorem}
+        Es gibt keine größte Primzahl.
+      \end{theorem}
+      \begin{proof}
+        \begin{enumerate}
+          \setlength\itemindent{-6pt}%
+          \item Angenommen $p$ ist die größte Primzahl.
+          \item<2-> Sei $q$ das Produkt der ersten $p$ Zahlen.
+          \item<3-> $q+1$ ist durch keine davon teilbar.
+          \item<3-> Damit ist $q+1$ Primzahl und größer als $p$.
+        \end{enumerate}
+      \end{proof}
+    \end{column}
+    \begin{column}{.5\textwidth}
+      \lstinputlisting{examples/euklid5.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\section{Strukturierung von Folien}
+\begin{frame}{Struktur einer Folie}
+  \begin{columns}[c]
+    \begin{column}{.27\textwidth}
+      Erste Spalte
+    \end{column}
+    \hfill%
+    \begin{column}{.27\textwidth}
+      Zweite Spalte
+    \end{column}
+    \hfill%
+    \begin{column}{.44\textwidth}
+      \lstinputlisting{examples/columns1.tex}
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\begin{frame}[t]{Struktur einer Folie}
+  \vspace*{-6mm}%
+  \begin{columns}[t]
+    \begin{column}{.52\textwidth}
+      \null\vspace*{16mm}%
+      \begin{columns}
+        \begin{column}{.45\textwidth}
+          \begin{block}{Einfacher Block}
+            Strucktur durch Blöcke
+          \end{block}
+        \end{column}
+        \onslide<1,3->
+        \begin{column}{.45\textwidth}
+          \begin{exampleblock}{Beispiel}
+            Beispielblock
+          \end{exampleblock}
+        \end{column}
+      \end{columns}
+      \onslide<1,4->
+      \begin{alertblock}{Wichtiger Block}
+        Dieser Block ist immer rot.
+      \end{alertblock}
+    \end{column}
+    \hfill%
+    \onslide<1->
+    \begin{column}{.48\textwidth}
+      \only<1>{\lstinputlisting{examples/columns2.tex}}%
+      \only<2->{\lstinputlisting{examples/columns3.tex}}%
+    \end{column}
+  \end{columns}
+\end{frame}
+
+\section{Was beamer noch kann}
+\begin{frame}{Videos}
+  \vspace*{-6mm}%
+  \begin{center}
+    \movie[width=.5\textwidth, height=.3125\textwidth, loop]{}{movie.mp4}\\
+    Wellenfuntion im eindimensionalen Kastenpotential
+  \end{center}
+\end{frame}
+
+\newcount\timecounter
+\begin{frame}{Einfache Animationen}
+  \animate<2-25>
+  \animatevalue<1-25>{\timecounter}{0}{100}
+  \null\hspace{\the\timecounter pt}
+  \begin{minipage}{.3\textwidth}
+    \begin{block}{Animation}
+      Dieser Block bewegt sich.
+    \end{block}
+  \end{minipage}
+  \\[5mm]
+  \animate<27-40>
+  \animatevalue<26-40>{\timecounter}{100}{0}
+  \begin{colormixin}{\the\timecounter!averagebackgroundcolor}
+    Dieser Text wird ausgeblendet.
+  \end{colormixin}
+\end{frame}
+
+\begin{frame}{TikZ Beispiel: Graphen in Tight Binding}
+  \begin{overprint}
+    Näherung der Bandstruktur von Graphen
+    \vspace*{-1mm}
+    \begin{columns}[T]
+      \begin{column}[T]{0.5\textwidth}
+        \begin{block}{Tight Binding Model}
+          \vspace*{-1mm}
+          \begin{itemize}
+            \item Honigwabengitter
+            \item Nur \red{Hüpfen} zu \green{nächsten Nachbarn}
+          \end{itemize}
+          \vspace*{-2mm}
+          \begin{align*}
+            \mathcal{H}
+            &=-\red{t} \sum_{\green{\left<i,j\right>}}a_\green{i}^\dagger a_\green{j} \\
+            &=-\sum_{\mathbf{m}, \mathbf{n}, \alpha, \beta}
+            \red{t}\green{_{\alpha\beta}(\mathbf{m})} a_{\alpha\,(n+m)}^\dagger a_{\beta\,n}
+          \end{align*}
+          \vspace*{-1mm}
+        \end{block}
+      \end{column}
+      \begin{column}[T]{0.5\textwidth}
+        \vspace*{-4.5mm}
+        \tikzsetnextfilename{graphene3d}
+        \hspace*{3mm}%
+        \begin{tikzpicture}[scale=1]
+          \begin{axis}[
+              view/h=33,
+              axis lines=none,
+              width=8.3cm,
+              height=8.5cm,
+              xmin=-4.4, xmax=4.4,
+              ymin=-4.4, ymax=4.4,
+              zmin=-3.1, zmax=3.1,
+            ]
+            \addplot3[
+                mesh,
+                %surf,
+                %shader=interp,
+                samples=50,
+                domain=-4.3:4.3,
+                y domain=-4.3:4.3,
+              ] { -sqrt(1+4*cos(\y/2 r)^2+4*cos(\y/2 r)*cos(sqrt(3)*\x/2 r)) };
+            \addplot3[
+                mesh,
+                %surf,
+                %shader=interp,
+                samples=50,
+                domain=-4.3:4.3,
+                y domain=-4.3:4.3,
+              ] { sqrt(1+4*cos(\y/2 r)^2+4*cos(\y/2 r)*cos(sqrt(3)*\x/2 r)) };
+          \end{axis}
+        \end{tikzpicture}
+        \vspace*{-12mm}
+      \end{column}
+    \end{columns}
+    \onslide<2->{
+      \vspace*{1.5mm}
+      $\implies$ Energieeigenzustände:
+      $\quad\displaystyle
+        E(\mathbf{k})
+        = \pm \red{t}%
+            \Underbrace{%
+              \sqrt{1+4\cos^2\Big( \frac a2 k_y \Big)+4\cos\Big( \frac a2 k_y \Big)\cos\Big( \sqrt3 \frac a2 k_x \Big)}%
+            }{\left|1+e^{-i\mathbf{k}\cdot\mathbf{a_2}}+e^{-i\mathbf{k}\cdot(\mathbf{a_1}+\mathbf{a_2})}\right|}%
+      $
+    }
+  \end{overprint}
+\end{frame}
+
+\end{document}
+
+\begin{comment}
+vim:ts=2:spelllang=de:fo=want:expandtab
+\end{comment}
+
diff --git a/workshops/latex/beamer/examples/columns1.tex b/workshops/latex/beamer/examples/columns1.tex
new file mode 100644
index 0000000000000000000000000000000000000000..bc7f67511b12341fcf52a96112322b80ce090d2a
--- /dev/null
+++ b/workshops/latex/beamer/examples/columns1.tex
@@ -0,0 +1,10 @@
+\begin{frame}{Struktur eine Folie}
+  \begin{columns}
+    \begin{column}{0.45\textwidth}
+      Erste Spalte
+    \end{column}
+    \begin{column}{0.45\textwidth}
+      Zweite Spalte
+    \end{column}
+  \end{columns}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/columns2.tex b/workshops/latex/beamer/examples/columns2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b9ae82a24450225eb64ee6887e7f213aae5e097c
--- /dev/null
+++ b/workshops/latex/beamer/examples/columns2.tex
@@ -0,0 +1,17 @@
+\begin{frame}{Struktur eine Folie}
+  \begin{columns}
+    \begin{column}{.45\textwidth}
+      \begin{block}{Einfacher Block}
+        Strucktur durch Blöcke
+      \end{block}
+    \end{column}
+    \begin{column}{.45\textwidth}
+      \begin{exampleblock}{Beispiel}
+        Beispielblock
+      \end{exampleblock}
+    \end{column}
+  \end{columns}
+  \begin{alertblock}{Wichtiger Block}
+    Dieser Block ist immer rot.
+  \end{alertblock}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/columns3.tex b/workshops/latex/beamer/examples/columns3.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b5d80d28d0fa1e193b5c33fc0a28db6772cf720a
--- /dev/null
+++ b/workshops/latex/beamer/examples/columns3.tex
@@ -0,0 +1,19 @@
+\begin{frame}{Struktur eine Folie}
+  \begin{columns}
+    \begin{column}{.45\textwidth}
+      \begin{block}{Einfacher Block}
+        Strucktur durch Blöcke
+      \end{block}
+    \end{column}
+    \onslide<2->
+    \begin{column}{.45\textwidth}
+      \begin{exampleblock}{Beispiel}
+        Beispielblock
+      \end{exampleblock}
+    \end{column}
+  \end{columns}
+  \onslide<3->
+  \begin{alertblock}{Wichtiger Block}
+    Dieser Block ist immer rot.
+  \end{alertblock}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/documentclass-beamer.tex b/workshops/latex/beamer/examples/documentclass-beamer.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f33ab2701c3cfde0688f4b41972ec0be28ce6dfe
--- /dev/null
+++ b/workshops/latex/beamer/examples/documentclass-beamer.tex
@@ -0,0 +1 @@
+\documentclass{beamer}
diff --git a/workshops/latex/beamer/examples/euklid1.tex b/workshops/latex/beamer/examples/euklid1.tex
new file mode 100644
index 0000000000000000000000000000000000000000..09b4230b2c49046e468c714f82f528f21960f2fe
--- /dev/null
+++ b/workshops/latex/beamer/examples/euklid1.tex
@@ -0,0 +1,3 @@
+\begin{frame}{Was sind Primazahlen}
+  Eine Primzahl hat genau zwei Teiler.
+\end{frame}
diff --git a/workshops/latex/beamer/examples/euklid2.tex b/workshops/latex/beamer/examples/euklid2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8da2c52e93879c878dfe8e8b9b4babc201734f52
--- /dev/null
+++ b/workshops/latex/beamer/examples/euklid2.tex
@@ -0,0 +1,14 @@
+\begin{frame}{Was sind Primzahlen}
+  \begin{definition}{Primzahl}
+    Eine Primzahl hat
+    genau zwei Teiler.
+  \end{definition}
+  \begin{example}
+    \begin{itemize}
+      \item 2 ist Primzahl (Teiler: 1, 2)
+      \item 3 ist Primzahl (Teiler: 1, 3)
+      \item 4 ist keine Primzahl
+        (Teiler: 1, 2, 4)
+    \end{itemize}
+  \end{example}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/euklid3.tex b/workshops/latex/beamer/examples/euklid3.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d529e66df840f847ce524c5b489ae213cc3a05e8
--- /dev/null
+++ b/workshops/latex/beamer/examples/euklid3.tex
@@ -0,0 +1,14 @@
+\begin{frame}{Was sind Primzahlen}
+  \begin{definition}{Primzahl}
+    Eine @\alert{Primzahl}@ hat
+    genau zwei Teiler.
+  \end{definition}
+  \begin{example}
+    \begin{itemize}
+      \item 2 ist Primzahl (Teiler: 1, 2)
+      \item 3 ist Primzahl (Teiler: 1, 3)
+      \item 4 ist @\alert{keine}@ Primzahl
+        (Teiler: 1, @\alert{2}@, 4)
+    \end{itemize}
+  \end{example}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/euklid4.tex b/workshops/latex/beamer/examples/euklid4.tex
new file mode 100644
index 0000000000000000000000000000000000000000..6019cf001b21b87ce5005d68b044f3e64f8cc617
--- /dev/null
+++ b/workshops/latex/beamer/examples/euklid4.tex
@@ -0,0 +1,17 @@
+\begin{frame}{Keine größte Primzahl}
+  \begin{theorem}
+    Es gibt keine größte Primzahl.
+  \end{theorem}
+  \begin{proof}
+    \begin{enumerate}
+      \item Angenommen $p$ ist die
+        größte Primzahl.
+      \item Sei $q$ das Produkt der
+        ersten $p$ Zahlen.
+      \item $q+1$ ist durch keine
+        davon teilbar.
+      \item Damit ist $q+1$ Primzahl
+        und größer als $p$.
+    \end{enumerate}
+  \end{proof}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/euklid5.tex b/workshops/latex/beamer/examples/euklid5.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0e062c223bca9b9cc9c9725d368fbdc070a01e3d
--- /dev/null
+++ b/workshops/latex/beamer/examples/euklid5.tex
@@ -0,0 +1,17 @@
+\begin{frame}{Keine größte Primzahl}
+  \begin{theorem}
+    Es gibt keine größte Primzahl.
+  \end{theorem}
+  \begin{proof}
+    \begin{enumerate}
+      \item Angenommen $p$ ist die
+        größte Primzahl.
+      \item<2-> Sei $q$ das Produkt der
+        ersten $p$ Zahlen.
+      \item<3-> $q+1$ ist durch keine
+        davon teilbar.
+      \item<3-> Damit ist $q+1$ Primzahl
+        und größer als $p$.
+    \end{enumerate}
+  \end{proof}
+\end{frame}
diff --git a/workshops/latex/beamer/examples/frame.tex b/workshops/latex/beamer/examples/frame.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8a187abef8bb2ea175ac28f9d8205f3e8983c6a9
--- /dev/null
+++ b/workshops/latex/beamer/examples/frame.tex
@@ -0,0 +1,3 @@
+\begin{frame}{Titel}
+  Inhalt
+\end{frame}