← All templates

Kiel University computer science thesis (KCSS, ifiseries)

The Department of Computer Science's own ifiseries style for the Kiel Computer Science Series, with its bachelor's and master's thesis template (title page, declaration, abstract, chapters and biblatex bibliography); the same kit holds the KCSS dissertation template (template.tex).

Create an account to use this
Category
Thesis
Document class
book (book.cls) — ships with TeX Live
Workflow
Thesis / dissertation — submissions and revision rounds
Author
Kiel University, Department of Computer Science (Kiel Computer Science Series)
Source
Kiel University, Department of Computer Science (Kiel Computer Science Series)
Licence
book.cls: LaTeX Project Public License (installed with TeX). The sample text is Kiel University, Department of Computer Science (Kiel Computer Science Series)'s, provided for authors preparing a submission.

These are the publisher’s own files. This project starts from Kiel University, Department of Computer Science (Kiel Computer Science Series)’s package for this publication — their manuscript, their book.cls, their bibliography style — so what compiles here is what they would have given you.

Kiel University, Department of Computer Science (Kiel Computer Science Series) serves this exact file to Kiel University and 2 other titles. Check Kiel University, Department of Computer Science (Kiel Computer Science Series)’s author pages for the current instructions.

Where this differs from the publisher’s download.

  • Note: Bibliography uses biblatex with Biber. Set language=german in the \usepackage options for a German thesis. For a PhD dissertation in the series, compile template.tex instead (it adds the KCSS metadata page and reviewer page).

What you get

  • LogoIfI_CAU.pdf · 15 KB
  • about-this-series.tex · 1 KB
  • declaration-of-consent.tex · 3 KB
  • einverstaendniserklaerung.tex · 3 KB
  • examples/LogoIfI_CAU.pdf · 15 KB
  • examples/cover-example-1.tex · 7 KB
  • examples/cover-example-2.tex · 4 KB
  • examples/haf-isbn.png · 48 KB
  • examples/ifiseries.sty · 44 KB
  • examples/kcssCover.sty · 14 KB
  • examples/localTheorem.sty · 5 KB
  • examples/no_photo.tex · 156 B
  • ifiseries.sty · 44 KB
  • kcssCover.sty · 14 KB
  • localTheorem.sty · 5 KB
  • template-bachelormaster.bib · 395 B
  • template-bachelormaster.tex — the file that is compiled · 1 KB
  • template.bib · 17 B
  • template.metapage.bib · 404 B
  • template.tex · 2 KB

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Source

LogoIfI_CAU.pdf — binary, 15 KB

about-this-series.tex · 1 KB
\selectlanguage{english}
\chapter*{About this Series}

The Kiel Computer Science Series (KCSS) covers dissertations,
habilitation theses, lecture notes, textbooks, surveys, collections,
handbooks, \etc written at the Department of Computer Science at
Kiel University.  It was initiated in 2011 to
support authors in the dissemination of their work in electronic and
printed form, without restricting their rights to their work. The
series provides a unified appearance and aims at high-quality
typography.  The KCSS is an open access series; all series titles are
electronically available free of charge at the department's website.
In addition, authors are encouraged to make printed copies available
at a reasonable price, typically with a print-on-demand service.
% set by the respective author(s).
%The Series was initiated in the year 2011.
%It provides a unified appearance and aims at high-quality typography.
\par
Please visit \url{http://www.informatik.uni-kiel.de/kcss} for more information,
for instructions how to publish in the KCSS,
and for access to all existing publications.
declaration-of-consent.tex · 3 KB
\documentclass[11pt,oneside]{article}
\usepackage[compact=,paper=a4paper,largepaper=true,figure=,halfparskip,marginfrac=12]{ifiseries}

\begin{document}
\thispagestyle{empty}
\enlargethispage{2\baselineskip}
\selectlanguage{english}
\begin{center}
  \Large
  \textbf{Declaration of Consent}
  \normalsize
\end{center}
\medskip
\begin{tabular}[t]{@{}p{.5\textwidth}@{}p{.5\textwidth}@{}}
  Last Name: & First Name: \\[\baselineskip]
  Research Group (if applicable): \\[\baselineskip]
  Title of Work: \\[2\baselineskip]
  Author(s) of the Work: \\[\baselineskip]
  KCSS Number and Version: & Type (Diss.\@, Habil.\@, Other):
\end{tabular}
\par\bigskip
%
% begin UB
%
Hereby I irrevocably declare my consent
that the Department of Computer Science, Kiel University, referred to as \enquote{Department} in the following,
is allowed to make electronic copies of the work specified above
(including its book cover, all meta data, and the abstract),
referred to as \enquote{Work} in the following;
to make such copies available
(using also the meta data and the abstract, if available)
without charge
within the \enquote{Kiel Computer Science Series} (KCSS)
on the servers of the Department;
to convert the Work into other formats;
and to make all bibliographic data and the abstract
available to other data bases.
The Work will be electronically archived and published on the Internet
as long as this is technically possible at a reasonable cost.
Thus I grant the Department
the non-exclusive right to reproduce the Work on public data networks
and to transfer the Work on individual requests without charge.
\par
%
% end UB
%
Moreover I declare my consent
that users who download electronic copies of the Work
or who obtain electronic copies via other means
are allowed to create printed copies for their own use,
including the book cover.
The right and the possibility to do so is mentioned
on the websites of the Department.
\par
%
% begin UB
%
I declare that electronic publication of the Work by the Department
and production of printed copies by the users for their own use
will not infringe on the rights of other parties,
and that the Department and the users will be protected from any claims made by other parties.
%
% end UB
%
In particular, I declare that also in the future,
no rights of other parties will be infringed on
and that in particular the Work can be made available for download free of charge
by the Department also in the future,
even if the Work or parts of it are commercially used by me or others.
%
%
%
\par\medskip\small
Severability Clause:
If any term or provision of this declaration should be invalid or unenforceable
or should become invalid or unenforceable after signing the declaration,
the remaining terms and provisions of this declaration will remain in effect.
\normalsize\par\bigskip\bigskip\medskip
\begin{tabular}{@{}p{\textwidth/2}@{}p{\textwidth/2}@{}}
  Kiel, \rule{10em}{.3pt} & \hfill\rule{12em}{.3pt} \\
  & \hfill\begin{minipage}{12em}\centering(Signature)\end{minipage}
\end{tabular}
\end{document}
einverstaendniserklaerung.tex · 3 KB
\documentclass[11pt,oneside]{article}
\usepackage[compact=,paper=a4paper,largepaper=true,figure=,bibliographystyle=alpha,halfparskip,marginfrac=12]{ifiseries}

\begin{document}
\thispagestyle{empty}
\enlargethispage{2\baselineskip}
\selectlanguage{ngerman}
\begin{center}
  \Large
  \textbf{Einverständniserklärung}
  \normalsize
\end{center}
\medskip
\begin{tabular}[t]{@{}p{.5\textwidth}@{}p{.5\textwidth}@{}}
  Name: & Vorname: \\[\baselineskip]
  Arbeitsgruppe: \\[\baselineskip]
  Titel der Arbeit: \\[2\baselineskip]
  Autor(en) der Arbeit: \\[\baselineskip]
  KCSS-Nummer und Version: & Typ (Diss.\@, Habil.\@, Anderes):
\end{tabular}
\par\bigskip
%
% begin UB
%
Hiermit erkläre ich unwiderruflich mein Einverständnis,
dass das Institut für Informatik der CAU Kiel
elektronische Kopien der oben bezeichneten Arbeit
(inklusive der zugehörigen Buchdeckelgestaltung, der Metadaten und des Abstract)
anfertigt und diese unter Verwendung der Metadaten und ggf.~des Abstract
im Rahmen der \enquote{Kiel Computer Science Series} (KCSS)
auf den Servern des Institutes
unentgeltlich für die Nutzung bereitstellt,
ggf.~in andere Formate konvertiert
und die bibliografischen Daten und ggf.~das Abstract anderen Datenbanken zugänglich macht.
Die Arbeit wird elektronisch archiviert und im Internet publiziert,
solange dies technisch und mit vertretbarem Aufwand möglich ist.
Ich räume somit dem Institut für Informatik
das einfache Nutzungsrecht ein,
die Arbeit elektronisch in Datennetzen öffentlich wiederzugeben
und auf Einzelabruf unentgeltlich zu übertragen.
\par
%
% end UB
%
Ich erkläre mich ferner damit einverstanden,
dass Nutzer, welche sich eine elektronische Kopie der Arbeit herunterladen
oder auf anderem Wege erhalten,
davon (inklusive der Buchdeckelgestaltung) für den eigenen Gebrauch Drucke anfertigen
und dass auf dieses Recht und diese Möglichkeit
auf den Webseiten des Institutes hingewiesen wird.
\par
%
% begin UB
%
Ich versichere, dass mit der elektronischen Publikation der Arbeit
durch das Institut für Informatik
und durch die Anfertigung von Drucken zum eigenen Gebrauch durch die Nutzer
keine Rechte Dritter verletzt werden und dass das Institut
bzw.~die Nutzer von etwaigen Rechten Dritter freigestellt werden.
%
% end UB
%
Insbesondere versichere ich,
dass dadurch auch in Zukunft keine Rechte Dritter verletzt werden
und insbesondere die Arbeit weiterhin zum unentgeltlichen Download
vom Institut bereitgestellt werden darf,
auch im Falle einer kommerziellen Vermarktung der Arbeit
oder Teilen der Arbeit durch mich oder Andere.
%
%
%
\par\medskip\small
Salvatorische Klausel:
Sollten einzelne Bestimmungen dieser Einverständniserklärung
unwirksam oder undurchführbar sein
oder nach Vertragsschluss unwirksam oder undurchführbar werden,
bleibt davon die Wirksamkeit der Einverständniserklärung im Übrigen unberührt.
\normalsize\par\bigskip\bigskip\medskip
\begin{tabular}{@{}p{\textwidth/2}@{}p{\textwidth/2}@{}}
  Kiel, den \rule{10em}{.3pt} & \hfill\rule{12em}{.3pt} \\
  & \hfill\begin{minipage}{12em}\centering(Unterschrift)\end{minipage}
\end{tabular}
\end{document}

examples/LogoIfI_CAU.pdf — binary, 15 KB

examples/cover-example-1.tex · 7 KB
\documentclass[12pt]{standalone}
\usepackage[pagelayout=false,biblatex=false,runningtitle=false]{ifiseries}
\usepackage[%
%
% Help lines. Switch all off for production.
%
showlayoutlines=true,%
showsafetylines=true,%
showbleedlines=true,%
%germantext=true,%
twolineresearchgroup=true,%
%
% Lengths to be changed by the author.
%
%
%% hardcover
coverwidth=16cm,%
coverheight=22.6cm,%
spinewidth=2.56cm,%
bleed=1.7cm,%
frontgraphicxshift=-0.43cm,%
frontgraphicyshift=-3cm,%
spinecorr=0cm
%
%softcover
%coverwidth=15.5cm,%
%coverheight=22.0cm,%
%spinewidth=2.06cm,%
%bleed=0.5cm,%
%frontgraphicxshift=-0.68cm,%
%frontgraphicyshift=-3cm,%
]{kcssCover}

%\renewcommand{\baselinestretch}{5}
\renewcommand{\spinetitle}{{\Large\textbf{On the Pragmatics of Graphical Modeling}}}
\renewcommand{\fronttitle}{{\fontsize{34}{60}\selectfont \textbf{On the Pragmatics of\\[3mm]Graphical Modeling}}}
\renewcommand{\frontauthor}{{\LARGE Hauke A.\,L. Fuhrmann}}
\renewcommand{\spineauthor}{{\Large Hauke A.\,L. Fuhrmann}}
\renewcommand{\kcssnumber}{2011/1}
\renewcommand{\isbn}{\includegraphics[height=2.4cm]{haf-isbn.png}}
\renewcommand{\researchgroup}{Real-Time and \\ Embedded Systems Group}
\renewcommand{\backtext}{%
\parindent8mm \parskip0mm
\noindent%
Graphical models help to understand complex systems.
However, with the user interaction paradigms established today,
activities such as creating, maintaining or browsing graphical models can be
very tedious.
%Valuable engineering time is wasted with archaic activities such
%as manual layout of nodes and edges.
This thesis presents an
approach to enhance productivity by focusing on the pragmatics of model-based
design.
\par
The contribution includes an interpretation of the notion of pragmatics,
orthogonal to syntax and semantics in Model-Driven Engineering (MDE). A
proposal on pragmatics-aware modeling is given, employing
sophisticated automated layout algorithms
to close the gap between MDE and graph drawing theory. Thus, a view management logic
presents customized views on models.
\par
These concepts get illustrated with the open source Kiel Integrated Environment
for Layout Eclipse Rich Client (KIELER) with multiple
applications including editing and simulation and shows how view management
helps to tame complexity.
\par\medskip%
\begin{wrapfigure}[9]{l}{2.35cm}
  %\vspace{-\baselineskip}
 % \vspace{1ex}
\includegraphics[width=2.35cm]{no_photo}
\end{wrapfigure}%
\color{white}%
\noindent
Hauke A.\,L. Fuhrmann studied Computer Science at Kiel University
until 2005. In an EU Framework
Programme 6 research project in the aerospace domain he worked with and experienced the
limitations in usability of state-of-the practice graphical modeling tooling. This emerged the
enthusiasm for the topic of pragmatics as discussed in this dissertation.
Since 2011 he applies modeling in the railway domain.
\par%
}
\renewcommand{\frontgraphic}{%
\definecolor{techfakblue}{RGB}{0,39,118}
\definecolor{main}      {rgb}{0.6, 0.7686, 1}
\definecolor{semantics} {rgb}{0.2, 0.4, 0.8}
\definecolor{syntax}    {rgb}{0.35, 0.45, 0.65}
%\definecolor{pragmatics}{rgb}{0  , 0.121, 0.6}
\definecolor{pragmatics}{rgb}{0.1 , 0.3, 0.5}
%\definecolor{pragmatics}{cmyk}{1.0, 0.8, 0.0, 0.15}

\tikzstyle{syntax} = [concept]
\tikzstyle{semantics} = [concept]
\tikzstyle{pragmatics} = [concept]
\tikzstyle{view} = [concept]
\begin{tikzpicture}[scale=0.77, transform shape]%[scale=0.8, transform shape]
\sf
\path
[root concept/.append style={concept color=main, text=black},
level 1 concept/.append style={sibling angle=90,level distance=10em, text=white},
level 2 concept/.append style={sibling angle=60,level distance=7em},
level 3 concept/.append style={sibling angle=40,level distance=5em},
level 4 concept/.append style={sibling angle=40,level distance=5em},
mindmap, every annotation/.style={fill=red!20}]
node[concept, text width=7em, minimum size=7em]{\hspace*{-1em}Semiotics}[clockwise from=0]
child[concept color=pragmatics]{
node[concept] (pragmatics){Pragmatics} [clockwise from=30] child[pragmatics] { node[concept] (views){Dynamic Views} [clockwise from=120]
            child{ node[concept, text width=2.5em] (layout) {Automatic \mbox{Layout}}[counterclockwise from=90]
              child { node[concept] (meta){Meta Layout}}
              child { node[concept, text width=2.1em] (layered){Layered}}
              child { node[concept] (dataflow){Data Flow}}
            }
            child[grow=-60] { node[concept, text width=3em](viewmanagement) {View \mbox{Management}}[clockwise from=40]
                child[view]{node[concept, text width=2.4em] (creation) {Model \mbox{Creation}}[counterclockwise from=5]
                    child { node[concept, text width=2.1em] (ksbase){Structure Based \mbox{Editing}}}
                    child { node[concept, text width=2.1em] (modify){Modi\-fication}}
                    child { node[concept, text width=2.2em] (synthesis){Synthesis}[counterclockwise from=20]
                        child { node[concept, text width=2em] (textual){Textual \mbox{Editing}}}
                        child { node[concept, text width=2.1em] {Scalable \mbox{Models}}}
                        child { node[concept, text width=2em] {Pattern-Based}}
                        child { node[concept, text width=2em] {Product Lines}}
                    }
                }
                child[view, grow=-90,level distance=4.5em] {node[concept]{Visuali\-zation}[clockwise from=30]
                    %child { node[concept] (kivi) {Model Visuali\-zation}}
                    child { node[concept] (multi) {Multi View}}
                    child { node[concept, text width=2.1em] (kivik) {Compare}}
                    child { node[concept] (dual) {Dual Model}}
                    child { node[concept, text width=2.3em] (simu) {Dynamic \mbox{Behavior}}}
                    child { node[concept] (kev) {Environ\-ment Visual\-ization}}
                    child { node[concept] {Label Manage\-ment}}
                    child { node[concept] (focus) {Focus \& \mbox{Context}}}
                }
            }
        }
    }
    child[concept color=semantics, grow=150]{ node[concept] {Semantics}[counterclockwise from=120]
    child[semantics] { node[concept] (kiem) {Execution Manager}}
        child[semantics] { node[concept] (simulation) {Simulation} [counterclockwise from=-90]
            child { node[concept] (klepto) {Ptolemy (KlePto)}}
        }
    }
    child[concept color=syntax, grow=210] { node[concept] {Syntax}[counterclockwise from=180]
        child[syntax] { node[concept] (synccharts) {SyncCharts}}
        child[syntax] { node[concept] (actor) {Actor Oriented}}
        child[syntax] { node[concept] (uml) {UML}}
    }
    ;
\end{tikzpicture}
}

\begin{document}
\makecover
\end{document}
examples/cover-example-2.tex · 4 KB
\documentclass[12pt]{standalone}
\usepackage[pagelayout=false,biblatex=false,runningtitle=false]{ifiseries}
\usepackage[%
%
% Help lines. Switch all off for production.
%
showlayoutlines=false,%
showsafetylines=false,%
showbleedlines=true,%
germantext=false,%
%
% Lengths to be changed by the author.
% Check carefully against the requirements of the printing service!
%
% coverwidth=15.56cm,%
% coverheight=23.50cm,%
% bleed=1.905cm,%
coverwidth=15.24cm,%
coverheight=22.86cm,%
bleed=0.23cm,%
smallercoverwidth=15.24cm,%
smallercoverheight=22.86cm,%
spinewidth=2cm,%
spinecorr=2mm,%
safety=5mm,%
frontgraphicxshift=0cm,%
frontgraphicyshift=-3cm,%
]{kcssCover}

\newcommand{\term}[1]{\emph{#1}}

\renewcommand{\spinetitle}{\Large\textbf{Networks and Distributed Operation}}
\renewcommand{\fronttitle}{\Large\textbf{Networks and Distributed Operation \\[.5em]
The Price of Anarchy \\[.1em]
in Non-atomic Routing \\[.1em]
and Network Formation}}
\renewcommand{\frontauthor}{\Large Lasse Kliemann}
\renewcommand{\spineauthor}{\Large Lasse Kliemann}
\renewcommand{\kcssnumber}{201?/?}
\renewcommand{\researchgroup}{Discrete Optimization Group}
\renewcommand{\frontgraphic}{%
\begin{tikzpicture}
  \tikzset{player/.style={circle,fill=black!20,inner sep=1pt,minimum size=25pt}}
  \tikzset{every picture/.style={>=stealth',line width=.8pt}}
  \tikzset{every node/.style=player}
  \tikzset{node distance=1.1cm}
  \node [xshift=-9.61cm,yshift=-16.5cm] at (current page.north east) (u0) {$u_0$};
  \node (u1) [above right = 2.80cm of u0] {$u_1$};
  \node (u11) [below = of u1] { };
  \node (u12) [right = of u1] { };
  \node (u13) [above = of u1] { };
  \node (u14) [left = of u1] { };
  \node (u2) [left = 2.20cm of u0] {$u_2$};
  \node (u21) [below = of u2] { };
  \node (u22) [left = of u2] { };
  \node (u23) [above = of u2] { };
  \node (u3) [below = 2.20cm of u0] {$u_3$};
  \node (u31) [below right = of u3] { };
  \node (u32) [below left = of u3] { };
  \path (u0) edge[dashed] (u1)
  (u0) edge         (u2)
  (u0) edge         (u3);
  \path (u1) edge (u11)
  (u1) edge (u12)
  (u1) edge (u13)
  (u1) edge (u14);
  \path (u2) edge (u21)
  (u2) edge (u22)
  (u2) edge (u23);
  \path (u3) edge (u31)
  (u3) edge (u32);
\end{tikzpicture}%
}
\renewcommand{\backtext}{%
What is the worst overall degradation due to the absence of central authority
or a lack of cooperation
when individuals (called \term{players}) use or form a network?
\enquote{Distributed operation} is our positive notion of
\enquote{absence of central authority} and \enquote{lack of cooperation}.
\par
All scenarios studied in this thesis have in common
that players
have to allocate resources
in order to perform certain tasks,
and that each possible configuration can be evaluated
from the perspective of each player (\term{individual cost})
and from a global perspective (\term{social cost}).
\term{Equilibria} are configurations in which players
do not have or do not see a way to improve their individual cost.
The \term{price of anarchy} is the social cost of a worst-case equilibrium
divided by that of a configuration with minimum social cost.
\par
In Part~I,
a network is given and players use it for routing.
The players' cost functions express the delay experienced
due to congested links.
In Part~II,
the network itself is formed in a distributed manner.
Building links on the one hand incurs a cost
but on the other hand also has a positive effect
since it improves connectivity.
Both aspects are incorporated into the players' cost functions.
\par\medskip%
Lasse Kliemann, born in M\"unster, Germany,
studied mathematics with subsidiary subject computer science
at Kiel University.
Since 2003, he is engaged in research activities at the Department of Computer Science.
He developed a particular interest in game theory, algorithm engineering,
and probabilistic methods.}

\begin{document}
\makecover
\end{document}

examples/haf-isbn.png — binary, 48 KB

examples/ifiseries.sty · 44 KB

44 KB — too long to show here. It arrives with the project.

examples/kcssCover.sty · 14 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{kcssCover}
\RequirePackage{kvoptions}
\DeclareBoolOption[false]{showlayoutlines}
\DeclareBoolOption[false]{showsafetylines}
\DeclareBoolOption[true]{showbleedlines}
\DeclareBoolOption[false]{germantext}
\DeclareBoolOption[false]{twolineresearchgroup}
\DeclareStringOption[15.24cm]{coverwidth} % aka trim area
\DeclareStringOption[22.86cm]{coverheight}
\DeclareStringOption[15.24cm]{smallercoverwidth}
\DeclareStringOption[22.86cm]{smallercoverheight}
\DeclareStringOption[1.5cm]{spinewidth}
\DeclareStringOption[0mm]{spinecorr}
\DeclareStringOption[3.2mm]{bleed}
\DeclareStringOption[6.35mm]{safety}
\DeclareStringOption[0cm]{frontgraphicxshift}
\DeclareStringOption[-2cm]{frontgraphicyshift}

\DeclareStringOption[1.0cm]{margintop}
\DeclareStringOption[1.0cm]{marginright}
\DeclareStringOption[1.0cm]{marginbottom}
\DeclareStringOption[1.0cm]{marginleft}
\DeclareStringOption[0.5cm]{spineauthorsep}
\DeclareStringOption[1.0cm]{spineleftrightsep}
\DeclareStringOption[2mm]{spinepaddingtop}
\DeclareStringOption[5mm]{spinepaddingbottom}

\ProcessKeyvalOptions*

\RequirePackage{wrapfig}

\setlength{\parindent}{0pt} % just to make sure
\newlength{\coverwidth}
\newlength{\coverheight}
\newlength{\smallercoverwidth}
\newlength{\smallercoverheight}
\newlength{\bleed}
\newlength{\safety}
\newlength{\frontgraphicxshift}
\newlength{\frontgraphicyshift}
\newlength{\margintoporiginal}
\newlength{\margintop}
\newlength{\marginright}
\newlength{\marginbottom}
\newlength{\marginleft}
\newlength{\spinewidth}
\newlength{\spinecorr}
\newlength{\spineauthorsep}
\newlength{\spineleftrightsep}
\newlength{\spinepaddingtop}
\newlength{\spinepaddingbottom}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% The following commands usually have to be re-defined by the user.
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
% Text to be set by the author
%
\newcommand{\spinetitle}{\Large\textbf{My Fake Dissertation With a Very Long Title}}
\newcommand{\fronttitle}{\Huge\textbf{My Fake Dissertation \\[.5em] With a Very Long Title}}
\newcommand{\frontauthor}{\LARGE John Q. Postgraduate}
\newcommand{\spineauthor}{\Large John Q. Postgraduate}
\newcommand{\kcssnumber}{2011/1}
\newcommand{\kcssnumberspinefont}{}
\newcommand{\isbn}{}
\newcommand{\researchgroup}{Fake Research Group}
\newcommand{\backtext}{%
\noindent%
Please adjust the length of this text carefully
in order to fill an amount of space that makes the back of the book good-looking.
The blue area should stretch far enough to the bottom,
but should not get too close to the text about the Series,
outside of the blue~area.
\par
Here is some more text to fill the space.
This text should be about the contents of the book.
It should help the book catch the (potential) reader's interest.
A text as boring as this one will not be well suited.
\par
But we have to fill the space, so here is some more text.
As stated earlier, the length of this text should be adjusted
so that the blue area gives a nice impression.
This goal has almost been reached now.
Just one more line, and we are done.
Just one more line.
\par\medskip%
\begin{wrapfigure}[6]{l}{2.35cm}
  \vspace{-\baselineskip}
  \includegraphics[width=2.35cm]{no_photo}
\end{wrapfigure}%
\color{white}%
To the left is a photo of the author.
Here is enough place for a short CV.
The CV should be long enough to fill all the space
to the right of the photo.
The photo is optional, but a short CV should be here.
With or without photo.
Moreover, the text should cover all the space to the side of the photo
and may even stretch beyond the photo.
The number of lines right to the photo should be given
as an argument to the \lstinline|wrapfigure| environment, here 6.
\par%
}
\newcommand{\frontgraphic}{%
\begin{tikzpicture}
  \tikzset{every edge/.style={>=stealth',draw,->,thick}}
  \node [draw, rectangle] (a) {Here is enough space\ldots};
  \node [draw, circle, below right = of a] (b) {\ldots for the author\ldots};
  \node [draw, rectangle, below left = of b, decorate, decoration=zigzag, inner sep=10pt] (c) {\ldots to put a graphic.};
  \path (a) edge (b) (b) edge (c);
\end{tikzpicture}}

%
% Lengths to be set by the author
%
\setlength{\coverwidth}{\kcssCover@coverwidth} % aka trim area
\setlength{\coverheight}{\kcssCover@coverheight}
\setlength{\smallercoverwidth}{\kcssCover@smallercoverwidth}
\setlength{\smallercoverheight}{\kcssCover@smallercoverheight}
\setlength{\spinewidth}{\kcssCover@spinewidth}
\setlength{\spinecorr}{\kcssCover@spinecorr}
\setlength{\bleed}{\kcssCover@bleed}
\setlength{\safety}{\kcssCover@safety}
\setlength{\frontgraphicxshift}{\kcssCover@frontgraphicxshift}
\setlength{\frontgraphicyshift}{\kcssCover@frontgraphicyshift}

%
% Standard lengths, usually no changes necessary
%
\newlength{\smallerlargerwidthcorr}
\setlength{\smallerlargerwidthcorr}{(\coverwidth-\smallercoverwidth)/2}
\newlength{\smallerlargerheightcorr}
\setlength{\smallerlargerheightcorr}{(\coverheight-\smallercoverheight)/2}
\setlength{\margintoporiginal}{\kcssCover@margintop}
\setlength{\margintop}{\kcssCover@margintop+\smallerlargerheightcorr}
\setlength{\marginright}{\kcssCover@marginright+\smallerlargerwidthcorr}
\setlength{\marginbottom}{\kcssCover@marginbottom+\smallerlargerheightcorr}
\setlength{\marginleft}{\kcssCover@marginleft+\smallerlargerwidthcorr}
\setlength{\spineauthorsep}{\kcssCover@spineauthorsep}
\setlength{\spineleftrightsep}{\kcssCover@spineleftrightsep}
\setlength{\spinepaddingtop}{\kcssCover@spinepaddingtop}
\setlength{\spinepaddingbottom}{\kcssCover@spinepaddingbottom}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% Beyond this point, nothing should be re-defined by the user unless
%%% approved by the KCSS LaTeX officer.
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagestyle{empty}
%\definecolor{techfakblue}{cmyk}{1.0, 0.8, 0.0, 0.15}
%\definecolor{techfakblue}{RGB}{48,60,135}
\definecolor{techfakblue}{RGB}{0,39,118}
\newcommand{\setparspacing}{%
\setlength{\parskip}{.5\baselineskip plus .5\baselineskip}%
\setlength{\parindent}{0em}%
}

%
% Calculated lengths
%

% Size of whole document, including spine, bleed, etc.
\newlength{\documentwidth}
\newlength{\documentheight}
\setlength{\documentwidth}{2\coverwidth+2\bleed+\spinewidth+2\spinecorr}
\setlength{\documentheight}{\coverheight+2\bleed}

% Bleed plus margin
\newlength{\bleedplusmargintop}
\newlength{\bleedplusmarginright}
\newlength{\bleedplusmarginbottom}
\newlength{\bleedplusmarginleft}
\setlength{\bleedplusmargintop}{\bleed+\margintop}
\setlength{\bleedplusmarginright}{\bleed+\marginright}
\setlength{\bleedplusmarginbottom}{\bleed+\marginbottom}
\setlength{\bleedplusmarginleft}{\bleed+\marginleft}

% Spine
\newlength{\bleedplusspinepaddingbottom}
\setlength{\bleedplusspinepaddingbottom}{\bleed+\spinepaddingbottom}

% Upper blocks: white on blue
\newlength{\UpperLeftBlockWidth}
\newlength{\UpperLeftBlockTextMarginX}
\newlength{\UpperLeftBlockTextMarginY}
\newlength{\UpperLeftBlockTextWidth}
\newlength{\UpperLeftBlockTextOffset}
\setlength{\UpperLeftBlockWidth}{\coverwidth+\bleed-\spineleftrightsep}
\setlength{\UpperLeftBlockTextMarginX}{\marginleft}
\setlength{\UpperLeftBlockTextMarginY}{\margintoporiginal/2}
\setlength{\UpperLeftBlockTextWidth}{\UpperLeftBlockWidth-\bleed-2\UpperLeftBlockTextMarginX}
\setlength{\UpperLeftBlockTextOffset}{\UpperLeftBlockTextMarginX+\bleed}
\newlength{\UpperRightBlockWidth}
\newlength{\UpperRightBlockTextMarginX}
\newlength{\UpperRightBlockTextMarginY}
\newlength{\UpperRightBlockTextWidth}
\newlength{\UpperRightBlockTextOffset}
\setlength{\UpperRightBlockWidth}{\coverwidth+\bleed-\spineleftrightsep}
\setlength{\UpperRightBlockTextMarginX}{\marginright}
\setlength{\UpperRightBlockTextMarginY}{\margintoporiginal}
\setlength{\UpperRightBlockTextWidth}{\UpperRightBlockWidth-\bleed-2\UpperRightBlockTextMarginX}
\setlength{\UpperRightBlockTextOffset}{\UpperRightBlockTextMarginX}

% Lower blocks: blue on white
\newlength{\LowerLeftBlockWidth}
\setlength{\LowerLeftBlockWidth}{\coverwidth+\bleed-\spineleftrightsep-\bleed-2\UpperLeftBlockTextMarginX}

\newcommand{\makecover}{%
\begin{tikzpicture}
  \coordinate (lower left) at (0, 0);
  \coordinate (lower center) at (\documentwidth/2, 0);
  \coordinate (lower right) at (\documentwidth, 0);
  \coordinate (upper left) at (0, \documentheight);
  \coordinate (upper center) at (\documentwidth/2, \documentheight);
  \coordinate (upper right) at (\documentwidth, \documentheight);
  \coordinate (center) at (\documentwidth/2, \documentheight/2);
  \path (upper left) -- (upper right)
  (upper right) -- (lower right)
  (lower right) -- (lower left)
  (lower left) -- (upper left);

  %
  % Spine
  %
  \node [draw, rectangle, text width = \spinewidth, inner sep = 0mm, color = white, fill = techfakblue] at (lower center) [above] (spinebox) %
  {\begin{minipage}{\spinewidth}
  \centering \vspace*{\spinepaddingtop} \kcssnumberspinefont KCSS \\ \kcssnumber \vspace*{\bleedplusspinepaddingbottom}\vspace*{\smallerlargerheightcorr}
  \end{minipage}};
  %
  \draw
  let \p1 = ($(spinebox.north) - ([yshift = -\bleedplusmargintop - \spineauthorsep] upper center)$) in
  node [yshift = -\bleedplusmargintop, color = techfakblue, rotate = 270, mid right, inner sep = 0pt] at (upper center)
  {\pgfmathparse{veclen(\x1,\y1)}\begin{minipage}{\pgfmathresult pt}\spinetitle\hfill\spineauthor\end{minipage}};

  %
  % Upper left block
  %
  \node [yshift = -\bleedplusmargintop, below right, draw, rectangle, color = white, fill = techfakblue, text width = \UpperLeftBlockWidth, inner xsep = 0pt, inner ysep = \UpperLeftBlockTextMarginY, align = justify] at (upper left)
  {\hspace{\UpperLeftBlockTextOffset}%
  \begin{minipage}{\UpperLeftBlockTextWidth}
    \setparspacing\backtext%
  \end{minipage}};

  %
  % Upper right block
  %
  \node [yshift = -\bleedplusmargintop, below left, draw, rectangle, color = white, fill = techfakblue, text width = \UpperRightBlockWidth, inner xsep = 0pt, inner ysep = \UpperRightBlockTextMarginY, align = justify] at (upper right)
  {\hspace{\UpperRightBlockTextOffset}%
  \begin{minipage}{\UpperRightBlockTextWidth}
  \flushright\color{white}\fronttitle\par\normalsize\vspace{\UpperRightBlockTextMarginY}\frontauthor\par%
  \end{minipage}};

  %
  % Lower right block
  %
  \node [yshift = \bleedplusmarginbottom, above left, color = techfakblue, text width = \UpperRightBlockWidth, inner ysep = 0pt, inner xsep = \marginright + \bleed, align = right] at (lower right)
  {\Large \kcssnumber \\[.5em] Kiel Computer Science Series};

  %
  % Lower left block
  %
  \node [yshift = \bleedplusmarginbottom + 35mm, xshift = \bleed, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner ysep = 0pt, inner xsep = \UpperLeftBlockTextMarginX, align = justify] at (lower left)
  {\ifkcssCover@germantext
  \begin{minipage}{\textwidth}
  \selectlanguage{ngerman}%
  \smaller%
  Die Schriftenreihe \enquote{Kiel Computer Science Series} (KCSS) wird
  herausgegeben vom Institut für Informatik an der Technischen Fakult\"at
  der Christian-Albrechts-Universit\"at zu Kiel. Die Ausrichtung dieser
  Open-Access-Publikationsreihe umfasst Dissertationen, Habilitationsschriften
  und Lehrb\"ucher der Informatik.
  \end{minipage}
  \else
  \begin{minipage}{\textwidth}
  \smaller%
  The Kiel Computer Science Series (KCSS) is published by the Department
  of Computer Science of the Faculty of Engineering at Kiel University.
  The scope of this open access
  publication series includes dissertations, habilitation theses, and text
  books in computer science.
  \end{minipage}
  \fi};

  %
  % A node for the ISBN
  %
  \node [yshift = \bleedplusmarginbottom, xshift = \bleed+\UpperLeftBlockTextMarginX, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner sep = 0pt] at (lower left)
  {\smaller%
  \isbn\\
  ISSN 2193-6781 (print version)\\
  ISSN 2194-6639 (electronic version)\par};

  %
  % A node for the Ifi logo and research group
  %
  \node [yshift = \bleedplusmarginbottom, xshift = \bleed+\UpperLeftBlockTextMarginX, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner sep = 0pt, align = right] at (lower left)
  {\smaller%
  \includegraphics[width=4.5cm]{LogoIfI_CAU}\\%
  \ifkcssCover@twolineresearchgroup%
  \ifkcssCover@germantext\vspace{-1mm}\else\vspace{0mm}\fi%
  \else\ifkcssCover@germantext\vspace{1mm}\else\vspace{2mm}\fi%
  \fi%
  \researchgroup\par};

  %
  % Graphic on the front
  %
  \node [xshift = (\coverwidth+\spinewidth)/2 + \frontgraphicxshift + \spinecorr, yshift = \frontgraphicyshift] at (center) {\frontgraphic};

  %
  % Help lines
  %

  % Layout
  \ifkcssCover@showlayoutlines
  \draw (upper center) -- (lower center);
  \draw ([xshift=\spinewidth/2] upper center) -- ([xshift=\spinewidth/2] lower center);
  \draw ([xshift=-\spinewidth/2] upper center) -- ([xshift=-\spinewidth/2] lower center);
  \draw ([yshift=-\bleedplusmargintop] upper left) -- ([yshift=-\bleedplusmargintop] upper right);
  \draw ([xshift=-\bleedplusmarginright] upper right) -- ([xshift=-\bleedplusmarginright] lower right);
  \draw ([yshift=\bleedplusmarginbottom] lower left) -- ([yshift=\bleedplusmarginbottom] lower right);
  \draw ([xshift=\bleedplusmarginleft] upper left) -- ([xshift=\bleedplusmarginleft] lower left);
  \fi

  % Safety
  \ifkcssCover@showsafetylines
  \draw [color=green] ([yshift=-(\bleed+\safety)] upper left) -- ([yshift=-(\bleed+\safety)] upper right);
  \draw [color=green] ([xshift=-(\bleed+\safety)] upper right) -- ([xshift=-(\bleed+\safety)] lower right);
  \draw [color=green] ([yshift=(\bleed+\safety)] lower left) -- ([yshift=(\bleed+\safety)] lower right);
  \draw [color=green] ([xshift=(\bleed+\safety)] upper left) -- ([xshift=(\bleed+\safety)] lower left);
  \fi

  % Bleed
  \ifkcssCover@showbleedlines
  \draw [color=red] ([yshift=-\bleed] upper left) -- ([yshift=-\bleed] upper right);
  \draw [color=red] ([xshift=-\bleed] upper right) -- ([xshift=-\bleed] lower right);
  \draw [color=red] ([yshift=\bleed] lower left) -- ([yshift=\bleed] lower right);
  \draw [color=red] ([xshift=\bleed] upper left) -- ([xshift=\bleed] lower left);
  \fi

  %
\end{tikzpicture}
}
examples/localTheorem.sty · 5 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{localTheorem}
\RequirePackage{kvoptions}
\DeclareStringOption[english]{language}
\DeclareBoolOption[true]{numbersfirst}
\DeclareBoolOption[true]{dottednumbers}
\DeclareBoolOption[false]{likeequations}
\DeclareBoolOption[false]{simpleequations}
\DeclareStringOption[]{plainfont}
\DeclareStringOption[]{remarkfont}
\@ifclassloaded{book}
  {\DeclareStringOption[chapter]{within}}
  {\DeclareStringOption[section]{within}}
\@ifclassloaded{book}
  {\DeclareStringOption[chapter]{exerciseswithin}}
  {\DeclareStringOption[section]{exerciseswithin}}
\ProcessKeyvalOptions*

\RequirePackage{etoolbox}
\RequirePackage{xifthen}
\RequirePackage{expl3}

\@ifclassloaded{beamer}{}{\let\openbox\@undefined}

\newcommand*{\mainthmcounter}{proposition}
\newcommand*{\@newtheorem}[2]{%
    \newaliascnt{#1}{\mainthmcounter}
    \newtheorem{#1}[#1]{#2}
    \aliascntresetthe{#1}
    \expandafter\providecommand\expandafter*\expandafter{\csname #1autorefname\endcsname}{#2}
    \expandafter\newtheorem\expandafter*\expandafter{#1*}{#2}}

\RequirePackage{aliascnt}
\RequirePackage{amsthm}
\RequirePackage{amsmath}
\RequirePackage{expl3}

\iflocalTheorem@numbersfirst
  \swapnumbers
\fi

\iflocalTheorem@dottednumbers
  % cf. texlive/2011/texmf-dist/tex/latex/amscls/amsthm.sty
  \renewcommand\swappedhead[3]{%
  \thmnumber{#2}\@ifnotempty{#1}{.}{}%
    \thmname{\@ifnotempty{#2}{~}#1}%
    \thmnote{ {\the\thm@notefont(#3)}}}
\fi

\newcommand*{\my@numberwithin}[2]{\ifthenelse{\equal{#2}{document}}{}{\numberwithin{#1}{#2}}}

\theoremstyle{plain}
\iflocalTheorem@likeequations
  \my@numberwithin{equation}{\localTheorem@within}
  \renewcommand*{\mainthmcounter}{equation}
  \@newtheorem{proposition}{Proposition}
\else
  \newtheorem{proposition}{Proposition}
  \providecommand*{\propositionautorefname}{Proposition}
  \newtheorem*{proposition*}{Proposition}
  \my@numberwithin{proposition}{\localTheorem@within}
  \iflocalTheorem@simpleequations
  \else
    \my@numberwithin{equation}{\localTheorem@within}
  \fi
\fi

\ifthenelse{\lengthtest{\parskip > 0pt}}{%
\def\thm@space@setup{\thm@preskip=\parskip} %%% FIXME looks like an effective approach, perhaps now we can remove some gefrickel below?
\newtheoremstyle{para}%
{}%
{0pt}%
{}%
{}%
%{\itshape}%
{\bfseries}%
{.}%
{ }%
{}
\newtheoremstyle{plain}%
{}%
{0pt}%
{\csname\localTheorem@plainfont\endcsname}%
{}%
{\bfseries}%
{.}%
{ }%
{}
\newtheoremstyle{remark}%
{}%
{0pt}%
{\csname\localTheorem@remarkfont\endcsname}%
{}%
{\bfseries}% FIXME this is tailored for "para style"
{.}%
{ }%
{}
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep-3\p@\@plus6\p@\relax  % FIXME why do we need -3?
  \trivlist
  \item[\hskip\labelsep
        \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\vspace{2pt}\@endpefalse % FIXME the 2pt are also gefrickelt
}
}{ %%% parskip=0 %%%
\newtheoremstyle{para}%
{}%
{}%
{}%
{}%
%{\itshape}%
{\bfseries}%
{.}%
{ }%
{}
} %%% end parskip-sensitive stuff %%%

\ExplSyntaxOn
\str_case:onF{\localTheorem@language}{
{english} {
  \@newtheorem{lemma}{Lemma}
  \@newtheorem{theorem}{Theorem}
  \@newtheorem{conjecture}{Conjecture}
  \@newtheorem{corollary}{Corollary}
  \theoremstyle{definition}
  \@newtheorem{definition}{Definition}
  \@newtheorem{open}{Open~Problem}
  \@newtheorem{convention}{Convention}
  \@newtheorem{algo}{Algorithm}
  \theoremstyle{para}
  \@newtheorem{para}{}
  \renewcommand*{\paraautorefname}{Paragraph}
  \theoremstyle{remark}
  \@newtheorem{observation}{Observation}
  \@newtheorem{remark}{Remark}
  \@newtheorem{hint}{Hint}
  \@newtheorem{claim}{Claim}
  \@newtheorem{problem}{Problem}
  \@newtheorem{example}{Example}
  \theoremstyle{definition}
  \newtheorem{exercise}{}[\localTheorem@exerciseswithin]
  \providecommand*{\exerciseautorefname}{Exercise}
}
{german} {
  \@newtheorem{lemma}{Lemma}
  \@newtheorem{theorem}{Theorem}
  \@newtheorem{satz}{Satz}
  \@newtheorem{conjecture}{Vermutung}
  \@newtheorem{corollary}{Korollar}
  \theoremstyle{definition}
  \@newtheorem{definition}{Definition}
  \@newtheorem{open}{Offenes Problem}
  \@newtheorem{convention}{Konvention}
  \@newtheorem{algo}{Algorithmus}
  \theoremstyle{para}
  \@newtheorem{para}{}
  \renewcommand*{\paraautorefname}{Paragraf}
  \theoremstyle{remark}
  \@newtheorem{observation}{Beobachtung}
  \@newtheorem{remark}{Bemerkung}
  \@newtheorem{hint}{Hilfestellung}
  \@newtheorem{claim}{Behauptung}
  \@newtheorem{problem}{Problem}
  \@newtheorem{example}{Beispiel}
  \theoremstyle{definition}
  \newtheorem{exercise}{}[\localTheorem@exerciseswithin]
  \providecommand*{\exerciseautorefname}{Übung}
}
}{\PackageError{localTheorem}{Unknown~language:~\localTheorem@language}\@ehc}
\ExplSyntaxOff
examples/no_photo.tex · 156 B
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \node [draw, rectangle, scale=10] {?};
\end{tikzpicture}
\end{document}
ifiseries.sty · 44 KB

44 KB — too long to show here. It arrives with the project.

kcssCover.sty · 14 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{kcssCover}
\RequirePackage{kvoptions}
\DeclareBoolOption[false]{showlayoutlines}
\DeclareBoolOption[false]{showsafetylines}
\DeclareBoolOption[true]{showbleedlines}
\DeclareBoolOption[false]{germantext}
\DeclareBoolOption[false]{twolineresearchgroup}
\DeclareStringOption[15.24cm]{coverwidth} % aka trim area
\DeclareStringOption[22.86cm]{coverheight}
\DeclareStringOption[15.24cm]{smallercoverwidth}
\DeclareStringOption[22.86cm]{smallercoverheight}
\DeclareStringOption[1.5cm]{spinewidth}
\DeclareStringOption[0mm]{spinecorr}
\DeclareStringOption[3.2mm]{bleed}
\DeclareStringOption[6.35mm]{safety}
\DeclareStringOption[0cm]{frontgraphicxshift}
\DeclareStringOption[-2cm]{frontgraphicyshift}

\DeclareStringOption[1.0cm]{margintop}
\DeclareStringOption[1.0cm]{marginright}
\DeclareStringOption[1.0cm]{marginbottom}
\DeclareStringOption[1.0cm]{marginleft}
\DeclareStringOption[0.5cm]{spineauthorsep}
\DeclareStringOption[1.0cm]{spineleftrightsep}
\DeclareStringOption[2mm]{spinepaddingtop}
\DeclareStringOption[5mm]{spinepaddingbottom}

\ProcessKeyvalOptions*

\RequirePackage{wrapfig}

\setlength{\parindent}{0pt} % just to make sure
\newlength{\coverwidth}
\newlength{\coverheight}
\newlength{\smallercoverwidth}
\newlength{\smallercoverheight}
\newlength{\bleed}
\newlength{\safety}
\newlength{\frontgraphicxshift}
\newlength{\frontgraphicyshift}
\newlength{\margintoporiginal}
\newlength{\margintop}
\newlength{\marginright}
\newlength{\marginbottom}
\newlength{\marginleft}
\newlength{\spinewidth}
\newlength{\spinecorr}
\newlength{\spineauthorsep}
\newlength{\spineleftrightsep}
\newlength{\spinepaddingtop}
\newlength{\spinepaddingbottom}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% The following commands usually have to be re-defined by the user.
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
% Text to be set by the author
%
\newcommand{\spinetitle}{\Large\textbf{My Fake Dissertation With a Very Long Title}}
\newcommand{\fronttitle}{\Huge\textbf{My Fake Dissertation \\[.5em] With a Very Long Title}}
\newcommand{\frontauthor}{\LARGE John Q. Postgraduate}
\newcommand{\spineauthor}{\Large John Q. Postgraduate}
\newcommand{\kcssnumber}{2011/1}
\newcommand{\kcssnumberspinefont}{}
\newcommand{\isbn}{}
\newcommand{\researchgroup}{Fake Research Group}
\newcommand{\backtext}{%
\noindent%
Please adjust the length of this text carefully
in order to fill an amount of space that makes the back of the book good-looking.
The blue area should stretch far enough to the bottom,
but should not get too close to the text about the Series,
outside of the blue~area.
\par
Here is some more text to fill the space.
This text should be about the contents of the book.
It should help the book catch the (potential) reader's interest.
A text as boring as this one will not be well suited.
\par
But we have to fill the space, so here is some more text.
As stated earlier, the length of this text should be adjusted
so that the blue area gives a nice impression.
This goal has almost been reached now.
Just one more line, and we are done.
Just one more line.
\par\medskip%
\begin{wrapfigure}[6]{l}{2.35cm}
  \vspace{-\baselineskip}
  \includegraphics[width=2.35cm]{no_photo}
\end{wrapfigure}%
\color{white}%
To the left is a photo of the author.
Here is enough place for a short CV.
The CV should be long enough to fill all the space
to the right of the photo.
The photo is optional, but a short CV should be here.
With or without photo.
Moreover, the text should cover all the space to the side of the photo
and may even stretch beyond the photo.
The number of lines right to the photo should be given
as an argument to the \lstinline|wrapfigure| environment, here 6.
\par%
}
\newcommand{\frontgraphic}{%
\begin{tikzpicture}
  \tikzset{every edge/.style={>=stealth',draw,->,thick}}
  \node [draw, rectangle] (a) {Here is enough space\ldots};
  \node [draw, circle, below right = of a] (b) {\ldots for the author\ldots};
  \node [draw, rectangle, below left = of b, decorate, decoration=zigzag, inner sep=10pt] (c) {\ldots to put a graphic.};
  \path (a) edge (b) (b) edge (c);
\end{tikzpicture}}

%
% Lengths to be set by the author
%
\setlength{\coverwidth}{\kcssCover@coverwidth} % aka trim area
\setlength{\coverheight}{\kcssCover@coverheight}
\setlength{\smallercoverwidth}{\kcssCover@smallercoverwidth}
\setlength{\smallercoverheight}{\kcssCover@smallercoverheight}
\setlength{\spinewidth}{\kcssCover@spinewidth}
\setlength{\spinecorr}{\kcssCover@spinecorr}
\setlength{\bleed}{\kcssCover@bleed}
\setlength{\safety}{\kcssCover@safety}
\setlength{\frontgraphicxshift}{\kcssCover@frontgraphicxshift}
\setlength{\frontgraphicyshift}{\kcssCover@frontgraphicyshift}

%
% Standard lengths, usually no changes necessary
%
\newlength{\smallerlargerwidthcorr}
\setlength{\smallerlargerwidthcorr}{(\coverwidth-\smallercoverwidth)/2}
\newlength{\smallerlargerheightcorr}
\setlength{\smallerlargerheightcorr}{(\coverheight-\smallercoverheight)/2}
\setlength{\margintoporiginal}{\kcssCover@margintop}
\setlength{\margintop}{\kcssCover@margintop+\smallerlargerheightcorr}
\setlength{\marginright}{\kcssCover@marginright+\smallerlargerwidthcorr}
\setlength{\marginbottom}{\kcssCover@marginbottom+\smallerlargerheightcorr}
\setlength{\marginleft}{\kcssCover@marginleft+\smallerlargerwidthcorr}
\setlength{\spineauthorsep}{\kcssCover@spineauthorsep}
\setlength{\spineleftrightsep}{\kcssCover@spineleftrightsep}
\setlength{\spinepaddingtop}{\kcssCover@spinepaddingtop}
\setlength{\spinepaddingbottom}{\kcssCover@spinepaddingbottom}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% Beyond this point, nothing should be re-defined by the user unless
%%% approved by the KCSS LaTeX officer.
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagestyle{empty}
%\definecolor{techfakblue}{cmyk}{1.0, 0.8, 0.0, 0.15}
%\definecolor{techfakblue}{RGB}{48,60,135}
\definecolor{techfakblue}{RGB}{0,39,118}
\newcommand{\setparspacing}{%
\setlength{\parskip}{.5\baselineskip plus .5\baselineskip}%
\setlength{\parindent}{0em}%
}

%
% Calculated lengths
%

% Size of whole document, including spine, bleed, etc.
\newlength{\documentwidth}
\newlength{\documentheight}
\setlength{\documentwidth}{2\coverwidth+2\bleed+\spinewidth+2\spinecorr}
\setlength{\documentheight}{\coverheight+2\bleed}

% Bleed plus margin
\newlength{\bleedplusmargintop}
\newlength{\bleedplusmarginright}
\newlength{\bleedplusmarginbottom}
\newlength{\bleedplusmarginleft}
\setlength{\bleedplusmargintop}{\bleed+\margintop}
\setlength{\bleedplusmarginright}{\bleed+\marginright}
\setlength{\bleedplusmarginbottom}{\bleed+\marginbottom}
\setlength{\bleedplusmarginleft}{\bleed+\marginleft}

% Spine
\newlength{\bleedplusspinepaddingbottom}
\setlength{\bleedplusspinepaddingbottom}{\bleed+\spinepaddingbottom}

% Upper blocks: white on blue
\newlength{\UpperLeftBlockWidth}
\newlength{\UpperLeftBlockTextMarginX}
\newlength{\UpperLeftBlockTextMarginY}
\newlength{\UpperLeftBlockTextWidth}
\newlength{\UpperLeftBlockTextOffset}
\setlength{\UpperLeftBlockWidth}{\coverwidth+\bleed-\spineleftrightsep}
\setlength{\UpperLeftBlockTextMarginX}{\marginleft}
\setlength{\UpperLeftBlockTextMarginY}{\margintoporiginal/2}
\setlength{\UpperLeftBlockTextWidth}{\UpperLeftBlockWidth-\bleed-2\UpperLeftBlockTextMarginX}
\setlength{\UpperLeftBlockTextOffset}{\UpperLeftBlockTextMarginX+\bleed}
\newlength{\UpperRightBlockWidth}
\newlength{\UpperRightBlockTextMarginX}
\newlength{\UpperRightBlockTextMarginY}
\newlength{\UpperRightBlockTextWidth}
\newlength{\UpperRightBlockTextOffset}
\setlength{\UpperRightBlockWidth}{\coverwidth+\bleed-\spineleftrightsep}
\setlength{\UpperRightBlockTextMarginX}{\marginright}
\setlength{\UpperRightBlockTextMarginY}{\margintoporiginal}
\setlength{\UpperRightBlockTextWidth}{\UpperRightBlockWidth-\bleed-2\UpperRightBlockTextMarginX}
\setlength{\UpperRightBlockTextOffset}{\UpperRightBlockTextMarginX}

% Lower blocks: blue on white
\newlength{\LowerLeftBlockWidth}
\setlength{\LowerLeftBlockWidth}{\coverwidth+\bleed-\spineleftrightsep-\bleed-2\UpperLeftBlockTextMarginX}

\newcommand{\makecover}{%
\begin{tikzpicture}
  \coordinate (lower left) at (0, 0);
  \coordinate (lower center) at (\documentwidth/2, 0);
  \coordinate (lower right) at (\documentwidth, 0);
  \coordinate (upper left) at (0, \documentheight);
  \coordinate (upper center) at (\documentwidth/2, \documentheight);
  \coordinate (upper right) at (\documentwidth, \documentheight);
  \coordinate (center) at (\documentwidth/2, \documentheight/2);
  \path (upper left) -- (upper right)
  (upper right) -- (lower right)
  (lower right) -- (lower left)
  (lower left) -- (upper left);

  %
  % Spine
  %
  \node [draw, rectangle, text width = \spinewidth, inner sep = 0mm, color = white, fill = techfakblue] at (lower center) [above] (spinebox) %
  {\begin{minipage}{\spinewidth}
  \centering \vspace*{\spinepaddingtop} \kcssnumberspinefont KCSS \\ \kcssnumber \vspace*{\bleedplusspinepaddingbottom}\vspace*{\smallerlargerheightcorr}
  \end{minipage}};
  %
  \draw
  let \p1 = ($(spinebox.north) - ([yshift = -\bleedplusmargintop - \spineauthorsep] upper center)$) in
  node [yshift = -\bleedplusmargintop, color = techfakblue, rotate = 270, mid right, inner sep = 0pt] at (upper center)
  {\pgfmathparse{veclen(\x1,\y1)}\begin{minipage}{\pgfmathresult pt}\spinetitle\hfill\spineauthor\end{minipage}};

  %
  % Upper left block
  %
  \node [yshift = -\bleedplusmargintop, below right, draw, rectangle, color = white, fill = techfakblue, text width = \UpperLeftBlockWidth, inner xsep = 0pt, inner ysep = \UpperLeftBlockTextMarginY, align = justify] at (upper left)
  {\hspace{\UpperLeftBlockTextOffset}%
  \begin{minipage}{\UpperLeftBlockTextWidth}
    \setparspacing\backtext%
  \end{minipage}};

  %
  % Upper right block
  %
  \node [yshift = -\bleedplusmargintop, below left, draw, rectangle, color = white, fill = techfakblue, text width = \UpperRightBlockWidth, inner xsep = 0pt, inner ysep = \UpperRightBlockTextMarginY, align = justify] at (upper right)
  {\hspace{\UpperRightBlockTextOffset}%
  \begin{minipage}{\UpperRightBlockTextWidth}
  \flushright\color{white}\fronttitle\par\normalsize\vspace{\UpperRightBlockTextMarginY}\frontauthor\par%
  \end{minipage}};

  %
  % Lower right block
  %
  \node [yshift = \bleedplusmarginbottom, above left, color = techfakblue, text width = \UpperRightBlockWidth, inner ysep = 0pt, inner xsep = \marginright + \bleed, align = right] at (lower right)
  {\Large \kcssnumber \\[.5em] Kiel Computer Science Series};

  %
  % Lower left block
  %
  \node [yshift = \bleedplusmarginbottom + 35mm, xshift = \bleed, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner ysep = 0pt, inner xsep = \UpperLeftBlockTextMarginX, align = justify] at (lower left)
  {\ifkcssCover@germantext
  \begin{minipage}{\textwidth}
  \selectlanguage{ngerman}%
  \smaller%
  Die Schriftenreihe \enquote{Kiel Computer Science Series} (KCSS) wird
  herausgegeben vom Institut für Informatik an der Technischen Fakult\"at
  der Christian-Albrechts-Universit\"at zu Kiel. Die Ausrichtung dieser
  Open-Access-Publikationsreihe umfasst Dissertationen, Habilitationsschriften
  und Lehrb\"ucher der Informatik.
  \end{minipage}
  \else
  \begin{minipage}{\textwidth}
  \smaller%
  The Kiel Computer Science Series (KCSS) is published by the Department
  of Computer Science of the Faculty of Engineering at Kiel University.
  The scope of this open access
  publication series includes dissertations, habilitation theses, and text
  books in computer science.
  \end{minipage}
  \fi};

  %
  % A node for the ISBN
  %
  \node [yshift = \bleedplusmarginbottom, xshift = \bleed+\UpperLeftBlockTextMarginX, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner sep = 0pt] at (lower left)
  {\smaller%
  \isbn\\
  ISSN 2193-6781 (print version)\\
  ISSN 2194-6639 (electronic version)\par};

  %
  % A node for the Ifi logo and research group
  %
  \node [yshift = \bleedplusmarginbottom, xshift = \bleed+\UpperLeftBlockTextMarginX, above right, color = techfakblue, text width = \LowerLeftBlockWidth, inner sep = 0pt, align = right] at (lower left)
  {\smaller%
  \includegraphics[width=4.5cm]{LogoIfI_CAU}\\%
  \ifkcssCover@twolineresearchgroup%
  \ifkcssCover@germantext\vspace{-1mm}\else\vspace{0mm}\fi%
  \else\ifkcssCover@germantext\vspace{1mm}\else\vspace{2mm}\fi%
  \fi%
  \researchgroup\par};

  %
  % Graphic on the front
  %
  \node [xshift = (\coverwidth+\spinewidth)/2 + \frontgraphicxshift + \spinecorr, yshift = \frontgraphicyshift] at (center) {\frontgraphic};

  %
  % Help lines
  %

  % Layout
  \ifkcssCover@showlayoutlines
  \draw (upper center) -- (lower center);
  \draw ([xshift=\spinewidth/2] upper center) -- ([xshift=\spinewidth/2] lower center);
  \draw ([xshift=-\spinewidth/2] upper center) -- ([xshift=-\spinewidth/2] lower center);
  \draw ([yshift=-\bleedplusmargintop] upper left) -- ([yshift=-\bleedplusmargintop] upper right);
  \draw ([xshift=-\bleedplusmarginright] upper right) -- ([xshift=-\bleedplusmarginright] lower right);
  \draw ([yshift=\bleedplusmarginbottom] lower left) -- ([yshift=\bleedplusmarginbottom] lower right);
  \draw ([xshift=\bleedplusmarginleft] upper left) -- ([xshift=\bleedplusmarginleft] lower left);
  \fi

  % Safety
  \ifkcssCover@showsafetylines
  \draw [color=green] ([yshift=-(\bleed+\safety)] upper left) -- ([yshift=-(\bleed+\safety)] upper right);
  \draw [color=green] ([xshift=-(\bleed+\safety)] upper right) -- ([xshift=-(\bleed+\safety)] lower right);
  \draw [color=green] ([yshift=(\bleed+\safety)] lower left) -- ([yshift=(\bleed+\safety)] lower right);
  \draw [color=green] ([xshift=(\bleed+\safety)] upper left) -- ([xshift=(\bleed+\safety)] lower left);
  \fi

  % Bleed
  \ifkcssCover@showbleedlines
  \draw [color=red] ([yshift=-\bleed] upper left) -- ([yshift=-\bleed] upper right);
  \draw [color=red] ([xshift=-\bleed] upper right) -- ([xshift=-\bleed] lower right);
  \draw [color=red] ([yshift=\bleed] lower left) -- ([yshift=\bleed] lower right);
  \draw [color=red] ([xshift=\bleed] upper left) -- ([xshift=\bleed] lower left);
  \fi

  %
\end{tikzpicture}
}
localTheorem.sty · 5 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{localTheorem}
\RequirePackage{kvoptions}
\DeclareStringOption[english]{language}
\DeclareBoolOption[true]{numbersfirst}
\DeclareBoolOption[true]{dottednumbers}
\DeclareBoolOption[false]{likeequations}
\DeclareBoolOption[false]{simpleequations}
\DeclareStringOption[]{plainfont}
\DeclareStringOption[]{remarkfont}
\@ifclassloaded{book}
  {\DeclareStringOption[chapter]{within}}
  {\DeclareStringOption[section]{within}}
\@ifclassloaded{book}
  {\DeclareStringOption[chapter]{exerciseswithin}}
  {\DeclareStringOption[section]{exerciseswithin}}
\ProcessKeyvalOptions*

\RequirePackage{etoolbox}
\RequirePackage{xifthen}
\RequirePackage{expl3}

\@ifclassloaded{beamer}{}{\let\openbox\@undefined}

\newcommand*{\mainthmcounter}{proposition}
\newcommand*{\@newtheorem}[2]{%
    \newaliascnt{#1}{\mainthmcounter}
    \newtheorem{#1}[#1]{#2}
    \aliascntresetthe{#1}
    \expandafter\providecommand\expandafter*\expandafter{\csname #1autorefname\endcsname}{#2}
    \expandafter\newtheorem\expandafter*\expandafter{#1*}{#2}}

\RequirePackage{aliascnt}
\RequirePackage{amsthm}
\RequirePackage{amsmath}
\RequirePackage{expl3}

\iflocalTheorem@numbersfirst
  \swapnumbers
\fi

\iflocalTheorem@dottednumbers
  % cf. texlive/2011/texmf-dist/tex/latex/amscls/amsthm.sty
  \renewcommand\swappedhead[3]{%
  \thmnumber{#2}\@ifnotempty{#1}{.}{}%
    \thmname{\@ifnotempty{#2}{~}#1}%
    \thmnote{ {\the\thm@notefont(#3)}}}
\fi

\newcommand*{\my@numberwithin}[2]{\ifthenelse{\equal{#2}{document}}{}{\numberwithin{#1}{#2}}}

\theoremstyle{plain}
\iflocalTheorem@likeequations
  \my@numberwithin{equation}{\localTheorem@within}
  \renewcommand*{\mainthmcounter}{equation}
  \@newtheorem{proposition}{Proposition}
\else
  \newtheorem{proposition}{Proposition}
  \providecommand*{\propositionautorefname}{Proposition}
  \newtheorem*{proposition*}{Proposition}
  \my@numberwithin{proposition}{\localTheorem@within}
  \iflocalTheorem@simpleequations
  \else
    \my@numberwithin{equation}{\localTheorem@within}
  \fi
\fi

\ifthenelse{\lengthtest{\parskip > 0pt}}{%
\def\thm@space@setup{\thm@preskip=\parskip} %%% FIXME looks like an effective approach, perhaps now we can remove some gefrickel below?
\newtheoremstyle{para}%
{}%
{0pt}%
{}%
{}%
%{\itshape}%
{\bfseries}%
{.}%
{ }%
{}
\newtheoremstyle{plain}%
{}%
{0pt}%
{\csname\localTheorem@plainfont\endcsname}%
{}%
{\bfseries}%
{.}%
{ }%
{}
\newtheoremstyle{remark}%
{}%
{0pt}%
{\csname\localTheorem@remarkfont\endcsname}%
{}%
{\bfseries}% FIXME this is tailored for "para style"
{.}%
{ }%
{}
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep-3\p@\@plus6\p@\relax  % FIXME why do we need -3?
  \trivlist
  \item[\hskip\labelsep
        \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\vspace{2pt}\@endpefalse % FIXME the 2pt are also gefrickelt
}
}{ %%% parskip=0 %%%
\newtheoremstyle{para}%
{}%
{}%
{}%
{}%
%{\itshape}%
{\bfseries}%
{.}%
{ }%
{}
} %%% end parskip-sensitive stuff %%%

\ExplSyntaxOn
\str_case:onF{\localTheorem@language}{
{english} {
  \@newtheorem{lemma}{Lemma}
  \@newtheorem{theorem}{Theorem}
  \@newtheorem{conjecture}{Conjecture}
  \@newtheorem{corollary}{Corollary}
  \theoremstyle{definition}
  \@newtheorem{definition}{Definition}
  \@newtheorem{open}{Open~Problem}
  \@newtheorem{convention}{Convention}
  \@newtheorem{algo}{Algorithm}
  \theoremstyle{para}
  \@newtheorem{para}{}
  \renewcommand*{\paraautorefname}{Paragraph}
  \theoremstyle{remark}
  \@newtheorem{observation}{Observation}
  \@newtheorem{remark}{Remark}
  \@newtheorem{hint}{Hint}
  \@newtheorem{claim}{Claim}
  \@newtheorem{problem}{Problem}
  \@newtheorem{example}{Example}
  \theoremstyle{definition}
  \newtheorem{exercise}{}[\localTheorem@exerciseswithin]
  \providecommand*{\exerciseautorefname}{Exercise}
}
{german} {
  \@newtheorem{lemma}{Lemma}
  \@newtheorem{theorem}{Theorem}
  \@newtheorem{satz}{Satz}
  \@newtheorem{conjecture}{Vermutung}
  \@newtheorem{corollary}{Korollar}
  \theoremstyle{definition}
  \@newtheorem{definition}{Definition}
  \@newtheorem{open}{Offenes Problem}
  \@newtheorem{convention}{Konvention}
  \@newtheorem{algo}{Algorithmus}
  \theoremstyle{para}
  \@newtheorem{para}{}
  \renewcommand*{\paraautorefname}{Paragraf}
  \theoremstyle{remark}
  \@newtheorem{observation}{Beobachtung}
  \@newtheorem{remark}{Bemerkung}
  \@newtheorem{hint}{Hilfestellung}
  \@newtheorem{claim}{Behauptung}
  \@newtheorem{problem}{Problem}
  \@newtheorem{example}{Beispiel}
  \theoremstyle{definition}
  \newtheorem{exercise}{}[\localTheorem@exerciseswithin]
  \providecommand*{\exerciseautorefname}{Übung}
}
}{\PackageError{localTheorem}{Unknown~language:~\localTheorem@language}\@ehc}
\ExplSyntaxOff
template-bachelormaster.bib · 395 B
%%% BibTeX dummy
@inproceedings{Test,
  author = {Test, Testing},
  title = {Testing Stuff here Tests},
  year = {2010},
  isbn = {0000000000000},
  publisher = {Test Publishing},
  address = {Test Adress, Test Country},
  doi = {10.1145/test},
  booktitle = {Test Book},
  pages = {0-10},
  numpages = {10},
  keywords = {Test, Testing},
  location = {Test location},
  series = {Test Series}
}
template-bachelormaster.tex — the file that is compiled · 1 KB
%%% KCSS Bachelor and Master Template
%%%
%%% Take care of all fields marked <++FOO++>.
%%% When using Vim LaTeX Suite <http://vim-latex.sourceforge.net/>,
%%% then Ctrl-j should navigate to the next such field.

\documentclass[11pt]{book}
\usepackage[language=english,theorems=numbersfirst,paper=a4paper]{ifiseries}
% <++USE language=german IF YOUR DOCUMENT WILL BE IN GERMAN ++>

\addbibresource{template-bachelormaster.bib}
% <++PERHAPS CHANGE NAME OF BIBLIOGRAPHY RESOURCE ON LINE ABOVE OR ADD ADDITIONAL RESOURCES++>

\begin{document}

\frontmatter

\studtitlepage%
{<++TITLE++> \\[.1em]
<++OVER TWO LINES++>}%
{<++SUBTITLE++>}%
{<++NAME++>}%
{<++THESIS TYPE++>}%
{<++MONTH AND YEAR++>}%
{<++OPTIONAL RESEARCH GROUP++>}%
{<++SUPERVISOR++>}
\cleardoublepage
\studeidesstatt

\chapter*{Abstract}
<++ABSTRACT++>

\section*{Acknowledgements}
<++ACKNOWLEDGEMENTS++>

\tableofcontents
\listoffigures
\listoftables
\mainmatter

\chapter{<++FIRST CHAPTER++>}
\cite{Test}
\chapter{<++SECOND CHAPTER++>}
\chapter{<++THIRD CHAPTER++>}
\chapter{<++FOURTH CHAPTER++>}
\chapter{<++FIFTH CHAPTER++>}

\appendix
\chapter{<++FIRST CHAPTER OF APPENDIX++>}
\chapter{<++SECOND CHAPTER OF APPENDIX++>}

\backmatter
\tocbibliography
\end{document}
template.bib · 17 B
%%% BibTeX dummy
template.metapage.bib · 404 B
@book{<++KEY++>,
  author    = {<++NAME++>},
  title     = {<++TITLE++>},
  publisher = {Department of Computer Science, Kiel University},
  year      = {<++YEAR++>},
  number    = {<++YEAR++>/<++NUMBER++>},
  isbn      = {<++ISBN IF ANY++>},
  doi       = {<++DOI++>},
  series    = {Kiel Computer Science Series},
  note      = {Dissertation, Faculty of Engineering,
               Kiel University.}
}
template.tex · 2 KB
%%% KCSS Dissertation Template
%%%
%%% Take care of all fields marked <++FOO++>.
%%% When using Vim LaTeX Suite <http://vim-latex.sourceforge.net/>,
%%% then Ctrl-j should navigate to the next such field.

\documentclass[10pt]{book}
\usepackage[theorems=numbersfirst]{ifiseries}
\addbibresource{template.bib}
% <++PERHAPS CHANGE NAME OF BIBLIOGRAPHY RESOURCE ON LINE ABOVE OR ADD ADDITIONAL RESOURCES++>

\begin{document}

\frontmatter

\disstitlepage%
{<++TITLE++>}%
{<++SUBTITLE++>}%
{<++DEGREE++>~<++NAME++>}%
{<++ing OR nat++>}%
{<++YEAR++>}

\metapage%
{<++YEAR++>/<++NUMBER++> dated <++YYYY++>-<++MM++>-<++DD++>}%
% Use the following to reference a previous publications that this one updates.
% If this publication does not update an old one, leave this field empty.
{<++OLD-YEAR++>/<++OLD-NUMBER++>}%
% Beginning with 2022, the URN will no longer be included
% {<++URN-NBN++>}%
% E-Mail address or website where people can reach you. Should be something
% accessible after you've left the university
{\url{<++URL++>}}%
{<++RESEARCH GROUP++>}%
{<++NAME++>.
\textit{<++TITLE++>}
Number <++YEAR++>/<++NUMBER++> in Kiel Computer Science Series.
Department of Computer Science, <++YEAR++>.
Dissertation, Faculty of Engineering,
Kiel University.}%
{template.metapage.bib}% <++PERHAPS CHANGE NAME OF FILE++>
{<++COPYRIGHT YEAR++> by <++NAME++>}%
% This is where you can include additional information required by your
% printing service.
{<++ADDITIONAL TEXT OR EMPTY++>}

\disseidesstatt

\input{about-this-series}

\dissreviewerpage%
{<++FIRST REVIEWER++> \par Christian-Albrechts-Universit\"at \par Kiel}%
{<++SECOND REVIEWER++> \par Christian-Albrechts-Universit\"at \par Kiel}%
{<++THIRD REVIEWER IF ANY++>}%
{<++DATE++>}%

\selectlanguage{ngerman}

\chapter*{Zusammenfassung}
<++ZUSAMMENFASSUNG++>

\selectlanguage{english}

\chapter*{Abstract}
<++ABSTRACT++>

\chapter{Preface by <++SUPERVISOR++>} % by the supervisor
<++PREFACE BY THE SUPERVISOR++>

\chapter{Preface by the Author}
<++PREFACE BY THE AUTHOR++>

\section*{Acknowledgements}
<++ACKNOWLEDGEMENTS++>

\tableofcontents
\listoffigures
\listoftables
\mainmatter

\part{<++FIRST PART++>}
\chapter{<++FIRST CHAPTER++>}
\chapter{<++SECOND CHAPTER++>}
\chapter{<++THIRD CHAPTER++>}

\part{<++SECOND PART++>}
\chapter{<++FOURTH CHAPTER++>}
\chapter{<++FIFTH CHAPTER++>}

\appendix
\chapter{<++FIRST CHAPTER OF APPENDIX++>}
\chapter{<++SECOND CHAPTER OF APPENDIX++>}

\backmatter
\tocbibliography
\end{document}

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗