Skip to content
Snippets Groups Projects
Commit 6ecf0f8d authored by Sören Henning's avatar Sören Henning
Browse files

Add template based on plain ifiseries

parent 75fa8e49
No related branches found
No related tags found
No related merge requests found
# Bachelor's/Master's Thesis Template
Student theses at our working group should be typesetted with LaTeX and use the [Kiel Computer Science Series (KCSS) style](https://git.informatik.uni-kiel.de/kcss/kcss-style).
## Getting started
To get started, we provide a custom template adjusted to what typical software engineering theses look like. To use it, apply the following steps:
1. Copy all files from https://git.informatik.uni-kiel.de/kcss/kcss-style to your local working directory.
2. Copy all files from this directory to your working directory.
3. Rename `template-bachelormaste-se.tex` to something more descriptive.
4. Start writing your thesis.
5. Compile with sequence: latex biber latex latex
## Background
* The template provides a comment showing how to switch to German.
* This template uses Biber instead of BibTeX. Further, the `authoryear-square` BibLaTeX style is used, which comes with this template. All these settings can be changed if required.
* Actually, not all files from the KCSS repository are required. Feel free to delete everything you don't need (e.g., the template files).
## More information
You can find the manual of the KCSS style here: https://git.informatik.uni-kiel.de/kcss/kcss-public/raw/master/manual.pdf
The KCSS style repository provides some additional information and templates: https://git.informatik.uni-kiel.de/kcss/kcss-style
\ No newline at end of file
\ProvidesFile{authoryear-square.bbx}
[\abx@bbxid]
\RequirePackage{xpatch}
\RequireBibliographyStyle{standard}
\ExecuteBibliographyOptions{sorting=anyt,pagetracker,labelyear}
\ExecuteBibliographyOptions{firstinits,useprefix,maxbibnames=999,maxcitenames=2,block=space}
\defbibenvironment{bibliography}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\endlist}
{\item}
\DeclareFieldFormat{shorthandwidth}{#1}
\defbibenvironment{shorthands}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{##1\hss}}}
{\endlist}
{\item}
\InitializeBibliographyStyle{}
%% Changes to standard style
\renewcommand*{\nameyeardelim}{\addspace}
\renewcommand*{\bibpagerefpunct}{\iflistundef{pageref}{\addspace}{\addperiod\addspace}}
\renewcommand*{\finentrypunct}{\iflistundef{pageref}{\addperiod}{}}%
\renewbibmacro*{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}
\xpatchbibmacro{pageref:comp}{\multilistdelim}%
{\ifboolexpr{test {\ifnumless{\value{listcount}}{\value{liststop}}}or test \ifmoreitems}{\multilistdelim}{\finallistdelim}}{}{}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
%% Add the citekey
\xpatchbibdriver{misc}{\setunit{\labelnamepunct}}{\setunit*{\labelnamepunct}}{}{}
\renewbibmacro*{begentry}{%
\printtext[brackets]{%
\begingroup%
\defcounter{maxnames}{\blx@maxcitenames}%
\iffieldundef{shorthand}%
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}%
{\iffieldundef{label}{\printfield[citetitle]{labeltitle}}{\printfield{label}}%
%\setunit{\nameyeardelim}%
%\iffieldundef{labelyear}{}{\printfield{labelyear}\printfield{extrayear}}%
}%
{\printnames{labelname}%
\setunit{\nameyeardelim}%
\iffieldundef{labelyear}{}{\printfield{labelyear}\printfield{extrayear}}}}%
{\printfield{shorthand}}%
\endgroup%
}%
\printtext{}\setunit{\addspace}\newblock% \printtext{\quad}or \addspace
}
\endinput
\ProvidesFile{authoryear-square.cbx}
[\abx@cbxid]
\ExecuteBibliographyOptions{labelyear,autocite=inline,maxcitenames=2}
\newbool{cbx:parens}
\newbibmacro*{cite:init}{%
\ifnumless{\value{multicitecount}}{2}
{\global\boolfalse{cbx:parens}%
\global\undef\cbx@lasthash
\global\undef\cbx@lastyear}
{\iffieldundef{prenote}
{}
{\global\undef\cbx@lasthash
\global\undef\cbx@lastyear}}}
\newbibmacro*{cite:reinit}{%
\global\undef\cbx@lasthash
\global\undef\cbx@lastyear}
\newbibmacro*{cite}{%
\printtext[bibhyperref]{% Apply citation link to bibmacro output
\DeclareFieldAlias{bibhyperref}{default}% Prevent nested hyperlinks
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
%\setunit{\nameyeardelim}%
%\usebibmacro{cite:labelyear+extrayear}%
\usebibmacro{cite:reinit}}
{\iffieldequals{namehash}{\cbx@lasthash}
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
{\setunit{\addcomma}%
\usebibmacro{cite:extrayear}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labelyear+extrayear}%
\savefield{labelyear}{\cbx@lastyear}}}
{\printnames{labelname}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:labelyear+extrayear}%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}
{\usebibmacro{cite:shorthand}%
\usebibmacro{cite:reinit}}%
\setunit{\multicitedelim}}}
\newbibmacro*{citeyear}{%
\iffieldundef{shorthand}
{\iffieldundef{labelyear}
{\usebibmacro{cite:label}%
\usebibmacro{cite:reinit}}
{\iffieldequals{namehash}{\cbx@lasthash}
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
{\setunit{\addcomma}%
\usebibmacro{cite:extrayear}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labelyear+extrayear}%
\savefield{labelyear}{\cbx@lastyear}}}
{\usebibmacro{cite:labelyear+extrayear}%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}
{\usebibmacro{cite:shorthand}%
\usebibmacro{cite:reinit}}%
\setunit{\multicitedelim}}
\newbibmacro*{textcite}{%
\iffieldequals{namehash}{\cbx@lasthash}
{\iffieldundef{shorthand}
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
{\setunit{\addcomma}%
\usebibmacro{cite:extrayear}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labelyear+extrayear}%
\savefield{labelyear}{\cbx@lastyear}}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:shorthand}%
\global\undef\cbx@lastyear}}
{\ifbool{cbx:parens}{\bibclosebracket\global\boolfalse{cbx:parens}}{}%
\setunit*{\multicitedelim}%
\ifnameundef{labelname}
{\iffieldundef{shorthand}
{\printtext[bibhyperref]{\DeclareFieldAlias{bibhyperref}{default}\usebibmacro{cite:label}}%
\setunit{%
\global\booltrue{cbx:parens}%
\addspace\bibopenbracket}%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}
{\printtext[bibhyperref]{\DeclareFieldAlias{bibhyperref}{default}\printnames{labelname}}%
\setunit{%
\global\booltrue{cbx:parens}%
\addspace\bibopenbracket}%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\iffieldundef{shorthand}
{\iffieldundef{labelyear}
{\usebibmacro{cite:label}}
{\usebibmacro{cite:labelyear+extrayear}}%
\savefield{labelyear}{\cbx@lastyear}}
{\usebibmacro{cite:shorthand}%
\global\undef\cbx@lastyear}%
\savefield{namehash}{\cbx@lasthash}}}}
\newbibmacro*{cite:shorthand}{%
\printtext[bibhyperref]{\printfield{shorthand}}}
\newbibmacro*{cite:label}{%
\iffieldundef{label}
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
{\printtext[bibhyperref]{\printfield{label}}}}
\newbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printfield{labelyear}%
\printfield{extrayear}}}}
\newbibmacro*{cite:extrayear}{%
\iffieldundef{extrayear}
{}
{\printtext[bibhyperref]{\printfield{extrayear}}}}
\newbibmacro*{textcite:postnote}{%
\usebibmacro{postnote}%
\ifthenelse{\value{multicitecount}=\value{multicitetotal}}
{\setunit{}%
\printtext{%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}}}
{\setunit{%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}%
\multicitedelim}}}
\DeclareCiteCommand{\cite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\cite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\parencite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\textcite}
{\usebibmacro{cite:init}}
{\usebibmacro{citeindex}\usebibmacro{textcite}}
{}
{\usebibmacro{textcite:postnote}%
\ifbool{cbx:parens}{\bibclosebracket\global\boolfalse{cbx:parens}}{}}
\DeclareMultiCiteCommand{\cites}{\cite}{\setunit{\multicitedelim}}
\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}{\setunit{\multicitedelim}}
\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}{\setunit{\multicitedelim}}
\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]{\footcitetext}{\setunit{\multicitedelim}}
\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]{\smartcite}
{\setunit{\multicitedelim}}
\DeclareMultiCiteCommand{\textcites}{\textcite}{}
\endinput
@misc{AspectJ,
sorttitle = {AspectJ},
label = {AspectJ},
title = {{AspectJ} language extension},
organization = {Eclipse Foundation},
url = {http://www.eclipse.org/aspectj/},
}
@inproceedings{Shaw2003,
author = {Mary Shaw},
title = {Writing good software engineering research papers: minitutorial},
booktitle = {Proceedings of the 25th International Conference on Software Engineering (ICSE 2003)},
year = {2003},
month = may,
pages = {726--736},
publisher = {IEEE Computer Society},
}
@INPROCEEDINGS{Hoorn2012,
author = {van Hoorn, Andr{\'e} and Waller, Jan and Hasselbring, Wilhelm},
title = {Kieker: {A} Framework for Application Performance Monitoring and Dynamic Software Analysis},
booktitle = {Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering (ICPE~2012)},
year = {2012},
pages = {247--248},
month = apr,
publisher = {ACM}
}
@TECHREPORT{Hoorn2009,
author = {van Hoorn, Andr{\'e} and Rohr, Matthias and Hasselbring, Wilhelm and Waller, Jan and Ehlers, Jens and Frey, S{\"o}ren and Kieselhorst, Dennis},
title = {Continuous Monitoring of Software Services: {D}esign and Application of the {K}ieker Framework},
institution = {Department of Computer Science, Kiel University, Germany},
year = {2009},
number = {TR-0921},
month = nov,
}
@inproceedings{Rohr2008,
author = {Rohr, Matthias and van Hoorn, Andr{\'e} and Matevska, Jasminka and Sommer, Nils and Stoever, Lena and Giesecke, Simon and Hasselbring, Wilhelm},
booktitle = {Proceedings of the IASTED International Conference on Software Engineering 2008 (SE'08)},
title = {Kieker: {C}ontinuous Monitoring and on demand Visualization of {J}ava Software Behavior},
publisher = {ACTA Press},
year = {2008},
pages = {80--85},
month = feb,
}
@ARTICLE{Frey2011,
author = {Frey, S{\"o}ren and Hasselbring, Wilhelm},
title = {The {CloudMIG} Approach: {M}odel-Based Migration of Software Systems to Cloud-Optimized Applications},
journal = {International Journal on Advances in Software},
year = {2011},
volume = {4},
pages = {342--353},
number = {3},
month = apr,
}
File added
%%% KCSS Bachelor and Master Template - Software Engineeering Group
%%%
%%% 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[%
language=english,paper=a4paper,largepaper=true,%
algorithm=false,%
biblatexstyle=authoryear-square,
biblatexOptions={natbib=true,backend=biber},%
acronymOptions={smaller,printonlyused},%,withpage
]{ifiseries}
%\usepackage[language=english,theorems=numbersfirst,paper=a4paper]{ifiseries}
% <++USE language=german IF YOUR DOCUMENT WILL BE IN GERMAN ++>
% <++CHANGE PDF SETTINGS++>
\hypersetup{pdftitle=My Fake Bachelor's Thesis with a Long Title over Three Lines}
\hypersetup{pdfauthor=John Q. Pregraduate}
\hypersetup{pdfsubject=Bachelor's Thesis }
\hypersetup{pdfkeywords=}
%\usepackage{etex} % fix for miktex version 2.9 and above
%\reserveinserts{10} % fix for miktex version 2.9 and above
%\usepackage{fixltx2e} % fix for latex version from 2015 and below
%\usepackage[resetfonts]{cmap}
%\usepackage{nameref}
%\usepackage[format=hang]{caption}
%\usepackage{textcomp}
\usepackage{todonotes}
\lstset{
frame=single,
breaklines=true,
numbers=left,
numbersep=6pt,
tabsize=3,
}
\ExecuteBibliographyOptions{sortcase=false,babel=other,backref=true,abbreviate=false}
\ExecuteBibliographyOptions{isbn=false,url=true,doi=true,eprint=false}
\addbibresource{bibliography.bib}
% <++PERHAPS CHANGE NAME OF BIBLIOGRAPHY RESOURCE ON LINE ABOVE OR ADD ADDITIONAL RESOURCES++>
\begin{document}
\frontmatter
\studtitlepage%
{My Fake Bachelor's Thesis \\[.1em]With a Long Title \\[.1em]Over Three Lines}% title
{}% subtitle
{John Q. Pregraduate}% author
{Bachelor's Thesis}% type
{\today}% date
{Software Engineering Group}% chair
{Prof. Dr. Wilhelm Hasselbring\\Additional Advisor, M.Sc.} % advisors
\cleardoublepage
\studeidesstatt
\chapter*{Abstract}
\blindtext
%\section*{Acknowledgements}
%<++ACKNOWLEDGEMENTS++>
\tableofcontents
%\listoffigures
%\listoftables
\mainmatter
%% the actual thesis
%% use \include{filename} and \includeonly{filename} to organize your thesis
\chapter{Introduction}
This is my introduction.
\citet{Shaw2003} wrote a paper with hints on how to write good software engineering research papers.
By the way, this was an example for using the \textit{natbib} command \texttt{\textbackslash{}citet\{\}}.
\textit{AspectJ} is tool to weave cross-cutting concerns into Java programs~\citep{AspectJ}. By the way, this was an example for using the \textit{natbib} command \texttt{\textbackslash{}citep\{\}}.
Kieker: \citep{Rohr2008, Hoorn2009, Hoorn2012}
Article Example: \citep{Frey2011}
We will now demonstrate how to use figures (see \autoref{fig:figure}).
\begin{figure}[t]%
\centering%
\includegraphics[width=0.3\textwidth]{img/template_circle.pdf}%
\caption{A circle \blindtext}%
\label{fig:figure}%
\end{figure}%
You should use diagrams, graphics, tables etc. to explain your topics.
Further hints on writing a thesis can be found at \url{http://se.informatik.uni-kiel.de/research/scientific-work/} and \url{http://www.twenzel.de/}.
\section{Motivation}
\blindtext
\section{Goals}
\blindtext
\section{Document Structure}
\autoref{chp:Foundations} presents everything one must know. The conclusions follow in \autoref{chp:Conclusions}. \todo{Adjust this}
\chapter{Foundations and Technologies}\label{chp:Foundations}
\section{Research Topic or Technology 1}
\blindtext
\section{Research Topic or Technology 2}
\blindtext
\section{Research Topic or Technology m}
\blindtext
\chapter{Approach Part 1}\label{chp:Approach1}
\section{Approach Part 1 Subsection 1}
\blindtext
\autoref{lst:imabclass} shows the \texttt{ImbaClass} in Java code.
\begin{lstlisting}[language=Java, label=lst:imabclass, caption=ImbaClass in Java code]
public class ImbaClass {
private static final String constantString = "I am imba";
}
\end{lstlisting}
\section{Approach Part 1 Subsection 2}
\blindtext
\todo{outside todo: make a cake \ldots}
%\missingfigure{place holder figure}
\section{Approach Part 1 Subsection n}
\blindtext
\todo[inline]{inline todo: make a cake \ldots}
\todo{short command inline todo}
\chapter{Approach Part 2}\label{chp:Approach2}
\section{Approach Part 2 Subsection 1}
\blindtext
\section{Approach Part 2 Subsection 2}
\blindtext
\section{Approach Part 2 Subsection o}
\blindtext
\chapter{Evaluation}\label{chp:Evaluation}
\blindtext
\chapter{Related Work}\label{chp:Related}
\blindtext
\chapter{Conclusions and Future Work}\label{chp:Conclusions}
\section{Conclusions}
\blindtext
\section{Future Work}
\blindtext
%\appendix
%\chapter{<++FIRST CHAPTER OF APPENDIX++>}
%\chapter{<++SECOND CHAPTER OF APPENDIX++>}
\backmatter
\tocbibliography
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment