vorlagevortrag/Myriad.sty
2025-02-05 10:02:28 +01:00

5497 lines
160 KiB
TeX
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

% -*- 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
ahilbig-common.sty0000644000175000001440000007517712505473413013561 0ustar iorekusers% -*- 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>
ahilbig-letterspace.sty0000644000175000001440000000700612505473447014575 0ustar iorekusers% -*- 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
ahilbig-presentation.sty0000644000175000001440000013532312505473545015000 0ustar iorekusers% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-presentation.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-seminar}
\newif\ifcmmath
\DeclareOption{cmmath}{\cmmathtrue}
\newif\ifonelecture
\DeclareOption{onelecture}{\onelecturetrue}
\ProcessOptions
%\RequirePackage[draft]{ddi-common}
%\RequirePackage[blackandwhite]{ddi-common}
%\RequirePackage[cd]{ddi-common}
\RequirePackage{ahilbig-common}
\RequirePackage{ahilbig-semester}
%\RequirePackage[height=5cm,keepaspectratio,digitcolor=white,
% backgroundcolor=none]{ddiLogo} % benutzt in Zeile 388
%\RequirePackage{chapterbib}
\RequirePackage{graphicx}
\RequirePackage{pifont}
\RequirePackage{ahilbig-comics}
\RequirePackage{wrapfig}
\RequirePackage{smartdiagram}
\RequirePackage{varsfromjobname} % Element[e] aus \jobname extrahieren
%\RequirePackage{qrcode} % Wird in maintitle genutzt - auskommentiert
%\RequirePackage{pdfpages}
% Default lecture
\providecommand\insertshortlecture{0}
\providecommand\insertlecture{Vortrag}
\providecommand\lecturename{Vortragtitel}
\providecommand\versionsinfo{%
% \textcolor{blue!50}{%
% \begin{tabular}{ll}
% Version: &\svnfilerev \\ %\hline
% Stand: &\svnfiletoday, \svnfilehour:\svnfileminute ~Uhr\\ %\hline
% Zuletzt bearbeitet von:&\svnFullAuthor{\svnfileauthor}
% \end{tabular}
% }
}
% Common packages
%
\usepackage{babel}
\mode<article>
{
\usepackage[left=1.75cm,right=6.5cm,top=2.5cm,bottom=2cm,twoside,
a4paper]{geometry}
\usepackage{fancyhdr}
\setlength\columnsep{1.5cm}
}
%%\usepackage{hyperref}
\usepackage{calc}
\usepackage{tikz}
%\usepackage{yfonts}
\usepackage{translator}
\usepackage{amssymb}
\usetikzlibrary{scopes,backgrounds,positioning}
\usepackage[absolute]{textpos}
\usepackage{multimedia}
\def\UrlFont{}
% Common settings for all lectures in this course
\title{\insertlecture}
% The body environment
\mode<article>{
\parskip.5em plus 1pt minus 1pt
\newenvironment{body}{\parskip=2pt plus 1pt minus 1pt}{}
}
\mode<presentation>{
\newenvironment{body}{\document\ifcd\setbeamertemplate{sidebar
right}{}\fi}{\input{bib-config.tex}\enddocument}
% \newcommand{\newblock}{}
}
% Common theorem-like environments
\theoremstyle{definition}
\newtheorem{lectureexercise@}[theorem]{\translate{Zur Uebung}}
\newtheorem{discussion@}[theorem]{\translate{Zur Diskussion}}
\pgfkeys{/ddi/lines/.initial=0}
\pgfkeys{/ddi/border lines/.initial=4}
\pgfkeys{/ddi/name/.initial=}
\pgfkeys{/ddi/title/.style={/ddi/name=#1}}
\newenvironment{lecture exercise}[1][]{\pgfkeys{/ddi/.cd,#1}%
\edef\marshal{\noexpand\lectureexercise@[\pgfkeysvalueof{/ddi/name}]}
\marshal\ignorespaces}
{\endlectureexercise@
}
% \def\lineblock
% {%
% %
% \ifnum\pgfkeysvalueof{/ddi/border lines}>0\relax%
% \only<article>{%
% \setlength{\marginparsep}{.5cm}%
% \setlength{\marginparwidth}{4cm}%
% \marginpar{%
% \color{black!35}
% \edef\temp{1,...,\pgfkeysvalueof{/ddi/border lines}}
% \foreach \i in \temp
% {\ifnum\i>1\vskip1.5em\else\ding{46}\vskip2pt\fi\hrule width4cm height0.4pt}
% \vskip1.5em
% }%
% }%
% \fi%
% }
\def\lineblock{\llap{\ding{46}\ \ }}
\newenvironment{discussion}[1][]{\pgfkeys{/ddi/.cd,#1}%
\edef\marshal{\noexpand\discussion@[\pgfkeysvalueof{/ddi/name}]}
\marshal\ignorespaces}
{\enddiscussion@
}
%
% New environments
%
\newdimen\gapskip
\gapskip=5cm
\newenvironment{presentation itemize}
{\alt<presentation>{\itemize}{\ddi@save@item\let\item=\relax\ignorespaces}}
{\alt<presentation>{\enditemize}{}}
\newenvironment{presentation enumerate}
{\alt<presentation>{\itemize}{\ddi@save@item\c@enumi=0\def\item{\advance\c@enumi
by 1\relax\the\c@enumi.\ }\ignorespaces}}
{\alt<presentation>{\enditemize}{}}
\def\ddi@save@item{\ifx\ddi@reinstall@item\relax\let\orig@item=\item\def\ddi@reinstall@item{\let\item=\orig@item}\fi}
\let\ddi@reinstall@item\relax
\let\orig@list=\list
\def\list{\ddi@reinstall@item\orig@list}
%
% Special wide pages
\def\ddistartwidepages{
\setlength\textwidth{\paperwidth-17.5mm-17.5mm}
\setlength\oddsidemargin{17.5mm-1in}
\setlength\evensidemargin{17.5mm-1in}
\setlength\gapskip{0.25cm}
}
\newenvironment{wide pages}
{
\begingroup
\ddistartwidepages
\onecolumn
}
{
\clearpage
\endgroup
\onecolumn
}
% Learning targets and TOC
\mode<beamer>
{
\newenvironment{learning targets}
{
\translatelet\temp{Kompetenzen}
% \section*{\temp}
\begin{frame}[fragile=singleslide]{\translate{Kompetenzen}~\insertshortlecture}
\begin{enumerate}%\rightskip-1.5cm plus1fil
}
{
\end{enumerate}
\end{frame}
\begin{frame}{\translate{Gliederung}~\insertshortlecture}
\tableofcontents
\end{frame}
\aftergroup\setupsidebar
}
}
\mode<article>
{
\newcommand\maintableofcontents{{%
\parskip0pt%
% \addvspace{3em \@plus\p@}%
% \avoidwiddow{2.5cm}{500}
\tableofcontents
}}
\renewcommand*\l@part[2]{%
\addpenalty{-\@highpenalty}%
\addvspace{5em \@plus\p@}%
\avoidwiddow{3cm}{750}
\setlength\@tempdima{4em}%
\begingroup
\parindent \z@
\leavevmode
\raggedright
\leftskip0em%
\Large\sffamily
\long\def\numberline##1{{\fontsize{20pt}{24pt}\selectfont%
\textcolor{structure.fg}{##1}\par}\leavevmode}%
#1
\par
\endgroup
}
\renewcommand*\l@chapter[2]{%
\addvspace{3em \@plus\p@}%
\avoidwiddow{2.5cm}{500}
\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\raggedright
\advance\leftskip4em
\hskip -4em
{\Large\color{black} \textsf{#1}\par}
\endgroup
}
\renewcommand*\l@section[2]{%
\addvspace{1.0em \@plus\p@}%
\avoidwiddow{2cm}{200}
\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\rightskip\@pnumwidth plus1fil
\advance\leftskip4em
\hskip -4em
{\small\color{structure.fg} \textsf{#1}}
% \ifmicrotoc
% \else
\nobreak\normalsize\normalfont
\hfill
\nobreak
\rlap{\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}}%
% \fi
\par
\endgroup
}
\def\subsectionnumberline#1{\hb@xt@\@tempdima{\small\sffamily#1\hfil}}
\renewcommand*\l@subsection[2]{\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\advance\leftskip4em
\rightskip\@pnumwidth plus1fil
\hskip -4em
\let\numberline\subsectionnumberline
#1
% \ifmicrotoc
% \else
\nobreak\normalsize\normalfont
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\rlap{\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}}%
% \fi
\par
\endgroup}
\let\l@chapterstar\l@subsection
\def\toclevel@chapterstar{1}
\renewcommand*\l@subsubsection[2]{}
\newenvironment{learning targets}
{
\begin{frame}
\ifodd\c@page%
\else%
\hskip-4.75cm
\fi
\noindent\begin{minipage}[t]{8cm}
\section*{\textcolor{structure.fg}{\translate{Kompetenzen}}}
\medskip
\begin{enumerate}
\raggedright
}
{
\end{enumerate}
\end{minipage}\qquad\textcolor{gray}{\vrule width.4pt}\qquad
\rlap{
\begin{minipage}[t]{8cm}
\section*{\textcolor{structure.fg}{\translate{Inhalte dieses Vortrags}}}
\raggedright
\the\microtoc%
\end{minipage}}
\vskip2em
\refstepcounter{framenumber}%
\end{frame}
}
}
% Microtocs
\mode<article>
{
\def\chaptertext{chapter}
\def\chapterstartext{chapterstar}
\def\parttext{part}
\newtoks\microtoc
\newif\ifmicrotoc
{
\def\contentsline#1#2#3#4{%
\extractchapter{#1}{#2}{#3}{#4}#4..\relax%
}
\def\extractchapter#1#2#3#4#5.#6.#7\relax{%
\def\test{#1}%
\ifx\test\chaptertext%
\else%
\ifx\test\chapterstartext%
\else%
\ifx\test\parttext%
\else%
\expandafter\global\expandafter\microtoc\expandafter{%
\the\microtoc\filteredcontentsline{#1}{#2}{#3}{#4}{#6}}
\fi%
\fi%
\fi%
}
\@input{\jobname.toc}
}
\newcommand\filteredcontentsline[5]{%
{
\microtoctrue
\ifnum#5=\c@chapter\relax%
\contentsline{#1}{#2}{#3}{#4}%
\fi%
}
}
}
% Parts
\def\ddiparttext{part}
\def\part#1{%
\clearpage
\null\vskip4cm
\refstepcounter{part}%
\chapterstarmark{\partname\ \thepart}{#1}
\addcontentsline{toc}{part}{\protect\numberline{\partname\ \thepart}#1}%
\interlinepenalty \@M
\normalfont{\raggedright
\sffamily
{\fontsize{36pt}{40pt}\selectfont{ \color{structure.fg} \partname\
\thepart}\par
\fontsize{24pt}{30pt}\selectfont#1\par}}
\vskip2em
\ifx\@currenvir\ddiparttext
\parskip.75em plus 1pt minus 1pt
\else
\endpart
\fi
}
\def\endpart{
\clearpage%
}
% Table of Contents
\mode<article>
{
\renewcommand\tableofcontents{%
\begin{wide pages}
\chapterstarmark{\contentsname}{}
\twocolumn[
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{\contentsname}}\par
\vskip2cm]
\@starttoc{toc}%
\end{wide pages}
}
}
% List of proof methods
\newcommand\listofproofmethods{%
\begin{wide pages}
\parskip0pt%
\chapterstarmark{Verzeichnis der Rezepte}{}
\twocolumn[
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{Verzeichnis der Rezepte\par}}
\vskip1cm]
\@starttoc{lop}%
\end{wide pages}
}
\newcommand\listofproofmethodsinline{%
{
\parskip0pt
\@starttoc{lop}%
}
}
% Discussion
\mode<article>
{
\renewenvironment{lectureexercise@}[1][]{\begingroup
\setlength{\marginparsep}{.5cm}%
\setlength{\marginparwidth}{4cm}%
\examplelike[#1]{\lineblock \translate{Zur Uebung}}}{
\endexamplelike
\endgroup}
\renewenvironment{discussion@}[1][]{\begingroup
\setlength{\marginparsep}{.5cm}%
\setlength{\marginparwidth}{4cm}%
\examplelike[#1]{\lineblock \translate{Zur Diskussion}}}{%
\endexamplelike\endgroup}
}
% Map
\newcommand\insertmap[1]{
{
\null
\parskip0pt
\setbox\mybox=\vbox{%
\hsize=100cm\includegraphics[width=\paperheight-1.41cm,
height=\paperwidth-1cm,angle=90]{../map/#1-map.pdf}\hss%
}
\ht\mybox=0cm
\wd\mybox=0cm
\vskip-1.8cm
\vskip-2.9\baselineskip
\hbox{}
\hskip-6cm
\box\mybox
\thispagestyle{empty}
\clearpage
}
}
% Summary
\newenvironment{summary}
{
\only<article>{%
\section*{\translate{Zusammenfassung dieses Vortrags}}
\sectionstarmark{\translate{Zusammenfassung dieses Vortrags}}
}
\only<presentation>{
\translatelet\temp{Zusammenfassung}
\section*{\temp}
}
\begin{frame}[fragile,environment=summary]
\frametitle<presentation>{\translate{Zusammenfassung}}
\only<article>{\vskip-2.5\baselineskip\hbox{}}
}
{
\end{frame}
}
\newenvironment<>{further reading}
{
\mode<presentation>{\vfill}
\def\refname{\translate{Zum Weiterlesen}}
\actionenv#1
\begin{thebibliography}{10}
\setbeamertemplate{bibliography item}[book]
}
{
\end{thebibliography}
\endactionenv
}
\newenvironment{bibitem comments}
{
\begin{onlyenv}<article>
\par\medskip
\small
}
{
\par\medskip
\end{onlyenv}
}
\newenvironment<>{summary item}[1]{\actionenv#2\block{\only<article>{%
\ddibordericon{{\ddiborderpointer}}}#1}}{\endblock\endactionenv}
% Exercise frame
\newif\ifmulti
\pgfkeys{/ddi/minutes/.initial=5}
\pgfkeys{/ddi/multiple exercises/.is if=multi}
\newenvironment{exercise frame}[1][]
{
\pgfkeys{/ddi/.cd,#1}
\begin{frame}[fragile=singleslide]
\frametitle<presentation>{\pgfkeysvalueof{/ddi/minutes}\ifmulti\translate{%
Minuten-Aufgaben}\else\translate{Minuten-Aufgabe}\fi}
\only<article>{\vskip-2.5\baselineskip\hbox{}}%
\ifmulti\else%
\begin{lecture exercise}%
\fi%
\ignorespaces%
}
{
\ifmulti\else%
\end{lecture exercise}%
\fi%
\end{frame}
}
\newenvironment{discussion frame}[1][]
{
\pgfkeys{/ddi/.cd,#1}
\begin{frame}[fragile=singleslide]
\only<presentation>{\frametitle{\translate{Zur Diskussion}:
\pgfkeysvalueof{/ddi/name}}\pgfkeys{/ddi/title=}}
\only<article>{\vskip-2.5\baselineskip\hbox{}}%
\only<article>{\begin{discussion}}%
\ignorespaces%
}
{
\only<article>{\end{discussion}}%
\end{frame}
}
% New frame numbering
\mode<article>{\renewcommand\insertframenumber{%
\ifonelecture
\@arabic\c@framenumber\ von \inserttotalframenumber
\else
\insertshortlecture-\@arabic\c@framenumber
\fi
}
}
\mode<presentation>{%
\renewcommand\insertframenumber{%
\ifonelecture
\@arabic\c@framenumber\ von \inserttotalframenumber
\else
\beamer@shortlecturename-\@arabic\c@framenumber
\fi
}
}
%\mode<presentation>{\renewcommand\insertframenumber{6-\@arabic\c@framenumber}}
%\mode<presentation>{\renewcommand\insertframenumber{7-\@arabic\c@framenumber}}
\mode<article>{\def\name@of@slide{framenumber}} % shut up hyperref
% Beamer version theme settings
\useoutertheme[height=0pt,width=2cm,right]{sidebar}
\ifcd
\else
\usecolortheme{rose,sidebartab}
\useinnertheme{circles}
\fi
\definecolor{websitebg}{rgb}{0.8509,0.8509,0.8784}
\ifcd\else\setbeamercolor{sidebar right}{bg=websitebg}\fi
\setbeamercolor{structure}{fg=orange!80!red}
\ifcd
% \setbeamercolor{sidebar right}{bg=oceangreen!3}
\setbeamercolor{structure}{fg=oceangreen!65}
\setbeamercolor{alerted text}{fg=oceangreen!50}
\setbeamerfont{alerted text}{shape=\ifmmode\else\itshape\fi}
\fi
\setbeamercolor{author}{parent=structure}
\setbeamercolor{institute}{parent=structure,fg=blue!65}
\setbeamercolor{subtitle}{fg=black}
\ifcd
\setbeamerfont{title in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{chapter in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{slide in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{sidebar}{size=\fontsize{5}{5.25}}
\setbeamerfont{section in sidebar}{size=\fontsize{5}{5.5}}
\setbeamerfont{subsection in sidebar}{size=\fontsize{4.5}{5}}
\setbeamercolor{section in sidebar shaded}{use=section in sidebar,
fg=section in sidebar.fg}
\setbeamercolor{subsection in sidebar shaded}{use=subsection in sidebar,
fg=subsection in sidebar.fg}
\setbeamertemplate{subsection in sidebar}
{%
\beamer@sidebarformat{3pt}{subsection in
sidebar}{\leavevmode\llap{\fontsize{3.75}{3.75}%
\selectfont$\blacktriangleright$ }\insertsubsectionhead}%
}
\setbeamertemplate{subsection in sidebar shaded}
{%
\beamer@sidebarformat{3pt}{subsection in sidebar shaded}{%
\insertsubsectionhead}%
}
\setbeamertemplate{section in sidebar}
{%
\vbox{%
\vskip.75em%
\beamer@sidebarformat{3pt}{section in
sidebar}{\leavevmode\llap{\fontsize{4.5}{5}\selectfont \insertshortlecture.\insertsectionheadnumber\
\ }\insertsectionhead~{\color{black}\fontsize{3.75}{3.75}\selectfont$\blacktriangleleft$}}%
}%
}
\setbeamertemplate{section in sidebar shaded}
{%
\vbox{%
\vskip.75em%
\beamer@sidebarformat{3pt}{section in sidebar
shaded}{\leavevmode\llap{\fontsize{4.5}{5}\selectfont\insertshortlecture.\insertsectionheadnumber\
\ }\insertsectionhead~\phantom{{\fontsize{3.75}{3.75}\selectfont$\blacktriangleleft$}}}%
}%
}
\else
\setbeamerfont{title in sidebar}{series=\bfseries}
\setbeamerfont{slide in sidebar}{size=\scriptsize}
\fi
\setbeamerfont{title}{series=\normalfont,size=\LARGE}
\setbeamerfont*{item}{series=}
\ifcd
\setbeamerfont{frametitle}{size=\large}
\setbeamerfont{info in title}{size=\scriptsize}
\setbeamercolor{info in title}{parent=structure}
\else
\setbeamerfont{frametitle}{size=}
\setbeamerfont{info in title}{size=\scriptsize}
\setbeamercolor{info in title}{parent=structure}
\fi
\ifcd\setbeamerfont{block title}{size=\normalsize}\else\setbeamerfont{block title}{size=\small}\fi
\setbeamerfont{subtitle}{size=\normalsize,series=\normalfont}
\setbeamerfont{subtitle}{size=\normalsize,series=\normalfont}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{bibliography item}[book]
\ifcd
\else
\pgfdeclarehorizontalshading{mytransition}{\the\paperheight}{color(0cm)=(white); color(1.5mm)=(websitebg)}
\setbeamertemplate{background canvas}
{\hskip\paperwidth\hskip-2.14cm\pgfuseshading{mytransition}}
\fi
\def\insertlogo{}
\def\setupsidebar{
\setbeamertemplate{sidebar right}
{
\ifcd
{
\vskip2.6em%
\usebeamerfont{chapter in sidebar}%
\hskip3pt%
\translate{Vortrag}~\insertshortlecture\par}
\fi
{\usebeamerfont{title in sidebar}%
\ifcd\vskip1pt\else\vskip1.5em\fi%
\hskip3pt%
\usebeamercolor[fg]{title in sidebar}%
\ifcd
\insertshorttitle[width=2cm-6pt,left,respectlinebreaks]
\else
\insertshorttitle[width=2cm-6pt,center,respectlinebreaks]\fi\par%
\ifcd\vskip.75em\else \vskip1.25em\fi
}%
\ifcd\else {%
\hskip3pt%
\usebeamercolor[fg]{author in sidebar}%
\usebeamerfont{author in sidebar}%
\ifcd
\insertshortauthor[width=2cm-6pt,left,respectlinebreaks]
\else
\insertshortauthor[width=2cm-2pt,center,respectlinebreaks]\fi\par%
\vskip1.25em%
}\fi%
\ifcd\else\hbox to2cm{\hss\insertlogo\hss}
\vskip1.25em\fi%
\insertverticalnavigation{2cm}%
\ifcd\vskip2em\else\vfill\fi
\hbox to 2cm{\hfill\insertshortinstitute\hskip 2.5pt}
\vskip3pt
\hbox to 2cm{\hfill\normalfont\strut\usebeamerfont{slide in sidebar}\insertframenumber\hskip5pt}%
\vskip3pt%
\hbox to 2cm{\hfill\insertCC\hskip 2.5pt}
\vskip3pt
}%
}
\setupsidebar
\setbeamertemplate{title page}
{
\vbox{}
\ifcd\vskip-5mm\leavevmode\hbox{\hskip-3mm}%\includegraphics[scale=0.25]{hglion.pdf}}%
% \hfill{}
% \includegraphics[scale=0.25]{hglion.pdf}
\par
\leftskip3mm\else
\vskip1em\fi
{\huge \translate{Vortrag} \insertshortlecture\par}
{\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par}%
\ifx\insertsubtitle\@empty%
\else%
\vskip0.25em%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\vskip4pt\par
{\usebeamerfont{info in title} \translate{Vortrag}
{\usebeamercolor[fg]{info in title}\lecturename} \hbox{\translate{vom}
\insertdate}%
\vfill
\begin{tiny}
%\versionsinfo
Quellen: \url{\inserturl}
\end{tiny}
\vfill
\ifcd\hbox{\translate{ von}
{\usebeamercolor[fg]{info in title}\insertauthor}}\fi}\par
\ifcd\else\vskip6em
{\usebeamercolor[fg]{author}\insertauthor}\par\fi
\ifcd\vskip1em
{\scalebox{2}{\hbox{\insertlogo}}}
\vskip0pt plus1filll\else
{\usebeamercolor[fg]{institute} \insertinstitute}\vskip1em\fi
}
\pgfdeclareimage[width=2cm]{logo}{}%../../planning/logo}
\logo{
%\pgfuseimage{logo}
}
\ifcd
\setbeamertemplate{section in toc}
{\leavevmode\leftskip=3em\rlap{\hskip-3em\insertshortlecture.\inserttocsectionnumber}\inserttocsection\par}
\setbeamertemplate{subsection in toc}
{\leavevmode\leftskip=3em\rlap{\hskip-3em\insertshortlecture.\inserttocsectionnumber.\inserttocsubsectionnumber}\inserttocsubsection\par}
\else
\setbeamertemplate{enumerate item}
{
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{enumerate subitem}
{
\usebeamerfont*{subitem projected}%
\usebeamercolor[bg]{subitem projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertsubenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{enumerate subsubitem}
{
\usebeamerfont*{subsubitem projected}%
\usebeamercolor[bg]{subsubitem projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertsubsubenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{section in toc}
{\leavevmode\leftskip=1em%
\llap{%
\usebeamerfont*{section number projected}%
\usebeamercolor{section number projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\color{bg}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\inserttocsectionnumber}
\end{pgfpicture}\kern0.6em%
}%
\inserttocsection\par}
\fi
\alt<presentation>{
\newenvironment{under construction}{}{}
}
{
\newenvironment{under construction}{
\underconstructiontrue
\marginpar{%
\color{red}%
\hrule width 1cm height 1.6pt%
\vskip1pt
\hrule width 1cm height .8pt%
\vskip1pt
\hrule width 1cm height .4pt%
\vskip1pt
\hbox to 1cm{\hss$\downarrow$\hss}
\hbox to 1cm{\hss\scriptsize\sffamily\strut in Arbeit\hss}
}
\vskip1em
}
{
\marginpar{%
\color{red}%
\hbox to 1cm{\hss$\uparrow$\hss}%
\vskip1pt
\hrule width 1cm height .4pt%
\vskip1pt
\hrule width 1cm height .8pt%
\vskip1pt
\hrule width 1cm height 1.6pt%
}
\vskip1em
\global\underconstructionendedonthispagetrue%
}
}
% Article version layout settings
\mode<article>
\def\ddimarginmark#1{%
% Put a mark on both sides (one will be correct...)
\par\noindent\leavevmode%
\llap{\textcolor{gray}{\ddiputinbox{#1}}\hskip\marginparsep}%
\rlap{\hskip\textwidth\hskip\marginparsep\textcolor{gray}{\ddiputinbox{#1}}}%
}
\def\ddiputinbox#1{%
\scriptsize\sffamily%
\setbox\marginbox=\hbox to1cm{\hfil%
\begin{minipage}[t]{1cm}%
\leftskip0pt plus 1fill\relax%
\rightskip0pt plus 1fill\relax%
#1%
\end{minipage}\hfil%
}%
\dp\marginbox=0pt%
\box\marginbox%
}
\newbox\marginbox
\setbeamertemplate{frame begin}{%
\def\@currentlabel{\insertframenumber}%
\avoidwiddow{2cm}{150}%
\par\vskip\medskipamount\penalty-100%
\ddimarginmark{\insertframenumber}\ignorespaces%
}
\setbeamertemplate{frametitle}{%
\unskip{%
\raggedright%
\normalsize\selectfont\noindent%
\textsf{%
\ifcd\color{structure.fg}\fi
\insertframetitle%
\ifx\insertframesubtitle\@empty%
\else%
\hfil\break\small\textcolor{structure.fg}{\insertframesubtitle}%
\fi%
}\par%
}\noindent\expandafter\ignorespaces
}
\setbeamertemplate{frame end}{%
\par
}
\setlength{\marginparwidth}{1cm}
\setlength{\marginparsep}{5cm}
\renewcommand\maketitle{
\par
\thispagestyle{onlypagenumber}
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}\insertlecture}
\null
\ifodd\c@page%
\else%
\leftskip-4.75cm
\fi
\chapterlikeheadline{\translate{Vortrag} \insertshortlecture}{\insertlecture}{\insertsubtitle\newline\newline
\begin{footnotesize}
\versionsinfo
\end{footnotesize}
}
}
\renewenvironment{titlepage}{\clearpage\null}{\vfill\vfill\clearpage}
\newcommand\maintitle{
\thispagestyle{empty}
{%
\rightskip-4cm plus 1fil\relax%
\leftskip6.5mm\relax%
\vskip-2.2cm
\leavevmode\hbox{\hskip-1.2cm{}%\includegraphics[scale=0.35]{hglion.pdf}%
\hskip4cm{}\scalebox{3.2}{}%\ddiLogo}%
\hskip5cm{}\vskip1cm%\includegraphics[scale=0.4]{ddi_qr_url.pdf}}\vskip1cm
% {\vskip-2.75cm{}\hskip16.5cm{}\qrcode[height=2.5cm]{http://ddi.uni-wuppertal.de/}}}\vskip1cm
\sffamily
{\fontsize{48pt}{48pt}\selectfont \translate{Skript} \par\vskip6pt}
{\fontsize{36pt}{44pt}\selectfont \color{structure.fg}
\lecturename\par\vskip8pt}
{\fontsize{24pt}{28pt}\selectfont \color{black} \insertsemester\vskip6pt\par}
{\normalsize Fassung vom \today}
\vskip3em\par
\large
{\color{structure.fg}\@author}\par
\vfill
}
}
\def\thesection{\insertshortlecture.\the\c@section}
\def\thesubsection{\insertshortlecture.\the\c@section.\the\c@subsection}
\def\sectionmarktext#1{%
\typesetheadlinemain{%
\hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\[1pt]%
\hbox to3em{\ \ \thesection\hss}\quad#1%
}%
}
\def\sectionstarmarktext#1{%
\typesetheadlinemain{%
\hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\[1pt]%
\hbox to3em{\ \ \hss}\quad#1%
}%
}
\def\chapterstarmarktext#1#2{%
\typesetheadlinemain{%
\quad#1\\[1pt]%
\hbox{}\quad#2%
}%
}
\def\sectionmark#1{%
\markboth{\noexpand\sectionmarktext{#1}}{\noexpand\sectionmarktext{#1}}%
}
\def\sectionstarmark#1{%
\markboth{\noexpand\sectionstarmarktext{#1}}{\noexpand\sectionstarmarktext{#1}}%
}
\def\chapterstarmark#1#2{%
\markboth{\noexpand\chapterstarmarktext{#1}{#2}}{\noexpand\chapterstarmarktext{#1}{#2}}%
}
\def\ps@onlypagenumber{
\def\@oddhead{\rightbgbar{4.6cm}\setupheadcolor\typesetheadlinemain{\hbox to3em{\ \
\insertshortlecture\hss}\quad\insertlecture\\}%
\hfill\oddouterborder}
\def\@evenhead{\leftbgbar{4.6cm}\setupheadcolor\evenouterborder\typesetheadlinemain{\hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\}}
}
\def\@oddfoot{}
\def\@evenfoot{}
\newif\ifunderconstruction
\newif\ifunderconstructionendedonthispage
\def\typesetheadlinemain#1{%
\smash{%
\sffamily\normalsize%
\fboxsep=3pt%
\colorbox{head.bg}{\vrule height15pt depth1pt width0pt%
\smash{\hbox to \textwidth{%
\hss{%
\fontsize{7}{8}\selectfont%
\hsize=\textwidth
\vbox{%
\textcolor{white}{#1}
}%
}%
}}\hskip-6pt}}%
}
\def\typesetpagenumber{%
\hbox to1cm{%
\sffamily\normalsize%
\hss%
\fboxsep=3pt%
\colorbox{head.bg}{%
\vrule height15pt depth1pt width0pt%
\raise4pt\hbox to 16pt{\hss\textcolor{white}{\thepage}\hss}}%
\hss%
}%
}
\def\setupheadcolor{%
\ifunderconstruction\colorlet{head.bg}{red}\fi%
\ifunderconstructionendedonthispage\colorlet{head.bg}{red}\fi%
\global\underconstructionendedonthispagefalse%
}
\def\oddouterborder{\smash{\rlap{\rlap{\hskip-3pt\hskip2em\copy\fancypicturebox}\hskip\gapskip\typesetpagenumber}}}
\def\evenouterborder{\smash{\llap{\typesetpagenumber\hskip\gapskip\llap{\copy\fancypicturebox\hskip2em}}}}
\def\@oddhead{\rightbgbar{0pt}\setupheadcolor\rightmark\hfill\oddouterborder}
\def\@evenhead{\leftbgbar{0pt}\setupheadcolor\evenouterborder\leftmark}
\newdimen\extraheight
\extraheight=\paperheight
\advance\extraheight by 2cm
\pgfdeclarehorizontalshading{bgleft}{\extraheight}{color(0pt)=(black95); color(4pt)=(white)}
\pgfdeclarehorizontalshading{bgright}{\extraheight}{color(0pt)=(white); color(4pt)=(black95)}
\def\leftbgbar#1{%
\llap{%
\setbox\mybox=\hbox{%
\textcolor{black95}{\vrule width 7cm height \extraheight}%
\pgfuseshading{bgleft}\hskip1em\hskip-2pt\hskip#1%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
\rlap{%
\hskip\textwidth%
\setbox\mybox=\hbox{%
\hskip1em\hskip-2pt%
\pgfuseshading{bgright}%
\textcolor{black95}{\vrule width 2cm height \extraheight}%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
}
\def\rightbgbar#1{%
\llap{%
\setbox\mybox=\hbox{%
\textcolor{black90}{\vrule width 2cm height \extraheight}%
\pgfuseshading{bgleft}\hskip1em\hskip-2pt%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
\rlap{%
\hskip\textwidth%
\setbox\mybox=\hbox{%
\hskip#1\hskip1em\hskip-2pt%
\pgfuseshading{bgright}%
\textcolor{black90}{\vrule width 7cm height \extraheight}%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
}
% Cannot print this:
\def\leftbgbar#1{}
\def\rightbgbar#1{}
\def\insertsubtitle{}
\newenvironment{frontmatter}
{
\pagenumbering{roman}
}
{
\cleardoublepage
\pagenumbering{arabic}
}
% Fancy mini pictures
\newbox\fancypicturebox
\newcommand\fancypictures[1]{%
\global\setbox\fancypicturebox=\hbox{#1}}
\let\ddi@fancy@other@option=\@empty
\let\ddi@fancy@filename=\@empty
\def\ddi@fancy@view@lx{0}
\def\ddi@fancy@view@ly{0}
\def\ddi@fancy@view@ux{25}
\def\ddi@fancy@view@uy{25}
\newif\ifddi@fancy@size@set
\pgfkeys{/ddi/fancypicture/extra options/.store in=\ddi@fancy@other@option}
\pgfkeys{/ddi/fancypicture/x/.code={%
\pgfmathparse{#1}%
\let\ddi@fancy@view@lx=\pgfmathresult%
}}
\pgfkeys{/ddi/fancypicture/y/.code={%
\pgfmathparse{#1}%
\let\ddi@fancy@view@ly=\pgfmathresult%
}}
\pgfkeys{/ddi/fancypicture/size/.code={%
\pgfmathparse{\ddi@fancy@view@lx+#1}%
\let\ddi@fancy@view@ux=\pgfmathresult%
\pgfmathparse{\ddi@fancy@view@ly+#1}%
\let\ddi@fancy@view@uy=\pgfmathresult%
\ddi@fancy@size@settrue}%
}
\pgfkeys{/ddi/fancypicture/filename/.store in=\ddi@fancy@filename}
\newcommand\fancypicture[1][]{%
{\ddi@fancy@size@setfalse%
\pgfkeys{/ddi/fancypicture/.cd,#1}%
\edef\ddi@marshal{\noexpand
\includegraphics[
clip,height=50pt,width=50pt, % angepasst -- ursprünglich 22 x 22, lh
\ifddi@fancy@size@set viewport=\ddi@fancy@view@lx\space\ddi@fancy@view@ly\space\ddi@fancy@view@ux\space\ddi@fancy@view@uy,\fi%
\ddi@fancy@other@option]
{\ddi@fancy@filename}}%
\lower4pt\hbox{\ddi@marshal}%
}\ignorespaces
}
\mode
<all>
\mode<presentation>{\def\fancypictures#1{}}
\mode<article>
% Bibliography
\renewenvironment{thebibliography}[1]
{
%\begin{comment}
%\subsection*{\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
%\end{comment}
\mode
<all>
% Lectures in article mode
\mode
<article>
{
\renewcommand\lecture[3][]{
\clearpage
\gdef\insertlecture{#2}
\gdef\insertshortlecture{#1}
\refstepcounter{chapter}
\setcounter{framenumber}{0}%
\label{#3}%
}
\renewcommand\thechapter{\insertshortlecture}
}
% Chapters like Introdcution
\def\chapter#1{
\clearpage
\null
\addcontentsline{toc}{chapterstar}{#1}
\ifodd\c@page%
\else%
\leftskip-4.75cm
\fi
\chapterlikeheadline{#1}{}{}
\chapterstarmark{#1}{}
}
% New useful definitions:
\newcommand\ddiborderpicture[1]{%
\hbox{}\par%
{%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\ddibordercommentpicture{#1}%
\par%
\vskip-\baselineskip%
}
\ignorespaces%
}
\newcommand\ddibordercommentpicture[1]{%
\marginpar{\begin{minipage}[t]{4cm}\small\raggedright\hrule
width0pt\par\vskip-4pt\par%
\color{black!50}\scriptsize\sffamily\tikzset{every picture/.append style={black,font=\small}}#1\end{minipage}}%
}
\newcommand\includegraphicscopyrightborder[3][]{%
\hbox{}\par%
{%
\setbox\mytempbox=\hbox{\includegraphicscopyright[#1]{#2}{#3}}%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{\wd\mytempbox}%
\marginpar{\leavevmode\raise\baselineskip\hbox{\lower\ht\mytempbox\box\mytempbox}}%
\par%
\vskip-\baselineskip%
}
\ignorespaces%
}
\newcommand\includegraphicscopyrightborderautowidth[3][]{%
\includegraphicscopyrightborder[#1,width=4cm]{#2}{#3}
}
\only<presentation>{
\let\includegraphicscopyrightborder=\includegraphicscopyright
\let\includegraphicscopyrightborderautowidth=\includegraphicscopyright
}
\only<presentation>{\newcommand\tafel{\hfill\beamergotobutton{Tafel}}}
\only<article>{\newcommand\tafel{\par\smallskip{\noindent (Details an der Tafel)}}}
% Regie
\mode<article>
{
\newenvironment{lecture notes only}[1][]{
\everythingsmaller
\par\bigskip
\noindent
\ddimarginmark{#1}%
\parskip.5em plus 1pt minus 1pt
\ignorespaces
}
{
\bigskip
}
}
\mode<beamer>
{
\newenvironment{lecture notes
only}[1][]{\bgroup\setbox0=\hbox\bgroup}
{\egroup\egroup}
}
\newenvironment{lecture notes intro}
{\begin{lecture notes only}[\translate{Worum es heute geht}]\normalsize\ignorespaces}{\end{lecture notes only}}
\newenvironment{lecture notes reference}[1][]
{
\par
\mode<article>{#1}%
\noindent%
\ddimarginmark{\translate{Skript-Referenz}}%
\everythingsmaller%
\noindent%
\ignorespaces%
}{\bigskip}
% Exercises
\newif\ifddiwideexercises
\mode<article>
\newenvironment{lecture exercises}
{
\ifddiwideexercises
\begin{wide pages}\twocolumn[]
\fi
\small
\parskip=2pt plus 1pt minus 1pt
{\def\thesection{}\let\@seccntformat=\@gobble\translatelet\mytemp{Uebungen zu diesem Vortrag}\section{\mytemp}}
\sectionstarmark{\translate{Uebungen zu diesem Vortrag}}
}
{
\ifddiwideexercises
\end{wide pages}
\fi
}
\newenvironment{exam exercises}
{ \parskip=2pt plus 1pt minus 1pt\avoidwiddow{3cm}{550}\subsection*{\translate{Pruefungsaufgaben zu
diesem Vortrag}}
}
{}
\newcommand\appendixchapter[3]
{
\clearpage
\parskip=2pt plus 1pt minus 1pt
\null
\chapterlikeheadline{Anhang}{#1}{#2}
\chapterstarmark{Anhang}{#3}
\addcontentsline{toc}{subsection}{#3}
}
\newenvironment{lecture solutions}
{
\appendixchapter{Lösungen}{Beispiellösungen zu ausgewählten Übungsaufgaben}{Lösungen zu ausgewählten Übungsaufgaben}
}
{}
\renewcommand\appendix{
\clearpage
\chapterstarmark{Anhang}{}
\addcontentsline{toc}{part}{\protect\numberline{Anhang}}
}
\pgfkeys{
/ddi/exercise/@credits/ignore/.initial=yes,
/ddi/exercise/how/ignore/.initial=yes,
/ddi/exercise/time/ignore/.initial=yes,
/ddi/exercise/bonus/ignore/.initial=yes,
/ddi/every exercise/.code=\everythingsmaller,
/ddi/every solution/.code=\everythingsmaller}
\newcounter{exercisenumber}[chapter]
\renewcommand{\theexercisenumber}{\insertshortlecture.\the\c@exercisenumber}
\renewcommand\insertexercisetext{\translate{Uebung}}
\newcommand\everythingsmaller{%
\small%
\def\@listI{\leftmargin\leftmargini
\parsep 0pt
\topsep 3\p@ \@plus2\p@ \@minus3\p@
\itemsep0pt}%
\let\@listi=\@listI%
\def\@listii{\leftmargin\leftmarginii
\parsep 0pt
\topsep 3\p@ \@plus2\p@ \@minus3\p@
\itemsep0pt}%
\lstset{%
basicstyle=\ttfamily\footnotesize,
}%
}
\mode
<all>
% Sorting sparklines
\colorlet{varcolor1}{orange!80!red}
\colorlet{varcolor2}{blue}
\colorlet{varcolor3}{violet!70}
\colorlet{varcolor4}{red}
\colorlet{varcolor5}{green!50!black}
\pgfkeys{/algolab/sorting/seq/.code={\global\algolabseq#1\relax}}
\pgfkeys{/algolab/sorting/max value/.initial=5}
\pgfkeys{/algolab/sorting/num values/.initial=5}
\pgfkeys{/algolab/sorting/num vars/.initial=2}
\pgfkeys{/algolab/sorting/compare/.code args={#1 and #2}{\def\possiblecompare{\showcompare{#1}{#2}}}}
\pgfkeys{/algolab/sorting/swap/.code args={#1 and #2}{\def\possibleswap{\showswap{#1}{#2}}}}
\def\possiblecompare{}
\def\possibleswap{}
\def\showcompare#1#2{
\draw[red!50,very thick,line join=round]
(\csname algolabvalue#1\endcsname,#1) -- (\pgfkeysvalueof{/algolab/sorting/max value}+2,#1)
-- (\pgfkeysvalueof{/algolab/sorting/max value}+2,#2) -- (\csname algolabvalue#2\endcsname,#2);
}
\def\showswap#1#2{
\coordinate (s1) at (\csname algolabvalue#1\endcsname,#1);
\coordinate (s2) at (\pgfkeysvalueof{/algolab/sorting/max value},#1);
\coordinate (t1) at (\csname algolabvalue#2\endcsname,#2);
\coordinate (t2) at (\pgfkeysvalueof{/algolab/sorting/max value},#2);
\draw[red,very thick,line join=round]
(s1) -- ([shift={(0.5,0)}]s2) -- ([shift={(1.5,0)}]t2) -- ([shift={(2,0)}]t2) --
([shift={(2,0)}]s2) -- ([shift={(1.5,0)}]s2) -- ([shift={(0.5,0)}]t2) -- (t1);
}
\pgfkeys{/algolab/sorting/offset/.code args={#1=#2}{\pgfkeysalso{/algolab/sorting/vars/offsets/#1/.initial=#2}}}
\pgfkeys{/algolab/sorting/vars/.initial=}
\pgfkeys{/algolab/sorting/@show vars/phantom/.code=\advance\algolabsortingcount by 1\relax}
\pgfkeys{/algolab/sorting/@show vars/.unknown/.code=
{
{
\colorlet{current}{varcolor\the\algolabsortingcount}
\let\name=\pgfkeyscurrentname
\let\value=\pgfkeyscurrentvalue
\pgfkeysifdefined{/algolab/sorting/vars/offsets/\name}
{\pgfkeysgetvalue{/algolab/sorting/vars/offsets/\name}{\offset}}{\def\offset{0}}
\@tempcnta=\value\relax
\advance\@tempcnta by\offset\relax
\edef\pos{\the\@tempcnta}
\node [current] (x) at (-1*\pgfkeysvalueof{/algolab/sorting/num vars}-2,2*\algolabsortingcount-2)
[anchor=mid east,inner sep=1pt]
{\scriptsize{$\mathit{\name}=\value$}};
\draw [current,semithick] (x.mid east) --
++(\pgfkeysvalueof{/algolab/sorting/num vars}-\the\algolabsortingcount+1,0) -- (-1.5,\pos) -- (0,\pos);
\algolabsortline[current]{\csname algolabvalue\pos\endcsname}{\pos}
}
\advance\algolabsortingcount by 1\relax
}
}
\pgfkeys{/algolab/sorting/values/.initial=0}
\newcount\algolabsortingcount
\newcount\algolabvarnum
\newcommand\algolabsortline[3][]{
\ifnum#2<0\relax
\else
\draw[black!50,line width=.75ex,#1] ([xshift=-0.4pt]0,#3) -- (#2,#3);
\fi
}
\newcount\algolabseq
\newenvironment{sorting example}[1][]
{
\global\algolabseq=0\relax
\pgfkeys{/algolab/sorting/.cd,#1}
}
{}
\newcommand\sortsparkline[1]{%
\global\advance\algolabseq by1\relax%
\begin{tikzpicture}[x=.725ex,y=-1ex,join=round]
\pgfkeys{/algolab/sorting/.cd,#1}
\path (\pgfkeysvalueof{/algolab/sorting/max value}+3,0);
% \fill[blue!20]
% (-10-\pgfkeysvalueof{/algolab/sorting/num vars},-3) rectangle
% (\pgfkeysvalueof{/algolab/sorting/max value}+3,\pgfkeysvalueof{/algolab/sorting/num values});
% \fill[blue!20]
% (-10-\pgfkeysvalueof{/algolab/sorting/num vars},-3) rectangle
% (\pgfkeysvalueof{/algolab/sorting/max
% value}+3,\pgfkeysvalueof{/algolab/sorting/num vars}*2-1);
% \path ([yshift=-2mm]current bounding box.south);
\tikzset{slide=\the\algolabseq}
% \node[tiny numbering,below right] at
% (-9.5-\pgfkeysvalueof{/algolab/sorting/num vars},-2.5) {\the\algolabseq};
\pgfkeysgetvalue{/algolab/sorting/values}{\values}
\algolabsortingcount=0\relax%
\expandafter\foreach\expandafter \i\expandafter i\expandafter n\expandafter {\values}
{
\algolabsortline{\i}{\algolabsortingcount}
\expandafter\xdef\csname algolabvalue\the\algolabsortingcount\endcsname{\i}
\global\advance\algolabsortingcount by 1\relax
}
\pgfkeysgetvalue{/algolab/sorting/vars}{\vars}
\possiblecompare
\possibleswap
\algolabsortingcount=1\relax%
\pgfkeys{/algolab/sorting/@show vars/.cd,/utils/exec=\expandafter\pgfkeysalso\expandafter{\vars}}
\end{tikzpicture}%
\hfil\penalty0\hfilneg\hskip1mm\ignorespaces
%
}
% Typesetting memory models
\newcount\ddimemoryline
\newenvironment{object}[1]
{
\def\objectname{#1}
\ddimemoryline=0\relax
\lstset{basicstyle=\scriptsize\ttfamily}
\tikzset{@kind/.style=memory}
\scope
}
{
\endscope
}
\newenvironment{variables}[1]
{
\def\objectname{#1}
\ddimemoryline=0\relax
\lstset{basicstyle=\scriptsize\ttfamily}
\tikzset{@kind/.style=var,y=.5cm}
\scope
}
{
\endscope
}
\def\attribute#1 #2=#3;{%
\node [@kind,minimum height=4mm,text height=1mm,text depth=0pt,anchor=base west] (\objectname-#2) at (0,-1*\ddimemoryline) {\scantokens{\javacode|#3|}};
\node [text height=1mm,text depth=0pt,minimum height=4mm,anchor=base east] at (0,-1*\ddimemoryline) {\javacode|#1 #2|};
\advance\ddimemoryline by 1\relax
}
% Bars
\pgfdeclareverticalshading{ddibar}{\textwidth}{
color(0pt)=(white);
color(1.5pt)=(structure.fg!50);
color(3pt)=(white)}
\newcommand\articlebar{%
\only<article>{\parskip=0pt\baselineskip=0pt\medskip%
%\textcolor{structure.fg!50}{\hrule height1pt}%
\par%
\pgfuseshading{ddibar}
\par\medskip}}
% Quotations
\mode<article>{
\renewenvironment{quotation}{
\list{}{\small}\item
\parindent0em
\parskip.75em plus 1pt minus 1pt
\ignorespaces
}
{\endlist}
}
% Rezepte
\newcount\proofcomments
\mode<article>{
\newenvironment{commented proof}[1][\translate{Proof}]{
\only<article>{\parskip.1em plus 1pt minus 1pt\proofcomments=0\relax}
\proof[#1]%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\proofcomment[]{\textcolor{structure.fg}{Kommentare zum Rezept}}\noindent\ignorespaces%
}
{
\endproof
}
\newcommand\proofcomment[2][\the\proofcomments]{%
\def\temp{#1}\ifx\temp\pgfutil@empty\else%
\advance\proofcomments by1\relax%
\leavevmode\smash{$^{\hbox{\fontsize{6}{7}\selectfont\textcolor{black!50}{#1}}}$}\fi%
\marginpar{\scriptsize\sffamily\raggedright\textcolor{black!50}{\llap{\smash{\raise 2.8pt\hbox{\tiny#1\ }}}#2}}%
}%
\newenvironment{commented definition}[1][]{
\only<article>{\parskip.1em plus 1pt minus 1pt}
\definition[#1]%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\par\definitioncomment[]{\textcolor{structure.fg}{Kommentare zur Definition}}\noindent\ignorespaces%
}
{
\enddefinition
}
\newenvironment{commented paragraph}[1][]{
\begingroup
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
}
{
\par
\endgroup
}
}
\mode<presentation>
\newenvironment{proof method}[1][]
{
\pgfkeys{/ddi/proof method/.cd,#1}
\begin{frame}[fragile=singleslide,t]
\frametitle{Rezept: \emph{\textcolor{black}%
{\pgfkeysvalueof{/ddi/proof method/title}}}}
\begin{columns}[onlytextwidth]
\column{\textwidth-2.5cm}
\begin{block}{Ziel}
\emph{\pgfkeysvalueof{/ddi/proof method/goal}}
\end{block}
\column{2cm}
\vskip1mm
%\includegraphics[width=1.5cm]{ddi-icon-kochmuetze.pdf}
\end{columns}
\begin{block}{Rezept}
}
{
\end{block}
\pgfkeysvalueof{/ddi/proof method/also on frame}
\end{frame}
}
\newcommand\proofcomment[1]{\par{\leftskip0pt plus1fill\rightskip0pt\textcolor{black!50}{(#1)}\par}}
\newenvironment{commented proof}{\proof}{\endproof}
\newenvironment{commented definition}{\definition}{\enddefinition}
% Handling of seminar files
\mode<presentation>{\def\bodydir{.}}
\mode
<article>
\let\ddilecturelist\@empty
\def\InsertLectureAndExercises#1{
\IfFileExists{../#1/body.bib}{
\begin{refsection}[../#1/body.bib]
}{
\begin{refsection}
}
\def\bodydir{../#1}
\g@addto@macro\ddilecturelist{\InputIfFileExists{../#1/solutions.tex}{}{}}
\InputIfFileExists{../#1/body.tex}{}{}
\InputIfFileExists{../#1/exercises.tex}{}{}
\end{refsection}
}
\def\InsertSolutions{%
%\fancypictures{}
\appendix
\begin{lecture solutions}
\ddilecturelist
\end{lecture solutions}
}
\mode
<all>
\let\definitioncomment=\proofcomment
% Translations
\providetranslation[to=German]{Skript}{Skript}
\providetranslation[to=English]{Skript}{Notes}
\providetranslation[to=German]{DDI}{Fachgebiet Didaktik der Informatik}
\providetranslation[to=English]{DDI}{Department of Didactics of Informatics}
\providetranslation[to=German]{BUW}{\universitaet}
\providetranslation[to=English]{BUW}{\university}
%\providetranslation[to=German]{Vortrag}{Vortrag}
%\providetranslation[to=English]{Vortrag}{Talk}
\providetranslation[to=German]{Seminar -- Kompetenzen}{Seminar -- Kompetenzen}
\providetranslation[to=English]{Seminar -- Kompetenzen}{Seminar---Competencies}
%\providetranslation[to=German]{Inhalte dieses Vortags}{Inhalte dieses Vortrags}
%\providetranslation[to=English]{Inhalte dieses Vortrags}{Contents}
%\providetranslation[to=German]{Zusammenfassung dieses Vortrags}{Zusammenfassung dieses Vortrags}
%\providetranslation[to=English]{Zusammenfassung dieses Vortrags}{Summary for this Talk}
\providetranslation[to=German]{Zusammenfassung}{Zusammenfassung}
\providetranslation[to=English]{Zusammenfassung}{Summary}
\providetranslation[to=German]{Uebung}{Übung}
\providetranslation[to=English]{Uebung}{Problem}
\providetranslation[to=German]{Zur Uebung}{Zur Übung}
\providetranslation[to=English]{Zur Uebung}{Exercise}
\providetranslation[to=German]{Zur Diskussion}{Zur Diskussion}
\providetranslation[to=English]{Zur Diskussion}{Discussion}
\providetranslation[to=German]{Worum es heute geht}{Worum es heute geht}
\providetranslation[to=English]{Worum es heute geht}{Today's topic}
\providetranslation[to=German]{Zum Weiterlesen}{Zum Weiterlesen}
\providetranslation[to=English]{Zum Weiterlesen}{For Further Reading}
\providetranslation[to=German]{Kompetenzen}{Ziele}
\providetranslation[to=English]{Kompetenzen}{Ziele}
%\providetranslation[to=German]{Kompetenzen}{Kompetenzen}
%\providetranslation[to=English]{Kompetenzen}{Chapter---Competencies}
\providetranslation[to=German]{Gliederung}{Gliederung}
\providetranslation[to=English]{Gliederung}{Outline of Chapter}
%\providetranslation[to=German]{Vortrag}{Vortrag}
%\providetranslation[to=English]{Vortrag}{Talk}
\providetranslation[to=German]{ vom}{ vom}
\providetranslation[to=English]{ vom}{,}
\providetranslation[to=German]{ von}{ von}
\providetranslation[to=English]{ von}{ by}
\providetranslation[to=German]{Minuten-Aufgaben}{-Minuten-Aufgaben}
\providetranslation[to=English]{Minuten-Aufgaben}{-Minute Exercises}
\providetranslation[to=German]{Minuten-Aufgabe}{-Minuten-Aufgabe}
\providetranslation[to=English]{Minuten-Aufgabe}{-Minute Exercise}
\providetranslation[to=German]{Skript-Referenz}{Skript-\penalty0Referenz}
\providetranslation[to=English]{Skript-Referenz}{Lecture notes material}
ahilbig-script.sty0000644000175000001440000014044512505474625013572 0ustar iorekusers% -*- coding: utf-8; -*-
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
% |
% (C)opyright A. Hilbig, mail@andrehilbig.de |
% http://www.andrehilbig.de/Publications |
% |
% diese Datei: ahilbig-script.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-script}
\newif\ifcmmath
\DeclareOption{cmmath}{\cmmathtrue}
\newif\ifonelecture
\DeclareOption{onelecture}{\onelecturetrue}
\ProcessOptions
%\RequirePackage{caption}
%\RequirePackage{minitoc}
%\RequirePackage[draft]{ddi-common}
%\RequirePackage[blackandwhite]{ddi-common}
%\RequirePackage[cd]{ddi-common}
\RequirePackage{ahilbig-common}
\RequirePackage{ahilbig-semester}
%\RequirePackage[height=5cm,keepaspectratio,digitcolor=white,
% backgroundcolor=none]{ddiLogo} % benutzt in Zeile 388
%\RequirePackage{chapterbib}
\RequirePackage{graphicx}
\RequirePackage{pifont}
\RequirePackage{ahilbig-comics}
\RequirePackage{wrapfig}
\RequirePackage{smartdiagram}
\RequirePackage{pdflscape}
\RequirePackage{placeins}
\RequirePackage{varsfromjobname} % Element[e] aus \jobname extrahieren
%\RequirePackage{qrcode} % Wird in maintitle genutzt - auskommentiert
%\RequirePackage{pdfpages}
% Default lecture
\providecommand\insertshortlecture{0}
\providecommand\insertlecture{Vortrag}
\providecommand\lecturename{Vortragtitel}
\providecommand\versionsinfo{%
%\textcolor{blue!50}{%
% \begin{tabular}{ll}
% Version: &\svnfilerev \\ %\hline
% Stand: &\svnfiletoday, \svnfilehour:\svnfileminute ~Uhr\\ %\hline
% Zuletzt bearbeitet von:&\svnFullAuthor{\svnfileauthor}
% \end{tabular}
%}
}
\ifonelecture
\RequirePackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\fi
% Common packages
%
\usepackage{babel}
\mode<article>
{
\usepackage[left=1.75cm,right=6.5cm,top=2.5cm,bottom=2cm,twoside,
a4paper]{geometry}
\usepackage{fancyhdr}
\setlength\columnsep{1.5cm}
}
%%\usepackage{hyperref}
\usepackage{calc}
\usepackage{tikz}
%\usepackage{yfonts}
\usepackage{translator}
\usepackage{amssymb}
\usetikzlibrary{scopes,backgrounds,positioning}
\usepackage[absolute]{textpos}
\usepackage{multimedia}
\def\UrlFont{}
% Common settings for all lectures in this course
\title{\insertlecture}
% The body environment
\mode<article>{
\parskip.5em plus 1pt minus 1pt
\newenvironment{body}{\parskip=2pt plus 1pt minus 1pt}{}
}
\mode<presentation>{
\newenvironment{body}{\document\ifcd\setbeamertemplate{sidebar
right}{}\fi}{\enddocument}
% \newcommand{\newblock}{}
}
% Common theorem-like environments
\theoremstyle{definition}
\newtheorem{lectureexercise@}[theorem]{\translate{Zur Uebung}}
\newtheorem{discussion@}[theorem]{\translate{Zur Diskussion}}
\pgfkeys{/ddi/lines/.initial=0}
\pgfkeys{/ddi/border lines/.initial=4}
\pgfkeys{/ddi/name/.initial=}
\pgfkeys{/ddi/title/.style={/ddi/name=#1}}
\newenvironment{lecture exercise}[1][]{\pgfkeys{/ddi/.cd,#1}%
\edef\marshal{\noexpand\lectureexercise@[\pgfkeysvalueof{/ddi/name}]}
\marshal\ignorespaces}
{\endlectureexercise@
}
% \def\lineblock
% {%
% %
% \ifnum\pgfkeysvalueof{/ddi/border lines}>0\relax%
% \only<article>{%
% \setlength{\marginparsep}{.5cm}%
% \setlength{\marginparwidth}{4cm}%
% \marginpar{%
% \color{black!35}
% \edef\temp{1,...,\pgfkeysvalueof{/ddi/border lines}}
% \foreach \i in \temp
% {\ifnum\i>1\vskip1.5em\else\ding{46}\vskip2pt\fi\hrule width4cm height0.4pt}
% \vskip1.5em
% }%
% }%
% \fi%
% }
\def\lineblock{\llap{\ding{46}\ \ }}
\newenvironment{discussion}[1][]{\pgfkeys{/ddi/.cd,#1}%
\edef\marshal{\noexpand\discussion@[\pgfkeysvalueof{/ddi/name}]}
\marshal\ignorespaces}
{\enddiscussion@
}
%
% New environments
%
\newdimen\gapskip
\gapskip=5cm
\newenvironment{presentation itemize}
{\alt<presentation>{\itemize}{\ddi@save@item\let\item=\relax\ignorespaces}}
{\alt<presentation>{\enditemize}{}}
\newenvironment{presentation enumerate}
{\alt<presentation>{\itemize}{\ddi@save@item\c@enumi=0\def\item{\advance\c@enumi
by 1\relax\the\c@enumi.\ }\ignorespaces}}
{\alt<presentation>{\enditemize}{}}
\def\ddi@save@item{\ifx\ddi@reinstall@item\relax\let\orig@item=\item\def\ddi@reinstall@item{\let\item=\orig@item}\fi}
\let\ddi@reinstall@item\relax
\let\orig@list=\list
\def\list{\ddi@reinstall@item\orig@list}
%
% Special wide pages
\def\ddistartwidepages{
\setlength\textwidth{\paperwidth-17.5mm-17.5mm}
\setlength\oddsidemargin{17.5mm-1in}
\setlength\evensidemargin{17.5mm-1in}
\setlength\gapskip{0.25cm}
}
\newenvironment{wide pages}
{
\begingroup
\ddistartwidepages
\onecolumn
}
{
\clearpage
\endgroup
\onecolumn
}
% Learning targets and TOC
\mode<beamer>
{
\newenvironment{learning targets}
{
\translatelet\temp{Kompetenzen}
% \section*{\temp}
\begin{frame}[fragile=singleslide]{\translate{Kompetenzen --
Seminar}~\insertshortlecture}
\begin{enumerate}%\rightskip-1.5cm plus1fil
}
{
\end{enumerate}
\end{frame}
\begin{frame}{\translate{Gliederung -- Vortrag}~\insertshortlecture}
\tableofcontents
\end{frame}
\aftergroup\setupsidebar
}
}
\mode<article>
{
\newcommand\maintableofcontents{{%
\parskip0pt%
% \addvspace{3em \@plus\p@}%
% \avoidwiddow{2.5cm}{500}
\tableofcontents
}}
\renewcommand*\l@part[2]{%
\addpenalty{-\@highpenalty}%
\addvspace{5em \@plus\p@}%
\avoidwiddow{3cm}{750}
\setlength\@tempdima{4em}%
\begingroup
\parindent \z@
\leavevmode
\raggedright
\leftskip0em%
\Large\sffamily
\long\def\numberline##1{{\fontsize{20pt}{24pt}\selectfont%
\textcolor{structure.fg}{##1}\par}\leavevmode}%
#1
\par
\endgroup
}
\renewcommand*\l@chapter[2]{%
\addvspace{3em \@plus\p@}%
\avoidwiddow{2.5cm}{500}
\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\raggedright
\advance\leftskip4em
\hskip -4em
{\Large\color{black} \textsf{#1}\par}
\endgroup
}
\renewcommand*\l@section[2]{%
\addvspace{1.0em \@plus\p@}%
\avoidwiddow{2cm}{200}
\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\rightskip\@pnumwidth plus1fil
\advance\leftskip4em
\hskip -4em
{\small\color{structure.fg} \textsf{#1}}
% \ifmicrotoc
% \else
\nobreak\normalsize\normalfont
\hfill
\nobreak
\rlap{\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}}%
% \fi
\par
\endgroup
}
\def\subsectionnumberline#1{\hb@xt@\@tempdima{\small\sffamily#1\hfil}}
\renewcommand*\l@subsection[2]{\@tempdima=4em%
\begingroup
\parindent \z@
\leavevmode
\advance\leftskip4em
\rightskip\@pnumwidth plus1fil
\hskip -4em
\let\numberline\subsectionnumberline
#1
% \ifmicrotoc
% \else
\nobreak\normalsize\normalfont
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\rlap{\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #2}}%
% \fi
\par
\endgroup}
\let\l@chapterstar\l@subsection
\def\toclevel@chapterstar{1}
\renewcommand*\l@subsubsection[2]{}
\newenvironment{learning targets}
{
\begin{frame}
\ifodd\c@page%
\else%
\hskip-4.75cm
\fi
\noindent\begin{minipage}[t]{8cm}
\section*{\textcolor{structure.fg}{\translate{Vortrag -- Kompetenzen}}}
\medskip
\begin{enumerate}
\raggedright
}
{
\end{enumerate}
\end{minipage}\qquad\textcolor{gray}{\vrule width.4pt}\qquad
\rlap{
\begin{minipage}[t]{8cm}
\section*{\textcolor{structure.fg}{\translate{Inhalte dieses Vortrags}}}
\raggedright
%\minitoc
\the\microtoc%
\end{minipage}}
\vskip2em
\refstepcounter{framenumber}%
\end{frame}
}
}
% Microtocs
\mode<article>
{
\def\chaptertext{chapter}
\def\chapterstartext{chapterstar}
\def\parttext{part}
\newtoks\microtoc
\newif\ifmicrotoc
{
\def\contentsline#1#2#3#4{%
\extractchapter{#1}{#2}{#3}{#4}#4..\relax%
}
\def\extractchapter#1#2#3#4#5.#6.#7\relax{%
\def\test{#1}%
\ifx\test\chaptertext%
\else%
\ifx\test\chapterstartext%
\else%
\ifx\test\parttext%
\else%
\expandafter\global\expandafter\microtoc\expandafter{%
\the\microtoc\filteredcontentsline{#1}{#2}{#3}{#4}{#5}{#6}
}
\fi%
\fi%
\fi%
}
\@input{\jobname.toc}
}
\newcommand\filteredcontentsline[6]{%
{
\microtoctrue
\ifnum#6=\c@chapter\relax%
\ifthenelse{\equal{#5}{section}}{
\contentsline{#1}{#2}{#3}{#4}%
}{}
\fi%
%\ifnum#5=\c@chapter\relax%
% \contentsline{#1}{#2}{#3}{#4}%
%\fi%
}
}
}
%NEU HILBIG
\newcommand*\addchap{\secdef\@addchap\@saddchap}
\newcommand*{\@addchap}{}
\def\@addchap[#1]#2{\chapterlikeheadline{#2}{}{}%
\addcontentsline{toc}{chapter}{#1}%
\if@twoside\ifx\@mkboth\markboth\markright{#1}\fi\fi
}
\newcommand*{\@saddchap}[1]{\chapterlikeheadline{#1}\@mkboth{}{}}
\newcommand*\addsec{\secdef\@addsec\@saddsec}
\newcommand*{\@addsec}{}
\def\@addsec[#1]#2{\section*{#2}\addcontentsline{toc}{section}{#1}
\if@twoside\ifx\@mkboth\markboth\markright{#1}\fi\fi
}
\newcommand*{\@saddsec}[1]{\section*{#1}\@mkboth{}{}}
\newcommand*\addsubsec{\secdef\@addsubsec\@saddsubsec}
\newcommand*{\@addsubsec}{}
\def\@addsubsec[#1]#2{\subsection*{#2}\addcontentsline{toc}{subsection}{#1}
\if@twoside\ifx\@mkboth\markboth\markright{#1}\fi\fi
}
\newcommand*{\@saddsubsec}[1]{\subsection*{#1}\@mkboth{}{}}
%ENDE NEU HILBIG
% Parts
\def\ddiparttext{part}
\def\part#1{%
\clearpage
\null\vskip4cm
\refstepcounter{part}%
\chapterstarmark{\partname\ \thepart}{#1}
\addcontentsline{toc}{part}{\protect\numberline{\partname\ \thepart}#1}%
\interlinepenalty \@M
\normalfont{\raggedright
\sffamily
{\fontsize{36pt}{40pt}\selectfont{ \color{structure.fg} \partname\
\thepart}\par
\fontsize{24pt}{30pt}\selectfont#1\par}}
\vskip2em
\ifx\@currenvir\ddiparttext
\parskip.75em plus 1pt minus 1pt
\else
\endpart
\fi
}
\def\endpart{
\clearpage%
}
% Table of Contents
\mode<article>
{
\newcommand\printTables{
\ddistartwidepages
\begin{wide pages}
\tableofcontents
\listoffigures
\listoftables
\end{wide pages}
}
\renewcommand\tableofcontents{%
\chapterstarmark{\contentsname}{}
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{\contentsname}}\par
\vskip2cm
\begin{multicols}{2}
\@starttoc{toc}%
\end{multicols}
}
\renewcommand\listoffigures{
\chapterstarmark{\listfigurename}{}
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{\listfigurename}}\par
\vskip2cm
\begin{multicols}{2}
\@starttoc{lof}%
\end{multicols}
}
\renewcommand\listoftables{
\chapterstarmark{\listtablename}{}
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{\listtablename}}\par
\vskip2cm
\begin{multicols}{2}
\@starttoc{lot}%
\end{multicols}
}
}
% List of proof methods
\newcommand\listofproofmethods{%
\begin{wide pages}
\parskip0pt%
\chapterstarmark{Verzeichnis der Rezepte}{}
\twocolumn[
\vskip2cm
{\fontsize{36pt}{40pt} \sffamily\hilight{Verzeichnis der Rezepte\par}}
\vskip1cm]
\@starttoc{lop}%
\end{wide pages}
}
\newcommand\listofproofmethodsinline{%
{
\parskip0pt
\@starttoc{lop}%
}
}
% Discussion
\mode<article>
{
\renewenvironment{lectureexercise@}[1][]{\begingroup
\setlength{\marginparsep}{.5cm}%
\setlength{\marginparwidth}{4cm}%
\examplelike[#1]{\lineblock \translate{Zur Uebung}}}{
\endexamplelike
\endgroup}
\renewenvironment{discussion@}[1][]{\begingroup
\setlength{\marginparsep}{.5cm}%
\setlength{\marginparwidth}{4cm}%
\examplelike[#1]{\lineblock \translate{Zur Diskussion}}}{%
\endexamplelike\endgroup}
}
% Map
\newcommand\insertmap[1]{
{
\null
\parskip0pt
\setbox\mybox=\vbox{%
\hsize=100cm\includegraphics[width=\paperheight-1.41cm,
height=\paperwidth-1cm,angle=90]{../map/#1-map.pdf}\hss%
}
\ht\mybox=0cm
\wd\mybox=0cm
\vskip-1.8cm
\vskip-2.9\baselineskip
\hbox{}
\hskip-6cm
\box\mybox
\thispagestyle{empty}
\clearpage
}
}
% Summary
\newenvironment{summary}
{
\only<article>{%
\section*{\translate{Zusammenfassung dieses Vortrags}}
\sectionstarmark{\translate{Zusammenfassung dieses Vortrags}}
}
\only<presentation>{
\translatelet\temp{Zusammenfassung}
\section*{\temp}
}
\begin{frame}[fragile,environment=summary]
\frametitle<presentation>{\translate{Zusammenfassung}}
\only<article>{\vskip-2.5\baselineskip\hbox{}}
}
{
\end{frame}
}
\newenvironment<>{further reading}
{
\mode<presentation>{\vfill}
\def\refname{\translate{Zum Weiterlesen}}
\actionenv#1
\begin{thebibliography}{10}
\setbeamertemplate{bibliography item}[book]
}
{
\end{thebibliography}
\endactionenv
}
\newenvironment{bibitem comments}
{
\begin{onlyenv}<article>
\par\medskip
\small
}
{
\par\medskip
\end{onlyenv}
}
\newenvironment<>{summary item}[1]{\actionenv#2\block{\only<article>{%
\ddibordericon{{\ddiborderpointer}}}#1}}{\endblock\endactionenv}
% Exercise frame
\newif\ifmulti
\pgfkeys{/ddi/minutes/.initial=5}
\pgfkeys{/ddi/multiple exercises/.is if=multi}
\newenvironment{exercise frame}[1][]
{
\pgfkeys{/ddi/.cd,#1}
\begin{frame}[fragile=singleslide]
\frametitle<presentation>{\pgfkeysvalueof{/ddi/minutes}\ifmulti\translate{%
Minuten-Aufgaben}\else\translate{Minuten-Aufgabe}\fi}
\only<article>{\vskip-2.5\baselineskip\hbox{}}%
\ifmulti\else%
\begin{lecture exercise}%
\fi%
\ignorespaces%
}
{
\ifmulti\else%
\end{lecture exercise}%
\fi%
\end{frame}
}
\newenvironment{discussion frame}[1][]
{
\pgfkeys{/ddi/.cd,#1}
\begin{frame}[fragile=singleslide]
\only<presentation>{\frametitle{\translate{Zur Diskussion}:
\pgfkeysvalueof{/ddi/name}}\pgfkeys{/ddi/title=}}
\only<article>{\vskip-2.5\baselineskip\hbox{}}%
\only<article>{\begin{discussion}}%
\ignorespaces%
}
{
\only<article>{\end{discussion}}%
\end{frame}
}
% New frame numbering
\mode<article>{%
\renewcommand\insertframenumber{%
\ifonelecture
Folie~\@arabic\c@framenumber%\ von \inserttotalframenumber
\else
\insertshortlecture-\@arabic\c@framenumber
\fi
}
}
\mode<presentation>{%
\renewcommand\insertframenumber{%
\ifonelecture
\@arabic\c@framenumber\ von \inserttotalframenumber
\else
\beamer@shortlecturename-\@arabic\c@framenumber
\fi
}
}
% Beamer version theme settings
\useoutertheme[height=0pt,width=2cm,right]{sidebar}
\ifcd
\else
\usecolortheme{rose,sidebartab}
\useinnertheme{circles}
\fi
\definecolor{websitebg}{rgb}{0.8509,0.8509,0.8784}
\ifcd\else\setbeamercolor{sidebar right}{bg=websitebg}\fi
\setbeamercolor{structure}{fg=orange!80!red}
\ifcd
% \setbeamercolor{sidebar right}{bg=oceangreen!3}
\setbeamercolor{structure}{fg=oceangreen!65}
\setbeamercolor{alerted text}{fg=oceangreen!50}
\setbeamerfont{alerted text}{shape=\ifmmode\else\itshape\fi}
\fi
\setbeamercolor{author}{parent=structure}
\setbeamercolor{subtitle}{fg=black}
\ifcd
\setbeamerfont{title in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{chapter in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{slide in sidebar}{size=\fontsize{6.5}{7}}
\setbeamerfont{sidebar}{size=\fontsize{5}{5.25}}
\setbeamerfont{section in sidebar}{size=\fontsize{5}{5.5}}
\setbeamerfont{subsection in sidebar}{size=\fontsize{4.5}{5}}
\setbeamercolor{section in sidebar shaded}{use=section in sidebar,
fg=section in sidebar.fg}
\setbeamercolor{subsection in sidebar shaded}{use=subsection in sidebar,
fg=subsection in sidebar.fg}
\setbeamertemplate{subsection in sidebar}
{%
\beamer@sidebarformat{3pt}{subsection in
sidebar}{\leavevmode\llap{\fontsize{3.75}{3.75}%
\selectfont$\blacktriangleright$ }\insertsubsectionhead}%
}
\setbeamertemplate{subsection in sidebar shaded}
{%
\beamer@sidebarformat{3pt}{subsection in sidebar shaded}{%
\insertsubsectionhead}%
}
\setbeamertemplate{section in sidebar}
{%
\vbox{%
\vskip.75em%
\beamer@sidebarformat{3pt}{section in
sidebar}{\leavevmode\llap{\fontsize{4.5}{5}\selectfont \insertshortlecture.\insertsectionheadnumber\
\ }\insertsectionhead~{\color{black}\fontsize{3.75}{3.75}\selectfont$\blacktriangleleft$}}%
}%
}
\setbeamertemplate{section in sidebar shaded}
{%
\vbox{%
\vskip.75em%
\beamer@sidebarformat{3pt}{section in sidebar
shaded}{\leavevmode\llap{\fontsize{4.5}{5}\selectfont\insertshortlecture.\insertsectionheadnumber\
\ }\insertsectionhead~\phantom{{\fontsize{3.75}{3.75}\selectfont$\blacktriangleleft$}}}%
}%
}
\else
\setbeamerfont{title in sidebar}{series=\bfseries}
\setbeamerfont{slide in sidebar}{size=\scriptsize}
\fi
\setbeamerfont{title}{series=\normalfont,size=\LARGE}
\setbeamerfont*{item}{series=}
\ifcd
\setbeamerfont{frametitle}{size=\large}
\setbeamerfont{info in title}{size=\scriptsize}
\setbeamercolor{info in title}{parent=structure}
\else
\setbeamerfont{frametitle}{size=}
\setbeamerfont{info in title}{size=\scriptsize}
\setbeamercolor{info in title}{parent=structure}
\fi
\ifcd\setbeamerfont{block title}{size=\normalsize}\else\setbeamerfont{block title}{size=\small}\fi
\setbeamerfont{subtitle}{size=\normalsize,series=\normalfont}
\setbeamerfont{subtitle}{size=\normalsize,series=\normalfont}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{bibliography item}[book]
\ifcd
\else
\pgfdeclarehorizontalshading{mytransition}{\the\paperheight}{color(0cm)=(white); color(1.5mm)=(websitebg)}
\setbeamertemplate{background canvas}
{\hskip\paperwidth\hskip-2.14cm\pgfuseshading{mytransition}}
\fi
\def\setupsidebar{
\setbeamertemplate{sidebar right}
{
\ifcd
{
\vskip2.6em%
\usebeamerfont{chapter in sidebar}%
\hskip3pt%
\translate{Seminar}~\insertshortlecture\par}
\fi
{\usebeamerfont{title in sidebar}%
\ifcd\vskip1pt\else\vskip1.5em\fi%
\hskip3pt%
\usebeamercolor[fg]{title in sidebar}%
\ifcd
\insertshorttitle[width=2cm-6pt,left,respectlinebreaks]
\else
\insertshorttitle[width=2cm-6pt,center,respectlinebreaks]\fi\par%
\ifcd\vskip.75em\else \vskip1.25em\fi
}%
\ifcd\else {%
\hskip3pt%
\usebeamercolor[fg]{author in sidebar}%
\usebeamerfont{author in sidebar}%
\ifcd
\insertshortauthor[width=2cm-6pt,left,respectlinebreaks]
\else
\insertshortauthor[width=2cm-2pt,center,respectlinebreaks]\fi\par%
\vskip1.25em%
}\fi%
\ifcd\else\hbox to2cm{\hss\insertlogo\hss}
\vskip1.25em\fi%
\insertverticalnavigation{2cm}%
\ifcd\vskip2em\else\vfill\fi
\hbox to 2cm{\hfill\normalfont\strut\usebeamerfont{slide in sidebar}\insertframenumber\hskip5pt}%
\vskip3pt%
}%
}
\setupsidebar
\setbeamertemplate{title page}
{
\vbox{}
\ifcd\vskip-5mm\leavevmode\hbox{\hskip-3mm}%\includegraphics[scale=0.25]{hglion.pdf}}%
% \hfill{}
% \includegraphics[scale=0.25]{hglion.pdf}
\par
\leftskip3mm\else
\vskip1em\fi
{\huge \translate{Seminar} \insertshortlecture\par}
{\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par}%
\ifx\insertsubtitle\@empty%
\else%
\vskip0.25em%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\vskip4pt\par
{\usebeamerfont{info in title} \translate{Seminar}
{\usebeamercolor[fg]{info in title}\lecturename} \hbox{\translate{vom}
\insertdate}%
\vfill
\begin{tiny}
\versionsinfo
\end{tiny}
\vfill
\ifcd\hbox{\translate{ von}
{\usebeamercolor[fg]{info in title}\insertauthor}}\fi}\par
\ifcd\else\vskip6em
{\usebeamercolor[fg]{author}\insertauthor}\par\fi
\ifcd\vskip1em
{\scalebox{2}{\hbox{\insertlogo}}}
\vskip0pt plus1filll\else
\insertinstitute\vskip1em\fi
}
\pgfdeclareimage[width=2cm]{logo}{../../planning/logo}
\logo{\pgfuseimage{logo}}
\ifcd
\setbeamertemplate{section in toc}
{\leavevmode\leftskip=3em\rlap{\hskip-3em\insertshortlecture.\inserttocsectionnumber}\inserttocsection\par}
\setbeamertemplate{subsection in toc}
{\leavevmode\leftskip=3em\rlap{\hskip-3em\insertshortlecture.\inserttocsectionnumber.\inserttocsubsectionnumber}\inserttocsubsection\par}
\else
\setbeamertemplate{enumerate item}
{
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{enumerate subitem}
{
\usebeamerfont*{subitem projected}%
\usebeamercolor[bg]{subitem projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertsubenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{enumerate subsubitem}
{
\usebeamerfont*{subsubitem projected}%
\usebeamercolor[bg]{subsubitem projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\insertsubsubenumlabel}
\end{pgfpicture}%
}
\setbeamertemplate{section in toc}
{\leavevmode\leftskip=1em%
\llap{%
\usebeamerfont*{section number projected}%
\usebeamercolor{section number projected}%
\begin{pgfpicture}{-.55em}{0ex}{.55em}{1em}
\color{bg}
\pgfpathcircle{\pgfpoint{0pt}{.33em}}{0.6em}
\pgfusepath{fill}
\pgftext[base]{\color{fg}\inserttocsectionnumber}
\end{pgfpicture}\kern0.6em%
}%
\inserttocsection\par}
\fi
\alt<presentation>{
\newenvironment{under construction}{}{}
}
{
\newenvironment{under construction}{
\underconstructiontrue
\marginpar{%
\color{red}%
\hrule width 1cm height 1.6pt%
\vskip1pt
\hrule width 1cm height .8pt%
\vskip1pt
\hrule width 1cm height .4pt%
\vskip1pt
\hbox to 1cm{\hss$\downarrow$\hss}
\hbox to 1cm{\hss\scriptsize\sffamily\strut in Arbeit\hss}
}
\vskip1em
}
{
\marginpar{%
\color{red}%
\hbox to 1cm{\hss$\uparrow$\hss}%
\vskip1pt
\hrule width 1cm height .4pt%
\vskip1pt
\hrule width 1cm height .8pt%
\vskip1pt
\hrule width 1cm height 1.6pt%
}
\vskip1em
\global\underconstructionendedonthispagetrue%
}
}
% Article version layout settings
\mode<article>
\def\ddimarginmark#1{%
% Put a mark on both sides (one will be correct...)
\par\noindent\leavevmode%
\llap{\textcolor{gray}{\ddiputinbox{#1}}\hskip\marginparsep}%
\rlap{\hskip\textwidth\hskip\marginparsep\textcolor{gray}{\ddiputinbox{#1}}}%
}
\def\ddiputinbox#1{%
\scriptsize\sffamily%
\setbox\marginbox=\hbox to1cm{\hfil%
\begin{minipage}[t]{1cm}%
\leftskip0pt plus 1fill\relax%
\rightskip0pt plus 1fill\relax%
#1%
\end{minipage}\hfil%
}%
\dp\marginbox=0pt%
\box\marginbox%
}
\newbox\marginbox
\setbeamertemplate{frame begin}{%
\def\@currentlabel{\insertframenumber}%
\avoidwiddow{2cm}{150}%
\par\vskip\medskipamount\penalty-100%
\ddimarginmark{\insertframenumber}\ignorespaces%
}
\setbeamertemplate{frametitle}{%
\unskip{%
\raggedright%
\normalsize\selectfont\noindent%
\textsf{%
\ifcd\color{structure.fg}\fi
\insertframetitle%
\ifx\insertframesubtitle\@empty%
\else%
\hfil\break\small\textcolor{structure.fg}{\insertframesubtitle}%
\fi%
}\par%
}\noindent\expandafter\ignorespaces
}
\setbeamertemplate{frame end}{%
\par
}
\setlength{\marginparwidth}{1cm}
\setlength{\marginparsep}{5cm}
\renewcommand\maketitle{
\par
\thispagestyle{onlypagenumber}
\ifonelecture
\addcontentsline{toc}{chapter}{\protect\textcolor{structure.fg}{\translate{Vortrag}} \insertlecture}
\else
\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}\insertlecture}
\fi
\null
\ifodd\c@page%
\else%
\leftskip-4.75cm
\fi
\chapterlikeheadline{\translate{Vortrag}%\insertshortlecture
}{\insertlecture}{\insertsubtitle\newline\newline
\begin{footnotesize}
\versionsinfo
\end{footnotesize}
}
}
%\renewenvironment{titlepage}{\clearpage\null}{\vfill\vfill\clearpage}
\renewenvironment{titlepage}{}{}
\newcommand\maintitle{
\thispagestyle{empty}
{%
\rightskip-4cm plus 1fil\relax%
\leftskip6.5mm\relax%
\vskip-2.2cm
\leavevmode\hbox{\hskip-1.2cm{}%\includegraphics[scale=0.35]{hglion.pdf}%
\hskip4cm{}\scalebox{3.2}{}%\ddiLogo}%
\hskip5cm{}%\includegraphics[scale=0.4]{ddi_qr_url.pdf}
}\vskip1cm
% {\vskip-2.75cm{}\hskip16.5cm{}\qrcode[height=2.5cm]{http://ddi.uni-wuppertal.de/}}}\vskip1cm
\sffamily
{\fontsize{48pt}{48pt}\selectfont \translate{Skript} \par\vskip6pt}
{\fontsize{36pt}{44pt}\selectfont \color{structure.fg}
\lecturename\par\vskip8pt}
{\fontsize{24pt}{28pt}\selectfont \color{black} \insertsemester\vskip6pt\par}
{\normalsize Fassung vom \today}
\vskip3em\par
\large
{\color{structure.fg}\@author}\par
%\maintableofcontents
}
}
%\def\thesection{\insertshortlecture.\the\c@section}
%\def\thesubsection{\insertshortlecture.\the\c@section.\the\c@subsection}
\def\sectionmarktext#1{%
\typesetheadlinemain{%
%\hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\[1pt]%
%\hbox to3em{\ \ \thesection\hss}\quad#1%
\hbox to3em{\ \ \hss}\quad\insertlecture\\[1pt]%
\hbox to3em{\ \ \thesection\hss}\quad#1%
}%
}
\def\sectionstarmarktext#1{%
\typesetheadlinemain{%
% \hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\[1pt]%
% \hbox to3em{\ \ \hss}\quad#1%
\hbox to3em{\ \ \hss}\quad\insertlecture\\[1pt]%
\hbox to3em{\ \ \hss}\quad#1%
}%
}
\def\chapterstarmarktext#1#2{%
\typesetheadlinemain{%
\quad#1\\[1pt]%
\hbox{}\quad#2%
}%
}
\def\sectionmark#1{%
\markboth{\noexpand\sectionmarktext{#1}}{\noexpand\sectionmarktext{#1}}%
}
\def\sectionstarmark#1{%
\markboth{\noexpand\sectionstarmarktext{#1}}{\noexpand\sectionstarmarktext{#1}}%
}
\def\chapterstarmark#1#2{%
\markboth{\noexpand\chapterstarmarktext{#1}{#2}}{\noexpand\chapterstarmarktext{#1}{#2}}%
}
\def\ps@onlypagenumber{
\def\@oddhead{\rightbgbar{4.6cm}\setupheadcolor\typesetheadlinemain{\hbox to3em{\ \
\insertshortlecture\hss}\quad\insertlecture\\}%
\hfill\oddouterborder}
\def\@evenhead{\leftbgbar{4.6cm}\setupheadcolor\evenouterborder\typesetheadlinemain{\hbox to3em{\ \ \insertshortlecture\hss}\quad\insertlecture\\}}
}
\def\@oddfoot{}
\def\@evenfoot{}
\newif\ifunderconstruction
\newif\ifunderconstructionendedonthispage
\def\typesetheadlinemain#1{%
\smash{%
\sffamily\normalsize%
\fboxsep=3pt%
\colorbox{head.bg}{\vrule height15pt depth1pt width0pt%
\smash{\hbox to \textwidth{%
\hss{%
\fontsize{7}{8}\selectfont%
\hsize=\textwidth
\vbox{%
\textcolor{white}{#1}
}%
}%
}}\hskip-6pt}}%
}
\def\typesetpagenumber{%
\hbox to1cm{%
\sffamily\normalsize%
\hss%
\fboxsep=3pt%
\colorbox{head.bg}{%
\vrule height15pt depth1pt width0pt%
\raise4pt\hbox to 16pt{\hss\textcolor{white}{\thepage}\hss}}%
\hss%
}%
}
\def\setupheadcolor{%
\ifunderconstruction\colorlet{head.bg}{red}\fi%
\ifunderconstructionendedonthispage\colorlet{head.bg}{red}\fi%
\global\underconstructionendedonthispagefalse%
}
\def\oddouterborder{\smash{\rlap{\rlap{\hskip-3pt\hskip2em\copy\fancypicturebox}\hskip\gapskip\typesetpagenumber}}}
\def\evenouterborder{\smash{\llap{\typesetpagenumber\hskip\gapskip\llap{\copy\fancypicturebox\hskip2em}}}}
\def\@oddhead{\rightbgbar{0pt}\setupheadcolor\rightmark\hfill\oddouterborder}
\def\@evenhead{\leftbgbar{0pt}\setupheadcolor\evenouterborder\leftmark}
\newdimen\extraheight
\extraheight=\paperheight
\advance\extraheight by 2cm
\pgfdeclarehorizontalshading{bgleft}{\extraheight}{color(0pt)=(black95); color(4pt)=(white)}
\pgfdeclarehorizontalshading{bgright}{\extraheight}{color(0pt)=(white); color(4pt)=(black95)}
\def\leftbgbar#1{%
\llap{%
\setbox\mybox=\hbox{%
\textcolor{black95}{\vrule width 7cm height \extraheight}%
\pgfuseshading{bgleft}\hskip1em\hskip-2pt\hskip#1%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
\rlap{%
\hskip\textwidth%
\setbox\mybox=\hbox{%
\hskip1em\hskip-2pt%
\pgfuseshading{bgright}%
\textcolor{black95}{\vrule width 2cm height \extraheight}%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
}
\def\rightbgbar#1{%
\llap{%
\setbox\mybox=\hbox{%
\textcolor{black90}{\vrule width 2cm height \extraheight}%
\pgfuseshading{bgleft}\hskip1em\hskip-2pt%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
\rlap{%
\hskip\textwidth%
\setbox\mybox=\hbox{%
\hskip#1\hskip1em\hskip-2pt%
\pgfuseshading{bgright}%
\textcolor{black90}{\vrule width 7cm height \extraheight}%
}%
\ht\mybox=0pt%
\dp\mybox=0pt%
\hbox{\vbox{\vskip\paperheight\vskip-1cm\box\mybox\vskip-\paperheight\vskip1cm}}%
}%
}
% Cannot print this:
\def\leftbgbar#1{}
\def\rightbgbar#1{}
\def\insertsubtitle{}
\newenvironment{frontmatter}
{
\pagenumbering{roman}
}
{
\cleardoublepage
\pagenumbering{arabic}
}
% Fancy mini pictures
\newbox\fancypicturebox
\newcommand\fancypictures[1]{%
\global\setbox\fancypicturebox=\hbox{#1}}
\let\ddi@fancy@other@option=\@empty
\let\ddi@fancy@filename=\@empty
\def\ddi@fancy@view@lx{0}
\def\ddi@fancy@view@ly{0}
\def\ddi@fancy@view@ux{25}
\def\ddi@fancy@view@uy{25}
\newif\ifddi@fancy@size@set
\pgfkeys{/ddi/fancypicture/extra options/.store in=\ddi@fancy@other@option}
\pgfkeys{/ddi/fancypicture/x/.code={%
\pgfmathparse{#1}%
\let\ddi@fancy@view@lx=\pgfmathresult%
}}
\pgfkeys{/ddi/fancypicture/y/.code={%
\pgfmathparse{#1}%
\let\ddi@fancy@view@ly=\pgfmathresult%
}}
\pgfkeys{/ddi/fancypicture/size/.code={%
\pgfmathparse{\ddi@fancy@view@lx+#1}%
\let\ddi@fancy@view@ux=\pgfmathresult%
\pgfmathparse{\ddi@fancy@view@ly+#1}%
\let\ddi@fancy@view@uy=\pgfmathresult%
\ddi@fancy@size@settrue}%
}
\pgfkeys{/ddi/fancypicture/filename/.store in=\ddi@fancy@filename}
\newcommand\fancypicture[1][]{%
{\ddi@fancy@size@setfalse%
\pgfkeys{/ddi/fancypicture/.cd,#1}%
\edef\ddi@marshal{\noexpand
\includegraphics[
clip,height=50pt,width=50pt, % angepasst -- ursprünglich 22 x 22, lh
\ifddi@fancy@size@set viewport=\ddi@fancy@view@lx\space\ddi@fancy@view@ly\space\ddi@fancy@view@ux\space\ddi@fancy@view@uy,\fi%
\ddi@fancy@other@option]
{\ddi@fancy@filename}}%
\lower4pt\hbox{\ddi@marshal}%
}\ignorespaces
}
\mode
<all>
\mode<presentation>{\def\fancypictures#1{}}
\mode<article>
% Bibliography
\renewenvironment{thebibliography}[1]
{
%\begin{comment}
%\subsection*{\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
%\end{comment}
\mode
<all>
% Lectures in article mode
\mode
<article>
{
\renewcommand\lecture[3][]{
\clearpage
\gdef\insertlecture{#2}
\gdef\insertshortlecture{#1}
\refstepcounter{chapter}
\setcounter{framenumber}{0}%
\label{#3}%
}
\renewcommand\thechapter{\insertshortlecture}
\ifonelecture
\renewcommand*{\thesection}{\arabic{section}}
\renewcommand*{\thesubsection}{\arabic{section}.\arabic{subsection}}
\renewcommand*{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}
\fi
}
% Chapters like Introdcution
\def\chapter#1{
\clearpage
\null
\addcontentsline{toc}{chapterstar}{#1}
\ifodd\c@page%
\else%
\leftskip-4.75cm
\fi
\chapterlikeheadline{#1}{}{}
\chapterstarmark{#1}{}
}
% New useful definitions:
\newcommand\ddiborderpicture[1]{%
\hbox{}\par%
{%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\ddibordercommentpicture{#1}%
\par%
\vskip-\baselineskip%
}
\ignorespaces%
}
\newcommand\ddibordercommentpicture[1]{%
\marginpar{\begin{minipage}[t]{4cm}\small\raggedright\hrule
width0pt\par\vskip-4pt\par%
\color{black!50}\scriptsize\sffamily\tikzset{every picture/.append style={black,font=\small}}#1\end{minipage}}%
}
\newcommand\includegraphicscopyrightborder[3][]{%
\hbox{}\par%
{%
\setbox\mytempbox=\hbox{\includegraphicscopyright[#1]{#2}{#3}}%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{\wd\mytempbox}%
\marginpar{\leavevmode\raise\baselineskip\hbox{\lower\ht\mytempbox\box\mytempbox}}%
\par%
\vskip-\baselineskip%
}
\ignorespaces%
}
\newcommand\includegraphicscopyrightborderautowidth[3][]{%
\includegraphicscopyrightborder[#1,width=4cm]{#2}{#3}
}
\only<presentation>{
\let\includegraphicscopyrightborder=\includegraphicscopyright
\let\includegraphicscopyrightborderautowidth=\includegraphicscopyright
}
\only<presentation>{\newcommand\tafel{\hfill\beamergotobutton{Tafel}}}
\only<article>{\newcommand\tafel{\par\smallskip{\noindent (Details an der Tafel)}}}
% Regie
\mode<article>
{
\newenvironment{lecture notes only}[1][]{
\everythingsmaller
\par\bigskip
\noindent
\ddimarginmark{#1}%
\parskip.5em plus 1pt minus 1pt
\ignorespaces
}
{
\bigskip
}
}
\mode<beamer>
{
\newenvironment{lecture notes
only}[1][]{\bgroup\setbox0=\hbox\bgroup}
{\egroup\egroup}
}
\newenvironment{lecture notes intro}
{\begin{lecture notes only}[\translate{Worum es heute geht}]\normalsize\ignorespaces}{\end{lecture notes only}}
\newenvironment{lecture notes reference}[1][]
{
\par
\mode<article>{#1}%
\noindent%
\ddimarginmark{\translate{Skript-Referenz}}%
\everythingsmaller%
\noindent%
\ignorespaces%
}{\bigskip}
% Exercises
\newif\ifddiwideexercises
\mode<article>
\newenvironment{lecture exercises}
{
\ifddiwideexercises
\begin{wide pages}\twocolumn[]
\fi
\small
\parskip=2pt plus 1pt minus 1pt
{\def\thesection{}\let\@seccntformat=\@gobble\translatelet\mytemp{Uebungen zu diesem Vortrag}\section{\mytemp}}
\sectionstarmark{\translate{Uebungen zu diesem Vortrag}}
}
{
\ifddiwideexercises
\end{wide pages}
\fi
}
\newenvironment{exam exercises}
{ \parskip=2pt plus 1pt minus 1pt\avoidwiddow{3cm}{550}\subsection*{\translate{Pruefungsaufgaben zu diesem Seminar}}
}
{}
\newcommand\appendixchapter[3]
{
\clearpage
\parskip=2pt plus 1pt minus 1pt
\null
\chapterlikeheadline{Anhang}{#1}{#2}
\chapterstarmark{Anhang}{#3}
\addcontentsline{toc}{subsection}{#3}
}
\newenvironment{lecture solutions}
{
\appendixchapter{Lösungen}{Beispiellösungen zu ausgewählten Übungsaufgaben}{Lösungen zu ausgewählten Übungsaufgaben}
}
{}
\renewcommand\appendix{
\clearpage
\chapterstarmark{Anhang}{}
\addcontentsline{toc}{part}{\protect\numberline{Anhang}}
}
\pgfkeys{
/ddi/exercise/@credits/ignore/.initial=yes,
/ddi/exercise/how/ignore/.initial=yes,
/ddi/exercise/time/ignore/.initial=yes,
/ddi/exercise/bonus/ignore/.initial=yes,
/ddi/every exercise/.code=\everythingsmaller,
/ddi/every solution/.code=\everythingsmaller}
\newcounter{exercisenumber}[chapter]
\renewcommand{\theexercisenumber}{\insertshortlecture.\the\c@exercisenumber}
\renewcommand\insertexercisetext{\translate{Uebung}}
\newcommand\everythingsmaller{%
\small%
\def\@listI{\leftmargin\leftmargini
\parsep 0pt
\topsep 3\p@ \@plus2\p@ \@minus3\p@
\itemsep0pt}%
\let\@listi=\@listI%
\def\@listii{\leftmargin\leftmarginii
\parsep 0pt
\topsep 3\p@ \@plus2\p@ \@minus3\p@
\itemsep0pt}%
\lstset{%
basicstyle=\ttfamily\footnotesize,
}%
}
\mode
<all>
% Sorting sparklines
\colorlet{varcolor1}{orange!80!red}
\colorlet{varcolor2}{blue}
\colorlet{varcolor3}{violet!70}
\colorlet{varcolor4}{red}
\colorlet{varcolor5}{green!50!black}
\pgfkeys{/algolab/sorting/seq/.code={\global\algolabseq#1\relax}}
\pgfkeys{/algolab/sorting/max value/.initial=5}
\pgfkeys{/algolab/sorting/num values/.initial=5}
\pgfkeys{/algolab/sorting/num vars/.initial=2}
\pgfkeys{/algolab/sorting/compare/.code args={#1 and #2}{\def\possiblecompare{\showcompare{#1}{#2}}}}
\pgfkeys{/algolab/sorting/swap/.code args={#1 and #2}{\def\possibleswap{\showswap{#1}{#2}}}}
\def\possiblecompare{}
\def\possibleswap{}
\def\showcompare#1#2{
\draw[red!50,very thick,line join=round]
(\csname algolabvalue#1\endcsname,#1) -- (\pgfkeysvalueof{/algolab/sorting/max value}+2,#1)
-- (\pgfkeysvalueof{/algolab/sorting/max value}+2,#2) -- (\csname algolabvalue#2\endcsname,#2);
}
\def\showswap#1#2{
\coordinate (s1) at (\csname algolabvalue#1\endcsname,#1);
\coordinate (s2) at (\pgfkeysvalueof{/algolab/sorting/max value},#1);
\coordinate (t1) at (\csname algolabvalue#2\endcsname,#2);
\coordinate (t2) at (\pgfkeysvalueof{/algolab/sorting/max value},#2);
\draw[red,very thick,line join=round]
(s1) -- ([shift={(0.5,0)}]s2) -- ([shift={(1.5,0)}]t2) -- ([shift={(2,0)}]t2) --
([shift={(2,0)}]s2) -- ([shift={(1.5,0)}]s2) -- ([shift={(0.5,0)}]t2) -- (t1);
}
\pgfkeys{/algolab/sorting/offset/.code args={#1=#2}{\pgfkeysalso{/algolab/sorting/vars/offsets/#1/.initial=#2}}}
\pgfkeys{/algolab/sorting/vars/.initial=}
\pgfkeys{/algolab/sorting/@show vars/phantom/.code=\advance\algolabsortingcount by 1\relax}
\pgfkeys{/algolab/sorting/@show vars/.unknown/.code=
{
{
\colorlet{current}{varcolor\the\algolabsortingcount}
\let\name=\pgfkeyscurrentname
\let\value=\pgfkeyscurrentvalue
\pgfkeysifdefined{/algolab/sorting/vars/offsets/\name}
{\pgfkeysgetvalue{/algolab/sorting/vars/offsets/\name}{\offset}}{\def\offset{0}}
\@tempcnta=\value\relax
\advance\@tempcnta by\offset\relax
\edef\pos{\the\@tempcnta}
\node [current] (x) at (-1*\pgfkeysvalueof{/algolab/sorting/num vars}-2,2*\algolabsortingcount-2)
[anchor=mid east,inner sep=1pt]
{\scriptsize{$\mathit{\name}=\value$}};
\draw [current,semithick] (x.mid east) --
++(\pgfkeysvalueof{/algolab/sorting/num vars}-\the\algolabsortingcount+1,0) -- (-1.5,\pos) -- (0,\pos);
\algolabsortline[current]{\csname algolabvalue\pos\endcsname}{\pos}
}
\advance\algolabsortingcount by 1\relax
}
}
\pgfkeys{/algolab/sorting/values/.initial=0}
\newcount\algolabsortingcount
\newcount\algolabvarnum
\newcommand\algolabsortline[3][]{
\ifnum#2<0\relax
\else
\draw[black!50,line width=.75ex,#1] ([xshift=-0.4pt]0,#3) -- (#2,#3);
\fi
}
\newcount\algolabseq
\newenvironment{sorting example}[1][]
{
\global\algolabseq=0\relax
\pgfkeys{/algolab/sorting/.cd,#1}
}
{}
\newcommand\sortsparkline[1]{%
\global\advance\algolabseq by1\relax%
\begin{tikzpicture}[x=.725ex,y=-1ex,join=round]
\pgfkeys{/algolab/sorting/.cd,#1}
\path (\pgfkeysvalueof{/algolab/sorting/max value}+3,0);
% \fill[blue!20]
% (-10-\pgfkeysvalueof{/algolab/sorting/num vars},-3) rectangle
% (\pgfkeysvalueof{/algolab/sorting/max value}+3,\pgfkeysvalueof{/algolab/sorting/num values});
% \fill[blue!20]
% (-10-\pgfkeysvalueof{/algolab/sorting/num vars},-3) rectangle
% (\pgfkeysvalueof{/algolab/sorting/max
% value}+3,\pgfkeysvalueof{/algolab/sorting/num vars}*2-1);
% \path ([yshift=-2mm]current bounding box.south);
\tikzset{slide=\the\algolabseq}
% \node[tiny numbering,below right] at
% (-9.5-\pgfkeysvalueof{/algolab/sorting/num vars},-2.5) {\the\algolabseq};
\pgfkeysgetvalue{/algolab/sorting/values}{\values}
\algolabsortingcount=0\relax%
\expandafter\foreach\expandafter \i\expandafter i\expandafter n\expandafter {\values}
{
\algolabsortline{\i}{\algolabsortingcount}
\expandafter\xdef\csname algolabvalue\the\algolabsortingcount\endcsname{\i}
\global\advance\algolabsortingcount by 1\relax
}
\pgfkeysgetvalue{/algolab/sorting/vars}{\vars}
\possiblecompare
\possibleswap
\algolabsortingcount=1\relax%
\pgfkeys{/algolab/sorting/@show vars/.cd,/utils/exec=\expandafter\pgfkeysalso\expandafter{\vars}}
\end{tikzpicture}%
\hfil\penalty0\hfilneg\hskip1mm\ignorespaces
%
}
% Typesetting memory models
\newcount\ddimemoryline
\newenvironment{object}[1]
{
\def\objectname{#1}
\ddimemoryline=0\relax
\lstset{basicstyle=\scriptsize\ttfamily}
\tikzset{@kind/.style=memory}
\scope
}
{
\endscope
}
\newenvironment{variables}[1]
{
\def\objectname{#1}
\ddimemoryline=0\relax
\lstset{basicstyle=\scriptsize\ttfamily}
\tikzset{@kind/.style=var,y=.5cm}
\scope
}
{
\endscope
}
\def\attribute#1 #2=#3;{%
\node [@kind,minimum height=4mm,text height=1mm,text depth=0pt,anchor=base west] (\objectname-#2) at (0,-1*\ddimemoryline) {\scantokens{\javacode|#3|}};
\node [text height=1mm,text depth=0pt,minimum height=4mm,anchor=base east] at (0,-1*\ddimemoryline) {\javacode|#1 #2|};
\advance\ddimemoryline by 1\relax
}
% Bars
\pgfdeclareverticalshading{ddibar}{\textwidth}{
color(0pt)=(white);
color(1.5pt)=(structure.fg!50);
color(3pt)=(white)}
\newcommand\articlebar{%
\only<article>{\parskip=0pt\baselineskip=0pt\medskip%
%\textcolor{structure.fg!50}{\hrule height1pt}%
\par%
\pgfuseshading{ddibar}
\par\medskip}}
% Quotations
\mode<article>{
\renewenvironment{quotation}{
\list{}{\small}\item
\parindent0em
\parskip.75em plus 1pt minus 1pt
\ignorespaces
}
{\endlist}
}
% Rezepte
\newcount\proofcomments
\mode<article>{
\newenvironment{commented proof}[1][\translate{Proof}]{
\only<article>{\parskip.1em plus 1pt minus 1pt\proofcomments=0\relax}
\proof[#1]%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\proofcomment[]{\textcolor{structure.fg}{Kommentare zum Rezept}}\noindent\ignorespaces%
}
{
\endproof
}
\newcommand\proofcomment[2][\the\proofcomments]{%
\def\temp{#1}\ifx\temp\pgfutil@empty\else%
\advance\proofcomments by1\relax%
\leavevmode\smash{$^{\hbox{\fontsize{6}{7}\selectfont\textcolor{black!50}{#1}}}$}\fi%
\marginpar{\scriptsize\sffamily\raggedright\textcolor{black!50}{\llap{\smash{\raise 2.8pt\hbox{\tiny#1\ }}}#2}}%
}%
\newenvironment{commented definition}[1][]{
\only<article>{\parskip.1em plus 1pt minus 1pt}
\definition[#1]%
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
\par\definitioncomment[]{\textcolor{structure.fg}{Kommentare zur Definition}}\noindent\ignorespaces%
}
{
\enddefinition
}
\newenvironment{commented paragraph}[1][]{
\begingroup
\setlength{\marginparsep}{2em}%
\setlength{\marginparwidth}{5cm-2em}%
}
{
\par
\endgroup
}
}
\mode<presentation>
\newenvironment{proof method}[1][]
{
\pgfkeys{/ddi/proof method/.cd,#1}
\begin{frame}[fragile=singleslide,t]
\frametitle{Rezept: \emph{\textcolor{black}%
{\pgfkeysvalueof{/ddi/proof method/title}}}}
\begin{columns}[onlytextwidth]
\column{\textwidth-2.5cm}
\begin{block}{Ziel}
\emph{\pgfkeysvalueof{/ddi/proof method/goal}}
\end{block}
\column{2cm}
\vskip1mm
%\includegraphics[width=1.5cm]{ddi-icon-kochmuetze.pdf}
\end{columns}
\begin{block}{Rezept}
}
{
\end{block}
\pgfkeysvalueof{/ddi/proof method/also on frame}
\end{frame}
}
\newcommand\proofcomment[1]{\par{\leftskip0pt plus1fill\rightskip0pt\textcolor{black!50}{(#1)}\par}}
\newenvironment{commented proof}{\proof}{\endproof}
\newenvironment{commented definition}{\definition}{\enddefinition}
% Handling of seminar files
\mode<presentation>{\def\bodydir{.}}
\mode
<article>
\let\ddilecturelist\@empty
\defbibheading{bibchap}[\bibname]{%
%\chapter{#1}
\addchap{#1}
\addcontentsline{toc}{section}{}
%\if@twoside\ifx\@mkboth\markboth\markright{#1}\fi\fi
%\addcontentsline{toc}{chapter}{#1}
}
\def\InsertLectureAndExercises#1{
%\IfFileExists{../#1/body.bib}{
%\begin{refsection}[../#1/body.bib]
%}{
%\begin{refsection}
%}
\def\bodydir{../#1}
\g@addto@macro\ddilecturelist{\InputIfFileExists{../#1/solutions.tex}{}{}}
\InputIfFileExists{../#1/body.tex}{}{}
\InputIfFileExists{../#1/bib-config.tex}{}{}
\InputIfFileExists{../#1/exercises.tex}{}{}
%\end{refsection}
}
\def\InsertSolutions{%
%\fancypictures{}
\appendix
\begin{lecture solutions}
\ddilecturelist
\end{lecture solutions}
}
\mode
<all>
\let\definitioncomment=\proofcomment
% Translations
\providetranslation[to=German]{Skript}{Skript}
\providetranslation[to=English]{Skript}{Notes}
\providetranslation[to=German]{DDI}{Fachgebiet Didaktik der Informatik}
\providetranslation[to=English]{DDI}{Department of Didactics of Informatics}
\providetranslation[to=German]{BUW}{\universitaet}
\providetranslation[to=English]{BUW}{\university}
\providetranslation[to=German]{Uebung}{Übung}
\providetranslation[to=English]{Uebung}{Problem}
\providetranslation[to=German]{Zur Uebung}{Zur Übung}
\providetranslation[to=English]{Zur Uebung}{Exercise}
\providetranslation[to=German]{Zur Diskussion}{Zur Diskussion}
\providetranslation[to=English]{Zur Diskussion}{Discussion}
\providetranslation[to=German]{Uebungen zu diesem Vortrag}{Übungen zu diesem Vortrag}
\providetranslation[to=English]{Uebungen zu diesem Vortrag}{Problems for this talk}
\providetranslation[to=German]{Pruefungsaufgaben zu diesem Vortrag}{Prüfungsaufgaben zu diesem
Vortrag}
\providetranslation[to=English]{Pruefungsaufgaben zu diesem Vortrag}{Exam Problems}
\providetranslation[to=German]{Worum es heute geht}{Worum es heute geht}
\providetranslation[to=English]{Worum es heute geht}{Today's topic}
\providetranslation[to=German]{Zum Weiterlesen}{Zum Weiterlesen}
\providetranslation[to=English]{Zum Weiterlesen}{For Further Reading}
\providetranslation[to=German]{Kompetenzen}{Kompetenzen}
\providetranslation[to=English]{Kompetenzen}{Competencies}
\providetranslation[to=German]{Zusammenfassung}{Zusammenfassung}
\providetranslation[to=English]{Zusammenfassung}{Summary}
\providetranslation[to=German]{ vom}{ vom}
\providetranslation[to=English]{ vom}{,}
\providetranslation[to=German]{ von}{ von}
\providetranslation[to=English]{ von}{ by}
\providetranslation[to=German]{Minuten-Aufgaben}{-Minuten-Aufgaben}
\providetranslation[to=English]{Minuten-Aufgaben}{-Minute Exercises}
\providetranslation[to=German]{Minuten-Aufgabe}{-Minuten-Aufgabe}
\providetranslation[to=English]{Minuten-Aufgabe}{-Minute Exercise}
\providetranslation[to=German]{Skript-Referenz}{Skript-\penalty0Referenz}
\providetranslation[to=English]{Skript-Referenz}{Lecture notes material}
ahilbig-semester.sty0000644000175000001440000004377212505500166014110 0ustar iorekusers% -*- 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