\documentclass[english]{hgbarticle} \RequirePackage[utf8]{inputenc} % remove when using lualatex oder xelatex! \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)} %\author{ %Wilhelm Burger, Wolfgang Hochleitner\\ %\texttt{wilhelm.burger@fh-ooe.at} %\and %Wolfgang Hochleitner\\ %\texttt{wolfgang.hochleitner@fh-ooe.at}} %%%---------------------------------------------------------- \begin{document} %%%---------------------------------------------------------- \maketitle %%%---------------------------------------------------------- \begin{abstract}\noindent The \textsf{hagenberg-thesis} package is a collection of modern LaTeX templates for university theses (bachelor, master or diploma programs) and related documents. This manual describes the main features of this package. Pre-configured document templates for English and German manuscripts and a complete tutorial are available on the package's home repository. \end{abstract} \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, Master and Diploma 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} The above document classes accept the following options: % \begin{raggedright} \begin{itemize} \item \textbf{\texttt{hgbthesis}}: \texttt{master}, \texttt{diploma}, \texttt{bachelor}, \texttt{praktikum} (deprecated), \texttt{internship}, \texttt{english}, \texttt{german}, \texttt{smartquotes}; \item \textbf{\texttt{hgbreport}}: \texttt{notitlepage}, \texttt{english}, \texttt{german}, \texttt{smartquotes}; \item \textbf{\texttt{hgbarticle}}: \texttt{twocolumn}, \texttt{english}, \texttt{german}, \texttt{smartquotes}. \end{itemize} \end{raggedright} % For example, to start a Master thesis in German one would simply simply place % \begin{LaTeXCode}[numbers=none] \documentclass[master,german,smartquotes]{hgbthesis} \end{LaTeXCode} % at the beginning of the document. \subsection{Thesis parameters (class \texttt{hgbthesis})} \texttt{hgbthesis} supports several types of thesis documents. The following parameters must be specified for \emph{all} types: % \begin{itemize} \item \verb!\title{...}!, \item \verb!\author{...}!, \item \verb!\programname{...}!, \item \verb!\placeofstudy{...}!, \item \verb!\dateofsubmission{yyyy}{mm}{dd}!. \end{itemize} % \noindent A \emph{Bachelor} thesis requires the following, additional items (not relevant for Diploma and Master theses): % \begin{itemize} \item \verb!\thesisnumber{...}!, \item \verb!\coursetitle{...}!, \item \verb!\semester{...}!, \item \verb!\advisor{...}!. \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: \texttt{hgb.sty}, \texttt{hgbabbrev.sty}, \texttt{hgbbib.sty}, \texttt{hgbheadings.sty}, \texttt{hgblistings.sty}, \texttt{hgbmath.sty}. \subsection{General user commands and environments(\texttt{hgb.sty})} \begin{itemize} \item \textbf{\texttt{{\bs}hgbDate}}: Outputs the package version date, \eg, ``\texttt{\hgbDate}''. \item \verb!\calibrationbox{width}{height}!: Inserts a test box for checking the final print size (in millimeters). \item \verb!\begin{english} ... \end{english}! \item \verb!\begin{german} ... \end{german}! \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}}: d.\thinspace{}h. \item \textbf{\texttt{{\bs}Dah}}: D.\thinspace{}h. \item \textbf{\texttt{{\bs}ds}}: d.\thinspace{}sind \item \textbf{\texttt{{\bs}etc}}: etc. \item \textbf{\texttt{{\bs}evtl}}: evtl. \item \textbf{\texttt{{\bs}ia}}: i.\thinspace{}Allg. \item \textbf{\texttt{{\bs}sa}}: s.\ auch \item \textbf{\texttt{{\bs}so}}: s.\ oben \item \textbf{\texttt{{\bs}su}}: s.\ unten \item \textbf{\texttt{{\bs}ua}}: u.\thinspace{}a. \item \textbf{\texttt{{\bs}Ua}}: U.\thinspace{}a. \item \textbf{\texttt{{\bs}uae}}: u.\thinspace{}\"A. \item \textbf{\texttt{{\bs}usw}}: usw. \item \textbf{\texttt{{\bs}uva}}: u.\thinspace{}v.\thinspace{}a. \item \textbf{\texttt{{\bs}uvm}}: u.\thinspace{}v.\thinspace{}m. \item \textbf{\texttt{{\bs}va}}: vor allem \item \textbf{\texttt{{\bs}vgl}}: vgl. \item \textbf{\texttt{{\bs}zB}}: z.\thinspace{}B. \item \textbf{\texttt{{\bs}ZB}}: Zum Beispiel \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} \subsection{Bibliography commands (\texttt{hgbbib.sty})} \begin{itemize} \item \textbf{\texttt{{\bs}AddBibFile}}: A wrapper to \texttt{biblatex}'s \verb!\addbibresource! macro (for backward compatibility only). \item \textbf{\texttt{{\bs}MakeBibliography[\emph{options}]}}: 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}citenobr\{\emph{keys}\}}}: Analogous to the standard \texttt{{\bs}cite\{\emph{keys}\}} command, but inserts no ``backref'' page numbers in the bibliography. \item \textbf{\texttt{{\bs}mcite% [\emph{text1}]\{\emph{key1}\}% [\emph{text2}]\{\emph{key2}\}% \ldots [\emph{textN}]\{\emph{keyN}\}% }}: 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{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{algpseudocode} packages.% \footnote{\url{https://ctan.org/pkg/algorithmicx}} 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 user commands:} \begin{itemize} \item \textbf{\texttt{{\bs}StateL\{\}}}: Creates a \emph{numbered} statement like \texttt{algorithmicx}'s \verb!\State! command but provides consistent indentation on multi-line statements. Note that the statement \texttt{} must be passed as a single argument in \verb!{...}! brackets. \item \textbf{\texttt{{\bs}StateNN[]\{\}}}: Creates a \emph{non-numbered} statement like \texttt{algorith\-micx}'s \verb!\State! command but provides consistent indentation inside nested constructs and over multiple lines. The optional integer argument \verb!! 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!). Omitting the optional argument should give correct indentation in most cases. \item \textbf{\texttt{{\bs}Input\{\}}}: For describing the input parameters in a procedure's preamble. %Usage: \verb!\Input{}! \item \textbf{\texttt{{\bs}Output\{\}}}: For describing the output values in a procedure's preamble. %Usage: \verb!\Output{}! \item \textbf{\texttt{{\bs}Returns\{\}}}: For describing the return values in a procedure's preamble. %Usage: \verb!\Returns{}! \end{itemize} \paragraph{Defined algorithm colors:} \begin{itemize} \item[] \textbf{\texttt{AlgKeywordColor}} (for algorithm keywords), \item[] \textbf{\texttt{AlgProcedureColor}} (for procedure and function names), \item[] \textbf{\texttt{AlgCommentColor}} (for comments). \end{itemize} The above 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} \section{Package dependencies} \begin{sloppypar} The \texttt{hagenberg-thesis} package builds on the following \latex\ packages:\newline \texttt{abstract}, \texttt{algorithm}, \texttt{algorithmicx}, \texttt{algpseudocode}, \texttt{amsbsy}, \texttt{amsfonts}, \texttt{amsmath}, \texttt{amssymb}, \texttt{babel}, \texttt{biblatex}, \texttt{breakurl}, \texttt{caption}, \texttt{cmap}, \texttt{csquotes}, \texttt{datetime}, \texttt{enumitem}, \texttt{epstopdf}, \texttt{eurosym}, \texttt{exscale}, \texttt{fancyhdr}, \texttt{float}, \texttt{fontenc}, \texttt{geometry}, \texttt{graphicx}, \texttt{hypcap}, \texttt{hyperref}, \texttt{ifpdf}, \texttt{ifthen}, \texttt{inputenc}, \texttt{listingsutf8}, \texttt{lmodern}, \texttt{moreverb}, \texttt{overpic}, \texttt{pdfpages}, \texttt{pict2e}, \texttt{subdepth}, \texttt{titlesec}, \texttt{titling}, \texttt{tocbasic}, \texttt{url}, \texttt{upquote}, \texttt{verbatim}, \texttt{xcolor}, \texttt{xifthen}, \texttt{xspace}. \end{sloppypar} \end{document}