\RequirePackage[utf8]{inputenc} % remove when using lualatex oder xelatex!
\RequirePackage{hgbpdfa}        % Creates a PDF/A-2b compliant document

\documentclass[english]{hgbarticle}

%%%----------------------------------------------------------
\begin{document}
%%%----------------------------------------------------------

\title{The \textsf{hagenberg-thesis} Package}
\date{\hgbDate}

\author{W.\ Burger and W.\ Hochleitner\\[10pt]
University of Applied Sciences Upper Austria\\
Department of Digital Media, Hagenberg (Austria)}

%%%----------------------------------------------------------
\maketitle
%%%----------------------------------------------------------

\begin{abstract}\noindent
The \textsf{hagenberg-thesis} package is a collection of modern LaTeX
templates for university theses (bachelor, master, diploma or PhD programs) and
related documents. This manual describes the main features of this package
and how they may be customized.
Pre-configured document templates for English and German manuscripts and a
complete tutorial are available on the package's home repository.
\end{abstract}

\clearpage
\tableofcontents
\clearpage

\section{Introduction}

The complete source of this package and auxiliary materials are available on
CTAN%
\footnote{\url{https://ctan.org/pkg/hagenberg-thesis}}
and its development repository.%
\footnote{\url{https://github.com/Digital-Media/HagenbergThesis}}
The package is made available under the terms of the Creative Commons
Attribution 4.0 International Public License.%
\footnote{\url{https://creativecommons.org/licenses/by/4.0/legalcode}}


\section{Document classes}

The \texttt{hgb} package provides the following document classes, which are
based on the standard \latex\ classes \texttt{book}, \texttt{report}, and
\texttt{article}, respectively:
%
\begin{itemize}
    \item \textbf{\texttt{hgbthesis}} (\texttt{book}):
    for bachelor's, master's, diploma, and PhD theses,
    \item \textbf{\texttt{hgbreport}} (\texttt{report}):
    for project and term reports,
    \item \textbf{\texttt{hgbarticle}} (\texttt{article}):
    for drafting journal articles.
\end{itemize}


\subsection{Class options}

\subsubsection{General options}

All document classes accept the following general options:
%
\begin{itemize}
    \item \texttt{english}|\texttt{german}: specifies the main document language,%
		\footnote{With class \texttt{hgbthesis} this is equivalent to \texttt{language=english|german}.}
	  \item \texttt{oneside}|\texttt{twoside}: document layout (default is \texttt{oneside}),
    \item \texttt{smartquotes}: use smart quotes replacement (\verb!"!...\verb!"! $\rightarrow$ ``...''),
    \item \texttt{apa} (use \texttt{apa} bibliography style instead of
    \texttt{numeric-comp}),
    \item \texttt{noUpdateCheck} (suppress check of package release date).
\end{itemize}


\subsubsection{Class-specific options}

In addition, the following class-specific options are accepted:

\noindent\textbf{\texttt{hgbthesis}}:
	\begin{itemize}
		\item \texttt{type=}%
			\{\texttt{bachelor}|\texttt{master}|\texttt{diploma}|\texttt{phd}|\texttt{internship}|\texttt{custom}\}:
				thesis type,
		\item \texttt{language=}\{\texttt{english}|\texttt{german}\}: main document language,%
			\footnote{Note: The \texttt{german} option implicitly loads Babel's \texttt{ngerman} setup. 
			When switching languages (see Sec.~\ref{sec:LanguageSwitchingCommands}) only \texttt{german}
			should be used.}
		\item \texttt{titlelanguage=}\{\texttt{english}|\texttt{german}\}: 
			language on title pages, defaults to main document language if omitted,
		\item \texttt{proposal}: flag to indicate proposal documents.
	\end{itemize}

\noindent\textbf{\texttt{hgbreport}}:
	\begin{itemize}
		\item \texttt{notitlepage}: no separate title page.
	\end{itemize}
		
\noindent\textbf{\texttt{hgbarticle}}:
	\begin{itemize}
		\item \texttt{twocolumn}: two-column page layout,
		\item \texttt{review}: review mode with line numbers.
	\end{itemize}

\noindent
For example, to start a master's thesis in German, simply place
%
\begin{LaTeXCode}[numbers=none]
\documentclass[type=master,language=german,smartquotes]{hgbthesis}
\end{LaTeXCode}
%
at the beginning of the document.

The \texttt{proposal} option is intended for a \emph{thesis proposal} (``Exposé'' or ``Proposal'' ) and is 
only effective in \emph{conjunction} with the main thesis types, \eg,
%
\begin{LaTeXCode}[numbers=none]
\documentclass[type=bachelor,language=english,titlelanguage=german,proposal]{hgbthesis}
\end{LaTeXCode}
%
The result is a short exposé that contains only one chapter. Thus,
chapter numbers are not displayed. Remove the \texttt{proposal} option to
migrate a proposal document straight to the final thesis (and restore the usual
numbering scheme).

The example also shows that the main document language (\texttt{language=english}) and the
language on the title page (\texttt{titlelanguage=german}) can be set independently.

\subsection{Thesis settings (class \texttt{hgbthesis})}

\texttt{hgbthesis} supports several types of thesis documents. The following
parameters must be specified at the beginning of the main document:
%
\begin{itemize}
    \item \verb!\title{...}!,
    \item \verb!\subtitle{...}! (optional),
    \item \verb!\author{...}!,
    \item \verb!\programtype{...}! (optional), 
    \item \verb!\programname{...}!,
    \item \verb!\institution{...}!,
    \item \verb!\placeofstudy{...}!,
    \item \verb!\dateofsubmission{yyyy}{mm}{dd}!,
    \item \verb!\advisor[]{...}! (optional, multiple \verb!\advisor! statements allowed),
\end{itemize}
%
Note that \texttt{hgbthesis} only supports a \emph{single author} inside the
\verb!\author{...}! macro argument (commands \verb!\and! and
\verb!\thanks{...}! are deactivated)!

The command \verb!\advisor[role]{name}! accepts an optional argument to associate a \emph{role} 
with the advisor's \emph{name}, \eg, \verb!\advisor[Supervisor]{Prof.~Marie Curie, PhD}!.
Multiple advisors can be specified, for example
%
\begin{LaTeXCode}[numbers=none]
  \advisor[1.~Betreuerin]{Professor Frida K.~Putnik, PhD}
  \advisor[2.~Betreuer]{Franz Grillparzer, TU Wien}
  \advisor[Gutachter]{Dr.~B.\,Rutal, MIT}
\end{LaTeXCode}

\noindent
Other (optional) settings for \texttt{hgbthesis} include:
\begin{itemize}
    \item \verb!\license{cc|strict}!:
    Use the \emph{Creative Commons License} (\texttt{cc} = default) or strict license terms
      (``all rights reserved'').
    \item \verb!\logofile{xxx.pdf}!:
    %Specifies a custom logo image for the title page, to be placed in \verb!images/xxx.pdf!
    %(default is \texttt{logo.pdf}). 
		This command is \textbf{deprecated} -- the thesis logo 
		should be specified in the associated \emph{theme} file instead (see Sec.~\ref{sec:Themes}).
\end{itemize}

\section{Style files and user commands}

The package comes with a set of style (\texttt{*.sty}) files that can be used
independently of the document classes listed above:
\begin{itemize}
  \item \texttt{hgb.sty}: language and date setup, custom commands;
  \item \texttt{hgbabbrev.sty}: various abbreviation macros;
  \item \texttt{hgbalgo.sty}: additions to \texttt{algpseudocodex} package;
  \item \texttt{hgbbib.sty}: bibliography setup;
  \item \texttt{hgbdict.sty}: language dictionary functions;
  \item \texttt{hgbheadings.sty}: definition of page headers;
  \item \texttt{hgblistings.sty}: setup for code listings;
  \item \texttt{hgbmath.sty}: setup and commands for math typesetting;
  \item \texttt{hgbpdfa.sty}: setup for PDF/A generation.
\end{itemize}

\subsection{General user commands and environments (\texttt{hgb.sty})}
\label{sec:GeneralUserCommands}

\begin{itemize}
   \item \textbf{\texttt{{\bs}hgbDate}}: Outputs the package version date,
    \eg, ``\texttt{\hgbDate}''.
	\item \textbf{\texttt{{\bs}getcurrentlabel}}:
			Yields the most recently assigned label number.
   \item \textbf{\texttt{{\bs}calibrationbox}}\verb!{width}{height}!:
			Inserts a test box for checking the final print size (in millimeters).
	\item \verb!\begin{block}...\end{block}!:
			Dummy environment, provides a limited scope for variable/command redefinitions.
\end{itemize}


\subsection{Language switching commands and smart quotes (\texttt{hgb.sty})}
\label{sec:LanguageSwitchingCommands}

\begin{itemize}
	\item \verb!\SetLanguage{<language>}!:
    Switches to the specified language.
		This and the other language switching commands listed below
		also refresh the \texttt{smartquotes} settings (if activated).
	\item \verb!\begin{SwitchLanguage}{<language>}...\end{SwitchLanguage}!:
    Temporarily switches to the specified language and reverts to the current language 
		afterwards. 
	\item \verb!\begin{english}...\end{english}!:
    Temporarily switches to English language settings, short for
		\verb!\begin{SwitchLanguage}{english}..!.
	\item \verb!\begin{german}...\end{german}!:
    Temporarily switches to German language settings, short for
		\verb!\begin{SwitchLanguage}{german}..!.
	\item \verb!\SmartquotesActive!:
		For debugging only. Returns \texttt{true}/\texttt{false} if smart quotes are activated in
		the current context (or an appropriate message if the \texttt{csquotes} package was not loaded at all).
\end{itemize}


\subsection{Text commands (\texttt{hgbabbrev.sty})}

\subsubsection*{Special characters:}

\begin{itemize}
    \item \textbf{\texttt{{\bs}bs}}: Inserts a backslash character (short for
    \verb!\textbackslash!).
    \item \textbf{\texttt{{\bs}obnh}}: Inserts an optional break with no
    hyphen (\eg, \verb!PlugIn{\obnh}Filter!).
\end{itemize}


\subsubsection*{German abbreviations:}

\begin{itemize}
    \item \textbf{\texttt{{\bs}bzgl}}: 	\bzgl
    \item \textbf{\texttt{{\bs}bzw}}: 	\bzw
    \item \textbf{\texttt{{\bs}ca}}: 		\ca
    \item \textbf{\texttt{{\bs}dah}}: 	\dah
    \item \textbf{\texttt{{\bs}Dah}}: 	\Dah
    \item \textbf{\texttt{{\bs}ds}}: 		\ds
    \item \textbf{\texttt{{\bs}etc}}: 	\etc
    \item \textbf{\texttt{{\bs}evtl}}: 	\evtl
    \item \textbf{\texttt{{\bs}ia}}: 		\ia
		\item \textbf{\texttt{{\bs}oa}}: 		\oa
    \item \textbf{\texttt{{\bs}sa}}: 		\sa
    \item \textbf{\texttt{{\bs}so}}: 		\so
    \item \textbf{\texttt{{\bs}su}}: 		\su
    \item \textbf{\texttt{{\bs}ua}}: 		\ua
    \item \textbf{\texttt{{\bs}Ua}}: 		\Ua
    \item \textbf{\texttt{{\bs}uae}}: 	\uae
    \item \textbf{\texttt{{\bs}usw}}: 	\usw
    \item \textbf{\texttt{{\bs}uva}}: 	\uva
    \item \textbf{\texttt{{\bs}uvm}}: 	\uvm
    \item \textbf{\texttt{{\bs}va}}: 		\va
    \item \textbf{\texttt{{\bs}vgl}}: 	\vgl
    \item \textbf{\texttt{{\bs}zB}}: 		\zB
    \item \textbf{\texttt{{\bs}ZB}}: 		\ZB
\end{itemize}

\subsubsection*{English abbreviations:}

\begin{itemize}
    \item \textbf{\texttt{{\bs}ie}}: 	\ie
    \item \textbf{\texttt{{\bs}eg}}: 	\eg
    \item \textbf{\texttt{{\bs}etc}}: \etc
    \item \textbf{\texttt{{\bs}Eg}}: 	\Eg
    \item \textbf{\texttt{{\bs}wrt}}: \wrt
\end{itemize}

\noindent
Note that none of the above abbreviation macros ``eats'' subsequent white
space, \ie, they can be used without additional controls, as in
``\verb!\wrt what I said!'', for example.

\subsection{Bibliography commands (\texttt{hgbbib.sty})}

\begin{itemize}
    \item 
    \textbf{\texttt{{\bs}AddBibFile}}\newline
    A wrapper to \texttt{biblatex}'s \verb!\addbibresource! macro (for backward compatibility only).
    \item
    \textbf{\texttt{{\bs}MakeBibliography}}[\emph{options}]
    \newline
    Inserts the
    reference section or chapter. By default, references are automatically
    split into category subsections.%
    \footnote{Predefined reference categories are \texttt{literature},
        \texttt{avmedia}, \texttt{online} and \texttt{software}.}
    Use the option \texttt{nosplit} to produce a traditional (\ie,
    contiguous) list of references.
    \item
    \textbf{\texttt{{\bs}mcite}}%
        [\emph{text1}]\{\emph{key1}\}%
        [\emph{text2}]\{\emph{key2}\}%
        \ldots
        [\emph{textN}]\{\emph{keyN}\}%
    \newline
    Analogous to \texttt{bib\-la\-tex}'s \texttt{{\bs}cites} command%
    \footnote{%
    \url{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf}
    (see Sec.~3.8.3)} but inserts semicolons between reference entries for
    better readability.
\end{itemize}

% \MakeBibliography ... creates a reference section split subsections (default)
% \MakeBibliography[nosplit] ... creates a one-piece reference section


\subsection{Code environments (\texttt{hgblistings.sty})}

The following types of code environments are defined:%
%
\begin{itemize}
    \item \textbf{\texttt{CCode}}: for C (ANSI),
    \item \textbf{\texttt{CppCode}}: for C++ (ISO),
    \item \textbf{\texttt{CsCode}}: for C\#,
    \item \textbf{\texttt{CssCode}}: for CSS,
    \item \textbf{\texttt{GenericCode}}: for generic code,
    \item \textbf{\texttt{HtmlCode}}: for HTML,
    \item \textbf{\texttt{JavaCode}}: for Java,
    \item \textbf{\texttt{JsCode}}: for JavaScript,
    \item \textbf{\texttt{LaTeXCode}}: for \latex,
    \item \textbf{\texttt{ObjCCode}}: for ObjectiveC,
    \item \textbf{\texttt{PhpCode}}: for PHP,
    \item \textbf{\texttt{PythonCode}}: for Python,
    \item \textbf{\texttt{ScalaCode}}: for Scala,
    \item \textbf{\texttt{Swift}}: for Swift,
    \item \textbf{\texttt{XmlCode}}: for XML.
\end{itemize}
%
\texttt{hgblistings} is based on the \texttt{listingsutf8}%
\footnote{\url{https://ctan.org/pkg/listingsutf8}}
package, thus any valid \texttt{listings}%
\footnote{\url{https://ctan.org/pkg/listings}}
option may be used; for example, the option \texttt{numbers=none} to suppress
line numbers:
%
\begin{LaTeXCode}[numbers=none]
    \begin{JavaCode}[numbers=none]
    ... // Java code comes here
    \end{JavaCode}
\end{LaTeXCode}


\subsection{Mathematical commands (\texttt{hgbmath.sty})}

\texttt{hgbmath} requires (and automatically loads) the \texttt{amsmath}%
\footnote{\url{https://ctan.org/pkg/amsmath}}
package, thus, all commands and symbols of \texttt{amsmath} are available by
default. The following \emph{additional} commands can only be used in math mode:
%
\begin{itemize}
    \item \textbf{\texttt{{\bs}Cpx}}: $\Cpx$ (complex numbers),
    \item \textbf{\texttt{{\bs}N}}: $\N$ (natural numbers),
    \item \textbf{\texttt{{\bs}R}}: $\R$ (real numbers),
    \item \textbf{\texttt{{\bs}Q}}: $\Q$ (rational numbers),
    \item \textbf{\texttt{{\bs}Z}}: $\Z$ (integer numbers).
\end{itemize}


\subsection{Algorithms (\texttt{hgbalgo.sty})}

\texttt{hgbalgo} is a stand-alone package that is based on -- and extends --
the \texttt{algorithmicx} and \texttt{algpseudocodex} packages.%
\footnote{\url{https://ctan.org/pkg/algorithmicx},
    \url{https://ctan.org/pkg/algpseudocodex}}
It fixes some (mostly indentation-related) problems, adds color, and provides
some additional commands. It also loads the \texttt{algorithm}%
\footnote{\url{https://ctan.org/pkg/algorithms}}
package, which defines a compatible float container for algorithms:
\verb!\begin{algorithm}! \verb!...! \verb!\end{algorithm}!.

\paragraph{Additional algorithm commands:}
\begin{itemize}
    \item
    \textbf{\texttt{{\bs}StateNN[<nesting>]\{<text>\}}}:
    Creates a \emph{non-numbered} statement like \texttt{algo\-rith\-micx}'s
    \verb!\Statex! command but provides controlled indentation inside nested
    constructs. The optional integer argument \verb!<nesting>! can be used to
    specify the \emph{nesting depth} to compensate for a bug in
    \texttt{algorithmicx} (the nesting level inside a block is not set
    properly before the first \verb!\State! command). Omitting the optional
    argument should give correct indentation in most situations.
    \item
    \textbf{\texttt{{\bs}Input\{<text>\}}}:
    For describing the input parameters in a procedure's preamble.
    \item
    \textbf{\texttt{{\bs}Output\{<text>\}}}:
    For describing the output values in a procedure's preamble.
    \item
    \textbf{\texttt{{\bs}Returns\{<text>\}}}:
    For describing the return values in a procedure's preamble.
\end{itemize}

\paragraph{Vertical spacing commands:}
The following commands are provided for fine-tuning the vertical spacing
between individual statements of an algorithm (the standard spacing commands
like \verb!\smallskip! \etc\ have no effect between statements):%
\footnote{Note that the standard spacing commands work \emph{between}
\texttt{procedure} and \texttt{function} blocks in the usual way.}
\begin{itemize}
    \item \textbf{{\bs}\texttt{algsmallskip}}: inserts 3pt extra space,
    \item \textbf{{\bs}\texttt{algmedskip}}: inserts 6pt extra space,
    \item \textbf{{\bs}\texttt{algbigskip}}: inserts 12pt extra space.
\end{itemize}
They are supposed to be used inside (\ie, at the end of) statements, for
example:
%
\begin{LaTeXCode}[numbers=none]
    \State $x \gets x + 1$ \algsmallskip
\end{LaTeXCode}

\paragraph{Defined algorithm colors:}
\begin{itemize}
    \item \textbf{\texttt{AlgKeywordColor}}: for algorithm keywords,
    \item \textbf{\texttt{AlgProcedureColor}}: for procedure and function names.
\end{itemize}
These colors can be redefined at any time (see the \texttt{xcolor}%
\footnote{\url{https://ctan.org/pkg/xcolor}}
package), \eg, by
\begin{LaTeXCode}[numbers=none]
    \definecolor{AlgKeywordColor}{named}{black}
    \definecolor{AlgProcedureColor}{rgb}{0.0, 0.5, 0.0}     % dark green
\end{LaTeXCode}


\subsection{PDF/A generation (\texttt{hgbpdfa.sty})}

Package \texttt{hgbpdfa} contains definitions for generating PDF/A-compliant 
(PDF/A-2b) output files. It is based on the \texttt{pdfmanagement-testphase}
package (requires version 0.95s or higher) and must be loaded before the
\verb!\documentclass! statement in the main document, for example, by
\begin{LaTeXCode}[numbers=none]
\RequirePackage{hgbpdfa}
\end{LaTeXCode}
If omitted, a plain PDF (non-PDF/A-compliant) file is generated.



\section{Custom front pages using \emph{themes}}
\label{sec:Themes}

The content and structure of the front pages generated for the various thesis types
(\texttt{bachelor}, \texttt{master} \etc) may be easily customized to meet the specific
requirements of different institutions or departments.
Note that this kind of customization is typically done at the institutional level and not
by the individual author (student).


\subsection{Preconfigured themes}

The various front page arrangements are called \emph{themes} in the following.
Each theme is identified by a unique \texttt{\textit{themeID}} and associated with a 
particular style file (\latex\ package) named 
\texttt{hgbtheme-\textit{themeID}.sty}.
For example, the theme with \texttt{\textit{themeID}} = \texttt{default} is defined 
by the associated file
\begin{itemize}
  \item[] \texttt{hgbtheme-default.sty}.
\end{itemize}
%
Additional resources required by a theme (such as graphics files) must be named with the 
complete \emph{theme name} (\texttt{hgbtheme-\textit{themeID}})
as a prefix, for example,%
\footnote{This is to avoid file name conflicts since themes are part of the 
CTAN distribution and thus all theme-related files will eventually end up in a single, 
flat directory.}
\begin{itemize}
	\item[] \texttt{hgbtheme-default-logo.pdf}
\end{itemize}
%
which contains the logo graphics used by that theme.

To \emph{use} a specific theme, option \texttt{theme=\textit{themeID}}
is added to the \verb!\documentclass! command, for example,
\begin{itemize}
	\item[] \verb!\documentclass[theme=default,...]{hgbthesis}!
\end{itemize}


\subsection{Customizing themes}
\label{sec:CustomizingThemes}

To customize the title page setup to their needs, authors (or administrators) should 
\emph{not} modify any of the standard theme files, since these may not be local but loaded
from a package distribution.
There are two recommended ways instead:

\subsubsection{Option 1: Adapt \texttt{hgbtheme-custom.sty}}

Copy the theme file \texttt{hgbtheme-custom.sty} (which is part of this distribution) to the 
\emph{main document directory} (if not there already) and open it in your LaTeX editor.
It defines \texttt{hgbtheme-default.sty} as the parent theme by the initial command
\begin{LaTeXCode}[numbers=none]
\hgb@UseTheme{default}
\end{LaTeXCode}
%
All commands defined in the parent theme are visible and may be redefined,
typically by \verb!\renewcommand! (see Sec.\ \ref{sec:ThemeStyleCommands}
for available commands).
To activate the associated theme simply use \texttt{custom} as the \texttt{\textit{themeID}}
in the associated document option, \ie,
%
\begin{LaTeXCode}[numbers=none]
\documentclass[theme=custom,...]{hgbthesis}
\end{LaTeXCode}
%
This is the simplest approach if only a \emph{single} custom theme is needed.

\subsubsection{Option 2: Create multiple custom themes}

Thesis administrators may find it useful to define \emph{multiple} custom themes for their
institution or department(s).
For this purpose, simply copy file \texttt{hgbtheme-default.sty} or \texttt{hgbtheme-custom.sty}
to a new file, \eg, \texttt{hgbtheme-physics.sty},%
\footnote{To be placed in the main document directory. Note the naming conventions!}
and modify it accordingly. The associated theme can then be invoked by
%
\begin{LaTeXCode}[numbers=none]
\documentclass[theme=physics,...]{hgbthesis}
\end{LaTeXCode}
%
An error will be raised if the associated \texttt{.sty} file cannot be found.



\subsection{Commands and variables available to custom theme styles}
\label{sec:ThemeStyleCommands}

Any theme style must at least define the command
\begin{itemize}
  \item[] \verb!\hgb@MakeFrontPages{..}!
\end{itemize}
which is pre-defined (as throwing an error) in \texttt{hgbthesis.cls}
and invoked by \verb!\maketitle!.
If \texttt{default} is used as the parent theme, \verb!\hgb@MakeFrontPages! 
is already set up properly and redefinition is optional, \ie,
%
\begin{LaTeXCode}[numbers=none]
\hgb@UseTheme{default}		% parent theme
\renewcommand{\hgb@MakeFrontPages}{..}	% optional
\end{LaTeXCode}
%

\noindent
Moreover, the following macros and variables are assured to be available for defining custom themes
(see \texttt{hgbtheme-default.sty} for their typical usage).
These are defined in \texttt{hgbthesis.cls} and should \emph{not} be redefined:
%
\begin{itemize}
  \item[] \verb!\hgb@Author!
  \item[] \verb!\hgb@Title!
  \item[] \verb!\hgb@SubTitle!
  \item[] \verb!\hgb@Institution!
  \item[] \verb!\hgb@ProgramType!
  \item[] \verb!\hgb@ProgramName!
  \item[] \verb!\hgb@PlaceOfStudy!
\medskip
	\item[] \verb!\hgb@ThesisName!
	\item[] \verb!\hgb@ProposalName!
\medskip
  \item[] \verb!\hgb@AdvisorCount!
  \item[] \verb!\hgb@getAdvisorRole{<number>}!
  \item[] \verb!\hgb@getAdvisorName{<number>}!
\medskip
  \item[] \verb!\hgb@MainLanguage!
  \item[] \verb!\hgb@TitleLanguage!
  \item[] \verb!\hgb@TitlePageFont!
  %\item[] \verb!\hgb@LogoFile!
\medskip 
  %\item[] \verb!\hgb@Advisor!
  \item[] \verb!\hgb@SubmissionYear!
  \item[] \verb!\hgb@SubmissionMonth!
  \item[] \verb!\hgb@SubmissionDay!
  \item[] \verb!\hgb@GetMonthName{<language>}{<monthnumber>}!
\medskip
	\item[] \verb!\hgb@License!
\medskip
  \item[] \verb!hgb@IsProposal! (\emph{boolean}, without \verb!\!)
\end{itemize}

\noindent
Class \texttt{hgbthesis.cls} also defines a special \emph{hook}
\begin{itemize}
\item[] \verb!hgb@InitThemeHook!
\end{itemize}
for adding custom initialization code for the current theme in the form
%
\begin{LaTeXCode}[numbers=none]
\AddToHook{hgb@InitThemeHook}{<initialization code>},
\end{LaTeXCode}
%
typically placed at the beginning of the theme file. The collected code for
this hook is executed immediately \emph{before} \verb!\maketitle!.


In addition, theme \texttt{hgbtheme-default.sty} defines the following
commands for generating individual title pages:
%
\begin{itemize}
  \item[] \verb!\hgb@MakeTitlePage!
  \item[] \verb!\hgb@MakeAdvisorPage!
  \item[] \verb!\hgb@MakeCopyrightPage!
  \item[] \verb!\hgb@MakeDeclarationPage!
\end{itemize}
%
Each of these may be redefined by inheriting themes.

\section{Package dependencies}

\begin{sloppypar}
The \texttt{hagenberg-thesis} package builds on the following \latex\ packages:\newline
\texttt{abstract}, 
\texttt{algorithm}, 
\texttt{algorithmicx}, 
\texttt{algpseudocodex}, 
\texttt{amsbsy}, 
\texttt{amsfonts}, 
\texttt{amsmath}, 
\texttt{amssymb}, 
\texttt{babel}, 
\texttt{biblatex}, 
\texttt{breakurl}, 
\texttt{caption}, 
\texttt{cmap}, 
\texttt{csquotes}, 
\texttt{datetime2}, 
\texttt{enumitem}, 
\texttt{epstopdf}, 
\texttt{exscale},
\texttt{extramarks},
\texttt{fancyhdr}, 
\texttt{float}, 
\texttt{fontenc},
\texttt{forloop},
\texttt{geometry}, 
\texttt{graphicx}, 
\texttt{hypcap}, 
\texttt{hyperref}, 
\texttt{ifpdf}, 
\texttt{inputenc}, 
\texttt{lengthconvert},
\texttt{lineno},
\texttt{listingsutf8}, 
\texttt{lmodern},
\texttt{marvosym}, 
\texttt{moreverb}, 
\texttt{overpic}, 
\texttt{pdfmanagement-testphase}, 
\texttt{pdfpages}, 
\texttt{pict2e}, 
\texttt{subdepth}, 
\texttt{titlesec}, 
\texttt{titling},
\texttt{tocbasic},
\texttt{url}, 
\texttt{upquote}, 
\texttt{verbatim}, 
\texttt{xcolor}, 
\texttt{xifthen},
\texttt{xstring},
\texttt{xspace}.
\end{sloppypar}

\end{document}
