summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tuda-ci/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tuda-ci/tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/tuda-ci/tex')
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty114
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty47
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty214
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty231
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty66
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudabeamer.cls194
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudacolors.def84
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudacolors.sty108
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudafonts.sty83
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaletter.cls481
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo139
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaposter.cls384
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudapub.cls1064
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudarules.sty144
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudasciposter.cls578
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo140
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudathesis.cfg569
17 files changed, 4640 insertions, 0 deletions
diff --git a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
new file mode 100644
index 0000000000..4c1ac581a7
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
@@ -0,0 +1,114 @@
+%% This is file `beamercolorthemeTUDa.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamercolorthemeTUDa}
+[\filedate\space\fileversion]
+
+\RequirePackage{l3keys2e}
+\ExplSyntaxOn
+\keys_define:nn {TUDa/beamercolor} {
+ colortitle .bool_gset:N = \g_TUDa@beamer_colortitle_bool,
+ colortitle .default:n = true,
+ colortitle .initial:n = true,
+ colorbacktitle .meta:n = {colortitle=#1},
+ colorframetitle .bool_gset:N = \g_TUDa@beamer_colorframetitle_bool,
+ colorframetitle .default:n = true,
+ colorframetitle .initial:n = false,
+ colorback .meta:n = {colorframetitle=#1}
+}
+
+\ProcessKeysOptions{TUDa/beamercolor}
+
+\ExplSyntaxOff
+\RequirePackage[RGB]{tudacolors}
+
+\mode<all>
+
+\setbeamercolor*{smallrule}{bg=black}
+\setbeamercolor*{identbar}{bg=identbarcolor}
+
+\ExplSyntaxOn
+\bool_if:NTF \g_TUDa@beamer_colortitle_bool {
+ \setbeamercolor*{title}{fg=textonaccentcolor,bg=accentcolor}
+}{
+ \setbeamercolor*{title}{fg=black,bg=white}
+}
+
+\bool_if:NTF \g_TUDa@beamer_colorframetitle_bool {
+ \setbeamercolor*{frametitle}{fg=textonaccentcolor,bg=accentcolor}
+} {
+ \setbeamercolor*{frametitle}{fg=black,bg=white}
+}
+\ExplSyntaxOff
+
+\setbeamercolor*{frametitlecover}{bg=white}
+
+\setbeamercolor*{author in head/foot}{fg=black, bg=white}
+\setbeamercolor*{date in head/foot}{fg=black, bg=white}
+
+\setbeamercolor*{normal text}{bg=white,fg=black}
+\setbeamercolor*{background canvas}{bg=white}
+
+\setbeamercolor*{section in toc}{fg=black,bg=white}
+
+
+\setbeamercolor*{alerted text}{fg=textaccentcolor}
+\setbeamercolor{structure}{fg=textaccentcolor}
+
+\setbeamercolor*{palette primary}{fg=textaccentcolor}
+\setbeamercolor*{palette secondary}{fg=textaccentcolor}
+\setbeamercolor*{palette tertiary}{fg=textaccentcolor}
+\setbeamercolor*{palette quaternary}{fg=black}
+
+\setbeamercolor{bibliography item}{parent=item}
+\setbeamercolor{bibliography entry author}{use=structure,fg=structure.fg}
+\setbeamercolor{bibliography entry title}{use=normal text,fg=normal text.fg}
+\setbeamercolor{bibliography entry location}{use=structure,fg=structure.fg}
+\setbeamercolor{bibliography entry note}{use=structure,fg=normal text.fg}
+
+\setbeamercolor{titlelike}{fg=textaccentcolor,bg=white}
+
+\setbeamercolor*{block title}{fg=textonaccentcolor,bg=accentcolor}
+\setbeamercolor*{block body}{fg=black,bg=black!15}
+
+\setbeamercolor*{block title alerted}{fg=TUDa-9b,bg=black!15}
+\setbeamercolor*{block body alerted}{use=normal text, bg=white}
+\setbeamercolor*{block frame alerted}{bg=TUDa-9b}
+
+\setbeamercolor*{block title example}{fg=TUDa-4d,bg=black!15}
+\setbeamercolor*{block body example}{use=normal text, bg=white}
+\setbeamercolor*{block frame example}{bg=TUDa-4d}
+
+
+\mode
+<all>
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
new file mode 100644
index 0000000000..bc14a0c3ba
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
@@ -0,0 +1,47 @@
+%% This is file `beamerfontthemeTUDa.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerfontthemeTUDa}
+ [\filedate\space\fileversion]
+
+\RequirePackage{tudafonts}
+\renewcommand*{\familydefault}{\sfdefault}
+
+\mode<presentation>{\beamer@suppressreplacementstrue}
+
+\setbeamerfont{title}{size=\large,series=\bfseries}
+\setbeamerfont{subtitle}{size=\normalsize,series=\bfseries}
+\setbeamerfont{institute}{size=\small}
+
+\setbeamerfont{frametitle}{size=\large,series=\bfseries}
+\setbeamerfont{author in head/foot}{size=\tiny}
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
new file mode 100644
index 0000000000..1272fbf677
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
@@ -0,0 +1,214 @@
+%% This is file `beamerinnerthemeTUDa.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerinnerthemeTUDa}
+ [\filedate\space\fileversion]
+
+\mode<presentation>
+%TODO wihtout outertheme
+
+\RequirePackage{trimclip}
+
+\ExplSyntaxOn
+
+
+\box_new:N \l_TUDa_titlegraphic_box
+
+
+\RenewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \def\inserttitlegraphic{
+ \hbox_set:Nn \l_TUDa_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l_TUDa_titlegraphic_box {\width}
+ \dim_compare:nTF {\box_ht:N \l_TUDa_titlegraphic_box - \l_TUDa_titlegraphic_ht_dim > \c_zero_dim}
+ {
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l_TUDa_titlegraphic_box - .5\l_TUDa_titlegraphic_ht_dim}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l_TUDa_titlegraphic_box}
+ }{
+ \box_resize_to_ht:Nn \l_TUDa_titlegraphic_box {\l_TUDa_titlegraphic_ht_dim}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l_TUDa_titlegraphic_box - \width) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l_TUDa_titlegraphic_box}
+ }
+ }
+ }{
+ \def\inserttitlegraphic{#2}
+ }
+}
+
+
+\box_new:N \l_TUDa_titlehead_box
+
+\dim_new:N \l_TUDa_titlegraphic_ht_dim
+\dim_new:N \l_TUDa_titlegraphic_wd_dim
+
+\defbeamertemplate*{title~ page}{TUDa}[1][]
+{
+ \nointerlineskip
+ \vspace{\dim_eval:n {-\c_TUDa_largerule_dim}}
+ \hbox_set:Nn \l_TUDa_titlehead_box {
+ \begin{beamercolorbox}[
+ wd=\TUDa@beamer@linewidth,
+% sep=.5\ht\TUDa@logobox,
+ sep=\TUDa@beamer@logosep,
+ ]{title}
+ \raggedright
+% \hspace*{\fill}\smash{\raisebox{-\height}{\usebox\TUDa@logobox}}
+ \usebeamerfont{title}
+ \skip_horizontal:n {1ex}
+ \strut\parbox[t]{\dimexpr\linewidth- \wd\TUDa@logobox-2ex\relax}{
+ \inserttitle
+ \par
+ }
+%\hfill%
+ \hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\usebox\TUDa@logobox}
+% \smash{\raisebox{-\height}{\usebox\TUDa@logobox}}
+ \ifx\insertsubtitle\@empty
+ \else
+ \par\vspace{\c_TUDa_largerule_dim}
+ \skip_horizontal:n {1ex}\parbox[t]{\dimexpr\linewidth- \wd\TUDa@logobox-2ex\relax}{
+ \usebeamerfont{subtitle}\insertsubtitle
+ }
+% \skip_vertical:n {-.25\ht\TUDa@logobox}
+ \fi
+ \end{beamercolorbox}
+ }
+ \box_use:N \l_TUDa_titlehead_box
+\nointerlineskip\begin{beamercolorbox}[wd=\linewidth,ht=\c_TUDa_smallrule_dim,dp=\z@]{smallrule}
+ \end{beamercolorbox}
+ \dim_set:Nn \l_TUDa_titlegraphic_ht_dim {\textheight-\box_ht:N\l_TUDa_titlehead_box
+ +\c_TUDa_largerule_dim-.5\c_TUDa_rulesep_dim-\c_TUDa_smallrule_dim}
+ \let\height\l_TUDa_titlegraphic_ht_dim
+ \dim_set:Nn \l_TUDa_titlegraphic_wd_dim{\linewidth}
+ \let\width\l_TUDa_titlegraphic_wd_dim
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\width,
+ ht=\l_TUDa_titlegraphic_ht_dim,
+ dp=\z@,
+ ]{titlegraphic}
+ \inserttitlegraphic
+ \end{beamercolorbox}
+}
+
+
+\ExplSyntaxOff
+% Blocks
+
+
+\defbeamertemplate*{block begin}{TUDa}
+{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[sep=.5pt]{block title}%TODO
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[colsep=.75ex, wd=\dimexpr\linewidth-1pt\relax]{block title}
+ \usebeamerfont*{block title}\insertblocktitle%
+ \end{beamercolorbox}%
+ \ifbeamercolorempty[bg]{block title}
+ {}
+ {\ifbeamercolorempty[bg]{block body}{}{\par\nointerlineskip\vskip-0.5pt}}%
+ \leavevmode
+ \fi
+ \begin{beamercolorbox}[colsep=.75ex,vmode, wd=\dimexpr\linewidth-1pt\relax]{block body}%
+ \usebeamerfont{block body}%
+ \ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
+ }
+
+\defbeamertemplate*{block end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+
+\defbeamertemplate*{block alerted begin}{TUDa}
+{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[sep=1.5pt]{block frame alerted}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block title alerted}
+ \usebeamerfont*{block title alerted}\insertblocktitle%
+ \end{beamercolorbox}%
+ \vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block body alerted}%
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block body alerted}%
+ }
+
+\defbeamertemplate*{block alerted end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+
+
+\defbeamertemplate*{block example begin}{TUDa}
+{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[sep=1.5pt]{block frame example}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block title example}
+ \usebeamerfont*{block title example}\insertblocktitle%
+ \end{beamercolorbox}%
+\vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block body example}%
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block body example}%
+ }
+\defbeamertemplate*{block example end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+
+%Itemize Items
+\defbeamertemplate*{itemize item}{TUDa}{\usebeamerfont*{itemize item}\raise1.25pt\hbox{\donotcoloroutermaths$\bullet$}}
+\defbeamertemplate*{itemize subitem}{TUDa}{\usebeamerfont*{itemize item}\raise1.5pt\hbox{\tiny\donotcoloroutermaths$\bullet$}}
+\defbeamertemplate*{itemize subsubitem}{TUDa}{\usebeamerfont*{itemize subitem}\hbox{--}}
+
+%List spacing
+\setlength\labelwidth{.75em}
+\setlength\leftmargini{\dimexpr\labelwidth+\labelsep}
+\setlength\leftmarginii{\dimexpr\labelwidth+\labelsep}
+\setlength\leftmarginiii{\dimexpr\labelwidth+\labelsep}
+
+\def\@listi{\leftmargin\leftmargini
+ \topsep \z@ \@plus2\p@ \@minus2.5\p@
+ \parsep 0\p@
+ \itemsep3\p@ \@plus2\p@ \@minus3\p@}
+\let\@listI\@listi
+\def\@listii{\leftmargin\leftmarginii
+ \topsep \z@ \@plus1\p@ \@minus2\p@
+ \parsep 0\p@ \@plus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \topsep \z@ \@plus1\p@ \@minus2\p@
+ \parsep 0\p@ \@plus\p@
+ \itemsep \parsep}
+
+
+\mode<all>
+
+\endinput
+
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
new file mode 100644
index 0000000000..c28a7bdc61
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
@@ -0,0 +1,231 @@
+%% This is file `beamerouterthemeTUDa.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerouterthemeTUDa}
+ [\filedate\space\fileversion]
+
+\RequirePackage{l3keys2e}
+
+\ExplSyntaxOn
+\keys_define:nn {TUDa/beamer/outer} {
+ logo .bool_gset:N = \g_TUDa_headlinelogo_bool,
+ logo .default:n =true,
+ logo .initial:n =true,
+ logofile .tl_gset:N = \g_TUDa_logofile_tl,
+ logofile .initial:n = tuda_logo,
+}
+
+
+\ProcessKeysOptions{TUDa/beamer/outer}
+
+
+\mode<presentation>
+
+
+\RequirePackage{graphicx}
+\RequirePackage[paper=slide]{tudarules}
+
+\newlength{\TUDa@beamer@sep}
+\setlength{\TUDa@beamer@sep}{1em}
+
+\setbeamersize{text~margin~left=\TUDa@beamer@sep,text~margin~right=\TUDa@beamer@sep}
+
+\newlength{\TUDa@beamer@linewidth}
+\setlength{\TUDa@beamer@linewidth}{\dimexpr\paperwidth-2\TUDa@beamer@sep\relax}
+
+%Logo
+
+\newsavebox{\TUDa@logobox}
+\sbox{\TUDa@logobox}{%
+ \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}%
+}
+
+\newlength{\TUDa@beamer@logosep}
+\setlength{\TUDa@beamer@logosep}{2mm}
+
+\ExplSyntaxOff
+
+%\RequirePackage[paper=slide]{tudarules}
+
+\ExplSyntaxOn
+\TUDa@makeheadrule[color=identbarcolor,width=\TUDa@beamer@linewidth]{TUDa@beamer@headrule}
+\TUDa@makefootrule[width=\TUDa@beamer@linewidth]{TUDa@beamer@rule}
+
+\newlength{\TUDa@beamer@headheight}
+\setlength{\TUDa@beamer@headheight}{
+\dim_eval:n {
+ \ht\TUDa@logobox+
+ \dp\TUDa@logobox +
+ 2\TUDa@beamer@logosep+
+ \box_ht:N \TUDa@beamer@rule_box +
+ \box_dp:N \TUDa@beamer@rule_box
+}}
+
+
+\ExplSyntaxOff
+
+
+\def\tudrule{\TUDa@beamer@rule}
+
+
+\newcommand\insertsmalllogo{\setbeamertemplate{logo}[small]\usebeamertemplate{logo}}
+
+
+\defbeamertemplate*{sidebar left}{TUD theme}{}
+\defbeamertemplate*{sidebar right}{TUD theme}{}
+
+
+\ExplSyntaxOn
+
+\bool_if_exist:NF \l_TUDa_tmpa_bool {\bool_new:N \l_TUDa_tmpa_bool}
+
+\defbeamertemplate*{footline}{TUDa theme}
+{
+ \begin{beamercolorbox}[leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep,wd=\TUDa@beamer@linewidth,
+ ht=\csname c_TUDa_smallrule_dim\endcsname,dp=1mm]{footline}
+ \TUDa@beamer@rule
+ \end{beamercolorbox}
+ \begin{beamercolorbox}[
+ leftskip=\TUDa@beamer@sep,
+ rightskip=\TUDa@beamer@sep, ht=2.75mm,dp=2.75mm]{footline}
+ \usebeamerfont{author~ in~ head/foot}%
+ \bool_set_false:N \l_TUDa_tmpa_bool
+ \clist_map_variable:nNn {date, department, institute, author} \l_tmpa_tl {
+ \tl_if_empty:cF {beamer@short\l_tmpa_tl} {
+ \bool_if:NTF \l_TUDa_tmpa_bool {~|~}
+ {\bool_set_true:N \l_TUDa_tmpa_bool}
+ \use:c {insertshort\l_tmpa_tl}
+ }
+ }
+ \bool_if:NT \l_TUDa_tmpa_bool {~|~}
+ \insertframenumber
+ \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo}
+ \end{beamercolorbox}
+}
+
+
+
+\RenewDocumentCommand{\logo}{sm}{
+ \IfBooleanTF{#1}{
+ \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}%TODO change with aspectratio
+ }{
+ \setbeamertemplate{logo}{#2}
+ }
+}
+
+\defbeamertemplate{headline}{TUDa theme.logo} {%
+% \vspace{.75\TUDa@beamer@sep}
+ \begin{beamercolorbox}[
+ leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep,wd=\TUDa@beamer@linewidth,ht=.75\TUDa@beamer@sep,dp=\box_dp:N \TUDa@beamer@headrule_box]{headline}
+ \TUDa@beamer@headrule
+ \end{beamercolorbox}
+}
+
+\ExplSyntaxOff
+
+\defbeamertemplate{frametitle}{TUDa theme.logo}{%
+\nointerlineskip%
+\begin{beamercolorbox}[
+ sep=\TUDa@beamer@logosep,wd=\dimexpr\TUDa@beamer@linewidth\relax,
+ rightskip=-\TUDa@beamer@logosep,
+% leftskip=-\TUDa@beamer@logosep
+ ]{frametitle}
+ \parbox[t]{\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{%
+ \usebeamerfont{frametitle}\insertframetitle
+ \ifx\insertframesubtitle\@empty
+ \else
+ \par
+ \usebeamercolor[fg]{framesubtitle}
+ \usebeamerfont{framesubtitle}
+ \insertframesubtitle
+ \fi
+ }
+ \hfill%
+ \raisebox{\dimexpr-\height+\ht\strutbox\relax}{\usebox\TUDa@logobox}
+\end{beamercolorbox}
+\nointerlineskip
+\color{black}\TUDa@beamer@rule
+}
+
+\defbeamertemplate*{headline}{TUDa theme.nologo}
+{%
+ \vspace{.75\TUDa@beamer@sep}
+ \begin{beamercolorbox}[
+ leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep,wd=\TUDa@beamer@linewidth]{headline}
+ \TUDa@beamer@headrule
+ \end{beamercolorbox}
+}
+\defbeamertemplate*{frametitle}{TUDa theme.nologo}{%
+ \nointerlineskip%
+\begin{beamercolorbox}[
+ sep=\TUDa@beamer@logosep,wd=\dimexpr\TUDa@beamer@linewidth\relax,
+ ]{frametitle}
+ \parbox[t]{\linewidth}{%
+ \usebeamerfont{frametitle}\insertframetitle
+ \ifx\insertframesubtitle\@empty
+ \else
+ \par
+ \usebeamercolor[fg]{framesubtitle}
+ \usebeamerfont{framesubtitle}
+ \insertframesubtitle
+ \fi
+ }%
+% Rule vor voffset similar to logo
+ \rule[\dimexpr-\ht\TUDa@logobox+\ht\strutbox\relax]{0pt}{\dimexpr\ht\TUDa@logobox+\dp\TUDa@logobox\relax}
+\end{beamercolorbox}
+ \nointerlineskip
+\TUDa@beamer@rule
+}
+
+\ExplSyntaxOn
+\cs_new:Nn \TUDa_setup_frame: {
+ \bool_if:NTF \g_TUDa_headlinelogo_bool {
+ \setbeamertemplate{frametitle}[TUDa~ theme.logo]
+ \setbeamertemplate{headline}[TUDa~ theme.logo]
+ }{
+ \setbeamertemplate{frametitle}[TUDa~ theme.nologo]
+ \setbeamertemplate{headline}[TUDa~ theme.nologo]
+ }
+}
+\TUDa_setup_frame:
+
+\newcommand*{\setupTUDaFrame}[1]{
+ \keys_set:nn {TUDa/beamer/outer} {#1}
+ \TUDa_setup_frame:
+}
+
+\ExplSyntaxOff
+
+
+\mode
+<all>
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
new file mode 100644
index 0000000000..713cec5213
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
@@ -0,0 +1,66 @@
+%% This is file `beamerthemeTUDa.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{beamerthemeTUDa}
+ [\filedate\space\fileversion\space beamer theme using the Corporate Design of TU Darmstadt]
+
+\RequirePackage{expl3}
+\RequirePackage{l3keys2e}
+
+\mode<presentation>
+
+\ExplSyntaxOn
+
+\keys_define:nn {TUDa/beamer} {
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+ colortitle .code:n = \tl_show:n {true}\PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorbacktitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorframetitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorback .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ logo .code:n = \tl_show:n {#1}\PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa}
+}
+
+\ProcessKeysOptions{TUDa/beamer}
+
+\ExplSyntaxOff
+
+\usefonttheme{TUDa}
+\usecolortheme{TUDa}
+\useoutertheme{TUDa}
+\useinnertheme{TUDa}
+%
+\setbeamertemplate{navigation symbols}{}
+\setbeamersize{text margin left=1em,text margin right=1em}
+
+
+\mode<all>
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls
new file mode 100644
index 0000000000..5477987032
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls
@@ -0,0 +1,194 @@
+%% This is file `tudabeamer.cls' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{tudabeamer}
+ [\filedate\space\fileversion\space]
+
+\RequirePackage{l3keys2e}
+\RequirePackage{URspecialopts}
+
+\Define@specialopt@Module[TUDa/beamer]
+
+\Module@DefineSpecialPassKey[TUDa/beamer]{color}<tudacolors>
+
+\ExplSyntaxOn
+\keys_define:nn {TUDa/beamer} {
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+ colortitle .code:n = \tl_show:n {true}\PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorbacktitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorframetitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ colorback .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa},
+ logo .code:n = \tl_show:n {#1}\PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa},
+ pdfa .bool_gset:N = \g_TUDa@pdfa_bool,
+ pdfa .initial:n = false,
+ logofile .code:n = \PassOptionsToPackage{logofile=#1}{beamerouterthemeTUDa},
+}
+
+
+\clist_map_inline:nn {colortitle, colorbacktitle, colorframetitle, colorback} {
+ \Module@DeclarePassOption[TUDa/beamer]{#1}{beamercolorthemeTUDa}
+}
+
+\ExplSyntaxOff
+
+\Module@DeclarePassOption[TUDa/beamer]{logo}{beamerouterthemeTUDa}
+
+\PassOptionsToPackage{pdfpagelabels=false,plainpages=false}{hyperref}
+\PassOptionsToClass{t}{beamer}
+
+\Module@Process@SpecialOptions[TUDa/beamer]
+
+\DeclareOption*{%
+ \PassOptionsToClass{\CurrentOption}{beamer}
+}
+
+\ProcessKeysOptions{TUDa/beamer}
+\ProcessOptions*
+
+\ExplSyntaxOn
+\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
+
+\bool_if:NT \g_TUDa@pdfa_bool {
+\RequirePackage{scrlfile}
+\PreventPackageFromLoading{hyperref}
+\def\hypersetup#1{}
+}
+\ExplSyntaxOff
+
+% Load the latex-beamer class
+\PassOptionsToClass{10pt}{beamer}
+\LoadClass{beamer}
+
+\ExplSyntaxOn
+\bool_if:NT \g_TUDa@pdfa_bool {
+ \UnPreventPackageFromLoading{hyperref}
+ \PassOptionsToPackage{a-1b}{pdfx}
+ \RequirePackage{pdfx}
+}
+\ExplSyntaxOff
+
+\hypersetup{hidelinks, unicode}
+
+% Load the TUD theme
+\AtEndOfClass{%
+ \usetheme{TUDa}%
+ \@input{\jobname.len}%
+ \@starttoc{len}%
+ \let\accentfont\normalfont%
+}
+
+
+%\department command
+\def\department{\@dblarg\TUDa@beamer@department}
+
+\long\def\TUDa@beamer@department[#1]#2{%
+ \def\beamer@temp{#2}%
+ \ifx\beamer@temp\@empty
+ \def\insertdepartment{}
+ \else
+ \def\insertdepartment{\def\inst{\beamer@instinst}\def\and{\qquad}#2}%
+ \fi
+ \def\beamer@shortdepartment{#1}}
+\department{}
+
+\newcommand\insertshortdepartment[1][]{%
+ {%
+ \let\thanks=\@gobble%
+ \beamer@setupshort{#1}%
+ \beamer@insertshort{\beamer@shortdepartment}%
+}}
+%end of \department command
+%
+
+\ExplSyntaxOn
+\if_bool:N \g_TUDa@pdfa_bool
+\iow_new:N \TUDa@xmpdata_stream
+\iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata}
+\tl_new:N \g_TUDa@xmp_title
+\tl_new:N \g_TUDa@xmp_author
+
+\cs_new:Nn \TUDa_pass_TitleData: {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \cs_set:Npn \and {\exp_not:n {\exp_not:N \sep}}
+ \bool_if:NTF \g_TUDa_pass_TitleData_bool {
+ \tl_gset:Nx \g_TUDa@xmp_title {\insertshorttitle}
+ \tl_gset:Nx \g_TUDa@xmp_author {\insertshortauthor}
+ \iow_now:Nx \TUDa@xmpdata_stream
+ {
+ \exp_not:N \Title{\tl_to_str:V \g_TUDa@xmp_title}
+ ^^J
+ \exp_not:N \Author{\tl_to_str:V \g_TUDa@xmp_author}
+ ^^J
+ \exp_not:N \Creator{LaTeX~ using~ the~ TUDa-CI~ Bundle}
+ }
+ }{
+ \begingroup
+ \use:c {pdfx@localcommands}
+ \prop_if_in:NnF \g_TUDa_MetaData_prop {Creator} {\prop_gput:Nnn \g_TUDa_MetaData_prop {Creator} {LaTeX~ using~ the~ TUDa-CI~ Bundle}}
+ \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn
+ \endgroup
+ }
+ \endgroup
+}
+\cs_new:Nn \TUDa_write_xmp_line:nn {
+ \cs_if_exist:cTF {\tl_mixed_case:n {#1}} {
+ \iow_now:Nx \TUDa@xmpdata_stream {
+ \c_backslash_str \tl_mixed_case:n {#1} {#2}\iow_newline:
+ }
+ }{
+ \msg_error:nnn {TUDapub} {unknown-metadata} {#1}
+ }
+}
+
+\bool_new:N \g_TUDa_pass_TitleData_bool
+\bool_gset_true:N \g_TUDa_pass_TitleData_bool
+\prop_new:N \g_TUDa_MetaData_prop
+
+\newcommand*{\Metadata}[1]{
+ \bool_gset_false:N \g_TUDa_pass_TitleData_bool
+ \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#1}
+}
+
+\msg_new:nnnn {TUDapub} {unknown-metadata} {
+ You~ used~ the~ #1~ metadata~ entry.\\
+ I~ don't~ know~ how~ to~ handle~ that.\\
+ It~ will~ be~ ignored.
+} {See~ TUDa-CI~ or~ pdfx~ documentation~ for~ details.}
+\else:
+\msg_new:nnn {tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.}
+\msg_info:nn {tudapub} {no-pdfa}
+\fi:
+\ExplSyntaxOff
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.def b/macros/latex/contrib/tuda-ci/tex/tudacolors.def
new file mode 100644
index 0000000000..246fda108f
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.def
@@ -0,0 +1,84 @@
+%% This is file `tudacolors.def' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\ProvidesFile{tudacolors.def}
+[\filedate\space\fileversion\space Color definitions for tuda-ci]
+
+\definecolor{TUDa-0d}{cmyk/RGB/HTML}{0,0,0,.8/83,83,83/535353}
+\definecolor{TUDa-0c}{cmyk/RGB/HTML}{0,0,0,.6/137,137,137/898989}
+\definecolor{TUDa-0b}{cmyk/RGB/HTML}{0,0,0,.4/181,181,181/B5B5B5}
+\definecolor{TUDa-0a}{cmyk/RGB/HTML}{0,0,0,.2/220,220,220/DCDCDC}
+
+\definecolor{TUDa-1a}{cmyk/RGB/HTML}{.7,.4,0,0/93,133,195/5D85C3}
+\definecolor{TUDa-2a}{cmyk/RGB/HTML}{0.8,.2,0,0/0,156,218/009CDA}
+\definecolor{TUDa-3a}{cmyk/RGB/HTML}{0.7,0,.5,0/80,182,149/50B695}
+\definecolor{TUDa-4a}{cmyk/RGB/HTML}{.4,0,.8,0/175,204,80/AFCC50}
+\definecolor{TUDa-5a}{cmyk/RGB/HTML}{.2,0,.8,0/221,223,72/DDDF48}
+\definecolor{TUDa-6a}{cmyk/RGB/HTML}{0,.1,.7,0/255,224,92/FFE05C}
+\definecolor{TUDa-7a}{cmyk/RGB/HTML}{0,.3,.8,0/248,186,60/F8BA3C}
+\definecolor{TUDa-8a}{cmyk/RGB/HTML}{0,.6,.8,0 /238,122,52/EE7A34}
+\definecolor{TUDa-9a}{cmyk/RGB/HTML}{0,.8,.7,0/233,80,62/E9503E}
+\definecolor{TUDa-10a}{cmyk/RGB/HTML}{.2,.9,0,0/201,48,142/C9308E}
+\definecolor{TUDa-11a}{cmyk/RGB/HTML}{.6,.8,0,0/128,69,151/804597}
+\definecolor{TUDa-1b}{cmyk/RGB/HTML}{1,.6,0,0/0,90,169/005AA9}
+\definecolor{TUDa-2b}{cmyk/RGB/HTML}{1,.3,0,0/0,131,204/0083CC}
+\definecolor{TUDa-3b}{cmyk/RGB/HTML}{1,0,.6,0/0,157,129/009D81}
+\definecolor{TUDa-4b}{cmyk/RGB/HTML}{.5,0,1,0/153,192,0/99C000}
+\definecolor{TUDa-5b}{cmyk/RGB/HTML}{.3,0,1,0/201,212,0/C9D400}
+\definecolor{TUDa-6b}{cmyk/RGB/HTML}{0,.2,1,0/253,202,0/FDCA00}
+\definecolor{TUDa-7b}{cmyk/RGB/HTML}{0,.4,1,0/245,163,0/F5A300}
+\definecolor{TUDa-8b}{cmyk/RGB/HTML}{0,.7,1,0/236,101,0/EC6500}
+\definecolor{TUDa-9b}{cmyk/RGB/HTML}{0,1,.9,0/230,0,26/E6001A}
+\definecolor{TUDa-10b}{cmyk/RGB/HTML}{.4,1,0,0/166,0,132/A60084}
+\definecolor{TUDa-11b}{cmyk/RGB/HTML}{.7,1,0,0/114,16,133/721085}
+\definecolor{TUDa-1c}{cmyk/RGB/HTML}{1,.7,.2,0/0,78,138/004E8A}
+\definecolor{TUDa-2c}{cmyk/RGB/HTML}{1,.5,.2,0/0,104,157/00689D}
+\definecolor{TUDa-3c}{cmyk/RGB/HTML}{1,.2,.6,0/0,136,119/008877}
+\definecolor{TUDa-4c}{cmyk/RGB/HTML}{.6,.1,1,0/127,171,22/7FAB16}
+\definecolor{TUDa-5c}{cmyk/RGB/HTML}{.4,.1,1,0/177,189,0/B1BD00}
+\definecolor{TUDa-6c}{cmyk/RGB/HTML}{.2,.3,1,0/215,172,0/D7AC00}
+\definecolor{TUDa-7c}{cmyk/RGB/HTML}{.2,.5,1,0/210,135,0/D28700}
+\definecolor{TUDa-8c}{cmyk/RGB/HTML}{.2,.8,1,0/204,76,3/CC4C03}
+\definecolor{TUDa-9c}{cmyk/RGB/HTML}{.3,1,.9,0/185,15,34/B90F22}
+\definecolor{TUDa-10c}{cmyk/RGB/HTML}{.5,1,.3,0/149,17,105/951169}
+\definecolor{TUDa-11c}{cmyk/RGB/HTML}{.8,1,.2,0/97,28,115/611C73}
+\definecolor{TUDa-1d}{cmyk/RGB/HTML}{1,.9,.3,0/36,53,114/243572}
+\definecolor{TUDa-2d}{cmyk/RGB/HTML}{1,.7,.4,0/0,78,115/004E73}
+\definecolor{TUDa-3d}{cmyk/RGB/HTML}{1,.4,.7,0/0,113,94/00715E}
+\definecolor{TUDa-4d}{cmyk/RGB/HTML}{.7,.3,1,0/106,139,55/6A8B22}
+\definecolor{TUDa-5d}{cmyk/RGB/HTML}{.5,.2,1,0/153,166,4/99A604}
+\definecolor{TUDa-6d}{cmyk/RGB/HTML}{.4,.4,1,0/174,142,0/AE8E00}
+\definecolor{TUDa-7d}{cmyk/RGB/HTML}{.3,.6,1,0/190,111,0/BE6F00}
+\definecolor{TUDa-8d}{cmyk/RGB/HTML}{.4,.8,1,0/169,73,19/A94913}
+\definecolor{TUDa-9d}{cmyk/RGB/HTML}{.5,1,.9,0/156,28,38/961C26}
+\definecolor{TUDa-10d}{cmyk/RGB/HTML}{.7,1,.5,0/115,32,84/732054}
+\definecolor{TUDa-11d}{cmyk/RGB/HTML}{.9,1,.3,0/76,34,106/4C226A}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty
new file mode 100644
index 0000000000..4672c39364
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty
@@ -0,0 +1,108 @@
+%% This is file `tudacolors.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{tudacolors}{\filedate}{\fileversion}{Color definition for TU Darmstadt's tuda-ci bundle}
+
+\RequirePackage{l3keys2e}
+
+\keys_define:nn {TUDa/colors} {
+ accent .tl_gset:N = \g_TUDa_color_accent_tl,
+ accent .initial:n = 0b,
+ textaccent .tl_gset:N = \g_TUDa_color_textaccent_tl,
+ textaccent .initial:n = \g_TUDa_color_accent_tl,
+ identbar .tl_gset:N = \g_TUDa_color_identbar_tl,
+ identbar .initial:n = \g_TUDa_color_accent_tl,
+ accentcolor .meta:n = {accent =#1},
+ textaccentcolor .meta:n = {textaccent = #1},
+ identbarcolor .meta:n = {identbar = #1},
+ text .choice:,
+ text/preferblack .code:n = \bool_gset_false:N \g_TUDa_color_whitetext_bool,
+ text/preferwhite .code:n = \bool_gset_true:N \g_TUDa_color_whitetext_bool,
+ text .initial:n = {preferwhite},
+ text/black .meta:n = {text=preferblack},
+ text/white .meta:n = {text=preferwhite},
+ cmyk .code:n = \PassOptionsToPackage{cmyk}{xcolor},
+ RGB .code:n = \PassOptionsToPackage{RGB}{xcolor},
+}
+
+\ProcessKeysOptions{TUDa/colors}
+
+\RequirePackage{xcolor}
+
+\input{tudacolors.def}
+
+\clist_map_inline:nn {accent, textaccent, identbar} {
+ \cs_if_exist:cF {\string\color@\tl_use:c {g_TUDa_color_#1_tl}} {
+ \cs_if_exist:cT {\string\color@TUDa-\tl_use:c {g_TUDa_color_#1_tl}} {
+ \tl_gset:cx {g_TUDa_color_#1_tl} {TUDa-\tl_use:c {g_TUDa_color_#1_tl}}
+ }}
+}
+
+\clist_const:Nn \c_TUDa_color_forbid_textaccent_clist {TUDa-0a,TUDa-5a,TUDa-6a,TUDa-6b,TUDa-7a}
+\clist_const:Nn \c_TUDa_color_allow_blacktext_clist {TUDa-0a,TUDa-0b,TUDa-0c,TUDa-1a,TUDa-2a,TUDa-3a,TUDa-4a,TUDa-4b,TUDa-4c,TUDa-5a,TUDa-5b,TUDa-5c,TUDa-6a,TUDa-6b,TUDa-6c,TUDa-7a,TUDa-7b,TUDa-7c,TUDa-8a,TUDa-8b,TUDa-8c,TUDa-9a,TUDa-9b,TUDa-10a}
+\clist_const:Nn \c_TUDa_color_allow_whitetext_clist {TUDa-0b,TUDa-0c,TUDa-0d,black,TUDa-1a,TUDa-1b,TUDa-1c,TUDa-1d,TUDa-2a,TUDa-2b,TUDa-2c,TUDa-2d,TUDa-3a,TUDa-3b,TUDa-3c,TUDa-3d,TUDa-4b,TUDa-4c,TUDa-4d,TUDa-5b,TUDa-5c,TUDa-5d,TUDa-6c,TUDa-6d,TUDa-7b,TUDa-7c,TUDa-7d,TUDa-8a,TUDa-8b,TUDa-8c,TUDa-8d,TUDa-9a,TUDa-9b,TUDa-9c,TUDa-9d,TUDa-10a,TUDa-10b,TUDa-10c,TUDa-10d,TUDa-11a,TUDa-11b,TUDa-11c,TUDa-11d}
+
+
+%messages
+\msg_new:nnnn {tudacolors} {undefined-color} {The~ color~ #1~ you~ selected~ is~ not~ defined.} {See~ the~ tuda-ci~ manual~ for~ a~ list~ of~ available~ colors.}
+\msg_new:nnnn {tudacolors} {unselectable-color} {The~ color~ you~ selected~ (#1)~ must~ not~ be~ choosen~ for~ #2.} {See~ the~ Corporate~ Design~ Guidelines~ for~ further~ information.}
+
+%select accentcolor
+\exp_args:Nnx \colorlet{accentcolor}{\g_TUDa_color_accent_tl}
+\bool_if:NTF \g_TUDa_color_whitetext_bool {
+ \clist_if_in:NVTF \c_TUDa_color_allow_whitetext_clist \g_TUDa_color_accent_tl {
+ \colorlet{textonaccentcolor}{white}
+ } {
+ \colorlet{textonaccentcolor}{black}
+ \msg_warning:nnxx {tudacolors} {unselectable-color} {white} {textonaccentcolor}
+ }
+} {
+ \clist_if_in:NVTF \c_TUDa_color_allow_blacktext_clist \g_TUDa_color_accent_tl {
+ \colorlet{textonaccentcolor}{black}
+ } {
+ \colorlet{textonaccentcolor}{white}
+ \msg_warning:nnxx {tudacolors} {unselectable-color} {black} {textonaccentcolor}
+ }
+}
+
+\colorlet{identbarcolor}{\g_TUDa_color_identbar_tl}
+
+
+\exp_args:NNx \clist_if_in:NnTF \c_TUDa_color_forbid_textaccent_clist {\g_TUDa_color_textaccent_tl} {
+ \msg_warning:nnxx {tudacolors} {unselectable-color} {\g_TUDa_color_textaccent_tl} {textaccentcolor}
+ \colorlet{textaccentcolor}{black}
+} {
+ \colorlet{textaccentcolor}{\g_TUDa_color_textaccent_tl}
+}
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty
new file mode 100644
index 0000000000..14f80ab8ae
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty
@@ -0,0 +1,83 @@
+%% This is file `tudafonts.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tudafonts}
+ [\filedate\space\fileversion\space
+ font loading for TUDa-CI, TU Darmstadt's Corporate Design]
+
+\RequirePackage{iftex}
+\RequirePackage{anyfontsize}
+
+\ifPDFTeX
+ %Declare Euro Symbol
+ \expandafter\ifx\csname DeclareUnicodeCharacter\endcsname\relax
+ \RequirePackage[utf8]{inputenc}
+ \fi
+ \RequirePackage{eurosym}
+ \DeclareUnicodeCharacter{20AC}{\euro}
+ \RequirePackage{XCharter}
+\else
+ \RequirePackage{fontspec}
+ \setmainfont{XCharter}
+\fi
+
+\RequirePackage{roboto}
+
+\IfFileExists{roboto-mono.sty}{
+ \RequirePackage{roboto-mono}
+}{
+ \PackageWarningNoLine{tudafonts}{
+ The font package roboto-mono.sty could not be found. Probably your TeX-distribution is outdated.\MessageBreak
+ For correct font setup either install it manually or update you distribution}
+}
+
+\ifPDFTeX
+ \RequirePackage[T1]{fontenc}
+\fi
+
+\let\accentfont\robotoslab
+\DeclareTextFontCommand{\textaccent}{\accentfont}
+
+%adjust LaTeX kerning to font
+\DeclareRobustCommand{\LaTeX}{%
+{L\setbox\z@\hbox{\check@mathfonts \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont A}\kern-.57\wd\z@
+ \sbox\tw@ T\vbox to \ht\tw@{\copy\z@ \vss}\kern-.2\wd\z@}%
+{%
+ \ifdim\fontdimen1\font=\z@ \else \count\z@=\fontdimen5\font
+ \multiply\count\z@ by 64\relax\divide\count\z@ by\p@
+ \count\tw@=\fontdimen1\font \multiply\count\tw@ by\count\z@
+ \divide\count\tw@ by 64\relax\divide\count\tw@ by\tw@
+ \kern-\the\count\tw@ sp\relax\fi}%
+\TeX}
+
+%%-----------------------------------------------------
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls
new file mode 100644
index 0000000000..43bcd28693
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls
@@ -0,0 +1,481 @@
+%% This is file `tudaletter.cls' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{tudaletter}
+ {\filedate}{\fileversion}{Letters for TUDa-CI, Corporate Design of TU Darmstadt}
+
+\RequirePackage{l3keys2e}
+
+\keys_define:nn {TUDaLetter} {
+ logo .bool_gset:N = \g_TUDaletter_logo_bool,
+ logo .default:n = true,
+ logo .initial:n = true,
+ premium .bool_gset:N = \g_TUDaletter_premium_bool,
+ premium .default:n = true,
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+ firstpagenumber .bool_gset:N = \g_TUDa_firstpagenumber_bool,
+ firstpagenumber .initial:n = true,
+ raggedright .bool_gset:N = \g_TUDa_raggedright_bool,
+ pdfa .bool_gset:N = \g_TUDa@pdfa_bool,
+ pdfa .initial:n = true,
+ logofile .tl_gset:N = \g_TUDa_logofile_tl,
+ logofile .initial:n = tuda_logo,
+}
+
+
+\ProcessKeysOptions{TUDaLetter}
+
+\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
+
+
+\newcommand*{\@fontsizefilebase}{tudalettersize}
+
+\PassOptionsToClass{fontsize=10pt, refline=nodate, parskip=full-,addrfield=topaligned}{scrlttr2}
+\LoadClass{scrlttr2}
+
+% Load the TUDa-colorscheme
+\RequirePackage{tudacolors}
+
+\bool_if:NTF \g_TUDaletter_premium_bool
+{ \def\TUDa@premiumcolor{accentcolor}
+ \def\TUDa@use@premiumcolor{\color{accentcolor}}
+ \def\TUDa@use@premiumcolor@text{\color{textaccentcolor}}
+}{
+ \def\TUDa@premiumcolor{black}
+ \let\TUDa@use@premiumcolor\relax
+ \let\TUDa@use@premiumcolor@text\relax
+}
+
+
+
+\RequirePackage{tudafonts}
+\RequirePackage{graphicx}
+\RequirePackage{afterpage}
+\RequirePackage{ragged2e}
+
+
+%%%%%Briefbogen
+%% Spacing:
+\dim_const:Nn \c_TuDa_HeadMargin_dim {12.5mm}
+\dim_const:Nn \c_TuDa_LeftMargin_dim {24.0mm}
+\dim_const:Nn \c_TuDa_RightMargin_dim {\c_TuDa_HeadMargin_dim}
+\dim_const:Nn \c_TuDa_BottomMargin_dim {\c_TuDa_LeftMargin_dim}
+\dim_const:Nn \c_TuDa_Linewidth_dim {\paperwidth-\c_TuDa_LeftMargin_dim-\c_TuDa_RightMargin_dim}
+
+\RequirePackage[heightrounded]{geometry}
+
+\geometry{
+ twoside=false,
+ left=\c_TuDa_LeftMargin_dim,
+ right=\c_TuDa_RightMargin_dim,
+ bottom=20mm,
+ footskip=3mm,
+}
+
+\dim_const:Nn \c_TUDa_textwidth_dim {\textwidth}
+
+\bool_if:NTF \g_TUDaletter_logo_bool {
+ \geometry{top=64mm}
+} {
+ \geometry{top=30mm}
+}
+
+\@setplength{firstheadhpos}{\c_TuDa_HeadMargin_dim}
+\@setplength{firstheadvpos}{\c_TuDa_HeadMargin_dim}
+\@setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_TuDa_HeadMargin_dim}}
+
+\@setplength{firstfootvpos}{\dim_eval:n {\paperheight -17mm}}
+\@setplength{firstfoothpos}{\useplength{firstheadhpos}}
+\@setplength{firstfootwidth}{\useplength{firstheadwidth}}
+
+
+\@setplength{toaddrhpos}{\c_TuDa_LeftMargin_dim}
+\@setplength{toaddrvpos}{50mm}
+\@setplength{backaddrheight}{4mm}
+\@setplength{toaddrindent}{0mm}
+
+\@setplength{refhpos}{\c_TuDa_LeftMargin_dim}
+\@setplength{refvpos}{106mm}
+
+\@setplength{subjectaftervskip}{2\baselineskip}
+\@setplength{lochpos}{\c_TuDa_HeadMargin_dim}
+\@setplength{locvpos}{\dimexpr\useplength{refvpos}+\useplength{subjectaftervskip}+1.4\baselineskip\relax}
+\@setplength{refaftervskip}{0pt}
+\@setplength{subjectbeforevskip}{0pt}
+\@setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_TuDa_RightMargin_dim\relax}
+\@setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_TuDa_BottomMargin_dim\relax}
+
+
+
+\dim_const:Nn \c_TuDa_firstpage_extraindent_dim {-\paperwidth+120mm +\c_TuDa_LeftMargin_dim +\c_TuDa_RightMargin_dim}
+
+
+\RequirePackage[paper=a4]{tudarules}
+
+
+\TUDa@makeheadrule[width=\useplength{firstheadwidth}, color=\TUDa@premiumcolor]{TuDa@LetterheadRule}
+\TUDa@makefootrule[width=\useplength{firstheadwidth}]{TuDa@LetterfootRule}
+
+
+\box_new:N \g_TUDaLetter_firsthead_box
+\hbox_gset:Nn \g_TUDaLetter_firsthead_box {
+ \parbox{\useplength{firstheadwidth}}{
+ \raggedleft
+ \TuDa@LetterheadRule\par
+ \vspace{.5\c_TUDa_logoheight_dim}
+ \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}
+ }
+}
+
+\setkomavar{firsthead}{
+ \box_use:N \g_TUDaLetter_firsthead_box
+}
+
+\KOMAoptions{backaddress=plain}
+\setkomavar{backaddressseparator}{\,$\vert$\,}
+
+%DOKU neue komavars
+\newkomavar{frominstitution}
+\newkomavar{frominstitution-en}
+
+\newkomafont{TUDa_location}{\accentfont\normalcolor}
+\setkomafont{fromname}{\small}
+\newkomafont{TUDa_frominst}{\small\TUDa@use@premiumcolor@text}
+\setkomafont{fromaddress}{\footnotesize}
+
+\setkomafont{refname}{}
+\setkomafont{refvalue}{}
+
+
+\newcommand{\TUD@locfield}{%
+ \usekomafont{TUDa_location}\usekomafont{fromaddress}
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}
+ \par@updaterelative
+ \begingroup
+ \usekomafont{TUDa_frominst}
+ \ifkomavarempty{frominstitution}{}{%
+ {\usekomavar[\raggedright]{frominstitution}}
+ \\[\baselineskip]}%
+ \ifkomavarempty{frominstitution-en}{}{%
+ \usekomavar[\raggedright]{frominstitution-en}
+ \\[\baselineskip]}%
+ \endgroup
+ \ifkomavarempty{fromlogo}{}{\usekomavar{fromlogo}\\[\baselineskip]}%
+ \ifkomavarempty{fromname}{}
+ {{\usekomafont{fromname}\usekomavar{fromname}}
+ \ifkomavarempty{fromfunction}{}{\\\usekomavar{fromfunction}}
+ \\[\baselineskip]}%
+ \ifkomavarempty{fromaddress}{}{\usekomavar{fromaddress}\\[\baselineskip]}%
+ \@tempswafalse
+ \clist_map_inline:nn {fromphone, fromfax, fromemail, fromurl}{
+ \@tempswatrue
+ \ifkomavarempty{##1}{}{
+ \ifkomavarempty*{##1}{}{\makebox[1cm][l]{\usekomavar*{##1}}}\usekomavar{##1}\par
+ }
+ }
+ \if@tempswa
+ \vspace{2\baselineskip}
+ \fi
+ \ifkomavarempty*{date}{}{\usekomavar*{date}\\\usekomavar{date}}
+ \seq_use:Nn \g_TUDa_reffields_seq {}
+ \ifkomavarempty{frombank}{}{\vfill%
+ \ifkomavarempty*{frombank}{Bankverbindung}{\usekomavar*{frombank}}\\\usekomavar{frombank}
+ }
+}
+
+\setkomavar{location}{\parbox[t][.45\paperheight][t]{\useplength{locwidth}}{\TUD@locfield}}
+
+\tl_const:Nn \TUDa@reffield_separator_tl {\\}
+
+\cs_new:Nn \TUDa@set@reffield:n {
+ \ifkomavarempty{#1}{}{%
+ \if@tempswa\\[\baselineskip]\fi
+ \parbox[t]{\linewidth}{\noindent\raggedright
+ \usekomafont{refname}
+ \usekomavar*{#1}\TUDa@reffield_separator_tl
+ \usekomafont{refvalue}
+ \usekomavar{#1}
+ }%
+ \@tempswatrue
+ }%
+}
+
+
+
+\seq_new:N \g_TUDa_reffields_seq
+\newlength{\TUD@page@free}
+\newcounter{TUD@page@free@lines}
+
+\renewcommand{\opening}[1]{%
+ \widowpenalty=100
+ \@PapersizeWarning
+ \seq_gclear:N \g_TUDa_reffields_seq
+ \renewcommand*{\@set@reffield}[1]{
+ \typeout{Field: ##1}%
+ \str_if_eq:nnT {##1}{datemarkerfield}{%
+ \let\scr@datemarkerfield@var=\scr@date@var
+ \let\scr@datemarkerfield@name=\scr@date@name
+ \setkomavar{date}{}%
+ }
+ \ifkomavarempty{##1}{}{%
+ \seq_gput_right:Nn \g_TUDa_reffields_seq {%
+ \TUDa@set@reffield:n {##1}
+ }%
+ }%
+ }
+ \let\do@set@reffield\@set@reffield
+ \@set@reffields
+ \removereffields
+ \@gen@firsthead
+ \@mkboth{\scr@fromname@var}{\scr@subject@var}%
+ \thispagestyle{empty}\noindent
+ \ifkomavarempty{toname}{\setkomavar{toname}{\mbox{}}}{}
+ \@foldmarks\@firstheadfootfield\@addrfield\@locfield
+ \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi
+ \@datefield
+ \@makelettertitle
+ \ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi
+ {\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}%
+ {\setlength{\@tempdima}{\baselineskip}%
+ \addtolength{\@tempdima}{-\parskip}%
+ \ifdim \@tempdima>\z@\vskip\@tempdima\fi}%
+ \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\fi
+ \setcounter{equation}{0}%
+ \@afterheading%
+ \@nobreaktrue
+ \@afterindentfalse
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse\clubpenalty\@M
+ \if@afterindent
+ \else{\setbox\z@\lastbox}
+ \fi
+ \else
+ \clubpenalty \@clubpenalty
+ \fi
+ %TODO: ifdum < 2 \baselineskip
+ \ifnum\thepage=1%
+ \TUD@page@free=-\pagegoal%
+ \advance\TUD@page@free\pagetotal%
+ \dim_compare:nTF {-\TUD@page@free>2\baselineskip}
+ {
+ \bool_if:NF \g_TUDaletter_logo_bool {
+ \advance\TUD@page@free-.3\baselineskip
+ }
+ \divide\TUD@page@free\baselineskip%
+ \c@TUD@page@free@lines=\TUD@page@free%
+ \int_compare:nT {\value{TUD@page@free@lines}<0} {
+ \hangafter=\value{TUD@page@free@lines}\hangindent=\c_TuDa_firstpage_extraindent_dim%
+ }
+ } {
+ \dim_compare:nT {-\TUD@page@free>\baselineskip} {
+ \hangafter=-2\hangindent=\c_TuDa_firstpage_extraindent_dim%
+ }
+ }
+ \fi%
+ }%
+ \global\setlength{\linewidth}{\dim_eval:n {\c_TuDa_Linewidth_dim + \c_TuDa_firstpage_extraindent_dim}}
+ \afterpage{
+ \global\setlength{\linewidth}{\c_TuDa_Linewidth_dim}
+ \widowpenalty=10000
+ }
+}
+
+\AtBeginDocument{%
+ \raggedbottom%
+}
+
+\setkomafont{backaddress}{\accentfont\tiny\TUDa@use@premiumcolor@text\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}}
+\setkomafont{pagenumber}{\tiny}
+
+\raggedbottom
+
+\int_new:N \l_TUDa_letter_lastpage_int
+\newcommand*{\TUDa@letterpagemark}{
+ %get lastpage for this letter if not already done
+ \int_compare:nTF {\value{page} = 1} {
+ \bool_if:NTF \g_TUDa_firstpagenumber_bool
+ {\bool_set_true:N \l_tmpa_bool}
+ {\bool_set_false:N \l_tmpa_bool}
+ }
+ {\bool_set_true:N \l_tmpa_bool}
+ \bool_if:NT \l_tmpa_bool {
+ \int_if_exist:cF {c_TUDa_letter\thisletter _lastpage_int} {
+ \expandafter\ifx\csname r@\thisletter.lastpage\endcsname\relax
+ %warning -> rerun latex
+ \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} {0}
+ \else
+ \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} {
+ \cs_if_exist:NTF \hypersetup
+ {\exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}}
+ {\exp_args:NNc \expandafter \use_ii:nn { r@\thisletter.lastpage}}
+ }
+ \fi
+ }
+ \usekomafont{pagenumber}\pagename\nobreakspace\thepage
+ \int_compare:nT {
+ \int_use:c {c_TUDa_letter\thisletter _lastpage_int}
+ > 1
+ } {/\int_to_arabic:n{\int_use:c {c_TUDa_letter\thisletter _lastpage_int}}}
+ }
+}
+
+\setkomavar{nextfoot}{
+ \parbox{\useplength{firstfootwidth}}{\usekomafont{pagefoot}
+ \raggedleft\TuDa@LetterfootRule\par\TUDa@letterpagemark}
+}
+
+\setkomavar{firstfoot}{
+ \usekomavar{nextfoot}
+}
+
+%pagestyle
+\RequirePackage{scrlayer}
+
+\bool_if:NTF \g_TUDaletter_logo_bool {
+ \DeclareNewLayer[
+ background,
+ align=tl,
+ hoffset=\useplength{firstheadhpos},
+ voffset=\useplength{firstheadvpos},
+ width=\box_wd:N \g_TUDaLetter_firsthead_box,
+ height=\box_ht:N \g_TUDaLetter_firsthead_box,
+ contents={\box_use:N \g_TUDaLetter_firsthead_box}
+ ]{letter.head}
+}{
+ \DeclareNewLayer[
+ background,
+ align=tl,
+ hoffset=\useplength{firstheadhpos},
+ voffset=\useplength{firstheadvpos},
+ %TODO: replace leiste logo=?
+ width=\box_wd:N \TuDa@LetterheadRule_box,
+ height=\box_ht:N \TuDa@LetterheadRule_box,
+ contents=\TuDa@LetterheadRule
+ ]{letter.head}
+}
+
+\DeclareNewLayer[
+ background,
+ align=tl,
+ hoffset=\useplength{firstfoothpos},
+ voffset=\useplength{firstfootvpos},
+ width=\useplength{firstfootwidth},
+ height=\baselineskip,
+ contents={\raisebox{\ht\strutbox}{\parbox[t]{\layerwidth}{\usekomavar{nextfoot}}}}
+]{letter.foot}
+
+\RequirePackage{tikz}
+\DeclareNewPageStyleByLayers{TUDaletter}{
+ letter.head, letter.foot.rule, letter.foot
+}
+
+\DeclarePageStyleAlias{letter}{TUDaletter}
+\DeclarePageStyleAlias{plain.letter}{TUDaletter}
+
+\pagestyle{plain.letter}
+
+%pdfa
+\if_bool:N \g_TUDa@pdfa_bool
+\PassOptionsToPackage{a-1b}{pdfx}
+\RequirePackage{pdfx}
+%%hyperref
+\hypersetup{hidelinks, unicode}
+\iow_new:N \TUDa@xmpdata_stream
+\tl_new:N \g_TUDa@xmp_title
+\tl_new:N \g_TUDa@xmp_author
+
+\cs_new:Nn \TUDa_pass_TitleData: {
+ \prop_if_empty:NF \g_TUDa_MetaData_prop {
+ \iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata}
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \cs_set:Npn \and {\exp_not:N \sep}
+ \use:c {pdfx@localcommands}
+ \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \TUDa@xmpdata_stream
+ }
+}
+\cs_new:Nn \TUDa_write_xmp_line:nn {
+ \cs_if_exist:cTF {\tl_mixed_case:n {#1}} {
+ \iow_now:Nx \TUDa@xmpdata_stream {
+ \c_backslash_str \tl_mixed_case:n {#1} {#2}\iow_newline:
+ }
+ }{
+ \msg_error:nnn {TUDapub} {unknown-metadata} {#1}
+ }
+}
+
+\bool_new:N \g_TUDa_pass_TitleData_bool
+\bool_gset_true:N \g_TUDa_pass_TitleData_bool
+\prop_new:N \g_TUDa_MetaData_prop
+
+\newcommand*{\Metadata}[1]{
+ \bool_gset_false:N \g_TUDa_pass_TitleData_bool
+ \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#1}
+}
+
+\msg_new:nnnn {TUDapub} {unknown-metadata} {
+ You~ used~ the~ #1~ metadata~ entry.\\
+ I~ don't~ know~ how~ to~ handle~ that.\\
+ It~ will~ be~ ignored.
+} {See~ TUDa-CI~ or~ pdfx~ documentation~ for~ details.}
+\fi:
+
+
+%Widows and clubs
+\widowpenalty=10000
+\clubpenalty=10000
+
+%default values
+\setkomavar*{fromemail}{}
+\setkomavar*{fromurl}{}
+\setkomavar{backaddress}{Technische~ Universität~ Darmstadt\\Karolinenplatz~ 5\\64289~ Darmstadt}
+
+%renewcaptions
+\defcaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\yourmailname{Ihre~ Nachricht}%
+\defcaptionname{german, ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\phonename{Tel.}%
+
+
+%signature raggedright
+\let\raggedsignature\raggedright
+
+\newkomavar{fromfunction}
+
+\bool_if:NT \g_TUDa_raggedright_bool {\AtBeginLetter{\RaggedRight}}
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo
new file mode 100644
index 0000000000..856eb24686
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo
@@ -0,0 +1,139 @@
+%% This is file `tudalettersize10pt.clo' version 1.0 (2018/12/12),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (c) 2018 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%%
+%% This file is a slightly modified version of scrsize10pt.clo
+%% generated with the docstrip utility, extended by scrdocstrip.
+%% modified by Marei Peischl <marei@peitex.de>
+%%
+%% Its original source files were:
+%%
+%% scrkernel-version.dtx (with options: `clo,10pt')
+%% scrkernel-fonts.dtx (with options: `clo,10pt')
+%% scrkernel-paragraphs.dtx (with options: `clo,10pt')
+%%
+%% Copyright (c) 1994-2017 Markus Kohm [komascript at gmx info]
+%%
+%% The original file was generated from file(s) of the KOMA-Script bundle.
+%% https://ctan.org/pkg/koma-script
+%%
+%% ========================================================================
+%% 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 Maintainers of this work are Marei Peischl <kontakt@peitex.de> and Markus Lazanowski <latex@ce.tu-darmstadt.de>.
+%%
+%%
+\ProvidesFile{%
+ tudalettersize10pt.clo%
+}[tudaletter font size class option]
+
+\def\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\datasize{%
+ \normalsize
+ \@setfontsize\normalsize\@xpt\@xiiipt
+}
+\def\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+ \@setfontsize\footnotesize{7.5pt}\@xpt%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\def\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\def\large{\@setfontsize\large\@xiipt{14}}
+\def\Large{\@setfontsize\Large\@xivpt{18}}
+\def\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\def\huge{\@setfontsize\huge\@xxpt{25}}
+\def\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\normalsize
+\setlength\footnotesep {6.65\p@}
+\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%%% From File: $Id: scrkernel-paragraphs.dtx 3064 2019-02-01 07:40:28Z kohm $
+\@ifundefined{@list@extra}{}{%
+ \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
+ \l@addto@macro{\@listi}{\@list@extra}%
+ \let\@listI=\@listi
+ \l@addto@macro{\@listii}{\@list@extra}%
+ \l@addto@macro{\@listiii}{\@list@extra}%
+ \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
+ \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
+}
+\@listi
+\endinput
+%%
+%% End of file `tudalettersize10pt.clo'.
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls
new file mode 100644
index 0000000000..87b8bd2b4b
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls
@@ -0,0 +1,384 @@
+%% This is file `tudaposter.cls' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{tudaposter}{\filedate}{\fileversion}{Poster Layouts for the Corporate Design of TU Darmstadt}
+
+\RequirePackage{l3keys2e}
+
+\bool_new:N \g_TUDa_logo@inhead_bool
+\dim_new:N \g_TUDa_margin_dim
+\int_new:N \g_TUDa_paper_int
+
+\keys_define:nn {TUDa/poster} {
+ accentcolor .code:n = {\PassOptionsToPackage{accent=#1}{tudacolors}},
+ color .meta:n = {accent=#1},
+ textaccentcolor .code:n = {\PassOptionsToPackage{textaccent=#1}{tudacolors}},
+ identbarcolor .code:n = {\PassOptionsToPackage{indentbar=#1}{tudacolors}},
+ logo .choice:,
+ logo / head .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool},
+ logo / body .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool},
+ logo / top .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool},
+ logo / bottom .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool},
+ logo .initial:n = {head},
+ footer .bool_gset:N = \g_TUDa_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = false,
+ footheight .dim_gset:N = \g_TUDa_footheight_dim,
+ paper .choices:nn = {a0,a1,a2,a3,a4}{
+ \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int
+ \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \tl_gset_eq:NN \g_TUDa_paper_tl \l_keys_choice_tl
+ },
+ fontsize .choice:,
+ fontsize / auto .code:n = \tl_gclear:N \g_TUDa_fontsize_tl,
+ fontsize / unknown .code:n = {\@defaultunits\@tempdima#1pt\relax\@nnil \tl_gset:Nx \g_TUDa_fontsize_tl {\the\@tempdima}},
+ fontsize .initial:n = auto,
+ logofile .tl_gset:N = \g_TUDa_logofile_tl,
+ logofile .initial:n = tuda_logo,
+}
+
+
+\ProcessKeysOptions{TUDa/poster}
+
+\LoadClass[parskip=half-]{scrartcl}
+
+\tl_if_empty:NT \l_keys_choice_tl {\keys_set:nn {TUDa/poster} {paper=a0}}
+
+
+
+\int_case:nn {\g_TUDa_paper_int}
+{
+ %paper=a0
+ {1} {
+ \cs_set:Nn \TUDa_title_fontsize: {{132pt}{148pt}}
+ \cs_set:Nn \TUDa_subtitle_fontsize: {{50pt}{62pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{45pt}{56pt}}
+ \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {30pt}}
+ \dim_gset:Nn \g_TUDa_margin_dim {30mm}
+ }
+ %paper=a1
+ {2} {
+ \cs_set:Nn \TUDa_title_fontsize: {{100pt}{124pt}}
+ \cs_set:Nn \TUDa_subtitle_fontsize: {{35pt}{42pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{30pt}{37pt}}
+ \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {25pt}}
+ \dim_gset:Nn \g_TUDa_margin_dim {30mm}
+ }
+ %paper=a2
+ {3} {
+ \cs_set:Nn \TUDa_title_fontsize: {{72pt}{84pt}}
+ \cs_set:Nn \TUDa_subtitle_fontsize: {{28pt}{34pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{25pt}{30pt}}
+ \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {25pt}}
+ \dim_gset:Nn \g_TUDa_margin_dim {30mm}
+ }
+ %paper=a3
+ {4} {
+ \cs_set:Nn \TUDa_title_fontsize: {{56pt}{68pt}}
+ \cs_set:Nn \TUDa_subtitle_fontsize: {{22pt}{28pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{19pt}{24pt}}
+ \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {17pt}}
+ \dim_gset:Nn \g_TUDa_margin_dim {15mm}
+ }
+ %paper=a4
+ {5} {
+ \cs_set:Nn \TUDa_title_fontsize: {{42pt}{52pt}}
+ \cs_set:Nn \TUDa_subtitle_fontsize: {{20pt}{25pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{17pt}{20pt}}
+ \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {14pt}}
+ \dim_gset:Nn \g_TUDa_margin_dim {15mm}
+ }
+}
+
+
+\setkomafont{title}{\expandafter\fontsize\TUDa_title_fontsize:\selectfont}
+\setkomafont{subtitle}{\expandafter\fontsize\TUDa_subtitle_fontsize:\selectfont}
+\newkomafont{titleinfo}{\normalfont}
+
+
+\KOMAoptions{fontsize=\g_TUDa_fontsize_tl}
+
+
+
+
+
+\RequirePackage{tudafonts}
+\renewcommand*{\familydefault}{\sfdefault}
+\RequirePackage[paper=\g_TUDa_paper_tl,mode=tikz]{tudarules}
+
+\RequirePackage{tudacolors}
+\RequirePackage{qrcode}
+\RequirePackage{tikz}
+
+
+
+
+\newlength{\contentwidth}
+\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_TUDa_margin_dim}
+
+\TUDa@makeheadrule[width=\contentwidth, color=identbarcolor]{TUDa@posterrule}
+
+\TUDa@makefootrule[width=\contentwidth, color=identbarcolor]{TUDa@smallrule}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{geometry}
+\geometry{
+ margin= \g_TUDa_margin_dim,
+ top=\dim_eval:n {
+ \box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box
+ + .5\c_TUDa_logoheight_dim
+ +\g_TUDa_margin_dim}
+}
+\setlength\columnsep{\g_TUDa_margin_dim}
+
+
+\bool_if:NT \g_TUDa_poster_foot_bool {
+ \dim_compare:nT {\g_TUDa_footheight_dim = 0pt} {
+ \dim_set:Nn \g_TUDa_footheight_dim
+ {1.5\baselineskip}
+ }
+ \geometry{bottom=\dim_eval:n {\g_TUDa_footheight_dim+\footskip+\g_TUDa_margin_dim}}
+}
+%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\RequirePackage{scrlayer}
+
+
+\dim_new:N \g_TUDa_qrcode_dim
+\dim_gset:Nn \g_TUDa_qrcode_dim {.7\c_TUDa_logoheight_dim}
+
+\DeclareNewLayer[
+ background,
+ align=br,
+ width=\g_TUDa_qrcode_dim,
+ height=\g_TUDa_qrcode_dim,
+ hoffset=\paperwidth-\g_TUDa_margin_dim,
+ voffset=\paperheight-\g_TUDa_margin_dim,
+ mode=picture,
+ contents={%
+ \raisebox{\depth}{\qrcode[height=\dim_eval:n {\g_TUDa_qrcode_dim-2\fboxsep}]{\g_TUDa_poster_qrcode_tl}}
+ }
+ ]{TUDa.poster.qrcode}
+
+
+\bool_if:NTF \g_TUDa_poster_foot_bool {
+ \DeclareNewLayer[
+ clone=TUDa.poster.qrcode,
+ align=bl,
+ hoffset=\g_TUDa_margin_dim,
+ width=\textwidth,
+ height=\g_TUDa_footheight_dim,
+ contents={
+ \putUL{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}}
+ \put(0,0) {
+ \parbox[b][\g_TUDa_footheight_dim][c]{\layerwidth}{\strut\g_TUDa_poster_foot_tl\strut}}
+ \putLL{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}}
+ }
+ ]{TUDa.poster.footer}
+}{
+ \DeclareNewLayer[
+ clone=TUDa.poster.qrcode,
+ align=bl,
+ hoffset=\g_TUDa_margin_dim,
+ width=\textwidth,
+ height=0pt,
+ contents={\smash{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}}}
+ ]{TUDa.poster.footer}
+}
+
+\DeclareNewLayer[
+ textarea,background,mode=picture,
+ voffset=\g_TUDa_margin_dim+\box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box,
+ contents={\color{accentcolor}\rule{\layerwidth}{\layerheight}}
+]{TUDa.poster.background}
+
+\DeclareNewLayer[
+ textarea,
+ foreground,
+ align=tr,
+ addhoffset=\textwidth,
+ width=2.2\c_TUDa_logoheight_dim,
+ height=15cm,
+ contents={\box_use:N \g_TUDa_title_info_box}
+]{TUDa.poster.logo}
+
+\DeclareNewLayer[
+ align=tl,
+ textarea,
+ voffset=\g_TUDa_margin_dim,
+ height=\box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box,
+ mode=picture,
+ contents={
+ \box_use:N \TUDa@posterrule_box
+ }
+]{TUDa.poster.rule}
+
+\DeclareNewPageStyleByLayers{TUDa.poster}{TUDa.poster.rule,TUDa.poster.background,TUDa.poster.qrcode,TUDa.poster.footer}
+
+\dim_new:N \g_TUDa_titlegraphic_max_height_dim
+\skip_new:N \g_TUDa_title_fill_skip
+
+\renewcommand*{\maketitle}{
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \vbox_gset:Nn \g_TUDa_title_box {
+ \usekomafont{title}
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g_TUDa_logo@inhead_bool {.75}\linewidth}
+ \begin{addmargin}{.5ex}
+ \raggedright
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{disposition}\usekomafont{title}%
+ \@title\strut\par
+ \vskip0pt
+ \end{addmargin}
+ \end{minipage}%
+ \par\nointerlineskip
+ \TUDa@smallrule\usekomafont{subtitle}\par
+ \begin{addmargin}{.5ex}
+ \@subtitle\strut
+ \end{addmargin}
+ \par\nointerlineskip
+ \TUDa@smallrule
+ }
+ }
+ \endgroup
+
+ \TUDa_Setup_Title_box:
+ \dim_compare:nT {\box_ht:N \g_TUDa_title_box < 2\c_TUDa_logoheight_dim} {
+ \skip_set:Nn \g_TUDa_title_fill_skip {2\c_TUDa_logoheight_dim - \box_ht:N \g_TUDa_title_box}
+ }
+ \dim_set:Nn \l_tmpa_dim {\box_ht:N \g_TUDa_title_box+.5\c_TUDa_logoheight_dim+\g_TUDa_title_fill_skip}
+
+ \ModifyLayer[
+ height=\l_tmpa_dim
+ ]{TUDa.poster.background}
+
+ \tl_if_empty:NF \g_TUDa_poster_qrcode_tl {
+ \ModifyLayer[addwidth=-\g_TUDa_qrcode_dim-\c_TUDa_rulesep_dim]{TUDa.poster.footer}
+ }
+
+ \bool_if:NF \g_TUDa_logo@inhead_bool {
+ \ModifyLayer[
+ addvoffset=\l_tmpa_dim +\box_dp:N \g_TUDa_title_box+\c_TUDa_smallrule_dim
+ ]{TUDa.poster.logo}
+ }
+
+ \AddLayersToPageStyle{TUDa.poster}{TUDa.poster.logo}
+ \begingroup
+
+ \bool_if:NT \g_TUDa_logo@inhead_bool {
+ \dim_compare:nT {\box_ht:N \g_TUDa_title_info_box+ \box_dp:N \g_TUDa_title_info_box > \box_ht:N \g_TUDa_title_box}
+ {\msg_warning:nn {TUDaPoster} {infobox-too-high}}
+ }
+
+ \vspace*{\dim_eval:n {\g_TUDa_title_fill_skip-\topskip}}\nointerlineskip
+
+ \box_use:N \g_TUDa_title_box
+
+ \dim_set:Nn \g_TUDa_titlegraphic_max_height_dim {\textheight-\pagetotal}
+ \global\def\contentheight{\g_TUDa_titlegraphic_max_height_dim}
+ \global\def\contentwidth{\linewidth}
+ \tl_if_empty:NF \@titlegraphic{
+ \par\nointerlineskip
+ \vbox{\parbox[t]{\linewidth}{\@titlegraphic}}
+ }
+ \thispagestyle{TUDa.poster}
+ \endgroup\par
+}
+
+\global\def\contentwidth{\linewidth}
+\global\def\contentheight{\g_TUDa_titlegraphic_max_height_dim}
+
+
+\def\@titlegraphic{}
+\newcommand{\titlegraphic}[1]{
+ \def\@titlegraphic{#1}
+}
+
+\seq_new:N \g_TUDa_title_info_seq
+
+\seq_gput_right:Nn \g_TUDa_title_info_seq {
+ \rlap{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}
+}
+
+\box_new:N \g_TUDa_title_info_box
+\box_new:N \g_TUDa_title_box
+
+\cs_new:Nn \TUDa_make_title_info_box:n {
+ \usekomafont{titleinfo}
+ \setlength{\fboxsep}{.2\baselineskip}
+ \colorbox{white}{\hspace*{\dimexpr.2\c_TUDa_logoheight_dim-\fboxsep}%
+ \parbox{2\c_TUDa_logoheight_dim}{
+ \raggedright
+ #1
+ }}
+}
+
+\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_TUDa_title_info_seq {\TUDa_make_title_info_box:n {#1}}}
+
+\cs_new:Nn \TUDa_Setup_Title_box: {
+ \hbox_gset:Nn \g_TUDa_title_info_box
+ {\parbox{2.2\c_TUDa_logoheight_dim}{
+ \seq_use:Nn \g_TUDa_title_info_seq {\par\nointerlineskip\skip_vertical:n
+ {
+ \box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box
+ }
+ }
+ }}
+}
+
+
+\tl_new:N \g_TUDa_poster_foot_tl
+\newcommand{\footer}[1]{
+ \tl_gset:Nn \g_TUDa_poster_foot_tl {#1}
+}
+
+\tl_new:N \g_TUDa_poster_qrcode_tl
+\newcommand*{\footerqrcode}[1]{
+ \tl_gset:Nn \g_TUDa_poster_qrcode_tl {#1}
+}
+
+
+\RedeclareSectionCommand[afterskip=1ex plus .2ex]{section}
+\RedeclareSectionCommand[afterskip=.2ex plus .2ex]{subsection}
+
+\msg_new:nnn {TUDaPoster} {infobox-too-high} {
+ The~height~of~your~Infobox~exeeds~the~space~reserved~in~the~title~block.\\
+ You~should~probably~switch~to~logo=bottom~or~reduce~the~number/size~of~InfoBoxes.
+}
+
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/tudapub.cls b/macros/latex/contrib/tuda-ci/tex/tudapub.cls
new file mode 100644
index 0000000000..ae21ac783d
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudapub.cls
@@ -0,0 +1,1064 @@
+%% This is file `tudapub.cls' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{tudapub}
+ {\filedate}{\fileversion}{Publications using TU Darmstadt's Coporate Desing (TUDa-CI)}
+
+\RequirePackage{l3keys2e}
+\RequirePackage{URspecialopts}
+
+\Define@specialopt@Module[TUDa/special]
+
+
+
+\tl_new:N \g_TUDa_pub_class_tl
+\tl_new:N \g_TUDa_thesis_options_tl
+
+\prop_new:N \g_TUDa_clsopts_prop
+\prop_new:N \g_TUDa_unknown_clsopts_prop
+\prop_gput:Nnn \g_TUDa_clsopts_prop {titlepage} {firstiscover}
+\prop_gput:Nnn \g_TUDa_clsopts_prop {captions} {nooneline}
+
+\int_new:N \g_TUDa_ruledheaders_int
+\int_new:N \g_TUDa_paper_int
+
+%Message Declaration for option processing
+\msg_new:nnn {TUDaPub} {titlepage-option-disabled} {
+ You~set~the~titlepage~option~to~#1.\\
+ The~Corporate~Design~guidelines~for~TU~Darmstadt~do~not~support~this~option.\\
+ The~KOMA-Script~option~titlepage~is~forced~to~"firstiscover".
+}
+
+\keys_define:nn {TUDa/pub} {
+ %twoside -> geometry + class
+ class .choice:,
+ class/report .meta:n = {class=scrreprt},
+ class/scrreprt .code:n = \tl_gset:Nn \g_TUDa_pub_class_tl {scrreprt},
+ class/article .meta:n = {class=scrartcl},
+ class/scrartcl .code:n = \tl_gset:Nn \g_TUDa_pub_class_tl {scrartcl},
+ class/book .meta:n = {class=scrbook},
+ class/scrbook .code:n = \tl_gset:Nn \g_TUDa_pub_class_tl {scrbook},
+ class .initial:n = scrartcl,%MAYBE add custom values
+ color .meta:n = {accentcolor=#1},
+ accentcolor .code:n = {\PassOptionsToPackage{accentcolor=#1}{tudacolors}},
+ textaccentcolor .code:n = {\PassOptionsToPackage{textaccentcolor=#1}{tudacolors}},
+ identbarcolor .code:n = {\PassOptionsToPackage{identbarcolor=#1}{tudacolors}},
+ marginpar .tl_gset:N = \g_TUDa_marginpar_tl,
+ marginpar .default:n = auto,
+ marginpar .initial:n = auto,
+ custommargins .bool_gset:N = \g_TUDa_custommargins_bool,
+ custommargins .initial:n = false,
+ custommargins .default:n = true,
+ fontsize .code:n = \prop_gput:Nnn \g_TUDa_clsopts_prop {fontsize} {#1},
+ fontsize .initial:n = {9pt},
+ ruledheaders .choices:nn = {false, none, chapter, section, true, all}{
+ \int_gset:Nn \g_TUDa_ruledheaders_int {\l_keys_choice_int}
+ },
+ ruledheaders .initial:n = all,
+ type .choices:nn = {publication, thesis} {\tl_gset_eq:NN \g_TUDa_pubType_tl \l_keys_choice_tl},
+ type .initial:n = publication,
+ unknown .code:n = {\prop_gput:NVn \g_TUDa_unknown_clsopts_prop \l_keys_key_tl {#1}},
+ headline .choice:,
+ headline / true .code:n = \bool_gset_true:N \g_TUDa_headline_bool,
+ headline / false .code:n = \bool_gset_false:N \g_TUDa_headline_bool,
+ headline / automark .code:n = {\bool_gset_true:N \g_TUDa_headline_bool \PassOptionsToPackage{automark}{scrlayer-scrpage}},
+ automark .meta:n = {headline=automark},
+ headline .initial:n =false,
+ colorback .bool_gset:N = \g_TUDa_colorback_bool,
+ colorback .initial:n = true,
+ pdfa .bool_gset:N = \g_TUDa@pdfa_bool,
+ pdfa .initial:n = true,
+ twocolumn .bool_gset:N = \g_TUDa_twocolumn_bool,
+ twocolumn .default:n = true,
+ twocolumn .initial:n = false,
+ BCOR .code:n = \PassOptionsToPackage{bindingoffset=#1}{geometry},
+ bindingoffset .meta:n = {BCOR=#1},
+ captions .code:n = {\prop_gput:Nnx \g_TUDa_clsopts_prop {captions} {
+ \use:n {\prop_item:Nn \g_TUDa_clsopts_prop {captions}}, #1}
+ },
+ abstract .code:n = \prop_gput:Nnn \g_TUDa_unknown_clsopts_prop {abstract} {#1},
+ abstract .initial:n =true,
+ logo .choice:,
+ logo / head .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool},
+ logo / body .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool},
+ logo / top .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool},
+ logo / bottom .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool},
+ logo .initial:n = {body},
+ titlepage .code:n = {\msg_warning:nnn {TUDaPub} {titlepage-option-disabled} {#1}},
+ paper .choices:nn = {a0,a1,a2,a3,a4,a5,a6}{
+ \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int
+ \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
+ \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n = a4,
+ IMRAD .bool_gset:N = \g_TUDa_IMRAD_bool,
+ IMRAD .initial:n = true,
+ IMRAD .default:n = true,
+ instbox .code:n = {\tl_gput_right:Nn \g_TUDa_thesis_options_tl {,instbox=#1}},
+ noinstbox .code:n = {\tl_gput_right:Nn \g_TUDa_thesis_options_tl {,noinstbox=#1}},
+ logofile .tl_gset:N = \g_TUDa_logofile_tl,
+ logofile .initial:n = tuda_logo,
+}
+%
+%%special option handling grouped values
+\Module@DefineSpecialKey[TUDa/special]{thesis}{
+ \keys_set:nn {TUDa/pub}{type=thesis}
+ \tl_gput_right:No \g_TUDa_thesis_options_tl {#1}
+}
+
+\Module@Process@SpecialOptions[TUDa/special]
+
+\ProcessKeysOptions{TUDa/pub}
+
+
+
+\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
+
+\prop_gput:Nnx \g_TUDa_clsopts_prop {twocolumn} {\bool_if:NTF \g_TUDa_twocolumn_bool {true} {false}}
+
+\prop_map_inline:Nn \g_TUDa_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {\g_TUDa_pub_class_tl}}
+ {
+ \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_TUDa_pub_class_tl}}
+ }
+}
+
+
+%Load tudasize clo file if available
+\file_if_exist:nT {tudasize\prop_item:Nn \g_TUDa_clsopts_prop {fontsize}.clo}
+ {\providecommand*{\@fontsizefilebase}{tudasize}}
+
+%\PassOptionsToPackage{DIV=7}{typearea}
+
+\LoadClass{\g_TUDa_pub_class_tl}
+
+\prop_map_inline:Nn \g_TUDa_unknown_clsopts_prop {
+ \cs_if_exist:cT {KV@KOMA.\g_TUDa_pub_class_tl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1} }
+ {\clist_map_inline:nn {#2} {\KOMAoptions{#1=##1}}}
+ }
+}
+
+%ruled headers
+\int_compare:nT {\g_TUDa_ruledheaders_int>=3} {
+ \cs_if_exist:NT \chapterlinesformat {
+ \renewcommand*{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}
+ \smash{\raisebox{\depth}{\rule[\dp\strutbox]{\linewidth}{\g_TUDa_titlerule_dim}}}
+ }
+ }
+}
+\int_compare:nT {\g_TUDa_ruledheaders_int =4 }{
+ \renewcommand*\sectionlinesformat[4]{%
+ \tl_if_eq:nnTF {#1} {section}
+ {
+ \parbox{\linewidth}{
+ \rule[5\g_TUDa_titlerule_dim]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\TUDa_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}}}
+ }{
+ \@hangfrom{\hskip #2#3}{#4}
+ }
+ }
+}
+\int_compare:nT {\g_TUDa_ruledheaders_int>4} {
+ \renewcommand*\sectionlinesformat[4]{%
+ \parbox{\linewidth}{
+ \rule[5\g_TUDa_titlerule_dim]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\TUDa_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}}
+ }}
+}
+
+
+\usepackage{tudarules}
+
+
+%,~ subsection,~
+
+
+%\newcommand{\chapterlineswithprefixformat}[3]{%
+% #2#3%
+%}
+%
+%ngerman,article,dr=phil,type=drfinal,colorback,accentcolor=TUDa-9c, fontsize=9pt,twoside=true
+
+\usepackage{tudafonts}
+
+%Margin & titlefontsize setup setup
+\bool_new:N \g_TUDa_marginpar_bool
+
+\dim_new:N \g_TUDa_marginpar_dim
+\dim_new:N \g_TUDa_innerMargin_dim
+\dim_new:N \g_TUDa_outerMargin_dim
+\dim_new:N \g_TUDa_bottomMargin_dim
+\dim_new:N \g_TUDa_topMargin_dim
+
+
+ %a3,a4
+ \int_compare:nTF {4<=\g_TUDa_paper_int<=5}
+ {
+ \dim_gset:Nn \g_TUDa_bottomMargin_dim {20mm}
+ \dim_gset:Nn \g_TUDa_outerMargin_dim {15mm}
+ \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim
+ \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim
+ }{
+ %a0, a1, a2
+ \int_compare:nT {1<=\g_TUDa_paper_int<=3}
+ {
+ \dim_gset:Nn \g_TUDa_bottomMargin_dim {35mm}
+ \dim_gset:Nn \g_TUDa_outerMargin_dim {30mm}
+ \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim
+ \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim
+ }
+ %a5
+ \int_compare:nT {\g_TUDa_paper_int<=6}
+ {
+ \dim_gset:Nn \g_TUDa_bottomMargin_dim {16mm}
+ \dim_gset:Nn \g_TUDa_outerMargin_dim {12mm}
+ \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim
+ \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim
+ }
+ %a6
+ \int_compare:nT {\g_TUDa_paper_int<=7}
+ {
+ \dim_gset:Nn \g_TUDa_bottomMargin_dim {15mm}
+ \dim_gset:Nn \g_TUDa_outerMargin_dim {10mm}
+ \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim
+ \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim
+ }
+ }
+
+%TODO pubched
+%%punched
+%\dim_gset:Nn \g_TUDa_outerMargin_dim {15mm}
+%\dim_gset:Nn \g_TUDa_innerMargin_dim {20mm}
+%\if@twoside
+%\else
+%\dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim
+%\fi
+
+\dim_new:N \g_TUDa_columnSep_dim
+\dim_gset:Nn \g_TUDa_columnSep_dim {10pt}
+
+%coverpage
+\edef\coverpageleftmargin{\dim_eval:n {\g_TUDa_outerMargin_dim}}
+\renewcommand*{\coverpagetopmargin}{\g_TUDa_outerMargin_dim}
+\edef\coverpagerightmargin{\dim_eval:n {\g_TUDa_outerMargin_dim}}
+\renewcommand*{\coverpagebottommargin}{\g_TUDa_outerMargin_dim}
+
+\str_case:onTF {\g_TUDa_marginpar_tl} {
+ {true} {\bool_gset_true:N \g_TUDa_marginpar_bool}
+ {false} {\bool_gset_false:N \g_TUDa_marginpar_bool}
+ {auto} {\bool_gset_true:N \g_TUDa_marginpar_bool}
+} {
+ \bool_if:NT \g_TUDa_marginpar_bool {
+ \msg_new:nnnn {TUDa} {marginpar-auto} {Setting~up~marginpar~consistent~with~layout~guidelines.} {To~turn~this~off~use~marginpar=false~option.}
+ \msg_info:nn {TUDa} {marginpar-auto}
+ \dim_gset:Nn \g_TUDa_marginpar_dim {(\paperwidth - \g_TUDa_innerMargin_dim -\g_TUDa_outerMargin_dim - 4 \g_TUDa_columnSep_dim)/5}
+ }
+} {
+ \msg_new:nnn {TUDa} {marginpar-no-key} {I~did~not~find~a~text~key~for~marginpar~setup~will~use~the~value~#1~as~width.}
+ \msg_info:nnx {TUDa} {marginpar-no-key} {\g_TUDa_marginpar_tl}
+ \bool_gset_true:N \g_TUDa_marginpar_bool
+ \dim_gset:Nn \g_TUDa_marginpar_dim {\g_TUDa_marginpar_tl}
+}
+
+
+\dim_new:N \g_TUDa_headheight_dim
+\dim_new:N \g_TUDa_headwidth_dim
+
+\bool_if:NTF \g_TUDa_headline_bool
+ {\dim_gset:Nn \g_TUDa_headheight_dim {20pt +\c_TUDa_largerule_dim +\c_TUDa_rulesep_dim +\c_TUDa_smallrule_dim}}
+ {\dim_gset:Nn \g_TUDa_headheight_dim {1.25\baselineskip +\c_TUDa_largerule_dim +\c_TUDa_rulesep_dim +\c_TUDa_smallrule_dim}}
+
+%%%%%Anfang Randeinstellungen Geometry
+
+\bool_if:NTF \g_TUDa_custommargins_bool {
+ \KOMAoptions{headinclude, footinclude}
+ \let\TUDa_disable_marginpar:\relax
+ \let\TUDa_restore_typearea:\relax
+}{
+ \RequirePackage[top=\g_TUDa_topMargin_dim, inner=\g_TUDa_innerMargin_dim, outer=\dim_eval:n {\g_TUDa_outerMargin_dim}, bottom=\g_TUDa_bottomMargin_dim, columnsep= \g_TUDa_columnSep_dim, includehead, includefoot,includemp, nomarginpar, headheight=\g_TUDa_headheight_dim
+ ]{geometry}
+
+
+ \savegeometry{TUDa@nomarginpar}
+ \geometry{includemp, marginpar=\g_TUDa_marginpar_dim, marginparsep=\g_TUDa_columnSep_dim}
+ \KOMAoptions{mpinclude}
+ \savegeometry{TUDa@marginpar}
+ \bool_if:NTF \g_TUDa_marginpar_bool {
+ \loadgeometry{TUDa@marginpar}
+ \tl_const:Nn \c_TUDa_default_geometry_tl {TUDa@marginpar}
+ } {
+ \loadgeometry{TUDa@nomarginpar}
+ \tl_const:Nn \c_TUDa_default_geometry_tl {TUDa@nomarginpar}
+ }
+
+
+ \dim_gset:Nn \g_TUDa_headwidth_dim {\paperwidth-\g_TUDa_innerMargin_dim-\g_TUDa_outerMargin_dim-\Gm@bindingoffset}
+
+ \cs_set:Nn \TUDa_disable_marginpar: {\loadgeometry{TUDa@nomarginpar}}
+ \cs_set:Nn \TUDa_restore_typearea: {\loadgeometry{\c_TUDa_default_geometry_tl}}
+
+}
+
+
+
+%%%%%%%%
+%Ende Randeinstellungen klassisch
+
+\usepackage[draft=false]{scrlayer-scrpage}
+
+
+\newcommand*{\institution}[1]{
+ \def\TUDa@institution{#1}
+}
+
+\gdef\datename{Datum}
+\gdef\dateseparator{:~}
+
+
+
+
+\setkomafont{disposition}{\sffamily\bfseries}
+
+
+
+\dim_new:N \g_TUDa_titlerule_dim
+\dim_gset:Nn \g_TUDa_titlerule_dim {.5\c_TUDa_smallrule_dim}
+
+%\dim_new:N \g_TUDa_titlerule_sep_dim
+%\dim_set:Nn \g_TUDa_titlerule_sep_dim {1ex}
+\cs_new:Nn \TUDa_titlerule_sep: {\the\dp\strutbox}
+
+\usepackage{tudacolors}
+
+%TODO: mode -> light head.
+
+\setkomafont{pageheadfoot}{\sffamily\small}
+\setkomafont{pagenumber}{}
+
+
+\KOMAoptions{footsepline=.5\c_TUDa_smallrule_dim}
+\bool_if:NT \g_TUDa_headline_bool {\KOMAoptions{headsepline=.5\c_TUDa_smallrule_dim}}
+
+%Adjust headheight
+\AtBeginDocument{
+\KOMAoptions{headlines=1.5}
+\recalctypearea
+}
+
+\newpairofpagestyles[scrheadings]{TUDa.headings}{
+ \KOMAoptions{headsepline, headlines=1.25, footlines=1.25}
+ \setkomafont{pagehead}{}
+ \ohead{\headmark}
+}
+
+\newpairofpagestyles{TUDa}{
+ \KOMAoptions{
+ plainfootsepline}
+
+ \bool_if:NTF \g_TUDa_marginpar_bool
+ {
+ \KOMAoptions {
+ headwidth=textwithmarginpar,
+ footwidth=textwithmarginpar
+ }
+ }{
+ \KOMAoptions {
+ headwidth=text,
+ footwidth=text
+ }
+ }
+
+\setkomafont{pagehead}{\Large\bfseries}
+\box_if_exist:NF \TUDa@headline_box {
+ \TUDa@makeheadrule[color=identbarcolor, width=\sls@headwidth]{TUDa@headline}
+}
+ \if@twocolumn
+ \edef\sls@evenheadshift{\dim_eval:n {-\marginparwidth-\marginparsep\relax}}
+ \let\sls@oddheadshift\sls@evenheadshift
+ \let\sls@evenfootshift\sls@evenheadshift
+ \let\sls@oddfootshift\sls@evenheadshift
+ \fi
+ \ModifyLayer[
+ background,
+ contents={\smash{\TUDa@headline}}
+ ]{TUDa.head.above.line}
+ \ModifyLayer[
+ background,
+ contents={\smash{\TUDa@headline}}
+ ]{plain.TUDa.head.above.line}
+ \bool_if:NT \g_TUDa_headline_bool {
+ \clist_map_variable:nNn {oneside, even, odd} \l_tmpa_tl {
+ \ModifyLayer[pretocontents={\rule[-6pt]{0pt}{\layerheight}}]{TUDa.head.\l_tmpa_tl}
+ }
+ \lehead{\headmark}
+ \lohead{\headmark}
+ }
+ \ofoot[\pagemark]{\pagemark}
+}
+
+\cs_new:Nn \TUDa_sls@leftmargin: {%
+ \dimexpr
+ \if@twoside
+ \ifodd\value{page}
+ \oddsidemargin
+ \else
+ \evensidemargin
+ \fi
+ \else
+ \oddsidemargin
+ \fi
+ \bool_if:NT \g_TUDa_twocolumn_bool {
+ -\marginparwidth-\marginparsep
+ }
+ +1in\relax
+}
+
+\pagestyle{TUDa}
+
+%Titelseite
+\tl_new:N \g_TUDa_titleimage_code_tl
+\tl_gset_eq:NN \g_TUDa_titleimage_code_tl \c_empty_tl
+\newcommand{\titleimage}[1]{\tl_gset:Nn \g_TUDa_titleimage_code_tl {#1}}
+
+\box_new:N \g_TUDa_title_box
+\skip_new:N \g_TUDa_title_fill_skip
+
+\renewcommand{\titlepagestyle}{title.TUDa}
+
+
+\seq_new:N \g_TUDa_author_seq
+
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#1}
+}
+
+\msg_new:nnn {TUDaPub} {unknown-language} {
+ You~selected~an~unknown~language~#1.\\
+ The~Variable~#2~does~not~have~a~predefined~value.\\
+ Ensure~to~redefine~#2~to~match~your~language.\\
+ Otherwise~the~ngerman~vaue~#3~will~be~used.
+}
+
+\cs_new:Nn \TUDa_define_captionFallback:Nn {
+ \providecommand*#1{
+ \msg_warning:nnxxx {TUDaPub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
+}
+
+\renewcommand*{\@author}{
+ \seq_use:Nnnn \g_TUDa_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
+
+\msg_new:nnn {TUDaPub} {infobox-too-high} {
+ The~height~of~your~Infobox~exeeds~the~space~reserved~in~the~title~block.\\
+ You~should~probably~switch~to~logo=bottom~or~reduce~the~number/size~of~InfoBoxes.
+}
+
+\exp_args:NV \tl_if_eq:nnTF {\g_TUDa_pubType_tl} {thesis} {
+ \input{tudathesis.cfg}
+} {
+
+\msg_new:nnnn {TUDa/pub} {only-thesis} {You~tried~to~use~\use:c { #1}.~This~macro~is~only~available~for~publications~of~type~thesis}{See~tuda-ci~documentation~for~further~information}
+
+\clist_map_inline:nn {birthplace, group, examdate, submissiondate, tuprints, urn, reviewer} {
+ \expandafter\newcommand\csname #1\endcsname[2][]{
+ \msg_error:nnn {TUDa/pub} {only-thesis} {#1}
+ }
+}
+\newcommand*{\TUDa@title@footnote}[2][1]{
+\textsuperscript{\@fnsymbol{#1}}#2
+}
+
+
+
+
+\renewcommand*{\maketitle}[1][1]{
+ \def\and{,~ }
+ \cs_if_exist_use:N \TUDa_pass_TitleData:
+ \TUDa_disable_marginpar:
+ \cleardoublepage
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\fnsymbol{footnote}}
+ \if@titlepageiscoverpage
+ \edef\titlepage@restore{%
+ \noexpand\endgroup
+ \noexpand\global\noexpand\@colht\the\@colht
+ \noexpand\global\noexpand\@colroom\the\@colroom
+ \noexpand\global\vsize\the\vsize
+ \noexpand\global\noexpand\@titlepageiscoverpagefalse
+ \noexpand\let\noexpand\titlepage@restore\noexpand\relax
+ }%
+ \begingroup
+ \topmargin=\dimexpr \coverpagetopmargin-1in\relax
+ \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \textwidth=\dimexpr
+ \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax
+ \textheight=\dimexpr
+ \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax
+ \headheight=0pt
+ \headsep=0pt
+ \footskip=\baselineskip
+ \@colht=\textheight
+ \@colroom=\textheight
+ \vsize=\textheight
+ \columnwidth=\textwidth
+ \hsize=\columnwidth
+ \linewidth=\hsize
+ \else
+ \let\titlepage@restore\relax
+ \fi
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \hbox_gset:Nn \g_TUDa_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g_TUDa_logo@inhead_bool {.75}\linewidth}
+ \begin{addmargin}{3mm}
+ \raggedright
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{title}%
+ \expandafter\fontsize\TUDa_title_fontsize:
+ \selectfont
+ \@title\strut\par
+ \vskip0pt
+ \end{addmargin}
+ \end{minipage}%
+ \par\nointerlineskip
+ \rule{\linewidth}{\g_TUDa_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \expandafter\fontsize\TUDa_titleinfo_fontsize:
+ \selectfont
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ {\ifx\@subject\@empty\else\usekomafont{subject}{\@subject\par}\fi}
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@author
+ \par
+ }%
+ {\usekomafont{date}{\@date\par}}%
+ {\usekomafont{publishers}{\@publishers \par}}%
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \expandafter\fontsize\TUDa_titlethanks_fontsize:\selectfont\par
+ \rule{\linewidth}{\g_TUDa_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \let\footnotetext\TUDa@title@footnote
+ \@thanks
+ \end{addmargin}
+ \par\vspace{-\dp\strutbox}
+ \let\@thanks\@empty
+ }
+ \rule{\linewidth}{\g_TUDa_titlerule_dim}\par}
+
+ }
+
+ \TUDa_adjust_titlepage_style:
+
+
+ \nointerlineskip\box_use:N \g_TUDa_title_box
+ \par
+ \vfill\null
+ \if@twoside
+ \@tempswatrue
+ \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax
+ \else
+ \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty
+ \@tempswafalse
+ \fi\fi
+ \fi
+ \if@tempswa
+ \next@tpage
+ \begin{minipage}[t]{\textwidth}
+ \@uppertitleback
+ \end{minipage}\par
+ \vfill
+ \begin{minipage}[b]{\textwidth}
+ \@lowertitleback
+ \end{minipage}\par
+ \@thanks\let\@thanks\@empty
+ \fi
+ \fi
+ \ifx\@dedication\@empty
+ \else
+ \next@tdpage\null\vfill
+ {\centering\usekomafont{dedication}{\@dedication \par}}%
+ \vskip \z@ \@plus3fill
+ \@thanks\let\@thanks\@empty
+ \cleardoubleemptypage
+ \fi
+ \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
+ \end{titlepage}
+ \setcounter{footnote}{0}%
+ \global\let\and\relax
+ \cleardoublepage
+ \TUDa_restore_typearea:
+ \aftergroup\TUDa_restore_typearea:
+}
+
+
+}
+
+\cs_set:Nn \TUDa_adjust_titlepage_style: {
+ \dim_set:Nn \l_tmpa_dim {\fp_to_dim:n {\expandafter \use_ii:nn\TUDa_title_fontsize: *2.8}}
+ \dim_compare:nT {\box_ht:N \g_TUDa_title_box < \l_tmpa_dim} {
+ \skip_set:Nn \g_TUDa_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_TUDa_title_box}}
+ }
+
+ \dim_set:Nn \l_tmpa_dim {
+ \box_ht:N \TUDa@headline_box+\box_dp:N \TUDa@headline_box-\g_TUDa_titlerule_dim
+ +\box_ht:N \g_TUDa_title_box+.5\c_TUDa_logoheight_dim+\g_TUDa_title_fill_skip+
+ \box_dp:N \g_TUDa_title_box
+ }
+
+ \ModifyLayer[
+ addvoffset=\l_tmpa_dim,
+ addheight=-\l_tmpa_dim
+ ]{title.TUDa.image}
+
+ \bool_if:NT \g_TUDa_logo@inhead_bool {
+ \ModifyLayer[
+ addvoffset=\dim_eval:n {\box_ht:N \TUDa@headline_box+\box_dp:N \TUDa@headline_box-\g_TUDa_titlerule_dim},
+ height={\box_ht:N \g_TUDa_title_box+ \g_TUDa_title_fill_skip+.5\c_TUDa_logoheight_dim}
+ ]{title.TUDa.background}
+
+ \AddLayersToPageStyle{title.TUDa}{title.TUDa.background}
+ }
+
+
+
+ \thispagestyle{title.TUDa}
+
+ \vspace*{\dim_eval:n {
+ -\topskip
+ -\g_TUDa_titlerule_dim
+ +\box_ht:N \TUDa@headline_box
+ +\box_dp:N \TUDa@headline_box
+ +.5\c_TUDa_logoheight_dim
+ }}
+ \nointerlineskip
+ \TUDa_Setup_Title_box:
+
+ \bool_if:NT \g_TUDa_logo@inhead_bool {
+ \dim_compare:nT {\box_ht:N \g_TUDa_title_info_box+ \box_dp:N \g_TUDa_title_info_box > \box_ht:N \g_TUDa_title_box}
+ {\msg_warning:nn {TUDaPub} {infobox-too-high}}
+ \makebox[\linewidth][r]{\smash{
+ \raisebox{-\height}{
+ \makebox[2.2\c_TUDa_logoheight_dim][l]{
+ % }
+ \box_use:N \g_TUDa_title_info_box
+ }}
+ }}
+ }
+ \par
+ \vspace*{\skip_use:N \g_TUDa_title_fill_skip}
+ \setlength{\fboxsep}{\z@}
+}
+
+
+\newkomafont{institution}{\sffamily}
+\setkomafont{subtitle}{\bfseries}
+\setkomafont{subject}{}
+\setkomafont{publishers}{}
+\setkomafont{author}{}
+\setkomafont{date}{}
+
+%TODO finish font setup
+
+\int_case:nn {\g_TUDa_paper_int}
+{
+ %paper=a0
+ {1} {
+ \cs_set:Nn \TUDa_title_fontsize: {{125pt}{165pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{42pt}{55pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{28pt}{35pt}}
+ }
+ %paper=a1
+ {2} {
+ \cs_set:Nn \TUDa_title_fontsize: {{86pt}{120pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{35pt}{42pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{22pt}{26pt}}
+ }
+ %paper=a2
+ {3} {
+ \cs_set:Nn \TUDa_title_fontsize: {{65pt}{82pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{22pt}{28pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{14pt}{20pt}}
+ }
+ %paper=a3
+ {4} {
+ \cs_set:Nn \TUDa_title_fontsize: {{47pt}{61pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{16pt}{20pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{12pt}{16pt}}
+ }
+ %paper=a4
+ {5} {
+ \cs_set:Nn \TUDa_title_fontsize: {{36pt}{47pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{12pt}{14pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{10pt}{11.5pt}}
+ }
+ %paper=a5
+ {6} {
+ \cs_set:Nn \TUDa_title_fontsize: {{22pt}{28pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{11pt}{12pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{10pt}{11.5pt}}
+ }
+ %paper=a6
+ {7} {
+ \cs_set:Nn \TUDa_title_fontsize: {{14pt}{16pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{9pt}{10pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{9pt}{10pt}}
+ }
+}
+
+
+
+\seq_new:N \g_TUDa_title_info_seq
+\box_new:N \g_TUDa_title_info_box
+
+\colorlet{TUDa@InfoBoxColor}{white}
+
+\cs_new:Nn \TUDa_make_title_info_box:n {
+ \setlength{\fboxsep}{1.5mm}%
+ \colorbox{TUDa@InfoBoxColor}{
+ \makebox[\dim_eval:n {2.2\c_TUDa_logoheight_dim-\fboxsep}][r]{
+ \parbox{2\c_TUDa_logoheight_dim}{
+ \expandafter\fontsize\TUDa_titlethanks_fontsize:\selectfont\usekomafont{institution}%
+ \raggedright%
+ #1
+ }}}
+}
+
+\cs_new:Nn \TUDa_make_title_logo_box:n {
+ \setlength{\fboxsep}{\z@}%
+ \parbox{2.2\c_TUDa_logoheight_dim}{
+ \colorbox{TUDa@InfoBoxColor}{
+ \rlap{
+ \makebox[2.5\c_TUDa_logoheight_dim][r]{
+ \colorbox{TUDa@InfoBoxColor}{#1\hspace{.3\c_TUDa_logoheight_dim}}
+ }
+ }
+ }
+ }
+}
+
+\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_TUDa_title_info_seq {\TUDa_make_title_info_box:n {#1}}}
+
+\NewDocumentCommand{\addTitleBoxLogo}{sm}{
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_TUDa_title_info_seq {
+ \TUDa_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_TUDa_title_info_seq {
+ \TUDa_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_TUDa_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_TUDa_logoheight_dim/3}
+ \dim_compare:nTF {\box_ht:N \l_tmpa_box > \l_tmpa_dim}
+ {\includegraphics[width=\l_tmpa_dim]{#2}}
+ {\box_use:N \l_tmpa_box}
+ }
+ }
+ }
+}
+
+\addTitleBoxLogo*{\makebox[\linewidth][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}}
+
+\DeclareNewLayer[textarea,background,mode=picture,
+ contents={
+ \tl_if_empty:NTF \g_TUDa_titleimage_code_tl
+ {\bool_if:NT \g_TUDa_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}}
+ {\putUL{\color{identbarcolor}\raisebox{-\height}{\parbox[t]{\textwidth}{
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_TUDa_titleimage_code_tl
+ }}}}
+ \bool_if:NF \g_TUDa_logo@inhead_bool {
+ \put(\dim_to_decimal_in_unit:nn {\layerwidth-2.2\c_TUDa_logoheight_dim
+ } {\unitlength},
+ \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_TUDa_title_info_box - .5\c_TUDa_logoheight_dim} {\unitlength}){
+ \rlap{\box_use:N \g_TUDa_title_info_box}
+ }
+ }
+ \put(0,0){\rule{\linewidth}{\g_TUDa_titlerule_dim}}
+ }
+]{title.TUDa.image}
+
+\DeclareNewLayer[textarea,background,mode=picture,
+contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}}
+]{title.TUDa.background}
+
+
+\DeclareNewLayer[
+ mode=picture,
+ align=tl,
+ hoffset=\coverpageleftmargin,
+ voffset=\coverpagetopmargin,
+ width=\paperwidth-\coverpageleftmargin-\coverpagerightmargin,
+ contents={
+ \box_if_exist:NF \TUDa@title_headline_box
+ {\TUDa@makeheadrule[color=identbarcolor, width=\layerwidth]{TUDa@title_headline}}
+ \putUL{\TUDa@title_headline}
+ }
+]{title.TUDa.rule}
+
+\cs_new:Nn \TUDa_Setup_Title_box: {
+ \hbox_gset:Nn \g_TUDa_title_info_box
+ {
+ \parbox{\dimexpr2.5\c_TUDa_logoheight_dim}{
+ \seq_use:Nn \g_TUDa_title_info_seq {\par\nointerlineskip\vspace{5mm}}
+ }
+ }
+}
+
+\DeclareNewPageStyleByLayers{title.TUDa}{title.TUDa.rule,title.TUDa.image}
+
+%Logos
+\RequirePackage{graphicx}
+
+\if_bool:N \g_TUDa@pdfa_bool
+
+ \msg_new:nnn {TUDaPub} {prefer-lualatex} {
+ You use pdfa-mode in #1.
+ This can lead to incompatiblities especially with older compiler versions.
+ You should prefer compiling using lualatex.
+ }
+
+
+ \PassOptionsToPackage{a-1b}{pdfx}
+ \RequirePackage{pdfx}
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn {TUDaPub} {prefer-lualatex} {PDFTeX}
+ }
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn {TUDaPub} {prefer-lualatex} {XeTeX}
+ }
+
+
+
+ \@ifpackagelater{pdfx}{2018/12/01}{
+ }{
+ \msg_new:nnnn {TUDaPub} {outdated-pdfx} {
+ Your~Version~of~the~PDFx-package~is~too~old~to~support~all~methods~required~by~tudapubs~pdfa-mode.\\
+ Either~update~your~TeX-distribution~or~switch~to~pdfa=false.
+ }{See~DEMO-TUDaPub~for~further~information.}
+ \msg_error:nn {TUDaPub} {outdated-pdfx}
+ }
+
+
+ %%hyperref
+ \hypersetup{hidelinks, unicode}
+ \iow_new:N \TUDa@xmpdata_stream
+ \tl_new:N \g_TUDa@xmp_title_tl
+ \tl_new:N \g_TUDa@xmp_author_tl
+
+ \cs_if_exist:NF \prop_gput_if_new:Nnx {
+ \cs_generate_variant:Nn \prop_gput_if_new:Nnn {Nnx}
+ }
+
+ \cs_if_exist:NF \tl_to_str:V {\cs_generate_variant:Nn \tl_to_str:N {V}}
+
+ \cs_new:Nn \TUDa_pass_TitleData: {
+ \iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata}
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \cs_set:Npn \and {\exp_not:n {\exp_not:N \sep}}
+ \use:c {Hy@pdfstringtrue}
+ \tl_gset:Nf \g_TUDa@xmp_title_tl {\@title}
+ \prop_gput_if_new:Nnx \g_TUDa_MetaData_prop {title} {\tl_to_str:V \g_TUDa@xmp_title_tl}
+ \tl_gset:Nf \g_TUDa@xmp_author_tl {\@author}
+ \prop_gput_if_new:Nnx \g_TUDa_MetaData_prop {author} {\tl_to_str:V \g_TUDa@xmp_author_tl}
+ \prop_gput_if_new:Nnn \g_TUDa_MetaData_prop {publisher}{TU~Darmstadt}
+ \prop_gput_if_new:Nnn \g_TUDa_MetaData_prop {creator}{LaTeX~using~TUDa-CI}
+ \use:c {pdfx@localcommands}%should be held inside group
+ \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \TUDa@xmpdata_stream
+ }
+ \cs_new:Nn \TUDa_write_xmp_line:nn {
+ \begingroup
+ \cs_set:Npn \sep {\exp_not:N \sep}
+ \cs_if_exist:cTF {\tl_mixed_case:n {#1}} {
+ \iow_now:Nx \TUDa@xmpdata_stream {
+ \c_backslash_str \tl_mixed_case:n {#1} {#2}
+ }
+ }{
+ \msg_error:nnn {TUDaPub} {unknown-metadata} {#1}
+ }
+ \endgroup
+ }
+
+\prop_new:N \g_TUDa_MetaData_prop
+
+ \newcommand*{\Metadata}[1]{
+ \keyval_parse:NNn \use_none:n \TUDa_set_metadata_prop:nn
+ {#1}
+ }
+
+ \cs_set:Nn \TUDa_set_metadata_prop:nn {
+ \exp_args:NNf \prop_gput:Nnn \g_TUDa_MetaData_prop {\tl_lower_case:n{#1}} {#2}
+ }
+
+ \msg_new:nnnn {TUDaPub} {unknown-metadata} {
+ You~ used~ the~ #1~ metadata~ entry.\\
+ I~ don't~ know~ how~ to~ handle~ that.\\
+ It~ will~ be~ ignored.
+ } {See~ TUDa-CI~ or~ pdfx~ documentation~ for~ details.}
+\else:
+ \msg_new:nnn {tudaPub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.}
+ \msg_info:nn {tudaPub} {no-pdfa}
+ %%hyperref
+ \RequirePackage[hidelinks, unicode]{hyperref}
+
+ \newcommand{\Metadata}[1]{\ClassError{tudapub}{You~cannot~use~\string\Metadata\ ~with~pdfa=false.}{}}
+\fi:
+
+%%Abstract anpassungen mit Sprache
+\providecommand{\abstract}{}% für book
+\RenewDocumentEnvironment{abstract}{o}{
+ \begingroup
+ \IfNoValueF{#1}{\selectlanguage{#1}}
+ \bool_set_true:N \l_tmpa_bool
+ \cs_if_exist:NT \if@abstrt {
+ \if@abstrt
+ \else
+ \bool_set_false:NT \l_tmpa_bool
+ \fi
+ }
+ \bool_if:NT \l_tmpa_bool {
+ \scr@ifundefinedorrelax{chapter}{%
+ \iftocfeature{toc}{leveldown}
+ {\subsection*}
+ {\section*}
+ }{
+ \iftocfeature{toc}{leveldown}
+ {\section*}
+ {\chapter*}
+ } {\abstractname}
+
+}}{
+ \endgroup
+}
+
+
+%Anpassungen marginpar
+\cs_set_eq:NN\TUDa_orig@marginpar:\marginpar
+\newkomafont{marginpar}{\color{textaccentcolor}\accentfont}
+\RenewDocumentCommand{\marginpar}{om}{
+ \IfNoValueTF{#1}{
+ \TUDa_orig@marginpar:{\usekomafont{marginpar}#2}
+ }{
+ \TUDa_orig@marginpar:[\usekomafont{marginpar}#1]{\usekomafont{marginpar}#2}
+ }
+}
+
+\TUDa_define_captionFallback:Nn \authorandname {and}
+\defcaptionname{ngerman, german}{\authorandname}{und}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\authorandname}{and}
+
+
+\providecommand*{\frontmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {roman}
+}
+
+\providecommand*{\mainmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {arabic}
+}
+
+\providecommand*{\backmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmatterfalse
+}
+
+
+%IMRAD:Introduction
+\seq_if_exist:NTF \seq_const_from_clist:Nn {
+ \seq_const_from_clist:Nn \c_TUDa_IMRAD_seq {introduction, methods, results, discussion}
+} {
+ \seq_new:N \c_TUDa_IMRAD_seq
+ \seq_gset_from_clist:Nn \c_TUDa_IMRAD_seq {introduction, methods, results, discussion}
+}
+
+\newcommand*{\IMRADlabel}[1]{
+ \seq_if_in:NnTF \c_TUDa_IMRAD_seq {#1}
+ {\label{IMRAD:#1}}
+ {\msg_error:nnnn {TUDaPub}{undefined-IMRADlabel}{#1}{\seq_use:Nn \c_TUDa_IMRAD_seq {,}}}
+}
+
+
+\bool_if:NT \g_TUDa_IMRAD_bool {
+ \AtEndDocument{
+ \seq_map_inline:Nn \c_TUDa_IMRAD_seq {
+ \cs_if_exist:cF {r@IMRAD:#1} {
+ \msg_warning:nnn {TUDaPub}{missing-IMRADlabel} {#1}
+ }
+ }
+ }
+}
+
+\msg_new:nnn {TUDaPub}{undefined-IMRADlabel} {
+ You~tried~to~set~an~IMRAD~label~with~key~#1.\\
+ This~label~type~is~not~declared.\\
+ Possible~labels~are:~#2
+}
+
+
+\msg_new:nnn {TUDaPub} {missing-IMRADlabel} {
+ You~did~not~provide~a~Label~for~key~#1.\\
+ Either~you~need~to~recompile~your~document~or~add~a~label~using~\string\IMRADlabel.
+}
+
+
+\endinput
+%End of class tudapub.cls
diff --git a/macros/latex/contrib/tuda-ci/tex/tudarules.sty b/macros/latex/contrib/tuda-ci/tex/tudarules.sty
new file mode 100644
index 0000000000..bf32793b4b
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudarules.sty
@@ -0,0 +1,144 @@
+%% This is file `tudarules.sty' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{tudarules}{\filedate}{\fileversion}{Creation of colored bars for tuda-ci bundle}
+
+
+\RequirePackage{l3keys2e}
+
+\seq_if_exist:NF \l_TUDa_tmpa_seq {\seq_new:N \l_TUDa_tmpa_seq}
+\tl_if_exist:NF \l_TUDa_tmpa_tk {\tl_new:N \l_TUDa_tmpa_tl}
+
+\cs_new:Nn \TUDa_rules_set_values:n {
+ \seq_set_split:Nnn \l_TUDa_tmpa_seq {|} {#1}
+
+ \int_step_inline:nnnn {1} {1} {4} {
+ \tl_set:Nn \l_TUDa_tmpa_tl {c_TUDa_
+ \clist_item:nn {largerule, rulesep, smallrule, logoheight} {##1}
+ _dim}
+ \dim_if_exist:cF {\l_TUDa_tmpa_tl} {\dim_new:c {\l_TUDa_tmpa_tl}}
+ \dim_gset:cn {\l_TUDa_tmpa_tl} {\seq_item:Nn \l_TUDa_tmpa_seq {##1}}
+ }
+}
+
+\keys_define:nn {TUDa/rules} {
+ color .tl_gset:N = \g_TUDa_rules_color_tl,
+ blackrule .meta:n = {color=black},
+ paper .choice:,
+ paper/dl .code:n = { \TUDa_rules_set_values:n { 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm}},
+ paper/a6 .code:n = { \TUDa_rules_set_values:n { 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm}},
+ paper/a5 .code:n = { \TUDa_rules_set_values:n { 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm}},
+ paper/a4 .code:n = { \TUDa_rules_set_values:n { 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm}},
+ paper/a3 .code:n = { \TUDa_rules_set_values:n { 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm}},
+ paper/a2 .code:n = { \TUDa_rules_set_values:n { 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm}},
+ paper/a1 .code:n = { \TUDa_rules_set_values:n { 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm}},
+ paper/a0 .code:n = { \TUDa_rules_set_values:n { 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm}},
+ paper/slide .code:n = { \TUDa_rules_set_values:n { 2mm | .7mm | .6pt | 11 mm | .3pt| 7.5mm | 10mm}},
+ paper/beamer .meta:n = {paper= slide},
+ color .tl_gset:N = \g_TUDarules_default_color_tl,
+ color .initial:n = black,
+ mode .tl_gset:N = \g_TUDarules_default_mode_tl,
+ mode .initial:n = box
+}
+
+\ProcessKeysOptions{TUDa/rules}
+
+\RequirePackage{tudacolors}
+\RequirePackage{xparse}
+
+%Switch between TikZ and box mode
+\bool_new:N \g_TUDa_rule_TikZmode_bool
+
+\keys_define:nn {TUDa/rules} {
+ width .dim_gset:N = \l_TUDa_headrule_width_dim,
+ color .tl_gset:N = \l_TUDa_headrule_color_tl,
+ mode .choice:,
+ mode / box .code:n = \bool_gset_false:N \g_TUDa_rule_TikZmode_bool,
+ mode / tikz .code:n = \bool_gset_true:N \g_TUDa_rule_TikZmode_bool,
+ mode / TikZ .code:n = \bool_gset_true:N \g_TUDa_rule_TikZmode_bool,
+}
+
+\NewDocumentCommand{\TUDa@makeheadrule}{om}{
+ \keys_set:nn {TUDa/rules} {
+ %TODO maybe package options for default
+ width=\textwidth,
+ }
+ \exp_args:Nnx \keys_set:nn {TUDa/rules} {
+ mode= \g_TUDarules_default_mode_tl,
+ color= \g_TUDarules_default_color_tl
+ }
+ \IfNoValueF {#1} {\keys_set:nn {TUDa/rules}{#1}}
+ \box_new:c {#2_box}
+ \bool_if:NTF \g_TUDa_rule_TikZmode_bool {
+ \hbox_gset:cn {#2_box} {
+ \begin{tikzpicture}
+ \fill[\l_TUDa_headrule_color_tl](0,\c_TUDa_rulesep_dim)rectangle++(\l_TUDa_headrule_width_dim,\c_TUDa_largerule_dim);
+ \fill(0,0)rectangle(\l_TUDa_headrule_width_dim,-\c_TUDa_smallrule_dim);
+ \end{tikzpicture}
+ }
+ }{
+ \hbox_gset:cn {#2_box} {
+ \parbox[t]{\l_TUDa_headrule_width_dim}{
+ \setlength{\baselineskip}{\z@}
+ \null\par\nointerlineskip
+ \textcolor{\l_TUDa_headrule_color_tl}{\rule{\linewidth}{\c_TUDa_largerule_dim}}
+ \vspace{\c_TUDa_rulesep_dim}\par\nointerlineskip
+ \rule{\linewidth}{\c_TUDa_smallrule_dim}
+ }
+ }
+ }
+ \cs_new:cpn {#2} {\box_use:c {#2_box}}
+}
+
+\NewDocumentCommand{\TUDa@makefootrule}{om}{
+ \keys_set:nn {TUDa/rules} {
+ width= \linewidth
+ }
+ \IfNoValueF {#1} {\keys_set:nn {TUDa/rules}{#1}}
+ \box_new:c {#2_box}
+ \hbox_gset:cn {#2_box} {
+ \raisebox{-\height}{\rule{\l_TUDa_headrule_width_dim}{.5\c_TUDa_smallrule_dim}}
+ }
+ \cs_new:cpn {#2} {\box_use:c {#2_box}}
+}
+
+
+%DL | 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm |
+%A6 | 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm |
+%A5 | 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm |
+%A4 | 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm |
+%A3 | 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm |
+%A2 | 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm |
+%A1 | 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm |
+%A0 | 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm |
+%punched a4 = inner, bottom=20mm top outer =15mm
+\endinput
diff --git a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
new file mode 100644
index 0000000000..ff21accfad
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
@@ -0,0 +1,578 @@
+%% This is file `tudasciposter.cls' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{tudasciposter}{\filedate}{\fileversion}{Scientific Poster Layout for TU Darmstadt}
+
+\RequirePackage{l3keys2e}
+
+\prop_new:N \g_TUDa_clsopts_prop
+\tl_new:N \g_TUDa_boxstyle_tl
+\int_new:N \g_TUDa_paper_int
+
+\keys_define:nn {TUDa/poster} {
+ accentcolor .code:n = {\PassOptionsToPackage{accent =#1}{tudacolors}},
+ color .meta:n = {accentcolor = #1},
+ textaccentcolor .code:n = {\PassOptionsToPackage{textaccent =#1}{tudacolors}},
+ identbarcolor .code:n = {\PassOptionsToPackage{indentbar =#1}{tudacolors}},
+ titletext .code:n = {\PassOptionsToPackage{text =#1}{tudacolors}},
+ footer .bool_gset:N = \g_TUDa_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = true,
+ thanks .tl_gset:N = \g_TUDa_footnote_label_tl,
+ thanks .initial:n = arabic*,
+ pdfa .bool_gset:N = \g_TUDa@pdfa_bool,
+ pdfa .initial:n = false,
+ boxstyle .choice:,
+ boxstyle / official .code:n = \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa},
+ boxstyle / colored .code:n= \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa-colored},
+ boxstyle / boxed .code:n= \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa-boxed},
+ boxstyle /default .meta:n = {boxstyle=official},
+ boxstyle .initial:n = default,
+ unknown .code:n = {\prop_gput:NVn \g_TUDa_clsopts_prop \l_keys_key_tl {#1}},
+ paper .choices:nn = {a0,a1,a2,a3}{
+ \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int
+ \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n = a0,
+ fontsize .code:n = \prop_gput:Nnn \g_TUDa_clsopts_prop {fontsize} {#1},
+ logofile .tl_gset:N = \g_TUDa_logofile_tl,
+ logofile .initial:n = tuda_logo,
+}
+
+
+
+
+
+\ProcessKeysOptions{TUDa/poster}
+
+
+\int_case:nn {\g_TUDa_paper_int}
+{
+ %paper=a0
+ {1} { %{130pt}{146pt}
+ \cs_set:Nn \TUDa_title_fontsize: {{125pt}{165pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{42pt}{55pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{28pt}{35pt}}
+ \prop_gput_if_new:Nnn \g_TUDa_clsopts_prop {fontsize} {30pt}
+ \dim_const:Nn \c_TUDa_margin_dim {30mm}
+ }
+ %paper=a1
+ {2} {
+ \cs_set:Nn \TUDa_title_fontsize: {{86pt}{120pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{35pt}{42pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{22pt}{26pt}}
+ \prop_gput_if_new:Nnn \g_TUDa_clsopts_prop {fontsize} {21pt}
+ \dim_const:Nn \c_TUDa_margin_dim {30mm}
+ }
+ %paper=a2
+ {3} {
+ \cs_set:Nn \TUDa_title_fontsize: {{65pt}{82pt}}
+ \cs_set:Nn \TUDa_titleinfo_fontsize: {{22pt}{28pt}}
+ \cs_set:Nn \TUDa_titlethanks_fontsize: {{14pt}{20pt}}
+ \prop_gput_if_new:Nnn \g_TUDa_clsopts_prop {fontsize} {15pt}
+ \dim_const:Nn \c_TUDa_margin_dim {30mm}
+ }
+ %paper=a3
+ {4} {
+ \cs_set:Nn \TUDa_title_fontsize: {{47pt}{61pt}}
+ \prop_gput_if_new:Nnn \g_TUDa_clsopts_prop {fontsize} {11pt}
+ \dim_const:Nn \c_TUDa_margin_dim {15mm}
+ }
+}
+
+
+\prop_map_inline:Nn \g_TUDa_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\exp_args:NnV\PassOptionsToClass{#1}\l_tmpa_tl}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}}
+}
+
+\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
+
+\ExplSyntaxOff
+\PassOptionsToPackage{DIV=10}{typearea}
+\LoadClass[parskip=full-]{scrartcl}
+\RequirePackage{tudafonts}
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+
+\RequirePackage{tcolorbox}
+\tcbuselibrary{poster}
+
+\RequirePackage[margin=0pt]{geometry}
+\ExplSyntaxOn
+
+
+
+%Font adjusments
+\renewcommand*{\familydefault}{\sfdefault}
+
+\setkomafont{title}{
+ \color{titlefgcolor}
+ \expandafter\fontsize\TUDa_title_fontsize:\selectfont
+ \bfseries
+}
+
+\setkomafont{author}{\bfseries}
+\setkomafont{captionlabel}{\bfseries}
+
+\setkomafont{disposition}{\sffamily\bfseries}
+
+% end of font adjustments
+
+\RequirePackage[mode=tikz]{tudarules}
+\RequirePackage{tudacolors}
+\RequirePackage{qrcode}
+
+\dim_const:Nn \c_TUDa_headrule_ht_dim {\c_TUDa_rulesep_dim +\c_TUDa_largerule_dim + \c_TUDa_smallrule_dim}
+%Setup title
+\box_new:N \l_TUDa_tmpa_box
+\box_new:N \g_TUDa_titlegraphic_box
+\box_new:N \g_TUDa_title_box
+\box_new:N \g_TUDa_author_box
+\box_new:N \g_TUDa_credit_box
+
+\TUDa@makeheadrule[
+ width=\paperwidth-2\c_TUDa_margin_dim,
+ color=identbarcolor
+ ]{TUDa@posterrule}
+
+\tl_new:N \g_TUDa_thanks_tl
+\newcommand*{\TUDa@title@footnote}[2][1]{
+ \begingroup
+ \TUDa_def_footnotelabel:
+ \footnotemark[#1]\,#2\quad
+ \endgroup
+}
+
+\tl_greplace_all:Nnn \g_TUDa_footnote_label_tl {*} {{footnote}}
+\clist_map_inline:nn {alph, arabic, fnsymbol, Alph, roman, Roman} {
+ \tl_greplace_all:Nnn \g_TUDa_footnote_label_tl {#1} {\use:c {#1}}
+}
+
+\cs_set:Nn \TUDa_def_footnotelabel: {
+ \renewcommand*{\thefootnote}{\g_TUDa_footnote_label_tl}
+}
+
+\pagestyle{empty}
+\renewcommand*{\title}[1]{\gdef \@title {#1}}
+
+
+\dim_new:N \g_TUDa_footheight_dim
+\dim_gset:Nn \g_TUDa_footheight_dim {0.06\paperwidth}%
+
+\box_new:N \g_TUDa_footergraphics_box
+\newcommand*{\footergraphics}[1]{
+ \begingroup
+ \let\height\g_TUDa_footheight_dim
+ \hbox_gset:Nn \g_TUDa_footergraphics_box {#1}
+ \endgroup
+}
+
+\tl_new:N \g_TUDa_poster_foot_tl
+\newcommand{\footer}[1]{
+ \tl_gset:Nn \g_TUDa_poster_foot_tl {#1}
+}
+
+\tl_new:N \g_TUDa_poster_qrcode_tl
+\newcommand*{\footerqrcode}[1]{
+ \tl_gset:Nn \g_TUDa_poster_qrcode_tl {#1}
+}
+
+%%%%%%%%%%%%%%%%%%%
+% Begin of PDF/A mode
+%%%%%%%%%%%%%%%%%%%
+%PDFA
+\if_bool:N \g_TUDa@pdfa_bool
+\PassOptionsToPackage{a-1b}{pdfx}
+\RequirePackage{pdfx}
+%%hyperref
+\hypersetup{hidelinks, unicode, hyperfootnotes=false}
+\iow_new:N \TUDa@xmpdata_stream
+\iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata}
+\tl_new:N \g_TUDa@xmp_title
+\tl_new:N \g_TUDa@xmp_author
+
+\cs_new:Nn \TUDa_pass_TitleData: {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \cs_set:Npn \and {\sep}
+ \bool_if:NTF \g_TUDa_pass_TitleData_bool {
+ \tl_gset:Nx \g_TUDa@xmp_title {\@title}
+ \seq_clear:N \l_tmpa_seq
+ \seq_map_inline:Nn \g_TUDa_author_seq {
+ \seq_put_right:Nx \l_tmpa_seq {##1}
+ }
+ \tl_gset:Nx \g_TUDa@xmp_author {\seq_use:Nn \l_tmpa_seq {\sep}}
+ \iow_now:Nx \TUDa@xmpdata_stream
+ {
+ \exp_not:N \Title{\tl_to_str:V \g_TUDa@xmp_title}
+ ^^J
+ \exp_not:N \Author{\tl_to_str:V \g_TUDa@xmp_author}
+ ^^J
+ \exp_not:N \Creator{LaTeX~ using~ the~ TUDa-CI~ Bundle}
+ }
+ }{
+ \begingroup
+ \use:c {pdfx@localcommands}
+ \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn
+ \endgroup
+ }
+ \endgroup
+}
+
+\cs_new:Nn \TUDa_write_xmp_line:nn {
+ \cs_if_exist:cTF {\tl_mixed_case:n {#1}} {
+ \iow_now:Nx \TUDa@xmpdata_stream {
+ \c_backslash_str \tl_mixed_case:n {#1} {\exp_not:n {#2}}%\iow_newline:
+ }
+ }{
+ \msg_error:nnn {TUDapub} {unknown-metadata} {#1}
+ }
+}
+
+\bool_new:N \g_TUDa_pass_TitleData_bool
+\bool_gset_true:N \g_TUDa_pass_TitleData_bool
+\prop_new:N \g_TUDa_MetaData_prop
+
+\newcommand*{\Metadata}[1]{
+ \bool_gset_false:N \g_TUDa_pass_TitleData_bool
+ \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#1}
+}
+
+
+\msg_new:nnnn {TUDapub} {unknown-metadata} {
+ You~ used~ the~ #1~ metadata~ entry.\\
+ I~ don't~ know~ how~ to~ handle~ that.\\
+ It~ will~ be~ ignored.
+} {See~ TUDa-CI~ or~ pdfx~ documentation~ for~ details.}
+\else:
+\msg_new:nnn {tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.}
+\msg_info:nn {tudapub} {no-pdfa}
+%%hyperref
+\RequirePackage[hidelinks, unicode,hyperfootnotes=false]{hyperref}
+\fi:
+
+%%%%%%%%%%%%%%%%%%%
+% End of PDF/A mode
+%%%%%%%%%%%%%%%%%%%
+
+%redefine \author to manage \and and \thanks
+
+\seq_new:N \g_TUDa_author_seq
+
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#1}
+}
+
+\msg_new:nnn {TUDaSciPoster} {unknown-language} {
+ You~selected~an~unknown~language~#1.\\
+ The~Variable~#2~does~not~have~a~predefined~value.\\
+ Ensure~to~redefine~#2~to~match~your~language.\\
+ Otherwise~the~ngerman~vaue~#3~will~be~used.
+}
+
+\providecommand*\authorandname{
+ \msg_warning:nnxxx {TUDaSciPoster} {unknown-language}
+ {\languagename} {\exp_not:N \authorandname} {und}
+ und
+}
+
+\defcaptionname{ngerman, german}{\authorandname}{und}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\authorandname}{and}
+
+
+\renewcommand*{\@author}{
+ \seq_use:Nnnn \g_TUDa_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
+
+\newcommand\titlegraphic[1]{\def\@titlegraphic{#1}}
+\titlegraphic{}
+
+\newcommand{\institute}[1]{\def\@institute{#1}}
+\institute{}
+
+
+
+%Language dependent configuration
+\AtBeginDocument{
+ \@ifpackageloaded{babel}{
+ \addto\extrasngerman{\def\authorandname{und}}
+ \addto\extrasgerman{\def\authorandname{und}}
+ \addto\extrasenglish{\def\authorandname{and}}
+ \addto\extrasbritish{\def\authorandname{and}}
+ \addto\captionsngerman{\renewcommand{\figurename}{Abb.}}
+ \addto\captionsgerman{\renewcommand{\figurename}{Abb.}}
+ \addto\captionsenglish{\renewcommand{\figurename}{Fig.}}
+ \addto\captionsbritish{\renewcommand{\figurename}{Fig.}}
+ }{}
+}
+
+\newlength{\contentwidth}
+\setlength{\contentwidth}{\dimexpr\paperwidth-2\c_TUDa_margin_dim\relax}
+\newlength{\contentheight}
+
+
+\tcbposterset{
+ coverage =
+ {
+ spread,
+ parbox=false,
+ bottom=\dim_eval:n {\c_TUDa_margin_dim
+ \bool_if:NT \g_TUDa_poster_foot_bool {+\g_TUDa_footheight_dim + 3\c_TUDa_rulesep_dim}
+ },
+ left=\c_TUDa_margin_dim,
+ right=\c_TUDa_margin_dim,
+ before= {\TUDa@poster_setup_title_box:},
+ top= \dim_eval:n {
+ \c_TUDa_margin_dim
+ +\box_ht:N \TUDa@posterrule_box
+ +\box_dp:N \TUDa@posterrule_box
++ \g_TUDa_titleblock_dim
+ +4\c_TUDa_rulesep_dim
+ +\box_ht:N \g_TUDa_author_box
+ +\box_dp:N \g_TUDa_author_box
+ },
+ overlay={%
+ \coordinate(topleft) at ([xshift=\c_TUDa_margin_dim, yshift=-\c_TUDa_margin_dim]current~page.north~ west);
+ \coordinate(topright) at ([xshift=-\c_TUDa_margin_dim, yshift=-\c_TUDa_margin_dim]current~page.north~ east);
+ \coordinate(bottomleft) at ([xshift=\c_TUDa_margin_dim, yshift=\c_TUDa_margin_dim]current~page.south~ west);
+ \coordinate(bottomright) at ([xshift=-\c_TUDa_margin_dim, yshift=\c_TUDa_margin_dim]current~page.south~ east);
+
+
+ \node[inner~sep=0pt, anchor=north~west](identbar) at (topleft){\TUDa@posterrule};
+
+ \fill[identbarcolor]
+ (identbar.south~east)rectangle([yshift=-\g_TUDa_titleblock_dim]identbar.south~west) coordinate(bottomlefttitleblock);
+
+ \node[anchor=north~east,inner~sep=0pt,minimum~width=2.5\c_TUDa_logoheight_dim](TUDalogo) at ([xshift=.3\c_TUDa_logoheight_dim,yshift=-.5\c_TUDa_logoheight_dim]identbar.south~east){
+ \includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}};
+
+ \node[inner~sep=0pt,text~width=2.2\c_TUDa_logoheight_dim,align=right,anchor=north~west,](titlegraphic) at ([yshift=-\c_TUDa_rulesep_dim]TUDalogo.south~west){\box_use:N \g_TUDa_titlegraphic_box};
+
+ \node[anchor=north~west,inner~sep=0pt,] (title) at ([xshift=3\c_TUDa_rulesep_dim,yshift=-.5\c_TUDa_logoheight_dim]identbar.south~west) {\box_use:N \g_TUDa_title_box};
+
+ \draw[line~ width=.5\c_TUDa_smallrule_dim](bottomlefttitleblock)--++(\contentwidth,0);
+
+ \node[anchor=north~west, inner~xsep=0pt, inner~ ysep=\c_TUDa_rulesep_dim] (author) at ([xshift=3\c_TUDa_rulesep_dim]bottomlefttitleblock) {\box_use:N \g_TUDa_author_box};
+
+ \draw[line~ width=.5\c_TUDa_smallrule_dim](author.south-|identbar.west)--++(\contentwidth,0);
+
+
+
+ \bool_if:NT \g_TUDa_poster_foot_bool {
+ \coordinate(lastpos) at (bottomright);
+ \tl_if_empty:NF \g_TUDa_poster_qrcode_tl
+ {
+ \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos)
+ {
+ \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_TUDa_footheight_dim]}\g_TUDa_poster_qrcode_tl
+ };
+ \coordinate (lastpos) at (qrcode.south~west);
+ }
+ \box_if_empty:NF \g_TUDa_footergraphics_box {
+ \node[anchor=south~east, inner~sep=\z@] at (lastpos) {
+ \accentfont
+ \box_use:N \g_TUDa_footergraphics_box
+ };
+ }
+ \node[anchor=north~ west, inner~ sep=\z@] (infofooter) at ([yshift=\g_TUDa_footheight_dim]bottomleft) {
+ \parbox{\dim_eval:n {\contentwidth
+ -\box_wd:N \g_TUDa_footergraphics_box
+ \tl_if_empty:NF \g_TUDa_poster_qrcode_tl {-\g_TUDa_footheight_dim-\c_TUDa_rulesep_dim}
+ }}{
+ \rule{\linewidth}{.5\c_TUDa_smallrule_dim}\\
+ \accentfont\small\g_TUDa_poster_foot_tl
+ \par\medskip
+ \let\footnotetext\TUDa@title@footnote
+ \g_TUDa_thanks_tl}
+ };
+
+
+}
+ }}
+}
+
+% Background Colors
+\colorlet{backgroundcolor}{white}
+\colorlet{framecolor}{white}
+% Title Colors
+\colorlet{titlefgcolor}{textonaccentcolor}
+\colorlet{titlebgcolor}{accentcolor}
+% Block Colors
+\colorlet{blocktitlebgcolor}{accentcolor}
+\colorlet{blocktitlefgcolor}{textonaccentcolor}
+\colorlet{blockbodybgcolor}{white}
+\colorlet{blockbodyfgcolor}{black}
+% Innerblock Colors
+\colorlet{innerblocktitlebgcolor}{black!15}
+\colorlet{innerblocktitlefgcolor}{black}
+\colorlet{innerblockbodybgcolor}{textonaccentcolor}
+\colorlet{innerblockbodyfgcolor}{black}
+
+\dim_new:N \g_TUDa_titleblock_dim
+
+\cs_new:Nn \TUDa@poster_setup_title_box: {
+ \hbox_gset:Nn \g_TUDa_title_box {
+ \parbox{.65\paperwidth}{
+ \raggedright
+ \usekomafont{disposition}\usekomafont{title}\leavevmode\@title \par
+ }
+ }
+ \hbox_gset:Nn \g_TUDa_author_box {
+ \parbox{\dimexpr\contentwidth-6\c_TUDa_rulesep_dim\relax}{
+ \TUDa_def_footnotelabel:
+ {\usekomafont{author}\@author\\}%\\[.2\titleinnersep]
+ \tl_gset:No \g_TUDa_thanks_tl {\@thanks}
+ \@institute
+ }
+ }
+ \tl_if_empty:NF \@titlegraphic {
+ \hbox_gset:Nn \g_TUDa_titlegraphic_box {
+ \parbox{2.2\c_TUDa_logoheight_dim}{
+ \raggedleft
+ \@titlegraphic
+ }
+ }
+ }
+ \dim_gset:Nn \g_TUDa_titleblock_dim {
+ \dim_max:nn
+ {\dim_max:nn
+ {2\c_TUDa_logoheight_dim}
+ {\box_ht:N \g_TUDa_titlegraphic_box +\box_dp:N \g_TUDa_titlegraphic_box+1.8\c_TUDa_logoheight_dim}
+ }
+ {\box_ht:N \g_TUDa_title_box+ \box_dp:N \g_TUDa_title_box+.8\c_TUDa_logoheight_dim}
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%Declare TCBstyles for tudaposter
+\tcbset {
+ TUDa/.style =
+ {
+ enhanced,
+ coltitle=black,
+ colbacktitle=white,
+ coltext=black,
+ colback=white,
+ size=minimal,
+ boxrule=.5\c_TUDa_smallrule_dim,
+ leftrule=\z@,
+ rightrule=\z@,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ before~title={\strut},
+ toptitle=.5\c_TUDa_rulesep_dim,
+ bottomtitle=.5\c_TUDa_rulesep_dim,
+ top=\c_TUDa_rulesep_dim,
+ bottom=\c_TUDa_rulesep_dim,
+ frame~code={
+ \iftcb@hasTitle
+ \fill[tcbcolframe](frame.north~west)rectangle(title.north~east);
+ \fill[tcbcolframe](title.south~west)rectangle(interior.north~east);
+ \else
+ \fill[tcbcolframe](frame.north~west)rectangle(interior.north~east);
+ \fi
+ \fill[tcbcolframe](interior.south~west)rectangle(frame.south~east);
+ },
+ parbox=false,
+ },
+ TUDa-inner/.style =
+ {
+ TUDa,
+ fonttitle=\usekomafont{disposition}\usekomafont{subsubsection}
+ },
+ TUDa-colored/.style =
+ {
+ TUDa,
+ left=.5\c_TUDa_rulesep_dim,
+ right=.5\c_TUDa_rulesep_dim,
+ colbacktitle=blocktitlebgcolor,
+ coltitle=blocktitlefgcolor,
+ colback=blockbodybgcolor,
+ coltext=blockbodyfgcolor,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ titlerule=\z@,
+ },
+ TUDa-colored-inner/.style =
+ {
+ TUDa-colored,
+ colbacktitle=innerblocktitlebgcolor,
+ coltitle=innerblocktitlefgcolor,
+ colback=innerblockbodybgcolor,
+ coltext=innerblockbodyfgcolor,
+ fonttitle=\usekomafont{disposition}\usekomafont{subsubsection}
+ },
+ TUDa-boxed/.style =
+ {
+ enhanced,
+ size=minimal,
+ colbacktitle=blocktitlebgcolor,
+ coltitle=blocktitlefgcolor,
+ colback=blockbodybgcolor,
+ coltext=blockbodyfgcolor,
+ boxsep=\c_TUDa_rulesep_dim,
+ boxrule=.5\c_TUDa_smallrule_dim,
+ titlerule=\z@,
+ arc=1ex,
+ auto~outer~arc,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ before~title={\strut},
+ parbox=false,
+ },
+ TUDa-boxed-inner/.style =
+ {
+ TUDa-boxed,
+ colbacktitle=innerblocktitlebgcolor,
+ coltitle=innerblocktitlefgcolor,
+ colback=innerblockbodybgcolor,
+ coltext=innerblockbodyfgcolor,
+ sharp~corners,
+ fonttitle=\usekomafont{disposition}\usekomafont{subsubsection}
+ },
+}
+
+%Select default box styles according to style option
+\tcbposterset{boxes ={\g_TUDa_boxstyle_tl}, poster={spacing=5cm}}
+\tcbset{
+ every~ box~ on~ layer~ 3/.style={reset,\g_TUDa_boxstyle_tl -inner},
+ every~ box~ on~ layer~ 4/.style={reset,\g_TUDa_boxstyle_tl -inner},
+}
+
+%ADjust caption indent
+\setcapindent{1em}
+
+
+\endinput
+%end of tudasciposter.cls
diff --git a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo
new file mode 100644
index 0000000000..f08afc30ba
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo
@@ -0,0 +1,140 @@
+%% This is file `tudasize9pt.clo' version 1.0 (2018/12/12),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (c) 2018 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%%
+%% This file is a slightly modified version of scrsize10pt.clo
+%% generated with the docstrip utility, extended by scrdocstrip.
+%% modified by Marei Peischl <marei@peitex.de>
+%%
+%% Its original source files were:
+%%
+%% scrkernel-version.dtx (with options: `clo,10pt')
+%% scrkernel-fonts.dtx (with options: `clo,10pt')
+%% scrkernel-paragraphs.dtx (with options: `clo,10pt')
+%%
+%% Copyright (c) 1994-2017 Markus Kohm [komascript at gmx info]
+%%
+%% The original file was generated from file(s) of the KOMA-Script bundle.
+%% https://ctan.org/pkg/koma-script
+%%
+%% ========================================================================
+%% 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 Maintainers of this work are Marei Peischl <kontakt@peitex.de> and Markus Lazanowski <latex@ce.tu-darmstadt.de>.
+%%
+%%
+\ProvidesFile{%
+ tudasize9pt.clo%
+}[TUDa-CI \space font size class option %
+ (9pt)%
+]
+\def\normalsize{%
+ \@setfontsize\normalsize\@ixpt\@xipt%
+ \abovedisplayskip 8\p@ \@plus4\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 5\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\datasize{%
+ \normalsize
+ \@setfontsize\normalsize\@ixpt\@xipt
+}
+\def\small{%
+ \@setfontsize\small\@viiipt\@ixpt%
+ \abovedisplayskip 5\p@ \@plus2\p@ \@minus2\p@
+ \abovedisplayshortskip \z@ \@plus1\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+ \@setfontsize\footnotesize\@viipt\@viiipt
+ \abovedisplayskip 4\p@ \@plus2\p@ \@minus2\p@
+ \abovedisplayshortskip \z@ \@plus1\p@
+ \belowdisplayshortskip 2.5\p@ \@plus\p@ \@minus\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\scriptsize{\@setfontsize\scriptsize\@vipt\@viipt}
+\def\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\def\large{\@setfontsize\large\@xpt\@xiipt}
+\def\Large{\@setfontsize\Large\@xipt{13}}
+\def\LARGE{\@setfontsize\LARGE\@xiipt{14}}
+\def\huge{\@setfontsize\huge\@xivpt{18}}
+\def\Huge{\@setfontsize\Huge\@xviipt{22}}
+\normalsize
+\setlength\footnotesep {6.3\p@}
+\setlength{\skip\footins} {8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {18\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{18\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus3\p@
+ \itemsep \parsep}
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%%% From File: $Id: scrkernel-paragraphs.dtx 2680 2017-09-28 05:45:12Z kohm $
+\@ifundefined{@list@extra}{}{%
+ \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
+ \l@addto@macro{\@listi}{\@list@extra}%
+ \let\@listI=\@listi
+ \l@addto@macro{\@listii}{\@list@extra}%
+ \l@addto@macro{\@listiii}{\@list@extra}%
+ \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
+ \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
+}
+\@listi
+\endinput
+%%
+%% End of file `tudasize9pt.clo'.
diff --git a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg
new file mode 100644
index 0000000000..887d08d003
--- /dev/null
+++ b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg
@@ -0,0 +1,569 @@
+%% This is file `tudathesis.cfg' version 1.01 (2019/08/05),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% 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 Maintainers of this work are
+%% Marei Peischl <tuda-ci@peitex.de>
+%% Markus Lazanowski <latex@ce.tu-darmstadt.de>
+%%
+%% The development respository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{1.01}
+\def\filedate{2019/08/05}
+\RequirePackage{expl3}
+\ProvidesExplFile{tudathesis.cfg}
+{\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Coporate Design (tuda-ci)}
+
+\RequirePackage{l3keys2e}
+
+
+\tl_new:N \g_TUDa_thesis_drtext_tl
+\clist_if_exist:NF \g_TUDa_Required_title_data_clist {\clist_new:N \g_TUDa_Required_title_data_clist}
+
+\cs_new:Nn \TUDa_declare_caption:Nnnn {
+ \TUDa_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english}{#1}{#3}
+ \defcaptionname{british}{#1}{#4}
+}
+
+\cs_new:Nn \TUDa_declare_caption:Nnn {
+ \TUDa_declare_caption:Nnnn #1 {#2} {#3} {#3}
+}
+
+%Declare macros for department
+\cs_new:Nn \TUDa_select_department:n {
+ \str_case:nnTF {#1} {
+ {arch} {\TUDa_declare_caption:Nnn \TUDa@department {Architektur} {Architecture}}
+ {bauing} {\TUDa_declare_caption:Nnn \TUDa@department {Bau-~und~Umweltingenieurwissenschaften}{Civil~and~Environmental~Engineering}}
+ {bio} {\TUDa_declare_caption:Nnn \TUDa@department {Biologie}{Biology}}
+ {chem} {\TUDa_declare_caption:Nnn \TUDa@department {Chemie}{Chemistry}}
+ {etit} {\TUDa_declare_caption:Nnn \TUDa@department {Elektrotechnik~und~Informationstechnik}{Electrical~Engineering~and~Information~Technology}}
+ {gugw} {\TUDa_declare_caption:Nnn \TUDa@department {Gesellschafts-~und~Geschichtswissenschaften}{History~and~Social~Sciences}}
+ {humanw} {\TUDa_declare_caption:Nnn \TUDa@department {Humanwissenschaften}{Human~Sciences}}
+ {inf} {\TUDa_declare_caption:Nnn \TUDa@department {Informatik}{Computer~Science}}
+ {mb} {\TUDa_declare_caption:Nnn \TUDa@department {Maschinenbau}{Mechanical~Engineering}}
+ {matgeo} {\TUDa_declare_caption:Nnn \TUDa@department {Material-~und~Geowissenschaften}{Materials~and~Earth~Sciences}}
+ {math} {\TUDa_declare_caption:Nnn \TUDa@department {Mathematik}{Mathematics}}
+ {phys} {\TUDa_declare_caption:Nnn \TUDa@department {Physik}{Physics}}
+ {wi} {\TUDa_declare_caption:Nnn \TUDa@department {Rechts-~und~Wirtschaftswissenschaften}{Law~and~Economics}}
+ }
+ {
+ \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ \TUDa_declare_caption:Nnn \TUDa_in_department {im~ \departmentname}{in}
+ \TUDa_declare_caption:Nnn \departmentfullname {\departmentname{}~ \TUDa@department} { \TUDa@department{}~ \tl_mixed_case:n{\departmentname}}
+ }
+ {\bool_if:NTF \g_TUDa_dr_bool
+ {
+ \msg_warning:nnn {tudapub/tudathesis} {unrecognized-department} {#1}
+ \gdef\TUDa@department{#1}
+ \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
+ {\TUDa_select_studyfield:n {#1}}
+ }
+}
+
+
+\cs_new:Nn \TUDa_select_studyfield:n {
+ \str_case:nnTF {#1} {
+ {ce}{\TUDa_declare_caption:Nnn \TUDa@department {Computational\nobreakspace Engineering}{Computational\nobreakspace Engineering}}
+ {ese}{\TUDa_declare_caption:Nnn \TUDa@department {Energy~Science~and~Engineering}{Energy~Science~and~Engineering}}
+ {ist}{\TUDa_declare_caption:Nnn \TUDa@department {Information~Systems~Engineering}{Information~Systems~Engineering}}
+ {mech}{\TUDa_declare_caption:Nnn \TUDa@department {Mechanik}{Mechanics}}
+ {metro}{\TUDa_declare_caption:Nnn \TUDa@department {Mechatronik}{Mechatronics}}
+ }
+ {
+ \TUDa_declare_caption:Nnn \departmentname {Studienbereich} {field~of~study}
+ \TUDa_declare_caption:Nnn \departmentfullname {\departmentname{}~ \TUDa@department} { \TUDa@department :~ \departmentname}
+ }
+ {
+ \msg_warning:nnn {tudapub/tudathesis} {unrecognized-department} {#1}
+ \gdef\TUDa@department{#1}
+ \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
+}
+
+\TUDa_declare_caption:Nnn \TUDa@byname {von} {by}
+\TUDa_declare_caption:Nnn \TUDa_in_department {im~ \departmentname}{in}
+\TUDa_declare_caption:Nnn \TUDa@reviewname {Gutachten}{review}
+\TUDa_declare_caption:Nnnn \TUDa@examdatename {Tag~ der~ Prüfung}{Date~ of~ thesis~ defense}{Date~ of~ thesis~ defence}
+\TUDa_declare_caption:Nnn \TUDa@submissiondatename {Tag~ der~ Einreichung}{Date~ of~ submission}
+
+
+
+
+\keys_define:nn {TUDa/thesis} {
+ dr .choice:,
+ dr/rernat .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)},
+ dr/ing .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)},
+ dr/phil .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)},
+ type .choice:,
+ type/sta .code:n = {\def\TUDa@thesisType{Studienarbeit}
+ \clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, date}
+ \bool_gset_false:N \g_TUDa_dr_bool
+ },
+% type/diplom .code:n = {\def\TUDa@thesisType{Diplomarbeit}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, date, reviewer, department}},
+ type/bsc .meta:n = {type=bachelor},
+ type/bachelor .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType{Bachelorarbeit}{bachelor~ thesis}\bool_gset_false:N \g_TUDa_dr_bool,
+ type/pp .code:n = {\def\TUDa@thesisType{Project-Proposal}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, date, department}\bool_gset_false:N \g_TUDa_dr_bool},
+ type/msc .meta:n = {type=master},
+ type/master .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType{Masterarbeit}{master~ thesis} \clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_TUDa_dr_bool,
+ type/dr .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType{Dissertation}{doctoral~ thesis}\TUDa_declare_caption:Nnn\TUDa@thesisStatus{vorgelegte}{}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate , birthplace, department, reviewer}\bool_gset_true:N \g_TUDa_dr_bool,
+ type/drfinal .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType {Dissertation}{doctoral~ thesis}\TUDa_declare_caption:Nnn\TUDa@thesisStatus{genehmigte}{}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate,examdate, birthplace, department, reviewer}\bool_gset_true:N \g_TUDa_dr_bool,
+ type/unknown .code:n = \def\TUDa@thesisType{#1}\clist_gset:Nn \g_TUDa_Required_title_data_clist {}\bool_gset_false:N \g_TUDa_dr_bool,
+ ignore-missing-data .bool_gset:N = \g_TUDa_missing_data_warning_bool,
+ ignore-missing-data .initial:n = false,
+ department .tl_gset:N = \g_TUDa_department_choice_tl,
+% study .tl_gset:N = \g_TUDa_field_of_study_choice_tl,
+ fieldofstudy .meta:n ={department = #1},
+ ignore-title-language .bool_gset:N = \g_TUDa_ignore_title_language_bool,
+ ignore-title-language .initial:n ={false},
+ noinstbox .bool_gset:N = \g_TUDa_manual_info_box_bool,
+ instbox .bool_gset_inverse:N = \g_TUDa_manual_info_box_bool,
+ instbox .initial:n = true
+}
+
+
+\prop_map_inline:Nn \g_TUDa_unknown_clsopts_prop {
+ \keys_if_exist:nnT {TUDa/thesis} {#1} {
+ \keys_set:nn {TUDa/thesis} {#1=#2}
+ }
+}
+
+\tl_if_empty:NF \g_TUDa_thesis_options_tl {\keys_set:nV {TUDa/thesis} \g_TUDa_thesis_options_tl}
+
+
+\cs_new:Npn \drtext #1 {\tl_gset:Nn \g_TUDa_thesis_drtext_tl {#1}}
+
+\msg_new:nnnn {TUDapub/thesis} {required-data-missing} {You~did~not~provide~#1~data~for~the~title.~Either~provide~it~or~change~your~publication~type.} {See~ the~ TUDa-CI~ documentation~ for~ further~ information~ and~ workarounds.}
+
+\cs_new:Nn \TUDa_missing_title_data:n {
+ \bool_if:NTF \g_TUDa_missing_data_warning_bool
+ \msg_warning:nnn
+ \msg_error:nnn {TUDapub/thesis} {required-data-missing} {#1}
+}
+
+\cs_new:Nn \TUDa_check_title_data:Nn {
+ \clist_if_in:NnT \g_TUDa_Required_title_data_clist {#2} {
+ \tl_if_empty:NT #1 {
+ \bool_if:NTF \g_TUDa_missing_data_warning_bool
+ {\msg_warning:nnn}
+ {\msg_error:nnn} {TUDapub/thesis} {required-data-missing} {#2}
+ }
+ }
+}
+
+\cs_generate_variant:Nn \TUDa_check_title_data:Nn {cn}
+
+\renewcommand*\author[2][]{
+ \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#2}
+ \tl_if_empty:nTF {#1}
+ {\def\TUDa@signature{#2}}
+ {\def\TUDa@signature{#1}}
+}
+
+\gdef\TUDa@institution{}
+\gdef\TUDa@institute{}
+\gdef\TUDa@department{}
+
+\newcommand*{\department}[1]{%
+ \tl_gset:Nn \g_TUDa_department_choice_tl {#1}
+}
+
+\newcommand*{\institute}[1]{
+ \gdef\TUDa@institute{#1}
+}
+
+\gdef\TUDa@group{}
+\newcommand*{\group}[1]{%
+ \gdef\TUDa@group{#1}
+}
+
+\gdef\TUDa@birthplace{}
+\newcommand*{\birthplace}[1]{%
+ \bool_if:NTF \g_TUDa_dr_bool
+ {\gdef\TUDa@birthplace{#1}}
+ {\msg_info:nnn {tudapub/tudathesis} {dr-field-only} {birthplace}}
+}
+
+\publishers{Darmstadt~ --~ D~17}
+
+\seq_new:N \g_TUDa_reviewer_seq
+\newcommand*{\reviewer}[1]{
+ \seq_gset_split:Nnn \g_TUDa_reviewer_seq {\and} {#1}
+ \tl_if_empty:nTF {#1} {\let\@reviewer\@empty}{}
+}
+
+\gdef\TUDa@thesis@reviewer{
+ \clist_if_in:NnT \g_TUDa_Required_title_data_clist {reviewer} {
+ \seq_if_empty:NT \g_TUDa_reviewer_seq {\TUDa_missing_title_data:n {reviewer}}
+ }
+ \int_zero:N \l_tmpb_int
+ \par\vspace*{\baselineskip}
+ \seq_map_inline:Nn \g_TUDa_reviewer_seq
+ {
+ \int_incr:N \l_tmpb_int
+ \int_to_arabic:n {\l_tmpb_int}.~\tl_mixed_case:n{\TUDa@reviewname}:~\exp_not:n {##1}\\
+ }
+}
+
+
+\gdef\TUDa@examdate{}
+\newcommand*{\examdate}[1]{
+ \bool_if:NTF \g_TUDa_dr_bool
+ {\gdef\TUDa@examdate{#1}}
+ {\msg_info:nnn {tudapub/tudathesis} {dr-field-only} {examdate}}
+}
+
+\gdef\TUDa@submissiondate{}
+
+\newcommand*{\submissiondate}[1]{
+ \gdef\TUDa@submissiondate{#1}
+}
+\gdef\TUDa@submissiondate{}
+
+\gdef\@date{}
+
+\newcommand*{\TUDa@thesis@dates}[1][,~]{
+ \bool_set_false:N \l_tmpa_bool
+ \tl_if_empty:NF \@date {
+ \datename\tl_if_empty:NF \datename {\dateseparator}\TUDa@submissiondate
+ \bool_set_true:N \l_tmpa_bool
+ }
+ \tl_if_empty:NF \TUDa@submissiondate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\TUDa@submissiondatename\dateseparator\TUDa@submissiondate
+ }
+ \tl_if_empty:NF \TUDa@examdate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\TUDa@examdatename\dateseparator\TUDa@examdate
+ }
+}
+
+\keys_define:nn {TUDa/thesis} {
+ urn .tl_gset:N =\g_TUDa_thesis_urn_tl,
+ urn .initial:V = \c_empty_tl,
+ printid .tl_gset:N = \g_TUDa_thesis_tuprints_tl,
+ printid .initial:V = \c_empty_tl
+}
+
+\newcommand{\tuprints}[1]{%
+ \tl_if_in:nnTF {#1} {=}
+ {\keys_set:nn {TUDa/thesis} {#1}}
+ {\keys_set:nn {TUDa/thesis} {printid=#1}}
+ \lowertitleback{
+ \urlstyle{same}
+ Bitte~zitieren~Sie~dieses~Dokument~als:
+ \tl_if_empty:NF \g_TUDa_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_TUDa_thesis_urn_tl}
+ URL:~\url{http://tuprints.ulb.tu-darmstadt.de/\g_TUDa_thesis_tuprints_tl}\par\vspace{\baselineskip}
+ Dieses~Dokument~wird~bereitgestellt~von~tuprints,\\
+ E-Publishing-Service~der~TU~Darmstadt\\
+ \url{http://tuprints.ulb.tu-darmstadt.de}\\
+ \url{tuprints@ulb.tu-darmstadt.de}\\[2\baselineskip]
+ % \includegraphics{TUDa-CI-by-nc-nd}\\[\baselineskip]
+ Die~Veröffentlichung~steht~unter~folgender~Creative~Commons~Lizenz:\\
+ Namensnennung~--~Keine~kommerzielle~Nutzung~--~Keine~Bearbeitung~ 2.0~Deutschland\\
+ \url{http://creativecommons.org/licenses/by-nc-nd/2.0/de/}
+ % Namensnennung~--~Nicht~kommerziell~--~Keine~Bearbeitungen~ 4.0~International\\
+ % \url{https://creativecommons.org/licenses/by-nc-nd/4.0/deed.de}
+ }%
+}
+
+\gdef\@subject{
+ \bool_if:NTF \g_TUDa_dr_bool {
+ \TUDa@thesisStatus{}~
+ \tl_mixed_case:n{\TUDa@thesisType}~
+ \tl_if_empty:NF \TUDa@department {\TUDa_in_department{}~\TUDa@department{}~}
+ \seq_if_empty:NF \g_TUDa_author_seq {\TUDa@byname{}~\@author}
+ \tl_if_empty:NF \TUDa@birthplace {~aus~\TUDa@birthplace}
+ } {
+ \cs_if_exist:NT \TUDa@thesisStatus {\TUDa@thesisStatus{}~ }
+ \tl_mixed_case:n{\TUDa@thesisType}~
+ \tl_if_empty:NF \TUDa@department {\TUDa_in_department{}~\TUDa@department{}~}
+ \tl_if_empty:NF \@author {\TUDa@byname{}~\@author}
+ }
+}
+
+\uppertitleback{
+ \raggedright
+ \@title\par\@subtitle
+ \par\vspace*{\baselineskip}
+ %ignore birthplace on english subject
+ \let\TUDa@birthplace\@empty
+ \@subject
+ \TUDa@thesis@reviewer
+ \exp_args:Nx \tl_if_empty:nF {\@date\TUDa@submissiondate}{
+ \par\vspace*{\baselineskip}
+ \TUDa@thesis@dates[\\]
+ }
+ \tl_if_empty:NF \@publishers {
+ \par\vspace*{\baselineskip}
+ \@publishers
+ }
+}
+
+
+%\msg_new:nn {tudathesis.cfg} {unknown-choiche} {
+% The key #1 only accepts a fix set of choices.
+%
+%}
+%
+%\msg_error:nnxxx { mymodule } { unknown-choice }
+%{ key } % Name of choice key
+%{ choice-a , choice-b , choice-c } % Valid choices
+%{ \exp_not:n {#1} } % Invalid choice given
+
+%department .tl_gset:N = \g_TUDa_department_choice_tl,
+%field-of-study .tl_gset:N = \g_TUDa_field_of_study_choice_tl,
+
+%%Studienbereich (field of study):
+%%ce - Computational Engineering
+%%ese - Energy Science and Engineering
+%%ist - Informationssystemtechnik
+%%mech - Mechanik
+%%metro - Mechatronik
+%
+%{ce}{Computational~Engineering}{Computational~Engineering}
+%{ese}{Energy~Science~and~Engineering}{Energy~Science~and~Engineering}
+%{ist}{Information~Systems~Engineering}{Information~Systems~Engineering}
+%{mech}{Mechanics}{Mechanics}
+%{metro}{Mechatronics}{Mechatronics}
+
+\defcaptionname{english}{\researchgroupname}{research group}
+\defcaptionname{ngerman, german}{\researchgroupname}{Fachgebiet}
+\defcaptionname{english}{\institutename}{institute}
+\defcaptionname{ngerman, german}{\istitutename}{Institut}
+
+\renewcommand{\titlepagestyle}{title.TUDa}
+
+\box_new:N \g_TUDa_thesis_institution_box
+
+\renewcommand*{\maketitle}[1][1]{
+ \bool_if:NF \g_TUDa_ignore_title_language_bool {
+ \bool_set_false:N \l_tmpa_bool
+ \clist_map_inline:nn {english, british, ngerman, german} {
+ \iflanguage{##1}
+ {\bool_set_true:N \l_tmpa_bool
+ \clist_map_break:}{}
+ }
+ \bool_if:NF \l_tmpa_bool {
+ \msg_error:nnx {tudapub/tudathesis} {unsupported-title-language} {\languagename}
+ }
+ }
+ \exp_args:NV \TUDa_select_department:n \g_TUDa_department_choice_tl
+ \clist_map_inline:nn {author, date} {
+ \TUDa_check_title_data:cn {@##1} {##1}
+ }
+ \clist_map_inline:nn {examdate, birthplace, group, department, institution} {
+ \TUDa_check_title_data:cn {TUDa@##1} {##1}
+ }
+ \cs_if_exist_use:N \TUDa_pass_TitleData:
+ \TUDa_disable_marginpar:
+ \cleardoublepage
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \if@titlepageiscoverpage
+ \edef\titlepage@restore{%
+ \noexpand\endgroup
+ \noexpand\global\noexpand\@colht\the\@colht
+ \noexpand\global\noexpand\@colroom\the\@colroom
+ \noexpand\global\vsize\the\vsize
+ \noexpand\global\noexpand\@titlepageiscoverpagefalse
+ \noexpand\let\noexpand\titlepage@restore\noexpand\relax
+ }%
+ \begingroup
+ \topmargin=\dimexpr \coverpagetopmargin-1in\relax
+ \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \textwidth=\dimexpr
+ \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax
+ \textheight=\dimexpr
+ \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax
+ \headheight=0pt
+ \headsep=0pt
+ \footskip=\baselineskip
+ \@colht=\textheight
+ \@colroom=\textheight
+ \vsize=\textheight
+ \columnwidth=\textwidth
+ \hsize=\columnwidth
+ \linewidth=\hsize
+ \else
+ \let\titlepage@restore\relax
+ \fi
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \hbox_gset:Nn \g_TUDa_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g_TUDa_logo@inhead_bool {.75}\linewidth}
+ \begin{addmargin}{3mm}
+ \raggedright
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \usekomafont{title}
+ \expandafter\fontsize\TUDa_title_fontsize:
+ \selectfont
+ \@title\strut\par
+ \vskip0pt
+ \end{addmargin}
+ \end{minipage}\par\nointerlineskip
+ \rule{\linewidth}{\g_TUDa_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \raggedright
+ \expandafter\fontsize\TUDa_titleinfo_fontsize:
+ \selectfont
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ \usekomafont{subject}
+ \bool_if:NT \g_TUDa_dr_bool {\selectlanguage{ngerman}}
+ \tl_if_empty:NF \g_TUDa_thesis_drtext_tl {\g_TUDa_thesis_drtext_tl\par}
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@subject
+ \par
+ }%
+ {\usekomafont{date}{\TUDa@thesis@dates\par}}%
+ \TUDa@thesis@reviewer\par
+ {\usekomafont{publishers}{\@publishers \par}}%
+ \end{addmargin}%\vspace{\dim_eval:n {-2\ht\strutbox -\dp\strutbox}}%\baselineskip}
+ \rule{\linewidth}{\g_TUDa_titlerule_dim}\par}}
+ \bool_if:NF \g_TUDa_manual_info_box_bool {
+ \exp_args:Nf \tl_if_empty:nF {\TUDa@institution\TUDa@department\TUDa@institute\TUDa@group} {
+ \addTitleBox{
+ \tl_if_empty:NF \TUDa@institution {\TUDa@institution\par}
+ \tl_if_empty:NF \TUDa@department {\cs_if_exist_use:NF \departmentfullname {\TUDa@department}\par}
+ \tl_if_empty:NF \TUDa@institute {\TUDa@institute\par}
+ \tl_if_empty:NF \TUDa@group {\TUDa@group}
+ }}
+ }
+
+ \TUDa_adjust_titlepage_style:
+
+ \nointerlineskip\box_use:N \g_TUDa_title_box
+ \par
+ \@thanks\let\@thanks\@empty
+ \vfill\null
+ \if@twoside
+ \@tempswatrue
+ \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax
+ \else
+ \ifx\@uppertitleback\@empty
+ \ifx\@lowertitleback\@empty
+ \@tempswafalse
+ \fi
+ \fi
+ \fi
+ \else
+ \exp_args:Nf \tl_if_empty:nTF {\g_TUDa_thesis_urn_tl\g_TUDa_thesis_tuprints_tl}
+ {\@tempswafalse}
+ {\@tempswatrue}
+ \fi
+ \if@tempswa
+ \next@tpage
+ \begin{minipage}[t]{\textwidth}
+ \@uppertitleback
+ \end{minipage}\par
+ \vfill
+ \begin{minipage}[b]{\textwidth}
+ \@lowertitleback
+ \end{minipage}\par
+ \@thanks\let\@thanks\@empty
+ \fi
+ \ifx\@dedication\@empty
+ \else
+ \next@tdpage\null\vfill
+ {\centering\usekomafont{dedication}{\@dedication \par}}%
+ \vskip \z@ \@plus3fill
+ \@thanks\let\@thanks\@empty
+ \cleardoubleemptypage
+ \fi
+ \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
+ \end{titlepage}
+ \setcounter{footnote}{0}%
+ \global\let\and\relax
+ \cleardoublepage
+ \TUDa_restore_typearea:
+ \aftergroup\TUDa_restore_typearea:
+}
+
+\ExplSyntaxOff
+\NewDocumentCommand{\affidavit}{s}{
+\clearpage
+\begingroup
+\selectlanguage{ngerman}
+\csname bool_if:cTF\endcsname {g_TUDa_dr_bool} {
+\section*{Erklärungen laut Promotionsordnung}
+\subsection*{\S{}8 Abs. 1 lit. c PromO}
+Ich versichere hiermit, dass die elektronische Version meiner Dissertation mit der schriftlichen Version übereinstimmt.
+\subsection*{\S{}8 Abs. 1 lit. d PromO}
+Ich versichere hiermit, dass zu einem vorherigen Zeitpunkt noch keine Promotion versucht wurde. In diesem Fall sind nähere Angaben über Zeitpunkt, Hochschule, Dissertationsthema und Ergebnis dieses Versuchs mitzuteilen.
+
+\subsection*{\S{}9 Abs. 1 PromO}
+Ich versichere hiermit, dass die vorliegende Dissertation selbstständig und nur unter Verwendung der angegebenen Quellen verfasst wurde.
+
+\subsection*{\S{}9 Abs. 2 PromO}
+Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient.
+\bigskip
+}{
+\section*{Erklärung zur Abschlussarbeit\\gemäß \S{}23~Abs.~7~APB der TU~Darmstadt}
+Hiermit versichere ich, , die vorliegende \TUDa@thesisType{} ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
+\par
+Mir ist bekannt, dass im Fall eines Plagiats (\S{}38 Abs. 2 APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden.
+\par
+Bei der abgegebenen Thesis stimmen die schriftliche und die zur Archivierung eingereichte elektronische Fassung überein.
+\par
+Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
+}
+
+\par
+\bigskip
+Darmstadt, den \TUDa@submissiondate\hfill\parbox[t]{5cm}{\centering\rule{\linewidth}{.3pt}\\\makebox[0pt][c]{\TUDa@signature}}\\\strut
+\endgroup
+\IfBooleanF{#1}{\clearpage}
+}
+
+\ExplSyntaxOn
+
+%messages:
+\msg_new:nnn {tudapub/tudathesis} {dr-field-only} {
+ You~submitted~#1~data~for~title~information.\\
+ This~field~is~only~used~for~type=dr/drfinal.\\
+ It~will~be~ignored.
+}
+
+\msg_new:nnn {tudapub/tudathesis} {unrecognized-department} {
+ I~can't~recognize~your~department~#1.\\
+ I~will~use~the~string~'#1'~directly.\\
+ Ensure~your~department~has~to~shortcut.\\
+ See~tudathesis~documentation~for~further~details.
+}
+
+\msg_new:nnnn {tudapub/tudathesis} {unsupported-title-language} {
+ You~chose~an~unsupported~language~"#1".\\
+ \string\maketitle\ ~ist~not~configured~for~this~language.
+}{
+ You~can~manually~configure~it,~as~described~in~tudathesis~documentation.\\
+ Use~ "ignore-title-language"~Option~to~ignore~this~message~at~your~own~risk.
+}
+
+\bool_if:NT \g_TUDa_dr_bool {
+ \PassOptionsToPackage{ngerman}{babel}
+}
+
+\endinput