1
0

thesis: Add TU Wien Informatics template

This commit is contained in:
2025-03-16 22:25:49 +01:00
parent ab6a405830
commit 244dc354ed
7 changed files with 1061 additions and 0 deletions

20
thesis/.gitignore vendored Normal file
View File

@@ -0,0 +1,20 @@
!graphics/
/intro.*
/example.*
/*.pdf
/*.txt
*.acn
*.aux
*.glo
*.glsdefs
*.idx
*.ist
*.loa
*.lof
*.log
*.lot
*.mw
*.out
*.toc
*.xmpdata
*.xmpi

13
thesis/Makefile Normal file
View File

@@ -0,0 +1,13 @@
.PHONY: all clean clean-out
all: thesis.pdf clean-out
%.pdf: %.tex
pdflatex $<
pdflatex $<
clean: clean-out
rm -rf *.pdf
clean-out:
rm -rf *.acn *.aux *.glo *.glsdefs *.idx *.ist *.loa *.lof *.log *.lot *.mw *.out *.toc *.xmpdata *.xmpi

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,178 @@
% Copyright (C) 2014-2024 by Thomas Auzinger <thomas@auzinger.name>
\documentclass[draft,final]{vutinfth} % Remove option 'final' to obtain debug information.
% Define convenience functions to use the author name and the thesis title in the PDF document properties.
\newcommand{\authorname}{Forename Surname} % The author name without titles.
\newcommand{\thesistitle}{Title of the Thesis} % The title of the thesis. The English version should be used, if it exists.
% Create the XMP metadata file for the creation of PDF/A compatible documents.
\begin{filecontents*}[overwrite]{\jobname.xmpdata}
\Author{\authorname} % The author's name in the document properties.
\Title{\thesistitle} % The document's title in the document properties.
\Language{de-AT} % The document's language in the document properties. Select 'en-US', 'en-GB', or 'de-AT'.
\Keywords{a\sep list\sep of\sep keywords} % The document's keywords in the document properties (separated by '\sep ').
\Publisher{TU Wien} % The document's publisher in the document properties.
\Subject{Thesis} % The document's subject in the document properties.
\end{filecontents*}
% Load packages to allow in- and output of non-ASCII characters.
\usepackage{lmodern} % Use an extension of the original Computer Modern font to minimize the use of bitmapped letters.
\usepackage[T1]{fontenc} % Determines font encoding of the output. Font packages have to be included before this line.
\usepackage[utf8]{inputenc} % Determines encoding of the input. All input files have to use UTF8 encoding.
% Extended LaTeX functionality is enables by including packages with \usepackage{...}.
\usepackage{amsmath} % Extended typesetting of mathematical expression.
\usepackage{amssymb} % Provides a multitude of mathematical symbols.
\usepackage{mathtools} % Further extensions of mathematical typesetting.
\usepackage{microtype} % Small-scale typographic enhancements.
\usepackage[inline]{enumitem} % User control over the layout of lists (itemize, enumerate, description).
\usepackage{multirow} % Allows table elements to span several rows.
\usepackage{booktabs} % Improves the typesetting of tables.
\usepackage{subcaption} % Allows the use of subfigures and enables their referencing.
\usepackage[ruled,linesnumbered,algochapter]{algorithm2e} % Enables the writing of pseudo code.
\usepackage[dvipsnames,table]{xcolor} % Allows the definition and use of colors. This package has to be included before tikz.
\usepackage{nag} % Issues warnings when best practices in writing LaTeX documents are violated.
\usepackage{todonotes} % Provides tooltip-like todo notes.
\usepackage{morewrites} % Increases the number of external files that can be used.
\usepackage[a-2b,mathxmp]{pdfx} % Enables PDF/A compliance. Loads the package hyperref and has to be included second to last.
\usepackage[acronym,toc]{glossaries} % Enables the generation of glossaries and lists of acronyms. This package has to be included last.
% Set PDF document properties
\hypersetup{
pdfpagelayout = TwoPageRight, % How the document is shown in PDF viewers (optional).
linkbordercolor = {Melon}, % The color of the borders of boxes around hyperlinks (optional).
}
\setpnumwidth{2.5em} % Avoid overfull hboxes in the table of contents (see memoir manual).
\setsecnumdepth{subsection} % Enumerate subsections.
\nonzeroparskip % Create space between paragraphs (optional).
\setlength{\parindent}{0pt} % Remove paragraph indentation (optional).
\makeindex % Use an optional index.
\makeglossaries % Use an optional glossary.
%\glstocfalse % Remove the glossaries from the table of contents.
% Set persons with 4 arguments:
% {title before name}{name}{title after name}{gender}
% where both titles are optional (i.e. can be given as empty brackets {}).
\setauthor{Pretitle}{\authorname}{Posttitle}{female}
\setadvisor{Pretitle}{Forename Surname}{Posttitle}{male}
% For bachelor and master theses:
\setfirstassistant{Pretitle}{Forename Surname}{Posttitle}{male}
\setsecondassistant{Pretitle}{Forename Surname}{Posttitle}{male}
\setthirdassistant{Pretitle}{Forename Surname}{Posttitle}{male}
% For dissertations:
\setfirstreviewer{Pretitle}{Forename Surname}{Posttitle}{male}
\setsecondreviewer{Pretitle}{Forename Surname}{Posttitle}{male}
% For dissertations at the PhD School and optionally for dissertations:
\setsecondadvisor{Pretitle}{Forename Surname}{Posttitle}{male} % Comment to remove.
% Required data.
\setregnumber{0123456}
\setdate{01}{01}{2001} % Set date with 3 arguments: {day}{month}{year}.
\settitle{\thesistitle}{Titel der Arbeit} % Sets English and German version of the title (both can be English or German). If your title contains commas, enclose it with additional curvy brackets (i.e., {{your title}}) or define it as a macro as done with \thesistitle.
\setsubtitle{Optional Subtitle of the Thesis}{Optionaler Untertitel der Arbeit} % Sets English and German version of the subtitle (both can be English or German).
% Select the thesis type: bachelor / master / doctor.
% Bachelor:
\setthesis{bachelor}
%
% Master:
%\setthesis{master}
%\setmasterdegree{dipl.} % dipl. / rer.nat. / rer.soc.oec. / master
%
% Doctor:
%\setthesis{doctor}
%\setdoctordegree{rer.soc.oec.}% rer.nat. / techn. / rer.soc.oec.
% For bachelor and master:
\setcurriculum{Media Informatics and Visual Computing}{Medieninformatik und Visual Computing} % Sets the English and German name of the curriculum.
% Optional reviewer data:
\setfirstreviewerdata{Affiliation, Country}
\setsecondreviewerdata{Affiliation, Country}
\begin{document}
\frontmatter % Switches to roman numbering.
% The structure of the thesis has to conform to the guidelines at
% https://informatics.tuwien.ac.at/study-services
\addtitlepage{naustrian} % German title page.
\addtitlepage{english} % English title page.
\addstatementpage
\begin{danksagung*}
\todo{Ihr Text hier.}
\end{danksagung*}
\begin{acknowledgements*}
\todo{Enter your text here.}
\end{acknowledgements*}
\begin{kurzfassung}
\todo{Ihr Text hier.}
\end{kurzfassung}
\begin{abstract}
\todo{Enter your text here.}
\end{abstract}
% Select the language of the thesis, e.g., english or naustrian.
\selectlanguage{english}
% Add a table of contents (toc).
\tableofcontents % Starred version, i.e., \tableofcontents*, removes the self-entry.
% Switch to arabic numbering and start the enumeration of chapters in the table of content.
\mainmatter
\chapter{Introduction}
\todo{Enter your text here.}
\chapter{Additional Chapter}
\todo{Enter your text here.}
% Remove following line for the final thesis.
\input{intro.tex} % A short introduction to LaTeX.
\backmatter
% Declare the use of AI tools as mentioned in the statement of originality.
% Use either the English aitools or the German kitools.
\begin{aitools}
\todo{Ihr Text hier.}
\end{aitools}
\begin{kitools}
\todo{Enter your text here.}
\end{kitools}
% Use an optional list of figures.
\listoffigures % Starred version, i.e., \listoffigures*, removes the toc entry.
% Use an optional list of tables.
\cleardoublepage % Start list of tables on the next empty right hand page.
\listoftables % Starred version, i.e., \listoftables*, removes the toc entry.
% Use an optional list of alogrithms.
\listofalgorithms
\addcontentsline{toc}{chapter}{List of Algorithms}
% Add an index.
\printindex
% Add a glossary.
\printglossaries
% Add a bibliography.
\bibliographystyle{alpha}
\bibliography{intro}
\end{document}

850
thesis/vutinfth.cls Normal file
View File

@@ -0,0 +1,850 @@
%%
%% This is file `vutinfth.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% vutinfth.dtx (with options: `class')
%%
%% This is a generated file.
%% Copyright (C) 2014-2024 by Thomas Auzinger <thomas@auzinger.name>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Thomas Auzinger.
%%
%% This work consists of the files vutinfth.dtx and vutinfth.ins
%% and the derived file vutinfth.cls.
%% This work also consists of the file intro.tex.
%%
%% vutinfth.dtx
%% Copyright (C) 2014-2024 by Thomas Auzinger <thomas@auzinger.name>
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesClass{vutinfth}
[2024/05/29 v1.13 TU Wien Informatics thesis template]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareOption*{%
\PassOptionsToClass{\CurrentOption}{memoir}%
}%
\ProcessOptions\relax
\LoadClass[a4paper,11pt]{memoir}%
\chapterstyle{veelo}%
\RequirePackage[scaled]{helvet}%
\RequirePackage{lmodern}%
\RequirePackage{courier}%
\RequirePackage[T1]{fontenc}%
\RequirePackage[english,naustrian]{babel}%
\RequirePackage[useregional]{datetime2}%
\RequirePackage{geometry}%
\RequirePackage{calc}%
\RequirePackage{etoolbox}%
\RequirePackage{graphicx}%
\graphicspath{{graphics/}}%
\newcommand{\@namexdef}[1]{\expandafter\xdef\csname#1\endcsname}%
\newcommand{\ifestrequal}[4]{%
\begingroup
\edef\vutinfth@tempa{{#1}}%
\edef\vutinfth@tempb{{#2}}%
\expandafter\expandafter\expandafter\ifstrequal
\expandafter\vutinfth@tempa\vutinfth@tempb{#3}{#4}%
\endgroup
}%
\newcommand{\vutinfth@HUGE}{\fontsize{30}{34}\selectfont}%
\newcommand{\vutinfth@huge}{\fontsize{20}{23}\selectfont}%
\newcommand{\vutinfth@LARGE}{\fontsize{17}{22}\selectfont}%
\newcommand{\vutinfth@Large}{\fontsize{14}{18}\selectfont}%
\newcommand{\vutinfth@large}{\fontsize{12}{14.5}\selectfont}%
\newcommand{\vutinfth@normalsize}{\fontsize{11}{13.6}\selectfont}%
\newenvironment{SFFont}[1]{%
\begingroup
\sffamily
\global\let\vutinfth@f@family@tmp=\f@family
\endgroup
\renewcommand{\sfdefault}{#1}%
\ifdefstrequal{\f@family}{\vutinfth@f@family@tmp}{\sffamily}{}%
}{%
\renewcommand{\sfdefault}{\vutinfth@f@family@tmp}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\setdate}[3]{%
\DTMsavedate{vutinfth@date@signing}{#3-#2-#1}%
}%
\newcommand{\vutinfth@def@data}[2]{%
\@namedef{vutinfth@data@#1@def}{}%
\@namedef{vutinfth@data@#1}{#2}%
}%
\newcommand{\vutinfth@def@data@invalid}[2]{%
\@namedef{vutinfth@data@#1@error}{%
\ClassError{vutinfth}{No #2 issued}{Set #1 with #2.}%
}%
\@namedef{vutinfth@data@#1}{\@nameuse{vutinfth@data@#1@error}}%
}%
\newcommand{\CreateData}[1]{%
\@namedef{set#1}##1{%
\vutinfth@def@data{#1}{##1}%
}%
\vutinfth@def@data@invalid{#1}{\string\set#1}%
}%
\newcommand{\vutinfth@person@male}{male}%
\newcommand{\vutinfth@person@female}{female}%
\newcommand{\ifmale}[2]{%
\ifcsstring{vutinfth@person@#1@gender}{\vutinfth@person@male}{#2}{}%
}%
\newcommand{\iffemale}[2]{%
\ifcsstring{vutinfth@person@#1@gender}{\vutinfth@person@female}{#2}{}%
}%
\newcommand{\vutinfth@def@person}[5]{%
\@namedef{vutinfth@person@#1@def}{}%
\@namedef{vutinfth@person@#1@pretitle}{#2}%
\@namedef{vutinfth@person@#1@name}{#3}%
\@namedef{vutinfth@person@#1@posttitle}{#4}%
\ifdefstring{\vutinfth@person@male}{#5}{%
\@namedef{vutinfth@person@#1@gender}{\vutinfth@person@male}%
}{}%
\ifdefstring{\vutinfth@person@female}{#5}{%
\@namedef{vutinfth@person@#1@gender}{\vutinfth@person@female}%
}{}%
\ifstrempty{#3}{%
\ifstrempty{#2}{%
\@namedef{vutinfth@person@#1@fullname}{#4}%
}{%
\ifstrempty{#4}{%
\@namedef{vutinfth@person@#1@fullname}{#2}%
}{%
\@namedef{vutinfth@person@#1@fullname}{#2 #4}%
}%
}%
}{%
\ifstrempty{#2}{%
\ifstrempty{#4}{%
\@namedef{vutinfth@person@#1@fullname}{#3}%
}{%
\@namedef{vutinfth@person@#1@fullname}{#3, #4}%
}%
}{%
\ifstrempty{#4}{%
\@namedef{vutinfth@person@#1@fullname}{#2 #3}%
}{%
\@namedef{vutinfth@person@#1@fullname}{#2 #3, #4}%
}%
}%
}%
}%
\newcommand{\vutinfth@def@person@invalid}[2]{%
\@namedef{vutinfth@person@#1@error}{%
\ClassError{vutinfth}{No #2 issued}{Set #1 with #2.}%
}%
\@namedef{vutinfth@person@#1@name}{%
\@nameuse{vutinfth@person@#1@error}}%
\@namedef{vutinfth@person@#1@pretitle}{%
\@nameuse{vutinfth@person@#1@error}}%
\@namedef{vutinfth@person@#1@posttitle}{%
\@nameuse{vutinfth@person@#1@error}}%
\@namedef{vutinfth@person@#1@gender}{%
\@nameuse{vutinfth@person@#1@error}}%
\@namedef{vutinfth@person@#1@fullname}{%
\@nameuse{vutinfth@person@#1@error}}%
}%
\newcommand{\CreatePerson}[1]{%
\@namedef{set#1}##1##2##3##4{%
\vutinfth@def@person{#1}{##1}{##2}{##3}{##4}%
}%
\vutinfth@def@person@invalid{#1}{\string\set#1}%
}%
\newcommand{\AddLanguage}[1]{%
\@namedef{KV@vutinfth@#1}##1{%
\@namedef{vutinfth@current@#1}{##1}%
}%
\@nameuse{KV@vutinfth@#1}{}%
\ifundef{\vutinfth@allocate@polylingual}{%
\newcommand{\vutinfth@allocate@polylingual}[1]{\@empty}%
}{}%
\@namelet{vutinfth@allocate@polylingual@#1}%
\vutinfth@allocate@polylingual
\renewcommand{\vutinfth@allocate@polylingual}[1]{%
\@nameuse{vutinfth@allocate@polylingual@#1}{##1}%
\@namexdef{vutinfth@##1@#1}{%
\ifcsempty{vutinfth@current@#1}{%
\ifdraftdoc{%
[Draft: No `#1' text for polylingual `##1'.]%
}\else{%
\relax
}\fi
}{%
\@nameuse{vutinfth@current@#1}%
}%
}%
}%
\ifundef{\vutinfth@selectlanguage@polylingual}{%
\newcommand{\vutinfth@selectlanguage@polylingual}[1]{\@empty}%
}{}%
\@namelet{vutinfth@selectlanguage@polylingual@#1}%
\vutinfth@selectlanguage@polylingual
\renewcommand{\vutinfth@selectlanguage@polylingual}[1]{%
\@nameuse{vutinfth@selectlanguage@polylingual@#1}{##1}%
\ifdefstring{\languagename}{#1}{\@nameuse{vutinfth@##1@#1}}{}%
}%
}%
\newcommand{\CreatePolylingual}[2][]{%
\begingroup
\setkeys{vutinfth}{#1}%
\vutinfth@allocate@polylingual{#2}%
\endgroup
\@namedef{vutinfth@polylingual@#2}{%
\vutinfth@selectlanguage@polylingual{#2}}%
}%
\newcommand{\vutinfth@thesis@basetype@undergraduate}{%
vutinfth@undergraduate}%
\newcommand{\vutinfth@thesis@basetype@graduate}{%
vutinfth@graduate}%
\newcommand{\ifundergraduate}[1]{%
\ifestrequal{\vutinfth@thesis@basetype}{%
\vutinfth@thesis@basetype@undergraduate
}{#1}{}%
}%
\newcommand{\ifgraduate}[1]{%
\ifestrequal{\vutinfth@thesis@basetype}{%
\vutinfth@thesis@basetype@graduate
}{#1}{}%
}%
\newcommand{\vutinfth@thesis@basetype}{%
\ClassError{vutinfth}{No \string\setthesis \space issued}{%
Set thesis type with \string\setthesis.}%
}%
\newcommand{\vutinfth@polylingual@degreename}{%
\ClassError{vutinfth}{No \string\setthesis \space issued}{%
Set thesis type with \string\setthesis.}%
}%
\newcommand{\vutinfth@polylingual@thesisname}{%
\ClassError{vutinfth}{No \string\setthesis \space issued}{%
Set thesis type with \string\setthesis.}%
}%
\newcommand{\vutinfth@thesis@bachelor}{bachelor}%
\newcommand{\vutinfth@thesis@master}{master}%
\newcommand{\vutinfth@thesis@doctor}{doctor}%
\newcommand{\@setthesisname}[1]{%
\renewcommand{\vutinfth@polylingual@thesisname}{#1}}%
\newcommand{\@setdegreename}[1]{%
\renewcommand{\vutinfth@polylingual@degreename}{#1}}%
\newcommand{\@setgendereddegreename}[2]{%
\ifmale{author}{\@setdegreename{#1}}%
\iffemale{author}{\@setdegreename{#2}}%
}%
\newcommand{\setthesis}[1]{%
\ifdefstring{\vutinfth@thesis@bachelor}{#1}{%
\renewcommand{\vutinfth@thesis@basetype}{%
\vutinfth@thesis@basetype@undergraduate}%
\@setthesisname{\vutinfth@polylingual@BACHELORTHESIS}%
\@setdegreename{\vutinfth@polylingual@Bdeg}%
}{}%
\ifdefstring{\vutinfth@thesis@master}{#1}{%
\renewcommand{\vutinfth@thesis@basetype}{%
\vutinfth@thesis@basetype@undergraduate}%
\@setthesisname{%
\ClassError{vutinfth}{No \string\setmasterdegree \space issued}{%
Set masterdegree with \string\setmasterdegree.}%
}%
\@setdegreename{%
\ClassError{vutinfth}{No \string\setmasterdegree \space issued}{%
Set master degree with \string\setmasterdegree.}%
}%
}{}%
\ifdefstring{\vutinfth@thesis@doctor}{#1}{%
\renewcommand{\vutinfth@thesis@basetype}{%
\vutinfth@thesis@basetype@graduate}%
\@setthesisname{\vutinfth@polylingual@DOCTORTHESIS}%
\@setdegreename{%
\ClassError{vutinfth}{No \string\setdoctordegree \space issued}{%
Set doctor degree with \string\setdoctordegree.}%
}%
}{}%
}%
\newcommand{\vutinfth@thesis@mdeg@dipl}{dipl.}%
\newcommand{\vutinfth@thesis@mdeg@master}{master}%
\newcommand{\vutinfth@thesis@mdeg@rernat}{rer.nat.}%
\newcommand{\vutinfth@thesis@mdeg@rersocoec}{rer.soc.oec.}%
\newcommand{\setmasterdegree}[1]{%
\ifdefstring{\vutinfth@thesis@mdeg@dipl}{#1}{%
\@setthesisname{\vutinfth@polylingual@DIPLOMATHESIS}%
\@setgendereddegreename{%
\vutinfth@polylingual@MdegDiplMale
}{%
\vutinfth@polylingual@MdegDiplFemale
}%
}{}%
\ifdefstring{\vutinfth@thesis@mdeg@master}{#1}{%
\@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
\@setdegreename{\vutinfth@polylingual@MdegMaster}%
}{}%
\ifdefstring{\vutinfth@thesis@mdeg@rernat}{#1}{%
\@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
\@setgendereddegreename{%
\vutinfth@polylingual@MdegRerNatMale
}{%
\vutinfth@polylingual@MdegRerNatFemale
}%
}{}%
\ifdefstring{\vutinfth@thesis@mdeg@rersocoec}{#1}{%
\@setthesisname{\vutinfth@polylingual@MASTERTHESIS}%
\@setgendereddegreename{%
\vutinfth@polylingual@MdegRerSocOecMale
}{%
\vutinfth@polylingual@MdegRerSocOecFemale
}%
}{}%
}%
\newcommand{\vutinfth@thesis@ddeg@rernat}{rer.nat.}%
\newcommand{\vutinfth@thesis@ddeg@techn}{techn.}%
\newcommand{\vutinfth@thesis@ddeg@rersocoec}{rer.soc.oec.}%
\newcommand{\setdoctordegree}[1]{%
\ifdefstring{\vutinfth@thesis@ddeg@rernat}{#1}{%
\@setgendereddegreename{%
\vutinfth@polylingual@DdegRerNatMale
}{%
\vutinfth@polylingual@DdegRerNatFemale
}%
}{}%
\ifdefstring{\vutinfth@thesis@ddeg@techn}{#1}{%
\@setgendereddegreename{%
\vutinfth@polylingual@DdegTechnMale
}{%
\vutinfth@polylingual@DdegTechnFemale
}%
}{}%
\ifdefstring{\vutinfth@thesis@ddeg@rersocoec}{#1}{%
\@setgendereddegreename{%
\vutinfth@polylingual@DdegRerSocOecMale
}{%
\vutinfth@polylingual@DdegRerSocOecFemale
}%
}{}%
}%
\CreateData{regnumber}%
\CreateData{firstreviewerdata}%
\CreateData{secondreviewerdata}%
\CreatePerson{author}%
\CreatePerson{advisor}%
\CreatePerson{secondadvisor}%
\CreatePerson{firstassistant}%
\CreatePerson{secondassistant}%
\CreatePerson{thirdassistant}%
\CreatePerson{firstreviewer}%
\CreatePerson{secondreviewer}%
\AddLanguage{english}%
\AddLanguage{naustrian}%
\CreatePolylingual[
english=Advisor,
naustrian=Betreuung]{Advisor}%
\CreatePolylingual[
english=Second advisor,
naustrian=Zweitbetreuung]{Secondadvisor}%
\CreatePolylingual[
english=submitted in partial fulfillment of the requirements
for the degree of,
naustrian=zur Erlangung des akademischen Grades]{submission}%
\CreatePolylingual[
english=in,
naustrian=im Rahmen des Studiums]{in}%
\CreatePolylingual[
english=by,
naustrian=eingereicht von]{by}%
\CreatePolylingual[
english=Registration Number,
naustrian=Matrikelnummer]{Registrationnumber}%
\CreatePolylingual[
english=to the Faculty of Informatics,
naustrian=an der Fakult\"at f\"ur Informatik]{faculty}%
\CreatePolylingual[
english=at the TU Wien,
naustrian=der Technischen Universit\"at Wien]{university}%
\CreatePolylingual[
english=Assistance,
naustrian=Mitwirkung]{Assistance}%
\CreatePolylingual[
english=The dissertation has been reviewed by:,
naustrian=Diese Dissertation haben begutachtet:]{Reviewed}%
\CreatePolylingual[
english=External reviewers:]{Reviewers}%
\CreatePolylingual[
english=Vienna,
naustrian=Wien]{Place}%
\CreatePolylingual[
english=Declaration of Authorship,
naustrian=Erkl\"arung zur Verfassung der Arbeit]{StatementChapter}%
\CreatePolylingual[
english={I hereby declare that I have written this Doctoral Thesis
independently, that I have completely specified the utilized
sources and resources and that I have definitely marked all parts
of the work - including tables, maps and figures - which belong
to other works or to the internet, literally or extracted, by
referencing the source as borrowed.},
naustrian={Hiermit erkl\"are ich, dass ich diese Arbeit
selbst\"andig verfasst habe, dass ich die verwendeten Quellen
und Hilfsmittel vollst\"andig angegeben habe und dass ich die
Stellen der Arbeit -- einschlie{\ss}lich Tabellen, Karten und
Abbildungen --, die anderen Werken oder dem Internet im Wortlaut
oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe
der Quelle als Entlehnung kenntlich gemacht habe.}]{Statement}%
\CreatePolylingual[
english={I further declare that I have used generative AI tools only as an aid,
and that my own intellectual and creative efforts predominate in this
work. In the appendix ``Overview of Generative AI Tools Used'' I have
listed all generative AI tools that were used in the creation of this
work, and indicated where in the work they were used. If whole passages
of text were used without substantial changes, I have indicated the
input (prompts) I formulated and the IT application used with its
product name and version number/date.},
naustrian={Ich erkl\"are weiters, dass ich mich generativer KI-Tools lediglich als
Hilfsmittel bedient habe und in der vorliegenden Arbeit mein
gestalterischer Einfluss \"uberwiegt. Im Anhang \glqq\"Ubersicht verwendeter
Hilfsmittel\grqq\ habe ich alle generativen KI-Tools gelistet, die verwendet
wurden, und angegeben, wo und wie sie verwendet wurden. F\"ur
Textpassagen, die ohne substantielle \"Anderungen \"ubernommen wurden, haben
ich jeweils die von mir formulierten Eingaben (Prompts) und die
verwendete IT- Anwendung mit ihrem Produktnamen und Versionsnummer/Datum
angegeben.}]{AIStatement}%
\CreatePolylingual[
english=Overview of Generative AI Tools Used,
naustrian=Übersicht verwendeter Hilfsmittel]{AIToolsChapter}%
\CreatePolylingual[
english=Bachelor of Science,
naustrian=Bachelor of Science]{Bdeg}%
\CreatePolylingual[
english=Master of Science,
naustrian=Master of Science]{MdegMaster}%
\CreatePolylingual[
english=Diplom-Ingenieur,
naustrian=Diplom-Ingenieur]{MdegDiplMale}%
\CreatePolylingual[
english=Diplom-Ingenieurin,
naustrian=Diplom-Ingenieurin]{MdegDiplFemale}%
\CreatePolylingual[
english=Magister der Naturwissenschaften,
naustrian=Magister der Naturwissenschaften]{MdegRerNatMale}%
\CreatePolylingual[
english=Magistra der Naturwissenschaften,
naustrian=Magistra der Naturwissenschaften]{MdegRerNatFemale}%
\CreatePolylingual[
english=Magister der Sozial- und Wirtschaftswissenschaften,
naustrian=Magister der Sozial- und Wirtschaftswissenschaften]{%
MdegRerSocOecMale}%
\CreatePolylingual[
english=Magistra der Sozial- und Wirtschaftswissenschaften,
naustrian=Magistra der Sozial- und Wirtschaftswissenschaften]{%
MdegRerSocOecFemale}%
\CreatePolylingual[
english=Doktor der Naturwissenschaften,
naustrian=Doktor der Naturwissenschaften]{DdegRerNatMale}%
\CreatePolylingual[
english=Doktorin der Naturwissenschaften,
naustrian=Doktorin der Naturwissenschaften]{DdegRerNatFemale}%
\CreatePolylingual[
english=Doktor der Technischen Wissenschaften,
naustrian=Doktor der Technischen Wissenschaften]{DdegTechnMale}%
\CreatePolylingual[
english=Doktorin der Technischen Wissenschaften,
naustrian=Doktorin der Technischen Wissenschaften]{DdegTechnFemale}%
\CreatePolylingual[
english=Doktor der Sozial- und Wirtschaftswissenschaften,
naustrian=Doktor der Sozial- und Wirtschaftswissenschaften]{%
DdegRerSocOecMale}%
\CreatePolylingual[
english=Doktorin der Sozial- und Wirtschaftswissenschaften,
naustrian=Doktorin der Sozial- und Wirtschaftswissenschaften]{%
DdegRerSocOecFemale}%
\CreatePolylingual[
english=BACHELOR'S THESIS,
naustrian=BACHELORARBEIT]{BACHELORTHESIS}%
\CreatePolylingual[
english=MASTER'S THESIS,
naustrian=MASTERARBEIT]{MASTERTHESIS}%
\CreatePolylingual[
english=DIPLOMA THESIS,
naustrian=DIPLOMARBEIT]{DIPLOMATHESIS}%
\CreatePolylingual[
english=DISSERTATION,
naustrian=DISSERTATION]{DOCTORTHESIS}%
\newcommand{\settitle}[2]{%
\CreatePolylingual[english=#1,naustrian=#2]{Title}%
}%
\newcommand{\setsubtitle}[2]{%
\CreatePolylingual[english=#1,naustrian=#2]{Subtitle}%
}%
\newcommand{\setcurriculum}[2]{%
\CreatePolylingual[english=#1,naustrian=#2]{Curriculum}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\newsetlength}[2]{%
\newlength{#1}%
\setlength{#1}{#2}%
}%
\newcommand{\vutinfth@squarebullet}{\rule[0.47ex]{0.4ex}{0.4ex}}%
\newlength{\vutinfth@tmp@parindent}%
\newlength{\vutinfth@tmp@baselineskip}%
\newlength{\vutinfth@tmp@parskip}%
\newcommand{\vutinfth@savelayout}{%
\setlength{\vutinfth@tmp@parindent}{\parindent}%
\setlength{\vutinfth@tmp@baselineskip}{\baselineskip}%
\setlength{\vutinfth@tmp@parskip}{\parskip}%
}%
\newcommand{\vutinfth@restorelayout}{%
\setlength{\parindent}{\vutinfth@tmp@parindent}%
\setlength{\baselineskip}{\vutinfth@tmp@baselineskip}%
\setlength{\parskip}{\vutinfth@tmp@parskip}%
}%
\newsetlength{\vutinfth@logo@offset@x}{10.6mm}%
\newsetlength{\vutinfth@logo@offset@y}{22mm}%
\newsetlength{\vutinfth@logo@width@safe}{74mm}%
\newsetlength{\vutinfth@logo@height}{11mm}%
\newsetlength{\vutinfth@header@width}{\paperwidth - \vutinfth@logo@offset@x - \vutinfth@logo@offset@x}%
\newsetlength{\vutinfth@header@height}{\vutinfth@logo@height}%
\newsetlength{\vutinfth@header@separator}{-12mm}%
\newcommand{\vutinfth@header@titlepage}{%
\setlength{\unitlength}{1mm}%
\begin{picture}(74, 11)%
{\includegraphics[height=\vutinfth@logo@height]{Logo-schwarz.pdf}}
\end{picture}\hfill
}%
\newcommand{\vutinfth@footer@titlepage}{%
\centering
\begin{minipage}{\textwidth}%
\centering\vutinfth@normalsize\sffamily
Technische Universit\"{a}t Wien\\
A-1040 Wien \vutinfth@squarebullet\space
Karlsplatz 13 \vutinfth@squarebullet\space
Tel. +43-1-58801-0 \vutinfth@squarebullet\space
www.tuwien.at%
\end{minipage}%
}%
\makepagestyle{vutinfth@pagestyle@titlepage}%
\makerunningwidth{vutinfth@pagestyle@titlepage}[\textwidth]{%
\vutinfth@header@width}%
\makeheadposition{vutinfth@pagestyle@titlepage}{%
center}{center}{center}{center}%
\makeevenhead{vutinfth@pagestyle@titlepage}{}{%
\vutinfth@header@titlepage}{}%
\makeoddhead{vutinfth@pagestyle@titlepage}{}{%
\vutinfth@header@titlepage}{}%
\makefootrule{vutinfth@pagestyle@titlepage}{%
\vutinfth@pagestyle@titlepagefootrunwidth}{0.5pt}{\footruleskip}%
\makeevenfoot{vutinfth@pagestyle@titlepage}{}{%
\vutinfth@footer@titlepage}{}%
\makeoddfoot{vutinfth@pagestyle@titlepage}{}{%
\vutinfth@footer@titlepage}{}%
\newsetlength{\vutinfth@bigskipamount}{6mm}%
\newcommand{\vutinfth@bigskip}{\vspace{\vutinfth@bigskipamount}}%
\newcommand{\AdvisorBlock}{%
\ifundergraduate{%
\begin{minipage}[t][2.5cm][t]{\textwidth}%
\vutinfth@normalsize
\begin{tabular}{@{}l@{ }l}%
\vutinfth@polylingual@Advisor: &
\vutinfth@person@advisor@fullname\\
\ifdef{\vutinfth@person@firstassistant@def}{%
\vutinfth@polylingual@Assistance: &
\vutinfth@person@firstassistant@fullname\\
}{}%
\ifdef{\vutinfth@person@secondassistant@def}{%
\ifundef{\vutinfth@person@firstassistant@def}{%
\vutinfth@person@firstassistant@error
}{%
& \vutinfth@person@secondassistant@fullname\\
}%
}{}%
\ifdef{\vutinfth@person@thirdassistant@def}{%
\ifundef{\vutinfth@person@firstassistant@def}{%
\vutinfth@person@firstassistant@error
}{%
\ifundef{\vutinfth@person@secondassistant@def}{%
\vutinfth@person@secondassistant@error
}{%
& \vutinfth@person@thirdassistant@fullname\\
}%
}%
}{}%
\end{tabular}%
\end{minipage}%
}%
\ifgraduate{%
\begin{minipage}[t][1.6cm][t]{\textwidth}%
\vutinfth@normalsize
\vutinfth@polylingual@Advisor:
\vutinfth@person@advisor@fullname
\ifdef{\vutinfth@person@secondadvisor@def}{%
\\
\vutinfth@polylingual@Secondadvisor:
\vutinfth@person@secondadvisor@fullname
}{}%
\end{minipage}\par%
}%
}%
\newsetlength{\vutinfth@signature@height}{25mm}%
\newsetlength{\vutinfth@signature@width}{51mm}%
\newsetlength{\vutinfth@placedate@width}{50mm}%
\newcommand{\SignatureFields}[3][n]{%
{\vutinfth@normalsize
\ifstrequal{#1}{y}{%
\begin{minipage}[b][\vutinfth@signature@height]{%
\vutinfth@placedate@width
}%
\vutinfth@polylingual@Place,
\DTMusedate{vutinfth@date@signing}\vspace*{\baselineskip}%
\end{minipage}%
\hfill
}{}%
\ifstrequal{#1}{n}{}{}%
\ifstrequal{#1}{h}{%
\hspace*{\vutinfth@placedate@width}%
\hfill
}{}%
\ifstrempty{#2}{%
\hspace*{\vutinfth@signature@width}%
\hfill
}{%
\begin{minipage}[b][\vutinfth@signature@height]{%
\vutinfth@signature@width
}%
\centering
\rule{\vutinfth@signature@width}{0.5pt}\\
#2%
\end{minipage}%
\hfill
}%
\ifstrempty{#3}{}{%
\begin{minipage}[b][\vutinfth@signature@height]{%
\vutinfth@signature@width
}%
\centering
\rule{\vutinfth@signature@width}{0.5pt}\\
#3%
\end{minipage}%
}%
}%
}%
\newcommand{\ReviewerBlock}{%
\ifgraduate{%
{\vutinfth@normalsize
\vutinfth@polylingual@Reviewed\\
\SignatureFields[h]{%
\vutinfth@person@firstreviewer@name
}{%
\vutinfth@person@secondreviewer@name
}%
}%
}%
}%
\newcommand{\SignatureBlock}{%
\ifundergraduate{%
{\vutinfth@normalsize
\SignatureFields[y]{%
\vutinfth@person@author@name
}{%
\vutinfth@person@advisor@name
}%
}%
}%
\ifgraduate{%
{\vutinfth@normalsize
\SignatureFields[y]{}{%
\vutinfth@person@author@name
}%
}%
}%
}%
\newcommand{\AddTitlePage}{
\thispagestyle{vutinfth@pagestyle@titlepage}%
\newgeometry{%
left=2.4cm,right=2.4cm,bottom=2.5cm,top=2cm,
headsep=\vutinfth@header@separator,
head=\vutinfth@header@height
}%
\vutinfth@savelayout
\setlength{\parindent}{0pt}%
\setlength{\baselineskip}{13.6pt}%
\setlength{\parskip}{0pt plus 1pt}%
\begin{SFFont}{phv}%
\sffamily
{\centering
\vspace*{1.2cm}\par
\begin{minipage}[t][5cm][b]{\textwidth}%
\centering
\vutinfth@HUGE{\bfseries\vutinfth@polylingual@Title}\\
\bigskip
\vutinfth@huge{\bfseries
\ifdef{\vutinfth@polylingual@Subtitle}{%
\vutinfth@polylingual@Subtitle}{%
}%
}%
\end{minipage}\par
\vutinfth@bigskip\vutinfth@bigskip
{\vutinfth@LARGE\vutinfth@polylingual@thesisname}\par
\vutinfth@bigskip
{\vutinfth@large\vutinfth@polylingual@submission}\par
\vutinfth@bigskip
\ifundergraduate{%
{\vutinfth@LARGE{\bfseries\vutinfth@polylingual@degreename}}\par
\vutinfth@bigskip
{\vutinfth@large\vutinfth@polylingual@in}\par
\vutinfth@bigskip
{\vutinfth@Large{\bfseries\vutinfth@polylingual@Curriculum}}\par
}%
\ifgraduate{%
{\vutinfth@LARGE{\bfseries\vutinfth@polylingual@degreename}}\par
}%
\vutinfth@bigskip
{\vutinfth@large\vutinfth@polylingual@by}\par
\vutinfth@bigskip
{\vutinfth@Large{\bfseries\vutinfth@person@author@fullname}}\par
\smallskip
{\vutinfth@large\vutinfth@polylingual@Registrationnumber\
\vutinfth@data@regnumber}\par
}%
\vutinfth@bigskip\vutinfth@bigskip
\begin{minipage}[b][1.6cm][c]{\textwidth}%
\vutinfth@normalsize%
\vutinfth@polylingual@faculty\par
\vutinfth@polylingual@university
\end{minipage}\par
\AdvisorBlock\par
\vfill
\ReviewerBlock\par
\SignatureBlock\par
\vspace*{1cm}%
\end{SFFont}%
\pagestyle{empty}%
\cleardoublepage
\vutinfth@restorelayout
\restoregeometry
}%
\newcommand{\AddStatementPage}{
\vutinfth@savelayout
\setlength{\parindent}{0pt}%
\setlength{\baselineskip}{13.6pt}%
\setlength{\parskip}{0pt plus 1pt}%
\begin{SFFont}{phv}%
\sffamily
\chapter*{\vutinfth@polylingual@StatementChapter}%
\vutinfth@person@author@fullname\par
\vspace{1.2cm}%
{\normalfont\vutinfth@polylingual@Statement}\par
{\normalfont\vutinfth@polylingual@AIStatement}\par
\vspace{1.2cm}%
\SignatureFields[y]{\vutinfth@person@author@name}{}%
\end{SFFont}%
\cleardoublepage
\vutinfth@restorelayout
}%
\newcommand{\addtitlepage}[1]{%
\selectlanguage{#1}%
\AddTitlePage
}%
\newcommand{\addstatementpage}{%
\selectlanguage{naustrian}%
\AddStatementPage
}%
\newenvironment{acknowledgements}{%
\selectlanguage{english}%
\chapter{Acknowledgements}%
}{%
\cleardoublepage
}%
\newenvironment{acknowledgements*}{%
\selectlanguage{english}%
\chapter*{Acknowledgements}%
}{%
\cleardoublepage
}%
\newenvironment{danksagung}{%
\selectlanguage{naustrian}%
\chapter{Danksagung}%
}{%
\cleardoublepage
}%
\newenvironment{danksagung*}{%
\selectlanguage{naustrian}%
\chapter*{Danksagung}%
}{%
\cleardoublepage
}%
\renewenvironment{abstract}{%
\selectlanguage{english}%
\chapter{Abstract}%
}{%
\cleardoublepage
}%
\newenvironment{abstract*}{%
\selectlanguage{english}%
\chapter*{Abstract}%
}{%
\cleardoublepage
}%
\newenvironment{kurzfassung}{%
\selectlanguage{naustrian}%
\chapter{Kurzfassung}%
}{%
\cleardoublepage
}%
\newenvironment{kurzfassung*}{%
\selectlanguage{naustrian}%
\chapter*{Kurzfassung}%
}{%
\cleardoublepage
}%
\newenvironment{aitools}{%
\selectlanguage{english}%
\chapter[\vutinfth@AIToolsChapter@english]{\vutinfth@polylingual@AIToolsChapter}%
}{%
\cleardoublepage
}%
\newenvironment{aitools*}{%
\selectlanguage{english}%
\chapter*{\vutinfth@polylingual@AIToolsChapter}%
}{%
\cleardoublepage
}%
\newenvironment{kitools}{%
\selectlanguage{naustrian}%
\chapter[\vutinfth@AIToolsChapter@naustrian]{\vutinfth@polylingual@AIToolsChapter}%
}{%
\cleardoublepage
}%
\newenvironment{kitools*}{%
\selectlanguage{naustrian}%
\chapter*{\vutinfth@polylingual@AIToolsChapter}%
}{%
\cleardoublepage
}%
\makepagestyle{vutinfth@pagestyle@default}%
\makeevenfoot{vutinfth@pagestyle@default}{\thepage}{}{}%
\makeoddfoot{vutinfth@pagestyle@default}{}{}{\thepage}%
\aliaspagestyle{chapter}{vutinfth@pagestyle@default}%
\aliaspagestyle{part}{vutinfth@pagestyle@default}%
\addto\frontmatter{\pagestyle{vutinfth@pagestyle@default}}%
\addto\mainmatter{\pagestyle{Ruled}}%
\addto\backmatter{\pagestyle{vutinfth@pagestyle@default}}%
\endinput
%%
%% End of file `vutinfth.cls'.