From 622c1c0fd74f2ff3bd3b237dc51f07b732d03d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hilbig?= Date: Sat, 28 Mar 2015 12:33:20 +0100 Subject: [PATCH] =?UTF-8?q?Erste=20Version=20Vorlagen=20zur=20Erstellung?= =?UTF-8?q?=20von=20Vortr=C3=A4gen=20mit=20LaTeX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 19 + Myriad.sty | Bin 0 -> 163840 bytes ahilbig-comics.sty | 264 +++++ ahilbig-common.sty | 989 +++++++++++++++++++ ahilbig-letterspace.sty | 75 ++ ahilbig-presentation.sty | 1797 +++++++++++++++++++++++++++++++++ ahilbig-script.sty | 1862 +++++++++++++++++++++++++++++++++++ ahilbig-semester.sty | 533 ++++++++++ bib-config.tex | 47 + body.tex | 78 ++ config.tex | 151 +++ emerald.sty | 49 + mustername-presentation.tex | 46 + mustername-script.tex | 122 +++ quellen.bib | 1204 ++++++++++++++++++++++ 15 files changed, 7236 insertions(+) create mode 100755 .gitignore create mode 100644 Myriad.sty create mode 100644 ahilbig-comics.sty create mode 100644 ahilbig-common.sty create mode 100644 ahilbig-letterspace.sty create mode 100644 ahilbig-presentation.sty create mode 100644 ahilbig-script.sty create mode 100644 ahilbig-semester.sty create mode 100644 bib-config.tex create mode 100644 body.tex create mode 100644 config.tex create mode 100644 emerald.sty create mode 100644 mustername-presentation.tex create mode 100644 mustername-script.tex create mode 100644 quellen.bib diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..8d665bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +*.*~ +*.SET +*.ods# +*.aux +*.bbl +*.blg +*.dvi +*.glo +*.gls +*.ilg +*.ind +*.lof +*.log +*.swp +*.toc +*.tps +*.rtf +*.tex.backup +*.pdf diff --git a/Myriad.sty b/Myriad.sty new file mode 100644 index 0000000000000000000000000000000000000000..a830ab729a74422b16610d76a5697b52421fe587 GIT binary patch literal 163840 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%0A?e#9iu~V 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\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 +
+ +\def\ddicomic[#1]{ + {% + \setlength{\marginparsep}{.65cm}% + \setlength{\marginparwidth}{4.1cm}% + \marginpar{% + \ddicomicpicture[#1] + }% + }\refstepcounter{framenumber}% + \ignorespaces% +} + +\mode + + +\def\ddicomic[#1]{ + \begin{frame} + \begin{center} + \ddicomicpicture[#1] + \end{center} + \end{frame} +} + +\mode + + +\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{\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\\par\\par\\#4\par\\par\\par\\#7\par\\par\ \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{\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 + diff --git a/ahilbig-common.sty b/ahilbig-common.sty new file mode 100644 index 0000000..9397995 --- /dev/null +++ b/ahilbig-common.sty @@ -0,0 +1,989 @@ +% -*- coding: utf-8; -*- +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: ahilbig-common.sty | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +\ProvidesPackage{ahilbig-common} + +\RequirePackage[german=guillemets]{csquotes} + +% Automatische Skalierung zu grosser (breiter) Grafiken +\RequirePackage[Export]{adjustbox} +\adjustboxset{max size={\textwidth}{0.9\textheight}} + +\RequirePackage{svn-multi} +%\RequirePackage[all]{svn-multi} +%\RequirePackage[filehooks,autokw]{svn-multi} +\RequirePackage{staves} +\RequirePackage{rotating} +\RequirePackage{scalerel} +\RequirePackage{longtable} +\RequirePackage[official]{eurosym} +\RequirePackage{fancybox} +\RequirePackage{tabularx} +\RequirePackage{xmpmulti} +\RequirePackage{pdfcomment} +\RequirePackage{xspace} + +%\RequirePackage{paralist} % < führt zu Problemen mit beamer + +%\RequirePackage[svgnames,rgb]{color} % Option Clash .... + +\RequirePackage[curves]{struktex} + +% Vorlesung 2 +\newcommand\specparrightplus[3]{% +\begin{flushleft} + \newdimen\breite + \breite=#1cm + \scaleleftright[\breite]{.}{\parbox{2.\breite}{#2}}{\}}{\parbox{2.\breite}{#3}} +\end{flushleft} +} + +% ab Vorlesung 9 +\newcommand\kreisc[1]{\ensuremath{\mathbin{\settowidth{\dimen7}{\mbox{$\bigcirc$}}% + \makebox[0pt][l]{$\bigcirc$}\raisebox{-0.2mm}{\makebox[\dimen7]{#1}}}}} + + +\RequirePackage{bookmark} + +\RequirePackage{amsmath} +\RequirePackage{accents} + +\RequirePackage{array} + +\RequirePackage{delarray} + +\RequirePackage{comment} + +\newif\ifdraftversion +\newif\ifbw +\newif\ifcd + +\DeclareOption{draft}{\draftversiontrue} +\DeclareOption{blackandwhite}{\bwtrue} +\DeclareOption{cd}{\cdtrue} + +\ProcessOptions + + +\@ifclassloaded{beamer}{}{\RequirePackage{beamerarticle}} +\RequirePackage{pgfkeys} +\RequirePackage{ifluatex} +\ifluatex + \RequirePackage[utf8]{luainputenc} +\else + \RequirePackage[utf8]{inputenc} +\fi + +\def\UrlFont{} + + +%%\ifcd\else +%\RequirePackage{futura} +%% \RequirePackage{utopia} +%%\fi +%\RequirePackage{Myriad} +%\RequirePackage{droid} +\RequirePackage{lmodern} +\RequirePackage{courier} + + +\def\headingfont{\small\sffamily} + + +% Basic colors + +\colorlet{structure.fg}{orange!80!red} +\definecolor{black50}{rgb}{.50,.50,.51} + +\definecolor{black90}{rgb}{.90,.90,.91} +\definecolor{black95}{rgb}{.94,.94,.95} + +\long\def\hilight#1{{\ifbw\else\color{structure.fg}\fi#1}} +\ifbw + \colorlet{head.bg}{black} +\else + \colorlet{head.bg}{structure.fg} +\fi + +\ifcd +% \RequirePackage[mixedgreek,textlf]{Myriad} + \RequirePackage{microtype} + \let\sfdefault\rmdefault + \definecolor{oceangreen}{cmyk}{1,0,.2,.78} + \colorlet{structure.fg}{oceangreen!75!white} + \colorlet{head.bg}{oceangreen} + \def\headingfont{\sffamily} + \AtBeginDocument{ + % \renewcommand\scshape{\error} + \DeclareTextFontCommand{\orig@textsc}{\scshape} + \edef\MyriadText{\sfdefault} + \DeclareRobustCommand\textsc[1]{\ifx\f@family\MyriadText{\ifdim\f@size pt=10pt\relax\small\fi\edef\ddi@temp{#1}\expandafter\uppercase\expandafter{\ddi@temp}}\else\orig@textsc{#1}\fi} + } +\fi + +\RequirePackage{ahilbig-letterspace} + +\mode
+{ +%% \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
+{ + + +% 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 +
+ + +% 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 + + +\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
{\colorlet{structure.fg}{green!50!black}} + \begin{block}{#1}% + \alt
{\renewcommand\labelitemi{\normalfont\hilight{\bfseries+}}}% + {\setbeamertemplate{itemize item}{+}}% + } + {\end{block}} +\newenvironment{disadvantages}[1][\translate{Disadvantages}]{ + \setbeamercolor{structure}{fg=red!50!black} + \only
{\colorlet{structure.fg}{red!75!black}} + \begin{block}{#1}% + \only{\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
+{ + \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
+{ + \lstdefinestyle{presentationscriptsize}{} +} +{ + \lstdefinestyle{presentationscriptsize}{basicstyle=\ttfamily\scriptsize} +} + +\alt
+{ + \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
+{\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
+{ + \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
{\let\greencolortabular=\colortabular\let\endgreencolortabular=\endcolortabular} + + + +% Exercises + +\mode
+ +\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 + + + +\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 +
+ +% \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 + + + +% +% 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 + +\newcommand\Class[1]{\mathsf{#1}} +\newcommand\Lang[1]{\text{\normalfont\footnotesize{\uppercase{#1}}}} + +\mode +
+\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 + + diff --git a/ahilbig-letterspace.sty b/ahilbig-letterspace.sty new file mode 100644 index 0000000..681038b --- /dev/null +++ b/ahilbig-letterspace.sty @@ -0,0 +1,75 @@ +% -*- coding: utf-8; -*- +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: ahilbig-letterspace.sty | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | + +\ProvidesPackage{ahilbig-letterspace} + +\RequirePackage{ifluatex} + +\def\textlsuppercase#1{\edef\temp{#1}\textls{\expandafter\uppercase\expandafter{\temp}}} + +\newbox\lectureletterbox +\newif\iflec@uppercasetextls + +\ifluatex + +\def\textls#1{% + \begingroup + \def\.{\relax} + \lec@uppercasetextlsfalse + \edef\lec@temp{#1}% + \expandafter\textls@\lec@temp\pgf@stop% +} +\def\textlsuppercase#1{% + \begingroup + \def\.{\relax} + \lec@uppercasetextlstrue + \edef\lec@temp{#1}% + \expandafter\textls@word\lec@temp\. \pgf@stop% +} +\def\textls@word#1 #2\pgf@stop{% + \textls@#1\pgf@stop% + \def\pgf@temp{#2}% + \ifx\pgf@temp\pgfutil@empty% + \endgroup% + \else% + \ \kern.3ex% + \textls@word#2\pgf@stop% + \fi% +} + +\def\textls@{% + \pgfutil@ifnextchar\pgf@stop{\pgfutil@gobble}{% + \pgfutil@ifnextchar\unhbox{\textls@@gobbeltwo}{% + \pgfutil@ifnextchar\penalty{\textls@@gobbeltwo}{% + \textls@@}}}% +} +\def\textls@@#1{% + \iflec@uppercasetextls\uppercase{#1}\else#1\fi\kern0.3ex\textls@% +} +\def\textls@@gobbeltwo#1#2{\textls@} + +\fi diff --git a/ahilbig-presentation.sty b/ahilbig-presentation.sty new file mode 100644 index 0000000..fa866da --- /dev/null +++ b/ahilbig-presentation.sty @@ -0,0 +1,1797 @@ +% -*- 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
+{ + \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
{ + \parskip.5em plus 1pt minus 1pt + \newenvironment{body}{\parskip=2pt plus 1pt minus 1pt}{} +} +\mode{ + \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
{% +% \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{\itemize}{\ddi@save@item\let\item=\relax\ignorespaces}} +{\alt{\enditemize}{}} + +\newenvironment{presentation enumerate} +{\alt{\itemize}{\ddi@save@item\c@enumi=0\def\item{\advance\c@enumi + by 1\relax\the\c@enumi.\ }\ignorespaces}} +{\alt{\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 +{ +\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
+{ + \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
+{ +\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
+{ + \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
+{ + \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
{% + \section*{\translate{Zusammenfassung dieses Vortrags}} + \sectionstarmark{\translate{Zusammenfassung dieses Vortrags}} + } + \only{ + \translatelet\temp{Zusammenfassung} + \section*{\temp} + } + \begin{frame}[fragile,environment=summary] + \frametitle{\translate{Zusammenfassung}} + \only
{\vskip-2.5\baselineskip\hbox{}} +} +{ + \end{frame} +} + +\newenvironment<>{further reading} +{ + \mode{\vfill} + \def\refname{\translate{Zum Weiterlesen}} + \actionenv#1 + \begin{thebibliography}{10} + \setbeamertemplate{bibliography item}[book] +} +{ +\end{thebibliography} +\endactionenv +} + +\newenvironment{bibitem comments} +{ + \begin{onlyenv}
+ \par\medskip + \small +} +{ + \par\medskip + \end{onlyenv} +} + + +\newenvironment<>{summary item}[1]{\actionenv#2\block{\only
{% + \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{\pgfkeysvalueof{/ddi/minutes}\ifmulti\translate{% + Minuten-Aufgaben}\else\translate{Minuten-Aufgabe}\fi} + \only
{\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{\frametitle{\translate{Zur Diskussion}: + \pgfkeysvalueof{/ddi/name}}\pgfkeys{/ddi/title=}} + \only
{\vskip-2.5\baselineskip\hbox{}}% + \only
{\begin{discussion}}% + \ignorespaces% +} +{ + \only
{\end{discussion}}% + \end{frame} +} + + +% New frame numbering + +\mode
{\renewcommand\insertframenumber{% + \ifonelecture + \@arabic\c@framenumber\ von \inserttotalframenumber + \else + \insertshortlecture-\@arabic\c@framenumber + \fi + } +} +\mode{% + \renewcommand\insertframenumber{% + \ifonelecture + \@arabic\c@framenumber\ von \inserttotalframenumber + \else + \beamer@shortlecturename-\@arabic\c@framenumber + \fi + } +} +%\mode{\renewcommand\insertframenumber{6-\@arabic\c@framenumber}} +%\mode{\renewcommand\insertframenumber{7-\@arabic\c@framenumber}} +\mode
{\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{ + \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
+ +\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 + + +\mode{\def\fancypictures#1{}} + + +\mode
+ +% 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 + + + +% Lectures in article mode + +\mode +
+{ + \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{ + \let\includegraphicscopyrightborder=\includegraphicscopyright + \let\includegraphicscopyrightborderautowidth=\includegraphicscopyright +} + + + +\only{\newcommand\tafel{\hfill\beamergotobutton{Tafel}}} +\only
{\newcommand\tafel{\par\smallskip{\noindent (Details an der Tafel)}}} + + + + +% Regie + +\mode
+{ +\newenvironment{lecture notes only}[1][]{ +\everythingsmaller +\par\bigskip +\noindent +\ddimarginmark{#1}% +\parskip.5em plus 1pt minus 1pt +\ignorespaces +} +{ +\bigskip +} +} + +\mode +{ + \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
{#1}% + \noindent% + \ddimarginmark{\translate{Skript-Referenz}}% + \everythingsmaller% + \noindent% + \ignorespaces% + }{\bigskip} + + + +% Exercises + +\newif\ifddiwideexercises + +\mode
+ +\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 + + + + + +% 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
{\parskip=0pt\baselineskip=0pt\medskip% + %\textcolor{structure.fg!50}{\hrule height1pt}% + \par% + \pgfuseshading{ddibar} + \par\medskip}} + + +% Quotations + +\mode
{ +\renewenvironment{quotation}{ + \list{}{\small}\item + \parindent0em + \parskip.75em plus 1pt minus 1pt + \ignorespaces +} +{\endlist} +} + + +% Rezepte + +\newcount\proofcomments + +\mode
{ + \newenvironment{commented proof}[1][\translate{Proof}]{ + \only
{\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
{\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 + +\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{\def\bodydir{.}} + +\mode +
+ +\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 + + + + +\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} + diff --git a/ahilbig-script.sty b/ahilbig-script.sty new file mode 100644 index 0000000..12f0cf8 --- /dev/null +++ b/ahilbig-script.sty @@ -0,0 +1,1862 @@ +% -*- 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
+{ + \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
{ + \parskip.5em plus 1pt minus 1pt + \newenvironment{body}{\parskip=2pt plus 1pt minus 1pt}{} +} +\mode{ + \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
{% +% \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{\itemize}{\ddi@save@item\let\item=\relax\ignorespaces}} +{\alt{\enditemize}{}} + +\newenvironment{presentation enumerate} +{\alt{\itemize}{\ddi@save@item\c@enumi=0\def\item{\advance\c@enumi + by 1\relax\the\c@enumi.\ }\ignorespaces}} +{\alt{\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 +{ +\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
+{ + \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
+{ +\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
+{ + \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
+{ + \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
{% + \section*{\translate{Zusammenfassung dieses Vortrags}} + \sectionstarmark{\translate{Zusammenfassung dieses Vortrags}} + } + \only{ + \translatelet\temp{Zusammenfassung} + \section*{\temp} + } + \begin{frame}[fragile,environment=summary] + \frametitle{\translate{Zusammenfassung}} + \only
{\vskip-2.5\baselineskip\hbox{}} +} +{ + \end{frame} +} + +\newenvironment<>{further reading} +{ + \mode{\vfill} + \def\refname{\translate{Zum Weiterlesen}} + \actionenv#1 + \begin{thebibliography}{10} + \setbeamertemplate{bibliography item}[book] +} +{ +\end{thebibliography} +\endactionenv +} + +\newenvironment{bibitem comments} +{ + \begin{onlyenv}
+ \par\medskip + \small +} +{ + \par\medskip + \end{onlyenv} +} + + +\newenvironment<>{summary item}[1]{\actionenv#2\block{\only
{% + \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{\pgfkeysvalueof{/ddi/minutes}\ifmulti\translate{% + Minuten-Aufgaben}\else\translate{Minuten-Aufgabe}\fi} + \only
{\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{\frametitle{\translate{Zur Diskussion}: + \pgfkeysvalueof{/ddi/name}}\pgfkeys{/ddi/title=}} + \only
{\vskip-2.5\baselineskip\hbox{}}% + \only
{\begin{discussion}}% + \ignorespaces% +} +{ + \only
{\end{discussion}}% + \end{frame} +} + + +% New frame numbering + +\mode
{% + \renewcommand\insertframenumber{% + \ifonelecture + Folie~\@arabic\c@framenumber%\ von \inserttotalframenumber + \else + \insertshortlecture-\@arabic\c@framenumber + \fi + } +} +\mode{% + \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{ + \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
+ +\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 + + +\mode{\def\fancypictures#1{}} + + +\mode
+ +% 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 + + + +% Lectures in article mode + +\mode +
+{ + \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{ + \let\includegraphicscopyrightborder=\includegraphicscopyright + \let\includegraphicscopyrightborderautowidth=\includegraphicscopyright +} + + + +\only{\newcommand\tafel{\hfill\beamergotobutton{Tafel}}} +\only
{\newcommand\tafel{\par\smallskip{\noindent (Details an der Tafel)}}} + + + + +% Regie + +\mode
+{ +\newenvironment{lecture notes only}[1][]{ +\everythingsmaller +\par\bigskip +\noindent +\ddimarginmark{#1}% +\parskip.5em plus 1pt minus 1pt +\ignorespaces +} +{ +\bigskip +} +} + +\mode +{ + \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
{#1}% + \noindent% + \ddimarginmark{\translate{Skript-Referenz}}% + \everythingsmaller% + \noindent% + \ignorespaces% + }{\bigskip} + + + +% Exercises + +\newif\ifddiwideexercises + +\mode
+ +\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 + + + + + +% 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
{\parskip=0pt\baselineskip=0pt\medskip% + %\textcolor{structure.fg!50}{\hrule height1pt}% + \par% + \pgfuseshading{ddibar} + \par\medskip}} + + +% Quotations + +\mode
{ +\renewenvironment{quotation}{ + \list{}{\small}\item + \parindent0em + \parskip.75em plus 1pt minus 1pt + \ignorespaces +} +{\endlist} +} + + +% Rezepte + +\newcount\proofcomments + +\mode
{ + \newenvironment{commented proof}[1][\translate{Proof}]{ + \only
{\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
{\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 + +\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{\def\bodydir{.}} + +\mode +
+ +\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 + + + + +\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} + diff --git a/ahilbig-semester.sty b/ahilbig-semester.sty new file mode 100644 index 0000000..760de44 --- /dev/null +++ b/ahilbig-semester.sty @@ -0,0 +1,533 @@ +% -*- coding: utf-8; -*- +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: ahilbig-semester.sty | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | + +\ProvidesPackage{ahilbig-semester} + +\RequirePackage{pgffor} +\RequirePackage{pgfcalendar} +\RequirePackage{soul,color} % wg. \hl ... = highlight +\RequirePackage{multicol} + +\RequirePackage[ + backend=biber + ,sortlocale=de_DE%.UTF-8 + ,style=authoryear + ,bibencoding=UTF8 + ,block=space + ,autocite=inline % \autocite[..][..]{..} erzeugt Literaturverweise mit runden Klammern +]{biblatex} + + +\RequirePackage[scale=1.9]{ccicons} +\newenvironment{topcolumns}{\begin{columns}[t]}{\end{columns}} +\RequirePackage{isodate} +\newcommand*\jahr{\number\year} +\newcounter{jahrp} +\addtocounter{jahrp}{\jahr} +\stepcounter{jahrp} +\newcommand*\sommersemester{\jahr} +\newcommand*\wintersemester{\jahr/\thejahrp} + +% +% Semester dates +% + +% Sets the dates of the semester. +% +% Usage: \setsummerdates{first date of semester}{first lecture date}% +% {last lecture date}{last date of semester} + +\def\setsummerdates#1#2#3#4{% + \edef\lec@summerstart{#1} + \edef\lec@summerfirstlec{#2} + \edef\lec@summerlastlec{#3} + \edef\lec@summerend{#4} +} + +\def\setwinterdates#1#2#3#4{% + \edef\lec@winterstart{#1} + \edef\lec@winterfirstlec{#2} + \edef\lec@winterlastlec{#3} + \edef\lec@winterend{#4} +} + +% Getter and setter: + +\def\getsummerstartdate{\lec@summerstart} +\def\getsummerfirstlecturedate{\lec@summerfirstlec} +\def\getsummerlastlecturedate{\lec@summerlastlec} +\def\getsummerenddate{\lec@summerend} + +\def\getwinterstartdate{\lec@winterstart} +\def\getwinterfirstlecturedate{\lec@winterfirstlec} +\def\getwinterlastlecturedate{\lec@winterlastlec} +\def\getwinterenddate{\lec@winterend} + +% +% Lectures +% + +% Sets the lecture dates. +% +% Usage: +% +% \lecturelistofdates{ +% 2013-01-01, +% 2013-02-28, +% 2013-12-24, +% } + +\def\lecturelistofdates#1{ + \foreach \lec@date[count=\lec@i] in {#1} { + \expandafter\xdef\csname lec@date@\lec@i\endcsname{\lec@date} + } +} + +% Sets the exercise dates. +% +% Usage: +% +% \exerciselistofdates{ +% 2013-01-01->2013-01-08, +% 2013-02-28->2013-03-07, +% 2013-12-24->2013-12-31, +% } + +\def\exerciselistofdates#1{% + \def\ex@parsedates##1->##2\foo{% + \def\ex@tutorial{##1}% + \def\ex@deadline{##2}% + }% + \foreach \ex@date[count=\ex@i] in {#1} {% + \edef\ex@tmpdate{\ex@date}% + \expandafter\ex@parsedates\ex@tmpdate\foo + \expandafter\xdef\csname ex@tutorial@\ex@i\endcsname{\ex@tutorial}% + \expandafter\xdef\csname ex@deadline@\ex@i\endcsname{\ex@deadline}% + }% +} + +\newcount\lec@lastlecnumber % stores the last lecture id +\newcount\ex@lastexercisenumber % same for exercise id + +% Sets the chronological list of lectures with their ids. +% +% \lecturelistofids{ +% , +% , +% , +% } + +\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{ +% , +% , +% , +% } + +\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{} + +\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{} + +\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{ +% =, +% =, +% } + +\def\lecturelistofparts#1{ + \foreach \sem@partstartidandtitle[count=\map@i] in {#1} { + \expandafter\sem@parse@partstartidandtitle\sem@partstartidandtitle\pgf@stop{\map@i} + \global\sem@numberofparts=\map@i + } +} + +\def\sem@parse@partstartidandtitle#1=#2\pgf@stop#3{ + \expandafter\gdef\csname sem@partstart@lectureid@#3\endcsname{#1} + \expandafter\gdef\csname sem@partstart@title@#3\endcsname{#2} +} + +% Getter and setter. + +\def\sem@getnumberofsemesterparts{\the\sem@numberofparts} +\def\sem@getlectureidfrompartnumber#1{\csname sem@partstart@lectureid@#1\endcsname} +\def\sem@getparttitlefrompartnumber#1{\csname sem@partstart@title@#1\endcsname} + + +% Translates lecture ids to file names. This is required for +% - automatically inserting the lecture targets into the map, +% - extraction of the lecture titles and subtitles of the body +% files. +% +% This translation process should be removed, but this requires +% appropriate renaming of the folders within lecture_slides. + +\def\lectureidstofoldernamelist#1{ + \foreach \sem@idfilenametuple in {#1} { + \expandafter\sem@parse@idandfilename\sem@idfilenametuple\pgf@stop + } +} + +\def\sem@parse@idandfilename#1=#2\pgf@stop{ + \expandafter\xdef\csname sem@filename@#1\endcsname{../#2/body.tex} +} + +\def\sem@getbodyfilefromid#1{\csname sem@filename@#1\endcsname} +\def\sem@lecgetbodyfilefromid#1{../lecture_slides/#1/body.tex} +\def\sem@exgetbodyfilefromid#1{../exercises/#1/body.tex} + + + +% The following macro creates the file podcasts.aux that is required +% for creating the XML files for Till's podcasts. In this file, the +% i'th line consists of the title and the subtitle of the i'th +% lecture, separated by two hashmarks. + +\def\makeauxfiles{% + % Open outstreams + \message{^^JOpening outstreams.^^J} + \newwrite\pod@auxfile \immediate\openout\pod@auxfile=podcasts.aux + \newwrite\pres@auxfile \immediate\openout\pres@auxfile=upload-presentation-files.aux + \newwrite\preswiki@auxfile \immediate\openout\preswiki@auxfile=wiki-presentation-files.aux + \newwrite\ex@auxfile \immediate\openout\ex@auxfile=upload-exercise-files.aux + \newwrite\exwiki@auxfile \immediate\openout\exwiki@auxfile=wiki-exercise-files.aux + + % Define counters for the following loop that iterates over all the + % lecture numbers. + \newcount\pod@tmpcnt \pod@tmpcnt=0 + \newcount\pod@lecmax \pod@lecmax=\lec@lastlecnumber + + \newcount\ex@tmpcnt \ex@tmpcnt=0 + \newcount\ex@maxcnt \ex@maxcnt=\ex@lastexercisenumber + + % Create temporary token registers + \newtoks\pod@titletoks + \newtoks\pod@subtitletoks + + % Generate lecture files + \message{^^JGenerating lecture files.} + \message{Considering the following lecture IDs:^^J} + \loop + \def\lectureid{\csname lec@id@\the\pod@tmpcnt\endcsname} + \advance\pod@tmpcnt by 1 + { + \sem@getlecturetitlesfromid{\lectureid} + \expandafter\global\expandafter\pod@titletoks\expandafter=\expandafter{\sem@lecturetitle} + \expandafter\global\expandafter\pod@subtitletoks\expandafter=\expandafter{\sem@lecturesubtitle} + \message{\the\pod@tmpcnt. \lectureid: \the\pod@titletoks^^J} + } + \immediate\write\pod@auxfile{\the\pod@titletoks__\the\pod@subtitletoks} + \immediate\write\pres@auxfile{\lectureid} + \edef\ddi@tmp@isodate{\csname lec@date@\getlecturenumberfromid{\lectureid}\endcsname}% + \immediate\write\preswiki@auxfile{% + 1. [attachment:\lectureid.pdf Vorlesung: \the\pod@titletoks], + \expandafter\ddi@isodatetohumanreadable\ddi@tmp@isodate\pgf@stop% + } + \ifnum\pod@tmpcnt<\pod@lecmax + \repeat + + \message{^^JFinished generating lecture files.^^J} + + % Create temporary token registers + \newtoks\ex@titletoks + + \message{^^JGenerating exercise files.} + \message{Considering the following exercise IDs:^^J} + + % Generate exercise files + \loop + \def\exerciseid{\csname ex@id@\the\ex@tmpcnt\endcsname} + \advance\ex@tmpcnt by 1 + { + \sem@getexercisetitlesfromid{\exerciseid} + \expandafter\global\expandafter\ex@titletoks\expandafter=\expandafter{\sem@exercisetitle} + \message{\the\ex@tmpcnt. \exerciseid: \the\ex@titletoks^^J} + } + \immediate\write\ex@auxfile{\exerciseid} + \edef\ddi@tmp@tutorialisodate{\csname ex@tutorial@\getexercisenumberfromid{\exerciseid}\endcsname}% + \edef\ddi@tmp@tutorialdate{\expandafter\ddi@isodatetohumanreadable\ddi@tmp@tutorialisodate\pgf@stop}% + \edef\ddi@tmp@deadlineisodate{\csname ex@deadline@\getexercisenumberfromid{\exerciseid}\endcsname}% + % Check whether sheet has deadline or not + \def\ddi@tmp@none{none}% + \edef\ddi@tmp{\ddi@tmp@deadlineisodate}% + \ifx\ddi@tmp@none\ddi@tmp + \def\ddi@tmp@deadlinedate{keine Abgabe} + \else + \def\ddi@tmp@deadlinedate{\expandafter\ddi@isodatetohumanreadable\ddi@tmp@deadlineisodate\pgf@stop}% + \fi + \immediate\write\exwiki@auxfile{% + || [attachment:\exerciseid.pdf \the\ex@tmpcnt. Übung: \the\ex@titletoks] + || \ddi@tmp@tutorialdate || \ddi@tmp@deadlinedate ||% + } + \ifnum\ex@tmpcnt<\ex@maxcnt + \repeat + + \message{^^JFinished generating exercise files.^^J} + \message{^^JClosing outstreams.^^J} + + % Close outstreams + \closeout\pod@auxfile + \closeout\pres@auxfile + \closeout\preswiki@auxfile + \closeout\ex@auxfile + \closeout\exwiki@auxfile + + \message{Finished. Bye^^J^^J} +} + +\def\ddi@isodatetohumanreadable#1-#2-#3\pgf@stop{% + \number#3. \translate{\ddi@arabmonth@to@textmonth{#2}} #1} + +\def\ddi@arabmonth@to@textmonth#1{\csname ddi@monthname@#1\endcsname} + +\expandafter\def\csname ddi@monthname@01\endcsname{Januar} +\expandafter\def\csname ddi@monthname@02\endcsname{Februar} +\expandafter\def\csname ddi@monthname@03\endcsname{März} +\expandafter\def\csname ddi@monthname@04\endcsname{April} +\expandafter\def\csname ddi@monthname@05\endcsname{Mai} +\expandafter\def\csname ddi@monthname@06\endcsname{Juni} +\expandafter\def\csname ddi@monthname@07\endcsname{Juli} +\expandafter\def\csname ddi@monthname@08\endcsname{August} +\expandafter\def\csname ddi@monthname@09\endcsname{September} +\expandafter\def\csname ddi@monthname@10\endcsname{Oktober} +\expandafter\def\csname ddi@monthname@11\endcsname{November} +\expandafter\def\csname ddi@monthname@12\endcsname{Dezember} diff --git a/bib-config.tex b/bib-config.tex new file mode 100644 index 0000000..7a21669 --- /dev/null +++ b/bib-config.tex @@ -0,0 +1,47 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: bib-config.tex | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | + +\only
{% + \cleardoublepage + \refstepcounter{chapter} + {\sloppy\printbibliography[heading=bibchap]} +} +\only{% + \begin{frame}[allowframebreaks]{Literatur} + \setbeamertemplate{bibliography item}[text] + \printbibliography[heading=bibliography] + + \dotfill{} + \begin{center} + Dieses Dokument wird unter der folgenden Creative-Commons-Lizenz + ver"offentlicht: + + \insertCC + + \url{http://creativecommons.org/licenses/by-nc-sa/4.0/} + \end{center} + \end{frame} +} diff --git a/body.tex b/body.tex new file mode 100644 index 0000000..629f1c0 --- /dev/null +++ b/body.tex @@ -0,0 +1,78 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: body.tex | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +\providecommand\hutAuf{M. Musterfrau} + +\lecturewithid{id-vortrag}{Titel}{Untertitel \hfill \textcolor{blue!50}{Martha Musterfrau}} +\label{musterlabel} + +\begin{body} + \begin{frame} + \maketitle + % Titel + \end{frame} + + +\begin{lecture notes intro} + Einleitender Text im Skriptum +\end{lecture notes intro} + +\begin{learning targets} + \item Dies sind die Ziele des Vortrags +\end{learning targets} + + +\mode + + +\only
{ + \section{Allgemeine Infos} + Diese Sektion und dieser Text werden nur im Skriptum gesetzt! +} + +\section{Beginn} + \begin{frame} + \begin{center} + Dies ist die erste Folie unter der Sektion Beginn! + \end{center} + \begin{lecture notes only}[Regie] + \only
{ + Hier könnte eine Regieanweisung nur für das Skriptum stehen! + } + \end{lecture notes only} + \end{frame} + +\section{Mittelteil} + \subsection{Unterpunkt} + + \begin{frame}{Weitere Folien} + \begin{itemize} + \item Hier ist eine weitere Folie mit...\pause + \item Schrittweiser Aufdeckung\pause + \item Im Skriptum entsteht eine Folie! + \end{itemize} + \end{frame} +\end{body} + diff --git a/config.tex b/config.tex new file mode 100644 index 0000000..81e21b4 --- /dev/null +++ b/config.tex @@ -0,0 +1,151 @@ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: config.tex | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +\def\university{ZfsL Essen\\ Carl-Humann-Gymnasium Essen-Steele} +\def\universitaet{ZfsL Essen\\ Carl-Humann-Gymnasium Essen-Steele} +\def\unishort{CHG} + +\institute[ZfsL Essen -- CHG-Essen] +{% +Zentrum für schulpraktische Lehrerbildung Essen\\ +Carl-Humann-Gymnasium Essen-Steele +} + +\def\insertauthortitle{Martha Musterfrau} +\def\insertnameetal{\insertauthortitle{} – +Martha Musterfrau – http://marthamusterfrau.de/ – +CC-Lizenz: http://creativecommons.org/licenses/by-nc-sa/4.0/} +\def\inserturl{http://martamusterfrau.de/} +\def\insertCC{\ccbyncsaeu{}} + +\def\inserttalkname{Workshop} + +% \addbibresource[location=remote,type=file]{http://ddi.uni-wuppertal.de/forschung/Komplett.bib} +% wenn man es sich einmal lokal in den TeX-Baum gelegt hat +% z.\,B.: unter ~/texmf/bibtex/bib/Komplett.bib reicht +\addglobalbib{quellen.bib} % A. Hilbig +\addglobalbib{Komplett.bib} + +\providetranslation[to=German]{Kompetenzen -- Vortrag}{Kompetenzen -- \inserttalkname} +\providetranslation[to=English]{Kompetenzen -- Talk}{Chapter---Competencies} + +\providetranslation[to=German]{Vortrag}{\inserttalkname} +\providetranslation[to=English]{Vortrag}{\inserttalkname} + +%\providetranslation[to=German]{\inserttalkname -- Kompetenzen}{\inserttalkname -- Kompetenzen} +%\providetranslation[to=English]{\inserttalkname -- Kompetenzen}{Talk---Competencies} +\providetranslation[to=German]{Vortrag -- Kompetenzen}{\inserttalkname -- Leitgedanken} +\providetranslation[to=English]{Vortrag -- Kompetenzen}{Talk---Questions} + +\providetranslation[to=German]{Inhalte dieses Vortrags}{Inhalte dieses \inserttalkname s} +\providetranslation[to=English]{Inhalte dieses Vortrags}{Contents} + +\providetranslation[to=German]{Zusammenfassung dieses Vortags}{Zusammenfassung dieses +\inserttalkname s} +\providetranslation[to=English]{Zusammenfassung dieses Vortags}{Summary for this talk} + +\providetranslation[to=German]{Gliederung -- Vortrag}{Gliederung -- \inserttalkname} +\providetranslation[to=English]{Gliederung -- Vortag}{Outline of Chapter} + +\providetranslation[to=German]{Uebungen zu diesem Vortrag}{Übungen zu diesem \inserttalkname} +\providetranslation[to=English]{Uebungen zu diesem Vortrag}{Problems for this talk} + +\providetranslation[to=German]{Pruefungsaufgaben zu diesem Vortrag}{Prüfungsaufgaben zu diesem +\inserttalkname} +\providetranslation[to=English]{Pruefungsaufgaben zu diesem Vortrag}{Exam Problems for this talk} + +%\def\jahr{2014} +\providecommand\jahr{2015} +%\providecommand\jahrpe{2015} + +\provideboolean{tagschalte} % damit Seminare, die auf einem Termin liegen, + % für die Veranstaltungskarte verteilt dargestellt + % werden +\setboolean{tagschalte}{false} % Wert für Präsentationen, Skriptum + +\def\insertsemestershort{2015} +\def\insertsemester{März 2015} + +%\def\insertassistant{Dorothee Müller} +%\def\inserttutors{Adrian Salamon} + +\lecturelistofdates{ + \jahr-03-23 +} + +\lecturelistofids{ + id-vortrag, %achtung! Komma hier ist wichtig!!! +} + +\lecturelistofparts{ + neu-vtr=Neues Vortragsthema % hier ist kein komma notwendig! +} + +\lectureidstofoldernamelist{ + id-vortrag=meinvortragsverzeichnis +} + +\def\lecturename{Ausführlicher Titel des Vortrags} +\def\insertshortlecture{Kurztitel} + +\alt +{\def\equ{\mathbin{\hbox{\boldmath$\textcolor{green!80!black}{=}$}}}} +{\def\equ{\mathbin{\hbox{\textcolor{green!80!black}{\textbf{=}}}}}} + +\makeatletter +\define@key{beamerst}{left}[true]{% + \def\beamer@stalign{\raggedright}} +\makeatother + + +\mode{ +\newenvironment{examplelike}[2][]{% + \def\test{#1}% + \block{% + {\hspace{-2ex}\vspace{-0.5ex}\scalebox{0.7}{\staveVI}} + #2\ifx\test\@empty\else: \textcolor{black}{#1}\fi} + \ignorespaces + } + {\endblock} +} + +\newenvironment{explanation}[1][]{\examplelike[#1]{\translate{Erklärung}}}{\endexamplelike} +\newenvironment{explanations}[1][]{\examplelike[#1]{\translate{Erklärungen}}}{\endexamplelike} + +\newenvironment{annote}[1][]{\examplelike[#1]{\translate{Erläuterung}}}{\endexamplelike} +\newenvironment{annotes}[1][]{\examplelike[#1]{\translate{Erläuterungen}}}{\endexamplelike} + +\newenvironment{qualifying}[1][]{\examplelike[#1]{\translate{Einordnung}}}{\endexamplelike} + +\providecommand\klpifnrw{\emph{\textsc{klp} Informatik \textsc{nrw}}\xspace} + +\providecommand{\CM}{Cy\-ber\-mob\-bing\xspace} +\providecommand{\IS}{Informatiksystem\xspace} +\providecommand{\ISo}{Informatiksystem} +\providecommand{\ISs}{Informatiksysteme\xspace} +\providecommand{\ISe}{Informatiksysteme\xspace} +\providecommand{\ISen}{Informatiksystemen\xspace} +\providecommand{\ISes}{Informatiksystems\xspace} + diff --git a/emerald.sty b/emerald.sty new file mode 100644 index 0000000..90e94cb --- /dev/null +++ b/emerald.sty @@ -0,0 +1,49 @@ +%% +%% This is file `emerald.sty', +%% +%% IMPORTANT NOTICE: +%% This is a collection of files developed by M. Cesar Rodriguez +%% (mcesar@sec.upm.es) which give support for some ECF (emerald city fontwerks, +%% http://www.speakeasy.org/~ecf/) fonts in LaTeX. +%% The usual disclaimers apply: +%% If it doesn't work right that's your problem. +%% License: LPPL (Except for the fonts themselves) +%% See accompanying .txt files describing the use and +%% redistribution conditions of the fonts. +\def\filename{emerald} +\def\fileversion{v1.0} +\def\filedate{2006/01/26} +%% +%% Gives support for ECF (emerald city fontwerks) fonts. These are +%% mainly display or script/handwrited free fonts. +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{emerald}[\filedate\space\fileversion\space + LaTeX2e package which gives support for ECF (emerald city fontwerks) fonts] +\newcommand\ECFAPicture{\fontfamily{fap}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFAugie{\fontfamily{fau}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFDecadence{\fontfamily{fdc}\fontseries{x}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceWithoutTheDiamonds{\fontfamily{fdc}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceCondensed{\fontfamily{fdc}\fontseries{c}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceInTheDark{\fontfamily{fdc}\fontseries{b}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceInTheDarkCondensed{\fontfamily{fdc}\fontseries{bc}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceInADifferentLight{\fontfamily{fdc}\fontseries{l}\fontshape{n}\selectfont} +\newcommand\ECFDecadenceInTheDarkCondensedMarquee{\fontfamily{fdm}\fontseries{bc}\fontshape{n}\selectfont} +\newcommand\ECFIntimacy{\fontfamily{fin}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFIntimacyDeux{\fontfamily{fin}\fontseries{l}\fontshape{n}\selectfont} +\newcommand\ECFJD{\fontfamily{fjd}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFMovieola{\fontfamily{fmv}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFMovieolaTitleType{\fontfamily{fmt}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFPookie{\fontfamily{fpk}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFPookieType{\fontfamily{fpt}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFSkeetch{\fontfamily{fsk}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFSpankysBungalow{\fontfamily{fsp}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFSpankysBungalowItalico{\fontfamily{fsp}\fontseries{m}\fontshape{it}\selectfont} +\newcommand\ECFSpankysBungalowBlanco{\fontfamily{fsb}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFSpankysBungalowBlancoItalico{\fontfamily{fsb}\fontseries{m}\fontshape{it}\selectfont} +\newcommand\ECFSyriac{\fontfamily{fsy}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFTallPaul{\fontfamily{ftp}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFTeenSpirit{\fontfamily{fts}\fontseries{m}\fontshape{n}\selectfont} +\newcommand\ECFWebster{\fontfamily{fwb}\fontseries{m}\fontshape{n}\selectfont} +\endinput +%% +%% End of file `emerald.sty'. \ No newline at end of file diff --git a/mustername-presentation.tex b/mustername-presentation.tex new file mode 100644 index 0000000..340f623 --- /dev/null +++ b/mustername-presentation.tex @@ -0,0 +1,46 @@ +% BUW-presentation_preamble.tex +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: mustername-presentation.tex | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +\documentclass[german,10pt,table]{beamer} +\usepackage[utf8]{luainputenc} +\usepackage[onelecture]{ahilbig-presentation} +\usepackage{yfonts} + +\usepackage{graphicx} +\usepackage[compatibility=false]{caption} +\usepackage{subcaption} +\usepackage{circuitikz} + +\input{config.tex} + + +\hypersetup{% + pdfsubject={Präsentation, \lecturename, \insertsemester, Themen, Termine, Kompetenzen, \universitaet}, + pdfkeywords={Informatikunterricht,Didaktik,Modulkonzept,Mobilsysteme,Python,Informatik,allgemeine Bildung,Paradigmen,Freihandversuche,Bildungsgangdidaktik} +} + +\input{body.tex} + diff --git a/mustername-script.tex b/mustername-script.tex new file mode 100644 index 0000000..a2104c8 --- /dev/null +++ b/mustername-script.tex @@ -0,0 +1,122 @@ +% -*- coding: utf-8; -*- +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: mustername-script.tex | +% | +% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0 | +% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de | +% | +% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden, | +% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben | +% und auf die ursprünglichen Urheber verwiesen wird. | +% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% HINWEISE/ERWEITERUNG | +% Diese Pakete basieren auf den entsprechenden Paketen von Prof. Dr. Ludger Humbert | +% (http://ddi.uni-wuppertal.de/ -- humbert@uni-wuppertal.de) und wurden zum Teil angepasst. Seine | +% Pakete basieren wiederum auf Entwicklungen von Prof. Dr. Till Tantau | +% (http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/). Beiden gilt mein Dank hierfür. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | + + +%\RequirePackage{snapshot} % Needed by bundledoc +% +\documentclass[german,a4paper,10pt,table,notitlepage]{report} +\usepackage[utf8]{inputenc} + +\RequirePackage[bookmarksnumbered,pdfborder={0 0 0}]{hyperref} + +%\providecommand{\enquote}[1]{»#1«} +\providecommand{\bodydir}{./} + +\usepackage[onelecture]{ahilbig-script} +\usepackage{beamerarticle} +\usepackage{ahilbig-semester} + +\usepackage{graphicx} +\usepackage{subcaption} +\usepackage{circuitikz} + +\input{config.tex} + +%\DdILogoOptions{width=1.75cm,keepaspectratio=true,digitcolor=ddilogolightgray} + +\listfiles + +%\newcommand\logobreite{9.2cm} + +%\newcommand\lgo{\raisebox{-1ex}{\ddiLogo}} + +\usepackage{pdfpages} + +\hypersetup{ + pdftitle={Workshop – \lecturename{} – \insertsemester{} – \universitaet}, + pdfsubject={Workshop \lecturename{}, \insertsemester{}, \universitaet}, + pdfauthor={\insertnameetal}, + pdfkeywords={Informatikunterricht, Didaktik, Informatik Mensch und Gesellschaft, + Technische Informatik, Objektorientierte Modellierung, + Modulkonzept, Mobilsysteme, Python, Informatik, allgemeine Bildung, + Paradigmen, Freihandversuche, Gender, Mobiles Programmieren, + Bildungsgangdidaktik,Computing}, +} +\begin{document} + + \begin{frontmatter} + + \begin{titlepage} + \maintitle + %\includegraphics[width=\textwidth]{../../planning/logo.pdf}% + \end{titlepage} + + \printTables + %\label{veranstaltungskarte} + %\insertmap{\unishort} + + +%\fancypictures{\lgo} + %\clearpage + + \addchap{Vorwort} + \addsec{Allgemeine Hinweise} + Dieses Skriptum basiert auf den Ergebnissen aus meiner Bachelor-Thesis \citetitle{Hilbig2012} + \autocite{Hilbig2012} und vor allem der Masster-Thesis \citetitle{Hilbig2014} + \autocite{Hilbig2014}. Die Vorlage des zugehörigen Vortrags stammt aus einem Beitrag von mir im + Rahmen des Seminars der Didaktik der Informatik in Wuppertal \autocite[vgl.][]{HumbertDdI2014}. + + Alle drei Arbeiten stehen unter einer Creative Commons cc-by-nc-sa-Lizenz und können den + Lizenzbedingungen entsprechend zitiert und verwendet werden. Einzelne Inhalte, etwa konkrete + Übungen, sind jedoch als Zitat kenntlich gemacht. Hier gelten die Bestimmungen der ausgewiesenen + Autoren. + + Dieses Dokument wird unter der folgenden Creative-Commons-Lizenz veröffentlicht: + + \begin{center} + \ccbyncsaeu{} + + \url{http://creativecommons.org/licenses/by-nc-sa/4.0/} + \end{center} + + Weitere Materialien sowie die Präsentation können unter \url{\inserturl} abgerufen werden. + + \addsec{Danksagung} + Die grundlegenden Elemente zur Unterstützung der + Erstellung dieser Dokumente basieren auf Quellen von Prof.\,Dr.\,Ludger Humbert + (\url{http://ddi.uni-wuppertal.de}) und Prof.\,Dr.\,Till Tantau + (\url{http://www.tcs.uni-luebeck.de/de/mitarbeiter/tantau/}) denen für die + Schaffung dieser Grundlage mein Dank gilt. + \end{frontmatter} + + \onecolumn + + \clearpage + \InsertLectureAndExercises{img-beispiel} % André Hilbig + +\end{document} + diff --git a/quellen.bib b/quellen.bib new file mode 100644 index 0000000..1a414e3 --- /dev/null +++ b/quellen.bib @@ -0,0 +1,1204 @@ +@comment{ +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | +% (C)opyright A. Hilbig, mail@andrehilbig.de | +% http://www.andrehilbig.de/Publications | +% | +% diese Datei: quellen.bib | +% | +% 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. | +% | +% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ +% | + PHYSIK +} +@unpublished{SilpPChg2014, + AUTHOR = {Christine Backwinkel and Ulrich Großlindemann and Henning Krake and Wolfgang Kühl + and Stefan Uhlmann}, + TITLE = "Physik: Schulinternen Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe", + MONTH = {Oct}, + YEAR = "2014", + NOTE = "Unveröffentlicht, weiteres Mitglied der Fachkonferenz: André \textsc{Hilbig}" +} + +@electronic{LeifiWurfparabel2015, + editor = "JHS", + month = {Feb}, + year = "2015", + title = "LEIFIphysik -- Physikportal -- Waagerechter und schräger Wurf", + subtitle = "Wurfparabel", + url = + {http://www.leifiphysik.de/themenbereiche/waagerechter-und-schraeger-wurf/versuche#Wurfparabel}, + urldate = {2015-02-28}, + note = "JHS (Joachim Herz Stiftung)", +} + +@book{KlPII2013Ph, + editor = {MS{\-}WWF}, + title = {{Kernlehrplan f{\"u}r die + Sekundarstufe~II -- Gymnasium/Gesamt{\-}schule in + Nordrhein-Westfalen -- Physik}}, + year = 2013, + month = {Juni}, + publisher = {Ritterbach Verlag}, + address = {Frechen}, + edition = {{1.~Aufl.}}, + number = {4721}, + series = {Schriftenreihe Schule in NRW}, + note = {MSWWF (Ministerium f{\"u}r Schule und Weiterbildung, + Wissenschaft und Forschung des Landes + Nordrhein-Westfalen)}, + url = + {http://www.standardsicherung.schulministerium.nrw.de/lehrplaene/upload/klp_SII/ph/GOSt_Physik_Endfassung.pdf}, + urldate = {2015-03-04}, +} +@book{LehrplanSekII1999Ph, + editor = {MS{\-}WWF}, + title = {{Richtlinien und Lehrpläne für die + Sekundarstufe~II -- Gymnasium/Gesamtschule in + Nordrhein-Westfalen -- Physik}}, + year = 1999, + month = {Juli}, + publisher = {Ritterbach Verlag}, + address = {Frechen}, + edition = {{1.~Aufl.}}, + number = {4721}, + series = {Schriftenreihe Schule in NRW}, + note = {MSWWF (Ministerium f{\"u}r Schule und Weiterbildung, + Wissenschaft und Forschung des Landes + Nordrhein-Westfalen)}, + url = {http://www.standardsicherung.schulministerium.nrw.de/lehrplaene/upload/klp_SII/ph/GOSt_Physik_Endfassung.pdf} +} + +@book{KlPPI2008Ph, + editor = {MS{\-}WWF}, + title = {{Kernlehrplan f{\"u}r das Gymnasium -- + Sekundarstufe~I in Nordrhein-Westfalen -- Physik}}, + year = 2008, + month = {August}, + publisher = {Ritterbach Verlag}, + address = {Frechen}, + edition = {{1.~Aufl.}}, + number = {3411}, + series = {Schriftenreihe Schule in NRW}, + note = {MSWWF (Ministerium f{\"u}r Schule und Weiterbildung, + Wissenschaft und Forschung des Landes + Nordrhein-Westfalen)}, + url = {http://www.standardsicherung.schulministerium.nrw.de/lehrplaene/upload/lehrplaene_download/gymnasium_g8/gym8_physik.pdf} +} + +@book{BildungsstandardsPhysik, + title = "Bildungsstandards im Fach Physik für den Mittleren Schulabschluss -- Beschluss vom + 16.12.2004", + subtitle = "Beschlüsse der Kultusministerkonferenz", + editor = {KM{\-}K}, + note = "Herausgegeben vom Sekretariat der Ständigen Konferenz der Kultusminister der Länder in der +Bundesrepublik Deutschland", + publisher = "Luchterhand", + year = "2005", + month = {Jun}, + url = + {http://www.kmk.org/fileadmin/veroeffentlichungen_beschluesse/2004/2004_12_16-Bildungsstandards-Physik-Mittleren-SA.pdf}, + urldate = {2014-03-20} +} + +@Book{ DornBader11A1998, + title = "Dorn-Bader -- Physik 11", + subtitle = "Ausgabe A -- Gymnasium Sek~II", + editor = "Franz Bader and Friedrich Dorn", + author = "Franz Bader and Bernd Kretschmer and Helmut Bergold and Heinz-Werner + Oberholz and Peter Drehmann and Werner Wegner and Erwin-Klaus Haberkant", + publisher = "Schroedel Verlag", + year = "1998", + isbn = "3-507-10720-1" +} + +@Book{ Metzler1996, + title = "Metzler Physik", + author = {Joachim Grehn and Albrecht von Hessberg and Hans-Gerd Holt and Herwig Kr{\"u}ger and Herbert Kurt Schmidt}, + publisher = "Metzler", + year = "1996", + isbn = "3-507-05209-1", + editor = "Joachim Grehn", + edition = "2. Auflage", +} + + + +@comment{ + INFORMATIK +} + +@book{AsterixBeiDenBriten1986, + author = "Pierre Tchernia", + title = "Asterix bei den Briten", + editor = "Yannik Piel", + year = "1986", + note = "Film, Regie: Pino van \textsc{Lamsweerde}" +} + +@book{Kernlehrplan1999Inf, + editor = {MSWWF}, + title = {{Richtlinien und Lehrpl{\"a}ne f{\"u}r die + Sekundarstufe~II -- Gymnasium/Gesamtschule in + Nordrhein-Westfalen -- Informatik}}, + year = 1999, + month = {Juni}, + publisher = {Ritterbach Verlag}, + address = {Frechen}, + edition = {{1.~Aufl.}}, + number = {4725}, + series = {Schriftenreihe Schule in NRW}, + note = {MSWWF (Ministerium f{\"u}r Schule und Weiterbildung, + Wissenschaft und Forschung des Landes + Nordrhein-Westfalen)}, + url = {http://www.standardsicherung.schulministerium.nrw.de/lehrplaene/upload/lehrplaene_download/gymnasium_os/4725.pdf}, +} + +@unpublished{SilpiChg2014, + AUTHOR = {Ziba Dehmandi and Andr{é} Hilbig and Michael Zagorski}, + TITLE = "Informatik: Schulinterner Lehrplan zum Kernlehrplan für die gymnasiale Oberstufe an + dem Carl-Humann-Gymnasium in Essen", + MONTH = "Nov", + YEAR = "2014", + NOTE = "Unveröffentlicht, Version 0.1" +} + +@unpublished{iLPIF2010CHG, +author = "Ziba Dehmandi", +year = 2010, +month = {May}, +title = "Schulinternes Curriculum Informatik", +subtitle = "Carl-Humann-Gymnasium -- Städtisches Gymnasium für Jungen und Mädchen", +address = {Essen}, +note = "Sekundarstufe I", +pages = "2--5", +} + +@electronic{internerLehrplan2014DBG, +editor = {Uwe Florin}, +year = 2014, +month = {Feb}, +title = {Jahrgangsstufe 9}, +url = {http://dbg-ratingen.de/go/scientext/home/unterricht/categories/informatik/jahrgangsstufe10.xhtml}, +urldate = {2014-02-20}, +address = {Ratingen}, +} + +@electronic{zauberei2013, +editor = {Dorothee Müller}, +year = 2013, +month = {Apr}, +title = {Paritätsbit}, +url = {http://ddi.uni-wuppertal.de/material/informatiktricks.html#cs-unplugged}, +urldate = {2014-02-20}, +} + +@booklet{Bildungsstandards2008Inf, + author = {{GI}}, + title = {{Grunds{\"a}tze und Standards f{\"u}r die Informatik in der Schule}}, + subtitle = {{Bildungsstandards Informatik f{\"u}r die Sekundarstufe~I}}, + year = 2008, + month = {April}, + note = {Erarbeitet vom Arbeitskreis \frqq{}Bildungsstandards\flqq{} -- Beschluss des GI-Pr{\"a}sidiums vom 24.~Januar~2008 -- ver{\"o}ffentlicht als Beilage zur LOG~IN~28 (2008) Heft~150/151}, + url={ http://fa-ibs.gi.de/fileadmin/gliederungen/fb-iad/fa-ibs/Empfehlungen/bildungsstandards\_2008.pdf}, + lastchecked={5.~Mai~2012}, + issn = {0720-8642}, + journal = {LOG~IN}, + volume = {27}, + number = {146/147}, +} + +@booklet{Alsaker2006, + author = "Françoise D. Alsaker and Christof Nägle and Stefan Valkanover", + title = "Mobbing geht alle an", + subtitle = "Erste Ergebnisse aus dem NFP52-Projekt: Mobbing im Kindergarten: Entstehung und + Prävention", + url={http://www.nfp52.ch/d_dieprojekte.cfm?Projects.Command=download&file=03_07_2006_11_51_27-Alsaker_NFP52_ZH_220606.pdf&name=Alsaker_NFP52_ZH_220606.pdf}, + urldate = {2014-04-29}, + month = {June}, + year = {2006} +} + +@COMMENT{ + =============================================================================== + Neu hinzugekommene Einträge Informatiktag 2015 + ------------------------------------------------------------------------------- +} + + +@ELECTRONIC{ fairmobil, + TITLE = {{Stark im Miteinander}}, + SUBTITLE = {Schule anders erleben}, + URL = {http://www.miteinandern.de/329.html}, + URLDATE = {2014-09-09}, + EDITOR = {Westfälische Provinzial and Jugendrotkreuz Westfalen-Lippe and asb -- arbeitskreis + soziale bildung und beratung e.V. and Schulpsychologische Beratungsstelle der Stadt + Münster} +} + +@BOOK{Fileccia2009, + AUTHOR = {Marco Fileccia}, + PUBLISHER = {Initiative \enquote{klicksafe}}, + TITLE = {{Social Communities}}, + SUBTITLE = {{Ein Leben im Verzeichnis -- Zusatzmodul}}, + SERIES = {Knowhow für junge User}, + URL = + {http://www.klicksafe.de/service/fuer-lehrende/zusatzmodule-zum-lehrerhandbuch/#c18286}, + URLDATE = {2014-09-09}, + YEAR = 2009, +} + +@BOOK{Kahlert2006, + AUTHOR = {Joachim Kahlert and Richard Sigel}, + PUBLISHER = {Bundeszentrale für gesundheitliche Aufklärung}, + ISBN = {3-937707-41-7}, + YEAR = 2006, + TITLE = {{Achtsamkeit und Anerkennung}}, + SERIES = {Gesundheitserziehung und Schule (G\+{}S)}, + URL = + {http://www.bzga.de/infomaterialien/unterrichtsmaterialien/unterrichtsmaterialien/achtsamkeit-und-anerkennung-klassen-5-9/}, + URLDATE = {2014-09-09} +} + +@ONLINE{Kannenberg2014, + AUTHOR = {Axel Kannenberg}, + MONTH = {06}, + TITLE = {Facebook verteidigt umstrittenes Psycho-Experiment}, + URL = {http://heise.de/-2243121}, + URLDATE = {2014-06-30}, + YEAR = 2014, +} + + +@electronic{FriendsHardaOrd, + Organization = {Stiftelsen Friends}, + url = {https://www.youtube.com/watch?v=clDrraxwIWA&list=UUv2X3R30cWi5cenA7qAkw-Q}, + urldate = {2014-09-02}, + year = 2009, + month = {May}, + title = {{Hårda Ord}}, +} +@electronic{FriendsTillsammans, + Organization = {Stiftelsen Friends}, + url = {https://www.youtube.com/watch?v=ozn6OXMvhaM&list=UUv2X3R30cWi5cenA7qAkw-Q}, + urldate = {2014-09-02}, + year = 2009, + month = {Dec}, + title = {{Tillsammans}}, +} +@electronic{FriendsSamPaHoegstadiet, + Organization = {Stiftelsen Friends}, + url = {https://www.youtube.com/watch?v=Fw1o8DE4wpk&list=UUv2X3R30cWi5cenA7qAkw-Q}, + urldate = {2014-09-02}, + year = 2009, + month = {Mar}, + title = {{Som på högstadiet}}, +} +@electronic{FriendsEMobbning, + Organization = {Stiftelsen Friends}, + url = {https://www.youtube.com/watch?v=-lHiJZk5rcA&list=UUv2X3R30cWi5cenA7qAkw-Q}, + urldate = {2014-09-02}, + year = 2009, + month = {Mar}, + title = {{E-Mobbing}}, +} + +@COMMENT{ + =============================================================================== + Neu hinzugekommene Einträge + ------------------------------------------------------------------------------- +} + +@misc{Diethelm2006, + author = "Ira Diethelm and Leif Geiger and Carsten Schulte", + title = "Einführung in die Objektorientierung im Informatik-Anfangsunterricht", + year = 2006, + month = {Nov}, + url={http://www.se.eecs.uni-kassel.de/fileadmin/se/LehrerFortbildung/OOM-Skript061108.pdf}, + urldate={2015-02-17}, + note = "Skriptum Lehrerfortbildung", +} + +@book{Anderson2008, + author = "Ross J. Anderson", + title = "Security Engineering", + subtitle = "A Guide to Building Dependable Distributed Systems", + year = "2008", + isbn = "978-0-470-06852-6", + edition = "2", + publisher = "Wiley", +} + +@Proceedings{Magenheim2000, + author = "Johann S. Magenheim", + title = "Theoretische Aspekte und unterrichtspraktische Implikationen einer systemorientierten Didaktik der Informatik", + year = 2000, + organization = "Tagungsbeitrag zur GI-Tagung \enquote{Informatik - Ausbildung und Beruf 2000}", + url = + "http://ddi.uni-paderborn.de/fileadmin/Informatik/AG-DDI/Veroeffentlichungen/Paper/2000/sytemorientierter_ansatz.pdf", + urldate = {2014-07-17} +} + +@article{Koubek2005, + author = "Jochen Koubek", + title = "Informatiker und Gesellschaft", + journal = {LOG~IN}, + pages = {34--35}, + year = 2005, + volume = {136/137}, + issn = {0720-8642}, +} + +@article{BaumannKoerber2008, + author = "Rüdeger Baumann and Bernhard Koerber", + title = "Internet-Gemeinschaften", + journal = {LOG~IN}, + pages = {18--25}, + year = 2008, + volume = {153}, + issn = {0720-8642}, +} + +@article{Koubek2008, + author = "Jochen Koubek", + title = "Die erste Online-Community", + journal = {LOG~IN}, + pages = {26--28}, + year = 2008, + volume = {153}, + issn = {0720-8642}, +} +@article{Koubek2008b, + author = "Jochen Koubek", + title = "Der andere Schulhof", + subtitle = "Die dunkle Seite von schülerVZ", + journal = {LOG~IN}, + pages = {38--41}, + year = 2008, + volume = {153}, + issn = {0720-8642}, +} +@article{Freischlad2005, + author = "Sigrid Schubert and Peer Stechert and Stefan Freischlad", + title = "Die Phischer im Internet", + subtitle = "Ein Beitrag zu Standards der informatischen Bildung über die Sicherheit im Netz", + journal = {LOG~IN}, + pages = {66--68}, + year = 2005, + volume = {135}, + issn = {0720-8642}, +} + +@article{Koubek2006, + author = "Jochen Koubek", + title = "Sicherheit von Online-Bezahldiensten", + journal = {LOG~IN}, + pages = {25--29}, + year = 2006, + volume = {136/137}, + issn = {0720-8642}, +} + +@article{Engbring2005, + author = "Dieter Engbring", + title = "Informatik im Kontext", + subtitle = "Ein technikbezogener Zugang zur Integration gesellschaftlicher Fragen", + journal = {LOG~IN}, + pages = {28--33}, + year = 2005, + volume = {136/137}, + issn = {0720-8642}, +} + +@article{ Brezinka2011, + author = "Veronika Brezinka", + title = "»Schatzsuche« -- ein verhaltenstherapeutisches Computerspiel", + journal = "Praxis der Kinderpsychologie und Kinderpsychiatrie", + year = "2011", + pages = "762--776", + volume = "60", + number = "9", + publisher = "Vandenhoeck & Ruprecht", + organization = "Universitat Bremen", +} + +@article{Schwill1993, + author = {Schwill, Andreas}, + title = {{Fundamentale Ideen der Informatik}}, + journal = {ZDM}, + pages = {20--31}, + year = 1993, + volume = 25, + number = 1, + note = {ZDM -- Zentralblatt f{\"u}r Didaktik der Mathematik}, + url={http://www.informatikdidaktik.de/Forschung/Schriften/ZDM.pdf}, + urldate={2014-06-21} +} + +@Electronic{ emailGer, + title = "E-Mail made in Germany", + subtitle = "E-Mail made in Germany bietet unseren Kunden einen hohen Sicherheits- und + Datenschutzstandard und steht für Produktqualität und Zuverlässigkeit", + note = {1{\&}1 Mail {\&} Media GmbH and Telekom Deutschland GmbH, Hrsg.}, + url = "http://www.e-mail-made-in-germany.de/", + urldate = {2014-06-20}, + year = "2014", +} + +@Electronic{ heiseAuto, + title = "Analyse: Google will den Autofahrer abschaffen", + author = "Ben Schwan", + urldate = {2014-06-21}, + month = jun, + year = "2014", + url = "http://heise.de/-2214341", +} + +@Electronic{ heiseNSA, + title = "Was bisher geschah: Der NSA-Skandal im Jahr 1 nach Snowden", + author = "Martin Holland", + urldate = {2014-06-20}, + month = jun, + year = "2014", + url = "http://heise.de/-2214943", +} + +@Electronic{ heiseFacebook, + title = "Facebook verteidigt umstrittenes Psycho-Experiment", + author = "Axel Kannenberg", + urldate = {2014-06-30}, + month = jun, + year = "2014", + url = + "http://heise.de/-2243121", +} + +@Electronic{ wikiUML, + title = "Paket (UML)", + urldate = {2014-06-21}, + month = jun, + year = "2014", + url = "https://de.wikipedia.org/wiki/Paket_(UML)" +} + + +@Electronic{ wikiTopologie, + title = "Topologie (Rechnernetze)", + urldate = {2014-06-16}, + month = jun, + year = "2014", + url = "https://de.wikipedia.org/wiki/Topologie_%28Rechnernetz%29" +} + + +@book { Christakis2011, + title = "Connected!", + subtitle = "Die Macht sozialer Netzwerke: wer uns wirklich beeinflusst und warum Glück ansteckend ist", + author = "Christakis, Nicholas A. and Fowler, James H. and Neubauer, Jürgen", + publisher = "Fischer Taschenbuch Verl.", + address = "Frankfurt am Main", + year = "2011", + isbn = "9783596184019", +} + +@book { Comer2002, + title = "Computernetzwerke und Internets: mit Internet-Anwendungen", + edition = "3., überarb. Aufl.", + author = "Comer, Douglas and Droms, Ralph", + publisher = "Pearson Studium", + address = "München", + year = "2002", + isbn = "3-8273-7023-X", +} + +@book { Stein2008, + title = "Taschenbuch Rechnernetze und Internet: mit 94 Tabellen", + edition = "3., neu bearb. Aufl.", + author = "Stein, Erich", + publisher = "Fachbuchverl. Leipzig im Carl-Hanser-Verl.", + address = "München", + year = "2008", + isbn = "978-3-446-40976-7;; 3-446-40976-9" +} + +@book{ Tanenbaum2003, + title = "Computer Networks", + author = "Tanenbaum, Andrew S.", + edition = "4", + publisher = "Pearson Education International", + year = "2003", + isbn = "0-13-038488-7" +} + +@article { Hellige2006, + title = "Die Geschichte des Internet als Lernprozess", + editor = "Universität Bremen", + volume = "138", + journal = "artec-Paper", + author = "Hellige, Hans Dieter", + year = "2006", + issn = "1613-4907" +} + +@book{Freischlad2010, + author = {Stefan Freischlad}, + title = "Entwicklung und Erprobung des Didaktischen Systems Internetworking im + Informatikunterricht", + series = "Comentarii informaticae didacticae (CID)", + volume = "3", + publisher = "Universitätsverlag Potsdam", + year = "2010", + note = "Dissertation" +} + +@article{SchubertLOGIN2005, + author = {Schubert, Sigrid and Peer Stechert and Stefan Freischlad}, + title = {{Die Phisher im Internet}}, + journal = {LOG~IN}, + pages = {66--68}, + year = 2005, + month = {September}, + volume = 25, + number = {135}, + url={http://www.log-in-verlag.de/PDF-Dateien/LOG_IN-135.pdf}, + lastchecked={11.~August~2010}, + issn = {0720-8642}, + annote = {ngerman}, +} + +@book { Blum2012, + title = "No Blame Approach", + subtitle = "Mobbing-Intervention in der Schule. Praxishandbuch -- Mobbing: + hinschauen, handeln", + edition = "2. Aufl.", + author = "Blum, Heike and Beck, Detlef", + publisher = "fairaend", + address = "Köln", + year = "2012", + isbn = "978-3-000277-55-9" +} + +@article { Blum2005, + title = "No Blame Approach. Mobbing-Interventionsansatz ohne Schuldzuweisungen.", + journal = "Thema Jugend", + volume = "Jg. 2005", + number = "4", + pages = "7-9", + author = "Blum, Heike and Beck, Detlef", + year = "2005" +} + +@inbook { Diekert2009, + title = "Informatikdidaktische Forschung am Beispiel Internetworking", + author = "Schubert, Sigrid and Freischlad, Stefan", + booktitle = "Informatik als Dialog zwischen Theorie und Anwendung.", + booksubtitle = "Festschrift für Volker Claus zum 65. Geburtstag", + edition = "1. Aufl.", + bookauthor = "Diekert, Volker and Weicker, Karsten and Weicker, Nicole and Claus, Volker Honoree", + publisher = "Vieweg+Teubner Verlag / GWV Fachverlage GmbH, Wiesbaden", + address = "Wiesbaden", + year = "2009", + pages= "169-182" +} + +@article { Shanmuganathan2010, + title = "Cyberstalking: Psychoterror im WEB 2.0 Cyberstalking in WEB 2.0", + journal = "Information - Wissenschaft \& Praxis", + volume = "61; Jg. 2010", + number = "2", + pages = "91-95", + author = "Shanmuganathan, Niransana", + year = "2010" +} + +@article { Roland2002, + title = "Classroom Influences on Bullying", + journal = "Educational Research", + volume = "44; Jg. 2002", + number = "3", + pages = "299-312", + author = "Roland, Erling and Galloway, David", + year = "2002" +} + +@article { Kober2013, + title = "Stark im MiteinanderN: Evaluation des schulischen Präventionsprogramms", + journal = "Schadenprisma", + volume = "Jg. 2013", + number = "1", + pages = "9-14", + author = "Marcus Kober", + year = "2013" +} + +@article { Riebel2009, + title = "Cyberbullying in Germany - An exploration of prevalence, overlapping with real life bullying and coping strategies (Cybermobbing in Deutschland. Eine Untersuchung hinsichtlich Pravalenz, Uberschneidung mit Mobbing im wirklichen Leben sowie Bewaltigungsstrategien)", + journal = "Psychology Science Quarterly", + volume = "51; Jg. 2009", + number = "3", + pages = "298-314", + author = "Riebel, Julia and Jager, Reinhold S. and Fischer, Uwe C.", + year = "2009" +} + +@article { Kowalski2014, + title = "Bullying in the Digital Age: A Critical Review and Meta-Analysis of Cyberbullying Research Among Youth.", + journal = "Psychological Bulletin", + volume = "Jg. 10, 2014", + author = "Kowalski, Robin M. and Giumetti, Gary W. and Schroeder, Amber N. and Lattanner, Micah R.", + publisher = "American Psychological Association", + year = "2014" +} + +@article { Franze2009, + title = "MindMatters--A Programme for the Promotion of Mental Health in Primary and Secondary Schools: Results of an Evaluation of the German Language Adaptation", + journal = "Health Education", + volume = "109; Jg. 2009", + number = "4", + pages = "369-379", + author = "Franze, M. and Paulus, P.", + address = "Emerald. 875 Massachusetts Avenue 7th Floor", + year = "2009" +} + +@article { Khan2012, + title = "Evaluation of the MindMatters Buddy Support Scheme in Southwest Sydney: Strategies, Achievements and Challenges", + journal = "Health Education Journal", + volume = "71; Jg. May 2012", + number = "3", + pages = "320-326", + author = "Khan, Raquiba J. and Bedford, Karen and Williams, Mandy", + address = "SAGE Publications. 2455 Teller Road", + year = "2012" +} + +@booklet{ EvaluationNoBlame2008, + title = "Evaluationsbericht -- Mobbing: Hinschauen, Handeln. No Blame Approach", + subtitle = "Der NO BLAME APPROACH in der schulischen Praxis", + editor = "Bund für Soziale Verteidigung", + location = "Minden", + year = "2008", + url = {http://www.no-blame-approach.de/media/downloads/EvalutionsberichtNoBlameApproach.pdf}, + urldate = "2014-05-11" +} + +@article { Wolak2008, + title = "Online 'Predators' and Their Victims: Myths, Realities, and Implications for Prevention and Treatment", + journal = "American Psychologist", + volume = "63; Jg. 2008", + number = "2", + pages = "111-128", + author = "Wolak, Janis and Finkelhor, David and Mitchell, Kimberly J. and Ybarra, Michele L.", + address = "American Psychological Association. Journals Department", + year = "2008" +} + +@article { Smith2008, + title = "Cyberbullying - its nature and impact in secondary school pupils", + journal = "The journal of child psychology and psychiatry : official organ of the Association of Child Psychology and Psychiatry", + volume = "Jg. 2008", + number = "4", + pages = "376-385", + author = "Smith, Peterk and Mahdavi, Jess and Carvalho, Manuel and Fisher, Sonja and Russell, Shanette and Tippett, Neil", + publisher = "Blackwell", + address = "Oxford u.a.", + year = "2008" +} + +@Book{ Schaefer2010, + title = "Du Opfer! Wenn Kinder Kinder fertigmachen", + author = "Mechthild Schäfer and Gabriela Herpell", + subtitle = "Der Mobbingreport", + month = {Jul}, + year = "2010", + isbn = "978-3-498-03006-3", + publisher = "Rowohlt", + adress = "Reinbek bei Hamburg" +} + +@article { Schaefer2005, + title = "Bullying roles in changing contexts -- The stability of victim and bully roles from primary to secondary school", + journal = "International journal of behavioral development : IJBD", + volume = "Jg. 2005", + number = "4", + pages = "323-335", + author = "Schäfer, Mechthild and Korn, Stefan and Brodbeck, Felix and Wolke, Dieter and Schulz, Henrike", + publisher = "Sage Publ", + address = "London u.a.", + year = "2005" +} + +@thesis{ Fischer2011, + title = "Cybermobbing -- Informatik im Kontext", + author = "Andreas Fischer", + year = "2011", + month = {Jul}, + url = "http://mediathek.bildung.hessen.de/material/informatik/gesellschaft/Cyber-Mobbing.pdf", + urldate = {2014-05-06} +} + +@Book{ Jannan2012, + title = "Gewaltprävention an Schulen", + subtitle = "Planen -- umsetzen -- verankern", + author = "Mustafa Jannan", + publisher = "Beltz", + year = "2012", + isbn = "978-3-407-29162-2" +} + +@inbook { Schaefer2008, + title = "Mobbing unter Schülern", + journal = "Angewandte Entwicklungspsychologie", + volume = "Jg. 2008", + pages = "521-545", + author = "Schäfer, Mechthild", + editor = "Petermann, Franz and Schneider, Wolfgang", + publisher = "Hogrefe", + address = "Gottingen", + year = "2008", + isbn = "978-3-8017-0589-3" +} + +@article { Wachs2011, + title = "Zusammenhänge zwischen Cyberbullying und Bullying -- Erste Ergebnisse aus einer Selbstberichtsstudie.", + journal = "Praxis der Kinderpsychologie und Kinderpsychiatrie", + volume = "60", + number = "9", + pages = "735-744", + author = "Wachs, Sebastian and Wolf, Karsten D.", + publisher = "Vandenhoeck & Ruprecht", + organization = "Universitat Bremen", + year = "2011", +} + +@Proceedings{ DAK2009, + title = "Mobbing und Gewalt an Schulen", + subtitle = "Studie im Rahmen der DAK-Initiative + „Gemeinsam gesunde Schule entwickeln“", + editor = {Leuphana~Universität~Lüneburg~(ZAG)}, + organisation= "DAK-Gesundheit", + year = "2009", + month = {Jun}, + url = + {http://www.schulen-entwickeln.de/tl_files/Dateien/Studien/DAK-Leuphana-Studie%20Juni%202009_%20Mobbing%20und%20Gewalt%20an%20Schulen1.pdf.pdf}, + urldate = {2014-05-01} +} + +@Electronic{ Peters2014, + author = "Ingo Peters", + title = "Smartphone und Internet gehören für Kinder zum Alltag", + year = "2014", + month = {Apr}, + url = {http://www.log-in-verlag.de/smartphone-und-internet-gehoeren-fuer-kinder-zum-alltag/}, + urldate = {2014-05-02} +} + +@Book{ Schuster2013, + title = "Führung im Klassenzimmer", + subtitle = "Disziplinschwierigkeiten und sozialen Störungen vorbeugen und + effektiv begegnen -- ein Leitfaden für Miteinander im Unterricht", + author = "Beate Schuster", + publisher = "Springer Verlag", + year = "2013" +} + +@Book{ Nolting2002, + title = "Störungen in der Schulklasse -- Ein Leitfaden zur Vorbeugung und Konfliktlösung", + author = "Hans-Peter Nolting", + publisher = "Beltz Verlag", + year = "2002" +} + + +@COMMENT{ + =============================================================================== + Hier folgen nun die aus der Bachelor-Arbeit übernommenen Einträge... + ------------------------------------------------------------------------------- +} + +@Book{ Fawzi2009, + title = "Cyber-Mobbing : Ursachen und Auswirkungen von Mobbing im Internet", + author = "Nayla Fawzi", + publisher = "Baden-Baden: Nomos, Ed. Fischer", + year = "2009", + isbn = "978-3-8329-4888-7" +} + +@Book{ buschendorff, + title = "Geil, das peinliche Foto stellen wir online!", + series = "K.L.A.R.", + author = "Florian Buschendorff", + publisher = {M{\"u}lheim an der Ruhr : Verlag an der Ruhr}, + year = "2010", + isbn = "978-3-8346-0729-4" +} + +@Electronic{ wdrStory, + title = {WDR Story: Stille Gewalt - Sch{\"u}lermobbing im Internet}, + author = "Lena Rumler", + month = oct, + year = "2011", + url = "http://www.wdr.de/tv/diestory/sendungsbeitraege/2011/1017/gewalt.jsp" +} + +@Electronic{ tkUmfrage, + title = "Cybermobbing - Gewalt unter Jugendlichen (Forsa-Umfrage)", + author = "Forsa", + year = "2011", + month = jun, + url = "http://www.tk.de/tk/kinder-jugendliche-und-familie/cybermobbing/cybermobbing/343730", + urldate = {2012-02-02} +} + +@Electronic{ schauHin, + title = "Schau Hin! - Was deine Kinder machen.", + author = "c/o komm.passion GmbH", + month = dec, + year = "2011", + url = "http://schau-hin.info/" +} + +@Article{ Dooley2009, + title = "Cyberbullying Versus Face-to-Face Bullying. A Theoretical and Conceptual Review", + author = "Julian Dooley and Jacek Pyzalski and Donna Cross", + journal = "Journal of Psychology", + pages = "182--188", + volume = "217", + number = "4", + year = "2009" +} + +@Article{ psychSchool, + title = "The role of school psychologists in the assessment, prevention and intervention of cyberbullying", + author = "Terry Diamanduros and Elizabeth Downs and Stephen Jenkins", + journal = "Psychology in the Schools", + pages = "693--704", + volume = "45", + number = "8", + year = "2008" +} + +@Article{ preventingSchool, + title = "A Review of Schoolwide Preventative Programs and Strategies on Cyberbullying", + author = "Michael Couvillon and Vessela Ilieva", + journal = "Preventing School Failure: Alternative Education for Children \& Youth", + pages = "96--101", + volume = "55", + number = "2", + year = "2011" +} + +@techreport{ jim2013, + author = {{MPFS}}, + title = "JIM 2013. Jugend, Information, MultiMedia", + institution = {mpfs}, + year = 2013, + type = {Forschungsbericht}, + note = "Medienpädagogischer Forschungsverbund Südwest" +} + + +@techreport{ jim2013b, + author = {{MPFS}}, + title = "Jugendliche sind täglich drei Stunden im Netz", + subtitle = "Veröffentlichung der JIM-Studie 2013", + institution = {mpfs}, + year = "2013", + urldate = {2014-07-22}, + note = "Medienpädagogischer Forschungsverbund Südwest", + url = {http://www.mpfs.de/fileadmin/JIM-pdf13/PM5_JIM2013.pdf} +} + +@Collection{ fim2011, + title = "FIM 2011, Familie, Interaktion \& Medien, Untersuchung zur Kommunikation und Mediennutzung in Familien", + editor = {Medienp{\"a}dagogischer Forschungsverband S{\"u}dwest}, + month = feb, + year = "2012" +} + +@Proceedings{ keinEnde, + title = {(K)Ein ENde der Privatheit: Strategien zur Sensibilisierung junger Menschen beim Umgang mit pers{\"o}nlichen Daten im Internet.}, + publisher = {RabenSt{\"u}ck Verlag}, + year = "2009", + isbn = "978-3-935607-36-0", + organization = "Fachtagung Das Ende der Privatheit <2009, Remscheid>" +} + +@Book{ Dambach2011, + title = {Wenn Sch{\"u}ler im Internet mobben}, + author = "Karl Dambach", + publisher = {Ernst Reinhardt Verlag M{\"u}nchen Basel}, + year = "2011", + isbn = "978-3-479-02209-0" +} + +@Book{ Jannan2010, + title = "Das Anti-Mobbing-Buch", + author = "Mustafa Jannan", + publisher = "Beltz", + year = "2010", + edition = "3", + isbn = "978-3-407-62678-3" +} + +@Electronic{ wikiSozialesNetzwerk, + title = "Soziales Netzwerk", + howpublished = "27.01.2012", + month = jan, + year = "2012", + url = "http://de.wikipedia.org/wiki/Soziales_Netzwerk_(Internet)" +} + +@Electronic{ wikiProtokolle, + title = "Internetprotokollfamilie", + howpublished = "01.02.2012", + month = feb, + year = "2012", + url = "http://de.wikipedia.org/wiki/Internetprotokollfamilie" +} + +@Article{ patalongSpiegel, + title = "Cyber-Mobbing: Tod eines Teenagers", + author = "Frank Patalong", + howpublished = "18.11.2007", + journal = "Spiegel Online", + month = nov, + year = "2007", + url = "http://www.spiegel.de/netzwelt/web/0,1518,518042,00.html" +} + +@Book{ Leymann1994, + title = "Mobbing : Psychoterror am Arbeitsplatz und wie man sich dagegen wehren kann", + author = "Heinz Leymann", + publisher = "Reinbek bei Hamburg: Rowohlt-Taschenbuch", + year = "1994", + isbn = "3-499-13351-2" +} + +@Book{ Humbert2006, + title = "Didaktik der Informatik: mit praxiserprobtem Unterrichtsmaterial", + author = "Ludger Humbert", + publisher = "Teubner", + edition = "2. Auflage", + year = "2006", + isbn = "3--8351--0112--9" +} + +@Book{ Riebel2008, + title = {Spotten, Schimpfen, Schlagen ... Gewalt unter Sch{\"u}lern - Bullying und Cyberbullying}, + series = "Psychologie", + author = "Julia Riebel", + editor = {Prof. Dr. Reinhold S. J{\"a}ger and Dr. Roland Arbinger}, + publisher = {Verlag Empirische P{\"a}dagogik}, + year = "2008", + isbn = "978-3-937333-79-3", + number = "59" +} + +@Book{ Seydl2007, + title = {Mobbing im Spannungsverh{\"a}ltnis sozialer Normen - Eine dissonanztheoretische Betrachtung mit Untersuchung}, + series = "Reihe B: Wirtschaft und Sozialwissenschaften", + author = "Christoph Seydl", + publisher = {Trauner Verlag Universit{\"a}t}, + year = "2007", + isbn = "978-3-85499-312-4" +} + +@Article{ Fawzi2009:SuB, + title = "Cyber-Mobbing unter Jugendlichen", + author = "Nayla Fawzi", + journal = "Sozialwissenschaften und Berufspraxis", + pages = "224--239", + volume = "32", + number = "2", + year = "2009" +} + +@Book{ Hamacher2010, + title = "Tatort Schule - Gewalt an Schulen", + author = "Sylvia Hamacher", + publisher = "treditiom GmbH", + year = "2010", + isbn = "978-3-86850-635-8" +} + +@Electronic{ ifak, + title = "Mobbing Studie der IFAK", + author = "Marco Nink", + howpublished = "09.02.2012", + month = feb, + year = "2012", + url = "http://wiki.mobbing-gegner.de/Mobbing/Studien/Mobbing_Studie_der_IFAK" +} + +@Booklet{ medienkompetenzNRW, + title = {Im Blickpunkt: Das Web f{\"u}r Kinder}, + author = "Andrea Beckers", + month = dec, + year = "2011", + url = "http://www.grimme-institut.de/imblickpunkt" +} + +@Booklet{ klicksafeCM, + title = "Cyber-Mobbing, Cyberbullying und was man dagegen tun kann", + author = "John Hendrik Weitzmann", + month = oct, + year = "2010" +} + +@Booklet{ klicksafeBooklet, + title = "Spielregeln im Internet - Durchblicken im Rechte-Dschungel", + author = "John Hendrik Weitzmann and Valie Djordjeciv and Ilja Braun and Dr. Till Kreutzer and Philipp Otto and Matthias Spielkamp", + month = oct, + year = "2010" +} + +@Book{ stein, + title = {Wie k{\"o}nnen wir Kindern Werte vermitteln? Werteerziehung in Familie und Schule}, + author = "Margit Stein", + publisher = "Reinhardt", + month = sep, + year = "2008", + isbn = "3497020400" +} + +@Electronic{ digitaleLuege, + title = {Die gr{\"o}{\ss}te digitale L{\"u}ge}, + author = "Sascha Lobo", + howpublished = "15.03.2012", + month = mar, + year = "2012", + url = "http://www.spiegel.de/netzwelt/web/0,1518,820864,00.html" +} + +@Article{ tangen, + title = "Cyberbullying Prevention: One Primary School’s Approach ", + author = "Donna Tangen and Marilyn Campbell", + journal = "Australian Journal of Guidance and Counselling ", + volume = "20", + number = "2", + month = dec, + year = "2010" +} + +@Article{ grigg, + title = "Cyber-Aggression: Definition and Concept of Cyberbullying", + author = "Dorothy Wunmi Grigg", + journal = "Australian Journal of Guidance and Counselling ", + volume = "20", + number = "2", + month = dec, + year = "2010" +} + +@Electronic{ kuhn, + title = "{\glqq}Top oder Flop{\grqq}-Spiel unter Mobbing-Verdacht", + author = "Johannes Kuhn", + howpublished = "03.05.2012", + journal = {S{\"u}ddeutsche.de}, + month = dec, + year = "2011", + url = "http://www.sueddeutsche.de/digital/schuelervz-top-oder-flop-spiel-unter-mobbing-verdacht-1.1230072" +} + +@Electronic{ gew, + title = "Cyber-Mobbing-Studie der GEW", + author = "Gundula Kienel-Hemicker", + month = nov, + year = "2010", + url = "http://www.gew.de/Cyber-Mobbing-Studie_der_GEW.html" +} + +@Electronic{ heiseCSU, + title = "Sachverstand beachten oder widerlegen", + author = "Thomas Pany", + month = mar, + year = "2012", + url = "http://www.heise.de/tp/artikel/36/36594/1.html" +} + +@Electronic{ schulordnungGymbay, + title = "Unsere Schulordnung", + author = "Detlef Appenzeller", + month = sep, + year = "2011", + url = "http://www.gymbay.de/meinbay/formulare/schulordnunggymbay.pdf" +} + +@Electronic{ schulordnungRodenkirchen, + title = "Schulordnung", + author = "Almuth Roselieb", + month = sep, + year = "2010", + url = "http://www.gymnasium-rodenkirchen.de/schulordnung.html" +} + +@Manual{ bildungsstandardsInformatik, + title = {Grunds{\"a}tze und Standards f{\"u}r die Informatik in der Schule}, + author = "Hermann Puhlmann", + organization = {Gesellschaft f{\"u}r Informatik e.~V.}, + month = jan, + year = "2008" +} + +@InCollection{ schindler, + title = "Das Ende der Privatheit als (gesellschafts-) politisches Problem", + booktitle = {(K)Ein Ende der Privatheit: Strategien zur Sensibilisierung junger Menscheen beim Umgang mit pers{\"o}nlichen Daten im Internet.}, + author = "Wolfgang Schindler", + publisher = {RabenSt{\"u}ck Verlag}, + year = "2009" +} + +@InCollection{ brueggen, + title = {Auf den Online-Spuren von Jugendlichen und ihren Vorstellungen von Privatsph{\"a}re}, + booktitle = {(K)Ein Ende der Privatheit: Strategien zur Sensibilisierung junger Menscheen beim Umgang mit pers{\"o}nlichen Daten im Internet.}, + author = {Niels Br{\"u}ggen}, + publisher = {RabenSt{\"u}ck Verlag}, + year = "2009" +} + +@Article{ csuPositionspapier, + title = "In Freiheit und Fairness, 2. Positionspapier", + author = {Dorothee B{\"a}r}, + month = mar, + year = "2012" +} + +@inproceedings{ Humbert2011, + author = {Humbert, Ludger}, + title = {{Sch{\"u}lerinnen konstruieren informatische Bildung}}, + booktitle = {{Informatik und Schule -- Informatik f{\"u}r Bildung und Beruf -- INFOS~2011 -- 14.~GI-Fachtagung 12.--15.~September~2011, M{\"u}nster}}, + pages = {197--206}, + year = {2011}, + month = {September}, + url={http://www.ham.nw.schule.de/pub/bscw.cgi/d2405703/Preprint\_Humbert-INFOS2011.pdf}, + lastchecked={11.~M"arz~2012}, +} + +@InCollection{ pfetsch, + title = "Banning solves the problem!? Effects of banning mobile phone use in schools on cyberbullying", + author = {Jan Pfetsch and George Steffgen and Andreas K{\"o}nig}, + booktitle = "\enquote{Workshop Aggression} 2009", + month = mar, + year = "2012", + url = "http://www.workshop-aggression.de/2009/de/Schedule_Workshop2009.pdf" +} + +@thesis{ Hilbig2012, + title = {Fachdidaktische Aspekte zum Internet als Mobbinghandlungsort f{\"u}r Mobbing aus informatischer und sozialer Sicht}, + author = "Andr{\'e} Hilbig", + school = {Bergische Universit{\"a}t Wuppertal}, + month = jun, + year = "2012", + url = "http://ham.nw.schule.de/pub/bscw.cgi/d3036013/Bachelor-Arbeit%3a%20Internetmobbing.pdf", + urldate = {2014-04-28} +} + +