Erste Version Vorlagen zur Erstellung von Vorträgen mit LaTeX

This commit is contained in:
André Hilbig 2015-03-28 12:33:20 +01:00
commit 622c1c0fd7
15 changed files with 7236 additions and 0 deletions

19
.gitignore vendored Executable file
View File

@ -0,0 +1,19 @@
*.*~
*.SET
*.ods#
*.aux
*.bbl
*.blg
*.dvi
*.glo
*.gls
*.ilg
*.ind
*.lof
*.log
*.swp
*.toc
*.tps
*.rtf
*.tex.backup
*.pdf

BIN
Myriad.sty Normal file

Binary file not shown.

264
ahilbig-comics.sty Normal file
View File

@ -0,0 +1,264 @@
% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-comics.sty |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\ProvidesPackage{ahilbig-comics}
\@ifclassloaded{beamer}{}{\RequirePackage{beamerarticle}}
\RequirePackage{emerald}
\RequirePackage{tikz}
\usetikzlibrary{calc,matrix}
\pgfkeys{/comics/.cd,
professor says/.code=\ddiprofessorsays{#1},
professor thinks/.code=\ddiprofessorthinks{#1},
student says/.code=\ddistudentsays{#1},
student thinks/.code=\ddistudentthinks{#1},
bingo/.code={\alt<article>{\ddibingo#1}{\def\ddibingonow{\ddibingo#1}}},
done/.code=\ddicomicdone,
}
\def\ddicomicpicture[#1]{
\begin{tikzpicture}[baseline={([yshift=1.2cm]people)},inner sep=0pt,outer sep=0pt]
\coordinate (last) at (0,0);
\coordinate (last professor) at (0,0);
\coordinate (last student) at (0,0);
\ddicomicspokendonefalse
\def\ddibingonow{}
\pgfkeys{/comics/.cd,#1,done}
\end{tikzpicture}
}
\mode
<article>
\def\ddicomic[#1]{
{%
\setlength{\marginparsep}{.65cm}%
\setlength{\marginparwidth}{4.1cm}%
\marginpar{%
\ddicomicpicture[#1]
}%
}\refstepcounter{framenumber}%
\ignorespaces%
}
\mode
<presentation>
\def\ddicomic[#1]{
\begin{frame}
\begin{center}
\ddicomicpicture[#1]
\end{center}
\end{frame}
}
\mode
<all>
\newif\ifddicomicspokendone
\newif\ifddicomicspokenprofessor
\newif\ifddicomicspokenstudent
\newif\ifddicomicthoughtprofessor
\newif\ifddicomicthoughtstudent
\def\ddicomicdone{
\ifddicomicspokendone\else\ddicomicpeople\fi
\ifddicomicthoughtprofessor
\draw[overlay,black!50]
{
[shift=(people),xshift=.3cm,yshift=.5cm]
\foreach \angle/\radius in {0/1,20/1.2,40/1.4,60/1.6,80/1.7}
{ (90+\angle:.5cm) circle[radius=\radius*1pt] }
let \p1 = ($ (people) - (professor thinks) + (0,10pt) $)
in \foreach \pos in {3,8,...,\y1} { (-.5cm,-\pos pt) circle
[radius=1.7pt] \pgfextra{\global\let\lastpos\pos} }
(-.5cm+3pt,-\lastpos pt-4pt) circle [radius=1.7pt]
};
\fi
\ifddicomicthoughtstudent
\draw[overlay,black!50]
{
[shift=(people),xshift=3.9cm,yshift=.6cm]
\foreach \angle/\radius in {10/1.2,40/1.4,80/1.7}
{ (90-\angle:.3cm) circle[radius=\radius*1pt] }
let \p1 = ($ (people) - (student thinks) + (0,10pt) $)
in \foreach \pos in {3,8,...,\y1} { (.3cm,-\pos pt) circle
[radius=1.7pt] \pgfextra{\global\let\lastpos\pos} }
(.3cm-3pt,-\lastpos pt-4pt) circle [radius=1.7pt]
};
\fi
}
\def\ddibingo#1#2#3#4#5#6#7#8#9{%
\alt<presentation>{\tikzset{where/.style={matrix anchor=south east,at={(-20pt,10pt)}}}}{\tikzset{where/.style={matrix anchor=north west,at=(last)}}}
\matrix [where,anchor=center] (last bingo)
[text width=1.1cm,align=center,matrix of nodes, inner sep=2pt,
nodes={fill=black!10, anchor=center, minimum height=1.2cm, minimum width=1.2cm}, column sep=1mm, row sep=1mm,
execute at begin
cell=\ECFAugie\fontsize{6}{7}\selectfont\hskip0pt,ampersand replacement=\&]
{#1\par\&#2\par\&#3\par\\#4\par\&#5\par\&#6\par\\#7\par\&#8\par\&#9\par\\};
\node [above] at ([yshift=1em]last bingo.north)
{\ECFAugie\fontsize{8}{9}\selectfont Bingo gegen Langeweile};
\coordinate (last) at ([yshift=-2em]last bingo.south west);
}
\newbox\testbox
\long\def\ddiprofessorsays#1{%
\node [below right] (last professor) at (last)
[text width=3.5cm,align=left]
{\ECFAugie \fontsize{8}{9}\selectfont\ignorespaces#1\par};
\coordinate (last) at ([yshift=-1em]last professor.south west);
\ddicomicspokenprofessortrue
}
\newif\ifddicomicwide
\def\dditestwide#1{
\pgfinterruptpicture%
\setbox\testbox=\hbox{\ECFAugie \fontsize{8}{9}\selectfont #1}%
\ifdim\wd\testbox>3.5cm%
\global\ddicomicwidetrue%
\else%
\global\ddicomicwidefalse%
\fi%
\endpgfinterruptpicture%
}
\long\def\ddistudentsays#1{%
\dditestwide{#1}
\node [below right] (last student) at (last)
[text width=3.5cm,xshift=5mm,align/.expanded=\ifddicomicwide
left\else flush right\fi]
{\ECFAugie \fontsize{8}{9}\selectfont\ignorespaces#1\par};
\coordinate (last) at ([xshift=-5mm,yshift=-1em]last student.south west);
\ddicomicspokenstudenttrue
}
\long\def\ddiprofessorthinks#1{%
\ifddicomicspokendone\else\ddicomicpeople\fi
\node [below right] (x) at (last)
[text width=3.5cm,align=left,text=black!50]
{\ECFAugie \fontsize{8}{9}\selectfont\ignorespaces#1\par};
\coordinate (last) at ([yshift=-1em]x.south west);
\ifddicomicthoughtprofessor
\else
\ddicomicthoughtprofessortrue
\coordinate (professor thinks) at (x.north west);
\fi
}
\long\def\ddistudentthinks#1{%
\dditestwide{#1}
\ifddicomicspokendone\else\ddicomicpeople\fi
\node [below right] (x) at (last)
[xshift=5mm,text width=3.5cm,align/.expanded=\ifddicomicwide
left\else flush right\fi,text=black!50]
{\ECFAugie \fontsize{8}{9}\selectfont\ignorespaces#1\par};
\coordinate (last) at ([xshift=-5mm,yshift=-1em]x.south west);
\ifddicomicthoughtstudent
\else
\ddicomicthoughtstudenttrue
\coordinate (student thinks) at (x.north east);
\fi
}
\def\ddicomicpeople{%
\ddicomicspokendonetrue
\begin{scope}[shift=(last),yshift=-1.6cm]
% Professor
\begin{scope}[shift={(0.5,1)}]
\node (head) [minimum size=6pt, draw, inner sep=0pt, circle] {};
\draw (head.south) -- ++(0,-7pt) coordinate (groin);
\draw (groin) -- ++(-70:8pt) (groin) -- ++(-110:8pt);
\draw ([yshift=-2pt]head.south) coordinate (shoulders) -- ++(10:5pt) (shoulders) -- ++(-30:5pt);
\end{scope}
\foreach \j in {3,2,1}{
\begin{scope}[xshift=1cm,shift=(20:\j*0.6)]
\foreach \i in {1,...,5}
{
\begin{scope}[shift={(0.2,1.3)},shift=(-45:\i*.25)]
\node (head) [minimum size=5pt, draw, inner sep=0pt, fill=white,circle] {};
\pgfmathsetmacro{\dir}{0.5}
\draw (head.south) -- ++(70+\dir*20:-8pt) coordinate [near start] (shoulders\i);
\end{scope}
}
\draw [line join=round] (0,1) -- (1,0) -- (1,-0.3) -- (0,0.7) -- (0,1);
\filldraw [fill=white,line join=round] (0,1) -- (0.2,1) -- (1.2,0) -- (1,0) -- cycle;
\foreach \i in {1,...,5}
{
\draw (shoulders\i) -- ++(-180+0.5*20:5pt) (shoulders\i) -- ++(-150+0.5*20:5pt);
}
\end{scope}
}
\ifddicomicspokenprofessor
\draw[overlay] (.6,1.1) to [out=100,in=-86] (-0.2,1.7)
to [out=94,in=-94] ([xshift=-2mm]last professor.south west)
to [out=86,in=-135] ([yshift=2mm,xshift=-1mm]last professor.south west);
\fi
\ifddicomicspokenstudent
\draw[overlay] (3.75,1.15) to [out=100,in=-94] (4.2,1.9)
to [out=86,in=-86] ([xshift=2mm]last student.south east)
to [out=94,in=-45] ([yshift=2mm,xshift=1mm]last student.south east);
\fi
\coordinate (last) at (0,-.3);
\coordinate (people) at (0,0);
\only<presentation>{\ddibingonow}
\end{scope}
}
\def\defddicomic#1[#2]{
\expandafter\def\csname ddi@comic@#1\endcsname{#2}
}
\def\useddicomic#1{%
\expandafter\let\expandafter\dditemp\csname ddi@comic@#1\endcsname
\expandafter\ddicomic\expandafter[\dditemp]}
\endinput

989
ahilbig-common.sty Normal file
View File

@ -0,0 +1,989 @@
% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-common.sty |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\ProvidesPackage{ahilbig-common}
\RequirePackage[german=guillemets]{csquotes}
% Automatische Skalierung zu grosser (breiter) Grafiken
\RequirePackage[Export]{adjustbox}
\adjustboxset{max size={\textwidth}{0.9\textheight}}
\RequirePackage{svn-multi}
%\RequirePackage[all]{svn-multi}
%\RequirePackage[filehooks,autokw]{svn-multi}
\RequirePackage{staves}
\RequirePackage{rotating}
\RequirePackage{scalerel}
\RequirePackage{longtable}
\RequirePackage[official]{eurosym}
\RequirePackage{fancybox}
\RequirePackage{tabularx}
\RequirePackage{xmpmulti}
\RequirePackage{pdfcomment}
\RequirePackage{xspace}
%\RequirePackage{paralist} % < führt zu Problemen mit beamer
%\RequirePackage[svgnames,rgb]{color} % Option Clash ....
\RequirePackage[curves]{struktex}
% Vorlesung 2
\newcommand\specparrightplus[3]{%
\begin{flushleft}
\newdimen\breite
\breite=#1cm
\scaleleftright[\breite]{.}{\parbox{2.\breite}{#2}}{\}}{\parbox{2.\breite}{#3}}
\end{flushleft}
}
% ab Vorlesung 9
\newcommand\kreisc[1]{\ensuremath{\mathbin{\settowidth{\dimen7}{\mbox{$\bigcirc$}}%
\makebox[0pt][l]{$\bigcirc$}\raisebox{-0.2mm}{\makebox[\dimen7]{#1}}}}}
\RequirePackage{bookmark}
\RequirePackage{amsmath}
\RequirePackage{accents}
\RequirePackage{array}
\RequirePackage{delarray}
\RequirePackage{comment}
\newif\ifdraftversion
\newif\ifbw
\newif\ifcd
\DeclareOption{draft}{\draftversiontrue}
\DeclareOption{blackandwhite}{\bwtrue}
\DeclareOption{cd}{\cdtrue}
\ProcessOptions
\@ifclassloaded{beamer}{}{\RequirePackage{beamerarticle}}
\RequirePackage{pgfkeys}
\RequirePackage{ifluatex}
\ifluatex
\RequirePackage[utf8]{luainputenc}
\else
\RequirePackage[utf8]{inputenc}
\fi
\def\UrlFont{}
%%\ifcd\else
%\RequirePackage{futura}
%% \RequirePackage{utopia}
%%\fi
%\RequirePackage{Myriad}
%\RequirePackage{droid}
\RequirePackage{lmodern}
\RequirePackage{courier}
\def\headingfont{\small\sffamily}
% Basic colors
\colorlet{structure.fg}{orange!80!red}
\definecolor{black50}{rgb}{.50,.50,.51}
\definecolor{black90}{rgb}{.90,.90,.91}
\definecolor{black95}{rgb}{.94,.94,.95}
\long\def\hilight#1{{\ifbw\else\color{structure.fg}\fi#1}}
\ifbw
\colorlet{head.bg}{black}
\else
\colorlet{head.bg}{structure.fg}
\fi
\ifcd
% \RequirePackage[mixedgreek,textlf]{Myriad}
\RequirePackage{microtype}
\let\sfdefault\rmdefault
\definecolor{oceangreen}{cmyk}{1,0,.2,.78}
\colorlet{structure.fg}{oceangreen!75!white}
\colorlet{head.bg}{oceangreen}
\def\headingfont{\sffamily}
\AtBeginDocument{
% \renewcommand\scshape{\error}
\DeclareTextFontCommand{\orig@textsc}{\scshape}
\edef\MyriadText{\sfdefault}
\DeclareRobustCommand\textsc[1]{\ifx\f@family\MyriadText{\ifdim\f@size pt=10pt\relax\small\fi\edef\ddi@temp{#1}\expandafter\uppercase\expandafter{\ddi@temp}}\else\orig@textsc{#1}\fi}
}
\fi
\RequirePackage{ahilbig-letterspace}
\mode<article>
{
%% \ifcmmath
%% \else
\RequirePackage{mathptmx}
\DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n}
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
\DeclareSymbolFont{rmletters} {OML}{ztmcm}{m}{it}
\DeclareSymbolFont{letters} {OML}{ztmcm} {m}{it}
% \ifcd\My@Greek@Mix\fi
%% \fi
%\RequirePackage[bookmarksnumbered,pdfborder={0 0 0}]{hyperref}
%\RequirePackage[plainpages=false,bookmarksnumbered,pdfborder={0 0 0}]{hyperref}
\RequirePackage{paralist} %% wg. pasternak
\RequirePackage{tcolorbox}
}
\def\rmdefault{qtm}
%\ifcd\else\def\sfdefault{Futura}\fi
\mode<article>
{
% Lists/enumerations/descriptions
\def\@listI{\leftmargin\leftmargini
\parsep 0pt
\topsep 5\p@ \@plus3\p@ \@minus5\p@
\itemsep0pt}
\let\@listi=\@listI
\def\@listii{\leftmargin\leftmarginii
\parsep 0pt
\topsep 3\p@ \@plus3\p@ \@minus3\p@
\itemsep0pt}
\leftmargini=1.85em
\parindent=0pt
\parskip=2pt plus 1pt minus 1pt
\renewenvironment{description}
{
\list{}{\advance\leftmargin by1cm
\labelwidth\leftmargin
\itemindent0pt
\let\makelabel\descriptionlabel
\itemsep3pt plus2pt minus 2pt}}
{\endlist}
\renewcommand*\descriptionlabel[1]{%
\hfil\hspace\labelsep{\normalfont\headingfont\hilight{#1}}}
\def\enumerate{%
\ifnum \@enumdepth >\thr@@\@toodeep\else
\advance\@enumdepth\@ne
\edef\@enumctr{enum\romannumeral\the\@enumdepth}%
\expandafter
\list
\csname label\@enumctr\endcsname
{\usecounter\@enumctr\def\makelabel##1{\hss\llap{\footnotesize\sffamily##1}}}%
\fi}
\def\itemize{%
\ifnum \@itemdepth >\thr@@\@toodeep\else
\advance\@itemdepth\@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
\expandafter
\list
\csname\@itemitem\endcsname
{\def\makelabel##1{\hss\llap{\sffamily##1}}}%
\fi}
\renewcommand\labelitemi{\normalfont\hilight{\bfseries}}
\renewcommand\labelitemii{\normalfont\bfseries}
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{\@arabic\c@enumi.\@arabic\c@enumii}
\renewcommand\theenumiii{\@arabic\c@enumi.\@arabic\c@enumii.\@arabic\c@enumiii}
\renewcommand\labelenumi{\hilight{\theenumi.}}
\renewcommand\labelenumii{\textcolor{black}{\theenumii}}
\setbeamertemplate{block begin}
{\avoidwiddow{2cm}{50}\par\vskip\medskipamount\penalty-100\parskip0pt{\raggedright\headingfont{\noindent\hilight{\insertblocktitle}}\par}\noindent\ignorespaces}
\setbeamertemplate{block alerted begin}
{\avoidwiddow{2cm}{50}\par\vskip\medskipamount\penalty-100\parskip0pt{\raggedright\headingfont{\noindent\color{red!90!black}\insertblocktitle}\par}\noindent\ignorespaces}
}
% Common packages
%\RequirePackage[german]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage{colortbl}
% Chapter-like Headline
\newcommand\chapterlikeheadline[3]{
{%
\rightskip0pt plus1fil
\parindent=0pt
\sffamily
\vskip2em%
{\fontsize{36pt}{36pt}\selectfont #1 \par\vskip2pt}
{\fontsize{24pt}{28pt}\selectfont \hilight{#2}\par\vskip4pt}
\expandafter\def\expandafter\temp\expandafter{#3}%
\ifx\temp\@empty\else{\Large\selectfont \color{black} \temp\par}\fi
\vskip10pt
}
\par
\vskip 1.5em%
}
\theoremstyle{definition}
\newtheorem{notation}[theorem]{Notation}
\mode
<article>
% Sections
\let\origstartsection=\@startsection
\def\@startsection#1#2#3#4#5#6{%
\origstartsection{#1}{#2}{#3}{#4}{#5}{#6\raggedright\normalfont\sffamily\ifodd#2\relax\else\ifbw\color{black}\else\color{structure.fg}\fi\fi\selectfont}}
\def\avoidwiddow#1#2{\par\vskip 0pt plus #1\penalty-#2\vskip 0pt plus -#1\ignorespaces}
\renewcommand\section{\avoidwiddow{3cm}{600}
\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{1.5ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\renewcommand\subsection{\avoidwiddow{3cm}{300}\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{.5ex \@plus .2ex}%
{\normalfont\large\bfseries}}
\renewcommand\subsubsection{\avoidwiddow{3cm}{250}\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
% Theorems and such
\newenvironment{definitionlike}[2][]{%
\def\test{#1}%
% \par%
% \color{structure.fg}%
% \hbox\bgroup\hskip-1.5ex\vrule width .5ex\hskip1ex\vbox\bgroup%
% \color{black}%
\block{\ddibordericon{{\ddiborderpointer}}%
#2\ifx\test\@empty\else: \textcolor{black}{#1}\fi}
\ignorespaces
}
{\endblock}
\newenvironment{examplelike}[2][]{%
\def\test{#1}
\block{%
#2\ifx\test\@empty\else: \textcolor{black}{#1}\fi}
\ignorespaces
}
{\endblock}
\newenvironment{theoremlike}[2][]{%
\def\mytest{#1}
\block{\ddibordericon{{\ddiborderpointer}}%
#2\ifx\mytest\@empty\else: \textcolor{black}{#1}\fi}
\itshape\ignorespaces
}
{\endblock}
\newcommand\ddiborderpointer{{\textcolor{structure.fg}{\large$\blacktriangleright$}}}%\LARGE\ding{43}}}}
%\newcommand\ddiborderpointer{{\includegraphics[height=2em]{ddi-icon-bulb-red-ccas.png}}}
\newcommand\ddiborderannote{{\textcolor{structure.fg}{\staveVI}}}
\renewenvironment{problem}[1][]{\definitionlike[#1]{Problem}}{\enddefinitionlike}
\renewenvironment{definition}[1][]{\definitionlike[#1]{\translate{Definition}}}{\enddefinitionlike}
\renewenvironment{example}[1][]{\examplelike[#1]{\translate{Beispiel}}}{\endexamplelike}
\renewenvironment{examples}[1][]{\examplelike[#1]{\translate{Beispiele}}}{\endexamplelike}
\renewenvironment{theorem}[1][]{\theoremlike[#1]{\translate{Satz}}}{\endtheoremlike}
\renewenvironment{lemma}[1][]{\theoremlike[#1]{\translate{Lemma}}}{\endtheoremlike}
\renewenvironment{corollary}[1][]{\theoremlike[#1]{\translate{Folgerung}}}{\endtheoremlike}
\renewenvironment{notation}[1][]{\definitionlike[#1]{Notation}}{\enddefinitionlike}
\mode
<all>
\providetranslation[to=German]{Einordnung}{Einordnung}
\providetranslation[to=English]{Einordnung}{Qualifying}
\providetranslation[to=German]{Erläuterung}{Erläuterung}
\providetranslation[to=English]{Erläuterung}{Annotation}
\providetranslation[to=German]{Erläuterungen}{Erläuterungen}
\providetranslation[to=English]{Erläuterungen}{Annotations}
\providetranslation[to=German]{Erklärung}{Erklärung}
\providetranslation[to=English]{Erklärung}{Explanation}
\providetranslation[to=German]{Erklärungen}{Erklärungen}
\providetranslation[to=English]{Erklärungen}{Explanations}
\providetranslation[to=German]{Beispiel}{Beispiel}
\providetranslation[to=English]{Beispiel}{Example}
\providetranslation[to=German]{Beispiele}{Beispiele}
\providetranslation[to=English]{Beispiele}{Examples}
\providetranslation[to=German]{Satz}{Satz}
\providetranslation[to=English]{Satz}{Theorem}
\providetranslation[to=German]{Folgerung}{Folgerung}
\providetranslation[to=English]{Folgerung}{Corollary}
%~~
\newtranslation[to=German]{Advantages}{Vorteile}
\newtranslation[to=English]{Advantages}{Advantages}
\newtranslation[to=German]{Disadvantages}{Nachteile}
\newtranslation[to=English]{Disadvantages}{Disadvantages}
\newenvironment{advantages}[1][\translate{Advantages}]{
\setbeamercolor{structure}{fg=green!50!black}
\only<article>{\colorlet{structure.fg}{green!50!black}}
\begin{block}{#1}%
\alt<article>{\renewcommand\labelitemi{\normalfont\hilight{\bfseries+}}}%
{\setbeamertemplate{itemize item}{+}}%
}
{\end{block}}
\newenvironment{disadvantages}[1][\translate{Disadvantages}]{
\setbeamercolor{structure}{fg=red!50!black}
\only<article>{\colorlet{structure.fg}{red!75!black}}
\begin{block}{#1}%
\only<presentation>{\setbeamertemplate{itemize item}{}}%
}
{\end{block}}
% Typesetting Listings
\RequirePackage{listings}
\lstset{extendedchars=true}
\newif\ifemphlistings
\def\colorunlessemph#1{\ifemphlistings\else\color{#1}\fi}
% Allow German umlauts:
\lstset{%
literate={ä}{{\"a}}1
{ö}{{\"o}}1
{ü}{{\"u}}1
{Ä}{{\"A}}1
{Ö}{{\"O}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
}
\lstset{%
basicstyle=\footnotesize\ttfamily,
commentstyle=\itshape\colorunlessemph{green!50!black},
keywordstyle=\bfseries\colorunlessemph{structure.fg},
identifierstyle=\colorunlessemph{blue},
stringstyle=\colorunlessemph{violet},
emphstyle=\color{red},
numbersep=1em,
breaklines=true,
breakatwhitespace=true,
numberstyle=\scriptsize\color{black!50}
}
\only<article>
{
\lstset{%
basicstyle=\ttfamily\small,
backgroundcolor=\color{structure.fg!10},
frame=lines,
framerule=1pt,
rulecolor=\color{structure.fg},
numberstyle=\scriptsize\sffamily\color{black!50}
}
\ifbw
\lstset{backgroundcolor=}
\fi
\ifcd
\lstset{backgroundcolor=\color{structure.fg!5}}
\fi
}
\alt<article>
{
\lstdefinestyle{presentationscriptsize}{}
}
{
\lstdefinestyle{presentationscriptsize}{basicstyle=\ttfamily\scriptsize}
}
\alt<article>
{
\lstdefinestyle{presentationtinysize}{basicstyle=\ttfamily\scriptsize}
}
{
\lstdefinestyle{presentationtinysize}{basicstyle=\ttfamily\tiny}
}
\lstdefinelanguage{css}{
morekeywords={
border,padding,color,font,font-size,height,width,margin,background-image,
red,green,blue,float,left,right,top,bottom,position,absolute,relative,
solid,
margin-top,margin-bottom,margin-left,margin-right,
border-top,border-bottom,border-left,border-right,
padding-top,padding-bottom,padding-left,padding-right
},%
morecomment=[s]{/*}{*/},%
morestring=[b]",%
alsoletter={-},%
}
\lstdefinelanguage{MySQL}[]{SQL}{
morekeywords={ADD,ALL,ALTER,ANALYZE,AND,AS,ASC,ASENSITIVE,BEFORE,BETWEEN,BIGINT,BINARY
BLOB,BOTH,BY,CALL,CASCADE,CASE,CHANGE,CHAR,CHARACTER,CHECK,COLLATE,COLUMN,
CONDITION,CONSTRAINT,CONTINUE,CONVERT,CREATE,CROSS,CURRENT_DATE,
CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,DATABASE,DATABASES,
DAY_HOUR,DAY_MICROSECOND,DAY_MINUTE,DAY_SECOND,DEC,DECIMAL,DECLARE,DEFAULT,
DELAYED,DELETE,DESC,DESCRIBE,DETERMINISTIC,DISTINCT,DISTINCTROW,DIV,DOUBLE,
DROP,DUAL,EACH,ELSE,ELSEIF,ENCLOSED,ESCAPED,EXISTS,EXIT,EXPLAIN,FALSE,FETCH,
FLOAT,FLOAT4,FLOAT8,FOR,FORCE,FOREIGN,FROM,FULLTEXT,GRANT,
GROUP,HAVING,HIGH_PRIORITY,HOUR_MICROSECOND,HOUR_MINUTE,HOUR_SECOND,
IF,IGNORE,IN,INDEX,INFILE,INNER,INOUT,INSENSITIVE,INSERT,
INT,INT1,INT2,INT3,INT4,INT8,INTEGER,INTERVAL,INTO,
IS,ITERATE,JOIN,KEY,KEYS,KILL,LEADING,LEAVE,LEFT,
LIKE,LIMIT,LINES,LOAD,LOCALTIME,LOCALTIMESTAMP,LOCK,LONG,LONGBLOB,
LONGTEXT,LOOP,LOW_PRIORITY,MATCH,MEDIUMBLOB,MEDIUMINT,MEDIUMTEXT,
MIDDLEINT,MINUTE_MICROSECOND,MINUTE_SECOND,MOD,MODIFIES,NATURAL,NOT,
NO_WRITE_TO_BINLOG,NULL,NUMERIC,ON,OPTIMIZE,OPTION,OPTIONALLY,
OR,ORDER,OUT,OUTER,OUTFILE,PRECISION,PRIMARY,PROCEDURE,PURGE,
READ,READS,REAL,REFERENCES,REGEXP,RELEASE,RENAME,REPEAT,REPLACE,
REQUIRE,RESTRICT,RETURN,REVOKE,RIGHT,RLIKE,SCHEMA,SCHEMAS,SECOND_MICROSECOND,
SELECT,SENSITIVE,SEPARATOR,SET,SHOW,SMALLINT,SONAME,SPATIAL,SPECIFIC,
SQL,SQLEXCEPTION,SQLSTATE,SQLWARNING,SQL_BIG_RESULT,SQL_CALC_FOUND_ROWS,
SQL_SMALL_RESULT,SSL,STARTING,STRAIGHT_JOIN,TABLE,TERMINATED,
THEN,TINYBLOB,TINYINT,TINYTEXT,TO,TRAILING,TRIGGER,TRUE,UNDO,
UNION,UNIQUE,UNLOCK,UNSIGNED,UPDATE,USAGE,USE,USING,UTC_DATE,
UTC_TIME,UTC_TIMESTAMP,VALUES,VARBINARY,VARCHAR,VARCHARACTER,
VARYING,WHEN,WHERE,WHILE,WITH,WRITE,XOR,YEAR_MONTH,ZEROFILL,
ASENSITIVE,CALL,CONDITION,CONNECTION,CONTINUE,CURSOR,
DECLARE,DETERMINISTIC,EACH,ELSEIF,EXIT,FETCH,
GOTO,INOUT,INSENSITIVE,ITERATE,LABEL,LEAVE,
LOOP,MODIFIES,OUT,READS,RELEASE,REPEAT,
RETURN,SCHEMA,SCHEMAS,SENSITIVE,SPECIFIC,SQL,
SQLEXCEPTION,SQLSTATE,SQLWARNING,
TRIGGER,UNDO,UPGRADE,WHILE
}
}
\lstdefinelanguage{pseudocode}{
morekeywords={
if,then,else,while,do,repeat,until,seq,seqdo,return,call,
for,pardo,in,foreach,print,output,input,exit,
break,loop,end,begin,goto,pardo,par,global,read,write,to,stop,idle,procedure,function
},
sensitive=true,
morecomment=[l]{//},
morecomment=[l]{\%},
morestring=[b]",
}
\lstdefinestyle{text}{
basicstyle=\ttfamily\footnotesize,
}
\lstdefinestyle{pseudocodebase}{
language=pseudocode,
numbers=left,
basicstyle=\rmfamily\footnotesize,
keywordstyle=\bfseries\itshape\colorunlessemph{structure.fg},
columns=fullflexible,
mathescape=true,
identifierstyle=\itshape,
literate={<}{{$<$}}1
{>}{{$>$}}1
{-}{{-}}1
{+}{{$+$}}1
{*}{{$\cdot$}}1
{<-}{{$\gets$\ }}2
{<=}{{$\leq$}}1
{>=}{{$\geq$}}1
{!=}{{$\neq$}}1
{==}{{$=$}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
{ü}{{\"u}}1
{Ä}{{\"A}}1
{Ö}{{\"O}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
}
\lstdefinelanguage{while}{
morekeywords={
uint,return,while,loop
}
}
\lstdefinelanguage{MuML}{
morekeywords={
fun,0,succ,min
}
}
\alt<article>
{\lstdefinestyle{pseudocode}{style=pseudocodebase,basicstyle=\rmfamily}}
{\lstdefinestyle{pseudocode}{xleftmargin=1em,style=pseudocodebase,basicstyle=\sffamily\small,keywordstyle=\itshape\colorunlessemph{structure.fg}}}
\lstdefinestyle{alerts}{% We want easy hilighting
moredelim=**[is][\color{red}\emphlistingstrue]{(!}{!)}%
}
\lstdefinestyle{escapes}{
escapechar=\#
}
\def\pythoncode{\lstinline[language=Python]}
\def\javacode{\lstinline[language=Java]}
\def\ccode{\lstinline[language=C]}
\def\htmlcode{\lstinline[language=html]}
\def\csscode{\lstinline[language=css]}
\def\sqlcode{\lstinline[language=MySQL]}
\def\pseudocode{\lstinline[style=pseudocode]}
\def\texcode{\lstinline[language={[LaTeX]tex}]}
\def\whilecode{\lstinline[language=while,mathescape=true]}
\def\mucode{\lstinline[language=MuML]}
\alt<article>
{
\def\verbatim@font{\normalfont\small\ttfamily}
}
{
\def\verbatim@font{\normalfont\footnotesize\ttfamily}
}
% New useful definitions:
\newbox\mytempbox
\newdimen\mytempdimen
\newcommand\includegraphicscopyright[3][]{%
\leavevmode\vbox{\vskip3pt\raggedright\setbox\mytempbox=\hbox{\includegraphics[#1]{#2}}%
\mytempdimen=\wd\mytempbox\box\mytempbox\par\vskip1pt%
\sffamily\fontsize{3}{3.5}\selectfont\spaceskip=.333em\xspaceskip=.5em{\color{black}{\vbox{\hsize=\mytempdimen#3}}}\vskip3pt%
}}
\newenvironment{colortabular}[1]{\medskip\rowcolors[]{1}{structure.fg!10}{structure.fg!3}\tabular{#1}\rowcolor{structure.fg!20}}{\endtabular\medskip}
\def\equad{\leavevmode\hbox{}\quad}
\newenvironment{greencolortabular}[1]
{\medskip\rowcolors[]{1}{green!50!black!20}{green!50!black!5}%
\tabular{#1}\rowcolor{green!50!black!40}}%
{\endtabular\medskip}
\only<article>{\let\greencolortabular=\colortabular\let\endgreencolortabular=\endcolortabular}
% Exercises
\mode<article>
\newif\ifbonus
\pgfkeys{
/ddi/exercise/title/.initial=,
/ddi/exercise/credits/.initial=,
/ddi/exercise/@credits/.initial=,
/ddi/exercise/level/.initial=,
/ddi/exercise/how/.initial=,
/ddi/exercise/@solution/.initial=,
/ddi/exercise/solution/.style={@solution=mit~Lösung},
/ddi/exercise/@examtext/.initial=,
/ddi/exercise/exam/.is choice,
/ddi/exercise/exam/no/.style={@examtext=nicht~klausurrelevant},
/ddi/exercise/exam/used/.style={@examtext=original~Klausuraufgabe},
/ddi/exercise/exam/typical/.style={@examtext=typische~Klausuraufgabe},
/ddi/exercise/bonus/.is if=bonus,
/ddi/exercise/time/.initial=,
/ddi/exercise/label/.store in=\exerciselabel}
\newif\ifignorekey
\def\ddiyestext{yes}
\def\possiblyuse#1{%
\ignorekeyfalse%
\pgfkeysifdefined{/ddi/exercise/#1/ignore}
{%
\pgfkeysgetvalue{/ddi/exercise/#1/ignore}\dditemp
\ifx\dditemp\ddiyestext%
\ignorekeytrue%
\fi%
}%
{}%
\ifignorekey
\else
\pgfkeysgetvalue{/ddi/exercise/#1}{\mymacro}%
\ifx\mymacro\@empty%
\else%
\ifx\infostring\@empty%
\let\infostring=\mymacro%
\else
\expandafter\expandafter\expandafter\def
\expandafter\expandafter\expandafter\infostring
\expandafter\expandafter\expandafter
{\expandafter\infostring\expandafter,\expandafter\ \mymacro}%
\fi%
\fi%
\fi%
}
\newbox\mybox
\newenvironment{exercise}[1][]%
{
\pgfkeys{/ddi/exercise/.cd,/ddi/every exercise/.try,#1}%
\parindent0pt%
\refstepcounter{exercisenumber}%
\goodbreak\medskip\noindent
{%
\parskip=0pt%
\raggedright%
\headingfont%
\hilight{%
\setbox\mybox=\hbox{%
\insertexercisetext%
\pgfkeysifdefined{/ddi/exercise/bonus/ignore}{}{{\ifbonus*\fi}}\
\theexercisenumber%
\hskip2ex%
}%
\ddisetupcredits%
\leftskip\wd\mybox%
\llap{\box\mybox}%
\def\infostring{}%
\possiblyuse{title}%
\possiblyuse{level}%
\possiblyuse{@credits}%
\possiblyuse{how}%
\possiblyuse{time}%
\possiblyuse{@examtext}%
\possiblyuse{@solution}%
\ifx\infostring\@empty\else{\textcolor{black}{\infostring}}\fi\hfill%
\par}%
}%
\ifx\exerciselabel\@undefined\else\expandafter\label\expandafter{\exerciselabel}\fi%
\pgfkeys{/ddi/exercise/at begin/.try}%
\ignorespaces
}
{
\parskip0pt
\par\medskip
}
\newcommand\insertexercisetext{\translate{Aufgabe}}
\newcommand\insertpointtext{Punkt}
\newcommand\insertpointstext{Punkte}
\newcommand\insertbonuspointtext{Bonuspunkt}
\newcommand\insertbonuspointstext{Bonuspunkte}
\newtranslation[to=German]{Aufgabe}{Aufgabe}
\newtranslation[to=English]{Aufgabe}{Problem}
\def\ddisetupcredits{%
\pgfkeysgetvalue{/ddi/exercise/credits}{\ddipoints}%
\ifx\ddipoints\@empty%
\ddi@plain@numberfalse%
\else%
\afterassignment\ddi@check\expandafter\@tempcnta\expandafter1\ddipoints\relax%
\fi%
\ifddi@plain@number%
\ifbonus%
\ifnum\ddipoints=1\relax%
\pgfkeys{/ddi/exercise/@credits/.expanded=\ddipoints\ \insertbonuspointtext}%
\else%
\pgfkeys{/ddi/exercise/@credits/.expanded=\ddipoints\ \insertbonuspointstext}%
\fi%
\else%
\ifnum\ddipoints=1\relax%
\pgfkeys{/ddi/exercise/@credits/.expanded=\ddipoints\ \insertpointtext}%
\else%
\pgfkeys{/ddi/exercise/@credits/.expanded=\ddipoints\ \insertpointstext}%
\fi%
\fi%
\else%
\pgfkeys{/ddi/exercise/@credits/.expanded=\ddipoints}%
\fi%
}
\newif\ifddi@plain@number
\def\ddi@check{%
\@ifnextchar\relax{\ddi@plain@numbertrue\ddi@gobble@to@stop}{\ddi@plain@numberfalse\ddi@gobble@to@stop}%
}
\def\ddi@gobble@to@stop#1\relax{}%
% Solutions
\pgfkeys{/ddi/solution/of/.initial=}
\renewenvironment{solution}[1][]
{
\pgfkeys{/ddi/solution/.cd,/ddi/every solution/.try,#1}
\parindent0pt%
\goodbreak\medskip\noindent
{\sffamily%
\parskip0pt\hilight{%
Beispiellösung zu \refexercise{\pgfkeysvalueof{/ddi/solution/of}}}\hfill
\par%
}%
\ignorespaces
}
{
\parskip0pt
\par\medskip
}
\newcommand\refexercise[1]{\insertexercisetext~\ref{#1}}
\mode
<all>
\newcommand\ddibordericon[1]{%
\llap{\smash{\hbox{#1}}\kern1ex}%
}
% Rezept
\pgfkeys{/ddi/proof method/title/.initial=}
\pgfkeys{/ddi/proof method/goal/.initial=}
\pgfkeys{/ddi/proof method/also on frame/.initial=}
\mode
<article>
% \newenvironment{proof method}[1][]
% {
% \pgfkeys{/ddi/proof method/.cd,#1}
% \par%
% \vfil\penalty100\vfilneg%
% \begin{frame}{}
% \addcontentsline{lop}{subsection}{\pgfkeysvalueof{/ddi/proof method/title}}
% \advance\hsize by-20pt
% \setbox\mybox=\vbox
% \bgroup
% \begin{minipage}[t]{\textwidth-2.5cm-20pt}
% \textsf{\hilight{Beweisrezept f\"ur}\\ \large\pgfkeysvalueof{/ddi/proof method/title}\smallskip}
% \begin{block}{Ziel}
% \pgfkeysvalueof{/ddi/proof method/goal}
% \end{block}
% \end{minipage}\hskip5mm
% \begin{minipage}[t]{2cm}
% \ \par\vskip-1em\includegraphics[width=2cm]{ddi-icon-kochmuetze.pdf}
% \end{minipage}
% \par
% \begin{minipage}{\textwidth-20pt}
% \begin{block}{Rezept}
% }
% {
% \end{block}
% \end{minipage}
% \egroup%
% \parskip0pt
% \advance\hsize by20pt
% \vskip-1em{\fboxsep=1em%
% \color{structure.fg}\hrule height2pt depth0pt%
% \color{black}\colorbox{black90}{\box\mybox}%
% \color{structure.fg}\hrule height2pt%
% }\medskip
% \pgfkeysvalueof{/ddi/proof method/also on frame}
% \end{frame}
% }
\newenvironment{proof method}[1][]
{
\pgfkeys{/ddi/proof method/.cd,#1}
\par%
\vfil\penalty100\vfilneg%
\begin{frame}{\ddibordericon{\lower3pt\hbox{}}%\includegraphics[height=1.5em]{ddi-icon-kochmuetze.pdf}{}}}%
Rezept: \emph{\hilight{\pgfkeysvalueof{/ddi/proof method/title}}}}
\addcontentsline{lop}{subsection}{\pgfkeysvalueof{/ddi/proof method/title}}
\begin{block}{Ziel}
\emph{\pgfkeysvalueof{/ddi/proof method/goal}}
\end{block}
\begin{block}{Rezept}
}
{
\end{block}
\pgfkeysvalueof{/ddi/proof method/also on frame}
\end{frame}
}
\mode
<all>
%
% TikZ styles
%
\RequirePackage{tikz}
\usetikzlibrary{mindmap,trees,backgrounds,arrows,calendar,fadings,shadows,
matrix,shapes,shapes.geometric,shapes.misc,petri,fit,
decorations.markings,
decorations.pathmorphing,
decorations.pathreplacing,
}
\tikzset{
plain/.style={minimum size=0mm,shape=rectangle,font=,draw=none,thin,fill=none,inner
sep=0.333em,text depth=,text height=,text width=},
node/.style={minimum size=6mm,shape=circle,font=\small,draw=structure.fg,thick,
fill=structure.fg!10,inner sep=1pt
},
tiny node/.style={minimum size=3mm,shape=circle,font=\tiny,draw=structure.fg,thick,
fill=structure.fg!10,inner sep=0.3pt
},
long label/.style={shape=rounded rectangle,text depth=0.15em,text
height=0.7em},
rectangular/.style={rectangle,minimum height=1cm,minimum width=4cm,rounded corners},
box/.style={node,shape=rectangle},
blue node/.style={node,fill=blue!20,draw=blue},
tiny blue node/.style={tiny node,fill=blue!20,draw=blue},
red node/.style={node,fill=red!20,draw=red},
tiny red node/.style={tiny node,fill=red!20,draw=red},
orange node/.style={node,fill=orange!20,draw=orange},
tiny orange node/.style={tiny node,fill=orange!20,draw=orange},
green node/.style={node,fill=green!50!black!20,draw=green!50!black},
tiny green node/.style={tiny node,fill=green!50!black!20,draw=green!50!black},
black node/.style={node,fill=black!20,draw=black},
tiny black node/.style={tiny node,fill=black!20,draw=black},
gray node/.style={node,fill=black!20,draw=black!50,text=black!50},
tiny gray node/.style={tiny node,fill=black!20,draw=black!50,text=black!50},
graph/.style={semithick,>=spaced stealth'},
tree/.style={
every node/.style={node,long label},
edge from parent/.style={draw,>=spaced stealth',semithick},
grow=down,
level 1/.style={level distance=1cm,sibling distance=2cm},
level 2/.style={sibling distance=1cm}
},
reverse tree/.style={tree,edge from
parent/.style={draw,>=spaced stealth',semithick,<-}},
graphs/suffix tree/.style={
trie,
simple,
edges={nodes={inner sep=1pt,anchor=mid,fill=white}},
nodes={tiny node},
sibling distance=1.5cm,
empty nodes,
/tikz/every edge quotes/.style={}
},
graphs/trie graph/.style={
trie,
simple,
edges={nodes={inner sep=1pt,anchor=mid,fill=white}},
nodes={tiny node},
sibling distance=1.5cm,
put node text on incoming edges
},
labeling/.style={below right,inner sep=2pt,font=\scriptsize},
gate/.style={node,rectangle,minimum height=6mm,minimum width=4mm},
tiny gate/.style={gate,minimum size=0pt,inner sep=1pt,thin},
numbering/.style={circle,fill=structure.fg,text=white,inner sep=0.5pt,font=\footnotesize\sffamily,minimum size=1.25em},
tiny numbering/.style={numbering,font=\tiny\sffamily},
memory/.style={thick,draw=blue,fill=blue!20,rectangle,minimum width=#1cm,minimum height=5mm},
memory/.default=1,
var/.style={node,long label,minimum height=4.5mm,minimum width=1cm},
pointer/.style={shorten <=-8pt,*-spaced stealth',semithick},
petrinet/.style={
graph,
every transition/.style={font=\small,draw=blue,thick,fill=blue!20},
every place/.style={font=\small,draw=structure.fg,thick,fill=structure.fg!10,minimum
size=7mm}
},
automaton/.style={graph,every state/.style=node},
dot/.style={circle,fill=structure.fg,minimum size=4pt,inner sep=0pt,outer sep=0pt,draw=none},
slide/.style={
execute at end picture={
\pgfonlayer{background}
\fill [rounded corners,draw=black!15,very thick,fill=black!5]
([shift={(-3mm,-3mm)}]current bounding box.south west) rectangle ([shift={(3mm,3mm)}]current bounding box.north east);
\def\temp{#1}
\ifx\temp\pgfutil@empty
\path ([yshift=1.5mm]current bounding box.north);
\else
\node[node,draw=black!15,very thick,fill=white,long label,text
depth=1.5pt,text height=5pt,minimum height=3mm,minimum
width=6mm,font=\tiny\sffamily,right] at ([xshift=3mm]current bounding box.north west)
{#1};
\fi
\path ([yshift=-1.5mm]current bounding box.south);
\endpgfonlayer
}
},
slide/.default=
}
\pgfarrowsdeclarecombine*{spaced stealth'}{spaced
stealth'}{stealth'}{stealth'}{space}{space}
% Myriad fixes
\ifcd
\let\epsilon\varepsilon
\let\phi\varphi
\fi
% Till's two favorite macros
\mode
<presentation>
\newcommand\Class[1]{\mathsf{#1}}
\newcommand\Lang[1]{\text{\normalfont\footnotesize{\uppercase{#1}}}}
\mode
<article>
\newcommand\Class[1]{\mathchoice{\text{\upshape\small$\mathrm{#1}$}}{\text{\upshape\small$\mathrm{#1}$}}{\text{\upshape$\mathrm{#1}$}}{\text{\upshape$\mathrm{#1}$}}}
\newcommand\Lang[1]{\text{\normalfont\textsc{\lowercase{#1}}}}
\mode
<all>

75
ahilbig-letterspace.sty Normal file
View File

@ -0,0 +1,75 @@
% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-letterspace.sty |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\ProvidesPackage{ahilbig-letterspace}
\RequirePackage{ifluatex}
\def\textlsuppercase#1{\edef\temp{#1}\textls{\expandafter\uppercase\expandafter{\temp}}}
\newbox\lectureletterbox
\newif\iflec@uppercasetextls
\ifluatex
\def\textls#1{%
\begingroup
\def\.{\relax}
\lec@uppercasetextlsfalse
\edef\lec@temp{#1}%
\expandafter\textls@\lec@temp\pgf@stop%
}
\def\textlsuppercase#1{%
\begingroup
\def\.{\relax}
\lec@uppercasetextlstrue
\edef\lec@temp{#1}%
\expandafter\textls@word\lec@temp\. \pgf@stop%
}
\def\textls@word#1 #2\pgf@stop{%
\textls@#1\pgf@stop%
\def\pgf@temp{#2}%
\ifx\pgf@temp\pgfutil@empty%
\endgroup%
\else%
\ \kern.3ex%
\textls@word#2\pgf@stop%
\fi%
}
\def\textls@{%
\pgfutil@ifnextchar\pgf@stop{\pgfutil@gobble}{%
\pgfutil@ifnextchar\unhbox{\textls@@gobbeltwo}{%
\pgfutil@ifnextchar\penalty{\textls@@gobbeltwo}{%
\textls@@}}}%
}
\def\textls@@#1{%
\iflec@uppercasetextls\uppercase{#1}\else#1\fi\kern0.3ex\textls@%
}
\def\textls@@gobbeltwo#1#2{\textls@}
\fi

1797
ahilbig-presentation.sty Normal file

File diff suppressed because it is too large Load Diff

1862
ahilbig-script.sty Normal file

File diff suppressed because it is too large Load Diff

533
ahilbig-semester.sty Normal file
View File

@ -0,0 +1,533 @@
% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-semester.sty |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\ProvidesPackage{ahilbig-semester}
\RequirePackage{pgffor}
\RequirePackage{pgfcalendar}
\RequirePackage{soul,color} % wg. \hl ... = highlight
\RequirePackage{multicol}
\RequirePackage[
backend=biber
,sortlocale=de_DE%.UTF-8
,style=authoryear
,bibencoding=UTF8
,block=space
,autocite=inline % \autocite[..][..]{..} erzeugt Literaturverweise mit runden Klammern
]{biblatex}
\RequirePackage[scale=1.9]{ccicons}
\newenvironment{topcolumns}{\begin{columns}[t]}{\end{columns}}
\RequirePackage{isodate}
\newcommand*\jahr{\number\year}
\newcounter{jahrp}
\addtocounter{jahrp}{\jahr}
\stepcounter{jahrp}
\newcommand*\sommersemester{\jahr}
\newcommand*\wintersemester{\jahr/\thejahrp}
%
% Semester dates
%
% Sets the dates of the semester.
%
% Usage: \setsummerdates{first date of semester}{first lecture date}%
% {last lecture date}{last date of semester}
\def\setsummerdates#1#2#3#4{%
\edef\lec@summerstart{#1}
\edef\lec@summerfirstlec{#2}
\edef\lec@summerlastlec{#3}
\edef\lec@summerend{#4}
}
\def\setwinterdates#1#2#3#4{%
\edef\lec@winterstart{#1}
\edef\lec@winterfirstlec{#2}
\edef\lec@winterlastlec{#3}
\edef\lec@winterend{#4}
}
% Getter and setter:
\def\getsummerstartdate{\lec@summerstart}
\def\getsummerfirstlecturedate{\lec@summerfirstlec}
\def\getsummerlastlecturedate{\lec@summerlastlec}
\def\getsummerenddate{\lec@summerend}
\def\getwinterstartdate{\lec@winterstart}
\def\getwinterfirstlecturedate{\lec@winterfirstlec}
\def\getwinterlastlecturedate{\lec@winterlastlec}
\def\getwinterenddate{\lec@winterend}
%
% Lectures
%
% Sets the lecture dates.
%
% Usage:
%
% \lecturelistofdates{
% 2013-01-01,
% 2013-02-28,
% 2013-12-24,
% }
\def\lecturelistofdates#1{
\foreach \lec@date[count=\lec@i] in {#1} {
\expandafter\xdef\csname lec@date@\lec@i\endcsname{\lec@date}
}
}
% Sets the exercise dates.
%
% Usage:
%
% \exerciselistofdates{
% 2013-01-01->2013-01-08,
% 2013-02-28->2013-03-07,
% 2013-12-24->2013-12-31,
% }
\def\exerciselistofdates#1{%
\def\ex@parsedates##1->##2\foo{%
\def\ex@tutorial{##1}%
\def\ex@deadline{##2}%
}%
\foreach \ex@date[count=\ex@i] in {#1} {%
\edef\ex@tmpdate{\ex@date}%
\expandafter\ex@parsedates\ex@tmpdate\foo
\expandafter\xdef\csname ex@tutorial@\ex@i\endcsname{\ex@tutorial}%
\expandafter\xdef\csname ex@deadline@\ex@i\endcsname{\ex@deadline}%
}%
}
\newcount\lec@lastlecnumber % stores the last lecture id
\newcount\ex@lastexercisenumber % same for exercise id
% Sets the chronological list of lectures with their ids.
%
% \lecturelistofids{
% <lecture id>,
% <lecture id>,
% <lecture id>,
% }
\def\lecturelistofids#1{
\foreach \lec@id[count=\lec@i] in {#1} {
\expandafter\xdef\csname lec@id@\lec@i\endcsname{\lec@id}%
\expandafter\xdef\csname lec@number@\lec@id\endcsname{\lec@i}%
\global\lec@lastlecnumber=\lec@i
}
}
% Sets the chronological list of exercises with their ids.
%
% \exerciselistofids{
% <exercise id>,
% <exercise id>,
% <exercise id>,
% }
\def\exerciselistofids#1{
\foreach \ex@id[count=\ex@i] in {#1} {
\expandafter\xdef\csname ex@id@\ex@i\endcsname{\ex@id}%
\expandafter\xdef\csname ex@number@\ex@id\endcsname{\ex@i}%
\global\ex@lastexercisenumber=\ex@i
}
}
% Testing whether a lecture exists
\def\ddiiflectureidexists#1#2#3{%
\expandafter\ifx\csname lec@number@#1\endcsname\relax%
#3\else#2\fi%
}
% Testing whether an exercise exists
\def\ddiifexerciseidexists#1#2#3{%
\expandafter\ifx\csname ex@number@#1\endcsname\relax%
#3\else#2\fi%
}
% Starts a new lecture. This defines the lecture title, subtitle, and
% the date for the next \maketitle command. Furthermore it sets the
% lecture number and defines a corresponding label.
%
% Usage: \lecturewithid{<lecture id>}
\def\lecturewithid#1#2#3{
\lecture[\getlecturenumberfromid{#1}]{#2}{lecture-#1}
\subtitle{#3}
\date{\getlecturedatefromid{#1}}
}
% Starts a new exercise. This defines the sheet number, date of the
% tutorial, and the date for the next \maketitle command. Furthermore
% it sets the exercise number and defines a corresponding label.
%
% Usage: \exercisewithid{<exercise id>}
\def\exercisewithid#1{%
\def\insertsheetnumber{\getexercisenumberfromid{#1}}%
\edef\ddi@tmpdeadline{\get@exercisedeadlinedatefromid{#1}}%
\def\ddi@none{none}%
\let\insertdeadline=\undefined
\ifx\ddi@none\ddi@tmpdeadline\else
\def\insertdeadline{\getexercisedeadlinedatefromid{#1}}%
\fi
}
% Getter and setter:
%
% Lecture
\def\getlecturedatefromid#1{%
\edef\ddi@tmp@isodate{\csname lec@date@\getlecturenumberfromid{#1}\endcsname}%
\expandafter\ddi@isodatetohumanreadable\ddi@tmp@isodate\pgf@stop%
}
\def\sem@getisodatefromlectureid#1{\csname lec@date@\getlecturenumberfromid{#1}\endcsname}
\def\getlecturenumberfromid#1{\csname lec@number@#1\endcsname}
% Exercise
\def\getexercisedeadlinedatefromid#1{%
\edef\ddi@tmp@deadlineisodate{\csname ex@deadline@\getexercisenumberfromid{#1}\endcsname}%
\edef\ddi@tmp@none{none}%
\edef\ddi@tmp{\ddi@tmp@deadlineisodate}%
\ifx\ddi@tmp@none\ddi@tmp
\def\ddi@tmp@deadlinedate{keine Abgabe}%
\else
\def\ddi@tmp@deadlinedate{\expandafter\ddi@isodatetohumanreadable\ddi@tmp@deadlineisodate\pgf@stop}%
\fi
\ddi@tmp@deadlinedate%
}
\def\get@exercisedeadlinedatefromid#1{%
\csname ex@deadline@\getexercisenumberfromid{#1}\endcsname
}
\def\getexercisetutorialdatefromid#1{%
\edef\ddi@tmp@isodate{\csname ex@tutorial@\getexercisenumberfromid{#1}\endcsname}%
\expandafter\ddi@isodatetohumanreadable\ddi@tmp@isodate\pgf@stop%
}
\def\sem@getisodatefromexerciseid#1{\csname ex@date@\getexercisenumberfromid{#1}\endcsname}
\def\getexercisenumberfromid#1{\csname ex@number@#1\endcsname}
\def\lecturegetfirstdate{\sem@getisodatefromlectureid{1}}
\def\lecturegetlastdate{\sem@getisodatefromlectureid{\lec@lastlecnumber}}
\def\setsummerfirstlectureid#1{\edef\lec@summerfirstlectureid{#1}}
\def\setsummerlastlectureid#1{\edef\lec@summerlastlectureid{#1}}
\def\setwinterfirstlectureid#1{\edef\lec@winterfirstlectureid{#1}}
\def\setwinterlastlectureid#1{\edef\lec@winterlastlectureid{#1}}
\def\getsummerfirstlectureid{\lec@summerfirstlectureid}
\def\getsummerlastlectureid{\lec@summerlastlectureid}
\def\getwinterfirstlectureid{\lec@winterfirstlectureid}
\def\getwinterlastlectureid{\lec@winterlastlectureid}
%
% Lecture titles and subtitles.
%
\def\getlecturetitlefromid#1{\sem@getlecturetitlesfromid{#1}\sem@lecturetitle}
\def\getlecturesubtitlefromid#1{\sem@getlecturetitlesfromid{#1}\sem@lecturesubtitle}
\newif\ifsem@continuereadfile
\def\sem@empty{}
\def\sem@lecturetitle{}
\def\sem@lecturesubtitle{}
\newread\sem@lecturetitlesinputstream
\newread\sem@exercisetitlesinputstream
% Searches the body file of lecture with id #1 for the first
% occurrence of \lecturewithid at the very beginning of a line and
% stores the corresponding lecture title and subtitle in the macros
% \sem@lecturetitle and \sem@lecturesubtitle respectively.
%
\newread\sem@inputstream%
\def\sem@getlecturetitlesfromid#1{%
% Set iteration condition.
\sem@continuereadfiletrue%
%
% Macro for extracting and saving the result.
\def\sem@extractlecturetitles##1##2##3 \lecturewithid{%
\def\sem@lecturetitle{##2}%
\def\sem@lecturesubtitle{##3}%
}%
%
% Macro for examining the line.
\long\def\sem@checkandgetargument##1\lecturewithid##2\pgf@stop{%
% Prepare for \ifx check.
\def\sem@tmp{##1}%
\def\sem@tmpa{##2}%
\ifx\sem@tmp\sem@empty%
\ifx\sem@tmpa\sem@empty%
\else%
% We found the line!
\sem@continuereadfilefalse%
% Extract and store the result.
\expandafter\sem@extractlecturetitles##2%
\fi%
\fi%
}%
%
% Open the corresponding file.
\immediate\openin\sem@lecturetitlesinputstream=\sem@lecgetbodyfilefromid{#1}%
% Iterate over the lines.
\loop \ifsem@continuereadfile%
% Read the next line.
\immediate\read\sem@lecturetitlesinputstream to \sem@nextline
% Examine the line.
\expandafter\sem@checkandgetargument\sem@nextline\lecturewithid\pgf@stop%
\repeat%
% We're done. Close the input stream.
\immediate\closein\sem@lecturetitlesinputstream
}
\def\sem@getexercisetitlesfromid#1{%
% Set iteration condition.
\sem@continuereadfiletrue%
%
% Macro for extracting and saving the result.
\def\sem@extractexercisetitles##1 \title{%
\def\sem@exercisetitle{##1}%
}%
%
% Macro for examining the line.
\long\def\sem@checkandgetargument##1\title##2\pgf@stop{%
% Prepare for \ifx check.
\def\sem@tmp{##1}%
\def\sem@tmpa{##2}%
\ifx\sem@tmp\sem@empty%
\ifx\sem@tmpa\sem@empty%
\else%
% We found the line!
\sem@continuereadfilefalse%
% Extract and store the result.
\expandafter\sem@extractexercisetitles##2%
\fi%
\fi%
}%
%
% Open the corresponding file.
\immediate\openin\sem@exercisetitlesinputstream=\sem@exgetbodyfilefromid{#1}%
% Iterate over the lines.
\loop \ifsem@continuereadfile%
% Read the next line.
\immediate\read\sem@exercisetitlesinputstream to \sem@nextline
% Examine the line.
\expandafter\sem@checkandgetargument\sem@nextline\title\pgf@stop%
\repeat%
% We're done. Close the input stream.
\immediate\closein\sem@exercisetitlesinputstream
}
% To my future me:
% You once really liked the two macros above.
%
% Lecture Parts
%
\newcount\sem@numberofparts % stores the number of ranges
% Sets the lecture parts.
%
% Usage:
% \lecturelistofparts{
% <id of first lecture in part>=<parttitle>,
% <id of first lecture in part>=<parttitle>,
% }
\def\lecturelistofparts#1{
\foreach \sem@partstartidandtitle[count=\map@i] in {#1} {
\expandafter\sem@parse@partstartidandtitle\sem@partstartidandtitle\pgf@stop{\map@i}
\global\sem@numberofparts=\map@i
}
}
\def\sem@parse@partstartidandtitle#1=#2\pgf@stop#3{
\expandafter\gdef\csname sem@partstart@lectureid@#3\endcsname{#1}
\expandafter\gdef\csname sem@partstart@title@#3\endcsname{#2}
}
% Getter and setter.
\def\sem@getnumberofsemesterparts{\the\sem@numberofparts}
\def\sem@getlectureidfrompartnumber#1{\csname sem@partstart@lectureid@#1\endcsname}
\def\sem@getparttitlefrompartnumber#1{\csname sem@partstart@title@#1\endcsname}
% Translates lecture ids to file names. This is required for
% - automatically inserting the lecture targets into the map,
% - extraction of the lecture titles and subtitles of the body
% files.
%
% This translation process should be removed, but this requires
% appropriate renaming of the folders within lecture_slides.
\def\lectureidstofoldernamelist#1{
\foreach \sem@idfilenametuple in {#1} {
\expandafter\sem@parse@idandfilename\sem@idfilenametuple\pgf@stop
}
}
\def\sem@parse@idandfilename#1=#2\pgf@stop{
\expandafter\xdef\csname sem@filename@#1\endcsname{../#2/body.tex}
}
\def\sem@getbodyfilefromid#1{\csname sem@filename@#1\endcsname}
\def\sem@lecgetbodyfilefromid#1{../lecture_slides/#1/body.tex}
\def\sem@exgetbodyfilefromid#1{../exercises/#1/body.tex}
% The following macro creates the file podcasts.aux that is required
% for creating the XML files for Till's podcasts. In this file, the
% i'th line consists of the title and the subtitle of the i'th
% lecture, separated by two hashmarks.
\def\makeauxfiles{%
% Open outstreams
\message{^^JOpening outstreams.^^J}
\newwrite\pod@auxfile \immediate\openout\pod@auxfile=podcasts.aux
\newwrite\pres@auxfile \immediate\openout\pres@auxfile=upload-presentation-files.aux
\newwrite\preswiki@auxfile \immediate\openout\preswiki@auxfile=wiki-presentation-files.aux
\newwrite\ex@auxfile \immediate\openout\ex@auxfile=upload-exercise-files.aux
\newwrite\exwiki@auxfile \immediate\openout\exwiki@auxfile=wiki-exercise-files.aux
% Define counters for the following loop that iterates over all the
% lecture numbers.
\newcount\pod@tmpcnt \pod@tmpcnt=0
\newcount\pod@lecmax \pod@lecmax=\lec@lastlecnumber
\newcount\ex@tmpcnt \ex@tmpcnt=0
\newcount\ex@maxcnt \ex@maxcnt=\ex@lastexercisenumber
% Create temporary token registers
\newtoks\pod@titletoks
\newtoks\pod@subtitletoks
% Generate lecture files
\message{^^JGenerating lecture files.}
\message{Considering the following lecture IDs:^^J}
\loop
\def\lectureid{\csname lec@id@\the\pod@tmpcnt\endcsname}
\advance\pod@tmpcnt by 1
{
\sem@getlecturetitlesfromid{\lectureid}
\expandafter\global\expandafter\pod@titletoks\expandafter=\expandafter{\sem@lecturetitle}
\expandafter\global\expandafter\pod@subtitletoks\expandafter=\expandafter{\sem@lecturesubtitle}
\message{\the\pod@tmpcnt. \lectureid: \the\pod@titletoks^^J}
}
\immediate\write\pod@auxfile{\the\pod@titletoks__\the\pod@subtitletoks}
\immediate\write\pres@auxfile{\lectureid}
\edef\ddi@tmp@isodate{\csname lec@date@\getlecturenumberfromid{\lectureid}\endcsname}%
\immediate\write\preswiki@auxfile{%
1. [attachment:\lectureid.pdf Vorlesung: \the\pod@titletoks],
\expandafter\ddi@isodatetohumanreadable\ddi@tmp@isodate\pgf@stop%
}
\ifnum\pod@tmpcnt<\pod@lecmax
\repeat
\message{^^JFinished generating lecture files.^^J}
% Create temporary token registers
\newtoks\ex@titletoks
\message{^^JGenerating exercise files.}
\message{Considering the following exercise IDs:^^J}
% Generate exercise files
\loop
\def\exerciseid{\csname ex@id@\the\ex@tmpcnt\endcsname}
\advance\ex@tmpcnt by 1
{
\sem@getexercisetitlesfromid{\exerciseid}
\expandafter\global\expandafter\ex@titletoks\expandafter=\expandafter{\sem@exercisetitle}
\message{\the\ex@tmpcnt. \exerciseid: \the\ex@titletoks^^J}
}
\immediate\write\ex@auxfile{\exerciseid}
\edef\ddi@tmp@tutorialisodate{\csname ex@tutorial@\getexercisenumberfromid{\exerciseid}\endcsname}%
\edef\ddi@tmp@tutorialdate{\expandafter\ddi@isodatetohumanreadable\ddi@tmp@tutorialisodate\pgf@stop}%
\edef\ddi@tmp@deadlineisodate{\csname ex@deadline@\getexercisenumberfromid{\exerciseid}\endcsname}%
% Check whether sheet has deadline or not
\def\ddi@tmp@none{none}%
\edef\ddi@tmp{\ddi@tmp@deadlineisodate}%
\ifx\ddi@tmp@none\ddi@tmp
\def\ddi@tmp@deadlinedate{keine Abgabe}
\else
\def\ddi@tmp@deadlinedate{\expandafter\ddi@isodatetohumanreadable\ddi@tmp@deadlineisodate\pgf@stop}%
\fi
\immediate\write\exwiki@auxfile{%
|| [attachment:\exerciseid.pdf \the\ex@tmpcnt. Übung: \the\ex@titletoks]
|| \ddi@tmp@tutorialdate || \ddi@tmp@deadlinedate ||%
}
\ifnum\ex@tmpcnt<\ex@maxcnt
\repeat
\message{^^JFinished generating exercise files.^^J}
\message{^^JClosing outstreams.^^J}
% Close outstreams
\closeout\pod@auxfile
\closeout\pres@auxfile
\closeout\preswiki@auxfile
\closeout\ex@auxfile
\closeout\exwiki@auxfile
\message{Finished. Bye^^J^^J}
}
\def\ddi@isodatetohumanreadable#1-#2-#3\pgf@stop{%
\number#3. \translate{\ddi@arabmonth@to@textmonth{#2}} #1}
\def\ddi@arabmonth@to@textmonth#1{\csname ddi@monthname@#1\endcsname}
\expandafter\def\csname ddi@monthname@01\endcsname{Januar}
\expandafter\def\csname ddi@monthname@02\endcsname{Februar}
\expandafter\def\csname ddi@monthname@03\endcsname{März}
\expandafter\def\csname ddi@monthname@04\endcsname{April}
\expandafter\def\csname ddi@monthname@05\endcsname{Mai}
\expandafter\def\csname ddi@monthname@06\endcsname{Juni}
\expandafter\def\csname ddi@monthname@07\endcsname{Juli}
\expandafter\def\csname ddi@monthname@08\endcsname{August}
\expandafter\def\csname ddi@monthname@09\endcsname{September}
\expandafter\def\csname ddi@monthname@10\endcsname{Oktober}
\expandafter\def\csname ddi@monthname@11\endcsname{November}
\expandafter\def\csname ddi@monthname@12\endcsname{Dezember}

47
bib-config.tex Normal file
View File

@ -0,0 +1,47 @@
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: bib-config.tex |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\only<article>{%
\cleardoublepage
\refstepcounter{chapter}
{\sloppy\printbibliography[heading=bibchap]}
}
\only<presentation>{%
\begin{frame}[allowframebreaks]{Literatur}
\setbeamertemplate{bibliography item}[text]
\printbibliography[heading=bibliography]
\dotfill{}
\begin{center}
Dieses Dokument wird unter der folgenden Creative-Commons-Lizenz
ver"offentlicht:
\insertCC
\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}
\end{center}
\end{frame}
}

78
body.tex Normal file
View File

@ -0,0 +1,78 @@
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: body.tex |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\providecommand\hutAuf{M. Musterfrau}
\lecturewithid{id-vortrag}{Titel}{Untertitel \hfill \textcolor{blue!50}{Martha Musterfrau}}
\label{musterlabel}
\begin{body}
\begin{frame}
\maketitle
% Titel
\end{frame}
\begin{lecture notes intro}
Einleitender Text im Skriptum
\end{lecture notes intro}
\begin{learning targets}
\item Dies sind die Ziele des Vortrags
\end{learning targets}
\mode
<all>
\only<article>{
\section{Allgemeine Infos}
Diese Sektion und dieser Text werden nur im Skriptum gesetzt!
}
\section{Beginn}
\begin{frame}
\begin{center}
Dies ist die erste Folie unter der Sektion Beginn!
\end{center}
\begin{lecture notes only}[Regie]
\only<article>{
Hier könnte eine Regieanweisung nur für das Skriptum stehen!
}
\end{lecture notes only}
\end{frame}
\section{Mittelteil}
\subsection{Unterpunkt}
\begin{frame}{Weitere Folien}
\begin{itemize}
\item Hier ist eine weitere Folie mit...\pause
\item Schrittweiser Aufdeckung\pause
\item Im Skriptum entsteht eine Folie!
\end{itemize}
\end{frame}
\end{body}

151
config.tex Normal file
View File

@ -0,0 +1,151 @@
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: config.tex |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\def\university{ZfsL Essen\\ Carl-Humann-Gymnasium Essen-Steele}
\def\universitaet{ZfsL Essen\\ Carl-Humann-Gymnasium Essen-Steele}
\def\unishort{CHG}
\institute[ZfsL Essen -- CHG-Essen]
{%
Zentrum für schulpraktische Lehrerbildung Essen\\
Carl-Humann-Gymnasium Essen-Steele
}
\def\insertauthortitle{Martha Musterfrau}
\def\insertnameetal{\insertauthortitle{}
Martha Musterfrau http://marthamusterfrau.de/
CC-Lizenz: http://creativecommons.org/licenses/by-nc-sa/4.0/}
\def\inserturl{http://martamusterfrau.de/}
\def\insertCC{\ccbyncsaeu{}}
\def\inserttalkname{Workshop}
% \addbibresource[location=remote,type=file]{http://ddi.uni-wuppertal.de/forschung/Komplett.bib}
% wenn man es sich einmal lokal in den TeX-Baum gelegt hat
% z.\,B.: unter ~/texmf/bibtex/bib/Komplett.bib reicht
\addglobalbib{quellen.bib} % A. Hilbig
\addglobalbib{Komplett.bib}
\providetranslation[to=German]{Kompetenzen -- Vortrag}{Kompetenzen -- \inserttalkname}
\providetranslation[to=English]{Kompetenzen -- Talk}{Chapter---Competencies}
\providetranslation[to=German]{Vortrag}{\inserttalkname}
\providetranslation[to=English]{Vortrag}{\inserttalkname}
%\providetranslation[to=German]{\inserttalkname -- Kompetenzen}{\inserttalkname -- Kompetenzen}
%\providetranslation[to=English]{\inserttalkname -- Kompetenzen}{Talk---Competencies}
\providetranslation[to=German]{Vortrag -- Kompetenzen}{\inserttalkname -- Leitgedanken}
\providetranslation[to=English]{Vortrag -- Kompetenzen}{Talk---Questions}
\providetranslation[to=German]{Inhalte dieses Vortrags}{Inhalte dieses \inserttalkname s}
\providetranslation[to=English]{Inhalte dieses Vortrags}{Contents}
\providetranslation[to=German]{Zusammenfassung dieses Vortags}{Zusammenfassung dieses
\inserttalkname s}
\providetranslation[to=English]{Zusammenfassung dieses Vortags}{Summary for this talk}
\providetranslation[to=German]{Gliederung -- Vortrag}{Gliederung -- \inserttalkname}
\providetranslation[to=English]{Gliederung -- Vortag}{Outline of Chapter}
\providetranslation[to=German]{Uebungen zu diesem Vortrag}{Übungen zu diesem \inserttalkname}
\providetranslation[to=English]{Uebungen zu diesem Vortrag}{Problems for this talk}
\providetranslation[to=German]{Pruefungsaufgaben zu diesem Vortrag}{Prüfungsaufgaben zu diesem
\inserttalkname}
\providetranslation[to=English]{Pruefungsaufgaben zu diesem Vortrag}{Exam Problems for this talk}
%\def\jahr{2014}
\providecommand\jahr{2015}
%\providecommand\jahrpe{2015}
\provideboolean{tagschalte} % damit Seminare, die auf einem Termin liegen,
% für die Veranstaltungskarte verteilt dargestellt
% werden
\setboolean{tagschalte}{false} % Wert für Präsentationen, Skriptum
\def\insertsemestershort{2015}
\def\insertsemester{März 2015}
%\def\insertassistant{Dorothee Müller}
%\def\inserttutors{Adrian Salamon}
\lecturelistofdates{
\jahr-03-23
}
\lecturelistofids{
id-vortrag, %achtung! Komma hier ist wichtig!!!
}
\lecturelistofparts{
neu-vtr=Neues Vortragsthema % hier ist kein komma notwendig!
}
\lectureidstofoldernamelist{
id-vortrag=meinvortragsverzeichnis
}
\def\lecturename{Ausführlicher Titel des Vortrags}
\def\insertshortlecture{Kurztitel}
\alt<presentation>
{\def\equ{\mathbin{\hbox{\boldmath$\textcolor{green!80!black}{=}$}}}}
{\def\equ{\mathbin{\hbox{\textcolor{green!80!black}{\textbf{=}}}}}}
\makeatletter
\define@key{beamerst}{left}[true]{%
\def\beamer@stalign{\raggedright}}
\makeatother
\mode<presentation>{
\newenvironment{examplelike}[2][]{%
\def\test{#1}%
\block{%
{\hspace{-2ex}\vspace{-0.5ex}\scalebox{0.7}{\staveVI}}
#2\ifx\test\@empty\else: \textcolor{black}{#1}\fi}
\ignorespaces
}
{\endblock}
}
\newenvironment{explanation}[1][]{\examplelike[#1]{\translate{Erklärung}}}{\endexamplelike}
\newenvironment{explanations}[1][]{\examplelike[#1]{\translate{Erklärungen}}}{\endexamplelike}
\newenvironment{annote}[1][]{\examplelike[#1]{\translate{Erläuterung}}}{\endexamplelike}
\newenvironment{annotes}[1][]{\examplelike[#1]{\translate{Erläuterungen}}}{\endexamplelike}
\newenvironment{qualifying}[1][]{\examplelike[#1]{\translate{Einordnung}}}{\endexamplelike}
\providecommand\klpifnrw{\emph{\textsc{klp} Informatik \textsc{nrw}}\xspace}
\providecommand{\CM}{Cy\-ber\-mob\-bing\xspace}
\providecommand{\IS}{Informatiksystem\xspace}
\providecommand{\ISo}{Informatiksystem}
\providecommand{\ISs}{Informatiksysteme\xspace}
\providecommand{\ISe}{Informatiksysteme\xspace}
\providecommand{\ISen}{Informatiksystemen\xspace}
\providecommand{\ISes}{Informatiksystems\xspace}

49
emerald.sty Normal file
View File

@ -0,0 +1,49 @@
%%
%% This is file `emerald.sty',
%%
%% IMPORTANT NOTICE:
%% This is a collection of files developed by M. Cesar Rodriguez
%% (mcesar@sec.upm.es) which give support for some ECF (emerald city fontwerks,
%% http://www.speakeasy.org/~ecf/) fonts in LaTeX.
%% The usual disclaimers apply:
%% If it doesn't work right that's your problem.
%% License: LPPL (Except for the fonts themselves)
%% See accompanying .txt files describing the use and
%% redistribution conditions of the fonts.
\def\filename{emerald}
\def\fileversion{v1.0}
\def\filedate{2006/01/26}
%%
%% Gives support for ECF (emerald city fontwerks) fonts. These are
%% mainly display or script/handwrited free fonts.
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{emerald}[\filedate\space\fileversion\space
LaTeX2e package which gives support for ECF (emerald city fontwerks) fonts]
\newcommand\ECFAPicture{\fontfamily{fap}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFAugie{\fontfamily{fau}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFDecadence{\fontfamily{fdc}\fontseries{x}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceWithoutTheDiamonds{\fontfamily{fdc}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceCondensed{\fontfamily{fdc}\fontseries{c}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceInTheDark{\fontfamily{fdc}\fontseries{b}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceInTheDarkCondensed{\fontfamily{fdc}\fontseries{bc}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceInADifferentLight{\fontfamily{fdc}\fontseries{l}\fontshape{n}\selectfont}
\newcommand\ECFDecadenceInTheDarkCondensedMarquee{\fontfamily{fdm}\fontseries{bc}\fontshape{n}\selectfont}
\newcommand\ECFIntimacy{\fontfamily{fin}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFIntimacyDeux{\fontfamily{fin}\fontseries{l}\fontshape{n}\selectfont}
\newcommand\ECFJD{\fontfamily{fjd}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFMovieola{\fontfamily{fmv}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFMovieolaTitleType{\fontfamily{fmt}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFPookie{\fontfamily{fpk}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFPookieType{\fontfamily{fpt}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFSkeetch{\fontfamily{fsk}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFSpankysBungalow{\fontfamily{fsp}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFSpankysBungalowItalico{\fontfamily{fsp}\fontseries{m}\fontshape{it}\selectfont}
\newcommand\ECFSpankysBungalowBlanco{\fontfamily{fsb}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFSpankysBungalowBlancoItalico{\fontfamily{fsb}\fontseries{m}\fontshape{it}\selectfont}
\newcommand\ECFSyriac{\fontfamily{fsy}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFTallPaul{\fontfamily{ftp}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFTeenSpirit{\fontfamily{fts}\fontseries{m}\fontshape{n}\selectfont}
\newcommand\ECFWebster{\fontfamily{fwb}\fontseries{m}\fontshape{n}\selectfont}
\endinput
%%
%% End of file `emerald.sty'.

View File

@ -0,0 +1,46 @@
% BUW-presentation_preamble.tex
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: mustername-presentation.tex |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
\documentclass[german,10pt,table]{beamer}
\usepackage[utf8]{luainputenc}
\usepackage[onelecture]{ahilbig-presentation}
\usepackage{yfonts}
\usepackage{graphicx}
\usepackage[compatibility=false]{caption}
\usepackage{subcaption}
\usepackage{circuitikz}
\input{config.tex}
\hypersetup{%
pdfsubject={Präsentation, \lecturename, \insertsemester, Themen, Termine, Kompetenzen, \universitaet},
pdfkeywords={Informatikunterricht,Didaktik,Modulkonzept,Mobilsysteme,Python,Informatik,allgemeine Bildung,Paradigmen,Freihandversuche,Bildungsgangdidaktik}
}
\input{body.tex}

122
mustername-script.tex Normal file
View File

@ -0,0 +1,122 @@
% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: mustername-script.tex |
% |
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 |
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de |
% |
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, |
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben |
% und auf die ursprünglichen Urheber verwiesen wird. |
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% HINWEISE/ERWEITERUNG |
% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert |
% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine |
% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau |
% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. |
% |
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
%\RequirePackage{snapshot} % Needed by bundledoc
%
\documentclass[german,a4paper,10pt,table,notitlepage]{report}
\usepackage[utf8]{inputenc}
\RequirePackage[bookmarksnumbered,pdfborder={0 0 0}]{hyperref}
%\providecommand{\enquote}[1]{»#1«}
\providecommand{\bodydir}{./}
\usepackage[onelecture]{ahilbig-script}
\usepackage{beamerarticle}
\usepackage{ahilbig-semester}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{circuitikz}
\input{config.tex}
%\DdILogoOptions{width=1.75cm,keepaspectratio=true,digitcolor=ddilogolightgray}
\listfiles
%\newcommand\logobreite{9.2cm}
%\newcommand\lgo{\raisebox{-1ex}{\ddiLogo}}
\usepackage{pdfpages}
\hypersetup{
pdftitle={Workshop \lecturename{} \insertsemester{} \universitaet},
pdfsubject={Workshop \lecturename{}, \insertsemester{}, \universitaet},
pdfauthor={\insertnameetal},
pdfkeywords={Informatikunterricht, Didaktik, Informatik Mensch und Gesellschaft,
Technische Informatik, Objektorientierte Modellierung,
Modulkonzept, Mobilsysteme, Python, Informatik, allgemeine Bildung,
Paradigmen, Freihandversuche, Gender, Mobiles Programmieren,
Bildungsgangdidaktik,Computing},
}
\begin{document}
\begin{frontmatter}
\begin{titlepage}
\maintitle
%\includegraphics[width=\textwidth]{../../planning/logo.pdf}%
\end{titlepage}
\printTables
%\label{veranstaltungskarte}
%\insertmap{\unishort}
%\fancypictures{\lgo}
%\clearpage
\addchap{Vorwort}
\addsec{Allgemeine Hinweise}
Dieses Skriptum basiert auf den Ergebnissen aus meiner Bachelor-Thesis \citetitle{Hilbig2012}
\autocite{Hilbig2012} und vor allem der Masster-Thesis \citetitle{Hilbig2014}
\autocite{Hilbig2014}. Die Vorlage des zugehörigen Vortrags stammt aus einem Beitrag von mir im
Rahmen des Seminars der Didaktik der Informatik in Wuppertal \autocite[vgl.][]{HumbertDdI2014}.
Alle drei Arbeiten stehen unter einer Creative Commons cc-by-nc-sa-Lizenz und können den
Lizenzbedingungen entsprechend zitiert und verwendet werden. Einzelne Inhalte, etwa konkrete
Übungen, sind jedoch als Zitat kenntlich gemacht. Hier gelten die Bestimmungen der ausgewiesenen
Autoren.
Dieses Dokument wird unter der folgenden Creative-Commons-Lizenz veröffentlicht:
\begin{center}
\ccbyncsaeu{}
\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}
\end{center}
Weitere Materialien sowie die Präsentation können unter \url{\inserturl} abgerufen werden.
\addsec{Danksagung}
Die grundlegenden Elemente zur Unterstützung der
Erstellung dieser Dokumente basieren auf Quellen von Prof.\,Dr.\,Ludger Humbert
(\url{http://ddi.uni-wuppertal.de}) und Prof.\,Dr.\,Till Tantau
(\url{http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/}) denen für die
Schaffung dieser Grundlage mein Dank gilt.
\end{frontmatter}
\onecolumn
\clearpage
\InsertLectureAndExercises{img-beispiel} % André Hilbig
\end{document}

1204
quellen.bib Normal file

File diff suppressed because it is too large Load Diff