summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2025-01-27 20:49:57 +0000
committerKarl Berry <karl@freefriends.org>2025-01-27 20:49:57 +0000
commitdbafcec247a2331a20c058ec093a3cd9f9e69fe8 (patch)
treeae04f64a83bbb5d247fa7a38bf73dc60598d9c90
parent7a71e4e9a233a73cbd9626dc9d8cfd12c9bd6153 (diff)
tuda-ci (27jan25)
git-svn-id: svn://tug.org/texlive/trunk@73608 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.pdfbin551956 -> 551071 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.tex94
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.pdfbin601729 -> 561845 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.tex246
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.tex174
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBibliography.bib206
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.pdfbin570469 -> 564304 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.tex469
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaFromaddress.lco59
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.pdfbin559903 -> 559508 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.tex168
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.pdfbin571306 -> 568371 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.tex107
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.pdfbin622755 -> 555284 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.tex424
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.pdfbin536366 -> 535742 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.tex126
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.pdfbin655625 -> 545196 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.tex440
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.pdfbin527804 -> 522149 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.tex51
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.pdfbin563701 -> 560708 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.tex188
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.pdfbin621493 -> 545353 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.tex448
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/MANIFEST.md212
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/README.md348
-rw-r--r--Master/texmf-dist/doc/latex/tuda-ci/tuda-ci.pdf (renamed from Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.pdf)bin561720 -> 688994 bytes
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/beamercolorthemeTUDa.dtx214
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/beamerfontthemeTUDa.dtx121
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/beamerinnerthemeTUDa.dtx599
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/beamerouterthemeTUDa.dtx404
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/beamerthemeTUDa2008.dtx214
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tuda-ci.dtx3775
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tuda-ci.ins242
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudabeamer.dtx327
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudacolors.dtx277
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudaexercise.dtx1490
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudafonts.dtx164
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudaleaflet.dtx614
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudaletter.dtx536
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudaposter.dtx757
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudarules.dtx200
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudasciposter.dtx657
-rw-r--r--Master/texmf-dist/source/latex/tuda-ci/tudasize.dtx275
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa.sty111
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa2008.sty132
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa.sty67
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa2008.sty61
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa.sty251
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2008.sty181
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2023.sty397
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty351
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa2008.sty423
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa-mecheng.sty38
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa.sty94
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2008.sty56
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2023.sty55
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a0paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a1paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a2paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a3paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a4paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-a5paper.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tuda-pgfplots.sty232
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudabeamer.cls366
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudacolors.def15
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudacolors.sty208
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudaexercise.cls1554
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudafonts.sty153
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudaleaflet.cls687
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls988
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudalettersize10pt.clo54
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudamecheng.cfg19
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudaposter.cls892
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudapub.cls2322
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudarules.sty244
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudasciposter.cls1083
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudasize9pt.clo173
-rw-r--r--Master/texmf-dist/tex/latex/tuda-ci/tudathesis.cfg1093
80 files changed, 18555 insertions, 8695 deletions
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.pdf
index 94fb8c1ba06..2c84cb7e78f 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.tex
index 3b108d83e30..7d9b3d6673c 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaAnnouncement.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaAnnouncement-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaAnnouncement.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -33,61 +33,63 @@
%%
\documentclass[
- paper=a4,
- german,
- color=black!20,
- footer=true,
+ english,% Main language as global option
+ paper=a4,% The default paper format is a4
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
type=announcement,
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
- ]{tudaposter}
-
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}
-
-
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
-
-\usepackage{layout}
-\usepackage{blindtext}
+ footer=true,
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudaposter}
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+\usepackage{url}
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
-%Setzt die Box in der Marginalspalte. Alternativ auch \marginpar nutzbar.
+% Will place a text Box within the margin.
\SetMarginpar{
-\begin{flushright}
- \infofont
- Graduate School of Computational Engineering\\
- \includegraphics[width=5\baselineskip]{example-image}\\
- Prof. Dr. X\\[\baselineskip]
- \url{www.peitex.de}
-\end{flushright}
-\vfill
-\minisec{Requirements}
-Beschreibung
+ \begin{flushright}
+ \infofont
+ Graduate School of Computational Engineering\\
+ \includegraphics[width=5\baselineskip]{example-image}\\
+ Prof. Dr. X\\[\baselineskip]
+ \url{www.peitex.de}
+ \end{flushright}
+ \vfill
+ \minisec{Requirements}
+ Description
}
-\usepackage{url}
\begin{document}
-\title{\LaTeX{} im Corporate Design der TU~Darmstadt}
-\subtitle{Aushänge mit tudaposter}
-\titleinfo{Zusätzliche Information, die unterhalb des Untertitels eingefügt wird.}
-%\addTitleBoxLogo*{\includegraphics[width=.5\linewidth]{example-image}}
-
+\title{\LaTeX{} using TU Darmstadt's Corporate Design}
+\subtitle{Poster with tudaposter}
+\titleinfo{Additional information can be added below the subtitle.}
+% \addTitleBoxLogo*{\includegraphics[width=.5\linewidth]{example-image}}
\footerqrcode{https://peitex.de}
-\footer{Inhalt der Fußzeile}%Falls aktiviert
-
+\footer{Footer content}% If activated
\maketitle
-\section*{Grundlegende Hinweise}
-
-Die Dokumentenklasse tudaposter dient der Erstellung von Aushängen und Nicht"=wissenschaftlichen Plakaten im Stil der TU-Darmstadt. Sie ist Teil des TUDa-CI-Bundles.
-
-Für dieses Dokument gelten die in DEMO-TUDaPoster beschriebenen Mechanismen. Zusätzlich wird jedoch ein Modus aktiviert, der überwiegend für Aushänge zur Bekanntgabe von Abschlussarbeiten verwendet wird: \code{type=announcement}.
+\section*{General information}
-Dieser entspricht den Einzeloptionen: \code{marginpar=true}, \code{title=small}, \code{indenttext=false}, \code{logo=head}, \code{colorsubtitle=true}
+The document class tudaposter is part of the TUDa-CI bundle. It is for posters and non-scientific posters using TU Darmstadts Corporate Design.
+This document is based on DEMO-TUDaPoster with the addition \code{type=announcement}.
+It is mainly for notices announcing final theses and consists of the individual options: \code{marginpar=true}, \code{title=small}, \code{indenttext=false}, \code{logo=head}, \code{colorsubtitle=true}
\end{document}
+%% End of file `DEMO-TUDaAnnouncement.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.pdf
index 46572dc5484..87f407bd361 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.tex
index be652d469a3..d01db38e6f5 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaBeamer-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaBeamer.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,13 +16,13 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% If you need a compiled version of this document, have a look at
%% http://mirror.ctan.org/macros/latex/contrib/tuda-ci/doc
%% or at the documentation directory of this package (if installed)
@@ -31,172 +31,142 @@
%%
% !TeX program = lualatex
%%
+%% In case you need PDF/A
+% \DocumentMetadata{
+% pdfstandard=a-2b,
+% pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+% lang=en,
+%}
+
\documentclass[
- german,% Globale Übergabe der Hauptsprache
- aspectratio=169,% Beamer Option zum Umschalten des Formates
- accentcolor=2d,% Akzentfarbe
- logo=false,% Kein Logo auf Folgeseiten
- colorframetitle=true,% Akzentfarbe auch im Frametitle
-% logofile=example-image, % Falls die Logo Dateien nicht vorliegen
- design=2008, %Um das alte Design zu aktivieren
- ]{tudabeamer}
-\usepackage[main=german]{babel}
-
-% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig:
-\usepackage{iftex}
-\ifPDFTeX
-\usepackage[utf8]{inputenc}% Kompatibilität mit TeX Versionen vor April 2018
-\fi
-
-
-% Makros für Formatierungen der Doku
-% Im Allgemeinen nicht notwendig!
-\let\code\texttt
-
-\title{LaTeX-Beamer im Corporate Design der TU Darmstadt}
-\subtitle{Version 1.2}
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudabeamer}
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\newcommand*{\code}[1]{\texttt{#1}}
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
+
+\title[TUDaBeamer2023]{\LaTeX~beamer using TU Darmstadts Corporate Design}
+\subtitle{Design2023-beta}
\author[M. Peischl]{Marei Peischl}
\department{\TeX/\LaTeX}
\institute{pei\TeX}
-% Fremdlogo
-% Logo MaKro mit Sternchen skaliert automatisch, sodass das Logo in die Fußzeile passt
-\logo*{\includegraphics{example-image-16x9}}
+% Scaling for additional logos and titlegraphic is described on slide “Scaling logos/titlegraphic”
+% Sublogo/partnerlogo will be placed in the headline/sidebar
-% Da das Bild frei wählbar nach Breite und/oder Höhe skaliert werden kann, werden \width/\height entsprechend gesetzt. So kann die Fläche optimal gefüllt werden.
-% Sternchenversion skaliert automatisch und beschneidet das Bild, um die Fläche zu füllen.
-\titlegraphic*{\includegraphics{example-image}}
-\date{15. Mai 2019}
+\sublogo{\color{blue!50}\rule{\width}{\height}}
+\partnerlogo*{\includegraphics{example-image}}
-\begin{document}
+% Titlegraphic will be placed behind the title
+% \titlegraphic*{\includegraphics{example-image}}
-\maketitle
+\date{2023-10-02}% In case \today should not be used
-\section{Dokumentation}
-\begin{frame}{Die Dokumentenklasse tudabeamer}
-\begin{itemize}
- \item Verwendung wie beamer
- \item Keine besondere Syntax notwendig
- \item Klassenoption accentcolor wählt Akzentfarbe
- \item Option serif=true für Serifen
-\end{itemize}
-\end{frame}
+\AtBeginSection{\sectionpage}% Enable section pages
-\begin{frame}{Zusätzliche Features der Titelfolie}
-\begin{itemize}
- \item \code{\textbackslash{}logo} wählt Fremdlogo für Fußzeile
- \item \code{\textbackslash{}titlegraphic} ersetzt den unteren Teil der Titelfolie. Zusätzlich existiert \code{\textbackslash{}titlegraphic*{Inhalt}}.
- In diesem Fall wird der Inhalt in eine Box gesetzt, die so skaliert wird, dass sie den Bereich des Titelbildes überdeckt und entsprechend mittig ausgeschnitten ist.
-\end{itemize}
- Über die Option \code{authorontitle=true/false} kann zu den offiziellen Vorgaben auch der Autor und das Institut groß auf der Titelfolie gezeigt werden.
-\end{frame}
+\begin{document}
-\setupTUDaFrame{logo=true}
-\begin{frame}[fragile]{Logo im Frametitle}
-Das Logo innerhalb des Frametitle kann mit der Klassenoption \code{logo=false} abgeschaltet werden.
+\maketitle
-Soll das Logo später für ein Folie oder einen Bereich wieder aktiviert werden, steht das Makro
-\begin{verbatim}
-\setupTUDaFrame{logo=true}
-\end{verbatim}
-zur Verfügung. Dort kann die globale Einstellung lokal überschrieben werden.
-\end{frame}
+\tableofcontents
-\begin{frame}{Frame mit Untertitel}
-\framesubtitle{Untertitel}
-Ein Beispiel.
-\end{frame}
+\section{Documentation}
-\begin{frame}{Blöcke}
-\begin{block}{Standardblock mit Titel}
- Blockinhalt
-\end{block}
-\begin{block}{}
- Ohne Titel
-\end{block}
+\begin{frame}{The tudabeamer class}
+ \begin{itemize}
+ \item Basic usage identical to beamer
+ \item No special syntax required
+ \end{itemize}
\end{frame}
-\begin{frame}{Spezielle Blöcke}
-\begin{exampleblock}{Exampleblock}
- Blockinhalt
-\end{exampleblock}
-\begin{alertblock}{Alertblock}
- Blockinhalt
-\end{alertblock}
-\begin{example}[Für die example-Umgebung]
- Inhalt
-\end{example}
+\begin{frame}{Additional Features for titlegraphic/logos}
+ \begin{itemize}
+ \item \code{\textbackslash{}partnerlogo} additional logo next to TUDa logo
+ \item \code{\textbackslash{}sublogo} additional logo below TUDa logo
+ \item \code{\textbackslash{}titlegraphic} place image as a background for title slide
+ \end{itemize}
+ The additional option \code{authorontitle=true/false} allows to place author/institue below the title.
\end{frame}
-\begin{frame}{Hinweis zur Ausrichtung (insbesondere columns)}
- Die Standardausrichtung wurde gegenüber den Beamer-Voreinstellungen von \code{c} zu \code{t} geändert. Dies bedeutet, dass Inhalt auf der Folie oben ausgerichtet wird. Dies entspricht den Vorgaben. Es hat allerdings den Nachteil, dass die \code{columns}-Umgebung in diesem Fall bei der Positionierung von Bildern ungewohnte Ergebnisse erzeugt.
-
- Die Ausrichtung kann in diesem Fall entweder global mit der Option \code{c} wieder zum Standard geändert werden oder aber das \code{c} wird direkt an die \code{columns}-Umgebung übergeben. Zum Beispiel:
-\begin{columns}[onlytextwidth,c]% Ohne das c ist die Ausrichtung verschoben
- \column{.8\linewidth}
+\begin{frame}{Scaling logos/titlegraphic}
\begin{itemize}
- \item eins
- \item zwei
+ \item The commands shown on previous slide support \code{\textbackslash{}height}/\code{\textbackslash{}width} to adjust the size to be used for graphic scaling.
+ \item All have a starred variant (e.\,g. \code{\textbackslash{}sublogo*\{\textbackslash{}includegraphics\{example-image\}\}}). This will automatically scale/clip the logo/image to desired size.
+
+ To align the sublogo together with the visible part of the TUDa logo there also exists the possibility to add a second star behind the mandatory argument. This will move the logo to the left to match. This variant is only available for the sublogo.
\end{itemize}
- \column{.2\linewidth}
- \includegraphics[width=\linewidth]{example-image}
-\end{columns}
\end{frame}
+\begin{frame}{Table of Contents}
+ By design the toc is structured in two columns. This layout doesn't really support subsections or subsubsections.
+
+ To be able to use the new design with old content, the mechanism was extended to support those. This will automatically switch to a single columns toc.
-\begin{frame}[fragile]{Anpassungen der Mathematikschriftarten}
- Es gibt keine feste Vorgabe zur Verwendung einer Mathematikschrift.
+ In case you want to disable that mechanism there is the class option \code{toc-columns=one/two/auto} which can also be adjusted locally be directly setting it with the command:
+ \code{\textbackslash{}tableofcontents[columns=two]}.
- In der Diskussion (\url{https://github.com/tudace/tuda_latex_templates/issues/30}) hat sich folgendes als hinreiche Lösung herausgestellt. Jedoch funktioniert diese Lösung nicht in pdflatex!
- \begin{verbatim}
- \usepackage{unicode-math}
- \setmathfont{Fira Math}
- \setmathfont[range=up]{Roboto}
- \setmathfont[range=it]{Roboto-Italic}
- \setmathfont[range=\int]{Fira Math}
- \end{verbatim}
- Allgemein kann die Mathematikschriftart natürlich auch durch Pakete angepasst werden.
+ Please be also aware of beamer's mechanism to filter the toc, e.\,g. by \code{\textbackslash{}tableofcontents[hideallsubsections]}, see the beamer documentation for details.
\end{frame}
+\section{Slide examples}
-\begin{frame}[fragile]{Spezielle Anpassungen des Fachbereichs Maschinenbau}
- Mit Version 3.0 wird TUDa-CI um die Anpassungen des Corporate Designs des Fachbereichs Maschinenbau ergänzt.
- Daher verfügt tudabeamer nun ebenfalls über die Option
- \begin{verbatim}
- department=mecheng
- \end{verbatim}
- oder kurz
- \begin{verbatim}
- mecheng
- \end{verbatim}
- Dieser Modus setzt automatisch alle notwendigen Änderungen, benötigt jedoch die zusätzlichen Logos.
-
- Falls das Logo des Fachbereichs nicht vorliegt, kann durch die Option
- \begin{verbatim}
- departmentlogo=example-image
- \end{verbatim} ein Beispielbild statt des Logos verwendet werden.
+\begin{frame}{Frame with a subtitle}
+ \framesubtitle{Subtitle}
+ An example.
\end{frame}
-\begin{frame}[fragile]{mecheng: Hintergrundfarbe}
- Diese Variante des Corporate Designs erlaubt es die Hintergrundfarbe der einzelnen Folien zu verändern. Hierfür wurden die Frames um die Option \code{bgcolor} erweitert. Um in die beiden voreingestellten Modi zu wechseln, gibt es die Konfiguration
- \begin{verbatim}
- bgcolor=Primary1
- \end{verbatim}
- oder
- \begin{verbatim}
- bgcolor=Primary2
- \end{verbatim}
- Damit wird auch die Textfarbe entsprechend der Vorgaben gewählt. Bei Auswahl einer abweichenden Farbe bleibt die Textfarbe unverändert und muss ggf. manuell angepasst werden.
+\begin{frame}[fragile,uppercase=false]{Please be aware of uppercase frametitles}
+ The mechanism to provide uppercase frame titles might have unexpected side effects.
+ It's aware of macros in general, but there are issues with arguments. e.\,g. using \verb+\color{dark2}+ will create an error.
+
+ To avoid that issue one can disable the case change locally
+\begin{verbatim}
+\frameztitle{Test \NoCaseChange{\textcolor{dark2}{\MakeUppercase{Test}}}}
+\end{verbatim}
+ or use the frame option \verb+uppercase=false+ like it as been done for this frame.
+ For a global change tudabeamer is also providing the class option \verb+uppercase-frametitle=false+.
\end{frame}
-\begin{frame}[fragile]{Änderung an der Option color in Version 3.33.}
-Bis version 3.33 konnte tudabeamer mit der Option \verb+color={Optionen}+ Optionen an das Paket tudacolors übergeben.
+\begin{frame}{Color Scheme}
+ The new design introduced new colors to be used to highlight specific content.
-Aufgrund eines Konflikts mit dem siunitx Paketes, welches jedoch weiter verbreitet ist als TUDa-CI wurde für Version 3.33 die Option so umbenannt, dass nun der Optionsschlüssel \verb+tudacolors={Optionen}+ notwendig ist.
-Siehe auch \url{https://github.com/tudace/tuda_latex_templates/issues/435}
+ The additional colors are:
-Die Funktion funktioniert weiterhin wie gewohnt, allerdings wird eine Warnung erzeugt. Falls siunitx geladen und das Problem tatsächlich auftritt, wird diese Warnung vor der erzeugten Fehlermeldung ausgegeben.
+ \renewcommand*{\do}[1]{TUDa-####1: \textcolor{TUDa-####1}{\rule{1cm}{\ht\strutbox}}\par}
+ \docsvlist{dark1,dark2,light1,light2,accent1,accent2,accent3,accent4,accent5,accent5,hyperlink}
\end{frame}
-\end{document}
+\begin{frame}{Remark on vertical alignment (especially columns)}
+ The vertical alignment has been changed from \code{c} to \code{t} in contrast to beamers default setup.
+ Therefore frame content will be top aligned as required by the design guideline.
+ This is leading to some side effects, e\,g. with the columns environment.
+
+ To resolve this one can either globally add the \code{c} option to restore beamer's default or pass it to the environment itself.
+
+ \begin{columns}[onlytextwidth,c]
+ \column{.8\linewidth}
+ \begin{itemize}
+ \item one
+ \item two
+ \end{itemize}
+ \column{.2\linewidth}
+ \includegraphics[width=\linewidth]{example-image}
+ \end{columns}
+\end{frame}
+\end{document}
+%% End of file `DEMO-TUDaBeamer.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.tex
deleted file mode 100644
index 3e6e4357546..00000000000
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.tex
+++ /dev/null
@@ -1,174 +0,0 @@
-%% This is file `DEMO-TUDaBeamer2023.tex' version 3.41 (2024-07-02),
-%% it is part of
-%% TUDa-CI -- Corporate Design for TU Darmstadt
-%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 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.3c
-%% 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.3c or later is part of all distributions of LaTeX
-%% version 2008/05/04 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
-%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
-%% https://github.com/tudace/tuda_latex_templates
-%% Please use the issue tracker for feedback!
-%%
-%% If you need a compiled version of this document, have a look at
-%% http://mirror.ctan.org/macros/latex/contrib/tuda-ci/doc
-%% or at the documentation directory of this package (if installed)
-%% <path to your LaTeX distribution>/doc/latex/tuda-ci
-%% ============================================================================
-%%
-% !TeX program = lualatex
-%%
-
-\documentclass[
- english, % main language as globale option
-% logofile=example-image, % in case you are missing the logo files
- design=2023, % new slide design - will be default after official release
- ]{tudabeamer}
-
-\usepackage[main=english]{babel}
-
-% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig
-\usepackage{iftex}
-\ifPDFTeX
-\usepackage[utf8]{inputenc}%kompatibilität mit TeX Versionen vor April 2018
-\fi
-
-
-% document specific setup, you will not need that one in your files!
-\newcommand*{\code}[1]{\texttt{#1}}
-
-\title[TUDaBeamer2023]{\LaTeX~beamer using TU Darmstadts Corporate Design}
-\subtitle{Design2023-beta}
-\author[M. Peischl]{Marei Peischl}
-\department{\TeX/\LaTeX}
-\institute{pei\TeX}
-
-% Scaling for additional logos and titlegraphic is described on slide “Scaling logos/titlegraphic”
-
-% sublogo/partnerlogo will be placed in the headline/sidebar
-
-\sublogo{\color{blue!50}\rule{\width}{\height}}
-\partnerlogo*{\includegraphics{example-image}}
-
-% titlegraphic will be placed behind the title
-%\titlegraphic*{\includegraphics{example-image}}
-\date{2023-10-02}
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\section{Documentation}
-\sectionpage
-
-\begin{frame}{The tudabeamer class}
-\begin{itemize}
- \item Basic usage identical to beamer
- \item No special syntax required
-\end{itemize}
-\end{frame}
-
-\begin{frame}{Additional Features for titlegraphic/logos}
-\begin{itemize}
- \item \code{\textbackslash{}partnerlogo} additional logo next to TUDa logo
- \item \code{\textbackslash{}sublogo} additional logo below TUDa logo
- \item \code{\textbackslash{}titlegraphic} place image as a background for title slide
-\end{itemize}
- The additional option \code{authorontitle=true/false} allows to place author/institue below the title.
-\end{frame}
-
-\begin{frame}{Scaling logos/titlegraphic}
-\begin{itemize}
-\item The commands shown on previous slide support \code{\textbackslash{}height}/\code{\textbackslash{}width} to adjust the size to be used for graphic scaling.
-\item All have a starred variant (e.\,g. \code{\textbackslash{}sublogo*\{\textbackslash{}includegraphics\{example-image\}\}}). This will automaticcaly scale/clip the logo/image to desired size.
-
-To align the sublogo together with the visible part of the TUDa logo there also exists the possibility to add a second star behind the mandatory argument. This will move the logo to the left to match. This variant is only available for the sublogo.
-\end{itemize}
-\end{frame}
-
-\begin{frame}{Table of Contents}
-By design the toc is structured in two columns. This layout doesn't really support subsections or subsubsections.
-
-To be able to use the new design with old content, the mechanism was extended to support those. This will automatically switch to a single columns toc.
-
-In case you want to disable that mechanism there is the class option \code{toc-columns=one/two/auto} which can also be adjusted locally be directly setting it with the command: \code{\textbackslash{}tableofcontents[columns=two]}.
-
-Please be also aware of beamer's mechanism to filter the toc, e.g. by \code{\textbackslash{}tableofcontents[hideallsubsections]}, see the beamer documentation for details.
-\end{frame}
-
-\section{Slide examples}
-
-\begin{frame}{Frame with a subtitle}
-\framesubtitle{Subtitle}
-An example.
-\end{frame}
-
-\begin{frame}[fragile,uppercase=false]{Please be aware of uppercase frametitles}
-The mechanism to provide uppercase frame titles might have strange side effects.
-It's aware of macros, so those usually should work, but there are issues with arguments. e.g. using \verb+\color{dark2}+ will throw an error message.
-
-You can avoic this by either locally disabling the case change:
-
-\begin{verbatim}
-\frameztitle{Test \NoCaseChange{\textcolor{dark2}{\MakeUppercase{Test}}}}
-\end{verbatim}
-or use the frame option \verb+uppercase=false+ as for this frame or the class option \verb+uppercase-frametitle=false+
-\end{frame}
-
-\textcolor{TUDa-dark1}{test}
-
-\begin{frame}{Color Scheme}
-The new design introduces new colors to be used to highlight content.
-
-The additional colors are:
-\par
-\UseName{clist_map_inline:nn} {
- dark1,
- dark2,
- light1,
- light2,
- accent1,
- accent2,
- accent3,
- accent4,
- accent5,
- accent5,
- hyperlink,
-} {TUDa-####1: \textcolor{TUDa-####1}{\rule{1cm}{\ht\strutbox}}\par}
-\end{frame}
-
-\begin{frame}{Remark on vertical alignment (especially columns)}
- The default alignment has been changed from \code{c} to \code{t} in contrast to beamers default setting.
- This means frame content will be aligned top inside the frame.
- This is required by the design but might have side effects with the columns environment:
-
- To resolve this one can either globally add the \code{c} option or pass the option to the columns environment, e.\,g.:
-
-\begin{columns}[onlytextwidth,c]
- \column{.8\linewidth}
- \begin{itemize}
- \item one
- \item two
- \end{itemize}
- \column{.2\linewidth}
- \includegraphics[width=\linewidth]{example-image}
-\end{columns}
-\end{frame}
-
-\end{document}
-
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBibliography.bib b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBibliography.bib
index 8b1022904ae..e84e6f10756 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBibliography.bib
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBibliography.bib
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaBibliography.bib' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaBibliography.bib' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,7 +16,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
%% The development respository can be found at
@@ -41,37 +41,199 @@
urldate = {2018-12-20},
}
-@online{scrguide,
- title={KOMA-Script},
- subtitle={Die Anleitung},
- author={Kohm, Markus},
+
+@online{scrguide-de,
+ ids={scrguide},
+ title = {KOMA-Script – Ein wandelbares \LaTeX-Paket},
+ subtitle = {Die Anleitung},
+ author = {Kohm, Markus},
+ date={2023-06-16},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-de.pdf},
+ urldate={2024-08-03}
+}
+
+@online{scrguide-en,
+ title = {KOMA-Script},
+ subtitle = {Die Anleitung},
+ author = {Kohm, Markus},
date={2019-01-14},
- url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf},
- urldate={2019-02-05}
- }
+ url = {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf},
+ urldate={2024-08-03}
+}
@online{leaflet,
- title={The document class leaflet},
- author={Niepraschk, Rolf and Schmidt, Walter and Gäßlein, Hubert},
+ title = {The document class leaflet},
+ author = {Niepraschk, Rolf and Schmidt, Walter and Gäßlein, Hubert},
date={2015-12-27},
urldate={2020-02-12},
- url={http://mirrors.ctan.org/macros/latex/contrib/leaflet/leaflet-manual.pdf}
+ url = {http://mirrors.ctan.org/macros/latex/contrib/leaflet/leaflet-manual.pdf}
}
@online{TUDaGuideline,
- title={Das Bild der TU Darmstadt},
- subtitle={Corporate Design Handbuch},
+ title = {Das Bild der TU Darmstadt},
+ subtitle = {Corporate Design Handbuch},
edition={3},
month={06},
year={2011},
- url={https://www.intern.tu-darmstadt.de/media/medien_stabsstelle_km/services/medien_cd/das_bild_der_tu_darmstadt.pdf},
+ url = {https://www.intern.tu-darmstadt.de/media/medien_stabsstelle_km/services/medien_cd/das_bild_der_tu_darmstadt.pdf},
urldate={2020-05-01}
}
-@online{tudapub,
- title={TUDaPub – \LaTeX-Paper im Corporate Design der TU Darmstadt},
- author={Marei Peischl},
- date={2021-10-12},
- url={http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf},
- urldate={2021-10-12}
+
+@online{l3pdfmeta,
+ title = {The l3pdfmeta module},
+ subtitle = {PDF standards},
+ author = {{The \LaTeX{} Project}},
+ date={2024-05-23},
+ urldate={2024-07-22},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf}
+}
+
+@online{pdfmanagement-testphase,
+ title = {The \LaTeX{} PDF management testphase bundle},
+ subtitle = {PDF standards},
+ author = {{The \LaTeX{} Project}},
+ date={2024-05-23},
+ urldate={2024-07-22},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf}
+}
+
+@online{pdfx,
+ date={2024-07-01},
+ title = {Generation of PDF/X- and PDF/A- compliant PDFs with pdf\TeX{} – pdfx.sty},
+ author = {C. V. Radhakrishnan and Hàn Thế Thành and Ross Moore and Peter Selinger},
+ url = {https://mirrors.ctan.org/macros/latex/contrib/pdfx/pdfx.pdf},
+ urldate={2024-07-22}
+}
+
+@online{xcharter,
+ date={2024-06-18},
+ urldate={2024-08-04},
+ title = {The XCharter Font Package},
+ author = {Michael Sharpe},
+ url = {http://mirrors.ctan.org/fonts/xcharter/doc/xcharter-doc.pdf}
+}
+
+@manual{xcolor,
+ title = {The \texttt{xcolor} package},
+ subtitle = {Driver-independent color extensions for \LaTeX{} and pdfLaTeX},
+ author = {Uwe Kern and {\LaTeX{} Project}},
+ date = {2024-09-29},
+ version = {3.02},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/xcolor/xcolor.pdf}
+}
+
+@online{ctan-tuda-ci,
+ title = {The TUDa-CI package},
+ subtitle = {\LaTeX{} templates for Technische Universität Darmstadt},
+ author = {Marei Peischl},
+ date = {2025-01-24},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/tuda-ci},
+ url = {https://ctan.org/pkg/tuda-ci},
+}
+
+@manual{tuda-ci,
+ title = {TUDa-CI – Corporate Design for TU Darmstadt using \LaTeX},
+ subtitle = {Documentation for the TUDa-CI bundle},
+ author = {Marei Peischl},
+ date = {2025-01-26},
+ version = {4.00},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/tuda-ci.pdf}
+}
+
+@online{tuda-ci-github,
+ title = {GitHub Repository: TUDa-CI – Corporate Design LaTeX-Templates for TU Darmstadt},
+ url = {https://github.com/tudace/tuda_latex_templates/},
+ urldate={2025-01-22},
+}
+
+@online{TUDa-CI-Info,
+ title = {LaTeX – ULB TU Darmstadt},
+ url = {https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.en.jsp},
+ urldate = {2025-01-22},
+}
+
+
+@manual{TUDaAnnouncement,
+ title = {\LaTeX{} using TU Darmstadt's Corporate Design},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaBeamer,
+ title = {\LaTeX~beamer using TU Darmstadts Corporate Design},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaExercise,
+ title = {Übung zur Benutzung der TUDaExercise-Klasse},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise-de.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaLeaflet,
+ title = {TUDaLeaflet},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaLetter,
+ title = {TUDaLetter -- \LaTeX letters using TU Darmstadt CI},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaPhD,
+ title = {TUDaPhD -- \LaTeX-Dissertationstemplate im CD der TU Darmstadt (en)},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaPoster,
+ title = {\LaTeX{} using TU Darmstadt's Corporate Design},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaPub,
+ title = {TUDaPub -- \LaTeX-Paper using TU Darmstadt's Corporate Design},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaReport,
+ title = {TUDaReport -- Minimal template for TUDa-CI},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaSciPoster,
+ title = {\pkg{tcolorbox}-Poster using TU Darmstadt's Corporate Design},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@manual{TUDaThesis,
+ title = {TUDaThesis -- Theses using TU Darmstadt's CI},
+ url = {http://mirrors.ctan.org/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf},
+ author = {Peischl, Marei},
+ date = {2025-01-26},
+}
+
+@online{affidavit,
+ title = {Abschlussarbeit - Erklärung zur Abschlussarbeit nach APB},
+ organization = {TU Darmstadt},
+ date = {2025-01-26},
+ url = {https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp},
}
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.pdf
index 73187728927..7ec420736fc 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.tex
index 7b39c7fc3f7..56c16f66a15 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaExercise.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaExercise-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaExercise.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,317 +31,364 @@
%%
% !TeX program = lualatex
%%
+%% In case you need PDF/A
+% \DocumentMetadata{
+% pdfstandard=a-2b,
+% pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+% lang=en,
+%}
\documentclass[
- german,
- points=true,% für die Aktivierung der Punktereferenzen funktioniert nicht für TeX Versionen vor 2020
- ]{tudaexercise}
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+ points=true, to activate referencing task properties
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudaexercise}
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+%%%%%%%%%%%%%%%%%%%
+% Bibliography
+%%%%%%%%%%%%%%%%%%%
\usepackage{biblatex}
-\bibliography{DEMO-TUDaBibliography}
-
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
-\let\pck\textsf
-\let\cls\textsf
-\let\tbs\textbackslash
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
-\usepackage{booktabs}% Erweiterte möglichkeiten beim Spacing um Linien in Tabellen
-\renewcommand*{\creditformatsum}[1]{\creditformat{Gesamt: #1}}
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\usepackage{booktabs}% Improved horizontal rules for use in tables
+\renewcommand*{\creditformatsum}[1]{\creditformat{Total: #1}}
\ConfigureHeadline{
headline={title-name-id}
}
-\begin{document}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cls}[1]{\textsf{#1}}
+\newcommand*{\option}[1]{\texttt{#1}}
+\newcommand*{\environment}[1]{\texttt{#1}}
+\let\tbs\textbackslash
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
-\title[Übung TUDaExercise]{Übung zur Benutzung der TUDaExercise-Klasse}
+\title[TUDaExercise]{Tasksheet to practice use of TUDaExercise class}
\author{Marei Peischl}
-\term{Sommersemester 2042 -- v\fileversion\space(\filedate)}
+\term{Spring 2042}
\sheetnumber{5}
+\begin{document}
+
\maketitle
-\begin{task}{Titelei}
-Im Gegensatz zu den ganzen Titelseiten bei TUDaPub benötigt TUDaExercise eine platzsparende Möglichkeit für die Titelerzeugung. Daher verfügt TUDaexercise nur über einen Titelkopf. Für die Übergabe der Daten werden die folgenden Makros ausgewertet:
+\begin{task}{Title}
+ TUDaExercise does not support the \code{titlepage} option.
+ To save space the setting is enforced to \code{titlepage=false}.
+ The title material supports some additional commands, a full example is shown below:
+
\begin{verbatim}
-\title[Kurztitel für die Kopfzeile]{Titel}
-\subtitle{Untertitel}
-\author{Autor*in/Dozent*in}
-\term{Semester}
-\date{Datum}
-\sheetnumber{Nummer des Übungsblatts}
+\title[Short title to be used in running headers]{Title}
+\subtitle{Subtitle}
+\author{Author/Professor}
+\term{Term}
+\date{Date}
+\sheetnumber{Sheetnumber}
\end{verbatim}
-Mit Ausnahme des Titels können alle Felder auch leer bleiben . Sofern keine Blattnummer übergeben wird, werden die Übungsaufgaben beginnend mit 1, fortlaufend nummeriert.
+
+ All fields but the title may be kept empty.
+ In case no sheetnumber is used the tasks will be numbered starting at 1.
\end{task}
-\begin{task}{Farbgebung}
- Die Farbgebung nutzt die selben Mechanismen wie die übrigen Klassen des TUDa-CI-Bundles. Die Optionen \code{color}, \code{accentcolor}, \code{textaccentcolor}, \code{identbarcolor} funktionieren wie gewohnt (vgl. TUDaPub). Darüber hinaus ist es auch hier möglich den farbigen Titelblock zu deaktivieren. Die Option \code{colorback=false} ermöglicht es für Versionen zum Ausdrucken die Tonersparende Variante einzustellen.
+\begin{task}{Coloring}
+ The coloring uses the same mechanisms as the other classes of the TUDa-CI bundle. The options \option{color},
+ \option{accentcolor}, \option{textaccentcolor}, \option{identbarcolor} work as usual \cite[see][]{tuda-ci}. It is also possible to
+ deactivate the colored title block.
+ The option \option{colorback=false} makes it possible to set the toner-saving variant for
+ versions for printing
\end{task}
-\begin{task}{Eine Aufgabe erstellen}
-Aufgaben werden bei \cls{tudaexercise.cls} durch die Umgebung \code{task} definiert. Das Notwendige Argument übernimmt dabei eine Überschrift. Es kann leer bleiben.
+\begin{task}{Create a task}
+
+ Tasks are defined in \cls{tudaexercise} using the \environment{task} environment. The required argument is used as a title. It may remain empty.
\begin{verbatim}
- \begin{task}[<Optionen>]{Überschrift}
- Text der Aufgabe
- \end{task}
+ \begin{task}[<options>]{title}
+ Text describing the task
+ \end{task}
\end{verbatim}
-Querverweise zwischen den Aufgaben sind wie üblich mit \code{\tbs{}label} und \code{\tbs{}ref} möglich.
+ Cross-references between the tasks are possible as usual (\code{\tbs{}label} and \code{\tbs{}ref}).
+\end{task}
-\minisec{Die Verwendung des Makros \code{\tbs{}task}}
-Neben der Umgebungsstruktur, verfügt \cls{tudaexercise} auch über die Möglichkeit eine Aufgabe nur mit \code{\tbs{}task} einzuleiten. Dieser Mechanismus existiert um zu älteren Versionen Kompatibel zu bleiben. Sie sollte jedoch nach Möglichkeit nicht mehr verwendet werden!
-\end{task}
+\begin{task}{Subtasks}
+ \begin{subtask}[title={Basic structure}]
+ \cls{tudaexercise} provides the \code{subtask} environment to subdivide tasks into subtasks.
+ Currently inly one level is supported.
+ For further subdivision, it is also possible to divide the document into sections using \code{\tbs{}section}.
-\begin{task}{Teilaufgaben}
-\begin{subtask}[title=Grundsturktur]
- \cls{tudaexercise} unterstützt mit der \code{subtask}-Umgebung Aufgaben in Teilaufgaben zu untergliedern. Es wird derzeit nur eine Ebene unterstützt. Für weitere Untergliederung ist es möglich das Dokument zusätzlich mit \code{\tbs{}section} in Abschnitte zu unterteilen.
-
- \begin{verbatim}
- \begin{subtask}[title=Titel,points=5]
-
- \end{subtask}
- \end{verbatim}
-
- Teilaufgaben benötigen – im Gegensatz zu Aufgaben – keine Überschrift. Daher unterscheidet sich die Syntax für die Übergabe von der der \code{task}-Umgebung. Es gibt jedoch eine Variante um diese Unterscheidung zu umgehen, vergleiche Aufgabe \ref{task-subtask-syntax}.
-\end{subtask}
+\begin{verbatim}
+\begin{subtask}[title={title},points=5]
-\begin{subtask}[title=Anpassung der Überschriften]
- Ab Version 3.13 unterstützt \cls{tudaexercise} zusätzlich eine Umschaltung bezüglich des Layouts der Subtask-Überschriften. Es existieren drei Optionswerte für die Dokumentenklasse:
- \begin{description}
- \item[subtask=ruled] Voreinstellung, die Überschriften sind durch Linien vom Fließtext abgetrennt. (vgl. dieses Dokument)
- \item[subtask=plain] Keine Linien um die Überschrift.
- \item[subtask=runin] Falls sehr kleine Aufgaben gesetzt werden, kann der Umbruch nach der Überschrift unterbunden werden. In diesem Fall ist die Nutzer:in selbst dafür verantwortlich, dass eine ggf. notwendige Optische Abtrennung zwischen Titel und Aufgabentext stattfindet, z.B. durch Hervorhebung des Titeltextes.
- \end{description}
\end{subtask}
+\end{verbatim}
+
+ In contrast to tasks, subtasks do not require a heading.
+ Therefore, the syntax for the transfer differs from that of the task environment. However, there is a variant to avoid this distinction, see task \ref{task-subtask-syntax}.
+ \end{subtask}
+
+ \begin{subtask}[title={Layout modification of the headings}]
+ From version 3.13, \cls{tudaexercise} also supports switching the layout of subtask headings.
+ There are three option values for the document class:
+ subtask=ruled
+ subtask=plain
+ subtask=runin If very small tasks are set, the break after the title can be prevented . In this case, the user is responsible
+ for ensuring that any necessary visual separation between the title and task text takes place, e.g. by
+ highlighting the title text
+ Ab Version 3.13 unterstützt \cls{tudaexercise} zusätzlich eine Umschaltung bezüglich des Layouts der Subtask-Überschriften. Es existieren drei Optionswerte für die Dokumentenklasse:
+ \begin{description}
+ \item[subtask=ruled] Default setting, the headings are separated from the body text by lines (As shown in this document).
+ \item[subtask=plain] No rules around the headings
+ \item[subtask=runin] If very small tasks are set, the break after the title can be prevented . In this case, the user is responsible
+ for ensuring that any necessary visual separation between the title and task text takes place, e.g. by highlighting the title text.
+ \end{description}
+ \end{subtask}
\end{task}
-\begin{task}{Kopfzeilenanpassungen}
-Der Mechanismus für die Kopfzeilen wurde angepasst, sodass sein Inhalt frei wählbar ist.
+
+\begin{task}{Headline customization}
+ The mechanism for the headers has been adapted so that its content can be freely selected.
\begin{verbatim}
\ConfigureHeadline{
- headline={Inhalt der Kopfzeile}
+headline={content of the headline}
}
\end{verbatim}
-Es existiert nun eine Unterscheidung zwischen linken und rechten Seiten, sofern \code{twoside=true}.
-
+ There is now a distinction between left and right pages (in case \option{twoside=true}).
\begin{verbatim}
\ConfigureHeadline{
- even={Inhalt der Kopfzeile für linke Seiten},
- odd={Inhalt der Kopfzeile für rechte Seiten},
- oneside={Inhalt der Kopfzeile im einseitigen Modus}
+even={content of the header for left pages},
+odd={content of the header for right pages},
+oneside={content of the header in single-page mode}
}
\end{verbatim}
-Einstellungen, die gleiche Felder betreffen, überschreiben sich gegenseitig.
+ Settings that affect the same pages overwrite each other.
-\begin{subtask}[Freie Inhalte]
-Die Inhalte sind frei wählbar und werden automatisch in einer Box mit der gleichen Breite, wie der Text gesetzt. Der Inhalt wird linksbündig platziert. Es ist möglich Grafiken oder Tabellen innerhalb dieser Box zu platzieren.
-\end{subtask}
+ \begin{subtask}[title={Custom content for headlines}]
+ The content can be any \LaTeX{} code which will be placed within a box as wide as the text.
+ Content will be typeset left aligned.
+ It is possible to place graphics or tables within this box.
-\begin{subtask}[Vorgefertigte Elemente]
-Für die Kopfzeilen existieren einige vorgefertigte Elemente, die dort platziert werden können.
+ There are some ready-made elements for the headers that can be placed in the header.
\begin{verbatim}
- \ShortTitle
- \StudentID
- \StudentName
+\ShortTitle
+\StudentID
+\StudentName
\end{verbatim}
-Darüber hinaus kann auch jeglicher \LaTeX-Content dort eingefügt werden.
+ \end{subtask}
-Zusätzlich sind einige Werte vorbelegt und platzieren die Einträge nach dem selbsterklärenden Namensschema:
-\code{title-name-id}, \code{title-name}, \code{title}, \code{name-id}, \code{name}
-\end{subtask}
+ \begin{subtask}[title={Predefined header options}]
+ In addition, the \option{headline} option acceps some pre-defined values which will place the entries entries according to the self-explanatory naming scheme:
+ \option{title-name-id}, \option{title-name}, \option{title}, \option{name-id}, \option{name}
+ \end{subtask}
-\begin{subtask}[Kopfzeile auch auf der Titelseite]
-Da die Kopfzeile häufig für die Angabe von Studentendaten genutzt wird, ist es mit der Klassenoption \code{headontitle} auch möglich die Kopfzeile ebenfalls auf der Titelseite einzufügen.
-\end{subtask}
+ \begin{subtask}[title={Enable the header for the title page}]
+ As the header may be used to specify student data, it is possible to use the class option \option{headontitle}. This will enable the header for the title page.
+ \end{subtask}
\end{task}
+\begin{task}[solution=true]{Solutions}
+ \cls{tudaexercise} has a mechanism for managing solution proposals within the files.
+ The \environment{solution} environment exists for this purpose.
+ To enable the output of solutions it's possible to use the class option (global)
-\begin{task}[solution=true]{Lösungen}
-tudaexercise verfügt über einen Mechanismus um Lösungsvorschläge innerhalb der Dateien mit zu verwalten. Hierfür existiert die Umgebung \code{solution}.
-
-Die Ausgabe der Lösungen wird entweder global
\begin{verbatim}
\documentclass[...,
solution=true,
]{tudaexercise}
\end{verbatim}
-oder lokal für einzelne Aufgaben konfiguriert:
+ or configure it locally for individual tasks:
\begin{verbatim}
-\begin{task}[solution=true]{Überschrift}
-Aufgabentext
+\begin{task}[solution=true]{Heading}
+Task description
\begin{solution}
- Lösungstext
+ Solution
\end{solution}
\end{task}
\end{verbatim}
-Die Voreinstellung ist \code{solution=false}.
-\begin{solution}
-Beispiel für einen Lösungsvorschlag
-\end{solution}
+
+ The default setting is solution=false.
+
+ \begin{solution}
+ This is an example for a solution block.
+ \end{solution}
+
+ There also exists a \environment{solution*} environment. Which behaves the same way, but does not automatically add a title to the block.
\end{task}
-\begin{task}{Abfrage der Einstellung \enquote{solution}}
-Ab Version 3.04 existiert zusätzlich die Möglichkeit die Einstellung \code{solution} abzufragen.
+\begin{task}{Query the \option{solution} setting}
-Die Umgebung \code{solution*} verhält sich wie \code{solution} ohne die Beschriftung. Darüber Hinaus wurden die Makros \code{\IfSolutionTF} ergänzt.
+ As of version 3.04, it is also possible to query the solution setting using the following structures:
\begin{verbatim}
-\IfSolutionT{<falls solution=true>}
-\IfSolutionF{<falls solution=false>}
-\IfSolutionTF{<falls solution=true>}{<falls solution=false>}
+\IfSolutionT{<if solution=true>}
+\IfSolutionF{<if solution=false>}
+\IfSolutionTF{<if solution=true>}{<if solution=false>}
\end{verbatim}
+ In the current setting (solution=false), the above block generates the following output:
-In der aktuellen Einstellung (\code{solution=false}) erzeugt der obige Block die folgende Ausgabe:
-
-\IfSolutionT{<falls solution=true>}
-\IfSolutionF{<falls solution=false>}
-\IfSolutionTF{<falls solution=true>}{<falls solution=false>}
+ \IfSolutionT{<if solution=true>}
+ \IfSolutionF{<if solution=false>}
+ \IfSolutionTF{<if solution=true>}{<if solution=false>}
\end{task}
-\begin{task}[credit=10]{Punkte}
-Punkteangaben sind über den Optionsschlüssel \code{credit} möglich. Der Wert wird hinter den Aufgabentitel in runde Klammern gesetzt. Dies geschieht mithilfe des Makros \code{\tbs{}creditformat}
+\begin{task}[credit=10]{Points}
+ Points can be specified using the \option{credit} key.
-Alternativ existiert der Schlüssel \code{points} dieser ergänzt zusätzlich zur Angabe auch den Text \code{\tbs{}PointName} bzw. \code{\tbs{PointsName}} je nachdem ob der Wert gleich 1. Der Schlüssel \code{points} akzeptiert daher nur numerische Werte ab Version 3.13 werden Gleitkommazahlen unterstützt. Das Dazimaltrennzeichen ist hierbei ein Punkt. Korrektur auf ein Komma ist über eine Umdefinition von \code{\tbs{}pointformat} möglich.
+ using the macro \creditformat option key.
+ The value is placed after the task title within parentheses.
+ This is internally done using the \code{\tbs{}creditformat} command which can be redefined to archieve different formats.
-\begin{subtask}[points=1,title=Beispiel für den Schlüssel points]
-Da ältere Versionen von TUDaExercise keine Optionsverarbeitung für subtask erlaubten, ist hier ein zusätzlicher Mechanismus enthalten. Falls sowohl ein Titel, als auch spezifische Angaben notwendig sind, existiert hier zusätzlich der Schlüssel \code{title}.
-Geprüft wird darauf, ob das Argument ein Gleichheitszeichen enthält, ist dies der Fall, so wird davon ausgegangen, dass Optionen nach Schlüssel=Wert-Struktur übergeben werden.
-\end{subtask}
+ Alternatively, there is the \option{points} key which, in addition to the specification, also adds the text \code{\tbs{}PointName} or
+ \code{\tbs{PointsName}} depending on whether the value equals 1. The points key therefore only accepts numerical
+ values (from version 3.13 floating point numbers are supported).
+ The decimal separator here is a period.
+ Correction to a comma is possible by redefining \code{\tbs{}pointformat}.
-\begin{subtask}[Fallback-Modus, falls ein = im Titel detektiert wird, aber keine Zuweisung möglich ist.]
-Falls bei der Optionsverarbeitung Unstimmigkeiten festgestellt werden, so wird das gesamte Argument als Titel verarbeitet.
-\end{subtask}
+ \begin{subtask}[points=1,title={Example for the using \option{points}}]
+ As older versions of TUDaExercise did not allow option processing for subtask, an additional mechanism is
+ included here.
+ If both a title and specific information are required, the title key is also included here.
+ A check is made to see whether the argument contains an equals sign; if this is the case, it is assumed that options are passed according to the key=value structure.
+ \end{subtask}
\end{task}
-\begin{task}[points=auto]{Automatismen für Punktetabellen}
-\label{task:refPoints}
-Mit Version 3.13 erhält \cls{tudaexercise} die Funktionalität für automatische Punktetabellen und Referenzen auf die Punkteangaben.
+\begin{task}[points=auto]{Automatisms for grading tables}
+ \label{task:refPoints}
-\begin{subtask}[points=3,title=Referenzen aktivieren]
-\cls{tudaexercise} hat diese Funktionalität grundsätzlich deaktiviert, sie kann jedoch über die Klassenoption \code{points=true} eingeschaltet werden.
+ At version 3.13 \cls{tudaexercise} received the functionality for automatic grading tables and references to the point data.
-Der Mechanismus für die Referenzierung funktioniert ähnlich, wie die Objektreferenzen bei \LaTeX{}. Dadurch ist es notwendig das Dokument zweimal zu kompilieren. Falls \cls{tudaexercise} im Durchlauf feststellt, dass sich die Werte des letztes Durchlaufes von den aktuellen unterscheiden, wird eine entsprechende Warnung erzeugt.
+ \begin{subtask}[points=3,title={Activate references}]
+ \cls{tudaexercise} has generally deactivated this functionality, but it can be activated via the class option \option{points=true} be switched on.
-Für die Referenz stehen zwei Makros zur Verfügung. Eines funktioniert über den Aufruf der Aufgabennummer, der andere über labels:
+ The referencing mechanism works in a similar way to the object references in \LaTeX.
+ This makes it necessary to compile the document twice.
+ If \cls{tudaexercise} detects different values between begin and end of the compilation process, a corresponding warning is generated.
+ Two macros are available for the reference.
+ One works by calling up the task number, the other via labels:
-\verb+\getPoints{+\thetask\verb+}+\\
-\verb+\refPoints{task:refPoints}% benötigt das \label{task:refPoints}, vgl. Quellcode+
+ \verb+\getPoints{+\thetask\verb+}+\\
+ \verb+\refPoints{task:refPoints}% requires the \label{task:refPoints}, see source code+
+ In this case, both macros return the same value: \refPoints{task:refPoints}.
+ As {\tbs{}refPoints} works independently of hte structure of the task numbers, this variant is generally preferable.
+ In addition to references to individual tasks, \verb+\getPointsTotal+ returns the total of all tasks of the last compilation.
+ \end{subtask}
-Beide Makros geben in diesem Fall den gleichen Wert: \refPoints{task:refPoints}. Da die Variante code{\tbs{}refPoints} dynamisch von den Aufgabennummern abhängig ist diese Variante im Allgemeinen zu bevorzugen.
+ \begin{subtask}[points=2,title={Summation among subtasks}]
+ The new mechanism also allows automatic calculation of the total points of all subtasks within a task.
+ To enable this mechanism the option \option{points=auto} has to be set.
+ If it's set as a class option, it will be activated for all tasks.
+ If the class option points=auto is set, this is automatically activated for all tasks.
-Neben der Referenz auf einzelne Aufgaben gibt \code{\tbs{}getPointsTotal} die Summe der aller Aufgaben im letzten \LaTeX-Lauf zurück.
+ However, the automatic value can be overwritten by manually entering a value, e.\,g. if a task does not onldy consist of subtasks.
-\end{subtask}
+ There is currently no automatic check that the sum of the subtasks matches the total.
-\begin{subtask}[points=2,title=Punkte aus Teilaufgaben aufsummieren]
- Der neue Mechanismus ermöglicht auch, dass der Punktewert einer Aufgabe aus der Summe der Punkte der enthaltenen Teilaufgaben berechnet wird.
-
- Hierfür ist die Verwendung der Umgebungen zwingend notwendig. \code{\tbs{}task} erlaubt es nicht die Teilaufgaben entsprechend einzugrenzen. Selbiges gilt für die Subtask-Umgebung.
-
- Die Summe der Punkte wird nicht automatisch bei der Aufgabenbezeichnung eingetragen, jedoch existiert mit dem Optionswert \code{points=auto} eine entsprechende Funktionalität.
- Falls die Klassenoption \code{points=auto} gesetzt ist, wird diese automatisch für alle Aufgaben aktiviert. Der automatische Wert kann jedoch über eine manuelle Angabe eines Wertes überschrieben werden, z.\,B. falls eine Aufgabe nicht aus Teilaufgaben besteht.
-
- Es erfolgt derzeit keine automatische Prüfung auf die Übereinstimmung zwischen der Summe der Teilaufgaben und der Gesamtpunktzahl.
-
- Um die Unterscheidung der Angabe zwischen aufsummierten Werten und manuell gesetzten Werten zu ermöglich existiert intern eine weitere Variante des Makros \code{\tbs{}creditformat}.
-
- \begin{verbatim}
- \newcommand*{\creditformatsum}[1]{\creditformat{#1}}
- \end{verbatim}
-
- Es ruft intern lediglich das Makro \code{\tbs{}creditformat} auf. Für dieses Beispieldokument wurde jedoch die Bedeutung überschrieben, sodass im Titel dieser Aufgabe gekennzeichnet wird, dass der Punktewerte eine Summe der Teilaufgaben entspricht:
-
- \begin{verbatim}
- \renewcommand*{\creditformatsum}[1]{\creditformat{Gesamt: #1}}
- \end{verbatim}
-\end{subtask}
+ There is another internal variant of the macro \code{\tbs{}creditformat} to allow a distinction between summed values
+ and manually set values.
+
+\begin{verbatim}
+\newcommand*{\creditformatsum}[1]{\creditformat{#1}}
+\end{verbatim}
-\begin{subtask}[points=3,title=Automatische Punktetabellen]
- \cls{tudaexercise} stellt mit der Möglichkeit der Referenz auf die Aufgabenwerte auch die Auflistung aller Punkte zur Verfügung.
-
- Da die Struktur einer Punktetabelle nach persönlichen Vorlieben stark variiert ist das Makro sehr abstrakt konstruiert.
-
- \begin{verbatim}
- \mapPoints{<Code, der für jede Aufgabe ausgeführt werden soll>}
- \end{verbatim}
-
- \code{\tbs{}mapPoints} iteriert über alle Aufgaben und erlaubt als Argument beliebige Code-Elemente. Innerhalb des Codes können \code{\#1} (Nummer der Aufgabe) und \code{\#2} (zugehöriger Punktwert) verwendet werden.
- Aufgaben, deren Wert Null beträgt werden übersprungen.
-
- Zum Beispiel erzeugt:
- \begin{verbatim}
- \begin{tabular}{@{}lr@{}}
- \toprule
- \mapPoints{Aufgabe #1&#2 Punkte\\}
- \midrule
- Gesamt&\getPointsTotal{} Punkte\\
- \bottomrule
- \end{tabular}
- \end{verbatim}
- die Ausgabe:\\
- \begin{tabular}{@{}lr@{}}
- \toprule
- \mapPoints{Aufgabe #1&#2 Punkte\\}
- \midrule
- Gesamt&\getPointsTotal{} Punkte\\
- \bottomrule
- \end{tabular}
-
- Falls auch Aufgaben mit einem Wert von 0 verarbeitet werden sollen, existiert noch eine gesternte Version \code{\tbs{}mapPoints*}.
+ By default it is the same but could be overwritten like the following example:
+
+\begin{verbatim}
+\renewcommand*{\creditformatsum}[1]{\creditformat{Total: #1}}
+\end{verbatim}
\end{subtask}
-\end{task}
+ \begin{subtask}[points=3,title={Automatic grading tables}]
+ \cls{tudaexercise} also provides a list of all points with the option of referencing the task values.
+ As the structure of a grading table varies greatly depending on personal preferences, the macro is designed in a very
+ abstract way.
+\begin{verbatim}
+\mapPoints{<code to be executed for each task>}
+\end{verbatim}
-\begin{task*}{Einheitliche Syntax für Task/Subtask}
- \label{task-subtask-syntax}
- TUDaExercise unterscheidet in der Standardeinstellung zwischen \code{task} und \code{subtask}. Dies ist dadurch begründet, dass \code{subtask} keine Angabe eines Titels erfordert.
-
- Es wurde der Bedarf nach einer einheitlichen Syntax geäußert (siehe \url{https://github.com/tudace/tuda_latex_templates/issues/189}).
-
- \begin{subtask*}{Die gesternten Varianten der task/subtaks-Umgebungen}
- Die mit Version 3.0 implementierten Varianten \code{task*} und \code{subtask*} ermöglichen dies.
-
- Beide Varianten stehe nur als Umgebung und nicht als Makro zur Verfügung:
+ \code{\tbs{}mapPoints} iterates over all tasks and allows any code elements as arguments.
+ Within the code, \code{\#1} (Task Number) and \code{\#2} (associated point value) can be used.
+ Tasks with a value of zero are skipped by default.
+ For example:
\begin{verbatim}
-\begin{task*}{Aufgabentitel}
- \begin{subtask*}{Titel der Teilaufgabe}
- Beschreibung
- \end{subtask*}
-\end{task*}
+\begin{tabular}{@{}lr@{}}
+ \toprule
+ \mapPoints{Task #1&#2 Points\\}
+ \midrule
+ Total&\getPointsTotal{} Points\\
+ \bottomrule
+\end{tabular}
\end{verbatim}
+ creates the following output:\\
+ \begin{tabular}{@{}lr@{}}
+ \toprule
+ \mapPoints{Task #1&#2 Points\\}
+ \midrule
+ Total&\getPointsTotal{} Points\\
+ \bottomrule
+ \end{tabular}
+
+ \end{subtask}
-\end{subtask*}
+ \begin{subtask}[points=5,title={Detailed grading tables including subtasks}]
+ With version 4.00 there is also the option using \verb+\mapPoints*+.
+ This variant also iterates over subtasks.
+ In addition, the mechanism has been expanded to include a more general variant.
+ This can be used to interact with all tasks.
+ The documentation will be extended!
+ \end{subtask}
+\end{task}
-\begin{subtask*}{Vertauschen der beiden Varianten}
-Zusätzlich erlaubt die Klassenoption \code{match-task-subtask-syntax} das Vertauschen von \code{subtask} und \code{subtask*}.
+\begin{task*}{Uniform syntax for task/subtask}
+ \label{task-subtask-syntax}
+ By default, TUDaExercise distinguishes between task and subtask. This is due to the fact that subtask does
+ not require a title to be specified.
-Die Umgebungen \code{task*} und \code{task} sind identisch.
-\end{subtask*}
+ The need for a uniform syntax was expressed (see \url{https://github.com/tudace/tuda_latex_templates/issues/189}).
+
+ \begin{subtask*}{Starred variants of the task/subtaks environments}
+ The task* and subtask* variants implemented with version 3.0 make this possible:
+
+\begin{verbatim}
+\begin{task*}{Task heading}
+\begin{subtask*}{subtask heading}
+Description
+ \end{subtask*}
\end{task*}
+\end{verbatim}
+ \end{subtask*}
-\begin{task}{Kompatibilitätsmodus}
-Die Klasse \cls{tudaexercise} verfügt über einen Kompatibilitätsmodus, um den Umstieg von zuvor existierenden Templates, wie TUDexercise zu erleichtern.
-Um den Kompatibilitätsmodus zu aktivieren, existiert die Option \code{compat=true}.
+ \begin{subtask*}{Swapping both variants}
+ The class option \code{match-task-subtask-syntax} allows subtask and subtask* to be swapped. The task* and task environments are identical anyway.
+ \end{subtask*}
+\end{task*}
-Damit können Strukturen wie \code{examheader}, \code{examheaderdefault} und die Erzeugung von Aufgaben mitilfe von \code{\tbs{}subsection} wie gewohnt verwendet werden. Da einige dieser Mechanismen jedoch der Philosophie der semantischen Auszeichnung widersprechen wird ihre Verwendung hier nicht genauer erklärt. Nutzer, denen diese Mechanismen nicht vertraut sind, wird empfohlen die durch TUDaExercise zur Verfügung gestellten Varianten zu nutzen.
-Beim zugehörigen Release im Development Repository findet sich auch eine Beispieldatei, die die alten Mechanismen verwendet und spezielle Hinweise für Umsteiger enthält: \url{https://github.com/tudace/tuda_latex_templates/blob/master/example/Examples-TUDexercise-compat.tex}
-\end{task}
\end{document}
+%% End of file `DEMO-TUDaExercise.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaFromaddress.lco b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaFromaddress.lco
index 3711a5c75a0..783ad50d1f5 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaFromaddress.lco
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaFromaddress.lco
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaFromaddress.lco' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaFromaddress.lco' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -29,28 +29,23 @@
%% <path to your LaTeX distribution>/doc/latex/tuda-ci
%% ============================================================================
%%
-% !TeX program = lualatex
-%%
-
-\ProvidesFile{DEMO-TUDaFromaddress.lco}[2019/02/14]
-%Letter Class Option Datei
+\ProvidesFile{DEMO-TUDaFromaddress.lco}[2024-07-02 Example letter configuration file for TUDa-CI]
-%Institut
-\setkomavar{frominstitution}{Institut für Musterforschung}
+% Institute should be configured in German + English
\setkomavar{frominstitution-en}{Institute for Research and Technology}
+\setkomavar{frominstitution}{Institut für Musterforschung}
-%Textelement als Sublogo
+% Text element as a sublogo:
\setkomavar{fromlogo}{\colorbox{blue!20}{\parbox{\dimexpr\linewidth-2\fboxsep\relax}{Sublogo}}}
-%Bild als Sublogo, volle Breite der Zeile
-%\setkomavar{fromlogo}{\includegraphics[width=\linewidth]{exaple-image}}
-
+% Image as a sublogo with full width of the line:
+% \setkomavar{fromlogo}{\includegraphics[width=\linewidth]{example-image}}
+% Address:
\setkomavar{fromaddress}{Karolinenplatz 5\\64289 Darmstadt}
-%optional Rücksendeadresse, voreingestellt ist:
-%\setkomavar{backaddress}{Technische Universität Darmstadt\\Karolinenplatz 5\\64289 Darmstadt}
+% Optional setting for the backaddress. It's preconfigured to use:
-%Personenbezogen
+% Personal information:
\setkomavar{fromname}{Prof. Dr. Max Mustermann}
\setkomavar{fromfunction}{Dekan}
\setkomavar{fromphone}{+49\,6151\,16\,-\,xxxx}
@@ -58,30 +53,4 @@
\setkomavar{fromemail}{mustermann@tu-darmstadt.de}
\setkomavar{fromurl}{https://www.tu-darmstadt.de/}
-\endinput
-
-% Hinweise zur Installation einer lco-Datei im lokalen/persönlichen texmf-tree
-% Die folgende Erklärung bezieht sich auf TEXMFLOCAL. Das gilt für die gesamte Installation.
-% Für einen einzelnen Nutzer, gilt diese Erläuterung analog, allerdings heißt die Variable TEXMFHOME
-% Die angegebenen Beispielpfade beziehen sich auf Windows-Systeme, die Vorgehensweise ist auf anderen Systemen analog, lediglich die Pfadstruktur sieht anders aus.
-
-% Sofern bereits in lokaler Zweig der LaTeX-Distributionsstruktur existiert, erhalten Sie beim ausführen von
-% kpsewhich -var-value TEXMFLOCAL
-% in einem Terminal eine Ausgabe wie
-% C:/texlive/texmf-local
-
-% In disem Fall ist somit unter C:/texlive/texmf-local eine Struktur, die analog zur TeX-Distribution aufgebaut ist.
-% Hier könen Sie lokale Einstellungen ablegen, die sie persönlich betreffen.
-
-% Entsprechend der TeX Directory Structure (TDS) liegen lokale Pakete dann im Unterordner
-% <texmflocal>\tex\latex\local
-% für das Beispiel bedeutet dies, dass man den Ordner
-% C:\texlive\texmf-local\tex\latex\local
-% anlegt und die lco-Datei entweder in diesem oder einem leichter zuzuordnenden Unterordner gelegt.
-
-% Anschließend muss TeX noch über die neue Datei informiert werden. Dies erfolg durch den Update der Datenbank:
-% mktexlsr
-% eventuell muss dieser Befehl mit Administratorrechten ausgeführt werden.
-% Das hängt davon ab, mit welchen Rechten Sie ihr TeX-System installiert haben.
-
-
+%% End of file `DEMO-TUDaFromaddress.lco'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.pdf
index 1eff1dfc4c5..11a7d0d258e 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.tex
index 2303aa23aec..db3e468cb46 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLeaflet.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaLeaflet-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaLeaflet.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -33,32 +33,42 @@
%%
\documentclass[
- color=3c,
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
- ]{tudaleaflet}
-
-\usepackage[german]{babel}
-
-\usepackage{blindtext}
-\usepackage[autostyle]{csquotes}
-
-%Literaturverweise
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudaleaflet}
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Bibliography
+%%%%%%%%%%%%%%%%%%%
\usepackage{biblatex}
-\bibliography{DEMO-TUDaBibliography}
-
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
-\let\pck\textsf
-\let\cls\textsf
-
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
+
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cls}[1]{\textsf{#1}}
+\let\tbs\textbackslash
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{TUDaLeaflet}
-%\titleimage{\includegraphics[width=\width,height=\height]{example-image}}
-\subtitle{Flyer mit TUDa-CI}
-\addTitleBox{Institut}
+% \titleimage{\includegraphics[width=\width,height=\height]{example-image}}
+\subtitle{Leaflet using TUDa-CI}
+\addTitleBox{Institute}
\AddSponsor{\includegraphics[height=\height ]{example-image}}
\AddSponsor{\includegraphics[height=\height ]{example-image}}
@@ -66,77 +76,91 @@
\maketitle
-\section{Grundlegende Funktionsweise}
-\cls{tudaleaflet} basiert auf der \cls{leaflet}-Klasse. Die Verwendung ähnelt der einer einfachen ArtikelKlasse lediglich die Seitemumbrüche sind auf ein Faltblatt ausgelegt. Es werden üblicherweise 6 Teil-Seiten erzeugt. Für weitere Informationen zur \cls{leaflet}-Klasse, kann \cite{leaflet} hilfreich sein. Optionen, die nicht durch \cls{tudaleaflet} definiert wurden, werden ggf. an die Basisklasse weitergereicht.
+\section{Basic usage}
+\cls{tudaleaflet} is based on the \cls{leaflet} class.
+The usage is similar to the article class, only the page breaks are those of a leaflet and are normally divided into six partial pages.
+Options not defined by \cls{tudaleaflet} may be passed to the base class.
+See \cite{leaflet} for more information about the \cls{leaflet} class.
-Diese ist keine \KOMAScript-Klasse. Dennoch wurde durch \pck{scrextend} einige Mechanismen zur besseren Kompatibilität eingebaut, allerdings sind nicht alle Mechanismen verfügbar \cite[vgl.][]{scrguide}.
+\pkg{scrextend} has added some mechanisms for better compatibility. However, this is not a \KOMAScript class, which is why not all mechanisms are available \cite[see][]{scrguide}.
-\section{Die Titelseite}
-Die Titelseite wird analog zu den übrigen TUDa-CI-Klassen erzeugt. Als Makros stehen hierbei die folgenden zur Verfügung:
+\section{title page}
+The title page is like the other TUDa CI classes and contains the following macros:
\begin{description}
- \item[title] Titel
- \item[subtitle] Untertitel, wird im Block zwischen Titel und Titelbild platziert.
- \item[author] Autor, wird ggf. unter dem Untertitel platziert.
- \item[date] Datum, wiederum unter dem ggf. platzierten Autor
- \item[addTitleBox] Institutsboxen.
- Die Institutsboxen werden mit vorgegebenem Abstand unter dem Logo platziert. Hier kann Text erscheinen oder auch ein Institutslogo. Der Hintergrund ist weiß.
-
- Um die Institutsboxen für Logos zu verwenden, liefert \cls{tudaleaflet} analog zu \cls{tudapub} das Makro \code{\addTitleBoxLogo}. Als Argument akzeptiert es einen Bilddateipfad.
- \begin{verbatim}
- \addTitleBoxLogo{example-image}
- \addTitleBoxLogo*{
- \includegraphics
- [width=\linewidth]
- {example-image}
- }
- \end{verbatim}
- \item[titleimage] Titelbild. Das Makro \code{titleimage} akzeptiert beliebigen Inhalt. Dieser wird bündig mit der oberen Ecke im Hauptteil der Titelseite platziert.
- Üblicherweise wird dieses Makro zur Platzierung einer Grafik genutzt:
- \begin{verbatim}
- \titleimage{
- \includegraphics
- [width=\width]
- {example-image}
- }
- \end{verbatim}
- Die Makros \verb+\height+ und \verb+\width+ sind hier lokal so definiert, dass es damit möglich ist, die Fläche zu füllen.
+ \item[title] Title
+ \item[subtitle] Is placed in the block between the title and cover image
+ \item[author] Can be placed under the subtitle if necessary
+ \item[date] Can be placed under the author
+ \item[addTitleBox] Title box
+ The title box is placed below the logo at a specified distance. The background is white and can be filled with text or institute logo.
+
+ With \code{\addTitleBoxLogo} logos can be used in the title box.
+ It accepts an image file path as an argument.
+\begin{verbatim}
+\addTitleBoxLogo{example-image}
+\addTitleBoxLogo*{
+\includegraphics
+[width=\linewidth]
+{example-image}
+}
+\end{verbatim}
+ \item[titleimage] \code{titleimage} is usually for placing a graphic, but also accepts any content. The content is placed flush with the top corner in the body of the front page.
+\begin{verbatim}
+\titleimage{
+\includegraphics
+[width=\width]
+{example-image}
+}
+\end{verbatim}
+ To fill the area there, these locally defined macros \verb+\height+ and \verb+\width+ will help.
\end{description}
-\subsection{Optionen zur Anpassung der Titelseite}
+\subsection{Title page customization options}
\begin{description}
- \item[colorback] aktiviert die Hintergrundfarbe der \verb+\titleimage+-Fläche. Voreingestellt ist \verb+color+""\verb+back=true+
- \item[colorbacktitle] Analog für den Titelblock, Voreingestellt ist hier \verb+colorbacktitle=false+
- \item[colorbacksubtitle] Diese Option funktioniert nur für \verb+colorbacktitle=true+. Damit ist es möglich, dass auch der Streifen zwischen Titelblock und Bildfläche in der Farbe der Identitätsleiste eingefärbt wird. Falls \verb+colorbacktitle=false+ erzeugt dies eine Fehlermeldung. Voreingestellt ist \verb+colorbacksubtitle=false+
- \item[logofile] Alternatives Hauptlogo, z.\,B. falls das TUDa-Logo nicht vorliegt.
+ \item[colorback] Activates backround color of the \verb+\titleimage+ area. Default is \verb+color+""\verb+back=true+
+ \item[colorbacktitle] Similar to title block. Default is \verb+colorbacktitle=false+
+ \item[colorbacksubtitle] This option can only be used if \verb+colorbacktitle=true+. If \verb+colorbacktitle=false+ an error message occurs. The strip between the title block and the image area will be colored the same color as the identity bar. The default is \verb+colorbacksubtitle=false+
+ \item[logofile] Alternate main logo, e.\,g. in case the TUDa logo is not available.
\end{description}
-Die Textausrichtung des Titels ist durch das Makro \verb+\raggedtitle+ gesetzt. Dies ist auf \verb+\raggedright+ vorbelegt, um Umbrüche innerhalb des Titels zu Verhindern, ermöglicht aber auch andere Ausrichtungen. Eine Änderung ist mit \verb+\renewcommand+ möglich.
+Text alignment of the title is done with \verb+\raggedtitle+.
+To prevent breaks within the title, the default is \verb+\raggedright+.
+Other alignments can be done with \verb+\renewcommand+.
-\subsection{Sponsorenlogos}
-Sponsorenlogos werden üblicherweise über
+\subsection{Sponsor logos}
\begin{verbatim}
\AddSponsor{<logo1>}
-\AddSponsor{<log2>}
+\AddSponsor{<logo2>}
\end{verbatim}
-übergeben. Innerhalb des Arguments ist \verb+\height+ so gesetzt. Somit werden im Beispiel alle Logos auf die gleiche Höhe gesetzt. Der Abstand dazwischen wird entsprechend aufgefüllt, sodass der gesamte Block immer links und rechts mit dem Text abschließt.
+is available for sponsor logos.
+In the example, all logos are at the same height. This can be done with \verb+\height+ within the argument.
+The block always ends with the text on the sides. The space between the logos is automatically filled.
-Die zweite Variante ermöglicht die Platzierung mit manueller vertikaler Ausrichtung, wie es bei Logos mit unterschiedlicher Höhe notwendig sein könnte. Hierbei werden lediglich die Abstände und Trennlinien um die Logos ergänzt:
+The second variant can be particularly helpful for logos with different heights.
+It enables manual vertical alignment, where only the spacing and separating lines are added to the logos:
\begin{verbatim}
\sponsors{
- <logo1><logo2>
+<logo1><logo2>
}
\end{verbatim}
-Die Logos werden üblicherweise im unteren Teil der Titelseite platziert. Allerdings erlauben die Corporate Design Richtlinien auch, dass am Ende des Dokuments platziert werden.
-Um diese Unterscheidung zu ermöglichen stellt TUDaLeaflet die Option \verb+sponsor+ zur Verfügung. Sie akzeptiert die Werte \verb+title+, \verb+lastfoot+ oder \verb+manual+.
-\verb+title+ entspricht der Voreinstellung. Der Wert \verb+lastfoot+ platziert die Sponsoren mit einem \verb+\vfill+ auf der letzten Seite. \verb+manual+ ermöglicht es die Box manuell zu platzieren. Hierfür steht das Makro
+Usually the logos are at the bottom of the title page. However, the CI guidelines also offer the option to place them at the end of the document.
+
+TUDaLeaflet provides \verb+sponsor+ with the values \verb+title+, \verb+lastfoot+ or \verb+manual+.
+The default is \verb+title+.
+\verb+lastfoot+ places the sponsors on the last page. This is done with \verb+\vfill+.
+\verb+manual+ in turn allows the box to be placed manually.
+
\begin{verbatim}
\insertSponsors
\end{verbatim}
-zur Verfügung. Es fügt die Box an der entsprechenden Position ein. Allerdings nur, falls \verb+sponsor=manual+. Ist dies nicht der Fall, hat das Makro keine Wirkung.
+Is the corresponding macro for this and inserts the box at the appropriate position.
+But this only works if \verb+sponsor=manual+.
+Otherwise it has no effect.
\printbibliography
\end{document}
+%% End of file `DEMO-TUDaLeaflet.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.pdf
index f0393a9152d..e3b80bb45d5 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.tex
index 20a6dc4e9a2..59da2b04cdb 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaLetter.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaLetter-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaLetter.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,79 +31,80 @@
%%
% !TeX program = lualatex
%%
+
+% Enable PDF/A via pdfmanagement and no longer via pdfx
\DocumentMetadata{
pdfstandard=a-2b,
- lang=de,
- pdfversion=1.7,% 2.0 geht auch, aber die meisten Validierungsprogramme unterstützen das noch nicht.
+ pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+ lang=en,
}
-
\documentclass[
- german,
-% logo=false,%Schaltet das Logo für Folgeseiten ab
- accentcolor=9c,%Akzentfarbe nach Tabelle aus den Corporate Design Richtlinien
- premium=true,%Aktiviert die Färbung der Identitätsleiste
-% firstpagenumber=false,%Deaktiviert die Anzeige der Seitenzahl auf Seite 1
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
-% textwidth=narrow,% Verhindert die Anpassung der Textbreite nach der ersten Seite
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+% logo=false,% Disable logo for all pages but first
+ premium=true,% enable coloring
+% firstpagenumber=false,% disable pagenumbering on first page
+% textwidth=narrow,% disable change of text width after the first page
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
]{tudaletter}
-% Der folgende Block ist nur für die Kompatibilität mit pdfTeX Versionen vor April 2018 notwendig.
-\usepackage{iftex}
-\ifPDFTeX
-\usepackage[utf8]{inputenc}
-\fi
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
-\usepackage{babel}%Paket für Sprachanpassung
-\usepackage[autostyle]{csquotes}%Vereinfachte Handhabung von Anführungszeichen
-\LoadLetterOption{DEMO-TUDaFromaddress}%Laden der Datei DEMO-TUDaFromaddress.lco mit hinterlegten Adressdaten
+\LoadLetterOption{DEMO-TUDaFromaddress}% Load address data from lco-file
\begin{document}
+
\begin{letter}{%
- Technische Universität Darmstadt\\%
- Referat Kommunikation\\%
- Karolinenplatz 5\\%
- 64289 Darmstadt}
-
-\setkomavar{subject}{\LaTeX-Brieftemplate der TU Darmstadt}
-%\setkomavar{date}{20.02.2019}%Falls kein Datum angegeben, wird \today verwendet
-\setkomavar{yourmail}{dd.mm.yyyy}
+ Technische Universität Darmstadt\\%
+ Referat Kommunikation\\%
+ Karolinenplatz 5\\%
+ 64289 Darmstadt}
+
+\setkomavar{subject}{\LaTeX{} letters using TU Darmstadt CI}
+% \setkomavar{date}{2024-02-26}% In case \today should not be used
+\setkomavar{yourmail}{yyyy-mm-dd}
\setkomavar{myref}{Demo-xx}
\setkomavar{frombank}{IBAN: 1234 5678 9123 4567 89}
-\opening{Sehr geehrte Damen und Herren,}
-Dieses Template dient der Verwendungsdokumentation der tudaletter-Klasse.
+\opening{Hello,}
+this is a template file to show the usage of the tudaletter class.
-Die wichtigsten Optionen sind direkt im Quellcode zu dieser Datei hinterlegt und entsprechend kommentiert. Andere Optionen stellen nicht zwangsweise eine Konformität zu den Corporate Design Richtlinien dar. Layoutänderungen jeglicher Art sollten daher vermieden werden.
+The most important options can be found within the source file of this document.
+Other options or layout adjustments may not comply CI regulations and therefore should not be used.
-Zusätzliche Optionen sind im Folgenden aufgelistet:\\
+Supported options:\\
\parbox{\linewidth}{
-\begin{description}
- \item[premium=true/false] Aktiviert/deaktiviert farbige Hervorhebungen. Voreinstellung ist false.
- \item[firstpagenumber=true/false] Aktiviert/deaktiviert die Angabe der Seitenzahl auf der ersten Seite. Voreinstellung ist true.
- \item[raggedright=true/false] Brieftext linksbündig. Voreinstellung ist false. Dies entspricht Blocksatz.
- \item[logo=true/false] Logo auf Folgeseiten aktiviert/deaktiviert. Voreinstellung ist true.
- \item[texwidth=narrow/wide] Schaltet zwischen der Anpassung der Textbreite nach der ersten Seite um. Voreinstellung ist wide, da dies den Richtlinien entspricht. Die Textbreite der ersten Seite bestimmt auch die Breite der Betreffzeile.
-\end{description}
+ \begin{description}
+ \item[premium=true/false] Enable coloring of the headline. Disabled by default.
+ \item[firstpagenumber=true/false] Disable pagenumbering for the first page. Enabled by default.
+ \item[raggedright=true/false] Set all text ragged right. Default setting is false and uses justified text.
+ \item[logo=true/false] Disable logo in the headline for all pages but first one.
+ \item[texwidth=narrow/wide] The design requires the text width to change between the first page and the rest of the letter.
+ \item[texwidth=narrow/wide] This setting is corresponds to the value “wide”.
+ I case this change happens within a paragraph the mechanism to do this adjustment is quite complex and might not work in all cases.
+ If you face any other special case it would be great to receive a report, so we can try to improve the used methods.
+ \end{description}
}
-Für Wiederverwendung der Absenderadresse wurde die Datei \enquote{DEMO"=TUDaFromaddress.lco} angelegt. Sie wird, wie bei \KOMAScript{} üblich, über
-\verb+\LoadLett+\babelhyphen{empty}\verb+erOption+ geladen. Sämtliche dort gesetzten Werte können innerhalb der Briefdatei überschrieben werden.
-
-Die Adressdatei wird üblicherweise lokal im System installiert, um sie nicht immer mit allen anderen Dateien kopieren zu müssen. Falls Sie dies durchführen möchten, findet sich eine entsprechende Erklärung am Ende der DEMO"=TUDaFromaddress.lco"=Datei.
+To reuse the sender's address the template provides an example lco-file.
+See the \KOMAScript{} documentation on details about these files and how to use them.
-Eine Besonderheit der Klasse tudaletter stellt der Unterschied in der Zeilenlänge zwischen der ersten und den folgenden Seiten dar. Da \LaTeX{} grundsätzlich keine Änderung der Zeilenlänge innerhalb eines Absatzes unterstützt, ist hier eine komplexe Implementierung nötig. In einigen speziellen Fällen kann dieser Mechanismus fehlschlagen. Eine Sammlung an Sonderfällen ist bereits implementiert. Sollten Sie jedoch auf weitere stoßen, werden wir uns um eine Erweiterung der Implementierung bemühen. Der Mechanismus kann bei Problemen auch durch \verb+textwidth=narrow+ abgechaltet oder Mithilfe eines manuellen Seitenumbruchs umgangen werden.
+\closing{Happy \TeX{}ing}
-Der einfachste Fall, um solche Schwierigkeiten zu beheben, ist in diesem Beispiel mithilfe des Befehls parbox bei der Auflistung gezeigt.
-
-\closing{Herzliche Grüße}
-
-\encl{Quelldateien zu diesem Dokument:\\
- \texttt{DEMO-TUDaLetter.tex} (Brieftext),\\
- \texttt{TUDa\_Demo.lco} (Adressdaten)}
+\encl{Sources for this document:\\
+ \texttt{DEMO-TUDaLetter.tex} (Letter),\\
+ \texttt{DEMO-TUDaFromaddress.lco} (Address data)}
\end{letter}
+
\end{document}
+%% End of file `DEMO-TUDaLetter.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.pdf
index e58bb389eb8..ecfea5179b0 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.tex
index 6b14bfda0d1..e79db834a65 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPhD.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaPhD-de.tex' version 3.41 (2024-07-02)
+%% This is file `DEMO-TUDaPhD.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,393 +31,121 @@
%%
% !TeX program = lualatex
%%
-% PDF/A über pdfmanagement und nicht über pdfx
+
+% Enable PDF/A via pdfmanagement and no longer via pdfx
\DocumentMetadata{
pdfstandard=a-2b,
- lang=de,
- pdfversion=1.7,% 2.0 geht auch, aber die meisten Validierungsprogramme unterstützen das noch nicht.
+ pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+ lang=en,
}
\documentclass[
- german,% Hauptsprache als globale Option, früher war german notwendig
- ruledheaders=chapter,% Ebene bis zu der die Überschriften mit Linien abgetrennt werden, vgl. DEMO-TUDaPub
- class=book,% Basisdokumentenklasse. Wählt die korrespondierende KOMA-Script Klasse
- thesis={% Dokumententyp PhD Thesis, für kleinere Abschlussarbeiten, siehe DEMO-TUDaThesis-de.tex
- type=dr,
- dr=rernat
- },
- accentcolor=9c,% Auswahl der Akzentfarbe
- custommargins=true,% Ränder werden mithilfe von typearea automatisch berechnet
- marginpar=false,% Kopfzeile und Fußzeile erstrecken sich nicht über die Randnotizspalte
-% BCOR=5mm,% Bindekorrektur
- parskip=half-,% Absatzkennzeichnung durch Abstand vgl. KOMA-Script
- fontsize=11pt,% Basisschriftgröße laut Corporate Design ist mit 9pt häufig zu klein
-% logofile=example-image,% Falls die Logo Dateien nicht vorliegen
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+ ruledheaders=chapter,% Section levels above this one will follow the ruled layout, see DEMO-TUDaPub
+ class=book,% Choose the base document class. Will choose the matching KOMA-Script class
+ thesis={% PhD thesis. For smaller theses have a look at DEMO-TUDaThesis.tex
+ type=dr,
+ dr=rernat
+ },
+ fontsize=11pt,% Basic font size. CI default setting of 9pt is too small for theses
+ parskip=half-,% Use a parskip instead of indent, see KOMA-Script documentation
+ custommargins=true,% Calculate margins using typearea
+ marginpar=false,% Disable marginpar
+% BCOR=5mm,% Binding correction
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
]{tudapub}
+
%%%%%%%%%%%%%%%%%%%
-% Spracheinstellungen
+% Language setup
%%%%%%%%%%%%%%%%%%%
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}% Sprachabhängig Anführungszeichen mit \enquote
-
-% Falls mit pdflatex kompiliert wird, wird microtype automatisch geladen, in diesem Fall muss diese Zeile entfernt werden, und falls weiter Optionen hinzugefügt werden sollen, muss dies über
-% \PassOptionsToPackage{Optionen}{microtype}
-% vor \documentclass hinzugefügt werden.
+\usepackage[german,main=english]{babel}% german has to be loaded as the titlepage is always in German
\usepackage{microtype}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
%%%%%%%%%%%%%%%%%%%
-% Literaturverzeichnis
+% Bibliography
%%%%%%%%%%%%%%%%%%%
\usepackage{biblatex}
-\addbibresource{DEMO-TUDaBibliography.bib}% Dateiname der .bib-datei
-
-%%%%%%%%%%%%%%%%%%%
-% Paketvorschläge Tabellen
-%%%%%%%%%%%%%%%%%%%
-\usepackage{array}% Grundlegendes Ergänzungspaket für Tabellen. Wird von den folgenden Paketen indirekt geladen
-%\usepackage{tabularx}% Tabellen mit fester Breite und entsprechend umbrechenden Spalten
-%\usepackage{longtable}% Mehrseitige Tabellen
-%\usepackage{xltabular}% Mehrseitige Tabellen mit fester Breite
-%\usepackage{booktabs}% Verbesserte Möglichkeiten für Tabellenlayout über horizontale Linien
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
%%%%%%%%%%%%%%%%%%%
-% Paketvorschläge Mathematik/Formelsatz
+% Package suggestions for tables
%%%%%%%%%%%%%%%%%%%
-%\usepackage{mathtools}% Erweiterte Fassung von amsmath
-%\usepackage{amssymb}% Erweiterter Zeichensatz
-%\usepackage{siunitx}% Werte und Einheiten
+\usepackage{array}% Fundamental tools for tables. Is automatically loaded by the following packages
+%\usepackage{tabularx}% Tables with flexible columns to achieve fixed width
+%\usepackage{longtable}% Tables across multiple pages
+%\usepackage{xltabular}% Tables with fixed width spanning multiple pages
+%\usepackage{booktabs}% Improved layout for horizontal rules in tables
%%%%%%%%%%%%%%%%%%%
-% Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-%%%%%%%%%%%%%%%%%%%
-\let\file\texttt
-\let\code\texttt
-\let\tbs\textbackslash
-\let\pck\textsf
-\let\cls\textsf
-\biburlsetup
-
-\usepackage{tabularx,booktabs}%Tabellenpakete (siehe oben)
-\usepackage{pifont}% Zapf-Dingbats Symbole
-\newcommand*{\FeatureTrue}{\ding{52}}
-\newcommand*{\FeatureFalse}{\ding{56}}
+% Package suggestions math
%%%%%%%%%%%%%%%%%%%
-% Ende der Demo-Formatierungseinstellungen
-%%%%%%%%%%%%%%%%%%%
-\begin{document}
+%\usepackage{mathtools}% Extended version of amsmath
+%\usepackage{amssymb}% Additional symbols
+%\usepackage{siunitx}% Numbers and Units
+
+\hypersetup{% Metadata adjustments, in case these are not set, the data provided for \maketitle will be used
+ pdfauthor=Marei Peischl (peiTeX),
+ pdftitle=TUDaPhD – LaTeX-Dissertationstemplate im CD der TU Darmstadt (en),
+ pdfcreationdate=2024-05-03,
+ pdfkeywords={TU Darmstadt; Corporate Design; LaTeX}
+}
-\title{TUDaPhD -- \LaTeX-Dissertationstemplate im CD der TU Darmstadt}
-\subtitle{\LaTeX{} using TU Darmstadt's Corporate Design}
+\title{TUDaPhD -- \LaTeX-Dissertationstemplate im CD der TU Darmstadt (en)}
+\subtitle{\LaTeX{} im Corporate Design der TU Darmstadt}
\author{Marei Peischl}
-% \birthplace{Geburtsort}
-\reviewer{Reviewer 1 \and Reviewer 2 \and … }
-% Falls die Bezeichner entsprechend der Promotionsordnung angepasst werden sollen
-% \reviewer*[Erstreferent\_in,Korreferent\_in]{Gutachter 1 \and Gutachter 2}
+\reviewer{Reviewer 1 \and Reviewer 2 \and …}
+% For further customization
+%\reviewer*[Supervisor, Reviewer]{Supervisor 1 \and Reviewer 2}
-% \publishers{Darmstadt, Technische Universität Darmstadt}
-% Feld für die Ortsangabe oder einen Verlag. Dies ist nach Vorgabe der Universitätsbibiliothek mit „Darmstadt, Technische Universität Darmstadt“ vorbelegt.
+%\publishers{Darmstadt, Technische Universität Darmstadt}
+% For location or publisher. It is predefined as “Darmstadt, Technische Universität Darmstadt” as required by the library.
-% Sofern keine passende Option verfügbar ist:
-% \drtext{}
+% If the default setting does not match your intention, it's possible to overwrite block below the title:
+%\drtext{}
-% Diese Felder werden untereinander auf der Titelseite platziert.
-% \department ist eine notwendige Angabe, siehe auch dem Abschnitt `Abweichung von den Vorgaben für die Titelseite'
-\department{phys}% Das Kürzel wird automatisch ersetzt sofern der Fachbereich vordefiniert ist.
-\institute{Institut}
-\group{Arbeitsgruppe}
+% The following elements will be placed on the title page
+\department{phys}% If defined the shorthand will be replaced by the full name otherwhise it's used directly.
+\institute{Institute}
+\group{Group}
\submissiondate{\today}
\examdate{\today}
-%\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}% Lizenzdaten für TUprints
+%\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}% License information for TUprints
+
+\dedication{To simplify your work with \TeX{} \& Friends.}
+
+\begin{document}
+
+\frontmatter
-\dedication{Für alle, die \TeX{} nutzen.}
\maketitle
-\affidavit% Selbstständigkeitserklärung
+
+\affidavit% Please ensure you use the correct version.
\begin{abstract}
- Zusammenfassung in der Hauptsprache des Dokuments (hier Deutsch)
+ Abstract using the document main languge (here English)
\end{abstract}
-\begin{abstract}[english]
- Abstract in another loaded language (here English), in case it's required.
+\begin{abstract}[german]
+ Weitere Zusammenfassung in einer anderen Sprache (hier Deutsch), sofern benötigt.
\end{abstract}
\tableofcontents
-% Ggf. weitere Verzeichnisse wie \listoffigures oder ein Abkürzungsverzeichnis
+% Additional lists like \listoffigures or acronyms might be added here
\mainmatter
+\addchap{About this file}
-\addchap{Über diese Datei}
-Die Datei \file{DEMO-TUDaPhD.tex} beziehungsweise ihre Ausgabe \file{DEMO-TUDaPhD.pdf} ist ein Template für Abschlussarbeiten im Stil des Corporate Designs der TU Darmstadt.
-Sie ist Teil des TUDa-CI-Bundle und wurde in Teilen durch das tuddesign-Paket von C.~v.~Loewenich und J.~Werner inspiriert.
-
-
-
-\chapter{Verwendung}
-Die Klasse kann wie für Dokumentenklassen üblich eingebunden werden
-\begin{verbatim}
-\documentclass[thesis]{tudapub}
-\end{verbatim}
-Die Option \code{thesis} wechselt hierbei in den Modus, der spezielle Features für Abschlussarbeiten freischaltet, die in diesem Dokument beschrieben werden.
-
-Darüber hinaus lässt sich die Klasse verwenden wie die Standard-KOMA-Script-Klasse, auf der sie basiert.
-Voreingestellt ist hierbei \code{scrreprt}, dieses Dokument verwendet jedoch \code{class=scrboook}.
-
-Allgemein bietet \KOMAScript{} viele Möglichkeiten zu Anpassungen. Wie in der tudapub-Demo-Datei beschrieben, können hier jedoch nicht alle erläutert werden, ein Blick in die offizielle Dokumentation ist daher häufig hilfreich \cite{scrguide}.
-
-\section{Sprachanpassung}
-Der Modus für Abschlussarbeiten setzt einige sprachabhängige Bezeichnungen.
-Teilweise ist Deutsch für diese Elemente als Hauptsprache vorgeschrieben (z.\,B. die Selbstständigkeitserklärung). Für die korrekte Verarbeitung wird daher ein Paket zur Sprachanpassung benötigt.
-TUDa-CI verwendet hierfür das babel-Paket.
-
-Dies wird jedoch nicht automatisch geladen, da hierfür die Konfiguration der Sprachen bekannt sein müsste. Die Demo-Dateien für Abschlussarbeiten (\file{DEMO-TUDaThesis.tex}/""\file{DEMO-TUDaPhD.tex}) laden hierfür die Konfiguration:
-\begin{verbatim}
- \usepackage[english, main=german]{babel}
-\end{verbatim}
-Diese ist für ein Dokument mit Deutsch als Hauptsprache und Englischen Elementen.
-Die Hauptsprache wird als Wert der Option \verb+main=+ übergeben.
-Das Laden von \verb+german+ wird in den Fällen, in denen es von TUDa-CI benötigt wird, automatisch ausgelöst.
-Für eine bessere Übersichtlichkeit ist es dennoch hilfreich es dort aufzuführen.
-
-Falls die Hauptsprache nicht Deutsch ist, wäre daher die folgende Konfiguration sinnvoll:
-\begin{verbatim}
- \usepackage[german, main=<Hauptsprache>]{babel}
-\end{verbatim}
-
-\section{Übergabe der Titeldaten}
-
-Die Daten werden analog zur klassischen Titeleierzeugung mit \verb+\maketitle+ übergeben. Allerdings wurden die Felder um ein paar speziellere Daten erweitert. Sofern nicht anders angegeben, verfügen alle Makros über ein notwendiges Argument für die Datenübergabe, z.\,B.
-\begin{verbatim}
- \title{\LaTeX{} im Corporate Design der TU Darmstadt}
-\end{verbatim}
-Es ist zu beachten, dass für die Erzeugung der Titelseite nach Übergabe aller Daten \verb+\maketitle+ aufgerufen werden muss.
-
-Falls eine Layoutanpassung der Titelseite notwendig ist, gelten die in der TUDaPub-Dokumentation geschilderten Optionen. Dort finden sich auch Hinweise zur Platzierung von Sponsorenlogos. \cite{tudapub}
-
-\begin{description}\setkomafont{descriptionlabel}{\ttfamily\textbackslash}
- \item[title] Titel, wird in sehr großer Schrift im obersten Block der Titelseite platziert. Die Schriftgröße ist aufgrund der Häufigkeit für lange Titel kleiner gewählt als für andere Publikationen.
- \item[subtitle] Untertitel. Dieses Feld kann alternativ für eine Übersetzung genutzt werden.
- \item[author] Der Autor/dir Autoren. Mehere Autoren werden durch \verb+\and+ getrennt.
- \item[studentID] Matrikelnummer. Nach den Vorgaben des Templates ist diese Angabe immer optional.
- \item[birthplace] Geburtsort. Angabe ist bei Dissertationen notwendig.
- \item[reviewer] Gutachter. Mehrere Gutachter werden, wie Autoren durch \verb+\and+ getrennt. Die Nummerierung läuft von links nach rechts.
- \minisec{Änderung des Bezeichners}
- Die Änderung des Bezeichners ist über ein optionales Argument möglich:
-\begin{verbatim}
- \reviewer[Ersatzbezeichner]{Name1 \and Name2}
-\end{verbatim}
- Um die numerische Benennung abzuändern ist es zusätzlich möglich statt dem Ersatzbezeichner eine Kommaliste zu übergeben:
-\begin{verbatim}
- \reviewer*[Bezeichner1, Bezeichner2]{Name1 \and Name2}
-\end{verbatim}
- In diesem Fall entfällt die Nummerierung vor dem Bezeichner. Soll z.\,B. den Formulierungen der Promotionsordnung entsprochen werden, gilt:
-\begin{verbatim}
- \reviewer[Erstreferent\_in,Koreferent\_in]{Name1 \and Name2}
-\end{verbatim}
- Für die Erstellung Fachbereichsspezifischer Templates existiert hierfür auch ein Makro, dass ohne den Aufruf von \verb+\reviewer+ Änderungen zulässt.
-\begin{verbatim}
- \setupReviewName{Ersatzwort für „Gutachten“}
-\end{verbatim}
- Setzt die ersten beiden Bezeichner. Alternativ ist es auch möglich Positionen einzeln zu benennen \verb+\setupReviewName[1]{Erstferent}+, eine Übergabe als Komma-Liste ist als \verb+\setupReviewName*{Bezeicher1,Bezeicher2}+ möglich.
-
- Ab Version 3.26 werden die Gutachter nicht mehr auf der Titelrückseite genannt. Dies wird über die \verb+thesis+ Option \verb+reviewer-on-uppertitleback+ gesteuert. Voreingestellt ist der Wert \verb+false+.
- \item[institution] Einrichtung. Dieser Eintrag, wie auch die beiden folgenden, werden unterhalb des Logos auf der Titelseite platziert.
- \item[department] Fach-/Studienbereich, allerdings ist die oben genannte Option zu bevorzugen. Die Verarbeitung des Arguments erfolgt jedoch analog.
-
- Dieses Makro verfügt jedoch zusätzlich über die Möglichkeit abweichende Einträge gegenüber den Vorgaben anzugeben. Insbesondere wenn eine gesonderte Formulierung gegenüber der voreingestellten \enquote{im Fachbereich} und ihren Varianten notwendig ist. Hierfür liefert \code{\textbackslash{}department} ein optionales Argument:
-
-\begin{verbatim}
- \department[Ersatztext]{Kürzel/Bezeichnung}
-\end{verbatim}
- Zusätzlich gibt es ab Version 2.01 auch die Möglichkeit den gesamten Text \enquote{im Fachbereich <Bereichsbezeichnung>}, sowie die Angabe in der Infobox auf der Titelseite zu ersetzen. Dies geschieht über die gesternte Variante:
-\begin{verbatim}
- \department*[Text für die Box]{Text zwischen Typ und Autor}
-\end{verbatim}
- \item[group] Arbeitsgruppe.
- \item[submissiondate] Datum der Einreichung
- \item[examdate] Datum der Disputation
- \item[date] Beliebiges Datum. Wird über \verb|datename| bezeichnet.
- \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt, Technische Universität Darmstadt} (bei Dissertationen) vorbelegt.
- \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das Dokument über TUprints Veröffentlicht werden soll.
-\begin{verbatim}
- \tuprints{
- urn=12345,
- printid=123456,
- year=2022
- }
-\end{verbatim}
- Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben.
-
- \minisec{Lizenzangabe}
- Ab Version 2.07 ist es zudem möglich einen eigenen Lizenztext über den Schlüssel \verb|license=<Text>| zu übergeben. Dieser ersetzt dann die voreingestellte Lizenzangabe.
-
- Es existieren (seit v3.08) vorgefertigte Werte für die Option \verb|license|, um eine einfachere Anpassung zu ermöglichen. Diese lauten:
-
- \parbox[t]{.5\linewidth}{%
- \ttfamily
- \href{https://creativecommons.org/licenses/by-nc-nd/2.0/}{cc-by-nc-nd-2.0-de} \textnormal{(noch aktuelle Voreinstellung)}\par
- \href{https://creativecommons.org/licenses/by/4.0/}{cc-by-4.0}\par
- \href{https://creativecommons.org/licenses/by-sa/4.0/}{cc-by-sa-4.0}\par
- \href{https://creativecommons.org/licenses/by-nc-sa/4.0/}{cc-by-nc-sa-4.0}\par
- }%
- \parbox[t]{.5\linewidth}{
- \ttfamily
- \href{https://creativecommons.org/licenses/by-nc-/4.0/}{cc-by-nc-4.0}\par
- \href{https://creativecommons.org/licenses/by-nd/4.0/}{cc-by-nd-4.0}\par
- \href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{cc-by-nc-nd-4.0}\par
- \href{https://rightsstatements.org/page/InC/1.0/}{inc-1.0}\textnormal{ (Ab Version 3.36)}
- }
-
- Dies ist Bestandteil der Vorbereitung zur Anpassung der Standardlizenz, welche durch die Universitätsbibliothek angepasst wurde.
- Die entsprechende Diskussion findet sich unter \url{https://github.com/tudace/tuda_latex_templates/issues/251} und eine Anpassung der Voreinstellung bei TUDa-CI ist für Version 4.0 vorgesehen.
-
- Unterstützung bei der Wahl einer passenden Creative Commons Lizenz bietet die ULB der TUDa unter https://www.ulb.tu-darmstadt.de/dpub oder das CC-Projekt sebst über seinen Lizenzfinder unter \url{http://creativecommons.org/choose/}.
- Die TU Darmstadt empfiehlt in Ihrer Publikationsrichtlinie und Open-Access-Policy die Nutzung der offenen CC BY 4.0 Lizenz.
-
- Falls ein von den oben gelisteten Schlüsseln abweichender Wert gesetzt wird, wird ebendieser direkt an der Stelle des Lizenztextes verwendet. Sofern der Text Gleichheitszeichen oder Kommata enthält ist eine Gruppierung notwendig.
- \item[titlegraphic] Hier kann Code übergeben werden, der den farbigen Block im unteren Teil der Titelseite ersetzt. Details sind in der allgemeinen TUDaPub-Dokumentation beschrieben \cite{tudapub}
- \item[titleintro] Ab Version 2.03 kann zusätzlich über diesen Hook ein beliebiger Text direkt nach dem Untertitel und vor den automatischen Daten ergänzt werden.
- \item[titleaddendum] Wie \code{\tbs{}titleintro} jedoch als letztes Element des Blocks.
-\end{description}
-
-\section{Weitere Macros}
-Das Makro \verb+\affidavit+ erzeugt eine Selbstständigkeitserklärung mit Unterschriftenzeile. Hier wird der oben übergebene Name/Signatur eingefügt.
-In diesem Dokument findet sich das Affidavit direkt nach der Titelei.
-
-Ab Version 3.32 entfällt die seit Version 3.06 unterstütze Unterscheidung zwischen einem Affidavit für digitale oder gedruckte Abgaben. Aus Kompatibilitätsgründen werden die Optionen weiterhin verstanden, allerdings bewirken Sie nun beide das gleiche. Der Text entstammt von \url{https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp} (Stand 2023-06-19).
-
-Dissertationen verwenden hier einen anderen Text, für die Unterscheidung wird die Affidavit-Option \verb+affidavit=dr+ intern verwendet.
-
-Version 3.20 ermöglicht zusätzlich die Übergabe weiterer Optionen für den Signatur-Namen, ein Signatur-Bild oder die Ortsangabe.
-Inwieweit diese Optionen verwendet werden dürfen ist jeweils vor der Verwendung durch die Nutzer:in abzuklären.
-TUDa-CI kann hierfür keine gesicherte Aussage treffen.
-\begin{verbatim}
- \affidavit[signature=Signaturname,signature-image={\includegraphics[width=\width]{signaturbild}}]
-\end{verbatim}
-Eine vertikale Verschiebung des Signaturbildes ist nicht direkt implementiert, ist jedoch mit der Verwendung des \LaTeX-Makros \verb+\raisebox{<Verschiebung>}{<Inhalt>}+ problemlos möglich.
-
-Es besteht zusätzlich die Möglichkeit ein anderssprachiges Affidavit als Ergänzung mit abzudrucken. Um die Struktur und die ggf. notwendige Sprachumschaltung zu erledigen, existiert hierfür ab Version 2.03 eine Umgebung:
-
-\begin{verbatim}
- \begin{affidavit*}[Babel-Sprachoption]{Überschrift}
- Text
- \end{affidavit*}
-\end{verbatim}
-
-Diese Variante verfügt bewusst über keine Unterschriftenzeile, da diese Version laut Verständnis der Entwickler keine rechtliche Verbindlichkeit besitzt.
-
-Die Umgebung kann jedoch auch für besondere Formen der Erklärung genutzt werden. In diesem Fall kann eine zusätzliche Signaturzeile über
-\begin{verbatim}
- \AffidavitSignature[Stadt]
-\end{verbatim}
-hinzugefügt werden. Die Vorbelegung für Stadt ist hierbei \enquote{Darmstadt}.
-Ab Version 3.20 ist die Übergabe einer zusätzlichen Option für den Ort der Signatur auch als Option möglich.
-
-\begin{verbatim}
- \affidavit[signature-location=Stadt]
-\end{verbatim}
-
-\section{Layout-Optionen mit Verstoß gegen das Corporate Design}
-
-Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang.
-Daher existiert die Klassenoption \code{custommargins}, die für dieses Dokument aktiviert wurde (Wert \code{true}). Sie verfügt über die Werte \code{true}, \code{false} und \code{geometry} mit folgender Bedeutung:
-
-\begin{description}
- \item[custommargins=false] Standardeinstellung von \cls{tudapub}. Die Ränder entsprechen den Vorgaben des Corporate Design Guidelines. Die Einstellung wird durch \pck{geometry} durchgeführt. Eigene Anpassungen werden durch das Ausführen von \code{\textbackslash{}maketitle} überschrieben.
- \item[custommargins=true] Die Einstellungen des Corporate Design Guidelines werden nicht aktiviert. \pck{geometry} wird nicht geladen. Dieser Modus entspricht der Standardeinstellung von \KOMAScript{}. Dadurch werden die Ränder nicht fest definiert, sondern auf Basis des \pck{typearea}-Paketes berechnet \cite[vgl.][]{scrguide}.
- \item[custommargins=geometry] Diese Variante wurde auf Wunsch zur Verfügung gestellt, allerdings wird darauf hingewiesen, dass manuelle Randeinstellungen oft nicht zu einem harmonischen Satzspiegel führt.
- \pck{geometry} wird, wie bei \code{false} geladen und vorkonfiguriert. Es ist allerdings möglich kleinere Anpassung durch die Verwendung des Makros \code{\textbackslash{}geometry} zu setzen. Die Einstellungen, die zu Beginn des Dokuments gelten werden gespeichert und nach der Titelseite wiederhergestellt.
-
- Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen:
-\begin{verbatim}
- \geometry{
- reset,
- <Eigene Anpassungen>
- }
-\end{verbatim}
- Die gilt insbesondere für die Optionen \code{includehead}, \code{includefoot} und \code{includemp}.
-\end{description}
-
-\minisec{Hinweis zu den Kopf-/Fußzeilen}
-Wenn die Option \code{marginpar=true} gesetzt bleibt, ragen die Kopf- und Fußzeile über die Marginalspalte hinaus. Aus ästhetischen Gründen wird daher empfohlen in diesem Fall die Kopf- und Fußzeile mit \code{marginpar=false} auf den Textbereich zu beschränken.
-
-Auch ist das Standard-Layout der Kolumnentitel wenig vorteilhaft, da die Kolumnentitel damit local größer sein können als die eigentliche Überschrift. (\code{headline=automark})
-Deswegen kann über
-\begin{verbatim}
- \pagestyle{TUDa.headings}
-\end{verbatim}
-ein einfacherer Seitenstil ausgewählt werden, der die Nutzung mit lebenden Kolumnentitel erheblich vereinfacht. Dieser Stil ist über \pck{scrlayer-scrpage} realisiert und kann entsprechend der \KOMAScript{}-Dokumentation angepasst werden.
-
-\minisec{Hinweis zur Bindekorrektur}
-Bei Verwendung einer Bindekorrektur (\code{BCOR=<Länge>}) wird diese nicht automatisch auch auf der Titelseite eingefügt. Für diesen Fall wurde mit Version 3.0 zusätzlich die Option \code{BCORtitlepage} hinzugefügt. Falls diese aktiviert wird, nimmt die Titelseite den Wert der Typearea Option \code{BCOR} auf der ersten Seite als Zusatz zum linken Rand hinzu.
-
-\section{Spezielle Optionen für Abschlussarbeiten}
-Die Klasse unterstützt alle Optionen der \file{tudapub}-Klasse. Darüber hinaus besteht über Wertzuweisung der Option \code{thesis} die Möglichkeit spezielle Einstellungen zu wählen.
-Es ist prinzipiell möglich die Optionen auch direkt als Optionen zur \file{tudapub}-Klasse zu übergeben, allerdings ist dies aufgrund der schlechteren Übersicht nicht zu empfehlen.
-
-Für dieses Dokument wurden beispielsweise die Optionen als
-\begin{verbatim}
-thesis={type=dr,dr=rernat}
-\end{verbatim}
-übergeben.
-
-Im folgenden findet sich die Bedeutung der einzelnen Optionen:
-\begin{description}
- \item[type=<Wert>] Auswahl des Typus. Dieser wird auf die Titelseite gesetzt und wählt zudem aus welche Daten für die Titelseite zwingend übergeben werden müssen.
- Es stehen die folgenden Werte zur Verfügung (die Werte in Klammern sind die notwendigen Titeldaten):
- \begin{itemize}
- \item \code{sta}: Studienarbeit (title, author, date)
- \item \code{diplom}: Diplomarbeit (title, author, submissiondate, reviewer, department)
- \item \code{bachelor}: Bachelorarbeit (title, author, submissiondate, department, reviewer)
- \item \code{master}: Masterarbeit (title, author, submissiondate, department, reviewer)
- \item \code{pp}: Project-Proposal (title, author, date, department)
- \item \code{dr}: vorgelegte Dissertation (title, author, submissiondate , birthplace, department, reviewer)
- \item \code{drfinal}: genehmigte Dissertation (title, author, submissiondate,examdate, birthplace, department, reviewer)
- \end{itemize}
- Wird ein Typus angegeben, der nicht erkannt wird, so wird der Text direkt übergeben. Notwendige Titelfelder über den Titel hinaus gibt es in diesem Fall nicht.
- \item[dr=<Kürzel>] Lädt einen der vordefinierten Texte für die Titelseite. Als Werte stehen bislang \code{rernat}, \code{rerpol}, \code{ing} und \code{phil} zur Verfügung. Zum Beispiel lädt der Wert \code{phil}:
- \begin{quote}
- Zur Erlangung des Grades eines Doktor der Philosophie (Dr.\,phil.)
- \end{quote}
- Sofern keiner dieser Werte dem angestrebten Titel entspricht, kann ein Text direkt übergeben werden.
-\begin{verbatim}
- \drtext{Zur Erlangung des Grades \ldots}
-\end{verbatim}
- \item[department=<Kürzel>] Die Fachbereiche sind fest als Textbausteine in Deutscher sowie Englischer Sprache hinterlegt. Diese Option ermöglicht die Auswahl als Dokumentenklassenoption. Aus Kompatibilitätsgründen kann jedoch auch das Makro \code{department}-Makro hierfür genutzt werden. Zur Verfügung stehen:\par
- \begin{tabular}{@{}l@{${}\to{}$}l@{}}
- arch & Architektur\\
- bauing& Bau- und Umweltingenieurwissenschaften\\
- bio &Biologie\\
- chem &Chemie\\
- etit &Elektrotechnik und Informationstechnik\\
- gugw &Gesellschafts- und Geschichtswissenschaften\\
- humanw&Humanwissenschaften\\
- inf &Informatik\\
- mb &Maschinenbau\\
- matgeo&Material- und Geowissenschaften\\
- math &Mathematik\\
- phys &Physik\\
- wi &Rechts- und Wirtschaftswissenschaften
- \end{tabular}
-
- Neben den Fachbereichen existieren für Abschlussarbeiten, die keine Dissertationen sind auch Studienbereiche, siehe DEMO-TUDaThesis.
- Falls etwas anderes als eines dieser Kürzel übergeben wird, wird der Text direkt verwendet und eine entsprechende Warnung ausgegeben.
-
- Die Auswahl der Fachrichtung erzeugt zusätzlich eine Box auf der Titelseite unterhalb des Logos. Falls diese automatische Erstellung nicht gewünscht ist, kann dies über die Option \code{instbox=false} deaktiviert werden.
- \item[ignore-missing-data] Diese Option ist ein Schalter, der es ermöglicht die Fehlermeldung über nicht übergebene Titeldaten auszuschalten. In diesem Fall wird lediglich eine Warnung erzeugt, falls die angegeben Daten nicht mit den Anforderungen übereinstimmen.
-\end{description}
-
-\minisec{Abweichung von den Vorgaben für die Titelseite}
-Da es möglich sein kann von dieser Vorgabe abzuweichen, existiert für Sonderfälle die Dokumentenklassenoption \code{instbox=false}. Damit wird die automatische Verarbeitung der Daten für die Boxen auf der der Titelseite unterdrückt. In diesem Fall ist der Autor jedoch selbst für die Einhaltung der Vorschriften verantwortlich. Weitere Information zur Konstruktion der Boxen findet sich in den Verwendungshinweisen der Basisklasse TUDaPub. Zusätzlich sei auf die Möglichkeiten des \code{\textbackslash{}department}-Makros verwiesen, sofern die Abweichung sich auf den Text beschränkt.
-
-\section{Erhöhter Zeilenabstand -- Hinweise zum setspace-Paket}
-Sofern die Vorgaben es erfordern, ist es möglich mit dem setspace-Paket den Durchschuss zu erhöhen. Allerdings beeinflusst dies natürlich sämtliche Zeilenabstände. Ein erhöhter Zeilenabstand sollte daher erst nach der Titelseite aktiviert werden. Allgemein ist es jedoch empfehlenswert auch für Verzeichnisse und sonstige Sonderelemente außerhalb des Fließtextes auf bei normalen Einstellungen zu bleiben.
+\enquote{DEMO-TUDaPhD.tex} is a basic template for PhD theses using the Corporate Design of TU Darmstadt.
+It is part of TUDa-CI, which is the official template bundle of TU Darmstadt. The original version was inspired by the \enquote{tuddesign} bundle by C.~v.~Loewenich and J.~Werner.
-Setspace liefert hierfür die Möglichkeit, das Paket ohne Optionen zu laden und später über Makros, wie \code{\tbs{}onehalfspacing} das Umschalten zu verzögern. Alternativ kann auch durch die Umgebungen, wie \code{singlespace} lokal wieder zum Normalzustand gewechselt werden, sofern dies erforderlich ist.
\printbibliography
\end{document}
-%% End of file `DEMO-TUDaPhD-de.tex'.
+%% End of file `DEMO-TUDaPhD.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.pdf
index 46617bca7d2..b70a4e81021 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.tex
index 33a78fd1f3a..b39218be991 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPoster.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaPoster-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaPoster.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -33,76 +33,86 @@
%%
\documentclass[
- paper=a0,
- german,
- accentcolor=9c,
- logo=body,% Logo unterhalb der Identitätsleise
+ english,% Main language as global option
+ paper=a0,% The default paper format is a0
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+ logo=body,% Place logo below identity bar
footer=true,
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
- ]{tudaposter}
-
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}
-
-
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudaposter}
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
\let\tbs\textbackslash
-
\usepackage{multicol}
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
\begin{document}
-\title{\LaTeX{} im Corporate Design der TU~Darmstadt}
-\subtitle{Die Dokumentenklasse tudaposter}
+\title{\LaTeX{} using TU Darmstadt's Corporate Design}
+\subtitle{The document class tudaposter}
\author{Marei Peischl\thanks{pei\TeX{} \TeX{}nical Solutions}\and der \TeX-Löwe}
\titlegraphic{\color{red!20}\rule{\contentwidth}{.3\contentheight}}
-\addTitleBox{test}
-\addTitleBox{jaodsijf}
+\addTitleBox{titlebox}
+\addTitleBox{titlebox 2}
\footerqrcode{https://peitex.de}
-\footer{Inhalt der Fußzeile}%Falls aktiviert
-
+\footer{Footer content}% If activated
\maketitle
-\section*{Grundlengende Informationen}
-Die Dokumentenklasse tudaposter dient der Erstellung von Aushängen und nicht-wissenschaftlichen-Plakaten im Stil der TU-Darmstadt. Sie ist Teil des TUDa-CI-Bundles.
-
-\begin{multicols}{2}
-\subsection*{Verwendung}
-Im wesentlichen entspricht Ihre Verwendung der Klasse tudapub, da die Titel ähnlich aufgebaut sind. Unterhalb des Titels, kann der Anwender normalen Fließtext schreiben oder wie bei Standard-\LaTeX{} formatieren.
-
-Die tudaposter-Klasse basiert wie auch tudapub auf \KOMAScript{} und bietet daher mehr Mechanismen als für Poster grunsätzlich notwendig sind.
-
-Im Unterschied zur tudasciposter-Klasse, die auf tikzposter basiert, ermöglicht tudaposter es wie gewohnt Fließtext zu schreiben, um ergänzende Informationen einfach zu platzieren.
-
-\subsection*{Titelei}
-Die Titelerzeugung funktioniert wie bei Standard-\LaTeX{} über den maketitle-Mechanismus. Neben der Makros title, subtitle und author stehen noch
-titlegraphic, addTitleBox, footerqrcode und footer zur Verfügung. Bis auf footerqrcode wird lediglich der Inhalt entsprechend platziert. Ein Beispiel für die Verwendung ist der Datei DEMO-TUDaPoster.tex gezeigt.
-
-\subsection*{Längenangaben}
-Innerhalb des Posterinhaltes (Dazu zählt auch die titlegraphic) sind zwei Längenmaße vordefiniert.
-\texttt{\textbackslash{}contentwidth} und \texttt{\textbackslash{}contentheight}. Die Höhe entspricht dabei dem Abstand zwischen Titelblock und Fußzeile/Trennlinie.
+\section*{General information}
-\subsection*{Dokumentenklassenoptionen}
-\begin{description}
- \item[paper=<Papierformat>] Papierformat. Voreingestellt ist a0. Unterstützt werden Formate von A0 bis A4.
- \item[fontsize=<Schriftgröße/auto>] Basischriftgröße. Die anderen Größen werden entsprechend skaliert. Für die unterstützte Papierformate sind entsprechende Skalierungsschritte hinterlegt, diese Voreinstellung entspricht dem Wert auto.
- \item[logo=head/body] Das Logo wird in der Idenditätsleiste (head) oder innerhalb des Dokumenteninhalts, ggf. überlappend mit dem Bild gesetzt.
- \item[color=<Farbkürzel>] Akzentfarbe nach den Corporate Design Richtlinien.
- \item[colorsubtitle=true/false] Hintergrundfarbe beim Untertitel an-/ausschalten.
- \item[footer=true/false] Aktivierung/Deaktivierung der Fußzeile. Voreinstellung ist false.
- \item[marginpar=true/false] Ermöglicht die Nutzung einer Randnotizspalte . Diese hat die Breite des Logos. Sie wird entweder über das Makro \code{\tbs{}SetMarginpar} oder über das Standard-Makro \code{\tbs{}marginpar} befüllt. Eine Verwendung dieses Modus ist in der zusätzlichen Demo-Datei \file{DEMO-TUDaAnnouncement} gezeigt.
+The document class tudaposter is part of the TUDa-CI bundle. It is for posters and non-scientific posters using TU Darmstadts Corporate Design.
- Die Randnotizspalte überlappt die Abbildung, die zum Titel gehört. Kombinationen von \code{marginpar=true} und \code{\tbs{}titlegraphic} sollten daher nur mit Vorsicht genuzt werden.
-
- \item[title=large/small/default] Ermöglicht es die Schriftgrößen um eine Stufe zu verkleinern. Die Option \code{large} entspricht hierbei der Option \code{default}. Im Fall des Wertes \code{small} werden die Titelschriftgrößen des nächsten kleineren Papierformates verwendet. Die Basischriftgröße und die Randeinstellungen bleiben davon unberührt.
- \item[type=default/announcement] Diese Option liefert die Möglichkeit bestimmte Posterlayouts über einen Einzigen Wert zu laden.
- Der Wert \code{announcement} setzt die folgenden Optionen: \code{marginpar=true, indenttext=false, logo=head, title=small,colorsubtitle=true} und aktiviert zusätzlich die Ausgabe des Untertitels in fetter Schrift.
-\end{description}
+\begin{multicols}{2}
+ \subsection*{Usage}
+ Basic usage is nearly identical to tudapub, as the titles are structured similarly.
+ Like tudapub, the tudaposter class is based on \KOMAScript{}.
+ This has the advantage that more can be used than would be necessary for a poster.
+
+ tudaposter makes it possible to write continuous text.
+ The tudasciposter class, which is based on tikzposter, cannot do this.
+
+ \subsection*{Title}
+ The title can be set with \code{\maketitle}.
+ The macros \code{\title}, \code{\subtitle} and \code{\author} can be used here but also available are \code{\titlegraphic}, \code{\addTitleBox}, \code{\footerqrcode} and \code{\footer}. Except for \code{\footerqrcode} only the content is placed accordingly.
+ An example of usage is shown in DEMO-TUDaPoster.tex.
+
+ \subsection*{Specify lengths}
+ Two length dimensions \texttt{\textbackslash{}contentwidth} and \texttt{\textbackslash{}contentheight} are predefined within the poster content (this also includes the title graphic).
+ The height here is the distance between the title block and the footer/divider line.
+
+ \subsection*{Document class options}
+ \begin{description}
+ \item[paper=<papersize>] Formats from A0 to A4 are supported. Default is a0.
+ \item[fontsize=<fontsize/auto>] The base font size is defined here, so that the other sizes then scale accordingly. The default setting is \code{auto}. It is for scaling increments on supported paper sizes.
+ \item[logo=head/body] The logo will appear in the header or within the document content.
+ \item[color=<colorcode>] Accent color according to corporate design guidelines.
+ \item[colorsubtitle=true/false] The background color for the subtitle can be switched on and off.
+ \item[footer=true/false] Default is \code{false}.
+ \item[marginpar=true/false] The width of marginpar is the width of the logo. This can be filled with \code{\tbs{}SetMarginpar} or \code{\tbs{}marginpar}. For more details see \file{DEMO-TUDaAnnouncement}.
+
+ The image that belongs to the title is overlapped with marginpar and therefore \code{marginpar=true} and \code{\tbs{}titlegraphic} should only be used carefully together.
+ \item[title=large/small/default] Reduces the font size by one level. In this case \code{large} is \code{default} and \code{small} choose the title font size of the next smaller paper size where the base font size and marginpar stay the same.
+ \item[type=default/announcement] Different layouts of posters can be loaded here.
+ \code{announcement} sets the options \code{marginpar=true,indenttext=false,logo=head,title=small,colorsubtitle=true} and also activates the output of the subtitle in bold font.
+ \end{description}
\end{multicols}
+
\end{document}
+%% End of file `DEMO-TUDaPoster.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.pdf
index 6cecc143278..9619cb42b3d 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.tex
index 7b03b612d87..2bf90ff45ad 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaPub.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaPub-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaPub.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,429 +31,79 @@
%%
% !TeX program = lualatex
%%
-% PDF/A über pdfmanagement und nicht über pdfx
+
+% Enable PDF/A via pdfmanagement and no longer via pdfx
\DocumentMetadata{
pdfstandard=a-2b,
- lang=de,
- pdfversion=1.7,% 2.0 geht auch, aber die meisten Validierungsprogramme unterstützen das noch nicht.
+ pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+ lang=en,
}
\documentclass[
- german,
- accentcolor=9c,% Farbe für Hervorhebungen auf Basis der Deklarationen in den Corporate Design Richtlinien
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
- ]{tudapub}
-
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}
-
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudapub}
+
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[german,main=english]{babel}% load English and German to support a German abstract
+\usepackage{microtype}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Bibliography
+%%%%%%%%%%%%%%%%%%%
\usepackage{biblatex}
-\bibliography{DEMO-TUDaBibliography}
-
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
-\let\pck\textsf
-\let\cls\textsf
-\biburlsetup
-
-\usepackage{hologo}
-
-\begin{document}
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
-%Zusätzliche Metadaten für PDF/A. In diesem Fall notwendig, weil Titel ein Makro enthält.
-\Metadata{
- author=Marei Peischl (peiTeX),
- title=TUDaPub - LaTeX-Paper im Corporate Design der TU Darmstadt,
- subject=Basisdokumentation und Template zur Nutzung der tudapub-Dokumentenkasse,
- date=2019-04-29,
- keywords=TU Darmstadt\sep Corporate Design\sep LaTeX
+\hypersetup{% Metadata adjustments, in case these are not set, the data provided for \maketitle will be used
+ pdfauthor=Marei Peischl (peiTeX),
+ pdfcreationdate=2024-05-03,
+ pdfkeywords={TU Darmstadt; Corporate Design; LaTeX}
}
-\title{TUDaPub -- \LaTeX-Paper im Corporate Design der TU Darmstadt}
-\subtitle{Die Dokumentenklasse tudapub}
+\title{TUDaPub -- \LaTeX-Paper using TU Darmstadt's Corporate Design}
+\subtitle{The document class tudapub}
\author{Marei Peischl\thanks{pei\TeX{} \TeX{}nical Solutions}\and der \TeX-Löwe}
+
\titlegraphic{
-% %Folgende Box kann selbstverständlich durch ein mit \includegraphics geladenes Bild ersetzt werden.
+% Titlegraphic might also be set via \includegraphics
\color{black!30}\rule{\width}{\height}
}
-
-%Varianten der Infoboxen
-\addTitleBox{Institutsbezeichnung bzw. Logo in 2/3 Größe, vgl. \code{addTitleBoxLogo}}
+% Alternative box layout:
+\addTitleBox{Text, e.g. Institute}
%\addTitleBoxLogo{example-image}
%\addTitleBoxLogo*{\includegraphics[width=.3\linewidth]{example-image}}
-
+\begin{document}
\maketitle
\begin{abstract}
- Dieses Dokument stellt ein Template und gleichzeitig die Verwendungsdokumentation zur Dokumentenklasse tudapub, einem Teil des TUDa-CI-Paketes dar.
-
- Noch befindet sich das Projekt in der Testphase. Sollten Sie Fragen, Wünsche und Anregungen haben, bitten wir um eine entsprechende Mitteilung.
+ Abstract using the document main languge (here English)
\end{abstract}
-\begin{abstract}[english]
- Example for an additional abstract in English.
+\begin{abstract}[german]
+ Weitere Zusammenfassung in einer anderen Sprache (hier Deutsch), sofern benötigt.
\end{abstract}
-
-
\tableofcontents
+% Additional lists like \listoffigures or acronyms might be added here
-\section{Über diese Datei}
-Die Datei \file{DEMO-TUDaPub.tex} beziehungsweise ihre Ausgabe \file{DEMO-TUDaPub.pdf} ist die Dokumentation der Dokumentenklasse \file{tudapub.sty}.
-
-Sie ist Teil des TUDa-CI-Bundles und basiert in Teilen auf dem tuddesign-Paket von C.~v.~Loewenich und J.~Werner.
-
-In diesem Dokument werden die speziellen Optionen und Einstellungsmöglichkeiten erläutert.
-
-\section{Verwendung}
-Die Klasse wird wie gewohnt geladen:
-\begin{verbatim}
-\documentclass[<Optionen>]{tudapub}
-\end{verbatim}
-Im folgenden werden die möglichen Optionen beschrieben.
-
-\subsection{Klassenoptionen}
-
-\begin{description}
- \item[class=<article|report|book>] Diese Option legt die Basisdokumentenklasse fest. Die Werte laden die entsprechende KOMA-Script-Klasse \cite{scrguide}. Der Wert \code{article} lädt somit die Klasse \code{scrartcl}.
-
- KOMA-Script ist eine Sammlung von Klassen und Paketen für \LaTeX, die neben den typografischen Anpassungen an den Europäischen Raum auch die Konfigurationsmöglichkeiten stark erweitert.
- \item[color=<Farbe>] Wählt die Schmuckfarbe für die Nutzung in der Identitätsleiste aus. Die Farbcodes finden sich in der Farbübersicht in den Corporate Design Richtlinien. Neben diesen Farben kann prinzipiell jede beliebige Farbe übergeben werden. Die Optionen \code{accentcolor}, \code{textaccentcolor} und \code{identbarcolor} werden anlog direkt an \pck{tudacolors} übergeben. Auf diesem Weg können die Farben unabhängig voneinander gesetzt werden.
- \item[marginpar] Schaltet die Randnotizspalte um. Voreingestellt ist \code{auto}. Dies bedeutet, dass die Randnotizspalte wie im Corporate Design Handbuch \cite{TUDaGuideline} über die fünfte Spalte läuft. \marginpar{Beispiel für eine Randnotiz}.
- Darüber werden auch die Werte \code{true} und \code{false} akzeptiert. \code{false} setzt die Breite der Randnotizspalte auf 0. Der Mechanismus selbst wird nicht deaktiviert.
-
- Randnotizen werden über den komafont-Mechanismus \cite[vgl.][]{scrguide} im Element \code{marginpar} gesetzt. Seine Voreinstellung entspricht
- \begin{verbatim}
- \setkomafont{marginpar}{\accentfont}
- \end{verbatim}
- Um zusätzlich farbige Randnotizen zu setzen, könnte dies geändert werden, über
- \begin{verbatim}
- \addtokomafont{marginpar}{\color{textaccentcolor}}
- \end{verbatim}
- \marginline{
- \includegraphics[width=\marginparwidth]{example-image}\\
- Flattersatz in der marginnline aus \KOMAScript
- }
- \item[twocolumn] Aktiviert den zweispaltigen Modus global. In diesem Fall werden jedoch aufgrund ihrer Natur zwei Randnotizspalten erzeugt. Eine Nutzung in Kombination mit \code{marginpar=auto} ist daher in den meisten Fällen fragwürdig. Falls der zweispaltige Modus lediglich lokal aktiviert wird, entfällt dieses Verhalten, allerdings werden dann Randnotizen deaktiviert.
- \item[ruledheaders] Wählt den Stil der Überschriften aus. \code{ruledheaders=all} wählt den mit Linien eingerahmten Stil für alle bis zur \verb+\subsubsection+. Bei \code{chapter} beziehungsweise \code{section} ist dieser Stil entsprechend beschränkt. False lädt den Standardstil aus \KOMAScript.
- \item[title=default/small/large] Die relativ große Schriftgröße des Titels kann – insbesondere bei langen Titel für Abschlussarbeiten – zu Platzproblemen führen. Die Option \code{title} verhindert dies, indem die für das jeweils kleinere Papierformat eingestellten Schriftgrößen geladen werden. Die Voreinstellung ist \code{default} und entspricht dem Wert \code{large}.
- \item[type] Als Typ stehen im Moment \code{publication} und \code{thesis} zur Verfügung. Die besonderen Möglichkeiten im Typ thesis sind in der Datei DEMO-TUDaThesis.tex/.pdf geschildert. Voreingestellt ist \code{publication}.
- Zusätzlich existiert ab Version 1.2 noch der Modus \code{intern}. Dieser wählt die Optionen \code{titlepage=false} für einen Titelkopf statt Titelseiten, sowie die TUDaPub-Optionen \code{pdfa=""false} und \code{IMRAD=false}. Dieser Modus ist für kurze, interne Berichte gedacht.
- \item[headline] Die Kopfzeile verfügt über die im Corporate Design beschriebenen Layoutmöglichkeiten über den Wert \code{automark}. Da diese Lösung typografisch nicht sonderlich sinnvoll ist, ist es auch möglich, diese abzuschalten. Voreingestellt ist ein Stil ohne Kolumnentitel.
- \item[logo] Option für die Titelseite, siehe \ref{sec:title}
- \item[colorback] Option für die Titelseite, siehe \ref{sec:title}
- \item[IMRAD=true/false] Deaktiviert die Prüfung auf IMRAD-Labels, siehe Abschnitt \ref{sec:IMRAD}.
- \item[logofile=<Dateipfad>] Erlaubt es ein alternatives Logo zu übergeben. Diese Option existiert, um die Templates auch ohne das TUDa-Logo nutzen zu können. Die Logos sind der internen Verwendung vorbehalten und dürfen daher nicht mit diesem Template veröffentlicht werden.
-\end{description}
-
-\noindent Der Rest der Dokumentenklasse entspricht dem Standard von \KOMAScript, vgl. Abschnitt \ref{sec:KOMA}.
-
-\subsection{Die Titelseite}
-\label{sec:title}
-
-Die Titelseite wird von tudapub automatisch generiert. Die Verwendung hierfür entspricht größtenteils der klassischen Methode unter Verwendung von \code{maketitle}.
-
-Die \KOMAScript-Option \code{titlepage} erlaubt es üblicherweise, zwischen Titelseiten und Titelkopf umzuschalten. Bis Version 1.2 war diese Option deaktiviert. Mittlerweile existiert ein Modus für einen Titelkopf, dieser entspricht jedoch nicht den offiziellen Vorgaben und ist für interne Verwendung gedacht. Aufgrund der Implementierung wird \code{titlepage=true} identisch zu \code{titlepage=firstiscover} behandelt.
-
-Die Makros wie \code{author}, \code{title}, \code{subtitle} und \code{date} entsprechen der normalen Verwendung. Für die Institutszuweisung kann ebenfalls wie gewohnt \code{thanks} verwendet werden.
-
-Zusätzlich stehen die Makros \code{titlegraphic} und \code{addTitleBox} zur Verfügung um weitere Daten zu übergeben.
-
-\minisec{titlegraphic}
-Das Makro \code{titlegraphic} akzeptiert beliebigen Inhalt. Dieser wird bündig mit der oberen Ecke im Hauptteil der Titelseite platziert.
-Üblicherweise wird dieses Makro zur Platzierung einer Grafik genutzt:
-
-\begin{verbatim}
-\titlegraphic{\includegraphics[width=\width]{example-image}}
-\end{verbatim}
-
-Um die Größe des Bildes passend zu wählen können die Makros \code{width}/\code{height} verwendet werden. Darüber hinaus existiert ab Version 3.19 auch die Variante \code{titlegraphic*} mit der die Skalierung und ein ggf. notwendiger Beschnitt für das Füllen des reservierten Bereichs automatisch geschieht.
-
-Zusätzliche Logos und Informationen können über Boxen ergänzt werden.
-
-\begin{verbatim}
-\addTitleBox{Institut 1}
-\end{verbatim}
-Die Institutsboxen werden mit vorgegebenem Abstand unter dem Logo platziert. Hier kann Text erscheinen oder auch ein Institutslogo. Der Hintergrund ist weiß.
-
-Um die Institutsboxen für Logos zu verwenden, liefert \cls{tudapub} das Makro \code{addTitleBoxLogo}. Als Argument akzeptiert es einen Bilddateipfad.
-
-\begin{verbatim}
-\addTitleBoxLogo{example-image}
-\addTitleBoxLogo*{\includegraphics[width=\linewidth]{example-image}}
-\end{verbatim}
-
-\subsubsection{Sponsorenlogos}
-Ab Version 3.0 steht in TUDaPub auch der Sponsorenmechanismus der TUDaLeaflet-Klasse zur Verfügung. Damit ist es Möglich Sponsorenlogos unterhalb des Titelbildes zu platzieren.
-
-Sponsorenlogos werden üblicherweise über
-\begin{verbatim}
- \AddSponsor{<logo1>}
- \AddSponsor{<log2>}
-\end{verbatim}
-übergeben. Innerhalb des Arguments ist \verb+\height+ so gesetzt. Somit werden im Beispiel alle Logos auf die gleiche Höhe gesetzt. Der Abstand dazwischen wird entsprechend aufgefüllt, sodass der gesamte Block immer links und rechts mit dem Text abschließt.
-
-Die zweite Variante ermöglicht die Platzierung mit manueller vertikaler Ausrichtung, wie es bei Logos mit unterschiedlicher Höhe notwendig sein könnte. Hierbei werden lediglich die Abstände und Trennlinien um die Logos ergänzt:
-
-\begin{verbatim}
- \sponsors{
- <logo1><logo2>
- }
-\end{verbatim}
-
-
-\subsubsection{Optionen für die Titelseite}
-Die Position des Logos ist umschaltbar. Dies geschieht über die Dokumentenklassenoption \code{logo=head/""body}.
-\begin{description}
- \item[logo=head] Das Logo wird im Kopf direkt neben dem Titel platziert. Der Titel wird in der Breite reduziert. Der Hintergrund des Titels wird in der Farbe der Identitätsleiste eingefärbt. Zusätzliche Infoboxen (s.u.) werden ebenfalls im Kopf platziert.
- \item[logo=body] Das Logo samt der Infoboxen wird im Körper der Titelseite platziert.
-\end{description}
-
-Darüber hinaus lässt sich die Farbgebung umschalten.
-Die Option \code{colorback} schaltet zwischen dem farbigen Block auf der Titelseite und weißem Hintergrund um. Sie ist in der Voreinstellung aktiviert, sodass ein Farbiger Block erzeugt wird.
-
-Mit Version 3.08 werden zusätzlich zu den \code{true}/\code{false} Werten auch die Werte \code{title}, \code{head} und \code{body} für die Option colorback ergänzt.
-Mit diesen ist es möglich nach der Auswahl der Logoposition eine Korrektur an der Farbgebung durchzuführen. Alle drei neuen Werte aktivieren die Hintergrundfarbe und schalten deren Position um:
-\begin{description}
- \item[colorback=true/false] Aktiviert/Deaktiviert die Farbfläche auf der Titelseite. Dieser Schalter ist unabhängig von der aktuelle Position der farbigen Fläche. Die übrigen Optionen aktivieren zusätzlich auch die Ausgabe der Farbfläche, falls diese zuvor deaktiviert war.
- \item[colorback=title] Der Titel (ohne Untertitel) wird hinterlegt.
- \item[colorback=head] Der komplette Titelblock, inklusive Titelblock wird hinterlegt.
- \item[colorback=body] Es wird nur der Bildbereich eingefärbt.
-\end{description}
-
-\subsection{Strukturierungselemente}
-\minisec{Die abstract-Umgebung}
-Die \code{abstract}-Umgebung wird für \cls{tudapub} um eine Option für die Sprache erweitert. Somit ist es möglich, mehrere Zusammenfassungen in einem Dokument zu nutzen.
-
-\begin{verbatim}
-\begin{abstract}
- Zusammenfassung entsprechend der Dokumentensprache. In diesem Fall Deutsch.
-\end{abstract}
-
-\begin{abstract}[english]
- Zusätzliche Zusammenfassung in englischer Sprache
-\end{abstract}
-\end{verbatim}
-
-Für die Verwendung ist wichtig, dass alle im Dokument genutzten Sprachen geladen werden. Im Falle des Beispiels muss also sowohl \code{german} als auch \code{english} an das \pck{babel}-Paket übergeben werden.
-
-
-\subsection{PDF/A Konformität}
-Die Klasse TUDaPub unterstützt den Standard PDF/A 2b. Der PDF/A-Modus ist automatisch aktiviert. die zugehörige Option kann jedoch über \code{pdfa=false} ausgeschaltet werden.
-Nun wird zusätzlich eine \code{\textbackslash.xmpdata}-Datei generiert. Üblicherweise werden die Titeldaten direkt übernommen.
-
-Dies kann jedoch bei der Verwendung einiger Makros innerhalb der Felder zu Problemen führen. Beispielsweise enthält der Titel für dieses Dokument das Makro \code{\LaTeX}. Es können daher nur Textelemente übernommen werden. Ähnlich den Linkbezeichnungen über PDF-Lesezeichen.
-
-Um dieses Problem zu umgehen stellt \cls{tudapub} hierfür das Makro \code{\textbackslash{}Metadata\{\}} zur Verfügung. Hier können sämtliche von \pck{pdfx} verarbeitbaren Variablen nach Schlüssel$=$Wert-Struktur gesetzt werden. Es ist zu beachten, dass dieses Makro nur dann funktioniert, wenn die \code{pdfa}-Ausgabe aktiviert ist. Ist dies nicht der Fall, so gibt \cls{tudapub} eine entsprechende Fehlermeldung zu diesem Widerspruch aus.
-Zum Beispiel:
-\begin{verbatim}
-\Metadata{
- author=Marei Peischl (peiTeX),
- title=LaTeX im Corporate Design der TU Darmstadt,
-}
-\end{verbatim}
-Das Feld \code{publisher} ist mit \enquote{TU Darmstadt} vorbelegt, kann aber überschrieben werden.
-
-Um mehrere Einträge zu trennen, wird das Makro \code{\textbackslash{}sep} genutzt.
-\begin{verbatim}
-keywords={TU Darmstadt \sep Corporate Design \sep LaTeX}
-\end{verbatim}
-Wenn der Eintrag selbst Kommata enthalten könnte, dann ist eine Gruppierung um den Eintrag notwendig. Sonst wird der Text nach dem Komma als nächstes Keyword interpretiert.
-
-\minisec{Mögliche Probleme mit älteren Systemen:}
-
-Bei älteren \TeX-Distributionen kann es vorkommen, dass die Farbprofile nicht vorinstalliert sind. In diesem Fall wird eine Fehlermeldung im folgenden Sinn erzeugt:
-\begin{verbatim}
-No color profile found to use for RGB screen colors
-\end{verbatim}
-Um diesen Fehler zu beheben, können die notwendigen *.icc-Dateien unter \url{http://mirror.ctan.org/support/colorprofiles} heruntergeladen und entweder installiert oder im Projektordner mit abgelegt werden. Die einfachste Lösung bleibt jedoch, das eigene \TeX-System zu aktualisieren.
-
-Darüber hinaus werden bei \hologo{XeLaTeX} einige Features nicht unterstützt. In diesem Fall erzeugt \code{pdfa=""false} ein kompilierbares Dokument, allerdings sollte für validierbare PDF/A-Dateien auf \hologo{LuaLaTeX} einer möglichst aktuellen Version umgestiegen werden.
-
-\subsection{Zusätzliche Metadaten nach Wunsch der Universitätsbibliothek}
-\label{sec:IMRAD}
-Es existiert ein Mechanismus um das Strukturierungsmodell IMRaD \cite{imrad} zu kennzeichnen.
-Im Stil der einzelnen Teilbereiche können so, über Aufruf von
-
-\begin{verbatim}
-\IMRADlabel{introduction}
-\IMRADlabel{methods}
-\IMRADlabel{results}
-\IMRADlabel{discussion}
-\end{verbatim}
-entsprechende Labels generiert werden. Sie haben den Namen \code{IMRAD:<Schlüssel>}.
-
-Der Prüfmechanismus ist auf Wunsch der Bibliothek standardmäßig aktiviert, kann jedoch durch die Option \code{IMRAD=false} deaktiviert werden.
-
-\subsection{Farbdarstellung}
-\label{sec:pdfa-color}
-Der PDF/A-Modus konvertiert automatisch eingegebene CMYK-Farben in RGB. Da es keine eindeutige Umwandlung gibt, sollten daher im Modus \code{pdfa=true} keine CMYK-Elemente verwendet werden.
-
-Für die Druckausgabe ist dieser Modus ungeeignet. Ab Version 3.12 gibt \cls{tudapub} eine entsprechende Infomeldung aus, um über diese Umwandlung zu informieren.
-
-\section{Erweiterte Konfigurationsmöglichkeiten}
-
-\subsection{Auswahl des Dokumentenfarbmodus}
-Farben unterliegen je nachdem auf welchem Medium sie ausgegeben werden einer anderen Farbmischung. Für die Verwendung bei der Dokumentenerzeugung ist daher wichtig welches Ausgabemedium primär genutzt werden soll.
-
-Technisch zeigt sich dieser Unterschied in Farbmodellen. TUDa-CI unterstützt entsprechend der Richtlinien sowohl ein Farbmodell für die Druckausgabe (cmyk) und für die Bildschirmdarstellung (RGB). Die Umsetzung geschieht über das Paket \pck{xcolor} wobei die entsprechenden Farbwerte für beide Modelle über \pck{tudacolors} hinterlegt sind.
-
-Normalerweise wählt TUDa-CI automatisch ein passendes Modell. Allerdings sorgt die Voreinstellung von \code{pdfa-true} für eine Konvertierung zu RGB (vgl.~\ref{sec:pdfa-color}).
-
-Soll abseits dieser automatischen Abweichung ein bestimmter Farbmodus erzeugt werden, können die \pck{xcolor}-Optionen \code{cmyk} oder \code{RGB} direkt an \cls{tudapub} übergeben werden. Sie werden entsprechend an das Paket weitergereicht und entsprechend der \pck{xcolor}-Dokumentation verarbeitet.
-
-\subsection{Anpassungen, die von den Corporate Design Richtlinien abweichen}
-
-\subsubsection{Schriftgröße}
-\cls{tudapub} kann entgegen der Corporate Design Richtlinien auch andere Schriftgrößen verarbeiten. Hierfür wird die \code{fontsize}-Option aus \KOMAScript{} genutzt (z.\,B. \code{fontsize=11pt}). Sofern keine spezielle Schriftgrößendatei für TUDa-CI vorliegt, wird die mit \KOMAScript{} ausgelieferte Datei gewählt.
-
-Beispiele für Abweichungen aus typografischen Gründen sind Beispielsweise auch in den Demo-Dateien für Abschlussarbeiten gezeigt.
-
-\subsubsection{Seitenränder}
-Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang.
-Daher existiert die Klassenoption \code{custommargins}. Sie verfügt über die Werte \code{true}, \code{false} und \code{geometry} mit folgender Bedeutung:
-
-\begin{description}
-\item[custommargins=false] Standardeinstellung von \cls{tudapub}. Die Ränder entsprechen den Vorgaben des Corporate Design Guidelines. Die Einstellung wird durch \pck{geometry} durchgeführt. Eigene Anpassungen werden durch das Ausführen von \code{\textbackslash{}maketitle} überschrieben.
-\item[custommargins=true] Die Einstellungen des Corporate Design Guidelines werden nicht aktiviert. \pck{geometry} wird nicht geladen. Dieser Modus entspricht der Standardeinstellung von \KOMAScript{}. Dadurch werden die Ränder nicht fest definiert, sondern auf Basis des \pck{typearea}-Paketes berechnet \cite[vgl.][]{scrguide}.
-\item[custommargins=geometry] Diese Variante wurde auf Wunsch zur Verfügung gestellt, allerdings wird darauf hingewiesen, dass manuelle Randeinstellungen oft nicht zu einem harmonischen Satzspiegel führt.
-\pck{geometry} wird, wie bei \code{false} geladen und vorkonfiguriert. Es ist allerdings möglich kleinere Anpassung durch die Verwendung des Makros \code{\textbackslash{}geometry} zu setzen. Die Einstellungen, die zu Beginn des Dokuments gelten werden gespeichert und nach der Titelseite wiederhergestellt.
-
-Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen:
-\begin{verbatim}
- \geometry{
- reset,
- <Eigene Anpassungen>
- }
-\end{verbatim}
-Die gilt insbesondere für die Optionen \code{includehead}, \code{includefoot} und \code{includemp}.
-\end{description}
-
-\minisec{Hinweis zu den Kopf-/Fußzeilen}
-Wenn die Option \code{marginpar=true} gesetzt bleibt, ragen die Kopf- und Fußzeile über die Marginalspalte hinaus. Aus ästhetischen Gründen wird daher empfohlen in diesem Fall die Kopf- und Fußzeile mit \code{marginpar=false} auf den Textbereich zu beschränken.
-
-Auch ist das Standard-Layout der Kolumnentitel wenig vorteilhaft, da die Kolumnentitel damit lokal größer sein können als die eigentliche Überschrift. (\code{headline=automark})
-Deswegen kann über
-\begin{verbatim}
- \pagestyle{TUDa.headings}
-\end{verbatim}
-ein einfacherer Seitenstil ausgewählt werden, der die Nutzung mit lebenden Kolumnentitel erheblich vereinfacht. Dieser Stil ist über \pck{scrlayer-scrpage} realisiert und kann entsprechend der \KOMAScript{}-Dokumentation angepasst werden.
-
-\minisec{Hinweis zur Bindekorrektur}
-Bei Verwendung einer Bindekorrektur (\code{BCOR=<Länge>}) wird diese nicht automatisch auch auf der Titelseite eingefügt. Für diesen Fall wurde mit Version 3.0 zusätzlich die Option \code{BCORtitlepage} hinzugefügt. Falls diese aktiviert wird, nimmt die Titelseite den Wert der Typearea Option \code{BCOR} auf der ersten Seite als Zusatz zum linken Rand hinzu.
-
-
-\subsection{Frontmatter/Mainmatter/Backmatter}
-Üblicherweise existieren die Makros \verb+\frontmatter+, \verb+\mainmatter+ und \verb+\backmatter+ lediglich bei der Basisklasse \cls{scrbook}.
-Auf Wunsch wurden diese Makros auch bei \cls{scrartcl} und \cls{scrreprt} als Basis bereitgestellt.
-
-Somit ist es möglich, für den Vorspann auf römische Ziffern zu wechseln. Ab \verb+\mainmatter+ werden dann arabische Ziffern verwendet.
-
-
-\subsection{Mathematikschriften}
-Da es keine Compiler-unanbhängige, universelle Mathematikschrift gibt und die Corporate Design Richtlinien auch keinerlei Empfehlung berücksichtigen, wurden hierfür einige mögliche Varianten diskutiert. Die Voreinstallung entspricht immer dem Standard der Installation. Es werden keine spezifischen Einstellungen geladen.
-
-Die Diskussion hierzu findet sich unter:\\
-\url{https://github.com/tudace/tuda_latex_templates/issues/19}
-
-Im Folgenden werden ein paar Beispielkonfigurationen gezeigt. Grundsätzlich ist die Mathematikschriftart jedoch -- abgesehen durch Einschränkungen des Compilers -- frei wählbar.
-
-Bei Auswahl und Verwendung ist häufig der \enquote{\TeX{} Font Catalogue hilfreich}: \url{https://tug.org/FontCatalogue/mathfonts.html}
-
-\subsection{\hologo{pdfLaTeX}}
-Hier existiert eine Variante, die die Buchstaben der Basisschriftart \enquote{Charter} mit Mathematiksymbolen aus unterschiedlichen Zeichensätzen möglichst passend kombiniert.
-
-\begin{verbatim}
-\usepackage[charter,expert]{mathdesign}
-\end{verbatim}
-
-Es gibt ähnliche Ansätze für ein paar weitere Kombinationen. Einige Beispiele finden sich in der XCharter Dokumentation. \url{http://mirrors.ctan.org/fonts/xcharter/doc/xcharter-doc.pdf}
-
-
-\section{Fachbereichsspezifische Anpassungen}
-Einige Fachbereiche haben spezielle Anforderungen. Dieser Abschnitt betrachtet die speziellen Anpassungen. Bisher (Juli 2020) existieren diese Modifikationen lediglich für den Fachbereich Maschinenbau, der Mechanismus ist jedoch erweiterungsfähig.
-
-
-\subsection{Fachbereich Maschinenbau}
-Der entsprechende Modus wird über die Option \code{department=mecheng} oder kurz \code{mecheng} aktiviert. Die Farbgebung passt sich dann automatisch an und die Trennlinie der Fußzeile erhält die geforderte Form des Zeitstrahles.
-
-Darüber hinaus erfordern manche Stellen dieses Fachbereichs die Übergabe einer ID zu Kennzeichnung des Dokuments. Hierfür wurde der Mechanismus
-\begin{verbatim}
-\SetPaperID{<Buchstabe>}{<tiefgestelle Nummer>}}
-\end{verbatim}
-eingeführt.
-Dieser funktioniert auch ohne die Aktivierung des \code{mecheng}-Modus, allerdings ergänzt die Option einige zusätzliche Parameter für angepasste Abstände.
-
-Darüber hinaus aktiviert der Modus die Optionen:
-\code{colorback=false}, \code{ruledheaders=section}.
-
-\minisec{Logo}
-Das Fachbereichslogo wird über die Option \verb+departmentlogofile=tuda_maschinenbau_logo+ übergeben. Über diese Option kann auch eine abweichende Datei genutzt werden. Falls der Wert leer bleibt, wird kein Bild eingefügt.
-
-\minisec{Farbanpassungen}
-Der Fachbereich untergliedert die im Corporate Design Handbuch beschriebenen Farben zusätzlich. Daher existieren, wenn \code{mecheng} aktiviert wurde zusätzlich die folgenden Farbnamen:
-
-\begin{verbatim}
-\colorlet{TUDa-Primary1}{TUDa-6b}
-\colorlet{TUDa-Primary2}{TUDa-2d}
-\colorlet{TUDa-Secondary1}{TUDa-9a}
-\colorlet{TUDa-Secondary2}{TUDa-8a}
-\colorlet{TUDa-Secondary3}{TUDa-6a}
-\colorlet{TUDa-Secondary4}{TUDa-3a}
-\colorlet{TUDa-Secondary5}{TUDa-4a}
-\colorlet{TUDa-Secondary6}{TUDa-5a}
-\colorlet{TUDa-Arrow}{TUDa-Primary2}
-\end{verbatim}
-
-\minisec{Zeitstrahl}
-Des Design-Element des Zeitstrahls kann über das Makro \verb+\MechEngArrow{<Länge>}+ erzeugt werden. Die Farbe entspricht dabei der Farbe \code{TUDaArrow}, die mit der zweiten Primärfarbe (blau) vorbelegt ist.
-
-\section{Weitere Konfigurationsmöglichkeiten: Standard-KOMA-Script}
-\label{sec:KOMA}
-Da die Klasse bis auf ein paar erzwungene Einstellungen, die das Layout betreffen, vollständig \KOMAScript"=kompatibel ist, ist für sämtliche Modifikationen ein Blick in die \KOMAScript-Dokumentation hilfreich. Für einen Großteil bietet \KOMAScript{} eine eigene Lösung, wodurch Ergänzungspakete oft hinfällig sind.
-
-Beispiele für typische Modifikationen, die auch im Rahmen des Corporate Design zulässig sind:
-\begin{itemize}
- \item Umstellung der Absatzkennzeichnungsmethode von Einzug auf Abstand (Klassenoption \verb+parskip+)
- \item Elementnummerierung mit oder ohne Endpunkt (Klassenoption \verb+numbers=enddot/noenddot+)
- \item Positionierung, Ausrichtung und Abstände bei captions (Die Makros \verb+\captionsabove+, \verb+\captionbelow+, \verb+\captionof+ und die Option \verb+captions+)
-\end{itemize}
-
-
-
-\section{Bekannte Probleme}
-
-\subsection{\texorpdfstring{\hologo{XeLaTeX}}{XeLaTeX} und PDF/A}
-Das Paket \pck{pdfx}, über welches die PDF/A Kompatibilität erzeugt wird, hat nur einen begrenzten Support für \hologo{XeLaTeX}.
-Es wird eine entsprechende Warnung erzeugt, allerdings kann es bei älteren \hologo{XeLaTeX}-Versionen passieren, dass \pck{pdfx} bereits Fehlermeldungen erzeugt. Abhilfe wird in diesem Fall durch eine Compiler-Wechsel auf \hologo{LuaLaTeX} (welcher ohnehin empfohlen wird) oder durch Abschalten des PDF/A-Modus (\code{pdfa=false}) geschaffen.
-
-\subsection{DVI-Ausgabe}
-Aufgrund der Voreinstellung zur Erzeugung einer PDF/A-Datei ist es nicht möglich TUDa-CI in Standardeinstellungen zur Erzeugung einer DVI-Datei zu nutzen. Ein Großteil der Funktionalität kann jedoch durch Deaktivierung der \code{pdfa}-Option genutzt werden.
-
-
-\subsection{Geschachtelte Akzente (Inkompatibilität zwischen pdfx und amsmath)}
-Es ist nach aktuellem Paketstatus (v3.04) nicht möglich beide Pakete in Kombination ohne weitere Anpassungen so zu verwenden, dass eine Schachtelung von Akzenten möglich ist. Das folgende Beispiel wirft Fehler, sobald \pck{amsmath} direkt oder indirekt geladen wird.
-\begin{verbatim}
-$\dot{\hat{x}}$
-\end{verbatim}
-\noindent Die zugehörige Diskussion findet sich im tuda-ci Repository (\url{https://github.com/tudace/tuda_latex_templates/issues/78}). Da sich diese Problematik nicht direkt aus tuda-ci sondern aus der Konstruktion der beiden Pakete untereinander ergibt, ist es leider nicht möglich pauschal eine Anpassung in tuda-ci zu implementieren. Unter dem angegebenen Link findet sich jedoch ein möglicher Workaround, sobald beide Varianten benötigt werden.
+\section{About this file}
-\subsection{Möglicher Option Clash mit microtype}
-Das Paket \pck{microtype} wird im Falle der Nutzung von \hologo{pdfLaTeX} oder einer erzwungenen Nutzung von Type1 Schriftarten automatisch geladen, da in der verwendeten Schriftart die Ligaturen für Kapitälchen deaktiviert werden müssen, um Probleme zu vermeiden (vgl. \url{https://github.com/tudace/tuda_latex_templates/issues/144}).
+\enquote{DEMO-TUDaPub.tex} is an example file for the document class \enquote{tudapub.cls}.
+It is part of TUDa-CI, which is the official template bundle of TU Darmstadt. The original version was inspired by the \enquote{tuddesign} bundle by C.~v.~Loewenich and J.~Werner.
-Falls es zwingend Notwendig ist die Type 1 Schriftart zu verwenden, ist es möglich weitere Optionen vor dem Laden der Dokumentenklasse an \pck{microtype} zu übergeben.
-\begin{verbatim}
- \PassOptionsToPackage{<microtype Optionen>}{microtype}
- \documentclass{…}
-\end{verbatim}
-\appendix
\printbibliography
\end{document}
+%% End of file `DEMO-TUDaPub.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.pdf
index dcdda46cb20..688a1096633 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.tex
index c5974e6ece3..2a22176a87f 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaReport.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaReport-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaReport.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -33,35 +33,40 @@
%%
\documentclass[
- german,
- accentcolor=9c,% Farbe für Hervorhebungen auf Basis der Deklarationen in den
- type=intern,
- marginpar=false
- ]{tudapub}
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+ type=intern, % Minimal setup without accent color
+ marginpar=false,% Disable marginpar
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudapub}
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}
-%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
-\let\file\texttt
-\let\code\texttt
-\let\pck\textsf
-\let\cls\textsf
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
-\begin{document}
+\title{TUDaReport -- Minimal template for TUDa-CI}
+\author{Marei Peischl}
+%\date{}% If not specified, today's date is automatically inserted
-\title{TUDaReport -- Minimales Template für TUDa-CI}
-\author{Marei Peischl}
-%\date{} % Ohne Angabe wird automatisch das heutige Datum eingefügt
+\begin{document}
\maketitle
+
\tableofcontents
+% Additional lists like \listoffigures or acronyms might be added here
+
+
+\section{About this file}
-\section{Über diese Datei}
-Die Datei \file{DEMO-TUDaReport.tex} beziehungsweise ihre Ausgabe \file{DEMO-TUDaReport.pdf} ist ein minimales Template für die Verwendung Der Dokumentensklasse \file{tudapub.cls}.
+\enquote{DEMO-TUDaReport.tex} is a minimal template for using the document class \enquote{tudapub.cls}.
+It is part of TUDa-CI, which is the official template bundle of TU Darmstadt. The original version was inspired by the \enquote{tuddesign} bundle by C.~v.~Loewenich and J.~Werner.
-Für Erläuterungen zur Funktionsweise und den Möglichkeiten zur Änderung sei auf DEMO-TUDaPub.pdf verwiesen.
\end{document}
+%% End of file `DEMO-TUDaReport.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.pdf
index ee5b7471f53..367e8cfe426 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.tex
index aba84ecdab7..4c1d8e8c7f5 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaSciPoster.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaSciPoster-de.tex' version 3.41 (2024-07-02),
+%% This is file `DEMO-TUDaSciPoster.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,40 +31,59 @@
%%
% !TeX program = lualatex
%%
+%% In case you need PDF/A
+% \DocumentMetadata{
+% pdfstandard=a-2b,
+% pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+% lang=en,
+%}
\documentclass[
- accentcolor=9c,
-% boxstyle= boxed, % Boxen mit abgerundeten Ecken, farbigem Titelblock
-% boxstyle=colored % Boxen mit farbigen Titelblock, keine vertikalen Linien
-% boxstyle=default % Voreinstellung, ohne Farbe, ohne vertikale Linien
-% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
- ]{tudasciposter}
-
-%Sprache
-\usepackage[german]{babel}
-\usepackage[autostyle]{csquotes}
-
-
-%Makros für dieses Beispieldokument. Im Allgemeinen nicht notwendig.
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+% boxstyle=boxed,% Round corners and colored title
+% boxstyle=colored,% Colored title without vertical lines
+% boxstyle=default,% Default: without color and vertical lines
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
+]{tudasciposter}
+
+%%%%%%%%%%%%%%%%%%%
+% Language setup
+%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
+
+%%%%%%%%%%%%%%%%%%%
+% Bibliography
+%%%%%%%%%%%%%%%%%%%
+\usepackage{biblatex}
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
+
+%%%%%%%%%%%%%%%%%%%
+% Document specific setup for demonstration, generally not needed!
+%%%%%%%%%%%%%%%%%%%
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cls}[1]{\textsf{#1}}
\newcommand{\tbs}{\textbackslash}
\newcommand{\repl}[1]{<\textit{#1}>}
-\let\code\texttt
\newcommand*{\macro}[1]{\code{\tbs#1}}
-\let\file\texttt
-\let\pck\textsf
-\let\cls\textsf
-
-
+%%%%%%%%%%%%%%%%%%%
+% End of demo specific setup
+%%%%%%%%%%%%%%%%%%%
\begin{document}
-\title{\pck{tcolorbox}-Poster im Corporate Design der TU~Darmstadt}
+
+\title{\pkg{tcolorbox}-Poster using TU Darmstadt's Corporate Design}
\author{Marei Peischl\inst{*}\thanks{kontakt@peitex.de} \and der \TeX-Löwe}
\institute{\inst{*}pei\TeX{} \TeX{}nical Solutions, Hamburg}
-%\inst kann in den Autor und Institutsfeldern genutzt werden um eine Zuordnung zu ermöglichen. Bei Nummerierung ist der Nutzer dafür verantwortlich Konflikte mit \thanks zu vermeiden.
+% The author and institute can use \inst for an assignment. Be careful when numbering with \thanks.
\titlegraphic{\includegraphics[width=.5\linewidth]{example-image}}
\footerqrcode{https://www.peitex.de}
-\footer{Fußzeile: Falls neben den Logos andere Angaben erforderlich sind}
+\footer{For further information besides the logos}
-%Instituts/Sponsorenlogos von links nach rechts
+% Institute/sponsor logos (left to right)
\footergraphics{
\includegraphics[height=\height]{example-image}
\includegraphics[height=\height]{example-image}
@@ -76,101 +95,92 @@
columns=4,
rows=7,
spacing=1cm,
-% showframe, %Gitter einblenden. Für Platzierung häufig hilfreich
- },]
+% showframe,% Helpful for placements
+ },
+]
-\begin{posterboxenv}[title=Zusammenfassung]{name=intro,column=1,row=1,span=4}
- Die \cls{tudasciposter}-Klasse basiert auf dem \pck{tcolorbox} Paket von Thomas F. Sturm.
- Sie versucht einen einfachen Weg zu bieten, wissenschaftliche Poster im Corporate Design der TU Darmstadt zu erstellen. Dieses Dokument dient zur Dokumentation und als Verwendungsbeispiel.
+\begin{posterboxenv}[title=Intro]{name=intro,column=1,row=1,span=4}
+ The document class \cls{tudasciposter} is based on the \pkg{tcolorbox} package by Thomas F. Sturm.
+ This document is an example for an academic poster using the Corporate Design of TU Darmstadt.
- Dieses Dokument verwendet unterschiedliche Boxentypen. Dies ist selbstverständlich für die praktische Verwendung nicht empfehlenswert. Dieser Modus dient lediglich Demonstrationszwecken.
+ Different box types are shown in this document. They are only for demonstration.
\end{posterboxenv}
-% Titelei
-\begin{posterboxenv}[title=Titelei]{name=title, row=2, span=2, rowspan=2}
- Die Definition des Titelblockes lehnt sich an die Standard-\LaTeX{}-Strukturierung mit Hilfe von \macro{maketitle} an.
+\begin{posterboxenv}[title=Title]{name=title,row=2,span=2,rowspan=2}
+ There are macros like \macro{title}, \macro{author}, \macro{institute} and \macro{titlegraphic} for the title block.
+ \macro{titlegraphic} is right-aligned under the TUDa logo and
+ \macro{linewidth} is the width of the TUDa logo.
- Für die Datenübergabe stehen die Makros \macro{title}, \macro{author}, \macro{institute} und \macro{titlegraphic} zur Verfügung. Letztere wird rechtsbündig unterhalb des TUDa-Logos platziert. Der Wert von \macro{linewidth} zu diesem Zeitpunkt entspricht der Breite des TUDa-Logos.
+ There are also \macro{setqrcode} and \macro{setfoot} for the footer. An example of this is in \file{DEMO"=TUDaSciPoster.tex}.
- Zusätzlich zu den Titeldaten stehen über \macro{setqrcode} und \macro{setfoot} Makros zur Verfügung, die die Fußzeile füllen.
- Ein Beispiel ist in der Datei \file{DEMO"=TUDaSciPoster.tex} gezeigt
+ This is then passed with the standard macro \macro{maketitle}.
\end{posterboxenv}
-% Fußzeile
-\begin{posterboxenv}[title=Fußzeile]{name=footer,below=title, span=2, rowspan=2 }
- Die Fußzeile ist grundsätzlich aktiviert, kann jedoch mit Hilfe der Klassenoption \code{footer=false} ausgeschaltet werden. In diesem Fall werden jedoch mit \macro{thanks} übergebene zusätzliche Titeldaten nicht angezeigt.
-
- Für die Übergabe weiterer Daten stehen die Makros \macro{footer}, \macro{footergraphics} und \macro{footerqrcode} zur Verfügung.
+\begin{posterboxenv}[title=Footer]{name=footer,below=title,span=2,rowspan=2}
+ The footer can be switched off with \code{footer=false} but then additional title data with \macro{thanks} will not be displayed. Basically \code{footer=true}.
- \macro{footergraphics} ist für die Übergabe von Logos gedacht und \macro{footerqrcode} übernimmt einen URL die anschließend in der rechten unteren Ecke als QRCode platziert wird.
+ Further macros are \macro{footer}, \macro{footergraphics} for logos and \macro{footerqrcode} that can specify a URL, which is then placed in the bottom right corner as a QRCode.
- Die Fußzeile selbst erhält die Daten aus \macro{thanks}, kann jedoch ergänzt werden. Sie hat die Breite des Satzspiegels abzüglich der Logos/QRcode.
+ The footer arises from \macro{thanks}. It has the width of the type area minus the logos/QR code.
\end{posterboxenv}
-% Platzierung der Boxen
-\begin{posterboxenv}[title=Platzierung der Boxen]{name=positioning, below=footer, span=2}
- Bei der \pck{poster}-Bibliothek des \pck{tcolorbox} Paketes, werden die Boxen manuell positioniert.
-
- Dies benötigt zwar einen zusätzlichen Arbeitsschritt, erlaubt jedoch einer feinere Ausrichtung der Boxen, auch relativ zueinander.
-
- Diese Mechanismen ermöglichen auch, Querverweise einfacher zu positionieren. Hierfür ist ein Blick in die \pck{tcolorbox}-Dokumentation hilfreich.
+\begin{posterboxenv}[title=Placement of boxes]{name=positioning,below=footer,span=2}
+ It is an additional step, but the boxes are positioned manually in the \pkg{poster} library of the \pkg{tcolorbox} package.
+ This not only allows a nicer alignment of the boxes, but also simplifies the positioning of cross-references.
+ See also \pkg{tcolorbox} documentation.
\end{posterboxenv}
-% Eine Box im Stil TUDa-boxed
-\begin{posterboxenv}[title=Eine Box im Stil TUDa-boxed, TUDa-boxed]{name=boxed, column=3, row=2, span=2}
- Die Boxen können in verschiedenen Varianten gestaltet werden. Die Voreinstellung entspricht den offiziellen Vorgaben, jedoch kann es aus unterschiedlichen Gründen notwendig sein, eine klarere Abgrenzung zu setzen (lobale Klassenoption \code{boxstyle=boxed} oder lokaler Stil \code{TUDa-boxed}).
+\begin{posterboxenv}[title=TUDa-boxed style,TUDa-boxed]{name=boxed,column=3,row=2,span=2}
+ Boxes are preset according to official specifications but sometimes it is necessary to design these individually. This can be defined with the global class option \code{boxstyle=boxed} or the local style \code{TUDa-boxed}.
\end{posterboxenv}
-% Eine Box im Stil TUDa-colored
-\begin{posterboxenv}[title=Eine Box im Stil TUDa-colored, TUDa-colored]{name=colored, column=3, row=3, span=2}
- Boxentyp zwischen dem Stil \code{boxed} und dem Stil \code{official}.
-
- Einstellung dieser Option ist sowohl über die Nutzung der globalen Klassenoption \code{style=colored} als auch durch die Verwendung des lokalen Stils\code{TUDa-colored} möglich.
-
+\begin{posterboxenv}[title=Colored box,TUDa-colored]{name=colored,column=3,row=3,span=2}
+ This colored box can be defined with the global class option \code{style=colored} or the local style \code{TUDa-colored}.
+ It is very similar to \code{boxed} and \code{official}.
\end{posterboxenv}
-% Box ohne Titel mit Abbildung
-\begin{posterboxenv}[TUDa-colored]{name=colored-notitle,column=3,row=4, rowspan=2}
+% Box with an image without without title
+\begin{posterboxenv}[TUDa-colored]{name=colored-notitle,column=3,row=4,rowspan=2}
\includegraphics[width=\linewidth]{example-image}
- \captionof{figure}{Ein Beispielbild, in einer Box ohne Titel (\code{boxed-notitle}). In diesem Fall sind der Stil {TUDa} und TUDa-colored identisch}
+ \captionof{figure}{
+ An example image in a box without title (\code{boxed-notitle}) where \code{TUDa} style and TUDa-colored are identical.
+ }
\end{posterboxenv}
-% Box ohne Titel
-\begin{posterboxenv}[TUDa-boxed]{name=notitle, column=4, below=colored}
- Ein Beispiel für den Stil \code{boxed} ohne einen eigenen Titel.
+% Box without title
+\begin{posterboxenv}[TUDa-boxed]{name=notitle,column=4,below=colored}
+ An example of the \code{boxed} style without title.
\end{posterboxenv}
-% Box mit Verweis
-\begin{posterboxenv}[title=Box mit Verweis,TUDa-boxed]{name=verweis,column=4, above=row6}
- Beispielbox mit Pfeil, um zwei Boxen miteinander zu verknüpfen oder Leseabzweigungen zu generieren.
+\begin{posterboxenv}[title=Box with reference,TUDa-boxed]{name=verweis,column=4,above=row6}
+ An example box with an arrow that links two boxes together or generates a read branch.
\end{posterboxenv}
-%Zwischen den Boxen kann direkt TikZ-Code eingegeben werden. Das Namensschema der Boxen als Koordinaten lautet
-% TCBPOSTER@<boxname>.ankerpunkt
-% Für genauere Erläuterungen zur Syntax, bietet die tikz-Anleitung genauere Angaben, weitere benannte Koordinaten finden sich in der tcolorbox-Dokumentation
+% TikZ code can be entered directly between the boxes. The scheme of the boxes as coordinates is
+% TCBPOSTER@<boxname>.anchor point
+% For more information, see tikz instructions. Further named coordinates can be found in the tcolorbox documentation.
\draw[accentcolor,line width=4pt,->] ([yshift=-1cm]TCBPOSTER@verweis.east) -| ([xshift=1cm]TCBPOSTER@colored.east) -- (TCBPOSTER@colored.east);
-% Relative Positionierung
-\begin{posterboxenv}[title=Relative Positionierung,TUDa-boxed]{name=relative, column=4, between=notitle and verweis}
- Diese Box wird zwischen den beiden Boxen \code{notitle} und \code{verweis} platziert.
+\begin{posterboxenv}[title=Relative positioning,TUDa-boxed]{name=relative,column=4,between=notitle and verweis}
+ This box is placed between \code{notitle} box and \code{verweis} box
\end{posterboxenv}
-% Papierformat
-\begin{posterboxenv}[title=Papierformat]{name=paper,column=3,span=2,below=row5}
- Die Klasse \cls{tudasciposter} unterstützt die Papierformate A0, A1, A2 und A3. Der Wert wird über die Klassenoption \code{paper} ausgewählt:
- \begin{verbatim}
- paper=a0
- \end{verbatim}
- Die Voreinstellung entspricht \code{a0}.
- Die Änderung des Papierformates ist keine Skalierung, da Schriftgrößen nicht direkt skalieren.
+\begin{posterboxenv}[title=Paper size]{name=paper,column=3,span=2,below=row5}
+ The paper format can be determined using the class option \code{paper}. The formats in \cls{tudasciposter} are A0, A1, A2 and A3.
+\begin{verbatim}
+paper=a0
+\end{verbatim}
+ Default is \code{a0}.
- Zusätzlich kann die Option \code{paper} wie bei \KOMAScript{} üblich auch einen Wert für die Ausrichtung verarbeiten. Querformat erhält man somit über \code{paper=landscape}.
+ The orientation can also be defined using the \code{paper} option.
+ Landscape format is created with \code{paper=landscape}.
- Um eine Skalierung eines größeren auf ein kleineres Design zu erreichen, empfiehlt es sich, das Ausgangsformat beim Druck zu skalieren (Drucken in eine Datei mit Skalierung) oder ggf. die PDF-Datei mit Paketen wie \pck{pdfpages} umzurechnen.
+ If a larger design is to be changed to a smaller one, it is recommended to scale when printing. Otherwise, the PDF file can be converted using packages like \pkg{pdfpages}.
+ However, it should be noted that changing the paper format does not represent scaling.
\end{posterboxenv}
\end{tcbposter}
-\end{document}
-
+\end{document}
+%% End of file `DEMO-TUDaSciPoster.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.pdf b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.pdf
index 0f6944a3c97..383075fd388 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.tex b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.tex
index 12080524fb7..03f0c5c2dd5 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.tex
+++ b/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaThesis.tex
@@ -1,9 +1,9 @@
-%% This is file `DEMO-TUDaThesis-de.tex' version 3.41 (2024-07-02)
+%% This is file `DEMO-TUDaThesis.tex' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,10 +16,10 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The current maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
-%% The development respository can be found at
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
%%
@@ -31,423 +31,103 @@
%%
% !TeX program = lualatex
%%
-% PDF/A über pdfmanagement und nicht über pdfx
+
+% Enable PDF/A via pdfmanagement and no longer via pdfx
\DocumentMetadata{
pdfstandard=a-2b,
- lang=de,
- pdfversion=1.7,% 2.0 geht auch, aber die meisten Validierungsprogramme unterstützen das noch nicht.
+ pdfversion=1.7,% 2.0 is possible as well, but PDF/A-2b requires < 2.0
+ lang=en,
}
\documentclass[
- german,% Hauptsprache als globale Option, früher war german notwendig
- ruledheaders=section,% Ebene bis zu der die Überschriften mit Linien abgetrennt werden,
- class=report,% Basisdokumentenklasse. Wählt die Korrespondierende KOMA-Script Klasse
- thesis={type=bachelor},% Dokumententyp Thesis, für Dissertationen siehe die Demo-Datei DEMO-TUDaPhd
- accentcolor=9c,% Auswahl der Akzentfarbe
- custommargins=true,% Ränder werden mithilfe von typearea automatisch berechnet
- marginpar=false,% Kopfzeile und Fußzeile erstrecken sich nicht über die Randnotizspalte
-% BCOR=5mm,% Bindekorrektur
- parskip=half-,% Absatzkennzeichnung durch Abstand vgl. KOMA-Script
- fontsize=11pt,% Basisschriftgröße laut Corporate Design ist mit 9pt häufig zu klein
-% logofile=example-image,% Falls die Logo Dateien nicht vorliegen
+ english,% Main language as global option
+ accentcolor=9c,% Choose accent color: For a list of available colors see the full tudapub documentation
+ ruledheaders=section,% Section levels above this one will follow the ruled layout
+ class=report,% Choose the base document class. Will choose the matching KOMA-Script class
+ thesis={type=bachelor},% Thesis. For PhD thesis have a look at DEMO-TUDaPhd example file
+ fontsize=11pt,% Basic font size. CI default setting of 9pt is too small for theses
+ parskip=half-,% Use a parskip instead of indent, see KOMA-Script documentation
+ custommargins=true,% Calculate margins using typearea
+ marginpar=false,% Disable marginpar
+% BCOR=5mm,% Binding correction
+% accept-missing-logoes=true,% No error in case logo files are not available
+% logofile=example-image,% In case logo should be replaced
]{tudapub}
+
%%%%%%%%%%%%%%%%%%%
-% Spracheinstellungen
+% Language setup
%%%%%%%%%%%%%%%%%%%
-\usepackage[english, main=german]{babel}
-\usepackage[autostyle]{csquotes}% Sprachabhängig Anführungszeichen mit \enquote
-
-% Falls mit pdflatex kompiliert wird, wird microtype automatisch geladen, in diesem Fall muss diese Zeile entfernt werden, und falls weiter Optionen hinzugefügt werden sollen, muss dies über
-% \PassOptionsToPackage{Optionen}{microtype}
-% vor \documentclass hinzugefügt werden.
+\usepackage[english]{babel}
\usepackage{microtype}
+\usepackage[autostyle]{csquotes}% \enquote, to simplify use of quotation marks
%%%%%%%%%%%%%%%%%%%
-% Literaturverzeichnis
+% Bibliography
%%%%%%%%%%%%%%%%%%%
\usepackage{biblatex}
-\addbibresource{DEMO-TUDaBibliography.bib}% Dateiname der .bib-datei
-
-%%%%%%%%%%%%%%%%%%%
-% Paketvorschläge Tabellen
-%%%%%%%%%%%%%%%%%%%
-\usepackage{array}% Grundlegendes Ergänzungspaket für Tabellen. Wird von den folgenden Paketen indirekt geladen
-%\usepackage{tabularx}% Tabellen mit fester Breite und entsprechend umbrechenden Spalten
-%\usepackage{longtable}% Mehrseitige Tabellen
-%\usepackage{xltabular}% Mehrseitige Tabellen mit fester Breite
-%\usepackage{booktabs}% Verbesserte Möglichkeiten für Tabellenlayout über horizontale Linien
-
-%%%%%%%%%%%%%%%%%%%
-% Paketvorschläge Mathematik/Formelsatz
-%%%%%%%%%%%%%%%%%%%
-%\usepackage{mathtools}% Erweiterte Fassung von amsmath
-%\usepackage{amssymb}% Erweiterter Zeichensatz
-%\usepackage{siunitx}% Werte und Einheiten
+\addbibresource{DEMO-TUDaBibliography.bib}% File name of BibTeX database
%%%%%%%%%%%%%%%%%%%
-% Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig!
+% Package suggestions for tables
%%%%%%%%%%%%%%%%%%%
-\let\file\texttt
-\let\code\texttt
-\let\tbs\textbackslash
-\let\pck\textsf
-\let\cls\textsf
-\biburlsetup
+\usepackage{array}% Fundamental tools for tables. Is automatically loaded by the following packages
+%\usepackage{tabularx}% Tables with flexible columns to achieve fixed width
+%\usepackage{longtable}% Tables across multiple pages
+%\usepackage{xltabular}% Tables with fixed width spanning multiple pages
+%\usepackage{booktabs}% Improved layout for horizontal rules in tables
-\usepackage{tabularx,booktabs}%Tabellenpakete (siehe oben)
-\usepackage{pifont}% Zapf-Dingbats Symbole
-\newcommand*{\FeatureTrue}{\ding{52}}
-\newcommand*{\FeatureFalse}{\ding{56}}
%%%%%%%%%%%%%%%%%%%
-% Ende der Demo-Formatierungseinstellungen
+% Package suggestions math
%%%%%%%%%%%%%%%%%%%
-\begin{document}
+%\usepackage{mathtools}% Extended version of amsmath
+%\usepackage{amssymb}% Additional symbols
+%\usepackage{siunitx}% Numbers and Units
+
+\hypersetup{% Metadata adjustments, in case these are not set, the data provided for \maketitle will be used
+ pdfauthor=Marei Peischl (peiTeX),
+ pdfcreationdate=2024-05-03,
+ pdfkeywords={TU Darmstadt; Corporate Design; LaTeX}
+}
-\title{TUDaThesis -- Abschlussarbeiten im Corporate Design der TU Darmstadt}
-\subtitle{\LaTeX{} using TU Darmstadt's Corporate Design}
+\title{TUDaThesis -- Theses using TU Darmstadt's CI}
+\subtitle{\LaTeX{} im Corporate Design der TU Darmstadt}
\author{Marei Peischl}
-% \birthplace{}% Geburtsort. Bei Dissertationen zwingend notwendig
-\reviewer{Reviewer 1 \and Reviewer 2 \and … }
+\reviewer{Reviewer 1 \and Reviewer 2 \and …}
-% Diese Felder werden untereinander auf der Titelseite platziert.
-% \department ist eine notwendige Angabe, siehe auch dem Abschnitt `Abweichung von den Vorgaben für die Titelseite'
-\department{ce}% Das Kürzel wird automatisch ersetzt und als Studienfach gewählt sofern es definiert ist.
-\institute{Institut}
-\group{Arbeitsgruppe}
+% The following elements will be placed on the title page
+\department{ce}% If defined the shorthand will be replaced by the full name otherwhise it's used directly.
+\institute{Institute}
+\group{Group}
\submissiondate{\today}
\examdate{\today}
-%\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}% Lizenzdaten für TUprints
+%\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}% License information for TUprints
+
+\begin{document}
\maketitle
-%% Das Affidavit wurde auf Wunsch des Dezernat II per default deaktiviert.
-%% Der rechtlich bindende Text findet sich nach Aukunft des Dezernats unter https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp
-%% Es soll die docx Datei verwendet, ausgedruckt, unterschrieben, eingescannt und dann eingebunden werden.
-%% Die einfachste Möglichkeit bietet hierfür das pdfpages Paket.
+
+%% The affidavit was deactivated by default at the request of Department II.
+%% According to the department, the legally binding text can be found at https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp
+%% The docx file should be used, printed out, signed, scanned and then integrated.
+%% The easiest way to do this is to use the pdfpages package.
%%
-%% Aus Kompatibilitätsgründen für die anderen Templates ist die Funktion weiterhin verfügbar.
-%% \affidavit[signature-image={\includegraphics[width=\width,height=1cm]{example-image}}, <hier können andere Optionen zusätzlich stehen>]
+%% For compatibility reasons for the other templates, the function is still available.
+%% \affidavit[signature-image={\includegraphics[width=\width,height=1cm]{example-image}}, <there may be additional options here>]
\tableofcontents
-% Ggf. weitere Verzeichnisse wie \listoffigures oder ein Abkürzungsverzeichnis
-
-
-\addchap{Über diese Datei}
-Die Datei \file{DEMO-TUDaThesis.tex} ist ein Template für Abschlussarbeiten im Stil des Corporate Designs der TU Darmstadt.
-Sie ist Teil des TUDa-CI-Bundle und wurde in Teilen durch das tuddesign-Paket von C.~v.~Loewenich und J.~Werner inspiriert.
-
-
-
-
-Sie verwendet die Dokumentenklasse \file{tudapub.cls}, allerdings mit erweiterten Einstellungen. In diesem Dokument werden überwiegend die speziell auf Abschlussarbeiten ausgelegten Möglichkeiten beschrieben. Weitere Konfigurationsmöglichkeiten finden sich in der Datei \file{DEMO-TUDaPub.pdf} \cite{tudapub}.
-
-Es ist voreingestellt, dass eine PDF/A-Datei erzeugt wird. Die beste Kompatibilität hierfür bietet Lua\LaTeX. Bei anderen Compilern kann dies entsprechend der Angaben in DEMO-TUDaPub zu Problemen führen. In diesem Fall sollte entweder der Compiler gewechselt oder \code{pdfa=false} aktiviert werden.
-
-Für weitere Hinweise kann ein Blick in die zur Dokumentenklasse gehörigen Dokumentation (DEMO-TUDaPub.pdf) hilfreich sein. Sie wird zusammen mit den Quelldateien verteilt.
-
-\minisec{Unterschiede der Demodateien DEMO-TUDaThesis und DEMO-TUDaPhD}
-Zwar basieren alle drei DEMO-Dateien auf der Klasse \code{tudapub}, allerdings sind die Basiseinstelungen dem Dokumententyp angepasst.
-Für Erläuterungen zu den TUDaPub spezifischen Optionen, sei auf die Datei DEMO-TUDaPub verwiesen.
-Da die Basisklasse für beide identisch ist, kann jede Option abgeändert werden. Die Folgende Liste zeigt lediglich die gezeigten Features bei Standardeinstellungen.
-
-\noindent\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}}
- \toprule
- Option&DEMO-TUDaThesis&DEMO-TUDaPhD&DEMO-TUDapub\\
- \midrule
- twoside&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule
- parskip&\FeatureTrue&\FeatureFalse&\FeatureTrue\\\midrule
- Kolophon&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule
- Widmung&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule
- Schriftgröße&11pt&11pt&9pt\\\midrule
- ruledheaders&section&chapter&all\\\midrule
- Basisklasse&scrreprt&scrbook&scrartcl\\\midrule
- thesis&\ttfamily type=bachelor&\ttfamily type=dr, dr=rernat
- &\FeatureFalse\\\midrule
- marginpar&\FeatureFalse&\FeatureFalse&\FeatureTrue\\\midrule
- Affidavit\newline\rlap{(Selbstständigkeitserklärung)}&\FeatureTrue&\FeatureTrue&\FeatureFalse\\\midrule
- abstract&\FeatureFalse&\FeatureTrue&\FeatureTrue\\\midrule
- custommargins&\FeatureTrue&\FeatureTrue&\FeatureFalse\\
- \bottomrule
-\end{tabularx}
-
-\chapter{Verwendung}
-Die Klasse kann wie für Dokumentenklassen üblich eingebunden werden
-\begin{verbatim}
-\documentclass[thesis]{tudapub}
-\end{verbatim}
-Die Option \code{thesis} wechselt hierbei in den Modus, der spezielle Features für Abschlussarbeiten freischaltet, die in diesem Dokument beschrieben werden.
-
-Darüber hinaus lässt sich die Klasse verwenden wie die Standard-KOMA-Script-Klasse, auf der sie basiert.
-Voreingestellt ist hierbei \code{scrreprt}.
-
-Allgemein bietet \KOMAScript{} viele Möglichkeiten zu Anpassungen. Wie in der tudapub-Demo-Datei beschrieben, können hier jedoch nicht alle erläutert werden, ein Blick in die offizielle Dokumentation ist daher häufig hilfreich \cite{scrguide}.
-
-\section{Sprachanpassung}
-Der Modus für Abschlussarbeiten setzt einige sprachabhängige Bezeichnungen.
-Teilweise ist Deutsch für diese Elemente als Hauptsprache vorgeschrieben (z.\,B. die Selbstständigkeitserklärung). Für die korrekte Verarbeitung wird daher ein Paket zur Sprachanpassung benötigt.
-TUDa-CI verwendet hierfür das babel-Paket.
-
-Dies wird jedoch nicht automatisch geladen, da hierfür die Konfiguration der Sprachen bekannt sein müsste. Die Demo-Dateien für Abschlussarbeiten (\file{DEMO-TUDaThesis.tex}/""\file{DEMO-TUDaPhD.tex}) laden hierfür die Konfiguration:
-\begin{verbatim}
-\usepackage[english, main=german]{babel}
-\end{verbatim}
-Diese ist für ein Dokument mit Deutsch als Hauptsprache und Englischen Elementen.
-Die Hauptsprache wird als Wert der Option \verb+main=+ übergeben.
-Das Laden von \verb+german+ wird in den Fällen, in denen es von TUDa-CI benötigt wird, automatisch ausgelöst.
-Für eine bessere Übersichtlichkeit ist es dennoch hilfreich es dort aufzuführen.
-
-Falls die Hauptsprache nicht Deutsch ist, wäre daher die folgende Konfiguration sinnvoll:
-\begin{verbatim}
-\usepackage[german, main=<Hauptsprache>]{babel}
-\end{verbatim}
-
-\section{Übergabe der Titeldaten}
-
-Die Daten werden analog zur klassischen Titeleierzeugung mit \verb+\maketitle+ übergeben. Allerdings wurden die Felder um ein paar speziellere Daten erweitert. Sofern nicht anders angegeben, verfügen alle Makros über ein notwendiges Argument für die Datenübergabe, z.\,B.
-\begin{verbatim}
-\title{\LaTeX{} im Corporate Design der TU Darmstadt}
-\end{verbatim}
-Es ist zu beachten, dass für die Erzeugung der Titelseite nach Übergabe aller Daten \verb+\maketitle+ aufgerufen werden muss.
-
-Falls eine Layoutanpassung der Titelseite notwendig ist, gelten die in der TUDaPub-Dokumentation geschilderten Optionen. Dort finden sich auch Hinweise zur Platzierung von Sponsorenlogos. \cite{tudapub}
-
-\begin{description}\setkomafont{descriptionlabel}{\ttfamily\textbackslash}
- \item[title] Titel, wird in sehr großer Schrift im obersten Block der Titelseite platziert. Die Schriftgröße ist aufgrund der Häufigkeit für lange Titel kleiner gewählt als für andere Publikationen.
- \item[subtitle] Untertitel. Dieses Feld kann alternativ für eine Übersetzung genutzt werden.
- \item[author] Der Autor/dir Autoren. Mehere Autoren werden durch \verb+\and+ getrennt.
- \item[studentID] Matrikelnummer. Nach den Vorgaben des Templates ist diese Angabe immer optional.
- \item[birthplace] Geburtsort. Angabe ist bei Dissertationen notwendig.
- \item[reviewer] Gutachter. Mehrere Gutachter werden, wie Autoren durch \verb+\and+ getrennt. Die Nummerierung läuft von links nach rechts.
- \minisec{Änderung des Bezeichners}
- Die Änderung des Bezeichners ist über ein optionales Argument möglich:
-\begin{verbatim}
- \reviewer[Ersatzbezeichner]{Name1 \and Name2}
-\end{verbatim}
- Um die numerische Benennung abzuändern ist es zusätzlich möglich statt dem Ersatzbezeichner eine Kommaliste zu übergeben:
-\begin{verbatim}
- \reviewer*[Bezeichner1, Bezeichner2]{Name1 \and Name2}
-\end{verbatim}
- In diesem Fall entfällt die Nummerierung vor dem Bezeichner. Soll z.\,B. den Formulierungen der Promotionsordnung entsprochen werden, gilt:
-\begin{verbatim}
- \reviewer[Erstreferent\_in,Koreferent\_in]{Name1 \and Name2}
-\end{verbatim}
- Für die Erstellung Fachbereichsspezifischer Templates existiert hierfür auch ein Makro, dass ohne den Aufruf von \verb+\reviewer+ Änderungen zulässt.
-\begin{verbatim}
- \setupReviewName{Ersatzwort für „Gutachten“}
-\end{verbatim}
- Setzt die ersten beiden Bezeichner. Alternativ ist es auch möglich Positionen einzeln zu benennen \verb+\setupReviewName[1]{Erstferent}+, eine Übergabe als Komma-Liste ist als \verb+\setupReviewName*{Bezeicher1,Bezeicher2}+ möglich.
- \item[institution] Einrichtung. Dieser Eintrag, wie auch die beiden folgenden, werden unterhalb des Logos auf der Titelseite platziert.
- \item[department] Fach-/Studienbereich, allerdings ist die oben genannte Option zu bevorzugen. Die Verarbeitung des Arguments erfolgt jedoch analog.
-
- Dieses Makro verfügt jedoch zusätzlich über die Möglichkeit abweichende Einträge gegenüber den Vorgaben anzugeben. Insbesondere wenn eine gesonderte Formulierung gegenüber der voreingestellten \enquote{im Fachbereich} und ihren Varianten notwendig ist. Hierfür liefert \code{\textbackslash{}department} ein optionales Argument:
-
-\begin{verbatim}
- \department[Ersatztext]{Kürzel/Bezeichnung}
-\end{verbatim}
- Zusätzlich gibt es ab Version 2.01 auch die Möglichkeit den gesamten Text \enquote{im Fachbereich <Bereichsbezeichnung>}, sowie die Angabe in der Infobox auf der Titelseite zu ersetzen. Dies geschieht über die gesternte Variante:
-\begin{verbatim}
- \department*[Text für die Box]{Text zwischen Typ und Autor}
-\end{verbatim}
- \item[group] Arbeitsgruppe.
- \item[submissiondate] Datum der Einreichung
- \item[examdate] Datum der Disputation
- \item[date] Beliebiges Datum. Wird über \verb|datename| bezeichnet.
- \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt, Technische Universität Darmstadt} (bei Dissertationen) vorbelegt.
- \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das Dokument über TUprints Veröffentlicht werden soll.
-\begin{verbatim}
- \tuprints{
- printid=12345,
- urn=123456,
- year=2022
- }
-\end{verbatim}
- Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben.
-
- Die printid is die ID-Nummer des TUprints-Eintrags. Die urn ist ein dauerhaft eindeutig zitierfähiger Bezeichner für das Dokument. Die Nummer entspricht bei TUprints der printid mit Ergänzung einer Prüfzimmer. Beide Angaben sind in den Details des TUprints-Eintrags zu finden.
-
- \minisec{Lizenzangabe}
- Ab Version 2.07 ist es zudem möglich einen eigenen Lizenztext über den Schlüssel \verb|license=<Text>| zu übergeben. Dieser ersetzt dann die voreingestellte Lizenzangabe.
-
- Es existieren (seit v3.08) vorgefertigte Werte für die Option \verb|license|, um eine einfachere Anpassung zu ermöglichen. Diese lauten:
-
- \parbox[t]{.5\linewidth}{%
- \ttfamily
- \href{https://creativecommons.org/licenses/by/4.0/}{cc-by-4.0} \textnormal{Voreinstellung seit Version 4.0}\par
- \href{https://creativecommons.org/licenses/by-sa/4.0/}{cc-by-sa-4.0}\par
- \href{https://creativecommons.org/licenses/by-nc-sa/4.0/}{cc-by-nc-sa-4.0}\par
- \href{https://creativecommons.org/licenses/by-nc-/4.0/}{cc-by-nc-4.0}\par
- }%
- \parbox[t]{.5\linewidth}{
- \ttfamily
- \href{https://creativecommons.org/licenses/by-nd/4.0/}{cc-by-nd-4.0}\par
- \href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{cc-by-nc-nd-4.0}\par
- \href{https://rightsstatements.org/page/InC/1.0/}{inc-1.0}\textnormal{ (Ab Version 3.36)}
- \href{https://creativecommons.org/licenses/by-nc-nd/2.0/}{cc-by-nc-nd-2.0-de}\par
- }
-
- Dies ist Bestandteil der Vorbereitung zur Anpassung der Standardlizenz, welche durch die Universitätsbibliothek angepasst wurde.
- Die entsprechende Diskussion findet sich unter \url{https://github.com/tudace/tuda_latex_templates/issues/251}. Die Anpassung der Voreinstellung bei TUDa-CI geschah mit Version 4.0.
-
- Unterstützung bei der Wahl einer passenden Creative Commons Lizenz bietet die ULB der TUDa unter https://www.ulb.tu-darmstadt.de/dpub oder das CC-Projekt sebst über seinen Lizenzfinder unter \url{http://creativecommons.org/choose/}.
- Die TU Darmstadt empfiehlt in Ihrer Publikationsrichtlinie und Open-Access-Policy die Nutzung der offenen CC BY 4.0 Lizenz.
-
- Falls ein von den oben gelisteten Schlüsseln abweichender Wert gesetzt wird, wird ebendieser direkt an der Stelle des Lizenztextes verwendet. Sofern der Text Gleichheitszeichen oder Kommata enthält ist eine Gruppierung notwendig.
- \item[titlegraphic] Hier kann Code übergeben werden, der den farbigen Block im unteren Teil der Titelseite ersetzt. Details sind in der allgemeinen TUDaPub-Dokumentation beschrieben \cite{tudapub}
- \item[titleintro] Ab Version 2.03 kann zusätzlich über diesen Hook ein beliebiger Text direkt nach dem Untertitel und vor den automatischen Daten ergänzt werden.
- \item[titleaddendum] Wie \code{\tbs{}titleintro} jedoch als letztes Element des Blocks.
-\end{description}
-
-\section{Weitere Macros}
-Das Makro \verb+\affidavit+ erzeugt eine Selbstständigkeitserklärung mit Unterschriftenzeile. Hier wird der oben übergebene Name/Signatur eingefügt.
-In diesem Dokument findet sich das Affidavit direkt nach der Titelei.
-
-Ab Version 3.32 entfällt die seit Version 3.06 unterstütze Unterscheidung zwischen einem Affidavit für digitale oder gedruckte Abgaben. Aus Kompatibilitätsgründen werden die Optionen weiterhin verstanden, allerdings bewirken nun beide das gleiche. Der Text entstammt von \url{https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp} (Stand 2023-06-19). Es ist wingend erforderlich, dass Studierende vor der Abgabe einer Arbeit überprüfen, ob der Text der geforderten Fassung entspricht.
-
-Dissertationen verwenden hier einen anderen Text, für die Unterscheidung wird die Affidavit-Option \verb+affidavit=dr+ intern verwendet.
-
-Version 3.20 ermöglicht zusätzlich die Übergabe weiterer Optionen für den Signatur-Namen, ein Signatur-Bild oder die Ortsangabe.
-Inwieweit diese Optionen verwendet werden dürfen ist jeweils vor der Verwendung durch die Nutzer:in abzuklären.
-TUDa-CI kann hierfür keine gesicherte Aussage treffen.
-\begin{verbatim}
- \affidavit[
- signature=Signaturname,
- signature-image={\includegraphics[width=\width]{signaturbild}}
- ]
-\end{verbatim}
-Eine vertikale Verschiebung des Signaturbildes ist nicht direkt implementiert, ist jedoch mit der Verwendung des \LaTeX-Makros \verb+\raisebox{<Verschiebung>}{<Inhalt>}+ problemlos möglich.
-
-Es besteht zusätzlich die Möglichkeit ein anderssprachiges Affidavit als Ergänzung mit abzudrucken. Um die Struktur und die ggf. notwendige Sprachumschaltung zu erledigen, existiert hierfür ab Version 2.03 eine Umgebung:
-
-\begin{verbatim}
-\begin{affidavit*}[Babel-Sprachoption]{Überschrift}
-Text
-\end{affidavit*}
-\end{verbatim}
-
-Diese Variante verfügt bewusst über keine Unterschriftenzeile, da diese Version laut Verständnis der Entwickler keine rechtliche Verbindlichkeit besitzt.
-
-Die Umgebung kann jedoch auch für besondere Formen der Erklärung genutzt werden. In diesem Fall kann eine zusätzliche Signaturzeile über
-\begin{verbatim}
-\AffidavitSignature[Stadt]
-\end{verbatim}
-hinzugefügt werden. Die Vorbelegung für Stadt ist hierbei \enquote{Darmstadt}.
-Ab Version 3.20 ist die Übergabe einer zusätzlichen Option für den Ort der Signatur auch als Option möglich.
-
-\begin{verbatim}
-\affidavit[signature-location=Stadt]
-\end{verbatim}
-
-\section{Layout-Optionen mit Verstoß gegen das Corporate Design}
-
-Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang.
-Daher existiert die Klassenoption \code{custommargins}, die für dieses Dokument aktiviert wurde (Wert \code{true}). Sie verfügt über die Werte \code{true}, \code{false} und \code{geometry} mit folgender Bedeutung:
-
-\begin{description}
- \item[custommargins=false] Standardeinstellung von \cls{tudapub}. Die Ränder entsprechen den Vorgaben des Corporate Design Guidelines. Die Einstellung wird durch \pck{geometry} durchgeführt. Eigene Anpassungen werden durch das Ausführen von \code{\textbackslash{}maketitle} überschrieben.
- \item[custommargins=true] Die Einstellungen des Corporate Design Guidelines werden nicht aktiviert. \pck{geometry} wird nicht geladen. Dieser Modus entspricht der Standardeinstellung von \KOMAScript{}. Dadurch werden die Ränder nicht fest definiert, sondern auf Basis des \pck{typearea}-Paketes berechnet \cite[vgl.][]{scrguide}.
- \item[custommargins=geometry] Diese Variante wurde auf Wunsch zur Verfügung gestellt, allerdings wird darauf hingewiesen, dass manuelle Randeinstellungen oft nicht zu einem harmonischen Satzspiegel führt.
- \pck{geometry} wird, wie bei \code{false} geladen und vorkonfiguriert. Es ist allerdings möglich kleinere Anpassung durch die Verwendung des Makros \code{\textbackslash{}geometry} zu setzen. Die Einstellungen, die zu Beginn des Dokuments gelten werden gespeichert und nach der Titelseite wiederhergestellt.
-
- Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen:
-\begin{verbatim}
-\geometry{
- reset,
- <Eigene Anpassungen>
-}
-\end{verbatim}
- Die gilt insbesondere für die Optionen \code{includehead}, \code{includefoot}, \code{includemp}.
-\end{description}
-
-\minisec{Hinweis zu den Kopf-/Fußzeilen}
-Wenn die Option \code{marginpar=true} gesetzt bleibt, ragen die Kopf- und Fußzeile über die Marginalspalte hinaus. Aus ästhetischen Gründen wird daher empfohlen in diesem Fall die Kopf- und Fußzeile mit \code{marginpar=false} auf den Textbereich zu beschränken.
-
-Auch ist das Standard-Layout der Kolumnentitel wenig vorteilhaft, da die Kolumnentitel damit local größer sein können als die eigentliche Überschrift. (\code{headline=automark})
-Deswegen kann über
-\begin{verbatim}
-\pagestyle{TUDa.headings}
-\end{verbatim}
-ein einfacherer Seitenstil ausgewählt werden, der die Nutzung mit lebenden Kolumnentitel erheblich vereinfacht. Dieser Stil ist über \pck{scrlayer-scrpage} realisiert und kann entsprechend der \KOMAScript{}-Dokumentation angepasst werden.
-
-\minisec{Hinweis zur Bindekorrektur}
-Bei Verwendung einer Bindekorrektur (\code{BCOR=<Länge>}) wird diese nicht automatisch auch auf der Titelseite eingefügt. Für diesen Fall wurde mit Version 3.0 zusätzlich die Option \code{BCORtitlepage} hinzugefügt. Falls diese aktiviert wird, nimmt die Titelseite den Wert der Typearea Option \code{BCOR} auf der ersten Seite als Zusatz zum linken Rand hinzu.
-
-\section{Spezielle Optionen für Abschlussarbeiten}
-Die Klasse unterstützt alle Optionen der \file{tudapub}-Klasse. Darüber hinaus besteht über Wertzuweisung der Option \code{thesis} die Möglichkeit spezielle Einstellungen zu wählen.
-Es ist prinzipiell möglich die Optionen auch direkt als Optionen zur \file{tudapub}-Klasse zu übergeben, allerdings ist dies aufgrund der schlechteren Übersicht nicht zu empfehlen.
-
-Für dieses Dokument wurden beispielsweise die Optionen als
-\begin{verbatim}
-thesis={type=drfinal,dr=phil}
-\end{verbatim}
-übergeben.
-
-Im folgenden findet sich die Bedeutung der einzelnen Optionen:
-\begin{description}
- \item[type=<Wert>] Auswahl des Typus. Dieser wird auf die Titelseite gesetzt und wählt zudem aus welche Daten für die Titelseite zwingend übergeben werden müssen.
- Es stehen die folgenden Werte zur Verfügung (die Werte in Klammern sind die notwendigen Titeldaten):
- \begin{itemize}
- \item \code{sta}: Studienarbeit (title, author, date)
- \item \code{diplom}: Diplomarbeit (title, author, submissiondate, reviewer, department)
- \item \code{bachelor}: Bachelorarbeit (title, author, submissiondate, department, reviewer)
- \item \code{master}: Masterarbeit (title, author, submissiondate, department, reviewer)
- \item \code{pp}: Project-Proposal (title, author, date, department)
- \item \code{dr}: vorgelegte Dissertation (title, author, submissiondate , birthplace, department, reviewer)
- \item \code{drfinal}: genehmigte Dissertation (title, author, submissiondate,examdate, birthplace, department, reviewer)
- \end{itemize}
- Wird ein Typus angegeben, der nicht erkannt wird, so wird der Text direkt übergeben. Notwendige Titelfelder über den Titel hinaus gibt es in diesem Fall nicht.
- \item[dr=<Kürzel>] Lädt einen der vordefinierten Texte für die Titelseite. Als Werte stehen bislang \code{rernat}, \code{ing} und \code{phil} zur Verfügung. Zum Beispiel lädt der Wert \code{phil}:
- \begin{quote}
- Zur Erlangung des Grades eines Doktor der Philosophie (Dr.\,phil.)
- \end{quote}
- Sofern keiner dieser Werte dem angestrebten Titel entspricht, kann ein Text direkt übergeben werden.
-\begin{verbatim}
- \drtext{Zur Erlangung des Grades \ldots}
-\end{verbatim}
- \item[department=<Kürzel>] Die Fachbereiche sind fest als Textbausteine in Deutscher sowie Englischer Sprache hinterlegt. Diese Option ermöglicht die Auswahl als Dokumentenklassenoption. Aus Kompatibilitätsgründen kann jedoch auch das Makro \code{department}-Makro hierfür genutzt werden. Zur Verfügung stehen:\par
- \begin{tabular}{@{}l@{${}\to{}$}l@{}}
- arch & Architektur\\
- bauing& Bau- und Umweltingenieurwissenschaften\\
- bio &Biologie\\
- chem &Chemie\\
- etit &Elektrotechnik und Informationstechnik\\
- gugw &Gesellschafts- und Geschichtswissenschaften\\
- humanw&Humanwissenschaften\\
- inf &Informatik\\
- mb &Maschinenbau\\
- matgeo&Material- und Geowissenschaften\\
- math &Mathematik\\
- phys &Physik\\
- wi &Rechts- und Wirtschaftswissenschaften
- \end{tabular}
-
- Neben den Fachbereichen existieren für Abschlussarbeiten, die keine Dissertationen sind auch Studienbereiche.
- Falls das Kürzel nicht als Fachbereich hinterlegt ist, wird automatisch auf die Studienbereiche geprüft. Die Studienbereiche haben die folgenden Kürzel:
-
- \begin{tabular}{@{}l@{${}\to{}$}l@{}}
- ce&Computational Engineering\\
- ese&Energy Science and Engineering\\
- ist&Information Systems Engineering\\
- mech&Mechanik\\
- metro&Mechatronik
- \end{tabular}
-
- Falls etwas anderes als eines dieser Kürzel übergeben wird, wird der Text direkt verwendet und eine entsprechende Warnung ausgegeben.
+% Additional lists like \listoffigures or acronyms might be added here
- Die Auswahl der Fachrichtung erzeugt zusätzlich eine Box auf der Titelseite unterhalb des Logos. Falls diese automatische Erstellung nicht gewünscht ist, kann dies über die Option \code{instbox=false} deaktiviert werden.
- \item[ignore-missing-data] Diese Option ist ein Schalter, der es ermöglicht die Fehlermeldung über nicht übergebene Titeldaten auszuschalten. In diesem Fall wird lediglich eine Warnung erzeugt, falls die angegeben Daten nicht mit den Anforderungen übereinstimmen.
-\end{description}
-\minisec{Abweichung von den Vorgaben für die Titelseite}
-Da es möglich sein kann von dieser Vorgabe abzuweichen, existiert für Sonderfälle die Dokumentenklassenoption \code{instbox=false}. Damit wird die automatische Verarbeitung der Daten für die Boxen auf der der Titelseite unterdrückt. In diesem Fall ist der Autor jedoch selbst für die Einhaltung der Vorschriften verantwortlich. Weitere Information zur Konstruktion der Boxen findet sich in den Verwendungshinweisen der Basisklasse TUDaPub. Zusätzlich sei auf die Möglichkeiten des \code{\textbackslash{}department}-Makros verwiesen, sofern die Abweichung sich auf den Text beschränkt.
+\addchap{About this file}
-\section{Erhöhter Zeilenabstand -- Hinweise zum setspace-Paket}
-Sofern die Vorgaben es erfordern, ist es möglich mit dem setspace-Paket den Durchschuss zu erhöhen. Allerdings beeinflusst dies natürlich sämtliche Zeilenabstände. Ein erhöhter Zeilenabstand sollte daher erst nach der Titelseite aktiviert werden. Allgemein ist es jedoch empfehlenswert auch für Verzeichnisse und sonstige Sonderelemente außerhalb des Fließtextes auf bei normalen Einstellungen zu bleiben.
+\enquote{DEMO-TUDaThesis.tex} is a basic template for theses using the Corporate Design of TU Darmstadt.
+It is part of TUDa-CI, which is the official template bundle of TU Darmstadt. The original version was inspired by the \enquote{tuddesign} bundle by C.~v.~Loewenich and J.~Werner.
-Setspace liefert hierfür die Möglichkeit, das Paket ohne Optionen zu laden und später über Makros, wie \code{\tbs{}onehalfspacing} das Umschalten zu verzögern. Alternativ kann auch durch die Umgebungen, wie \code{singlespace} lokal wieder zum Normalzustand gewechselt werden, sofern dies erforderlich ist.
\printbibliography
\end{document}
-%% End of file `DEMO-TUDaThesis-de.tex'.
+%% End of file `DEMO-TUDaThesis.tex'.
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/MANIFEST.md b/Master/texmf-dist/doc/latex/tuda-ci/MANIFEST.md
new file mode 100644
index 00000000000..85bda80a02e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tuda-ci/MANIFEST.md
@@ -0,0 +1,212 @@
+# Manifest for tuda-ci
+
+This file is a listing of all files considered to be part of this package.
+It is automatically generated with `l3build manifest`.
+
+
+## Repository manifest
+
+The following groups list the files included in the development repository of the package.
+Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed
+with ‘‡’ are included in both.
+
+### Source files
+
+These are source files for a number of purposes, including the `unpack` process which
+generates the installation files of the package. Additional files included here will also
+be installed for processing such as testing.
+
+* beamercolorthemeTUDa.dtx ‡
+* beamerfontthemeTUDa.dtx ‡
+* beamerinnerthemeTUDa.dtx ‡
+* beamerouterthemeTUDa.dtx ‡
+* beamerthemeTUDa2008.dtx ‡
+* tuda-ci.dtx ‡
+* tudabeamer.dtx ‡
+* tudacolors.dtx ‡
+* tudaexercise.dtx ‡
+* tudafonts.dtx ‡
+* tudaleaflet.dtx ‡
+* tudaletter.dtx ‡
+* tudaposter.dtx ‡
+* tudarules.dtx ‡
+* tudasciposter.dtx ‡
+* tudasize.dtx ‡
+* tuda-ci.ins ‡
+* beamerthemeTUDa-mecheng.sty ‡
+* tuda-pgfplots.sty ‡
+* tudamecheng.cfg ‡
+* tudacolors.def ‡
+
+### Example document source files
+
+These files are examples of use and also some kind of documentation for the specific document types.
+
+* DEMO-TUDaAnnouncement-de.tex †
+* DEMO-TUDaAnnouncement.tex ‡
+* DEMO-TUDaBeamer-de.tex †
+* DEMO-TUDaBeamer.tex ‡
+* DEMO-TUDaExercise-de.tex †
+* DEMO-TUDaExercise.tex ‡
+* DEMO-TUDaLeaflet-de.tex †
+* DEMO-TUDaLeaflet.tex ‡
+* DEMO-TUDaLetter-de.tex †
+* DEMO-TUDaLetter.tex ‡
+* DEMO-TUDaPhD-de.tex †
+* DEMO-TUDaPhD.tex ‡
+* DEMO-TUDaPoster-de.tex †
+* DEMO-TUDaPoster.tex ‡
+* DEMO-TUDaPub-de.tex †
+* DEMO-TUDaPub.tex ‡
+* DEMO-TUDaReport-de.tex †
+* DEMO-TUDaReport.tex ‡
+* DEMO-TUDaSciPoster-de.tex †
+* DEMO-TUDaSciPoster.tex ‡
+* DEMO-TUDaThesis-de.tex †
+* DEMO-TUDaThesis.tex ‡
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* README.md ‡
+
+### Additional Example files in German
+
+* DEMO-TUDaAnnouncement-de.tex †
+* DEMO-TUDaBeamer-de.tex †
+* DEMO-TUDaExercise-de.tex †
+* DEMO-TUDaLeaflet-de.tex †
+* DEMO-TUDaLetter-de.tex †
+* DEMO-TUDaPhD-de.tex †
+* DEMO-TUDaPoster-de.tex †
+* DEMO-TUDaPub-de.tex †
+* DEMO-TUDaReport-de.tex †
+* DEMO-TUDaSciPoster-de.tex †
+* DEMO-TUDaThesis-de.tex †
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* README.md ‡
+* MANIFEST.md ‡
+
+### Derived files
+
+The files created by ‘unpacking’ the package sources. This typically includes
+`.sty` and `.cls` files created from DocStrip `.dtx` files.
+
+* beamercolorthemeTUDa.sty †
+* beamercolorthemeTUDa2008.sty †
+* beamerfontthemeTUDa.sty †
+* beamerfontthemeTUDa2008.sty †
+* beamerinnerthemeTUDa.sty †
+* beamerinnerthemeTUDa2008.sty †
+* beamerinnerthemeTUDa2023.sty †
+* beamerouterthemeTUDa.sty †
+* beamerouterthemeTUDa2008.sty †
+* beamerthemeTUDa.sty †
+* beamerthemeTUDa2008.sty †
+* beamerthemeTUDa2023.sty †
+* tudacolors.sty †
+* tudafonts.sty †
+* tudarules.sty †
+* tudabeamer.cls †
+* tudaleaflet.cls †
+* tudaletter.cls †
+* tudaposter.cls †
+* tudapub.cls †
+* tudasciposter.cls †
+* tudathesis.cfg †
+* tuda-a0paper.clo †
+* tuda-a1paper.clo †
+* tuda-a2paper.clo †
+* tuda-a3paper.clo †
+* tuda-a4paper.clo †
+* tuda-a5paper.clo †
+* tudalettersize10pt.clo †
+* tudasize9pt.clo †
+
+### Typeset documents
+
+The output files (PDF, essentially) from typesetting the various source, demo,
+etc., package files.
+
+* DEMO-TUDaAnnouncement.pdf ‡
+* DEMO-TUDaBeamer.pdf ‡
+* DEMO-TUDaExercise.pdf ‡
+* DEMO-TUDaLeaflet.pdf ‡
+* DEMO-TUDaLetter.pdf ‡
+* DEMO-TUDaPhD.pdf ‡
+* DEMO-TUDaPoster.pdf ‡
+* DEMO-TUDaPub.pdf ‡
+* DEMO-TUDaReport.pdf ‡
+* DEMO-TUDaSciPoster.pdf ‡
+* DEMO-TUDaThesis.pdf ‡
+
+### Support files
+
+These files are used for unpacking, typesetting, or checking purposes.
+
+* DEMO-TUDaBibliography.bib ‡
+* DEMO-TUDaFromaddress.lco ‡
+
+
+## CTAN manifest
+
+The following group lists the files included in the CTAN package.
+
+### CTAN source files
+
+* beamercolorthemeTUDa.dtx
+* beamerfontthemeTUDa.dtx
+* beamerinnerthemeTUDa.dtx
+* beamerouterthemeTUDa.dtx
+* beamerthemeTUDa-mecheng.sty
+* beamerthemeTUDa2008.dtx
+* tuda-ci.dtx
+* tuda-ci.ins
+* tuda-pgfplots.sty
+* tudabeamer.dtx
+* tudacolors.def
+* tudacolors.dtx
+* tudaexercise.dtx
+* tudafonts.dtx
+* tudaleaflet.dtx
+* tudaletter.dtx
+* tudamecheng.cfg
+* tudaposter.dtx
+* tudarules.dtx
+* tudasciposter.dtx
+* tudasize.dtx
+
+### CTAN example files
+
+* DEMO-TUDaAnnouncement.tex
+* DEMO-TUDaBeamer.tex
+* DEMO-TUDaBibliography.bib
+* DEMO-TUDaExercise.tex
+* DEMO-TUDaLeaflet.tex
+* DEMO-TUDaLetter.tex
+* DEMO-TUDaPhD.tex
+* DEMO-TUDaPoster.tex
+* DEMO-TUDaPub.tex
+* DEMO-TUDaReport.tex
+* DEMO-TUDaSciPoster.tex
+* DEMO-TUDaThesis.tex
+
+### CTAN documentation files
+
+* DEMO-TUDaAnnouncement.pdf
+* DEMO-TUDaBeamer.pdf
+* DEMO-TUDaExercise.pdf
+* DEMO-TUDaLeaflet.pdf
+* DEMO-TUDaLetter.pdf
+* DEMO-TUDaPhD.pdf
+* DEMO-TUDaPoster.pdf
+* DEMO-TUDaPub.pdf
+* DEMO-TUDaReport.pdf
+* DEMO-TUDaSciPoster.pdf
+* DEMO-TUDaThesis.pdf
+* tuda-ci.pdf
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/README.md b/Master/texmf-dist/doc/latex/tuda-ci/README.md
index 1adcd629dcd..42f9662bb44 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/README.md
+++ b/Master/texmf-dist/doc/latex/tuda-ci/README.md
@@ -1,13 +1,13 @@
# TUDa-CI – Corporate Design LaTeX-Templates for TU Darmstadt
- Copyright (C) Marei Peischl <marei@peitex.de>, 2018–2024
+Copyright (C) Marei Peischl <marei@peitex.de>, 2018–2025
- tuda-ci v3.41 (2024-07-02)
+tuda-ci v4.00 (2025-01-26)
***************************************************************************
- This material is subject to the LaTeX Project Public License version 1.3c
- or later. See http://www.latex-project.org/lppl.txt for details.
+This material is subject to the LaTeX Project Public License version 1.3c
+or later. See http://www.latex-project.org/lppl.txt for details.
***************************************************************************
@@ -16,30 +16,35 @@
[English version below](#summary)
## Zusammenfassung
+
Das TUDa-CI-Bundle ist die Umsetzung des Corporate Designs der TU Darmstadt in LaTeX.
Es liefert neben den Klassen-, Paket- und Konfigurationsdateien auch Anwenderdokumentation in Form von Templatedateien für verschiedene Dokumententypen.
Das Gesamtpaket wurde in Teilen inspiriert von Clemens von Loewenichs and Joe Werners TUD-Design Paket.
-Derzeit existieren diese Templates nur in Deutscher Sprache.
+Die Beispieldateien existieren auf Deutsch und Englisch.
+Im CTAN Release sind nur die Englischsprachigen Dateien enthalten.
+Die Deutschsprachigen sind unter sind im [GitHub Repository](https://github.com/tudace/tuda_latex_templates/tree/main/examples) zu finden.
## Support und Hilfe
-Die ULB bietet über das Team Infokompetenz LaTeX-Support und insbesondere Hilfe bei der Verwendung von TUDa-CI an. (https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.de.jsp). Darüber hinaus findet auch die Sprechstunde wieder statt. Die Termine zu allen Lernformaten finden sich unter https://www.ulb.tu-darmstadt.de/lernen_arbeiten/lehr_und_lernformate/textverarbeitung/textverarbeitung.de.jsp
+Die ULB bietet über das Team Infokompetenz LaTeX-Support und insbesondere Hilfe bei der Verwendung von TUDa-CI an. (https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.de.jsp). Darüber hinaus findet auch die Sprechstunde wieder statt und bietet die Möglichkeit individuelle Fragestellungen zu bearbeiten.
+Die Termine zu allen Lernformaten finden sich auf der [Website der ULB](https://www.ulb.tu-darmstadt.de/lernen_arbeiten/lehr_und_lernformate/textverarbeitung/textverarbeitung.de.jsp).
## Verwendungshinweis
+
Die Richtlinien des Corporate Designs (https://www.intern.tu-darmstadt.de/media/medien_stabsstelle_km/services/medien_cd/das_bild_der_tu_darmstadt.pdf), sowie die Anforderungen der Universitätsbibliothek erfordern einige spezielle Konfigurationen. Beispielsweise ist für wissenschaftliche Veröffentlichungen und Abschlussarbeiten die Erzeugung einer archivierbaren PDF-Datei (PDF/A) vorgesehen.
Dies ist mit aktuellen LaTeX-Paketen und dem Compiler LuaLaTeX deutlich besser umzusetzen, als mit älteren Formaten.
Aus diesem Grund sollten Sie vor der Verwendung von TUDa-CI Ihre TeX-Distribution aktualisieren und nach Möglichkeit LuaLaTeX als Compiler verwenden.
-Die Nutzung anderer Kompilierungsprogramme ist grundsätzlich möglich, allerdings werden dann ggf. nicht alle Funktionen unterstützt. Es kann sogar notwendig sein, die Erzeugung von PDF/A zu unterbinden.
-Weitere Hinweise finden sich in den Beispieldateien dokumentiert. Diese sind auch als kompilierte PDFs unter http://mirror.ctan.org/macros/latex/contrib/tuda-ci/doc oder – falls das Paket installiert ist – im ensprechenden Doku-Verzeichnis (<Pfad zu Ihrer LaTeX-Installation>/doc/latex/tuda-ci) verfügbar.
+Die Nutzung anderer Kompilierungsprogramme ist grundsätzlich möglich, allerdings werden dann ggf. nicht alle Funktionen unterstützt.
+Weitere Hinweise finden sich in den Beispieldateien dokumentiert. Diese sind auch als kompilierte PDFs auf [CTAN](http://mirror.ctan.org/macros/latex/contrib/tuda-ci/doc) oder – falls das Paket installiert ist – im ensprechenden Doku-Verzeichnis (<Pfad zu Ihrer LaTeX-Installation>/doc/latex/tuda-ci) verfügbar.
## Abhängigkeiten
-Das Bundle verwendet Pakete der Standard-LaTeX-Distributionen. Bei der Verwendung von paketierten Versionen über die Linux-Paketverwaltung kann dies ggf. zu Schwierigkeiten führen.
-In den häufigsten Fällen fehlt ein Teilpaket mit dem Namen URspecialopts.sty. Dieses Paket wird für die Optionsdurchreichung genutzt und ist Teil des urcls-Bundle: https://ctan.org/pkg/urcls
+Das Bundle verwendet Pakete der Standard-LaTeX-Distributionen. Bei der Verwendung von paketierten Versionen über die Linux-Paketverwaltung kann dies ggf. zu Schwierigkeiten führen.
## Installation
+
TUDa-CI ist Bestandteil der beiden populären TeX Distributionen ([MikTeX](https://miktex.org/download) & [TeX Live](https://tug.org/texlive/), und damit auch im MacTeX-Paket).
Es ist somit möglich die Templates über die TeX Distribution zu installieren und zu updaten.
@@ -47,12 +52,14 @@ Bei TeX Live werden Updates und Paketinstalation durch das Programm „TeX Live
Unter Mac und Windows existieren bei Standardeinstellungen auch grafische Nutzeroberflächen, die durch das Update/die Installation führen.
Falls Sie noch keine Distribution installiert haben, finden Sie die notwendigen Informationen zur Installation von TeX Live unter:
+
- Windows/Linux https://tug.org/texlive/acquire-netinstall.html
-- MacTeX http://tug.org/mactex/
+- MacTeX http://tug.org/mactex/
#### Sonderfall: Paketverwaltung des Betriebssystems (Linux/BSD)
+
Für einige Linux/BSD-Varianten existieren texlive-Pakete die über die Paketverwaltung des Systems installierbar sind.
-Da TUDa-CI sehr speziell ist, ist es meistens nur in der Paketen *texlive-full* enthalten.
+Da TUDa-CI sehr speziell ist, ist es meistens nur in der Paketen _texlive-full_ enthalten.
Allerdings sind die in den Paketverwaltungen enthalten TeX Live Versionen häufig stark veraltet und die Logo-Dateien müssen ohnehin zusätzlich installiert werden.
Wir empfehlen daher die Installation von TeX Live über den TeX Live Manager: https://tug.org/texlive/doc/texlive-en/texlive-en.html#installation.
@@ -62,80 +69,34 @@ Die TUDa verfügt über eine eigene Overleaf-Installation, auf die alle Mitglied
Somit ist eine Nutzung ohne lokale Installation möglich.
### Logos & verwendete Bilddateien
-Die verwendeten Logos sind nicht Bestandteil dieses Bundles und können von Mitgliedern der TU Darmstadt über das interne Netzwerk heruntergeladen werden.
-https://download.hrz.tu-darmstadt.de/protected/ULB/tuda_logo.pdf
+Die verwendeten Logos sind nicht Bestandteil dieses Bundles und können von Mitgliedern der TU Darmstadt über das interne Netzwerk heruntergeladen werden.
-Für die permanente Installation der Logodateien findet sich unter
-https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.de.jsp
-ein Paket mit entsprechenden Hinweisen.
+Der Download sowie ein Paket, mit Installtionsskripten für die permanente Installation der Logodateien findet sich auf der (zugehörige Seite der ULB)[https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.de.jsp].
-Für Nicht-Mitglieder ist eine Möglichkeit zur Platzierung eines Ersatzlogos dokumentiert.
+Für Nicht-Mitglieder ist eine Möglichkeit zur Platzierung eines Ersatzlogos dokumentiert und es existiert die Möglichkeit Fehlende Logos per Option zu ignorieren.
## Enthaltene Templatedateien
-Dokumententyp | Templatedatei(en) | Dokumentenklasse
----------------------------------------- | ------------------------------------------------------------------------------------ | ----------------
-Interne Berichte (minimales template) | DEMO-TUDaReport.tex | tudapub.cls mit tudasize9pt.clo
-Wissenschaftliche Artikel | DEMO-TUDaPub.tex, verwendet auch DEMO-TUDaBibliography.bib | tudapub.cls
-Abschlussarbeiten | DEMO-TUDaThesis.tex/DEMO-TUDaPhD.tex, verwendet auch DEMO-TUDaBibliography.bib | tudapub.cls mit tudathesis.cfg
-Wissenschaftliche Poster | DEMO-TUDaSciPoster.tex | tudasciposter.cls
-Veranstaltungsankündigungen | DEMO-TUDaPoster.tex | tudaposter.cls
-Ausschreibungen | DEMO-TUDaAnnouncement.tex | tudaposter.cls
-Präsentationen | DEMO-TUDaBeamer.tex | tudabeamer.cls
-Briefe | DEMO-TUDaLetter.tex, verwendet auch DEMO-TUDaFromaddress.lco | tudaletter.cls mit tudalettersize10pt.clo
-Übungsblätter | DEMO-TUDaExercise.tex | tudaexercise.cls
-Flyer/Faltblätter | DEMO-TUDaLeaflet.tex | tudaleaflet.cls
-
-Darüber hinaus existieren Beispieldateien für:
-Kompatibilitätsmodus TUDexercise: https://github.com/tudace/tuda_latex_templates/blob/master/example/Examples-TUDexercise-compat.tex
-Farbskalen von tuda-pgfplots: https://github.com/tudace/tuda_latex_templates/blob/master/example/Examples-TUDa-pgfplots.tex
-
-## Liste aller enthaltenen Dateien:
-
-* README.md
-* example/
- - DEMO-TUDaAnnouncement.tex
- - DEMO-TUDaBeamer.tex
- - DEMO-TUDaBibliography.bib
- - DEMO-TUDaExercise.tex
- - DEMO-TUDaLeaflet.tex
- - DEMO-TUDaLetter.tex
- - DEMO-TUDaPhD.tex
- - DEMO-TUDaPoster.tex
- - DEMO-TUDaPub.tex
- - DEMP-TUDaReport.tex
- - DEMO-TUDaSciPoster.tex
- - DEMO-TUDaThesis.tex
- - TuDa_Demo.lco
-* tex/
- - tudabeamer.cls
- - beamercolorthemeTUDa.sty
- - beamerfontthemeTUDa.sty
- - beamerinnerthemeTUDa.sty
- - beamerouterthemeTUDa.sty
- - beamerthemeTUDa.sty
- - tudacolors.cfg
- - tudacolors.def
- - tudacolors.sty
- - tudaexercise.cls
- - tudafonts.sty
- - tudaleaflet.cls
- - tudaletter.cls
- - tudalettersize10pt.clo
- - tudaposter.cls
- - tudapub.cls
- - tudarules.sty
- - tudasciposter.cls
- - tudasize9pt.clo
- - tudathesis.cfg
- - tuda-a0paper.clo
- - tuda-a1paper.clo
- - tuda-a2paper.clo
- - tuda-a3paper.clo
- - tuda-a4paper.clo
- - tuda-a5paper.clo
+Eine vollständige Liste aller Dateien, die zu diesem Projekt gehören kann findet sich in `MANIFEST.md`.
+
+| Dokumententyp | Templatedatei(en) | Dokumentenklasse |
+| ------------------------------------- | ------------------------------------------------------------------------------ | ----------------------------------------- |
+| Interne Berichte (minimales template) | DEMO-TUDaReport.tex | tudapub.cls mit tudasize9pt.clo |
+| Wissenschaftliche Artikel | DEMO-TUDaPub.tex, verwendet auch DEMO-TUDaBibliography.bib | tudapub.cls |
+| Abschlussarbeiten | DEMO-TUDaThesis.tex/DEMO-TUDaPhD.tex, verwendet auch DEMO-TUDaBibliography.bib | tudapub.cls mit tudathesis.cfg |
+| Wissenschaftliche Poster | DEMO-TUDaSciPoster.tex | tudasciposter.cls |
+| Veranstaltungsankündigungen | DEMO-TUDaPoster.tex | tudaposter.cls |
+| Ausschreibungen | DEMO-TUDaAnnouncement.tex | tudaposter.cls |
+| Präsentationen | DEMO-TUDaBeamer.tex | tudabeamer.cls |
+| Briefe | DEMO-TUDaLetter.tex, verwendet auch DEMO-TUDaFromaddress.lco | tudaletter.cls mit tudalettersize10pt.clo |
+| Übungsblätter | DEMO-TUDaExercise.tex | tudaexercise.cls |
+| Flyer/Faltblätter | DEMO-TUDaLeaflet.tex | tudaleaflet.cls |
+
+Darüber hinaus existieren deutschsprachige Versionen der Template-Dateien im [GitHub Repository](https://github.com/tudace/tuda_latex_templates) sowie spezielle Anwendungsbeispiele:
+Kompatibilitätsmodus TUDexercise: (Examples-TUDexercise-compat.tex)[https://github.com/tudace/tuda_latex_templates/blob/master/exercises/Examples-TUDexercise-compat.tex]
+Farbskalen von tuda-pgfplots: (Examples-TUDa-pgfplots.tex)[https://github.com/tudace/tuda_latex_templates/blob/master/exercises/Examples-TUDa-pgfplots.tex]
# Summary
@@ -146,25 +107,29 @@ If you are not a German speaker and require some help using these files, please
## Support
-ULB is offering support for LaTeX in general and TUDa-CI. Contact email address can be found at https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.en.jsp. Additionally there is a TeXnical office hour. Questions can also be answered in English. The dates can be found at https://www.ulb.tu-darmstadt.de/lernen_arbeiten/lehr_und_lernformate/textverarbeitung/textverarbeitung.en.jsp searching for “TeXnische Sprechstunde”.
+ULB is offering support for LaTeX in general and TUDa-CI. Contact email address can be found at https://www.ulb.tu-darmstadt.de/finden_nutzen/medien_nutzen/dokumente_erstellen/latex/index.en.jsp. Additionally there is a TeXnical office hour. Questions can also be answered in English. The dates can be found at https://www.ulb.tu-darmstadt.de/lernen_arbeiten/lehr_und_lernformate/textverarbeitung/textverarbeitung.en.jsp searching for “TeXnische Sprechstunde”.
## Installation
+
TUDa-CI is part of the popular TeX distributions ([MikTeX](https://miktex.org/download) & [TeX Live](https://tug.org/texlive/), which is included by [MacTeX](https://www.tug.org/mactex/)).
It's possible to install the templates using the TeX Live Manager or the MikTeX Console.
In case you don't have any installed TeX system the following links might be useful:
+
- Windows/Linux https://tug.org/texlive/acquire-netinstall.html
-- MacTeX http://tug.org/mactex/
+- MacTeX http://tug.org/mactex/
It's also possible to use the TUDa-CI-DEMO files as Overleaf-Templates on TUDa's own installation: https://sharelatex.tu-darmstadt.de/templates/all (requires TUDa Account)
#### Remark on texlive packages provided by Linux/BSD package managers:
+
In case you already use a texlive package of your OS TUDa-CI might not be included.
-Since it's a corporate design package you might need to install *texlive-full* to use it without further adjustments.
+Since it's a corporate design package you might need to install _texlive-full_ to use it without further adjustments.
These packages also will lack the logo and – this depends on your OS – the provided package might be outdated.
In this case we recommend the setup using tlmgr (as described in the upper links).
### Logos
+
The used Logos can not be published within this bundle. Members of TU Darmstadt can download these via intranet:
https://download.hrz.tu-darmstadt.de/protected/ULB/tuda_logo.pdf
@@ -172,199 +137,26 @@ If you are not a member of TU Darmstadt the example files include information on
## Included templates and document types
-document type | name of template file | used documentclass and config
---------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------
-minimal Template for internal reports | DEMO-TUDaReport.tex | tudapub.cls
-scientific paper | DEMO-TUDaPub.tex, using DEMO-TUDaBibliography.bib | tudapub.cls and tudasize9pt.clo
-theses | DEMO-TUDaThesis.tex/DEMO-TUDaPhD.tex, using DEMO-TUDaBibliography.bib | tudapub.cls and tudathesis.cfg
-scientific poster | DEMO-TUDaSciPoster.tex | tudasciposter.cls
-announcement poster | DEMO-TUDaPoster.tex | tudaposter.cls
-theses announcements | DEMO-TUDaAnnouncement.tex | tudaposter.cls
-presentation | DEMO-TUDaBeamer.tex | tudabeamer.cls
-letter | DEMO-TUDaLetter.tex, using DEMO-TUDaFromaddress.lco | tudaletter.cls and tudalettersize10pt.clo
-exercise sheets/exams | DEMO-TUDaExercise.tex | tudaexercise.cls
-leaflets | DEMO-TUDaLeaflet.tex | tudaleaflet.cls
-
-# Version History
-
- * v1.00 First official version - published on 2019-07-20
- * v1.01 (2019-08-05) Smaller layout fixes and documentation enhancements
- * v1.10 (2019-09-09) Layout corrections + bugfixes
- - Corrections and changes concerning the margin definitions
- - Fix compatibility issue with datetime package
- - Improved implementation of the headline option
- - Add information on package dependencies
- * v1.11 (2019-09-25) bugfixes + smaller adjustments to simplify usage
- * v1.20 (2019-10-26 - was not published on CTAN)
- - Enhancements for exercise sheets/exams and pdfa-mode
- - Switch pdfa-mode to PDF/A-2b and enforce Type1 for valid documents
- - Add tudaexercise.cls and corresponding demo file
- - Documentation enhancements
- - Type=intern for tudapub for intern reports
- - Announcement mode for tudaposter
- - Layout adjustments on TUDabeamer
- - Additional pagestyle=false mode for tudapub
- * v2.00 (2019-11-07) Additional Template files + some improved implementations
- - changed title fontsize adjustments to use clo-files
- - additional options for tudaposter, to use it for job/thesis announcements
- - improved implementation of tudaexercise
- - bugfixes concerning the PDF/A-Mode
- * v2.01 (2019-11-13) small bugfixes
- - fix expansion of metadata for PDF/A mode
- - adjustment of english translation for thesis mode of tudapub
- - fix support for titlegraphic in announcement mode for tudaposter
- * v2.02 (2019-11-16) bugfixes
- - fix font issues and Type1 mode
- - improve marginpar adjustment for tudaposter
- * v2.03 (2019-11-28) bugfixes + small implemetation corrections
- - allow verbatim in solution environment for tudaexercise
- - add affidavit* to provide custom texts
- - add \AffidavitSignature
- - fix typos
- - extended documentation
- * v2.03a (2019-11-29) Fix CTAN Version, due to deployment issues
- * v2.04 (2019-12-17) Bugfixes & Layout adjustments
- - bugfixes in tudaexercise.cls (#114, #103, #113)
- - add mechanism to use \studentID for tudapub's thesis mode
- - extend documentation
- - improved implementation of tudaexercise's headline mechanism
- * v2.05 (2019-12-18) Fix identbarcolor mechanism in tudaexercise
- * v2.06 (2020-01-18) Reimplement pdf/a mechanisms to work with newer expl3 kernel
- * v2.07 (2020-01-28) Restore compatibility for older expl3 kernels
- - add key to change license information for `\tuprints`
- * v2.08 (2020-02-10) Bugfixes
- - disable missing ligatures for roboto in scshape (Type1 only)
- - implement KOMA-Script's new naming scheme
- - fix counter mechanisms for tudaexercise
- * v2.09 (2020-03-09) bugfixes and smaller feature extensions
- - intoduction of tudaleaflet
- - fix bug concerning the combination of twocolumn and marinpar=false
- - smaller Layout adjustments
- - documentation enhancements
- * v2.10 (2020-04-25) bugfixes + feature enhancement for tudaexercise
- - add a mechanism for credits in tudaexercise
- - captions & headings in leaflets no longer using \accentfont
- - fixing marginpar alignment
- * v2.11 (2020-06-12) add translation for ThesisStatus
- - add option for a custom status
- * v3.00 (2020-09-08)
- - feature enhancement for more flexible usage and department specific requirements
- - introduce department specific mode *mecheng*
- - restructure internals (ptxcd module)
- * v3.01 (2020-09-11) small bugfixes caused by the internal restructuring
- * v3.02 (2020-09-12) fix bug in tudaexercise caused by 3.01
- * v3.03 (2020-09-19) remove obsolete Type1 enforcement for pdfa mode
- * v3.04 (2020-10-05) feature enhancements of tudaexercise
- - enable pdfusetitle for tudaexercise
- - add solution* and IfSolution mechanism for tudaexercise
- - extend documentation on further configuration
- * v3.05 (2020-10-13) fix \@author expansion for tudaexercise
- * v3.06 (2020-10-20)
- - add affidavit for digital thesis submission
- - small adjustments on tudathesis titlepage
- - simplify change of reviewer description
- * v3.07 (2020-10-21)
- - improve language selection
- - fix linebreak issues in affidavit
- * v3.08 (2020-11-12)
- - fix titleback margins
- - add predefined values for some cc licenses in tudathesis
- - additional options to adjust titlepage color scheme
- * v3.09 (2021-01-12)
- - small patch including layout adjustments for department=mecheng
- * v3.10 (2021-02-05)
- - fix \thanks for titlepage=false
- - extend support for all CreativeCommons 4.0 Licenses
- - improve documentation
- * v3.11 (2021-02-22)
- - add Info for DVI-Outputs
- * v3.12 (2021-03-06)
- - fix color conversion for PDF/A
- - fix margin restore after titlepage for custommargins=geometry
- - enhance information on installation
- * v3.13 (2021-03-16)
- - enhancement of tudaexercise to be more flexible to be used with exams
- - convert points to a floating point variable
- * v3.13a (2021-03-19)
- - patch to fix the automatic reset of points=auto option (tudaexercise)
- * v3.14 (2021-05-18)
- - fix bug in pagestyle init for department=mecheng
- - fix beamer mode selection
- - fix error in tudaexercise documentation
- * v3.15 (2021-05-26)
- - add \inst to tudasciposter to support multiple affiliations
- - fix calculation of headwidth with department=mecheng
- - improve documentation on document margins for tudapub and tudapub based examples
- * v3.16 (2021-06-03)
- - adjust option expansion due to changes in the LaTeX kernel
- * v3.17 (2021-07-27)
- - add a temporary workaround to avoid incompatibilities with pdfa=true
- - fix footer positions
- * 3.18 (2021-08-05)
- - fix bug in tudabeamer block spacing
- * 3.19 (2021-10-09)
- - enhance title mechanism for tudaposter
- - fix block spacing if colorframetitle=false
- * 3.20 (2021-10-12)
- - add signature-image mechanism for affidavit
- - unify \titlegraphic mechanism in tudapub and tudabeamer
- * 3.21 (2022-01-11)
- - fix title width for the combination of `custommargins=geometry` and `titlepage=false`
- - remove some obsolete warnings
- - improve TUDaLetter documentation
- * 3.22 (2022-02-08)
- - improve alignment for reviewers if `type=thesis`
- - fix bug in handling of `\Metadata`
- * 3.23 (2022-03-21)
- - fix font selection for reviewers in uppertitleback
- * 3.24 (2022-04-20)
- - Fix paper=landscape for TUDa-SciPoster.
- - Improve internals for advanced department configuration in TUDa-SciPoster
- * 3.25 (2022-04-25)
- - Fix departmnt specific configuration mechanism in TUDa-SciPoster
- - Add support for specific configuration paths
- * 3.26 (2022-06-10)
- - Update TUprints data scheme
- - Fix incompatibility with TUDaLeaflet and recent KOMA-Script updates
- * 3.27 (2022-08-03)
- - Fix reference issues with subtask* in TUDaExercise
- * 3.28 (2022-11-04)
- - Fix loading mechanism for department specific beamer templates with prefix
- - Internal adjustments to increase flexability
- * 3.29 (2022-12-11)
- - Fix bug with subtask=runin for TUDaExercise
- - Add support for lists in solutions of TUDaExercise
- - Rename some internal mechanisms to unify the structure
- * 3.30 (2023-04-24)
- - Add affidavit option to remove subject specific information
- - Fix titleblock caclulation with tudasciposter
- - Extend points mechanism to allow acessing subtask points
- * 3.31 (2023-06-16)
- - Update the digital affidavit text
- - Fix bug in calculation of points using subtasks in tudaexercise
- * 3.32 (2023-06-19)
- - remove affidavit=print
- * 3.33 (2023-07-05)
- - disable affidavit by default, see https://github.com/tudace/tuda_latex_templates/issues/432 for more information
- - rename color={} option of tudabeamer to tudacolors={} to avoid conflicts with siunitx
- * 3.34 (2023-07-12)
- - fix typo in affidavit
- * 3.35 (2023-12-11)
- - first CTAN release of the new slide layout
- - fix issues with headwidth calculation if custommargins=true is used
- * 3.36 (2024-01-05)
- - compatibility to create PDF/A via pdfmangement
- - small adjustments for \tuprints
- * 3.37 (2024-04-21)
- - refactoring the bundle
- - small layout adjustments and bugfixes
- * 3.38 (2024-05-07)
- - update PhD affidavit
- * 3.39 (2024-06-27)
- - update all templates to no longer use pdfx by default due to the pdfx bug
- - fix letter last page reference
- * 3.40 (2024-07-01)
- - implement workaround for the pdfx package bug. Thanks to Ulrike Fischer for the hint!
- - fix `ìn_department` strings for theses
- * 3.41 (2024-07-01)
- - change package loading order to support updated version of pdfx
+A full list of all files of this Project including the additional example files can be found in `MANIFEST.md`.
+
+| document type | name of template file | used documentclass and config |
+| ------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------- |
+| minimal Template for internal reports | DEMO-TUDaReport.tex | tudapub.cls |
+| scientific paper | DEMO-TUDaPub.tex, using DEMO-TUDaBibliography.bib | tudapub.cls and tudasize9pt.clo |
+| theses | DEMO-TUDaThesis.tex/DEMO-TUDaPhD.tex, using DEMO-TUDaBibliography.bib | tudapub.cls and tudathesis.cfg |
+| scientific poster | DEMO-TUDaSciPoster.tex | tudasciposter.cls |
+| announcement poster | DEMO-TUDaPoster.tex | tudaposter.cls |
+| theses announcements | DEMO-TUDaAnnouncement.tex | tudaposter.cls |
+| presentation | DEMO-TUDaBeamer.tex | tudabeamer.cls |
+| letter | DEMO-TUDaLetter.tex, using DEMO-TUDaFromaddress.lco | tudaletter.cls and tudalettersize10pt.clo |
+| exercise sheets/exams | DEMO-TUDaExercise.tex | tudaexercise.cls |
+| leaflets | DEMO-TUDaLeaflet.tex | tudaleaflet.cls |
+
+# Version History (latest versions)
+
+Older version information can be found in (`CHANGELOG.md` in the Repository)[https://github.com/tudace/tuda_latex_templates/blob/main/CHANGELOG.md].
+
+- v4.00 (2025-01-26)
+ - complete refactoring including the addition of English template files and bugfixes
+ - option to ignore missing logos
+ - feature enhancements for tudaexercise
diff --git a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.pdf b/Master/texmf-dist/doc/latex/tuda-ci/tuda-ci.pdf
index dba6a9b3925..b092ee90d1f 100644
--- a/Master/texmf-dist/doc/latex/tuda-ci/DEMO-TUDaBeamer2023.pdf
+++ b/Master/texmf-dist/doc/latex/tuda-ci/tuda-ci.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/tuda-ci/beamercolorthemeTUDa.dtx b/Master/texmf-dist/source/latex/tuda-ci/beamercolorthemeTUDa.dtx
new file mode 100644
index 00000000000..4c57a7583d8
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/beamercolorthemeTUDa.dtx
@@ -0,0 +1,214 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{beamercolorthemeTUDa.dtx}[2025-01-26 v4.00 Beamer color theme of tuda-ci]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+%</package>
+%<!2008>\ProvidesExplPackage{beamercolorthemeTUDa}{2025-01-26}{4.00}{Beamer color theme of tuda-ci}
+%<2008>\ProvidesExplPackage{beamercolorthemeTUDa2008}{2025-01-26}{4.00}{Beamer color theme of tuda-ci, compatibility for design of 2008}
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{beamercolorthemeTUDa.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{beamercolorthemeTUDa.dtx}
+% \title{The \textsf{beamercolorthemeTUDa} package}
+% \author{Marei Peischl\thanks{Email: \href{mailto:tuda-ci@peitex.de}{tuda-ci@peitex.de}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+%<*main>
+% \fi
+% \begin{macrocode}
+\clist_map_inline:nn {
+ colortitle,
+ colorbacktitle,
+ colorframetitle,
+ colorback
+} {
+ \keys_define:nn {ptxcd/beamer/color} {#1 .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {#1}}
+}
+% \end{macrocode}
+% \iffalse
+%</main>
+%<*2008>
+% \fi
+% \begin{macrocode}
+\bool_if_exist:NF \g_@@_colorframetitle_bool {\bool_new:N \g_@@_colorframetitle_bool}
+\keys_define:nn {ptxcd/beamer/color} {
+ colortitle .bool_gset:N = \g_ptxcd_beamer_colortitle_bool,
+ colortitle .default:n = true,
+ colortitle .initial:n = true,
+ colorbacktitle .meta:n = {colortitle=#1},
+ colorframetitle .choices:nn = {true, false} {
+ \use:c {bool_gset_ \l_keys_choice_tl :N} \g_@@_colorframetitle_bool
+ \cs_if_exist_use:N \_@@_setup_frametitle_color:
+ },
+ colorframetitle .default:n = true,
+ colorback .meta:n = {colorframetitle=#1}
+}
+%</2008>
+\ExplSyntaxOff
+\ProcessKeyOptions[ptxcd/beamer/color]
+\mode<presentation>{\PassOptionsToPackage{RGB}{tudacolors}}
+\RequirePackage{tudacolors}
+% \end{macrocode}
+% \iffalse
+%<*main>
+% \fi
+% \begin{macrocode}
+\definecolorset{HTML}{TUDa-}{}{%
+ dark1,000000;%
+ dark2,44546A;%
+ light1,FFFFFF;%
+ light2,E7E6E6;%
+ accent1,E6001A;%
+ accent2,004E8A;%
+ accent3,009CDA;%
+ accent4,00689D;%
+ accent5,B5B5B5;%
+ accent5,535353;%
+ hyperlink,243572%
+}
+\mode<presentation>
+\setbeamercolor*{title}{parent=normal text}
+\setbeamercolor{subtitle}{parent=title}
+\setbeamercolor{author}{parent=title}
+\setbeamercolor{institute}{parent=title}
+\setbeamercolor{date}{parent=title}
+\setbeamercolor{titlelike}{parent=title}
+% \end{macrocode}
+% \iffalse
+%</main>
+% \fi
+% \begin{macrocode}
+%<2008>\setbeamercolor{titlelike}{fg=textaccentcolor,bg=white}
+\setbeamercolor*{author}{parent=title}
+\setbeamercolor*{institute}{parent=title}
+\setbeamercolor*{normal text}{bg=,fg=black}
+\setbeamercolor*{background canvas}{parent=normal text}
+\setbeamercolor*{section in toc}{parent=normal text}
+\setbeamercolor*{footline}{
+%<2008>parent=normal text
+%<main>fg=black!50
+}
+\setbeamercolor*{alerted text}{fg=textaccentcolor}
+%<main>\setbeamercolor*{structure}{fg=black}
+%<2008>\setbeamercolor*{structure}{fg=textaccentcolor}
+\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*{block title}{fg=textonaccentcolor,bg=accentcolor}
+\setbeamercolor*{block body}{fg=black,bg=black!15}
+\setbeamercolor*{block title alerted}{
+%<main>fg=TUDa-accent1,bg=TUDa-light2
+%<2008>fg=TUDa-9b,bg=black!15
+}
+\setbeamercolor*{block body alerted}{use=normal text, bg=white}
+\setbeamercolor*{block frame alerted}{
+%<main>bg=TUDa-accent1
+%<2008>bg=TUDa-9b
+}
+\setbeamercolor*{block title example}{
+%<main>fg=TUDa-accent2,bg=TUDa-light2
+%<2008>fg=TUDa-4d,bg=black!15
+}
+\setbeamercolor*{block body example}{use=normal text, bg=white}
+\setbeamercolor*{block frame example}{
+%<main>bg=TUDa-accent2
+%<2008>bg=TUDa-4d
+}
+% \end{macrocode}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+\setbeamercolor*{smallrule}{bg=black}
+\setbeamercolor*{identbar}{bg=identbarcolor}
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+\bool_if:NTF \g_ptxcd_beamer_colortitle_bool {
+ \setbeamercolor*{title}{fg=textonaccentcolor,bg=accentcolor}
+}{
+ \setbeamercolor*{title}{parent=normal~text}
+}
+\cs_new:Nn \_@@_setup_frametitle_color: {
+ \bool_if:NTF \g_@@_colorframetitle_bool {
+ \setbeamercolor*{frametitle}{fg=textonaccentcolor,bg=accentcolor}
+ } {
+ \setbeamercolor*{frametitle}{use=normal~text,fg=normal~text.fg,bg=}
+ }
+}
+\_@@_setup_frametitle_color:
+% \end{macrocode}
+%
+% \iffalse
+%</2008>
+\mode<all>
+%</package>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/beamerfontthemeTUDa.dtx b/Master/texmf-dist/source/latex/tuda-ci/beamerfontthemeTUDa.dtx
new file mode 100644
index 00000000000..1fc43a53e06
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/beamerfontthemeTUDa.dtx
@@ -0,0 +1,121 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{beamerfontthemeTUDa.dtx}
+ [2025-01-26 v4.00 Beamer font theme of tuda-ci]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+%</package>
+%<!2008>\ProvidesExplPackage{beamerfontthemeTUDa}{2025-01-26}{4.00}{Beamer font theme of tuda-ci}
+%<2008>\ProvidesExplPackage{beamerfontthemeTUDa2008}{2025-01-26}{4.00}{Beamer font theme of tuda-ci, compatibility for design of 2008}
+%
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{beamerfontthemeTUDa.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\RequirePackage{tudafonts}
+\keys_define:nn {ptxcd/beamer/fonts} {
+ serif .bool_gset:N = \g_ptxcd_serif_bool,
+ serif .default:n = true,
+ serif .initial:n = false,
+ sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool,
+ sans-serif .default:n = true,
+}
+\ProcessKeyOptions[ptxcd/beamer/fonts]
+\mode<presentation>
+\bool_if:NTF \g_ptxcd_serif_bool
+ {\usefonttheme{serif}}
+ {\renewcommand*{\familydefault}{\sfdefault}}
+\setbeamerfont{author}{size=\footnotesize, series=\bfseries}
+\setbeamerfont{institute}{size=\footnotesize, series=\mdseries}
+% \end{macrocode}
+% \iffalse
+%<*main>
+% \fi
+% \begin{macrocode}
+\ExplSyntaxOff
+\setbeamerfont{title}{family=\robotoblack,size=\huge}
+\setbeamerfont*{subtitle}{family=\normalfont,size=\small}
+\setbeamerfont*{frametitle}{size*={20}{20},family=\robotoblack}
+\setbeamerfont{footline}{size*={3.8}{5}}
+\setbeamerfont{author in head/foot}{parent=footline}
+\setbeamerfont{title in head/foot}{family=\robotoblackspaced}
+\setbeamerfont*{section title}{size=\huge,family=\robotoblack}
+\setbeamerfont*{section name}{size=\small}
+\setbeamerfont{section entry}{size=\footnotesize}
+\setbeamerfont{toc section number}{family=\robotoblack,size=\huge}
+\setbeamerfont{section entry}{size=\footnotesize}
+\setbeamerfont{subsection in toc}{parent=section entry}
+\setbeamerfont{subsubsection in toc}{parent=section entry}
+\ExplSyntaxOn
+% \end{macrocode}
+% \iffalse
+%</main>
+%<*2008>
+% \fi
+% \begin{macrocode}
+\setbeamerfont{title}{size=\large,series=\bfseries}
+\setbeamerfont{subtitle}{size=\normalsize,series=\bfseries}
+\setbeamerfont{frametitle}{size=\large,series=\bfseries}
+\setbeamerfont{author~in~head/foot}{size=\tiny}
+% \end{macrocode}
+% \iffalse
+%</2008>
+%<*package>
+% \fi
+% \begin{macrocode}
+\mode<all>
+% \end{macrocode}
+% \iffalse
+%</package>
+% \fi
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/beamerinnerthemeTUDa.dtx b/Master/texmf-dist/source/latex/tuda-ci/beamerinnerthemeTUDa.dtx
new file mode 100644
index 00000000000..f8d3e23cc66
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/beamerinnerthemeTUDa.dtx
@@ -0,0 +1,599 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{beamerinnerthemeTUDa.dtx}
+ [2025-01-26 v4.00 Inner beamer theme of tuda-ci]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+%<main>\ProvidesExplPackage{beamerinnerthemeTUDa}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci}
+%<2023>\ProvidesExplPackage{beamerinnerthemeTUDa2023}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci, Design of 2023}
+%<2008>\ProvidesExplPackage{beamerinnerthemeTUDa2008}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci, compatibility for design of 2008}
+%</package>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{beamerinnerthemeTUDa.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+%<*main>
+% \fi
+% \begin{macrocode}
+\int_new:N \g_@@_beamer_toc_col_int
+\tl_if_exist:NF \g_@@_design_tl {
+ \tl_new:N \g_@@_design_tl
+ \keys_define:nn {ptxcd/beamer} {
+ design .choice:,
+ design / 2023 .code:n = {
+ \tl_gset:Nn \g_@@_design_tl {2023}
+ \PassOptionsToClass{aspectratio=169}{beamer}
+ },
+ design / 2008 .code:n = {
+ \tl_gset:Nn \g_@@_design_tl {2008}
+ },
+ design .initial:n = 2023,
+ design .usage:n = load,
+ design2023 .meta:n = {design=2023},
+ design2008 .meta:n = {design=2008},
+ }
+}
+\keys_define:nn {ptxcd/beamer/inner} {
+ author-on-title .bool_gset:N = \g_ptxcd_authorontitle_bool,
+ author-on-title .initial:n = false,
+ author-on-title .default:n = true,
+ authorontitle .meta:n = {author-on-title=#1},
+ toc-columns .choices:nn = {one,two,auto} {
+ \int_gset_eq:NN \g_@@_beamer_toc_col_int \l_keys_choice_int
+ },
+ toc-columns / 1 .meta:n = {toc-columns=one},
+ toc-columns / 2 .meta:n = {toc-columns=two},
+ toc-columns .initial:n = auto,
+ design .meta:nn = {ptxcd/beamer} {design=#1}
+}
+\ProcessKeyOptions[ptxcd/beamer/inner]
+\ExplSyntaxOff
+\RequirePackage{trimclip}
+\ExplSyntaxOn
+\box_new:N \l_@@_titlegraphic_box
+\box_new:N \l_@@_titlehead_box
+\dim_new:N \l_@@_titlegraphic_ht_dim
+\dim_new:N \l_@@_titlegraphic_wd_dim
+\box_if_exist:NF \g_@@_logo_box {
+ \dim_new:N \g_@@_beamer_logosep_dim
+ \dim_new:N \l_@@_beamer_extraindent_dim
+ \dim_new:N \g_@@_beamer_sep_dim
+ \box_new:N \g_@@_logo_box
+}
+\cs_set:Nn \_@@_block_colorsep: {.75ex}
+\RenewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \def\inserttitlegraphic{
+ \hbox_set:Nn \l_@@_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l_@@_titlegraphic_box {\width}
+ \dim_compare:nTF {\box_ht:N \l_@@_titlegraphic_box - \height> \c_zero_dim}
+ {
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l_@@_titlegraphic_box - .5\height}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l_@@_titlegraphic_box}
+ }{
+ \box_resize_to_ht:Nn \l_@@_titlegraphic_box {\height}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l_@@_titlegraphic_box - \width) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l_@@_titlegraphic_box}
+ }
+ }
+ }{
+ \def\inserttitlegraphic{#2}
+ }
+}
+\useinnertheme{TUDa\g_@@_design_tl}
+% \end{macrocode}
+% Blocks
+% \begin{macrocode}
+\defbeamertemplate*{block~begin}{TUDa}{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[wd=\dimexpr\linewidth+2\l_@@_beamer_extraindent_dim,sep=.5pt,
+ leftskip=\dim_eval:n {\dim_compare:nTF {\l_@@_beamer_extraindent_dim>\c_zero_dim} {\l_@@_beamer_extraindent_dim-\beamer@colbox@sep} {\_@@_block_colorsep:}},
+ ]{block~title}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[colsep*=\_@@_block_colorsep:,
+ wd=\dimexpr\linewidth-1pt-1.5ex\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*=\_@@_block_colorsep:,vmode, wd=\dimexpr\linewidth-1.5ex-1pt\relax]{block~body}%
+ \usebeamerfont{block~body}%
+ \ifbeamercolorempty[bg]{block~body}{\vskip-.25ex}{\vskip-\_@@_block_colorsep:}\vbox{}%
+}
+\defbeamertemplate*{block~end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+\defbeamertemplate*{block~alerted~begin}{TUDa}{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[
+ wd=\dimexpr\linewidth+2\l_@@_beamer_extraindent_dim,
+ sep=1.5pt,
+ leftskip=\dim_eval:n {\dim_compare:nTF {\l_@@_beamer_extraindent_dim>\c_zero_dim} {\l_@@_beamer_extraindent_dim-\beamer@colbox@sep} {\_@@_block_colorsep:}},
+ ]{block~frame~alerted}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\_@@_block_colorsep:]{block~title~alerted}
+ \usebeamerfont*{block~title~alerted}\insertblocktitle%
+ \end{beamercolorbox}%
+ \vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block~body~alerted}%
+ \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\_@@_block_colorsep:]{block~body~alerted}%
+}
+\defbeamertemplate*{block~alerted~end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+\defbeamertemplate*{block~example~begin}{TUDa}{
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[
+ wd=\dimexpr\linewidth+2\l_@@_beamer_extraindent_dim,
+ sep=1.5pt,
+ leftskip=\dim_eval:n {\dim_compare:nTF {\l_@@_beamer_extraindent_dim>\c_zero_dim} {\l_@@_beamer_extraindent_dim-\beamer@colbox@sep} {\_@@_block_colorsep:}},
+ ]{block~frame~example}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\_@@_block_colorsep:]{block~title~example}
+ \usebeamerfont*{block~title~example}\insertblocktitle%
+ \end{beamercolorbox}%
+\vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block~body~example}%
+ \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\_@@_block_colorsep:]{block~body~example}%
+}
+\defbeamertemplate*{block~example~end}{TUDa}
+ {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+% \end{macrocode}
+% \iffalse
+%</main>
+%<*2023>
+% \fi
+% \begin{macrocode}
+\mode<presentation>
+\RequirePackage{beamerinnerthemeTUDa}
+\ExplSyntaxOff
+\RequirePackage{multicol}
+\ExplSyntaxOn
+\AddToHook{begindocument}[ptxcd-titlegraphic]{
+ \dim_set:Nn \l_@@_titlegraphic_ht_dim {\paperheight}
+ \dim_set:Nn \l_@@_titlegraphic_wd_dim {\paperwidth}
+}
+\defbeamertemplate*{titlegraphic}{TUDa2023}{{
+ \def\width{\l_@@_titlegraphic_wd_dim}
+ \def\height{\l_@@_titlegraphic_ht_dim}
+ \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par
+ }}
+% \end{macrocode}
+%
+% \begin{macro}{\ps@titlegraphic@titlepage}
+% \begin{macrocode}
+\def\ps@titlegraphic@titlepage{%
+ \setbeamertemplate{background}{\usebeamertemplate{titlegraphic}}
+ \@nameuse{ps@navigation}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\defbeamertemplate*{title~page}{TUDa2023}[1][]
+{
+ \ifbeamer@plainframe
+ \skip_vertical:n {\dimexpr\paperheight/38- \beamer@frametopskip}%
+ \color{red}
+ \hspace*{\fill}
+ \raisebox{\dimexpr-\height+.33\c_ptxcd_logoheight_dim}{\includegraphics[height=\dim_use:N \c_ptxcd_logoheight_dim]{tuda_logo}}\hspace*{\dimexpr.7pt-\beamer@rightmargin}
+ \par
+ \vskip1.39\baselineskip
+ \fi
+ \vbox{}
+ \thispagestyle{titlegraphic@titlepage}
+ \vskip.185\paperheight
+ \begingroup
+ \centering
+ \usebeamertemplate{title}
+% \end{macrocode}
+% \vskip1em\par
+% \begin{macrocode}
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author}
+ \usebeamertemplate{institute}
+ }
+ \usebeamertemplate{date}
+ \endgroup
+ \vfill
+}
+\defbeamertemplate*{title}{TUDa2023}[1][]{%
+ \begin{beamercolorbox}[sep=8pt,center,#1]{title}
+ \usebeamerfont{title}\text_uppercase:n {\inserttitle}\par%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip.45em%
+ {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
+ \fi%
+ \end{beamercolorbox}%
+}
+\defbeamertemplate{author}{TUDa2023}[1][]{%
+ \begin{beamercolorbox}[sep=8pt,center,#1]{author}
+ \usebeamerfont{author}\insertauthor
+ \end{beamercolorbox}
+}
+\defbeamertemplate{institute}{TUDa2023}[1][]{%
+ \begin{beamercolorbox}[sep=8pt,center,#1]{institute}
+ \usebeamerfont{institute}\insertinstitute
+ \end{beamercolorbox}
+}
+\defbeamertemplate{date}{TUDa2023}[1][]{%
+ \begin{beamercolorbox}[sep=8pt,center,#1]{date}
+ \usebeamerfont{date}\insertdate
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+% partner/sub logo
+% \begin{macrocode}
+\box_new:N \g_@@_partnerlogo_box
+\dim_new:N \l_@@_partnerlogo_ht_dim
+\dim_gset:Nn \l_@@_partnerlogo_ht_dim {.6\c_ptxcd_logoheight_dim}
+\dim_new:N \l_@@_partnerlogo_wd_dim
+\dim_gset:Nn \l_@@_partnerlogo_wd_dim {1.6\c_ptxcd_logoheight_dim}
+\box_new:N \g_@@_sublogo_box
+\dim_new:N \l_@@_sublogo_wd_dim
+\dim_gset:Nn \l_@@_sublogo_wd_dim {2.2\c_ptxcd_logoheight_dim}
+\dim_new:N \l_@@_sublogo_ht_dim
+\dim_gset:Nn \l_@@_sublogo_ht_dim {.6\c_ptxcd_logoheight_dim}
+\cs_new:Nn \_@@_setup_logo_box:nnn {
+ \begingroup
+ \def\width{\use:c {l_@@_#2_wd_dim}}
+ \def\height{\use:c {l_@@_#2_ht_dim}}
+ \IfBooleanTF{#1}{
+ \hbox_gset:cn {g_@@_#2_box} {#3}
+ \box_gautosize_to_wd_and_ht_plus_dp:cnn {g_@@_#2_box} {\width} {\height}
+ } {
+ \hbox_gset:cn {g_@@_#2_box} {
+ #3
+ }
+ }
+ \endgroup
+}
+\NewDocumentCommand{\partnerlogo}{sm}{
+ \_@@_setup_logo_box:nnn {#1} {partnerlogo} {#2}
+}
+\NewDocumentCommand{\sublogo}{sms}{
+ \_@@_setup_logo_box:nnn {#1} {sublogo} {#2}
+ \IfBooleanT{#3}{
+ \hbox_gset:Nn \g_@@_sublogo_box {
+ \hbox_unpack_drop:N \g_@@_sublogo_box
+ \hskip.6\l_@@_sublogo_ht_dim
+ }
+ }
+}
+% \end{macrocode}
+% section page
+% \begin{macrocode}
+\defbeamertemplate*{section~page}{TUDa2023}[1][]
+{%
+ \ifbeamer@inframe
+ \begingroup
+ \vbox{}
+ \vspace{0pt plus 1 filll}
+ \begin{beamercolorbox}[#1]{section title}
+ \usebeamerfont{section~title}\text_uppercase:n {\secname}\par
+ \end{beamercolorbox}
+ {\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
+ \par
+ \skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
+ \endgroup
+ \else
+ \begin{frame}[b]
+ \begin{beamercolorbox}[#1]{section title}
+ \usebeamerfont{section~title}\text_uppercase:n {\secname}\par
+ \end{beamercolorbox}
+ {\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
+ \skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
+ \end{frame}
+ \fi
+}
+% \end{macrocode}
+% toc
+% original definition can be found in beamerbasetoc.sty which is part of the beamer package
+% Copyright 2003--2007 by Till Tantau
+% Copyright 2010 by Vedran Mileti\'c
+% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
+% Copyright 2017,2018 by Louis Stuart, Joseph Wright
+% Copyright 2021 by Joseph Wright, samcarter
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file LICENSE.md for more details.
+% \begin{macrocode}
+\ExplSyntaxOn
+\cs_new:Nn \_@@_toc_check: {
+\int_compare:nNnT {\g_@@_beamer_toc_col_int} = {3} {
+% \end{macrocode}
+% if all subsections/subsubsections are hidden we can have two columns
+% \begin{macrocode}
+\str_if_eq:eeTF {
+\beamer@toc@css
+\beamer@toc@oss
+\beamer@toc@ooss
+\beamer@toc@csss
+\beamer@toc@osss
+\beamer@toc@oosss
+\beamer@toc@ooosss
+}{
+\prg_replicate:nn {7} {hide}
+}{
+% \end{macrocode}
+% if all subsections/subsubsections are hidden standard twocolumn layout will be choosen
+% \begin{macrocode}
+\int_set:Nn \g_@@_beamer_toc_col_int {2}
+} {
+% \end{macrocode}
+% check if there are subsections/subsubsections
+% \begin{macrocode}
+\int_gzero:N \g_tmpa_int
+{\makeatletter%%
+ \let\babel@toc\use_none:nn
+ \let\beamer@sectionintoc \use_none:nnnnn
+ \def\beamer@subsectionintoc##1##2##3##4##5##6{\int_gset:Nn \g_tmpa_int {1}\endinput}
+ \def\beamer@subsubsectionintoc##1##2##3##4##5##6##7{\int_gset:Nn \g_tmpa_int {1}\endinput}
+ \@input{\jobname.toc}%
+}
+\int_compare:nNnT {\g_tmpa_int} = {1} {\int_set:Nn \g_@@_beamer_toc_col_int {1}}
+}
+}
+}
+% \end{macrocode}
+%
+% \begin{macro}{\beamer@twocoltableofcontents}
+% \begin{macrocode}
+\def\beamer@twocoltableofcontents[#1]{%
+ \begin{beamercolorbox}[wd=\paperwidth]{}%
+ \def\beamer@toc@cs{show}%
+ \def\beamer@toc@os{show}%
+ \def\beamer@toc@css{show}%
+ \def\beamer@toc@oss{show}%
+ \def\beamer@toc@ooss{show}%
+ \def\beamer@toc@csss{show}%
+ \def\beamer@toc@osss{show}%
+ \def\beamer@toc@oosss{show}%
+ \def\beamer@toc@ooosss{show}%
+ \beamer@showpartnumber=\c@part%
+ \beamer@pausesectionsfalse%
+ \beamer@pausesubsectionsfalse%
+ \def\beamer@tocsections{<*>}%
+ \setkeys{beamertoc}{firstsection=1}%
+ \setkeys{beamertoc}{#1}%
+ \UseName{_@@_toc_check:}
+ \int_compare:nNnT {\g_@@_beamer_toc_col_int} > {1} {
+ \setlength{\columnsep}{5ex}%
+ \raggedcolumns
+ \begin{multicols}{2}
+ }
+ {\makeatletter%
+ \pause[0]%
+ \@input{\jobname.toc}%
+ }%
+ \int_compare:nNnT {\g_@@_beamer_toc_col_int} > {1} {
+ \end{multicols}%
+ }
+ \end{beamercolorbox}%
+ \vspace*{.68\baselineskip}%}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{key}{beamertoc}{columns}
+% \begin{macrocode}
+\define@key{beamertoc}{columns}{\keys_set:nn {ptxcd/beamer/inner} {toc-columns=#1}}
+% \end{macrocode}
+% \end{key}
+%
+%
+% \begin{macro}{\beamer@tableofcontents}
+% \begin{macrocode}
+\def\beamer@tableofcontents[#1]{%
+ \ifbeamer@inframe
+ \beamer@twocoltableofcontents[#1]
+ \else
+ \begin{frame}[b]{\contentsname}
+ \beamer@twocoltableofcontents[#1]
+ \end{frame}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\defbeamertemplate*{section~in~toc}{TUDa}{%
+ \ifvmode\nointerlineskip\fi
+ \leavevmode
+ \ifnum\beamer@tempcount>\beamer@toclastsection
+ \else
+ \ifnum\beamer@tempcount>0\relax
+ \usebeamertemplate***{toc~section~number}%
+ \fi\fi%
+ \usebeamertemplate***{section~entry}%
+ \par
+}
+% \end{macrocode}
+% (sub-)section in toc: default
+% \begin{macrocode}
+\cs_new:Nn \_@@_toc_sub_level_entry_numbered:n {
+ \exp_args:Nc \tl_if_blank:nF {inserttoc#1subsectionnumber}
+ {\hphantom{0}\llap{\use:c {inserttoc#1subsectionnumber}}\hspace{.5em}}
+}
+\cs_new:Nn \_@@_toc_sub_level_entry_itemize:n {
+ \strut
+ \usebeamertemplate{itemize~#1item}\hspace{.5em}
+}
+\defbeamertemplate*{subsection~in~toc}{TUDa}[1][false]{\leavevmode
+ \leftskip=12.4mm
+ \use:c {_@@_toc_sub_level_entry_#1:n} {}
+ \inserttocsubsection\par}
+\defbeamertemplate*{subsubsection~in~toc}{TUDa}[1][false]{\leavevmode
+ \leftskip=\dimexpr12.4mm+.5em\relax
+ \use:c {_@@_toc_sub_level_entry_#1:n} {sub}
+ \inserttocsubsubsection\par}
+\defbeamertemplate*{toc~section~number}{TUDa}{
+ \hphantom{00}\llap{\inserttocsectionnumber}\hspace{.5em}
+}
+\defbeamertemplate*{section~entry}{TUDa}{
+ \strut\inserttocsection\strut
+}
+% \end{macrocode}
+%Itemize Items
+% \begin{macrocode}
+\defbeamertemplate*{itemize~item}{TUDa}{\raise.2\baselineskip\hbox{\vrule width .5ex height .5ex}}
+\defbeamertemplate*{itemize~subitem}{TUDa}{\raise.2\baselineskip\hbox{\small\vrule width .5ex height .5ex}}
+\defbeamertemplate*{itemize~subsubitem}{TUDa}{\raise.2\baselineskip\hbox{\small\vrule width .5ex height 1ex}}
+\mode<all>
+% \end{macrocode}
+% \iffalse
+%</2023>
+%<*2008>
+% \fi
+% \begin{macrocode}
+\mode<presentation>
+\RequirePackage{beamerinnerthemeTUDa2008}
+\defbeamertemplate*{title~ page}{TUDa}[1][]{
+ \nointerlineskip
+ \vspace{\dim_eval:n {-\c_ptxcd_largerule_dim}}
+ \hbox_set:Nn \l_@@_titlehead_box {
+ \parbox{\dimexpr\paperwidth-2\g_@@_beamer_sep_dim}{%
+ \begin{beamercolorbox}[
+ wd=\linewidth,
+ sep=\g_@@_beamer_logosep_dim,
+ ]{title}
+ \raggedright
+ \usebeamerfont{title}
+ \skip_horizontal:n {1ex}
+ \strut\parbox[t]{\dimexpr\linewidth- \box_wd:N \g_@@_logo_box-2ex\relax}{
+ \inserttitle
+ \par
+ }
+ \hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\box_use:N \g_@@_logo_box}
+ \ifx\insertsubtitle\@empty
+ \else
+ \par\vspace{\c_ptxcd_largerule_dim}
+ \skip_horizontal:n {1ex}\parbox[t]{\dimexpr\linewidth- \box_wd:N \g_@@_logo_box-2ex\relax}{
+ \usebeamerfont{subtitle}\insertsubtitle
+ }
+ \fi
+ \end{beamercolorbox}
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \par\nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\dimexpr\paperwidth-2\g_@@_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
+ \end{beamercolorbox}
+ \par\nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\linewidth,
+ sep=\c_ptxcd_largerule_dim,
+ ]{title}
+ \raggedright
+ \skip_horizontal:n {1ex}
+ \parbox[t]{\dimexpr\paperwidth-2\g_@@_beamer_sep_dim-2ex\relax}{
+ \ifx\insertauthor\@empty
+ \else
+ \usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par
+ \fi
+ \ifx\insertauthor\@empty
+ \else
+ \usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute
+ \fi
+ }
+ \end{beamercolorbox}
+ }
+ }
+ }
+ \box_use:N \l_@@_titlehead_box
+ \nointerlineskip\begin{beamercolorbox}[
+ wd=\dimexpr\paperwidth-2\g_@@_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
+ \end{beamercolorbox}
+ \dim_set:Nn \l_@@_titlegraphic_ht_dim {\textheight-\box_ht:N\l_@@_titlehead_box-\box_dp:N \l_@@_titlehead_box
+ +\c_ptxcd_largerule_dim-.5\c_ptxcd_rulesep_dim-\c_ptxcd_smallrule_dim}
+ \let\height\l_@@_titlegraphic_ht_dim
+ \dim_set:Nn \l_@@_titlegraphic_wd_dim{\dimexpr\paperwidth-2\g_@@_beamer_sep_dim}
+ \let\width\l_@@_titlegraphic_wd_dim
+ \nointerlineskip
+ \begin{beamercolorbox}[wd=\width,center]{titlegraphic}
+ \raisebox{-\c_ptxcd_largerule_dim}[\dim_eval:n {\height-\c_ptxcd_largerule_dim}][0pt]{\inserttitlegraphic}
+ \end{beamercolorbox}
+}
+% \end{macrocode}
+%Itemize Items
+% \begin{macrocode}
+\defbeamertemplate*{itemize~item}{TUDa}{
+ \usebeamerfont*{itemize~item}
+ \raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}
+}
+\defbeamertemplate*{itemize~subitem}{TUDa}{
+ \usebeamerfont*{itemize~subitem}
+ \setlength{\fboxsep}{\z@}\setlength{\fboxrule}{1pt}
+ \raise\dimexpr.4\ht\strutbox-.2ex-\fboxrule\hbox{\fbox{\color{bg}\rule{.4ex}{.4ex}}}
+}
+\defbeamertemplate*{itemize~subsubitem}{TUDa}{\usebeamerfont*{itemize~subsubitem}\hbox{--}}
+\mode<all>
+% \end{macrocode}
+%
+% \iffalse
+%</2008>
+%</package>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/beamerouterthemeTUDa.dtx b/Master/texmf-dist/source/latex/tuda-ci/beamerouterthemeTUDa.dtx
new file mode 100644
index 00000000000..7e4dd231529
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/beamerouterthemeTUDa.dtx
@@ -0,0 +1,404 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{beamerouterthemeTUDa.dtx}
+ [2025-01-26 v4.00 Outer~beamer~theme~of~tuda-ci]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*initialize&package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+%<!2008>\ProvidesExplPackage{beamerouterthemeTUDa}{2025-01-26}{4.00}{Outer beamer theme of tuda-ci design of 2023}
+%<2008>\ProvidesExplPackage{beamerouterthemeTUDa2008}{2025-01-26}{4.00}{Outer beamer theme of tuda-ci, compatibility for design of 2008}
+%</initialize&package>
+%
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{beamerouterthemeTUDa.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \DescribeKey{\beamerframe}{\bgcolor}
+%
+%
+% \DescribeKey{\beamerframe}{\uppercase}
+%
+%
+% \DescribeMacro{\setupTUDaFrame}
+%
+%
+% \DescribeKey{\beamerframe}{\bgcolor}
+
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+%<*initialize>
+% \fi
+% \begin{macrocode}
+\PassOptionsToPackage{paper=slide}{tudarules}
+\RequirePackage{tudarules}
+\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
+\dim_new:N \l_@@_beamer_extraindent_dim
+\dim_new:N {\g_@@_beamer_sep_dim}
+\dim_gset:Nn \g_@@_beamer_sep_dim {.3\c_ptxcd_logoheight_dim}
+\dim_new:N \g_@@_beamer_logosep_dim
+\dim_gset:Nn \g_@@_beamer_logosep_dim{2mm}
+\cs_if_exist:NF \g_@@_colorframetitle_bool {\bool_new:N \g_@@_colorframetitle_bool}
+\keys_define:nn {ptxcd/beamer/outer} {
+ logo .bool_gset:N = \g_ptxcd_headlinelogo_bool,
+ logo .default:n =true,
+ logo .initial:n =true,
+%<main> colorframetitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorframetitle},
+%<*2008>
+ colorframetitle .choices:nn = {true, false} {
+ \use:c {bool_gset_ \l_keys_choice_tl :N} \g_@@_colorframetitle_bool
+ \cs_if_exist_use:N \_@@_setup_frametitle_color:
+ },
+ colorframetitle .default:n = true,
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+ centerframetitle
+%<main> .code:n = \msg_warning:nnn {tudabeamer} {option-removed},
+% \end{macrocode}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+ .bool_gset:N = \g_ptxcd_centerframetitle_bool,
+ centerframetitle .initial:n = false,
+ centerframetitle .default:n = true,
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+ framebgcolor
+%<main> .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {framebgcolor},
+% \end{macrocode}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+ .choice:,
+ framebgcolor / reset .code:n =
+ \_@@_reset_framebgcolor:
+ ,
+ framebgcolor / unknown .code:n = {
+ \_@@_set_framebgcolor:n {#1}
+ },
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+ singleframebgcolor .code:n =
+%<main> \msg_warning:nnn {tudabeamer} {option-removed} {singleframebgcolor},
+%<*2008>
+ \cs_gset_eq:Nc \_@@_save_background_canvas: {beamer@thcbg@normal~text}
+ \keys_set:nn {ptxcd/beamer/outer} {
+ framebgcolor = #1
+ },
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+ headsepline
+%<main> .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {headsepline},
+%<*2008>
+ .bool_gset:N = \g_ptxcd_headsepline_bool,
+ headsepline .initial:n = true,
+ headsepline .default:n = true,
+% \end{macrocode}
+% \iffalse
+%</2008>
+%<*main>
+% \fi
+% \begin{macrocode}
+ extendedspace .bool_gset:N = \g_@@_extended_space_bool,
+ headrule .bool_gset:N = \g_@@_headrule_bool,
+ uppercase-frametitle .bool_gset:N = \g_@@_uppercase_frametitle_bool,
+ uppercase-frametitle .default:n = true,
+ uppercase-frametitle .initial:n = true,
+%</main>
+% \end{macrocode}
+% \iffalse
+%</initialize>
+%<*body>
+% \fi
+% General options
+% \begin{macrocode}
+%<gobble>}
+% \end{macrocode}
+% \iffalse
+%<*main>
+% \fi
+% \begin{key}{beamerframe}{uppercase}
+% \begin{macrocode}
+\define@key{beamerframe}{uppercase}{
+ \keys_set:nn {ptxcd/beamer/outer} {
+ uppercase-frametitle=#1
+ }
+}
+% \end{macrocode}
+% \iffalse
+%</main>
+% \fi
+% \end{key}
+% \begin{key}{beamerframe}{bgcolor}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+\define@key{beamerframe}{bgcolor}{
+ \keys_set:nn {ptxcd/beamer/outer} {
+ singleframebgcolor=#1
+ }
+}
+% \end{macrocode}
+% \end{key}
+%
+% \begin{macrocode}
+\cs_new:Nn \_@@_reset_framebgcolor: {
+ \cs_gset_eq:cN {beamer@thcbg@normal~text} \_@@_save_background_canvas:
+ \cs_undefine:N \_@@_save_background_canvas:
+}
+
+\cs_new:Nn \_@@_set_framebgcolor:n {
+ \cs_if_exist:cTF {\string\color@#1}
+ {\setbeamercolor{normal~text}{bg=#1}}
+ {\setbeamercolor{normal~text}{bg=TUDa-#1}}
+}
+
+\BeforeBeginEnvironment{frame}{
+ \cs_if_exist:NT \_@@_save_background_canvas: {
+ \_@@_reset_framebgcolor:
+ }
+}
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+\ProcessKeyOptions[ptxcd/beamer/outer]
+\mode<presentation>
+\RequirePackage{graphicx}
+% \end{macrocode}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+\bool_if:NT \g_@@_colorframetitle_bool
+
+ {\dim_set:Nn \l_@@_beamer_extraindent_dim {\g_@@_beamer_logosep_dim}}
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+\setbeamersize{
+
+ text~margin~left=\dim_eval:n {
+%<main> \paperwidth/34
+%<2008> \g_@@_beamer_sep_dim+\l_@@_beamer_extraindent_dim
+},
+ text~margin~right=\dim_eval:n {
+%<main> \paperwidth/38
+%<2008> \g_@@_beamer_sep_dim+\l_@@_beamer_extraindent_dim
+ }
+}
+\cs_new:Nn \_@@_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}}
+% \end{macrocode}
+%Logo
+%
+% \begin{macrocode}
+\box_new:N \g_@@_logo_box
+\hbox_gset:Nn \g_@@_logo_box {%
+%<main> \raisebox{\dim_eval:n {-\height+.33\c_ptxcd_logoheight_dim}}
+%<2008> \makebox[\_@@_logowidth:][l]
+ {\_@@_insert_logo:}%
+}
+% \begin{macro}{\logo}
+% \begin{macrocode}
+\RenewDocumentCommand{\logo}{sm}{
+\IfBooleanTF{#1}{
+\setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}
+}{
+\setbeamertemplate{logo}{#2}
+}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setupTUDaFrame}
+% \begin{macrocode}
+\newcommand*{\setupTUDaFrame}[1]{
+ \keys_set:nn {ptxcd/beamer/outer} {#1}
+%<2008> \ptxcd_setup_frame:
+}
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%<*main>
+% \fi
+% \begin{macrocode}
+\defbeamertemplate*{footline}{TUDa2023}{
+ \begin{beamercolorbox}[leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin]{footline}
+ \usebeamerfont{footline}
+ \rlap{\insertshortdate}
+ \hfill
+ \makebox[0pt][c]{
+ \bool_set_false:N \l_ptxcd_separate_bool
+ \clist_map_variable:nNn {department, institute, author} \l_tmpa_tl {
+ \tl_if_empty:cF {beamer@short\l_tmpa_tl} {
+ \bool_if:NTF \l_ptxcd_separate_bool
+ {\usebeamertemplate{footline~sep}}
+ {\bool_set_true:N \l_ptxcd_separate_bool}
+ \use:c {insertshort\l_tmpa_tl}
+ }
+ }
+ }
+ \hfill
+ \llap{\insertframenumber}
+ \par\vspace{-\dp\strutbox}
+ \end{beamercolorbox}
+ \skip_vertical:n {\dimexpr\paperheight/32-\dp\strutbox}
+}
+\setbeamertemplate{footline~sep}{\space\smash{\rule[-.5\dp\strutbox]{.25pt}{\ht\strutbox}}\space}
+\defbeamertemplate*{headline}{TUDa2023}{
+ \bool_if:NT \g_@@_headrule_bool {
+ \cs_if_exist:NF \ptxcd_beamer_headrule {
+ \ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth]{ptxcd_beamer_headrule}
+ }
+ \ptxcd_beamer_headrule\par\nointerlineskip
+ }
+ \bool_if:NTF \g_@@_extended_space_bool {
+ \bool_if:NTF \g_@@_headrule_bool {
+ \skip_vertical:n {\dim_eval:n {+\paperheight/38}}
+ \strut
+ } {
+ \skip_vertical:n {\dim_eval:n {\paperheight/16}}
+ }
+ }{
+ \skip_vertical:n {\dimexpr\paperheight/38}
+ \hspace*{\beamer@leftmargin}\rlap{\usebeamertemplate***{title~in~head/foot}}
+ }
+ \hspace*{\fill}
+ \bool_if:NT \g_ptxcd_headlinelogo_bool {
+ %partnerlogo
+ \bool_if:NT \g_@@_extended_space_bool \smash {
+ \raisebox{\dimexpr-\height+\ht\strutbox}{
+ \box_use:N \g_@@_partnerlogo_box
+ }
+ }
+ \skip_horizontal:n {\dimexpr\paperheight/38}
+ %logo
+ \bool_if:NTF \g_@@_headrule_bool {
+ \raisebox{2mm}[0pt][0pt]{\setlength{\fboxsep}{\z@}\colorbox{white}{\rule{\z@}{\dim_eval:n {\box_ht:N \g_@@_logo_box+\box_ht:N \ptxcd_beamer_headrule_box + \box_dp:N \ptxcd_beamer_headrule_box+1pt}}\box_use:N \g_@@_logo_box}}
+ \hspace*{10pt}
+ } {
+ \bool_if:NT \g_@@_extended_space_bool \smash {\box_use:N \g_@@_logo_box}
+ \hspace*{.7pt}
+ }
+ }
+ \par
+}
+\setbeamertemplate{title~in~head/foot}{
+ \bool_set_false:N \l_ptxcd_separate_bool
+ \tl_if_empty:NF {\beamer@shorttitle} {
+ \bool_set_true:N \l_ptxcd_separate_bool
+ \text_uppercase:n {\beamer@shorttitle}
+ }
+ \tl_if_empty:NF {\beamer@shortauthor} {
+ \bool_if:NT \l_ptxcd_separate_bool {
+ \space/\space
+ }
+ \text_uppercase:n {\beamer@shortauthor}
+ }
+}
+\defbeamertemplate*{sidebar~right}{TUDa2023}{
+ \bool_if:NT \g_ptxcd_headlinelogo_bool {
+ \vspace{\c_ptxcd_logoheight_dim}
+ \llap{\box_use:N \g_@@_sublogo_box}
+ }
+}
+\defbeamertemplate*{frametitle}{TUDa2023}[1][left]{%
+ \nointerlineskip%
+ \bool_if:NF \g_@@_extended_space_bool
+ {\vskip.55ex}
+ \begin{beamercolorbox}[
+ wd=\dim_eval:n {\bool_if:NT \g_@@_extended_space_bool {-\box_wd:N \g_@@_logo_box } \box_if_empty:NF \g_@@_sublogo_box {-\box_wd:N \g_@@_sublogo_box - 1em}+ \textwidth},
+ ]{frametitle}
+ \usebeamerfont{frametitle}%
+ \if@tempswa\else\csname beamer@fte#1\endcsname\fi%
+ \vphantom{Ü}
+ \bool_if:NT \g_@@_uppercase_frametitle_bool \text_uppercase:n {\insertframetitle}\strut
+ \par%
+ {%
+ \ifx\insertframesubtitle\@empty%
+ \else%
+ {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\text_uppercase:n {\insertframesubtitle}\strut\par}%
+ \fi
+ }%
+ \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
+ \end{beamercolorbox}
+ \vskip.5ex
+}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\mode
+<all>
+% \end{macrocode}
+% \iffalse
+%</main>
+%</body>
+%</package>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/beamerthemeTUDa2008.dtx b/Master/texmf-dist/source/latex/tuda-ci/beamerthemeTUDa2008.dtx
new file mode 100644
index 00000000000..cfb9a20f723
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/beamerthemeTUDa2008.dtx
@@ -0,0 +1,214 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{beamerthemeTUDa2008.dtx}[2025-01-26 v4.00 Compatibility mode for the design=2008 of tudabeamer]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use of the current theme as well as DEMO-TUDaBeamer2008-de for the compatibility example.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{beamerthemeTUDa2008.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%<*outer>
+%<@@=ptxcd>
+% \fi
+% \begin{macrocode}
+\ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth-2\g_@@_beamer_sep_dim]{ptxcd_beamer_headrule}
+\ptxcd_makefootrule[width=\paperwidth-2\g_@@_beamer_sep_dim]{ptxcd_beamer_rule}
+% \end{macrocode}
+% \begin{macrocode}
+\defbeamertemplate*{sidebar~left}{TUDa}{}
+\defbeamertemplate*{sidebar~right}{TUDa}{}
+\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
+\defbeamertemplate*{footline}{TUDa}
+{
+ \begin{beamercolorbox}[leftskip=\g_@@_beamer_sep_dim,rightskip=\g_@@_beamer_sep_dim,
+ ht=\csname c_ptxcd_smallrule_dim\endcsname,dp=1mm]{footline}
+ \ptxcd_beamer_rule
+ \end{beamercolorbox}
+ \begin{beamercolorbox}[
+ leftskip=\g_@@_beamer_sep_dim,
+ rightskip=\g_@@_beamer_sep_dim, ht=2.75mm,dp=2.75mm]{footline}
+ \usebeamerfont{author~ in~ head/foot}%
+ \bool_set_false:N \l_ptxcd_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_ptxcd_tmpa_bool {~|~}
+ {\bool_set_true:N \l_ptxcd_tmpa_bool}
+ \use:c {insertshort\l_tmpa_tl}
+ }
+ }
+ \bool_if:NT \l_ptxcd_tmpa_bool {~|~}
+ \insertframenumber
+ \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo}
+ \end{beamercolorbox}
+}
+
+\defbeamertemplate{headline}{TUDa.logo} {%
+ \begin{beamercolorbox}[
+ leftskip=\g_@@_beamer_sep_dim,rightskip=\g_@@_beamer_sep_dim,
+ ht=.75\g_@@_beamer_sep_dim,dp=\box_dp:N \ptxcd_beamer_headrule_box]{headline}
+ \ptxcd_beamer_headrule
+ \end{beamercolorbox}
+}
+\box_new:N \l_@@_frametitle_box
+\defbeamertemplate{frametitle}{TUDa.logo}{%
+\nointerlineskip%
+\begin{beamercolorbox}[
+ sep=\g_@@_beamer_logosep_dim,
+ wd=\dim_eval:n {\_@@_beamer_linewidth:+2\l_@@_beamer_extraindent_dim},
+ rightskip=-\g_@@_beamer_logosep_dim,
+ leftskip=\dim_eval:n {-\g_@@_beamer_logosep_dim+\l_@@_beamer_extraindent_dim},
+ ]{frametitle}
+ \hbox_set:Nn \l_@@_frametitle_box {
+ \parbox[t]
+ {\dim_eval:n {\linewidth- \box_wd:N \g_@@_logo_box-1em}}{%
+ \usebeamerfont{frametitle}\strut\insertframetitle
+ \ifx\insertframesubtitle\@empty
+ \else
+ \par
+ \usebeamercolor[fg]{framesubtitle}
+ \usebeamerfont{framesubtitle}
+ \insertframesubtitle
+ \fi
+ }}
+ \leavevmode
+ \bool_if:NTF \g_ptxcd_centerframetitle_bool
+ {\raisebox{\dimexpr-.5\height+.5\depth}}
+ {\use:n}
+ {\box_use:N \l_@@_frametitle_box}
+ \hfill%
+ \bool_if:NTF \g_ptxcd_centerframetitle_bool
+ {\raisebox{\dimexpr-.5\height+.5\depth}}
+ {\raisebox{\dimexpr-\height+\ht\strutbox}}
+ {\box_use:N \g_@@_logo_box}
+\end{beamercolorbox}%
+\bool_if:NT \g_ptxcd_headsepline_bool {
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\dim_eval:n {\textwidth+2\l_@@_beamer_extraindent_dim},
+ ht=\c_ptxcd_smallrule_dim,
+ dp=0pt
+ ]{smallrule}
+ \end{beamercolorbox}
+}
+}
+\defbeamertemplate*{headline}{TUDa.nologo}
+{%
+ \vspace{.75\g_@@_beamer_sep_dim}
+ \begin{beamercolorbox}[
+ leftskip=\g_@@_beamer_sep_dim,rightskip=\g_@@_beamer_sep_dim]{headline}
+ \ptxcd_beamer_headrule
+ \end{beamercolorbox}
+ }
+\defbeamertemplate*{headline}{TUDa.simple}
+{
+ \ifbeamercolorempty[bg]{background~canvas}{
+ \vspace{\dimexpr.5\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}
+ \skip_horizontal:n {\beamer@leftmargin}
+ \color{identbarcolor}
+ \vrule width\dimexpr\textwidth-\beamer@leftmargin-\beamer@rightmargin height\c_ptxcd_rulesep_dim
+ }{
+ \vspace{\dimexpr.5\c_ptxcd_logoheight_dim}
+ }
+}
+\defbeamertemplate*{frametitle}{TUDa.nologo}{%
+ \nointerlineskip%
+\begin{beamercolorbox}[
+ sep=\g_@@_beamer_logosep_dim,
+ wd=\dim_eval:n {\_@@_beamer_linewidth:+2\l_@@_beamer_extraindent_dim},
+ leftskip=\dim_eval:n {-\g_@@_beamer_logosep_dim+\l_@@_beamer_extraindent_dim},
+ ]{frametitle}
+ \hbox_set:Nn \l_@@_frametitle_box {
+ \parbox[t]
+ {\dimexpr\linewidth- \box_wd:N \g_@@_logo_box-1em\relax\relax}{%
+ \usebeamerfont{frametitle}\strut\insertframetitle
+ \ifx\insertframesubtitle\@empty
+ \else
+ \par
+ \usebeamercolor[fg]{framesubtitle}
+ \usebeamerfont{framesubtitle}
+ \insertframesubtitle
+ \fi
+}}
+\leavevmode
+\bool_if:NTF \g_ptxcd_centerframetitle_bool
+{\raisebox{\dimexpr-.5\height+.5\depth}}
+{\use:n}
+{\box_use:N \l_@@_frametitle_box}
+% \end{macrocode}
+% Rule for voffset similar to logo
+% \begin{macrocode}
+ \rule[\dim_eval:n {
+ \bool_if:NTF \g_ptxcd_centerframetitle_bool
+ {-.5\box_ht:N \g_@@_logo_box+.5\box_dp:N \g_@@_logo_box}
+ {-\box_ht:N \g_@@_logo_box+\ht\strutbox}
+ }]{0pt}{\dim_eval:n {
+ \box_ht:N \g_@@_logo_box+\box_dp:N \g_@@_logo_box
+ }}
+\end{beamercolorbox}
+\bool_if:NT \g_ptxcd_headsepline_bool {
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\dimexpr\linewidth+2\l_@@_beamer_extraindent_dim \relax,
+ ht=\c_ptxcd_smallrule_dim,
+ dp=0pt
+ ]{smallrule}
+ \end{beamercolorbox}
+}
+}
+\cs_new:Nn \ptxcd_setup_frame: {
+ \bool_if:NTF \g_ptxcd_headlinelogo_bool {
+ \setbeamertemplate{frametitle}[TUDa.logo]
+ \setbeamertemplate{headline}[TUDa.logo]
+ }{
+ \setbeamertemplate{frametitle}[TUDa.nologo]
+ \setbeamertemplate{headline}[TUDa.nologo]
+ }
+}
+\ptxcd_setup_frame:
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\mode
+<all>
+% \end{macrocode}
+% \iffalse
+%</outer>
+% \fi
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.dtx b/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.dtx
new file mode 100644
index 00000000000..190483e12a7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.dtx
@@ -0,0 +1,3775 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{tuda-ci.dtx}[2025-01-26 v4.00 The TUDa-CI Bundle – LaTeX using the Corporate Design of TU Darmstadt]
+%</driver>
+%<*package|class>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+%<tudapub>\ProvidesExplClass{tudapub}{2025-01-26}{4.00}{Publications using TU Darmstadt's Corporate Design (TUDa-CI)}
+%<tudathesis>\ProvidesExplFile{tudathesis.cfg}{2025-01-26}{4.00}{Special Features for publication type 'thesis' using TU Darmstadt's Corporate Design (tuda-ci)}
+%</package|class>
+%<*driver>
+\PassOptionsToPackage{hyperindex=false}{hyperref}
+\documentclass[
+ pdfa=false,
+ titlepage=true,
+ custommargins=geometry,
+ parskip=half-,
+ textaccentcolor=black,
+ class=report,
+ IMRAD=false,
+ accept-missing-logos=true,
+]{tudapub}
+\let\tudamaketitle\maketitle% avoid issues due to catcode changes
+\newcommand*\file[1]{\texttt{#1}}
+% by default doc.sty would define this to be used as a wrapper for the index code reference numbers
+\newcommand*\code[1]{\texttt{#1}}
+\newcommand*\tbs{\textbackslash}
+\newcommand*\pkg[1]{\textsf{#1}}
+\newcommand*\cls[1]{\textsf{#1}}
+\usepackage[german,english]{babel}
+\usepackage{doc}
+\let\maketitle\tudamaketitle% restore
+\usepackage{tabularx}
+\usepackage{booktabs}
+\usepackage{verbatim}% for \comment
+\usepackage{minted}
+\usepackage[autostyle]{csquotes}
+\usepackage{hologo}
+
+\usepackage{xspace}
+\AddToHook{cmd/KOMAScript/after}{\xspace}
+
+\providecommand*{\codefamily}{\ttfamily}
+\DeclareTextFontCommand{\codefont}{\codefamily}
+\ProvideDocElement[idxtype = option, idxgroup = options]{Option}{optionenv}
+\makeatletter
+\ExplSyntaxOn
+\newcommand{\PrintDescribeKeyOption}[1]{\parbox[b]{\linewidth}{\raggedleft\MacroFont #1}\rlap{=}}
+
+\cs_new:Npn \__ptxtools_parse_key_option:w #1 #2 #3 #4 = #5 \q_stop {
+ \noindent{\let\PrintDescribeOption\PrintDescribeKeyOption\DescribeOption{#4}}\makebox[\linewidth]{
+ \IfBooleanTF{#3}{\textsf{#5}}{\textsf{(#5)}}
+ \hfill
+ \IfBooleanTF{#1}
+ {#2}
+ {(default:~\codefont{#2})}
+ }
+}
+
+\cs_new:Npn \__ptxtools_parse_key_option_item:w #1 #2 #3 #4 = #5 \q_stop {
+ \item[\let\MacroFont\codefamily\DescribeOption{#4=}\IfBooleanTF{#3}{\textsf{#5}}{\textsf{(#5)}}]
+ \hfill
+ \IfBooleanTF{#1}
+ {#2}
+ {(default:~\codefont{#2})}\newline
+}
+
+\NewDocumentCommand{\DescribeKeyOption}{smms}{
+ \__ptxtools_parse_key_option:w #1 {#3} #4 #2 \q_stop
+}
+
+\NewDocumentCommand{\KeyOptionItem}{smms}{
+ \__ptxtools_parse_key_option_item:w #1 {#3} #4 #2 \q_stop
+}
+
+%%%%%%%%%
+%% Implementation matching the implementtion of documentation/implementation like in
+%% l3doc.dtx version of 2024-12-25
+%% Copyright (C) 1990-2024 The LaTeX Project
+%%%%%%%%%
+
+\bool_new:N \l__ptxtools_in_implementation_bool
+\bool_new:N \g__ptxtools_typeset_documentation_bool
+\bool_new:N \g__ptxtools_typeset_implementation_bool
+\bool_set_true:N \g__ptxtools_typeset_documentation_bool
+\bool_set_true:N \g__ptxtools_typeset_implementation_bool
+\NewDocumentCommand \EnableDocumentation { }
+ { \bool_gset_true:N \g__ptxtools_typeset_documentation_bool }
+\NewDocumentCommand \EnableImplementation { }
+ { \bool_gset_true:N \g__ptxtools_typeset_implementation_bool }
+\NewDocumentCommand \DisableDocumentation { }
+ { \bool_gset_false:N \g__ptxtools_typeset_documentation_bool }
+\NewDocumentCommand \DisableImplementation { }
+ { \bool_gset_false:N \g__ptxtools_typeset_implementation_bool }
+\NewDocumentEnvironment { documentation } { }
+ {
+ \bool_if:NTF \g__ptxtools_typeset_documentation_bool
+ { \bool_set_false:N \l__ptxtools_in_implementation_bool }
+ { \comment }
+ }
+ { \bool_if:NF \g__ptxtools_typeset_documentation_bool { \endcomment } }
+\NewDocumentEnvironment { implementation } { }
+ {
+ \bool_if:NTF \g__ptxtools_typeset_implementation_bool
+ { \bool_set_true:N \l__ptxtools_in_implementation_bool }
+ { \comment }
+ }
+ { \bool_if:NF \g__ptxtools_typeset_implementation_bool { \endcomment } }
+\let\saved_macrocode\macrocode
+\let\saved_endmacrocode\endmacrocode
+\def\macrocode{
+\bool_if:NTF \g__ptxtools_typeset_implementation_bool
+\saved_macrocode
+\comment
+}
+\def\endmacrocode{
+\bool_if:NTF \g__ptxtools_typeset_implementation_bool
+\saved_endmacrocode
+\endcomment
+}
+
+%%%%%%%%%
+%% end of the snippet adapted from l3doc.dtx
+%%%%%%%%%
+
+\usepackage{minted}
+\newminted[Syntax]{latex}{gobble=2, tabsize=4}
+\newminted[example]{latex}{gobble=2, tabsize=4}
+\setminted{escapeinside=||}
+
+\geometry{
+ top=\g_ptxcd_topMargin_dim,
+ inner=\g_ptxcd_innerMargin_dim,
+ outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
+ bottom=\g_ptxcd_bottomMargin_dim,
+ columnsep= \g_ptxcd_columnSep_dim,
+ includehead,
+ includefoot,
+ includemp,
+ nomarginpar,
+ includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim,
+ headheight=\g_ptxcd_headheight_dim,
+ reversemp
+}
+
+% Loader for dtx files so the preamble is only necessary once
+\NewDocumentCommand{\TUDaLoadDocDTX}{m}{
+ \exp_args:No \clist_map_inline:nn {#1} {\DocInput{##1}}
+}
+
+\ExplSyntaxOff
+\newcommand{\docmarginpar}[1]{\frame{#1}}
+
+\makeatother
+
+\providecommand*{\sarg}{\codefont{*}}
+\providecommand*\marg[1]{%
+ {\codefamily\char`\{}\meta{#1}{\codefamily\char`\}}}
+\providecommand*\oarg[1]{%
+ {\codefamily[}\meta{#1}{\codefamily]}}
+\providecommand*\parg[1]{%
+ {\codefamily(}\meta{#1}{\codefamily)}}
+
+\usepackage{biblatex}
+\addbibresource{DEMO-TUDaBibliography.bib}
+
+\hypersetup{hidelinks}
+
+\usepackage{pifont}% Zapf-Dingbats Symbols
+\newcommand*{\FeatureTrue}{\ding{52}}
+\newcommand*{\FeatureFalse}{\ding{56}}
+\EnableCrossrefs
+
+\CodelineIndex
+\RecordChanges
+
+\providecommand*{\TUDaDocDTXfiles}{tuda-ci.dtx,tudacolors.dtx}
+
+\begin{document}
+\OnlyDescription
+\DisableImplementation
+\TUDaLoadDocDTX{\TUDaDocDTXfiles}
+\PrintChanges
+\printbibliography
+% Restore \code to be a wrapper for index numbers
+\begingroup
+\renewcommand*\code[1]{#1}
+\PrintIndex
+\endgroup
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{v3.90}{2024-02-01}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% \GetFileInfo{tuda-ci.dtx}
+% \title{TUDa-CI – Corporate Design for TU Darmstadt using \LaTeX}
+% \subtitle{Documentation for the TUDa-CI bundle}
+% \author{Marei Peischl\thanks{Email: \href{mailto:tuda-ci@peitex.de}{tuda-ci@peitex.de}}}
+% \date{\fileversion~from \filedate}
+% \maketitle
+%
+% \begin{abstract}
+% The TUDa-CI-Bundle provides a possibility to use the Corporate Design of TU Darmstadt with \LaTeX.
+% Therefore, it contains document classes as well as some helper packages and config files together with some templates for user documentation.
+% Up to Version 4.00 the documentation was only included in the demo files.
+% This document now sums up all features and includes references to other package documentations if required.
+%
+% This process is not yet finished and will probably last some more time.
+% So there will be more documentation as soon as possible and we try to gather everything within this document.
+% There are possibilities to help with the documentation especially the translation of the descriptions already aailable in German.
+% In case you want to help feel free to provide a pull-request via the GitHub repository or contact the author for other options of contributing.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \chapter{Contents of the TUDa-CI Bundle}
+% The TUDa-CI Bundle currently contains template files for the following document types:
+%
+% \begin{description}
+% \item[Print publications] generic document class which provides modes for more specific documents.
+% The basic documentation applies to all types and can be found in \autoref{sec:tudapub}.
+% \begin{itemize}
+% \item \file{DEMO-TUDaPub.tex}: default document matching the CI guideline
+% \item minimal Template for internal reports \file{DEMO-TUDaReport.tex} using \option{type=intern} (see description of \option{type} in \autoref{sec:options} on \pageref{option:type})
+% \item (PhD) theses, using \option{type=thesis}. This also extends the functionality and adds some thesis specific mechanisms, see \autoref{sec:theses} \file{DEMO-TUDaThesis.tex} and \file{DEMO-TUDaPhD.tex}
+% \end{itemize}
+% \item[Scientific Posters] based on the \pkg{tcolorbox} poster library, \cite{TUDaSciPoster}
+% \item[Presentation Slides] beamer theme. This includes the old design of 2008 as well as the redesign of 2023, \cite{TUDaBeamer}
+% \item[Announcement Posters] for event or job announcements, \cite{TUDaPoster}
+% \item[Leaflets] \cite{TUDaLeaflet}
+% \item[Exercise Sheets/Exams] \cite{TUDaExercise}
+% \item[Letters] \cite{TUDaLetter}
+% \end{description}
+%
+% The document classes use internal auxiliary packages to simplify the usage and reduce the maintenance effort.
+% These are called by the elements they define:
+% \pkg{tudacolors}, \pkg{tudafonts}, \pkg{tudarules} as well as the \pkg{pgfplots} color schemes defined by \pkg{tuda-pgfplots}.
+%
+% Additionally, the setup is defined to support department specific configuration files.
+% Officially we currently only support the setup of the department of mechanical engineering, see \autoref{sec:mecheng}.
+% There may be unofficial custom setups within the departments.
+% Those are not officially supported.
+% In case you want to provide your own and add it to TUDa-CI, please have a look at \autoref{sec:department-config}.
+%
+% \chapter{Getting Started}
+% The TUDa-CI bundle is available via CTAN\cite{ctan-tuda-ci} and therefore no manual installation should be required.
+% For TUDa members the HRZ also provides an on-premise Overleaf instance which also contains a release including all necessary files.
+% In case you are a member of TU Darmstadt you can access the server via \url{https://sharelatex.tu-darmstadt.de/}.
+%
+% \section{Logo installation}
+% Sadly the logo files may not be published together with this template.
+% So it is necessary to either disable the loading or install the files.
+% The easiest way to do so is by placing a copy of the required logos in your working directory.
+% But this will be required for every document you want to use these templates for.
+%
+% A better alternative would be a local installation of the logo file.
+% This can be done by moving the file info your \verb+TEXMFHOME+ directory.
+% On standard \TeX{} Live Installations this would be called \path{texmf/} in your users home directory.
+% Inside this one the logo files have to be placed according to the TDS (\TeX{} Directory Structure), which means it has to be copied into
+% \path{texmf/tex/latex/tuda-ci-logos}.
+%
+% Alternatively there are scripts to be run inside a terminal to automatically detect the correct location.
+% These can be found inside the \path{tools} directory of TUDa-CI's GitHub Repository (\citeurl{tuda-ci-github}).
+%
+% \chapter{\cls{tudapub} – generic class for articles and theses}
+% \label{sec:tudapub}
+% The TUDa-CI bundle uses a generic document class to be more flexible with the layout adjustments.
+% The setup is based on \KOMAScript and this section is listing the features.
+% Afterwards there will be specific information on the thesis modes.
+%
+% \section{Usage and class options}
+% \label{sec:options}
+% \begin{table}
+% \captionabove[Differences between the demo files based on \cls{tudapub}]{
+% Differences between the demo files based on \cls{tudapub}.
+% The template files use different options depending on the actual purpose.
+% This tabular gives an overview of the Features shown inside the tempaltes as well as the initial settings.
+% }
+% \label{tab:demo-options}
+% \begin{addmargin}[\dimexpr-\marginparwidth-\marginparsep]{0pt}
+% \begin{tabularx}{\linewidth}{@{}p{.25\linewidth}c>{\centering\arraybackslash}Xcc@{}}
+% \toprule
+% Option & DEMO-TUDaThesis & DEMO-TUDaPhD & DEMO-TUDapub & DEMO-TUDaReport \\
+% \midrule
+% twoside & \FeatureFalse & \FeatureTrue & \FeatureFalse & \FeatureFalse \\\midrule
+% parskip & \FeatureTrue & \FeatureFalse & \FeatureTrue & \FeatureFalse \\\midrule
+% colophone & \FeatureFalse & \FeatureTrue & \FeatureFalse & \FeatureFalse \\\midrule
+% dedication & \FeatureFalse & \FeatureTrue & \FeatureFalse & \FeatureFalse \\\midrule
+% font size & 11pt & 11pt & 9pt & 9pt \\\midrule
+% ruledheaders & section & chapter & all & all \\\midrule
+% class & scrreprt & scrbook & scrartcl & scrartcl \\\midrule
+% thesis & \ttfamily thesistype=bachelor & \ttfamily thesistype=dr, dr=rernat & \FeatureFalse & \FeatureFalse \\\midrule
+% marginpar & \FeatureFalse & \FeatureFalse & \FeatureTrue & \FeatureFalse \\\midrule
+% Affidavit\newline
+% \rlap{(\enquote{Selbstständigkeitserklärung})} & \FeatureTrue & \FeatureTrue & \FeatureFalse & \FeatureFalse \\\midrule
+% abstract & \FeatureFalse & \FeatureTrue & \FeatureTrue & \FeatureFalse \\\midrule
+% custommargins & \FeatureTrue & \FeatureTrue & \FeatureFalse & \FeatureFalse \\
+% \bottomrule
+% \end{tabularx}
+% \end{addmargin}
+% \end{table}
+% The class is loaded using
+% \begin{Syntax}
+% \documentclass[|\meta{Options}|]{tudapub}
+% \end{Syntax}
+% \noindent TUDa-CI defines some additional options to be used. These are described below.
+% The shown default values apply only for the document class itself. The template files may use different settings.
+% An overview of these differences are shown in \autoref{tab:demo-options}.
+%
+% \DescribeKeyOption{class=article/report/book}{article}
+% This option selects the base document class.
+% The values load the corresponding \KOMAScript class \cite{scrguide-en}.
+% The article value thus loads \cls{scrartcl}.
+%
+% \KOMAScript is a collection of classes and packages for \LaTeX{} which, in addition to the typographical adaptations to the European area, also greatly extends the configuration options.
+% The documentation is also available in German \cite{scrguide-de}.
+%
+% \DescribeKeyOption{accentcolor=\meta{Color}}{0b}*
+% Selects the spot color for use within the identity bar. In addition to these colors, any defined can be used.
+% See \autoref{sec:color} for the list of predefined colors as well as additional options for a more detailed selection.
+% The Options \option{accentcolor}, \option{textaccentcolor} and \option{identbarcolor} will be passed to tudacolors.
+% Using those, the colors can even be set independently of each other.
+%
+% \DescribeKeyOption{custommargins=\meta{Boolean}/geometry}{false}
+% According to the corporate design, the line lengths are too long from a typographical point of view.
+% This is why the custommargins class option exists.
+% Details are described within \autoref{sec:margins}.
+%
+% \DescribeKeyOption{marginpar=true/false/auto}{auto}
+% Controlls the marginpar. The default setting is auto.
+% This means that the marginpar column runs across the fifth column of the layout grid \cite{TUDaGuideline}.
+%^^A\marginpar{Marginpar example}
+% Above this, the option also accepts boolean values. False would set width of the column to 0.
+% The mechanism itself is not deactivated.
+%
+% The font inside the marginpars are controlled using the komafont mechanism \cite{scrguide-en} using the \code{marginpar} element.
+% It is defined as
+% \begin{example}
+% \setkomafont{marginpar}{\accentfont}
+% \end{example}
+% to extend this setting, e.\,g. by adding a color one can add
+% \begin{example}
+% \addtokomafont{marginpar}{\color{textaccentcolor}}
+% \end{example}
+% to the preamble.
+%^^A \marginline{
+%^^A \includegraphics[width=\marginparwidth]{example-image}\\
+%^^A Marginpar example using ragged text made with \KOMAScript's marginline
+%^^A }
+%
+% \DescribeKeyOption{twocolumn=\meta{Boolean}}{false}*
+% Activates the two-column mode globally.
+% In this case, however, two margin columns are created due to their nature.
+% Use in combination with \code{marginpar=auto} is therefore questionable in most cases.
+% If the two-column mode is only activated locally, that behavior does not apply, but the margin notes are deactivated.
+%
+% \DescribeKeyOption{ruledheaders=all/none/chapter/section}{all}
+% Selects the style of the headings.
+% \code{ruledheaders=all} selects the style framed with rules for all up to \cs{subsubsection}.
+% This style is limited accordingly for chapter or section.
+% False loads the \KOMAScript{} default setup instead.
+%
+% \DescribeKeyOption{title=default/small}{default}
+% The relatively large font size of the title can lead to spacing issues, especially with long titles for theses.
+% The \code{title} option prevents this by loading the font sizes set defined for the paper 1 size smaller (e.\,g. a5 font size if a4 paper is used).
+%
+% \DescribeKeyOption{type=publication/thesis/intern}{publication}
+% \label{option:type}%
+% Is used to load specific configuration for theses (\autoref{sec:thesis}) or internal documents (\autoref{sec:report}).
+%
+% \DescribeKeyOption{headline=true/false/automark}{false}
+% The CI guideline \cite{TUDaGuideline} allows headers to be used ruled below the identbar.
+% That may be confusing as the headers are typeset larger than subsection headings.
+% Because of that it's switched off by default, but users can enable this setting using the \code{headline} option.
+% \code{automark} will also be passed to \pkg{scrlayer-scrpage} and switch to running headers.
+%
+% \DescribeKeyOption{logo=head/body}{body}
+% Sets the position of the logo on the title page, see \autoref{sec:title-options}.
+%
+% \DescribeKeyOption{colorback=true/false/title/body/head}{true}
+% Change the color setup of the title page, see \autoref{sec:title-options}.
+%
+% \DescribeKeyOption{IMRAD=\meta{Boolean}}{true}*
+% Toggles the check for IMRAD labels, see \autoref{sec:IMRAD}.
+%
+% \DescribeKeyOption{logofile=\meta{file name/path}}{tuda\_logo}*
+% Allows an alternative logo to be used.
+% This option is available so that the templates can also be used without the TUDa logo.
+% The logos are reserved to be used by TUDa members and may therefore not be published with this template.
+% In case you want to install the logo files locally you can find further information at \citeurl{TUDa-CI-Info}.
+%
+% \noindent Additionally all \KOMAScript{} options can be used. These are described within the documentation. Some more notes on the interaction between \KOMAScript{} and TUDa-CI can be found in \autoref{sec:KOMA}.
+%
+% \section{Title}\label{sec:title}
+%
+% The title page is generated automatically by \cls{tudapub}.
+% The structure for this corresponds largely to the classic method using \cs{maketitle}.
+%
+% The \KOMAScript{} option \code{titlepage}\cite{scrguide-en} is supported to switch between separate title pages and an in-page title block.
+% Due to the implementation, \code{titlepage=true} is treated identically to \code{titlepage=\allowbreak firstiscover}.
+%
+% \DescribeMacro{\titlehead}\DescribeMacro{\title}\DescribeMacro{\subtitle}\DescribeMacro{\subject}\DescribeMacro{\author}\DescribeMacro{\and}\DescribeMacro{\thanks}\DescribeMacro{\date}\DescribeMacro{\publishers}
+% These macros are used to set the title data.
+% If not mentioned differently all need one mandatory argument which contains the data.
+% They are used as with standard \LaTeX{}, but there were a few added to support the additional features of the title page design.
+% \begin{Syntax}
+% \title{|\meta{title}|}
+% \author{|\meta{Author1}|\thanks{Affiliation of Author1} \and |\meta{Author2}|}
+% % |\textnormal{[…other elements…]}|
+% \maketitle
+% \end{Syntax}
+%
+% \subsection{TUDa-CI specific title elements}
+% \DescribeMacro{\titlegraphic}
+% Accepts any \LaTeX{} content, does not have to be an image.
+% This is placed flush with the top corner in the main part of the title page.
+% This macro is usually used to place a graphic:
+% \begin{example}
+% \titlegraphic{\includegraphics[width=\width]{example-image}}
+% \end{example}
+% \DescribeMacro{\width}\DescribeMacro{\height}
+% \cs{width} and \cs{height} can be used to select the appropriate size of the image.
+% From version 3.19, there also is a starred variant \cs{titlegraphic*}.
+% With this, scaling and any necessary cropping to fill the reserved area is done automatically using \pkg{trimclip}.
+% \begin{example}
+% \titlegraphic*{\includegraphics{example-image}}
+% \end{example}
+%
+% \DescribeMacro{\addTitleBox}%
+% \DescribeMacro{\addTitleBoxLogo}
+% \begin{Syntax}
+% \addTitleBox{|\meta{Box Content}|}
+% \addTitleBoxLogo*{|\meta{Logo}|}
+% \end{Syntax}
+% The TUDa CI design is using white boxes to place additional Information or logos on the title page.
+% These can be added using \cs{addTitleBox} or \cs{addTitleBoxLogo}.
+%
+% All title boxes are placed below each other with a specified distance and use a white background.
+% Text or an institute logo may appear here. The background hast to be white.
+%
+% Whereas \cs{addTitleBox} will set the box to the same width and horizontal alignment as the TUDa logo the logo variants of this macro don't have a fixed width.
+% Here the default is to place scale the logo automtically and maual scaling has to be enforced using the starred variant:
+%
+% \begin{example}
+% \addTitleBox{Text, e.\,g. Institute}
+% \addTitleBoxLogo{example-image}
+% \addTitleBoxLogo*{\includegraphics[width=.3\linewidth]{example-image}}
+% \end{example}
+%
+% \DescribeMacro{\AddSponsor}
+% As of version 3.0, the sponsor mechanism of \cls{tudaleaflet} is also available in \cls{tudapub}.
+% This makes it possible to place sponsor logos below the title graphic.
+% Sponsor logos or names can be added using \cs{AddSponsor}
+% \begin{Syntax}
+% \AddSponsor{|\meta{Code to insert the Logo or just the name}|}
+% \end{Syntax}
+% \DescribeMacro{\height} \cs{height} is defined within the argument.
+% All sponsors added this way are aligned at their baseline.
+% This can be used to scale multiple logos to the same height.
+% The space between the sponsors will be horizontally filled.
+%
+% \DescribeMacro{\sponsors}
+% The second variant enables manual placement with vertical alignment, as may be necessary for logos with different heights.
+% In this case, only the spacing and seperation rules are added around the logos:
+% \begin{Syntax}
+% \sponsors{|\meta{logo1}\meta{logo2}|}
+% \end{Syntax}
+%
+% For theses there exist additional data fields \cs{birthplace}, \cs{group}, \cs{examdate}, \cs{submissiondate}, \cs{tuprints}, \cs{urn} and \cs{reviewer}.
+% To use these and also learn about other specials of the title mechanism within theses, please refer to \autoref{sec:theses-title}.
+%
+% \subsection{Options for titlepage modification}
+% \label{sec:title-options}
+% \DescribeKeyOption{logo=head/body}{body}
+% The position of the logo can be switched. This is done via the class option \option{logo};
+% \begin{description}
+% \item[logo=head]
+% The logo is placed in the header directly next to the title, which is reduced in width.
+% The background of the title is colored in the color of the identity bar.
+% This setting also will move the boxes below the logo to the page head.
+%
+% \item[logo=body] The logo including the info boxes is placed in the body of the front page.
+% \end{description}
+%
+% \DescribeKeyOption{colorback=\meta{Boolean}/title/head/body}{true}
+% Similar to the logo position the color structure can be adjusted.
+% \option{colorback} toggles between the colored block on the title page and the white background.
+%
+% The other values will enable the colored area but allow switching between positions.
+% \begin{description}
+% \item[colorback=title] Only the title background (without subtitle) is colored.
+% \item[colorback=head] Background of the total title block including subtitles is colored.
+% \item[colorback=body] Only the background of the area used for the \cs{titlegraphic} is colored.
+% \end{description}
+%
+% \subsection{Extra title material for theses}
+% For \option{mode=thesis} the title page works a little different.
+% Here some data elements are used to provide an interface to be overwritten and are prefilled using additional data fields.
+% The fields only existing in \option{thesis} mode are: \cs{birthplace}, \cs{group}, \cs{examdate}, \cs{submissiondate}, \cs{tuprints}, \cs{urn} and \cs{reviewer}.
+% For more information on their use and other settings for theses have a look at \autoref{sec:theses}.
+%
+% \subsection{Abstract}
+% \cls{tudapub} extends the availability of the \environment{abstract} environment to \cls{scrbook}.
+% Additionally, it adds an optional argument to select the language.
+% This should be used to use multiple abstracts of different languages within one document.
+%
+% \begin{example}
+% \begin{abstract}
+% Abstract using the document main language (here English)
+% \end{abstract}
+%
+% \begin{abstract}[german]
+% Weitere Zusammenfassung in einer anderen Sprache (hier Deutsch),
+% sofern benötigt.
+% \end{abstract}
+% \end{example}
+%
+% It is important that all languages used in the document are loaded.
+% In the case of the example, both options, \option{english} and \option{german} must be passed to the babel package.
+%
+% \section{PDF/A}
+%
+% The university library requires submissions to be compliant to the PDF/A standard.
+% \DescribeKeyOption{pdfa=\meta{Boolean}}{true}
+% The TUDaPub class supports the PDF/A 2b standard.
+% PDF/A mode is automatically activated within \cls{tudapub}.
+% Depending on the document it's using an implementation via the \pkg{pdfx} package or the \LaTeX{} kernels own PDF management.
+%
+% \LaTeX{} is not validating the file in any way, it is just using compatible settings for all elements processed by the compiler.
+% As \LaTeX{} is not doing any processing on image files the user has to ensure the font settings match the requirements for PDF/A.
+%
+% \DescribeKeyOption{pdfx=\meta{Boolean}}{true}
+% \cls{tudapub} will try to automatically select the best method.
+% This is done using \option{pdfx} option.
+% This should only be toggled manually if the user is totally sure to understand the impact.
+%
+% \subsection{Creating PDF/A using the PDF management}
+% \label{sec:pdfmanagement}
+% The template files which use PDF/A by default now include the settings for the PDF management:
+% \begin{example}
+% \DocumentMetadata{
+% pdfstandard=a-2b,
+% pdfversion=1.7,
+% lang=en,% or de or …
+% }
+% \end{example}
+% This can also be used within other documents. More Information on this structure can be found in the documentation of the \pkg{pdfmangement-testphase} \cite{pdfmanagement-testphase} as well as \pkg{l3pdfmeta} \cite{l3pdfmeta}.
+%
+% If this setting is used \cls{tudapub} will automatically disable the loading for \pkg{pdfx}.
+% \cls{tudapub} will automatically try to pass the title data to the metadata.
+% In case the title contains more complex material which can not be expanded into text it's possible to overwrite these settings using \pkg{hyperref}'s \cs{hypersetup}.
+% The demo files include examples.
+%
+% \subsection{Creating PDF/A using the pdfx}
+% In older versions of this bundle we used \pkg{pdfx} to create PDF/A compliant output files.
+% If the PDF management using \cs{DocumentMetadata} is not detected to be active, \cls{tudapub} will still try to use this mechanism.
+% The metadata setup for the XMP data then works completely different.
+%
+% The compiler is creating an additional \file{\cs{jobname}.xmpdata} file.
+% It is tried to insert the title data directly. The title data is usually transferred directly.
+% However, this can lead to problems if there are macros used within title material.
+% For example, the subtitle for this document contains the \LaTeX{} macro, but only text elements can be used.
+% Similar to the link labels within the PDF bookmarks.
+%
+% \DescribeMacro{\Metadata}To avoid this issue, \cls{tudapub} provides the macro \cs{Metadata}.
+% All variables that can be processed by \pkg{pdfx} can be set here according to the key=value structure.
+% \begin{example}
+% \Metadata{
+% author=Marei Peischl (peiTeX),
+% title=LaTeX im Corporate Design der TU Darmstadt,
+% }
+% \end{example}
+% Please note that this macro only works if PDF/A output is activated, and no PDF management is used.
+% If this is not the case, \cls{tudapub} issues a corresponding error message or warning.
+%
+% For a full list of the available metadata fields have a look at the \pkg{pdfx} documentation \cite{pdfx}.
+%
+% \subsection{Additional metadata as requested by the university library}
+% \label{sec:IMRAD}
+% There is a mechanism for identifying the IMRaD \cite{imrad} structuring model.
+% In the style of the individual sub-areas, the call of
+% \begin{example}
+% \IMRADlabel{introduction}
+% \IMRADlabel{methods}
+% \IMRADlabel{results}
+% \IMRADlabel{discussion}
+% \end{example}
+% would generate the corresponding labels.
+% They have the name \codefont{IMRAD:\meta{key}}.
+%
+% \DescribeKeyOption{IMRAD=\meta{boolean}}{true}*
+% The check mechanism is activated by default at the request of the library.
+% If you are not planning to use these labels or this structure just don't match your document, the warning can be deactivated using the \option{IMRAD=false}.
+%
+% \subsection{Colors conversion and profile}
+% \label{sec:pdfa-color}
+% PDF/A can only use one color model within a document.
+% By default, if no specific profile is selected TUDa-CI will convert the colors to RGB.
+% However, as there is no clear conversion, CMYK elements should not be used in \option{pdfa=true} mode.
+%
+% This mode is not suitable for print output.
+% There will be a warning if the conversion is triggered.
+% To use CMYK colors with PDF/A it's necessary to use PDF/A via the PDF management (\autoref{sec:pdfmanagement}) and select a specific color profile \cite[see][]{l3pdfmeta}.
+%
+% \section{(PhD) Theses – Special options and elements used in these templates}
+% \label{sec:theses}
+%
+% As mentioned before the these templates \file{DEMO-TUDaThesis} and \file{DEMO-TUDaPhD} are based on \cls{tudapub}.
+% Therefore, they support all options as described before but provide some additional mechanisms.
+% To load the thesis specific config the option \option{type=thesis} has to be used.
+% As there are additional thesis specific options it's also possible to use the \option{thesis} key directly and add the specific options within braces:
+%
+% \begin{example}
+% \documentclass[
+% english,
+% class=report,
+% thesis={type=master}
+% |[…]|
+% ]{tudapub}
+% \end{example}
+%
+% \DescribeKeyOption{thesis/type=bachelor/pp/master/dr/drfinal/\meta{text}}{initially unset}*
+% Selection of the type.
+% This is printed on the title page and also selects which data is mandatory.
+% Possible values are listed below including their impact. The items in parentheses list the required data for that type.
+% \begin{description}
+% \item[sta] \enquote{Studienarbeit}: Student research project. (\cs{title}, \cs{author}, \cs{date})
+% \item[bachelor] \enquote{Bachelor thesis}. (\cs{title}, \cs{author}, \cs{submissiondate}, \cs{department}, \cs{reviewer})
+% \item[master] \enquote{Master thesis}. (\cs{title}, \cs{author}, \cs{submissiondate}, \cs{department}, \cs{reviewer})
+% \item[pp] \enquote{Project proposal}. (\cs{title}, \cs{author}, \cs{date}, \cs{department})
+% \item[dr] submitted Doctoral thesis (\cs{title}, \cs{author}, \cs{submissiondate}, \cs{department}, \cs{reviewer})
+% \item[drfinal] accepted Doctoral thesis (\cs{title}, \cs{author}, \cs{submissiondate}, \cs{examdate}, \cs{department}, \cs{reviewer})
+% \end{description}
+% If a type is specified that was not listed the text is directly used as type.
+% In this case, there are no mandatory title fields except the title.
+%
+% \DescribeKeyOption{dr=rernat/rerpol/ing/phil}{initially unset}
+% Loads one of the predefined texts for the title page.
+%
+% For example, the value phil would use:
+% \foreignquote{german}{Zur Erlangung des Grades eines Doktor der Philosophie (Dr.\,phil.)}
+% Please be aware that the titlepage is enforced to use German.
+%
+% \DescribeMacro{\drtext}If none of these values correspond to the desired title, a text can be transferred directly.
+% \begin{example}
+% \drtext{To obtain the degree …}
+% \end{example}
+%
+%
+% \DescribeKeyOption{department=\meta{shorthand or text}}{initially unset}
+% The departments are permanently stored as text modules in German and English.
+% This option enables selection as a document class option.
+% For compatibility reasons, however, the department macro can also be used for this.
+% The following shorthands are predefined:
+%
+% \begin{tabular}{@{}l@{${}\to{}$}l@{}}
+% arch & Architecture \\
+% bauing & Civil and environmental engineering \\
+% bio & Biology \\
+% chem & Chemistry \\
+% etit & Electrical Engineering and Information Technology \\
+% gugw & History and Social Sciences \\
+% humanw & Human Sciences \\
+% inf & Computer Science \\
+% mb & Mechanical Engineering \\
+% matgeo & Materials and Earth Sciences \\
+% math & Mathematics \\
+% phys & Physics \\
+% wi & Law and Economics
+% \end{tabular}
+%
+% In addition to the departments, there are also \enquote{fields or study}.
+% These are not available for doctoral theses.
+% If the given value is not found in the departments the fields of study will be checked afterwards.
+% The study areas have the following shorthands:
+%
+% \begin{tabular}{@{}l@{${}\to{}$}l@{}}
+% ce & Computational Engineering \\
+% ese & Energy Science and Engineering \\
+% ist & Information Systems Engineering \\
+% mech & Mechanics \\
+% metro & Mechatronics
+% \end{tabular}
+%
+% If anything other than one of these shorthands is found, the provided text is used directly and a corresponding warning is issued.
+%
+% \subsection{Thesis specific title page settings and customization}
+% \label{sec:theses-title}
+% \DescribeKeyOption{instbox=\meta{Boolean}}{true}*
+% Selecting the department also creates a box on the title page below the logo.
+% In some cases this setting does not match the requirements.
+% Therefore, the option \option{instbox} can be deactivated.
+%
+% \DescribeKeyOption{ignore-missing-data=\meta{Boolean}}{false}
+% This option is a switch that makes it possible to disable the error message about title data that has not been transferred.
+% In this case, only a warning is created if the specified data does not match the requirements.
+%
+% \DescribeMacro{\publishers}
+% Is used here for the location and is preset with \foreignquote{german}{Darmstadt} or \foreignquote{german}{Darmstadt, Technische Universität Darmstadt} (for PhD theses).
+%
+% \DescribeMacro{\subject}
+% Will be placed below the \cs{subtitle} as for the normal title page, but will hold all the additional information which can be provided using the data fields described in this section.
+%
+% \DescribeMacro{\birthplace} Place of birth.
+% \DescribeMacro{\department}
+% Subject/field of study. It's preferred to set it via the class option.
+% However, the argument is processed in the same way.
+% This macro also provides the functionality of specifying entries that differ from the default entries.
+% Especially if a different text to the default \enquote{in the department of} and its variants is required.
+% For this purpose, \cs{department} provides an optional argument:
+% \begin{Syntax}
+% \department[|\meta{replacement text}|]{|\meta{abbreviation/name}|}
+% \end{Syntax}
+% In addition, from version 2.01 there is also the option of replacing the entire text \enquote{in the department \meta{department name}} as well as the information in the info box on the title page. This is done using the starred variant:
+% \begin{example}
+% \department*[text for the box]{text between type and author}
+% \end{example}
+% \DescribeMacro{\examdate}% \DescribeMacro{\submissiondate} Will be added within the description block \cs{subject}.
+%
+% \DescribeMacro{\institution}\DescribeMacro{\department}\DescribeMacro{\institute}\DescribeMacro{\group}
+% Will be added inside a title box as was described in \autoref{sec:title} below each other.
+%
+% \DescribeMacro{\reviewer} Reviewers.
+% Multiple reviewers are separated by \cs{and} as for authors.
+% The numbering runs from left to right.
+%
+% \minisec{Adjusting the reviewer labels}
+% The identifier can be changed using an optional argument:
+% \begin{Syntax}
+% \reviewer[|\meta{replacement identifier}|]{|\meta{name1}| \and |\meta{name2}|}
+% \end{Syntax}
+% To change the numerical designation, a comma list is used instead of a single label:
+% \begin{example}
+% \reviewer*[identifier1, identifier2]{name1 \and name2}
+% \end{example}
+% In this case, the automatic numbering before the identifier is omitted.
+% If, for example, the wording of the doctoral regulations is to be complied with, the following applies:
+% \begin{example}
+% \reviewer[Erstreferent\_in,Koreferent\_in]{Name1 \and Name2}
+% \end{example}
+%
+% \DescribeMacro{\setupReviewName}There is also a macro for creating department-specific templates.
+% This allows changes to be made without calling \cs{reviewer}.
+% \begin{Syntax}
+% \setupReviewName{|\meta{Alternative label to replace \enquote{Review}}|}
+% \setupReviewName[1]{|\meta{Erstreferent}|}
+% \setupReviewName*{|\meta{label1}|,|\meta{label2}|}
+% \end{Syntax}
+%
+% \DescribeKeyOption{reviewer-on-uppertitleback=\meta{Boolean}}{false}*
+% As of version 3.26, the reviewers are no longer named on the back of the title page.
+% This can be controlled using the thesis option \option{reviewer-on-uppertitleback}.
+%
+% \DescribeMacro{\studentID} Matriculation number. According to the template specifications, this information is always optional.
+%
+% \DescribeMacro{\titleintro}\DescribeMacro{\titleaddendum} From version 2.03, these hooks can be used to add any text directly in front or after the automatic generated subject block holding the thesis data.
+%
+% \DescribeMacro{\tuprints}\label{page:tuprints} Publication via TUprints requires this setting.
+% The data should be provided by the TUprints submission process.
+% \begin{example}
+% \tuprints{
+% printid=12345,
+% urn=123456,
+% year=2022
+% }
+% \end{example}
+%
+% \DescribeKeyOption{printid=\meta{TUprints print ID}}{\meta{initially unset}}*
+% \DescribeKeyOption{urn=\meta{TUprints URN}}{\meta{initially unset}}*
+% If the argument does not contain an equals sign, the value is set as \option{printid} and no \option{urn} is specified.
+%
+% \option{printid} is the ID number of the TUprints entry. The urn is a permanently unique resource identifier for the document. In TUprints, the number corresponds to the \option{printid} with the addition of a check digit.
+% Both dates can be found in the details of the TUprints entry.
+%
+% \minisec{License information}
+% \DescribeKeyOption{license=\meta{License key or license text}}{cc-by-4.0}*
+% From version 3.08 there are predefined values for \option{license} simplify customization. These are as follows:
+%
+% \parbox[t]{.5\linewidth}{%
+% \codefamily
+% \href{https://creativecommons.org/licenses/by/4.0/}{cc-by-4.0} \textnormal{default since version 4.0}\par
+% \href{https://creativecommons.org/licenses/by-sa/4.0/}{cc-by-sa-4.0}\par
+% \href{https://creativecommons.org/licenses/by-nc-sa/4.0/}{cc-by-nc-sa-4.0}\par
+% \href{https://creativecommons.org/licenses/by-nc-/4.0/}{cc-by-nc-4.0}\par
+% }%^^A
+% \parbox[t]{.5\linewidth}{
+% \codefamily
+% \href{https://creativecommons.org/licenses/by-nd/4.0/}{cc-by-nd-4.0}\par
+% \href{https://creativecommons.org/licenses/by-nc-nd/4.0/}{cc-by-nc-nd-4.0}\par
+% \href{https://rightsstatements.org/page/InC/1.0/}{inc-1.0}\textnormal{ (From version 3.36)}\par
+% \href{https://creativecommons.org/licenses/by-nc-nd/2.0/}{cc-by-nc-nd-2.0-en}\par
+% }
+%
+% The introduction of this option was part of the preparation for adapting the standard license.
+% The corresponding discussion can be found at \url{https://github.com/tudace/tuda_latex_templates/issues/251}.
+% The adjustment of the default setting for TUDa-CI was made with version 4.0.
+%
+% The ULB of TUDa offers support in choosing a suitable Creative Commons license at \url{https://www.ulb.tu-darmstadt.de/dpub} or the CC project itself via its license finder at \url{http://creativecommons.org/choose/}.
+% TU Darmstadt recommends use of the open CC BY 4.0 license in its Publication Guidelines and Open Access Policy.
+%
+% If a value different from the keys listed above is found, this value is used directly in place of the license text.
+% If it itself contains an equals signs or commas, grouping is necessary.
+%
+% \subsection{Affidavit}
+% \DescribeMacro{\affidavit}
+% The macro \cs{affidavit} creates a declaration of authorship with a signature line.
+% The name/signature could be set via options or the Information provided with \cs{author} is used.
+% In the demo documents, the affidavit is located directly after the title.
+%
+% \DescribeKeyOption{hide-architecture-note=\meta{Boolean}}{false}*
+% The class option \option{hide-architecture-note} allows to disable the note specifically tagetting theses of the architecture department.
+% For compatibility reasons it's false by default. So the note will be printed.
+% It's also possible to set this directly as an affidavit option if it's not a PhD theses.
+%
+% \minisec{Disclaimer:}
+% The \cs{affidavit} command is using the current version (as of 2025-01-22) of the text provided at
+% {\small\url{https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp}}.
+%
+% According to the department II, the legally binding text can always be found there.
+% The docx file should be used, printed out, signed, scanned and then integrated.
+% The easiest way to do this is to use the pdfpages package.
+% Please ensure to check which regulations apply to your thesis before submission.
+% TUDa-CI can not ensure the text is up to date or matches your submission type.
+%
+% From version 3.32, the distinction between an affidavit for digital or printed submissions, which has been supported since version 3.06, no longer applies.
+% For compatibility reasons, the options are still available, but have the same effect.
+% It is imperative that students check whether the text corresponds to the required version before submitting a thesis.
+%
+% PhD theses use a different text here; the affidavit option \option{affidavit=dr} is used internally to differentiate between them.
+%
+% Version 3.20 also allows the transfer of further options for the signature name, a signature image or the location.
+% The extent to which these options may be used must be clarified by the user before submission.
+% TUDa-CI cannot make a reliable statement on this.
+% \begin{example}
+% \affidavit[
+% signature=Signature name,
+% signature-image={\includegraphics[width=\width]{signatureimage}}
+% ]
+% \end{example}
+% A vertical shift of the signature image is not implemented directly, but is easily possible by using the \LaTeX macro \cs{raisebox}\marg{shift}\marg{content}.
+%
+% It is also possible to print an affidavit in another language as a supplement.
+% In order to handle the structure and any necessary language switching, there is an environment:
+% \begin{Syntax}
+% \begin{affidavit*}[|\meta{Babel language option}]|{|\meta{heading}|}
+% \meta{Text}
+% \end{affidavit*}
+% \end{Syntax}
+% This version deliberately does not have a signature line, as the developers do not consider this version to be legally binding.
+% However, the environment can also be used for special forms of explanation.
+% In this case, an additional signature line can be added:
+% \DescribeMacro{\AffidavitSignature}\DescribeKeyOption{signature-location=\meta{Location}}{Darmstadt}*
+% \begin{Syntax}
+% \AffidavitSignature[|\meta{city}|]
+% \end{Syntax}
+%
+%
+% \section{Further configuration options}
+%
+% \subsection{Select the color model}
+% Color vision depends on the way colors are presented.
+% For professional printing there usually is a color profile required by the printer to be used.
+% For use in documents, it is therefore important to know which output medium is to be used primarily.
+% Technically, this difference is reflected in color mixing models.
+% In accordance with the guidelines, TUDa-CI supports both a color model for print output (cmyk) and for screen display (RGB).
+% The implementation is done via the \pkg{xcolor} package, whereby the corresponding color values for both models are stored withing \pkg{tudacolors}.
+%
+% Normally, TUDa-CI automatically selects a suitable model.
+% The default setting of \option{pdfa=true} ensures a conversion to RGB (vgl.~\ref{sec:pdfa-color}) if no manual setting was found.
+%
+% If a specific color profile should be used, the \pkg{xcolor} options \option{cmyk} or \option{RGB} can be transmitted directly to \cls{tudapub}.
+% They are passed on to the package and will be processed according to the \pkg{xcolor} documentation \cite{xcolor}.
+%
+% \section{Customizations that deviate from the corporate design guidelines}
+%
+% \subsection{Font size}
+% \DescribeKeyOption{fontsize=\meta{length}}{9pt}
+% Contrary to the corporate design guidelines, \cls{tudapub} can also process other font sizes.
+% The \option{fontsize} option of \KOMAScript is supported (e.\,g. \option{fontsize=11pt}).
+% If no special font size configuration file is available for TUDa-CI, the file supplied with KOMA- Script is selected.
+% Examples of deviations for typographical reasons are also shown in the demo files for theses.
+%
+% \subsection{Margins}
+% \label{sec:margins}
+% \DescribeKeyOption{custommargins=true/false/geometry}{false}
+% According to the corporate design, the line lengths are too long from a typographical point of view.
+% This is why the \option{custommargins} class option exists.
+%
+% \begin{description}
+% \item[custommargins=false]
+% Default setting of \cls{tudapub}.
+% The margins correspond to the specifications of the Corporate Design Guidelines \cite{TUDaGuideline}.
+% The setting is made using \pkg{geometry}.
+% Customizations are overwritten by executing \cs{maketitle}.
+% To allow personal adjustments one of the other settings is required.
+%
+% \item[custommargins=true] The settings of the Corporate Design Guidelines are not activated.
+% pkg{geometry} is not loaded.
+% This mode corresponds to the default setting of \KOMAScript.
+% The margins are not explicitly defined, but calculated on the basis of the typearea package \cite[see][]{scrguide-en}.
+%
+% \item[custommargins=geometry]
+% This variant was created based on user requests.
+% It allows using \cls{tudapub} with support for manual adjustments.
+% \pkg{geometry} is loaded and preconfigured as with \option{custommargins=false}.
+% However, it is possible to make minor adjustments by using the \cs{geometry} command.
+% The settings that apply at the start of the document are saved and restored after the title pages.
+%
+% Please note that the settings use the preset type area as a starting point (with or without a margin column, depending on the option).
+% It is possible to reset all options before adding your own:
+% \begin{Syntax}
+% \geometry{
+% reset,
+% |\meta{Adjustments starting from geometry's defaults}|
+% }
+% \end{Syntax}
+% This applies in particular to the options \code{includehead}, \code{includefoot} and \code{includemp}.
+% \end{description}
+%
+% \minisec{Remark on the headers/footers}
+% If the option \option{marginpar=true} remains set, the header and footer protrude beyond the margin column.
+% For aesthetic reasons, it is therefore recommended in this case to limit the header and footer to the text area with \option{marginpar=false}.
+%
+% The standard layout of the column titles is also not very advantageous, as the column titles can be locally larger than the actual headline. (\option{headline=automark})
+%
+% For this reason, \cls{tudapub} provides a simpler page style, which considerably simplifies use with living column titles.
+% The structure is realized using \pkg{scrlayer-scrpage} and can be adapted according to the \KOMAScript documentation \cite{scrguide-en}.
+% \begin{example}
+% \pagestyle{TUDa.headings}
+% \end{example}
+%
+% \minisec{Remark on binding correction}
+% \DescribeKeyOption{BCOR=\meta{length}}{0pt}
+% \DescribeKeyOption{BCORtitlepage=\meta{Boolean}}{false}
+% If a binding correction (\option{BCOR=\meta{length}}) is used, this is not automatically inserted on the title page.
+% For this case, the \option{BCORtitlepage} option was added with version 3.0. If this is activated, the title page uses the value of the \pkg{typearea} option \option{BCOR} on the first page as an addition to the left margin.
+%
+% \subsection{Frontmatter/Mainmatter/Backmatter}
+% The macros \cs{frontmatter}, \cs{mainmatter} and \cs{backmatter} are usually only available for the class \cls{scrbook}.
+% On request, these macros have also been provided as a basis for \cls{scrartcl} and \cls{scrreprt}.
+% It is therefore possible to switch to Roman numerals for the opening credits.
+% Arabic numerals are then used from \cs{mainmatter}.
+%
+% \subsection{Math fonts}
+% As there is no compiler-independent universal math font and the corporate design guidelines do not take any recommendations into account, several possible variants were discussed.
+% The default setting always corresponds to the installation standard.
+% No specific settings are loaded.
+% The discussion on this can be found at:
+% \url{https://github.com/tudace/tuda_latex_templates/issues/19}
+%
+% A few example configurations are shown below.
+% In principle, however, the math type is freely selectable – apart from the restrictions of the compiler.
+% In many cases, the \enquote{\TeX{} Font Catalogue} is helpful for selection and use: \url{https://tug.org/FontCatalogue/mathfonts.html}
+%
+% \subsubsection{\hologo{pdfLaTeX}}
+% For \hologo{pdfLaTeX} there is a solution which combines the letters of the default Text font (Charter) with math symbols of different fonts.
+%
+% \begin{example}
+% \usepackage[charter,expert]{mathdesign}
+% \end{example}
+%
+% There are similar approaches for a few other combinations.
+% Some examples can be found in the XCharter documentation \cite{xcharter}.
+% \url{http://mirrors.ctan.org/fonts/xcharter/doc/xcharter-doc.pdf}
+%
+% \section{Customization using \KOMAScript}
+% \label{sec:KOMA}
+% As the class is fully \KOMAScript-compatible apart from a few forced settings that affect the layout, a look at the \KOMAScript documentation \cite{scrguide-en} is helpful for any kind of modifications.
+% For most of the possible modifications \KOMAScript offers its own solutions, which often makes supplementary packages superfluous.
+% Examples of typical modifications that are also permitted as part of the corporate design:
+% \begin{itemize}
+% \item Change paragraphs to use a skip instead of an indent of the first line (option \option{parskip})
+% \item Element numbering with or without end dot (option \option{numbers=enddot/noenddot})
+% \item Caption positioning, alignment and spacing (The macros \cs{captionabove}, \cs{captionbelow}, \cs{captionof} and the \option{captions} option)
+% \end{itemize}
+%
+% \section{Known issues and incompatibilities}
+%
+% \subsection{\texorpdfstring{\hologo{XeLaTeX}}{XeLaTeX} and PDF/A}
+% If the \pkg{pdfx} package is used together with \hologo{XeLaTeX} for the creation of PDF/A the support is limited.
+% There will be a corresponding warning.
+% With some \hologo{XeLaTeX} versions it's possible that there even may be errors.
+% \hologo{LuaLaTeX} should be preferred, but in the worst case switching to the \pkg{pdfmanagement} mechanism could also help.
+%
+% \subsection{DVI Output}
+% Due to the default setting for creating a PDF/A file, it is not possible to use TUDa-CI in standard settings to create a DVI file.
+% However, a large part of the functionality can be used when \option{pdfa} mode is deactivated.
+%
+% \subsection{Possible option clash for microtype}
+% The \pkg{microtype} package is loaded automatically if \hologo{pdfLaTeX} is used, as the ligatures for small caps must be deactivated in the font to avoid problems (see \url{https://github.com/tudace/tuda_ latex_templates/issues/144}).
+% It is possible to pass further options to \pkg{microtype} before loading the document class:
+% \begin{Syntax}
+% \PassOptionsToPackage{|\meta{microtype options}|}{microtype}
+% \documentclass{tudapub}
+% \end{Syntax}
+%
+%
+% \chapter{Department-specific adaptations}
+% \label{sec:department-config}
+% Some departments have special requirements.
+% TUDa-CI includes an interface to be extended in that way.
+% Currently the only official extension is the one for the department of mechanical engineering.
+% However, the mechanism can be expanded.
+%
+% \section{Department of Mechanical Engineering}
+% \label{sec:mecheng}
+% The corresponding mode is activated via the option \option{department=mecheng}.
+% Coloring is adjusted automatically and additional layout elements like the \foreignquote{german}{Zeitstrahl} are introduced.
+% The modifications exist for all document types provided by TUDa-CI.
+%
+% \DescribeMacro{\SetPaperID}
+% In addition, some documents require the placement of document identifier on the titlepage.
+% For this purpose \cs{SetPaperID} was introduced.
+% \begin{Syntax}
+% \SetPaperID{|\meta{Letter}|}{|\meta{ID}|}
+% \end{Syntax}
+% This also works without activating \option{mecheng} mode.
+% However, the option adds some additional parameters for customized distances.
+%
+% The mode also sets the options: \option{colorback=false} and \option{ruledheaders=section}.
+%
+% \subsubsection{Department logo}
+% \DescribeKeyOption{departmentlogofile=\meta{filename}}{tuda\_maschinenbau\_logo}*
+% The department logo can be downloaded and installed the same way as the TUDa logo.
+% A different file can also be selected using the option.
+% If the value remains empty, no image is inserted.
+%
+% \subsubsection{Colors}
+% \label{sec:mecheng-color}
+% The department subdivides the colors described in the corporate design manual.
+% Therefore, if \option{department=mecheng} has been activated, the following color names also exist:
+%
+% \begin{example}
+% \colorlet{TUDa-Primary1}{TUDa-6b}
+% \colorlet{TUDa-Primary2}{TUDa-2d}
+% \colorlet{TUDa-Secondary1}{TUDa-9a}
+% \colorlet{TUDa-Secondary2}{TUDa-8a}
+% \colorlet{TUDa-Secondary3}{TUDa-6a}
+% \colorlet{TUDa-Secondary4}{TUDa-3a}
+% \colorlet{TUDa-Secondary5}{TUDa-4a}
+% \colorlet{TUDa-Secondary6}{TUDa-5a}
+% \colorlet{TUDa-Arrow}{TUDa-Primary2}
+% \end{example}
+%
+% \minisec{\foreignquote{german}{Zeitstrahl} arrow}
+% \DescribeMacro{\MechEngArrow}
+% The design element of the timeline can be created using the macro \cs{MechEngArrow\marg{length}}.
+% The color corresponds to the color \code{TUDaArrow}, which is pre-assigned with the second primary color (blue).
+%
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+%
+% \begin{macrocode}
+\RequirePackage{URspecialopts}
+\Define@specialopt@Module[ptxcd/pub]
+
+\str_const:Nn \c_@@_base_str {pub}
+\tl_new:N \g_ptxcd_pub_class_tl
+\tl_new:N \g_ptxcd_thesis_options_tl
+
+\prop_new:N \g_ptxcd_clsopts_prop
+\prop_new:N \g_ptxcd_unknown_clsopts_prop
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {titlepage} {firstiscover}
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline}
+
+\int_new:N \g_ptxcd_ruledheaders_int
+\int_new:N \g_ptxcd_paper_int
+\msg_new:nnn {tudapub} {compatibility-only} {
+ You~used~the~outdated~#1~option.\\
+ This~option~has~been~removed~with~tuda-ci~version~3.08.\\
+ See~documentation~for~the~updated~implementation.
+}
+
+\bool_new:N \g_ptxcd_geometry_bool
+\bool_new:N \g_ptxcd_custommargins_bool
+
+\keys_define:nn {ptxcd/pub} {
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*options|body>
+%<*!beamer>%^^A logo file and accept missing logos
+% \fi
+% \begin{macrocode}
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+% \end{macrocode}
+% \iffalse
+%</!beamer>%^^A Logo
+% \fi
+% \changes{v4.00}{2025-01-26}{Added accept-missing-logos option for public testing workflows.}
+% \begin{macrocode}
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+% \end{macrocode}
+% \iffalse
+%<*beamer|class|print>
+% \fi
+% \begin{macrocode}
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+% \end{macrocode}
+% \iffalse
+%<*tudapub|print|letter>
+% \fi
+% \begin{macrocode}
+ \exp_args:Ne \keys_set:ne {
+
+%<!sciposter> ptxcd / \c_@@_base_str
+%<sciposter> ptxcd / poster
+ }{
+%<!letter> colorback=false,
+%<tudapub> ruledheaders=section,
+ departmentlogofile=tuda_maschinenbau_logo,
+%<exercise> color=Primary1,
+%<sciposter> titlesepline=false
+% \end{macrocode}
+% \iffalse
+%<*letter>
+% \fi
+% \begin{macrocode}
+ headrule=false,
+ logo=false,
+ textwidth=narrow,
+% \end{macrocode}
+% \iffalse
+%</letter>
+% \fi
+% \begin{macrocode}
+ }
+% \end{macrocode}
+% \iffalse
+%</tudapub|print|letter>
+%<*tudabeamer>
+% \fi
+% \begin{macrocode}
+ \keys_set:nn {ptxcd/beamer} {
+ design=2008,
+ colorframetitle=false,
+ centerframetitle=true,
+ headsepline=false,
+ }
+% \end{macrocode}
+% \iffalse
+%</tudabeamer>
+% \fi
+% \begin{macrocode}
+%<letter> \PassOptionsToPackage{identbar=Primary1,accent=Primary2}{tudacolors}
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+%
+ departmentconfigprefix .tl_gset:N = \g_@@_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+%
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+% predefined department configs
+ mecheng .meta:n = {department=mecheng},
+% \end{macrocode}
+% \iffalse
+%</beamer|class|print>
+% %^^A Logo pdfa / pdfx
+%<*beamer|class|letter|sciposter>
+%<*!beamer>
+% \fi
+% \begin{macrocode}
+ pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
+ pdfa .initial:n =
+%<!sciposter> true,
+%<sciposter> false,
+%</!beamer>
+%<*beamer>
+ pdfa .code:n = {
+ \msg_error:nn {tuda\c_@@_base_str} {pdfa-option-removed}
+ },
+%</beamer>
+ pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
+ pdfx .initial:n = true,
+% \end{macrocode}
+% \iffalse
+%</beamer|class|letter|sciposter>
+%<*class|poster>
+% \fi
+% \begin{macrocode}
+ logo .choice:,
+ logo / head .code:n = {
+ \bool_gset_true:N \g_@@_logo_head_bool
+%<class> \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ },
+ logo / body .code:n = {
+ \bool_gset_false:N \g_@@_logo_head_bool
+%<class> \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
+ },
+ logo / top .meta:n = {logo=head},
+ logo / bottom .code:n = {\bool_gset_false:N \g_@@_logo_head_bool},
+%<class> logo .initial:n = {body},
+%<poster> logo .initial:n = {head},
+% \end{macrocode}
+% \iffalse
+%</class|poster>
+%% color options
+%<*class>
+% \fi
+% \begin{macrocode}
+% twoside -> geometry + class
+ class .choice:,
+ class/report .meta:n = {class=scrreprt},
+ class/scrreprt .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrreprt},
+ class/article .meta:n = {class=scrartcl},
+ class/scrartcl .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrartcl},
+ class/book .meta:n = {class=scrbook},
+ class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook},
+ class .initial:n = scrartcl,
+% \end{macrocode}
+% \iffalse
+%</class>
+%% color options
+%<*class|print>
+% \fi
+% \begin{macrocode}
+ 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}},
+% \end{macrocode}
+% \iffalse
+%</class|print>
+%<*class|(print&!letter)>
+% \fi
+% \begin{macrocode}
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+% \end{macrocode}
+% \iffalse
+%</class|(print&!letter)>
+%<*class|leaflet>
+% \fi
+% \begin{macrocode}
+ colorbacktitle .bool_gset:N = \g_ptxcd_colorbacktitle_bool,
+ colorbacktitle .initial:n = false,
+ colorbacktitle .default:n = true,
+ colorbacksubtitle .bool_set:N = \g_ptxcd_colorbacksubtitle_bool,
+ colorbacksubtitle .initial:n = false,
+ colorbacksubtitle .default:n = true,
+ colorback / title .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool,
+ colorback / body .code:n =
+ \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool,
+ colorback / head .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_true:N \g_ptxcd_colorbacksubtitle_bool,
+%<tudapub> colortitleback .code:n = \msg_error:nnx {tudapub} {compatibility-only} {\l_keys_key_tl},
+% \end{macrocode}
+% \iffalse
+%</class|leaflet>
+%<*class|poster>
+% \fi
+% \begin{macrocode}
+ marginpar
+%<!poster> .tl_gset:N = \g_ptxcd_marginpar_tl,
+%<poster> .bool_gset:N = \g_ptxcd_marginpar_bool,
+%<poster> marginpar / auto .meta:n = {marginpar = true} ,
+ marginpar .default:n = auto,
+%<!poster> marginpar .initial:n = auto,
+%<poster> marginpar .initial:n = false,
+% \end{macrocode}
+% \iffalse
+%</class|poster>
+% color options
+% *coloroptions>
+%<*class|(print&!(leaflet|letter|sciposter|poster))>
+% /coloroptions>
+% \fi
+% margin
+% \begin{macrocode}
+ custommargins .choice:,
+ custommargins / true .code:n ={
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_false:N \g_ptxcd_geometry_bool
+ },
+ custommargins / false .code:n ={
+ \bool_gset_false:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins / geometry .code:n = {
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins .initial:n = false,
+ custommargins .default:n = true,
+% \end{macrocode}
+% print document specific options
+% \begin{macrocode}
+ fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1},
+ fontsize .initial:n =
+%<!exercise> {9pt},
+%<exercise> {10pt},
+% \end{macrocode}
+% \iffalse
+%</class|(print&!(leaflet|letter|sciposter|poster))>
+% color options
+% *coloroptions>
+%<*class>
+% /coloroptions>
+% \fi
+% margin
+% \begin{macrocode}
+ ruledheaders .choices:nn = {false, none, chapter, section, true, all}{
+ \int_gset:Nn \g_ptxcd_ruledheaders_int {\l_keys_choice_int}
+ },
+ ruledheaders .initial:n = all,
+ type .choices:nn = {publication, thesis} {\tl_gset_eq:NN \g_ptxcd_pubType_tl \l_keys_choice_tl},
+ type / intern .code:n = {\keys_set:nn {ptxcd/pub} {titlepage=false, pdfa=false, IMRAD=false}},
+ type .initial:n = publication,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+ headline .choice:,
+ headline / true .code:n = \bool_gset_true:N \g_ptxcd_headline_bool,
+ headline / false .code:n = \bool_gset_false:N \g_ptxcd_headline_bool,
+ headline / automark .code:n = {\bool_gset_true:N \g_ptxcd_headline_bool \PassOptionsToPackage{automark}{scrlayer-scrpage}},
+ automark .meta:n = {headline=automark},
+ headline .initial:n =false,
+ twocolumn .bool_gset:N = \g_ptxcd_twocolumn_bool,
+ twocolumn .default:n = true,
+ twocolumn .initial:n = false,
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|exercise>
+% \fi
+% \begin{macrocode}
+ BCOR .code:n = \PassOptionsToPackage{bindingoffset=#1}{geometry},
+ bindingoffset .meta:n = {BCOR=#1},
+ captions .code:n = {\prop_gput:Nnx \g_ptxcd_clsopts_prop {captions} {
+ \use:n {\prop_item:Nn \g_ptxcd_clsopts_prop {captions}}, #1}
+ },
+% \end{macrocode}
+% \iffalse
+%</class|exercise>
+%<*class>
+% \fi
+% \begin{macrocode}
+ abstract .code:n = \prop_gput:Nnn \g_ptxcd_unknown_clsopts_prop {abstract} {#1},
+ abstract .initial:n =true,
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|exercise|sciposter|poster>
+% \fi
+% \begin{macrocode}
+ paper .choices:nn = {
+%<sciposter> a0,a1,a2,a3
+%<poster> a0,a1,a2,a3,a4
+%<!(sciposter|poster)> a0,a1,a2,a3,a4,a5,a6
+ }{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+%<!(sciposter|poster)> \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+% \end{macrocode}
+% \iffalse
+%<*sciposter>
+% \fi
+% \begin{macrocode}
+ paper / landscape .code:n = \PassOptionsToPackage{landscape}{geometry},
+
+ paper / portrait .code:n = \PassOptionsToPackage{portrait}{geometry},
+% \end{macrocode}
+% \iffalse
+%</sciposter>
+% \fi
+% \begin{macrocode}
+ paper .initial:n =
+
+%<!(sciposter|poster)> a4,
+%<sciposter|poster> a0,
+% \end{macrocode}
+% \iffalse
+%</class|exercise|sciposter|poster>
+%<*class>
+% \fi
+% \begin{macrocode}
+ IMRAD .bool_gset:N = \g_ptxcd_IMRAD_bool,
+ IMRAD .initial:n = true,
+ IMRAD .default:n = true,
+ instbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,instbox=#1}},
+ noinstbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,noinstbox=#1}},
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|exercise|sciposter|poster>
+% \fi
+% \begin{macrocode}
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+% \end{macrocode}
+% \iffalse
+%</class|exercise|sciposter|poster>
+%<*class>
+% \fi
+% \begin{macrocode}
+ BCORtitlepage .bool_gset:N = \g_ptxcd_BCOR_titlepage_bool,
+
+ BCORtitlepage .initial:n = false,
+ BCORtitlepage .default:n = true,
+%</class>
+}
+% \end{macrocode}
+% \iffalse
+%<*beamer>
+% \fi
+% \changes{v4.00}{2025-01-26}{Remove pdfa option from tudabeamer.}
+% As beamer is loading hyperref with with options by default it's not really worth maintaining this option here.
+% Especially since beamer did not require this to be enabled by default.
+% A comment including the information on how to set up the PDF/A within beamer using the pdfmanagement has been added to the templates.
+% \begin{macrocode}
+\msg_new:nnn {tuda\c_@@_base_str} {pdfa-option-removed} {
+ The~option~"pdfa"~was~removed~for~this~document~class.\\
+ In~case~you~need~it,~please~use~the~mechanism~provided~by~the~pdfmanagement~instead.\\
+ See~TUDa-CI~documentation~for~details.
+}
+% \end{macrocode}^^A End of options declarations
+% \iffalse
+%</beamer>
+% \fi
+% Allow to add options via l3build |typesetcmds|.
+% Be aware that in this case also the group has to be expanded.
+% \begin{macrocode}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+%<!(beamer-outer|sciposter)> \c_@@_base_str
+%<beamer-outer> beamer/outer
+%<sciposter> poster
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+% \end{macrocode}
+% \iffalse
+%<*!beamer>
+% \fi
+% Define a macro to insert the logo workaround to only need this definition once.
+% \begin{macrocode}
+\cs_new:Nn \_@@_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
+}
+% \end{macrocode}
+% \iffalse
+%</!beamer>
+%</options|body>
+%<*class>
+% \fi
+% \begin{macrocode}
+% special option handling grouped values
+% \begin{macrocode}
+\Module@DefineSpecialKey[ptxcd/pub]{thesis}{
+ \keys_set:nn {ptxcd/pub}{type=thesis}
+ \tl_gput_right:No \g_ptxcd_thesis_options_tl {#1}
+}
+
+\Module@Process@SpecialOptions[ptxcd/pub]
+
+% \end{macrocode}
+% Wrapper around the old implementation of pdfx + support for pdfmanagement.
+% \iffalse
+%</class>
+%<*class|process-options>
+% \fi
+% \begin{macrocode}
+
+\ProcessKeyOptions[ptxcd/\c_@@_base_str]
+% \end{macrocode}
+% Wrapper around the old implementation of pdfx + support for pdfmanagement.
+% \iffalse
+%</class|process-options>
+%<*class|pdfa>
+% \fi
+% \begin{macrocode}
+
+\bool_if:NF \g_ptxcd_pdfa_bool {\bool_gset_false:N \g_ptxcd_pdfx_bool}
+
+\bool_if:NT \g_ptxcd_pdfa_bool {
+ \msg_new:nnn {tudapub} {colors-to-rgb} {
+ You~did~not~add~a~color~profile.\\
+ I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
+ This~is~required~to~be~able~to~create~PDF/A~compliance.
+ }
+
+ \cs_if_exist:NT \pdfmeta_standard_get:nN {
+ \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
+ \quark_if_no_value:NF \l_tmpa_tl {
+ \bool_gset_false:N \g_ptxcd_pdfx_bool
+ \msg_new:nnn{tudapub} {prefer-lualatex} {
+ I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
+ tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
+ To~disable~this~message~use~pdfx=false.
+ }
+ \msg_info:nn {tudapub} {prefer-lualatex}
+ }
+ \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
+ \use_iii:nnn
+ }
+ }
+ \bool_if:NT \g_ptxcd_pdfx_bool {
+ \PassOptionsToPackage{RGB}{xcolor}
+ \msg_info:nn {tudapub} {colors-to-rgb}
+ }
+}
+
+% \end{macrocode}
+% \iffalse
+%</class|pdfa>
+%<*class>
+% \fi
+% \begin{macrocode}
+
+\exp_args:Nx \tl_if_eq:nnT {\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}} {9pt}
+{
+ \prop_if_in:NnF \g_ptxcd_unknown_clsopts_prop {DIV}
+ {\PassOptionsToPackage{DIV=calc}{typearea}}
+}
+
+\prop_gput:Nnx \g_ptxcd_clsopts_prop {twocolumn} {
+ \bool_if:NTF \g_ptxcd_twocolumn_bool {true} {false}
+}
+
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}}
+ {
+ \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_ptxcd_pub_class_tl}}
+ }
+}
+% \end{macrocode}
+% Load tudasize clo file if available
+% \begin{macrocode}
+\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo}
+{\providecommand*{\@fontsizefilebase}{tudasize}}
+% \end{macrocode}
+% Disable typearea warnings if geometry is used for the margins.
+% \begin{macrocode}
+\bool_if:NT \g_ptxcd_geometry_bool {\PassOptionsToPackage{typeareawarninfolimit=-1}{typearea}}
+\LoadClass{\g_ptxcd_pub_class_tl}
+
+% \end{macrocode}
+% \changes{v3.41}{2024-07-02}{Change package order to be more strict about the loading time of pdfx to avoid conflicts.}
+% \begin{macrocode}
+\RequirePackage{tudafonts}
+\RequirePackage{tudacolors}
+\RequirePackage[draft=false]{scrlayer-scrpage}
+\RequirePackage{graphicx}
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|pdfx>
+% \fi
+% \changes{v4.00}{2025-01-26}{Unify pdfx/pdfa mechanism structure over all document types}
+% \begin{macrocode}
+\PassOptionsToPackage{hidelinks, unicode}{hyperref}
+\bool_if:NTF \g_ptxcd_pdfx_bool {
+%% only apply the hack if pdfx is older than the working version
+ \PassOptionsToPackage{a-2b}{pdfx}
+%% Workaround posted by David Carlisle on tex.stackexchange
+%% Thanks to Ulrike Fischer for mentioning it in #472
+ \let \_@@_grouplevel_before_pdfx: \currentgrouplevel
+ \chardef\currentgrouplevel0
+ \ExplSyntaxOff
+ \RequirePackage{pdfx}
+ \ExplSyntaxOn
+ \let \currentgrouplevel \_@@_grouplevel_before_pdfx:
+ \cs_undefine:N \_@@_grouplevel_before_pdfx:
+%% end of the workaround
+
+ \msg_new:nnn{tuda-ci} {prefer-lualatex} {
+ You~use~pdfa-mode~in~#1.\\
+ This~can~lead~to~incompatiblities~especially~with~older~compiler~versions.\\
+ You~should~prefer~using~lualatex.
+ }
+ \msg_new:nnnn{tuda-ci} {outdated-package-pdfa} {
+ Your~Version~of~the~#1-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.}
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {PDFTeX}
+ }
+
+ \sys_if_engine_xetex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {XeTeX}
+ }
+
+ \@ifpackagelater{xmpincl}{2021/09/22}{
+ }{
+ \msg_error:nn{tuda-ci} {outdated-package-pdfa} {xmpincl}
+ }
+
+} {
+ \RequirePackage{hyperref}
+}
+% \end{macrocode}
+% \iffalse
+%</class|pdfx>
+%<*class>
+% \fi
+% \begin{macrocode}
+
+\RequirePackage{bookmark}
+\RequirePackage{tudarules}
+\RequirePackage{trimclip}
+\RequirePackage{bookmark}
+
+
+\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
+ \cs_if_exist:cT {KV@KOMA.\g_ptxcd_pub_class_tl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}}
+ }
+}
+% \end{macrocode}
+% ruled headers
+% \begin{macrocode}
+\int_compare:nT {\g_ptxcd_ruledheaders_int>=3} {
+ \cs_if_exist:NT \chapterlinesformat {
+ \renewcommand*{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}
+ \smash{\raisebox{\depth}{\rule[\dp\strutbox]{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }
+ }
+}
+\int_compare:nT {\g_ptxcd_ruledheaders_int =4 }{
+ \renewcommand*\sectionlinesformat[4]{%
+ \tl_if_eq:nnTF {#1} {section}
+ {
+ \parbox{\linewidth}{
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }{
+ \@hangfrom{\hskip #2#3}{#4}
+ }
+ }
+}
+\int_compare:nT {\g_ptxcd_ruledheaders_int>4} {
+ \renewcommand*\sectionlinesformat[4]{%
+ \parbox{\linewidth}{
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }}
+}
+% \end{macrocode}
+% Margin \& titlefontsize setup setup
+% \begin{macrocode}
+\bool_new:N \g_ptxcd_marginpar_bool
+\dim_new:N \g_ptxcd_marginpar_dim
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|margin>
+% \fi
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_innerMargin_dim
+\dim_new:N \g_ptxcd_outerMargin_dim
+\dim_new:N \g_ptxcd_bottomMargin_dim
+\dim_new:N \g_ptxcd_topMargin_dim
+
+% a3,a4
+\int_compare:nTF {4<=\g_ptxcd_paper_int<=5}
+ {
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {20mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {15mm}
+ \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+ }{
+% a0, a1, a2
+ \int_compare:nT {1<=\g_ptxcd_paper_int<=3}
+ {
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {35mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {30mm}
+ \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+ }
+% a5
+ \int_compare:nT {\g_ptxcd_paper_int<=6}
+ {
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {16mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
+ \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+ }
+% a6
+ \int_compare:nT {\g_ptxcd_paper_int<=7}
+ {
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {15mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
+ \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+ }
+ }
+
+\dim_new:N \g_ptxcd_columnSep_dim
+\dim_gset:Nn \g_ptxcd_columnSep_dim {10pt}
+% \end{macrocode}
+% \iffalse
+%</class|margin>
+%<*class>
+% \fi
+% \begin{macro}{\coverpageleftmargin}
+% coverpage
+% \begin{macrocode}
+\edef\coverpageleftmargin{\dim_eval:n {\g_ptxcd_outerMargin_dim}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\coverpagetopmargin}
+% \begin{macrocode}
+\renewcommand*{\coverpagetopmargin}{\g_ptxcd_outerMargin_dim}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\coverpagerightmargin}
+% \begin{macrocode}
+\edef\coverpagerightmargin{\dim_eval:n {\g_ptxcd_outerMargin_dim}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\coverpagebottommargin}
+% \begin{macrocode}
+\renewcommand*{\coverpagebottommargin}{\g_ptxcd_outerMargin_dim}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\str_case:onTF {\g_ptxcd_marginpar_tl} {
+ {true} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
+ {false} {\bool_gset_false:N \g_ptxcd_marginpar_bool}
+ {auto} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
+} {
+ \bool_if:NT \g_ptxcd_marginpar_bool {
+ \msg_new:nnnn {tudapub} {marginpar-auto} {Setting~up~marginpar~consistent~with~layout~guidelines.}
+ {To~turn~this~off~use~marginpar=false~option.}
+ \msg_info:nn {tudapub} {marginpar-auto}
+ \dim_gset:Nn \g_ptxcd_marginpar_dim {(\paperwidth - \g_ptxcd_innerMargin_dim -\g_ptxcd_outerMargin_dim - 4 \g_ptxcd_columnSep_dim)/5}
+ }
+} {
+ \msg_new:nnn {tudapub} {marginpar-no-key} {I~did~not~find~a~text~key~for~marginpar~setup~will~use~the~value~#1~as~width.}
+ \msg_info:nnx {tudapub} {marginpar-no-key} {\g_ptxcd_marginpar_tl}
+ \bool_gset_true:N \g_ptxcd_marginpar_bool
+ \dim_gset:Nn \g_ptxcd_marginpar_dim {\g_ptxcd_marginpar_tl}
+}
+
+\dim_new:N \g_ptxcd_headwidth_dim
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*class|(geometry&exercise)>
+% \fi
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_headheight_dim
+\dim_gset:Nn \g_ptxcd_headheight_dim {\c_ptxcd_largerule_dim +\c_ptxcd_rulesep_dim +\c_ptxcd_smallrule_dim}
+% \end{macrocode}
+% \iffalse
+%<*class>
+% \fi
+% \begin{macrocode}
+\bool_if:NTF \g_ptxcd_headline_bool
+ {\dim_gadd:Nn \g_ptxcd_headheight_dim {20pt}}
+ {\dim_gadd:Nn \g_ptxcd_headheight_dim {1.25\baselineskip}}
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+% Geometry margin configuration
+% Has to be loaded here due to headwidth options for pagestyles.
+% \begin{macrocode}
+\bool_if:NTF \g_ptxcd_geometry_bool {
+ \RequirePackage{geometry}
+ \geometry{
+ top=\g_ptxcd_topMargin_dim,
+ inner=\g_ptxcd_innerMargin_dim,
+ outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
+ bottom=\g_ptxcd_bottomMargin_dim,
+ columnsep= \g_ptxcd_columnSep_dim,
+ includehead,
+ includefoot,
+%<class> includemp,
+%<class> nomarginpar,
+ headheight=\g_ptxcd_headheight_dim
+ }
+% \end{macrocode}
+% \iffalse
+%<*class>
+% \fi
+% \begin{macrocode}
+ \savegeometry{TUDa-nomarginpar}
+ \geometry{includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim}
+ \KOMAoptions{mpinclude}
+ \savegeometry{TUDa-marginpar}
+
+ \bool_if:NTF \g_ptxcd_custommargins_bool {
+ \AddToHook{begindocument}[tudapub:custommargins]{
+ \savegeometry{TUDa-default}
+ \bool_if:NTF \g_ptxcd_marginpar_bool {
+ \dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth+\marginparwidth+\marginparsep}
+ }{
+ \dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth}
+ }
+ }
+ \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-default}
+ }{
+ \bool_if:NTF \g_ptxcd_marginpar_bool {
+ \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-marginpar}
+ } {
+ \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-nomarginpar}
+ }
+ \AddToHook{begindocument}[tudapub:custommargins-geometry]{
+ \loadgeometry{\c_ptxcd_default_geometry_tl}
+ }
+ }
+
+ \dim_gset:Nn \g_ptxcd_headwidth_dim {\paperwidth-\g_ptxcd_innerMargin_dim-\g_ptxcd_outerMargin_dim-\Gm@bindingoffset}
+
+ \cs_set:Nn \ptxcd_disable_marginpar: {\loadgeometry{TUDa-nomarginpar}}
+ \cs_set:Nn \ptxcd_restore_typearea: {\loadgeometry{\c_ptxcd_default_geometry_tl}}
+
+ \AddToHook{cmd/Gm@changelayout/after}[tudapub-restore-headwidth]{
+ \bool_if:NTF \g_ptxcd_marginpar_bool
+ {\KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}}
+ {\KOMAoptions{headwidth=text,footwidth=text}}
+ }
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+% \begin{macrocode}
+}{
+% \end{macrocode}
+% \iffalse
+%<*class>
+% \fi
+% \begin{macrocode}
+ \let\ptxcd_disable_marginpar:\relax
+ \def\ptxcd_restore_typearea:{
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+% \begin{macrocode}
+ \KOMAoptions{headinclude, footinclude}
+% \end{macrocode}
+% \iffalse
+%<*class>
+% \fi
+% \begin{macrocode}
+ \bool_if:NTF \g_ptxcd_marginpar_bool {
+ \KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}
+ } {
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+% \begin{macrocode}
+ \KOMAoptions{headwidth=text,footwidth=text}
+% \end{macrocode}
+% \iffalse
+%<*class>
+% \fi
+% \begin{macrocode}
+ }
+ \bool_if:NT \g_ptxcd_headline_bool {\KOMAoptions{headheight=\g_ptxcd_headheight_dim}}
+ \recalctypearea
+ }
+ \ptxcd_restore_typearea:
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \iffalse
+%</class|(geometry&exercise)>
+%<*class>
+% \fi
+% \begin{macrocode}
+\AddToHook{begindocument}[tudapub:BCOR-titlepage]{
+ \bool_if:NT \g_ptxcd_BCOR_titlepage_bool
+ {\xdef\coverpageleftmargin{\the\dimexpr\coverpageleftmargin+\the\ta@bcor}}
+}
+% \end{macrocode}
+%
+% End of margin setup
+%
+% \begin{macro}{\institution}
+% \begin{macrocode}
+\newcommand*{\institution}[1]{
+ \def\ptxcd_institution{#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
+\setkomafont{disposition}{\sffamily\bfseries}
+\setkomafont{pageheadfoot}{\sffamily\small}
+\setkomafont{pagenumber}{}
+\addtokomafont{captionlabel}{\sffamily}
+\addtokomafont{caption}{\sffamily}
+
+
+\KOMAoptions{footsepline=.5\c_ptxcd_smallrule_dim}
+\setlength{\footheight}{\dimexpr\baselineskip+\c_ptxcd_rulesep_dim}
+\bool_if:NT \g_ptxcd_headline_bool {\KOMAoptions{headsepline=.5\c_ptxcd_smallrule_dim}}
+% \end{macrocode}
+% Adjust headheight
+% \begin{macrocode}
+\AddToHook{begindocument}[tudapub:adjust-headheight]{
+\bool_if:NTF \g_ptxcd_marginpar_bool
+ {
+ \KOMAoptions {
+ headwidth=textwithmarginpar,
+ footwidth=textwithmarginpar
+ }
+ }{
+ \KOMAoptions {
+ headwidth=text,
+ footwidth=text
+ }
+ }
+\box_if_exist:NF \ptxcd_headrule_box {
+ \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
+}
+}
+
+\newpairofpagestyles[scrheadings]{TUDa.headings}{
+ \KOMAoptions{headsepline, headlines=1.25}
+ \setkomafont{pagehead}{}
+ \chead{}
+ \ohead{\headmark}
+}
+
+\newpairofpagestyles{TUDa.pub}{
+ \KOMAoptions{plainfootsepline}
+
+ \bool_if:NTF \g_ptxcd_marginpar_bool
+ {
+ \KOMAoptions {
+ headwidth=textwithmarginpar,
+ footwidth=textwithmarginpar
+ }
+ }{
+ \KOMAoptions {
+ headwidth=text,
+ footwidth=text
+ }
+ }
+ \bool_if:NT \g_ptxcd_headline_bool {
+ \setkomafont{pagehead}{\Large\bfseries}
+ \KOMAoptions{headlines=2}
+ \clist_map_variable:nNn {oneside, even, odd} \l_tmpa_tl {
+ \ModifyLayer[pretocontents={\rule[-6pt]{0pt}{\layerheight}}]{TUDa.pub.head.\l_tmpa_tl}
+ }
+ \lehead{\headmark}
+ \lohead{\headmark}
+ }
+ \ofoot[\pagemark]{\pagemark}
+}
+
+\RedeclareLayer[
+ clone=scrheadings.head.above.line,
+ background,
+ contents={
+ \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
+ \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
+ }
+ \smash{\ptxcd_headrule}
+ }
+]{TUDa.pub.head.above.line}
+
+\RedeclareLayer[
+ clone=plain.scrheadings.head.above.line,
+ background,
+ contents={
+ \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
+ \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
+ }
+ \smash{\ptxcd_headrule}
+ }
+]{plain.TUDa.pub.head.above.line}
+
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.even}
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.odd}
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.oneside}
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.even}
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.odd}
+\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.oneside}
+
+
+\DeclarePageStyleAlias{TUDa}{TUDa.pub}
+\DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.pub}
+\pagestyle{TUDa}
+% \end{macrocode}
+%
+% \begin{macro}{\titlepagestyle}
+% \begin{macrocode}
+\renewcommand*{\titlepagestyle}{plain.TUDa}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\cs_new:Nn \ptxcd_sls@leftmargin: {%
+ \dimexpr
+ \if@twoside
+ \ifodd\value{page}
+ \oddsidemargin
+ \else
+ \evensidemargin
+ \fi
+ \else
+ \oddsidemargin
+ \fi
+ \bool_if:NT \g_ptxcd_twocolumn_bool {
+ -\marginparwidth-\marginparsep
+ }
+ +1in\relax
+}
+% \end{macrocode}
+% Titelseite
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_titleimage_code_tl
+\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
+% \end{macrocode}
+%
+% \begin{macro}{\titleimage}
+% \begin{macrocode}
+\newcommand{\titleimage}[1]{\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\box_new:N \l_@@_titlegraphic_box
+\NewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \tl_gset:Nn \g_ptxcd_titleimage_code_tl {
+ \hbox_set:Nn \l_@@_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l_@@_titlegraphic_box {\width}
+ \dim_compare:nTF {\box_ht:N \l_@@_titlegraphic_box -\height> \c_zero_dim}
+{
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l_@@_titlegraphic_box - .5\height}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l_@@_titlegraphic_box}
+}{
+ \box_resize_to_ht:Nn \l_@@_titlegraphic_box {\height}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l_@@_titlegraphic_box - \width) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l_@@_titlegraphic_box}
+}
+}
+}{
+\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#2}
+}
+}
+
+\let\titleimage\titlegraphic%for backwards compatbility
+
+\box_new:N \g_ptxcd_title_box
+\skip_new:N \g_ptxcd_title_fill_skip
+
+\seq_new:N \g_ptxcd_author_seq
+% \end{macrocode}
+%
+% \begin{macro}{\author}
+% \begin{macrocode}
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\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~german~vaue~#3~will~be~used.
+}
+
+\cs_new:Nn \ptxcd_define_captionFallback:Nn {
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
+}
+
+\cs_new:Nn \ptxcd_declare_caption:Nnnn {
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
+}
+
+\cs_new:Nn \ptxcd_declare_caption:Nnn {
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+}
+% \end{macrocode}
+%
+% \begin{macro}{\@author}
+% \begin{macrocode}
+\renewcommand*{\@author}{
+ \begingroup
+ \hyphenpenalty=100000
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\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.
+}
+
+\cs_set:Nn \ptxcd_adjust_titlepage_style: {
+ \dim_set:Nn \l_tmpa_dim {\fp_to_dim:n {\expandafter \use_ii:nn\ptxcd_title_fontsize: *2.8}}
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
+ \skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
+ }
+
+ \dim_set:Nn \l_tmpa_dim {
+ \box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim
+ +\box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim+\g_ptxcd_title_fill_skip+\box_dp:N \g_ptxcd_title_box
+ }
+
+ \ModifyLayer[
+ addvoffset=\l_tmpa_dim,
+ addheight=-\l_tmpa_dim
+ -\box_dp:N \g_ptxcd_sponsor_box
+ +\c_ptxcd_rulesep_dim
+ ]{title.TUDa.image}
+
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {
+ \ModifyLayer[
+ textarea,
+ addvoffset=\dim_eval:n {\box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim},
+ height={\box_ht:N \g_ptxcd_title_box+ \g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {+\box_dp:N \g_ptxcd_title_box}
+ }
+ ]{title.TUDa.background}
+ }
+ \vspace*{\dim_eval:n {
+ -\topskip
+ -\g_ptxcd_titlerule_dim
+ +\box_ht:N \ptxcd_headrule_box
+ +\box_dp:N \ptxcd_headrule_box
+ +.5\c_ptxcd_logoheight_dim
+ }}
+ \nointerlineskip
+ \ptxcd_setup_title_box:
+
+ \bool_if:NT \g_@@_logo_head_bool {
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
+ {\msg_warning:nn{tudapub} {infobox-too-high}}
+ \makebox[\linewidth][r]{\smash{
+ \raisebox{-\height}{
+ \makebox[\_@@_logowidth:][l]{
+ \box_use:N \g_ptxcd_title_info_box
+ }}
+ }}
+}
+\par
+\vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
+\setlength{\fboxsep}{\z@}
+}
+
+\newkomafont{institution}{\sffamily}
+\newkomafont{titleinfo}{\ptxcd@sffamily@lining}
+\setkomafont{subtitle}{\bfseries}
+\setkomafont{subject}{}
+\setkomafont{publishers}{}
+\setkomafont{author}{}
+\setkomafont{date}{}
+
+\bool_if:NF \g_ptxcd_smalltitle_bool {
+ \int_gdecr:N \g_ptxcd_paper_int
+}
+\file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+\ptxcd_setup_title_sizes:
+
+\seq_new:N \g_ptxcd_title_info_seq
+\box_new:N \g_ptxcd_title_info_box
+
+\cs_new:Nn \ptxcd_make_title_info_box:n {
+ \setlength{\fboxsep}{1.5mm}%
+ \colorbox{InfoBox}{
+ \makebox[\dim_eval:n {\_@@_logowidth:-\fboxsep}][r]{
+ \parbox{\dim_eval:n {\_@@_logowidth:+\fboxsep-\_@@_logosep:}}{
+ \expandafter \fontsize\ptxcd_titlethanks_fontsize:\selectfont\usekomafont{institution}%
+ \raggedright%
+ #1
+ }}}
+}
+
+\cs_new:Nn \ptxcd_make_title_logo_box:n {
+ \setlength{\fboxsep}{\z@}%
+ \parbox{\_@@_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\_@@_logowidth: + \_@@_logosep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{\_@@_logosep:}}
+ }
+ }
+ }
+ }
+}
+% \end{macrocode}
+%
+% \begin{macro}{\addTitleBox}
+% \begin{macrocode}
+\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\NewDocumentCommand{\addTitleBoxLogo}{sm}{
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \changes{v4.00}{2025-01-26}{Added accept-missing-logos option for public testing workflows.}
+% \begin{macrocode}
+\addTitleBoxLogo*{\makebox[\linewidth][l]{\_@@_insert_logo:}}
+
+\DeclareNewLayer[textarea,background,mode=picture,
+ contents={
+ \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
+ {
+ \bool_if:NF \g_ptxcd_colorbacktitle_bool
+ {
+ \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
+ }
+ }
+ {\putUL{\color{identbarcolor}
+ \let\width\layerwidth
+ \let\height\layerheight
+ \raisebox{-\height}{\parbox[t]{\textwidth}{
+ \leavevmode\ignorespaces
+ \g_ptxcd_titleimage_code_tl
+ }}}}
+ \bool_if:NF \g_@@_logo_head_bool {
+ \put(\dim_to_decimal_in_unit:nn {\layerwidth-\_@@_logowidth:
+ } {\unitlength},
+ \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
+ \rlap{\box_use:N \g_ptxcd_title_info_box}
+ }
+ }
+ }
+]{title.TUDa.image}
+
+\DeclareNewLayer[background,mode=picture,
+ contents={
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {
+ {\color{identbarcolor}\rule{\layerwidth}{\layerheight}}
+ }
+ }
+]{title.TUDa.background}
+
+\DeclareNewLayer[
+ clone=plain.TUDa.pub.head.above.line,
+ hoffset=\coverpageleftmargin,
+ width=\paperwidth-\coverpageleftmargin-\coverpagerightmargin,
+]{title.TUDa.rule}
+
+\ptxcd_makeheadrule[color=identbarcolor, width=\textwidth]{ptxcd_title_headline}
+
+\cs_new:Nn \ptxcd_setup_title_box: {
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {
+ \parbox{\dim_eval:n {\_@@_logowidth:+\_@@_logosep:}}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
+ }
+ }
+}
+
+\cs_new:Nn \ptxcd_setup_sponsor_box: {
+ \bool_if:nF {\seq_if_empty_p:N \g_ptxcd_sponsors_seq && \tl_if_empty_p:N \@sponsors} {
+ \hbox_gset:Nn \g_ptxcd_sponsor_box {
+ \edef\height{\noexpand\dimexpr\dim_eval:n {\_@@_logosep: + .5\c_ptxcd_logoheight_dim}}
+ \parbox[t]{\textwidth}{
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \addvspace{\c_ptxcd_rulesep_dim}
+ \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}
+ \ifhmode\par\fi
+ \ifx\@sponsors\@empty
+ \else
+ \addvspace{.1\c_ptxcd_logoheight_dim}
+ \@sponsors\par
+ \fi
+ \par\nointerlineskip\addvspace{\c_ptxcd_rulesep_dim}
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
+ }
+}
+
+\DeclareNewPageStyleByLayers{title.TUDa}{title.TUDa.background,title.TUDa.rule,title.TUDa.image}
+% \end{macrocode}
+% Logos
+%</class>
+%<*class|xmpdata>
+% \begin{macrocode}
+\if_bool:N \g_ptxcd_pdfx_bool
+ \iow_new:N \ptxcd_xmpdata_stream
+ \tl_new:N \g_ptxcd_xmp_title_tl
+ \tl_new:N \g_ptxcd_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 \ptxcd_pass_TitleData: {
+ \iow_open:Nn \ptxcd_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}
+% \end{macrocode}
+% \cls{tudaletter} did not support the title mechanism, but as it does by loading scrartcl this shouldn't be an issue to keep this section for it.
+% \begin{macrocode}
+ \tl_gset:Nf \g_ptxcd_xmp_title_tl {\@title}
+ \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl}
+ \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} {
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}}
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl}
+ \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl}
+ }
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt}
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI}
+ \use:c {pdfx@localcommands}%should be held inside group
+ \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \ptxcd_xmpdata_stream
+ \let\ptxcd_pass_TitleData:\relax
+ }
+ \cs_new:Nn \ptxcd_write_xmp_line:nn {
+ \begingroup
+ \cs_set:Npn \sep {\exp_not:N \sep}
+ \cs_if_exist:cTF {#1}{
+ \iow_now:Nx \ptxcd_xmpdata_stream {
+ \c_backslash_str #1 {\exp_not:n {#2}}
+ }
+ }{
+ \msg_error:nnn{tuda-ci} {unknown-metadata} {#1}
+ }
+ \endgroup
+ }
+
+ \prop_new:N \g_ptxcd_MetaData_prop
+
+ \newcommand*{\Metadata}[1]{
+ \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn
+ {#1}
+ }
+
+ \cs_set:Nn \ptxcd_set_metadata_prop:nn {
+ % Fallback test for older kernels doesn't support mixed case eintries
+ \cs_if_exist:NTF \text_titlecase_first:n {
+ \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2}
+ } {
+ \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop {
+ \str_uppercase:f {\tl_head:n {#1}}
+ \str_lowercase:f {\tl_tail:n {#1}}
+ } {#2}
+ }
+ }
+% \end{macrocode}
+% %TODO use base\_str?
+% \begin{macrocode}
+ \msg_new:nnnn{tuda-ci} {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:
+ \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
+ \msg_new:nnnn {tuda-ci} {metadata-to-hypersetup} {
+ You~don't~use~pdfx.~
+ Here~the~\string\Metadata ~command~only~exists~for~compatibility~reasons.\\
+ I~will~pass~the~data~to~ḩypersetup.
+ }{
+ If~possible~please~use~hyperref's~\string\hypersetup~command~for~the~metadata~directly.\\
+ See~hyperref~documentation~for~details~on~usage.
+ }
+
+ \newcommand*{\Metadata}[1]{
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
+ \clist_map_inline:Nn \l_tmpa_tl {
+ \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
+ }
+ \msg_warning:nn {tuda-ci} {metadata-to-hypersetup}
+ }
+ \cs_new:Nn \ptxcd_pass_TitleData: {
+% \end{macrocode}
+% check if pdfmanagement is active
+% \begin{macrocode}
+ \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
+ \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
+ } {
+ \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
+ }
+% \end{macrocode}
+% title
+% \begin{macrocode}
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nf \g_tmpa_tl {\@title}
+ \endgroup
+ \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
+ }
+% \begin{macrocode}
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
+ \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
+ \endgroup
+ \hypersetup{pdfauthor=\g_tmpa_tl}
+ }
+ }
+ \bool_if:NF \g_ptxcd_pdfa_bool {
+ \msg_new:nnn{tuda-ci} {no-pdfa}{The~ tuda\c_@@_base_str\space class~ will~ not~ create~ PDF/A.}
+ \msg_info:nn{tuda-ci} {no-pdfa}
+ }
+\fi:
+% \end{macrocode}
+% \iffalse
+%</class|xmpdata>
+%<*class>
+% \fi
+% \begin{macrocode}
+\box_new:N \g_ptxcd_sponsor_box
+\seq_new:N \g_ptxcd_sponsors_seq
+% \end{macrocode}
+%
+% \begin{macro}{\AddSponsor}
+% \begin{macrocode}
+\def\AddSponsor{\seq_gput_right:Nn \g_ptxcd_sponsors_seq}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\sponsors}
+% \begin{macrocode}
+\def\sponsors#1{\def\@sponsors{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\sponsors{}
+
+\cs_new:Npn \ptxcd_title_footnote:w [#1] #2 {
+ \textsuperscript{ \ptxcd_title_footnotestyle:n {#1}}#2
+}
+
+\cs_set_eq:NN \ptxcd_title_footnotestyle:n \@fnsymbol
+
+\str_if_eq:VnTF \g_ptxcd_pubType_tl {thesis} {
+ \input{tudathesis.cfg}
+} {
+ \msg_new:nnnn {tudapub} {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 {tudapub} {only-thesis} {#1}
+ }
+ }
+% \end{macrocode}
+%
+% \begin{macro}{\maketitle}
+% \begin{macrocode}
+%% The following macro is an adapted version of the corresponding KOMA-Script macro
+%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+ \renewcommand*{\maketitle}[1][1]{
+ \def\and{,~ }
+ \cs_if_exist_use:N \ptxcd_pass_TitleData:
+ \if@titlepage
+ \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
+ }%
+ \ptxcd_disable_marginpar:
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
+ \if@titlepageiscoverpage
+ \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
+ \ptxcd_setup_sponsor_box:
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g_@@_logo_head_bool {.75}\linewidth}
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {
+ \begin{addmargin}{3mm}
+ {\usekomafont{titlehead}{\@titlehead\par}}
+ \end{addmargin}
+ }
+ \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
+ \raggedright
+ \leavevmode\usekomafont{title}%
+ \expandafter\fontsize\ptxcd_title_fontsize:
+ \selectfont
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip0pt}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \end{addmargin}
+ \end{minipage}%
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \usekomafont{titleinfo}
+ \expandafter\fontsize\ptxcd_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
+ }%
+ {\ifx\@date\@empty\else\usekomafont{date}{\@date\par}\fi}%
+ {\ifx\@publishers\@empty\else\usekomafont{publishers}{\@publishers \par}\fi}%
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \let\footnotetext\ptxcd_title_footnote:w
+ \@thanks
+ \end{addmargin}
+ \par\vspace{-\dp\strutbox}
+ }
+ \normalcolor
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par}
+ }
+ \let\@thanks\@empty
+ \ptxcd_adjust_titlepage_style:
+ \thispagestyle{title.TUDa}
+ \nointerlineskip\box_use:N \g_ptxcd_title_box
+ \par
+ \vfill
+ \box_if_empty:NTF \g_ptxcd_sponsor_box {
+ \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ \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
+ \ptxcd_restore_typearea:
+ \aftergroup\ptxcd_restore_typearea:
+ \else
+ \par
+ \@tempcnta=%
+ #1%
+ \relax\ifnum\@tempcnta=1\else
+ \ClassWarning{\KOMAClassName}{%
+ Optional argument of \string\maketitle\space ignored\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@uppertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\uppertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@lowertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\lowertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \begingroup
+ \let\titlepage@restore\relax
+ \def\thefootnote{\fnsymbol{footnote}}
+ \next@tdpage
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else \mbox{}\fi
+ \else
+ \@makeextratitle
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \@makefrontispiece
+ \next@tdpage
+ \fi
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else
+ \@maketitle
+ \fi
+ \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
+ \global\let\@thanks\@empty
+ \endgroup
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+}
+
+\newkomafont{paperid}{\sffamily}
+\box_new:N \g_ptxcd_PaperID_box
+% \end{macrocode}
+%
+% \begin{macro}{\SetPaperID}
+% \begin{macrocode}
+\newcommand*{\SetPaperID}[2]{
+ \hbox_gset:Nn \g_ptxcd_PaperID_box {
+ \usekomafont{paperid}
+ \if@titlepage
+ \dim_set:Nn \l_tmpa_dim {\exp_last_unbraced:No \use_i:nn \ptxcd_title_fontsize: + \exp_last_unbraced:No \use_ii:nn \ptxcd_title_fontsize:}
+ \else
+ \Huge
+ \dim_set:Nn \l_tmpa_dim {1.8\baselineskip}
+ \fi
+ \fontsize{1.1\l_tmpa_dim}{1.1\l_tmpa_dim}
+ \selectfont
+ #1{\Huge #2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@maketitle}
+% \begin{macrocode}
+\renewcommand*{\@maketitle}{%
+ \global\@topnum=\z@
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \vspace*{-\dim_eval:n {
+ \headheight
+ +\headsep
+ +\topskip
+ -\box_ht:N\ptxcd_headrule_box
+ -\box_dp:N \ptxcd_headrule_box
+ }}
+ \par
+ \nointerlineskip
+ \begingroup
+ \usekomafont{disposition}
+ \hsize=\g_ptxcd_headwidth_dim
+ \setlength{\fboxsep}{\z@}
+ \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
+ \bool_if:NT \g_ptxcd_colorback_bool {\bool_set_true:N \g_ptxcd_colorbacktitle_bool}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\colorbox{identbarcolor}}
+ {\parbox[t]{\g_ptxcd_headwidth_dim}{
+ \rule{\z@}{.5\c_ptxcd_logoheight_dim}\par\nointerlineskip
+ \raisebox{-\height}{%
+ \begin{minipage}[t]{\dim_eval:n {\linewidth-\_@@_logowidth:-1ex}}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\begin{addmargin}{.5\c_ptxcd_largerule_dim}}
+ \raggedright
+ \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \box_if_empty:NF \g_ptxcd_PaperID_box {\begin{addmargin}[\dim_eval:n {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim}]{0pt}}
+ \raggedright
+ \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{title}%
+ \Huge
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip1em}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \box_if_empty:NF \g_ptxcd_PaperID_box {\end{addmargin}}
+ \bool_if:NTF \g_ptxcd_colorbacktitle_bool {\end{addmargin}} {\par}
+ \vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}
+ \end{minipage}
+ }
+ \hfill
+ \raisebox{-\height}{
+ \ptxcd_setup_title_box:
+ \makebox[\_@@_logowidth:][l]{
+ \box_use:N \g_ptxcd_title_info_box
+ }
+ }
+ \dim_compare:nNnTF {\box_ht:N \g_ptxcd_title_info_box + \box_ht:N \g_ptxcd_title_info_box} > {(\_@@_logowidth:)/2}
+ {\vspace{\c_ptxcd_largerule_dim}}
+ {\vspace{.5\c_ptxcd_logoheight_dim}}
+ \par
+ }}
+ \par
+ \nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \begin{addmargin}{.5\c_ptxcd_largerule_dim}
+ \Large
+ \clist_map_inline:nn {subtitle, subject, author, date, publishers}
+ {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \par\nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
+ \begin{addmargin}{.5\c_ptxcd_largerule_dim}
+ \let\footnotetext\ptxcd_title_footnote:w
+ \@thanks
+ \vspace{\c_ptxcd_rulesep_dim}
+ \end{addmargin}
+ \par
+ \let\@thanks\@empty
+ }
+ \par\nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \par
+ \endgroup
+ \vskip .5\c_ptxcd_logoheight_dim
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\abstract}
+%%Abstract anpassungen mit Sprache
+% \begin{macrocode}
+\providecommand{\abstract}{}% für book
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+% Anpassungen marginpar
+% \begin{macrocode}
+\cs_set_eq:NN\ptxcd_orig@marginpar:w \marginpar
+\newkomafont{marginpar}{\accentfont\color{textaccentcolor}}
+\RenewDocumentCommand{\marginpar}{om}{
+ \IfNoValueTF{#1}{
+ \ptxcd_orig@marginpar:w {\leavevmode\usekomafont{marginpar}#2}
+ }{
+ \ptxcd_orig@marginpar:w [{\leavevmode\usekomafont{marginpar}#1}]{\leavevmode\usekomafont{marginpar}#2}
+ }
+}
+
+\ptxcd_declare_caption:Nnn \authorandname {und} {and}
+\ptxcd_declare_caption:Nnn \ptxcd_datename {Datum}{Date}
+% \end{macrocode}
+%
+% \begin{macro}{\ptxcd}
+% \begin{macrocode}
+\gdef\ptxcd_dateseparator{:~}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\frontmatter}
+% \begin{macrocode}
+\providecommand*{\frontmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {roman}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\mainmatter}
+% \begin{macrocode}
+\providecommand*{\mainmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {arabic}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\backmatter}
+% \begin{macrocode}
+\providecommand*{\backmatter}{
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmatterfalse
+}
+% \end{macrocode}
+% \end{macro}
+%
+% IMRAD:Introduction
+% \begin{macrocode}
+\seq_if_exist:NTF \seq_const_from_clist:Nn {
+ \seq_const_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
+} {
+ \seq_new:N \c_ptxcd_IMRAD_seq
+ \seq_gset_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
+}
+% \end{macrocode}
+%
+% \begin{macro}{\IMRADlabel}
+% \begin{macrocode}
+\newcommand*{\IMRADlabel}[1]{
+ \seq_if_in:NnTF \c_ptxcd_IMRAD_seq {#1}
+ {\label{IMRAD:#1}}
+ {\msg_error:nnnn {tudapub} {undefined-IMRADlabel}{#1}{\seq_use:Nn \c_ptxcd_IMRAD_seq {,}}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\bool_if:NT \g_ptxcd_IMRAD_bool {
+ \AtEndDocument{
+ \seq_map_inline:Nn \c_ptxcd_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.
+}
+% \end{macrocode}
+% backwards compatibility for KOMA-Script
+% \begin{macrocode}
+\cs_if_exist:NF \Iftocfeature{
+ \let\Iftocfeature\iftocfeature
+}
+
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+% \end{macrocode}
+
+%
+% \iffalse
+%</class>
+%<*tudathesis>
+% \fi
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_thesis_drtext_tl
+\clist_if_exist:NF \g_ptxcd_Required_title_data_clist {\clist_new:N \g_ptxcd_Required_title_data_clist}
+
+% Declare macros for department
+\cs_new:Nn \ptxcd_select_department:n {
+ \str_case:nnTF {#1} {
+ {arch} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Architektur} {Architecture}}
+ {bauing} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Bau-~und~Umweltingenieurwissenschaften}{Civil~and~Environmental~Engineering}}
+ {bio} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Biologie}{Biology}}
+ {chem} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Chemie}{Chemistry}}
+ {etit} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Elektrotechnik~und~Informationstechnik}{Electrical~Engineering~and~Information~Technology}}
+ {gugw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Gesellschafts-~und~Geschichtswissenschaften}{History~and~Social~Sciences}}
+ {humanw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Humanwissenschaften}{Human~Sciences}}
+ {inf} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Informatik}{Computer~Science}}
+ {mb} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Maschinenbau}{Mechanical~Engineering}}
+ {matgeo} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Material-~und~Geowissenschaften}{Materials~and~Earth~Sciences}}
+ {math} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Mathematik}{Mathematics}}
+ {phys} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Physik}{Physics}}
+ {wi} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Rechts-~und~Wirtschaftswissenschaften}{Law~and~Economics}}
+ }
+ {
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} { \ptxcd_department:{}~ \text_titlecase:n{\departmentname}}
+ \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname{}~ of}
+ \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:}{\ptxcd_departmentprefix:{}~\ptxcd_department:}
+ }
+ {\bool_if:NTF \g_ptxcd_dr_bool
+ {
+ \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
+ \gdef\ptxcd_department:{#1}
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
+ {\ptxcd_select_studyfield:n {#1}}
+ }
+}
+
+\cs_new:Nn \ptxcd_select_studyfield:n {
+ \str_case:nnTF {#1} {
+ {ce}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Computational\nobreakspace Engineering}{Computational\nobreakspace Engineering}}
+ {ese}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Energy~Science~and~Engineering}{Energy~Science~and~Engineering}}
+ {ist}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Informationssystemtechnik} {Information~Systems~Technology}}
+ {mech}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechanik}{Mechanics}}
+ {metro}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechatronik}{Mechatronics}}
+ }
+ {
+ \ptxcd_declare_caption:Nnn \departmentname {Studienbereich} {field~of~study}
+ \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} {\departmentname{}:~\ptxcd_department:}
+ \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname}
+ \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:} {\ptxcd_departmentprefix:{}~``\ptxcd_department:''}
+ }
+ {
+ \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
+ \gdef\ptxcd_department:{#1}
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
+}
+
+\cs_new:Nn \ptxcd_insert_studentID:n {
+ (\ptxcd_studentIDname :\nobreakspace#1)
+}
+
+\ptxcd_declare_caption:Nnn \ptxcd_byname {von} {by}
+\ptxcd_declare_caption:Nnn \ptxcd_fromname {aus} {from}
+\ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname{}~ of}
+\ptxcd_declare_caption:Nnn \ptxcd_reviewname {Gutachten}{review}
+\ptxcd_declare_caption:Nnnn \ptxcd_examdatename {Tag~ der~ Prüfung}{Date~ of~ thesis~ defense}{Date~ of~ thesis~ defence}
+\ptxcd_declare_caption:Nnn \ptxcd_submissiondatename {Tag~ der~ Einreichung}{Date~ of~ submission}
+\ptxcd_declare_caption:Nnn \ptxcd_studentIDname {Matrikelnummer} {Student\nobreakspace ID}
+
+% Fallback content for box if not overwritten
+\newcommand*\ptxcd_box_department {\cs_if_exist_use:NF \departmentfullname {\ptxcd_department:}}
+\newcommand*\ptxcd_in_department {}
+\newcommand*{\ptxcd_thesisStatus}{}
+\tl_new:N \g_@@_affidavit_version_tl
+\def\@ThesisTypeArticle{die}
+
+\keys_define:nn {ptxcd/thesis} {
+ dr .choice:,
+ dr/rernat .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)},
+ dr/ing .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)},
+ dr/phil .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)},
+ dr/rerpol .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doctor~rerum~politicarum (Dr. rer. pol.)},
+ type .choice:,
+ type/sta .code:n = {\def\ptxcd_thesisType{Studienarbeit}
+ \clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date}
+ \bool_gset_false:N \g_ptxcd_dr_bool
+ },
+% type/diplom .code:n = {\def\ptxcd_thesisType{Diplomarbeit}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, reviewer, department}},
+ type/bsc .meta:n = {type=bachelor},
+ type/bachelor .code:n = {\ptxcd_declare_caption:Nnn \ptxcd_thesisType{Bachelorarbeit}{bachelor~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool},
+ type/pp .code:n = { \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Project-Proposal}{project~ proposal}\def\@ThesisTypeArticle{das}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date, department}\bool_gset_false:N \g_ptxcd_dr_bool},
+ type/msc .meta:n = {type=master},
+ type/master .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Masterarbeit}{master~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool,
+ type/dr .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{vorgelegte}{submitted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate , department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
+ type/drfinal .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{genehmigte}{accepted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate,examdate, department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
+ type/unknown .code:n = \def\ptxcd_thesisType{#1}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {}\def\@ThesisTypeArticle{die}\bool_gset_false:N \g_ptxcd_dr_bool,
+ ignore-missing-data .bool_gset:N = \g_ptxcd_missing_data_warning_bool,
+ ignore-missing-data .initial:n = false,
+ department .tl_gset:N = \g_ptxcd_department_choice_tl,
+ status .code:n = \tl_if_head_is_group:nTF {#1} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus #1 {}} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{#1}{#1}},
+ fieldofstudy .meta:n ={department = #1},
+ ignore-title-language .bool_gset:N = \g_ptxcd_ignore_title_language_bool,
+ ignore-title-language .initial:n ={false},
+ noinstbox .bool_gset:N = \g_ptxcd_manual_info_box_bool,
+ instbox .bool_gset_inverse:N = \g_ptxcd_manual_info_box_bool,
+ instbox .initial:n = true,
+ reviewer-on-uppertitleback .bool_gset:N = \g_@@_reviewer_on_uppertitleback_bool,
+ reviewer-on-uppertitleback .initial:n = false,
+ hide-architecture-note .bool_gset_inverse:N = \g_@@_architecture_note_bool,
+ hide-architecture-note .initial:n = false,
+ hide-architecture-note .default:n = true,
+}
+
+\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
+ \keys_if_exist:nnT {ptxcd/thesis} {#1} {
+ \keys_set:nn {ptxcd/thesis} {#1=#2}
+ }
+}
+
+\tl_if_empty:NF \g_ptxcd_thesis_options_tl {\keys_set:nV {ptxcd/thesis} \g_ptxcd_thesis_options_tl}
+
+\cs_new:Npn \drtext #1 {\tl_gset:Nn \g_ptxcd_thesis_drtext_tl {#1}}
+\tl_new:N \g_ptxcd_titleintro_tl
+\cs_new:Npn \titleintro #1 {\tl_gset:Nn \g_ptxcd_titleintro_tl {#1}}
+\tl_new:N \g_ptxcd_titleaddendum_tl
+\cs_new:Npn \titleaddendum #1 {\tl_gset:Nn \g_ptxcd_titleaddendum_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 \ptxcd_missing_title_data:n {
+ \bool_if:NTF \g_ptxcd_missing_data_warning_bool
+ \msg_warning:nnn
+ \msg_error:nnn{tudapub/thesis} {required-data-missing} {#1}
+}
+
+\cs_new:Nn \ptxcd_check_title_data:Nn {
+ \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {#2} {
+ \tl_if_empty:NT #1 {
+ \bool_if:NTF \g_ptxcd_missing_data_warning_bool
+ {\msg_warning:nnn}
+ {\msg_error:nnn} {tudapub/thesis} {required-data-missing} {#2}
+ }
+ }
+}
+
+\cs_generate_variant:Nn \ptxcd_check_title_data:Nn {cn}
+
+\renewcommand*\author[2][]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#2}
+ \tl_if_empty:nTF {#1}
+ {\tl_set:Nn \l_ptxcd_signature_tl {#2}}
+ {\tl_set:Nn \l_ptxcd_signature_tl {#1}}
+}
+
+\newcommand*{\studentID}[1]{
+ \tl_set:Nn \l_ptxcd_studentID_tl {#1}
+}
+
+\gdef\ptxcd_institution{}
+\gdef\ptxcd_institute{}
+\gdef\ptxcd_department:{}
+% \gdef\ptxcd_studentID{}
+
+\NewDocumentCommand{\department}{som}{%
+ \IfBooleanTF{#1}{
+ \tl_gset:Nn \ptxcd_department: {#3}
+ \tl_gset:Nn \ptxcd_in_department{#3}
+ \IfNoValueTF {#2} {\tl_gset:Nn \ptxcd_box_department {#3}} {\tl_gset:Nn \ptxcd_box_department{#2}}
+ \clist_remove_all:Nn \g_ptxcd_Required_title_data_clist {department}
+ }{
+ \tl_gset:Nn \g_ptxcd_department_choice_tl {#3}
+ \IfNoValueF {#2} {\tl_gset:Nn \ptxcd_departmentprefix: {#2}}
+ }
+}
+
+\newcommand*{\institute}[1]{
+ \gdef\ptxcd_institute{#1}
+}
+
+\gdef\ptxcd_group{}
+\newcommand*{\group}[1]{%
+ \gdef\ptxcd_group{#1}
+}
+
+\gdef\ptxcd_birthplace{}
+\newcommand*{\birthplace}[1]{%
+ \bool_if:NTF \g_ptxcd_dr_bool
+ {\gdef\ptxcd_birthplace{#1}}
+ {\msg_info:nnn{tudapub/thesis} {dr-field-only} {birthplace}}
+}
+
+\publishers{Darmstadt\bool_if:NT \g_ptxcd_dr_bool {,~Technische~Universität~Darmstadt}}
+
+\seq_new:N \g_ptxcd_reviewer_seq
+\NewDocumentCommand{\reviewer}{som}{
+ \IfNoValueF {#2} {
+ \IfBooleanTF{#1}
+ {\setupReviewName*{#2}}
+ {\setupReviewName{#2}}
+ }
+ \tl_if_empty:nTF {#3}
+ {\let\@reviewer\@empty}
+ {\seq_gset_split:Nnn \g_ptxcd_reviewer_seq {\and} {#3}}
+}
+
+\cs_set:Nn \ptxcd_thesis_print_reviewer: {
+ \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {reviewer} {
+ \seq_if_empty:NT \g_ptxcd_reviewer_seq {\ptxcd_missing_title_data:n {reviewer}}
+ }
+ \int_zero:N \l_tmpb_int
+ \par\vspace*{\baselineskip}
+ {
+ \seq_map_inline:Nn \g_ptxcd_reviewer_seq
+ {
+ \int_incr:N \l_tmpb_int
+ \cs_if_exist_use:cF {_@@_reviewname_\int_use:N \l_tmpb_int :}
+ {\int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\ptxcd_reviewname}}
+ :~\exp_not:n {##1}\\
+ }
+ }
+}
+
+\gdef\ptxcd_examdate{}
+\newcommand*{\examdate}[1]{
+ \bool_if:NTF \g_ptxcd_dr_bool
+ {\gdef\ptxcd_examdate{#1}}
+ {\msg_info:nnn{tudapub/thesis} {dr-field-only} {examdate}}
+}
+
+\gdef\ptxcd_submissiondate{}
+\newcommand*{\submissiondate}[1]{
+ \gdef\ptxcd_submissiondate{#1}
+}
+
+\gdef\@date{}
+
+\cs_new:Nn \ptxcd_thesis_print_dates:n {
+ \bool_set_false:N \l_tmpa_bool
+ \tl_if_empty:NF \@date {
+ \ptxcd_datename\tl_if_empty:NF \ptxcd_datename {\ptxcd_dateseparator}\@date
+ \bool_set_true:N \l_tmpa_bool
+ }
+ \tl_if_empty:NF \ptxcd_submissiondate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_submissiondatename\ptxcd_dateseparator\ptxcd_submissiondate
+ }
+ \tl_if_empty:NF \ptxcd_examdate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_examdatename\ptxcd_dateseparator\ptxcd_examdate
+ }
+}
+
+\tl_new:N \g_ptxcd_license_info_tl
+
+\keys_define:nn {ptxcd/thesis} {
+ urn .tl_gset:N =\g_ptxcd_thesis_urn_tl,
+ urn .initial:V = \c_empty_tl,
+ printid .tl_gset:N = \g_ptxcd_thesis_tuprints_tl,
+ printid .initial:V = \c_empty_tl,
+ doi .tl_gset:N = \g_ptxcd_thesis_doi_tl,
+ year .tl_gset:N = \g_ptxcd_thesis_publication_year_tl,
+ year .initial:n = ,
+ license .choices:nn = {cc-by-4.0,cc-by-sa-4.0,cc-by-nc-sa-4.0,cc-by-nc-4.0,cc-by-nd-4.0,cc-by-nc-nd-4.0} {
+ \tl_gset:Nx \g_ptxcd_license_info_tl {\exp_not:N \g_@@_cc_license:n {\l_keys_choice_tl} \exp_not:N \iflanguage{\exp_not:N \bbl@main@language}{}{\exp_not:n {\par\smallskip\otherlanguage{\bbl@main@language}}{\exp_not:N \g_@@_cc_license:n {\l_keys_choice_tl}}}}
+ },
+ license / cc-by-nc-nd-2.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {\use:c {g_@@_cc-by-nc-nd-2.0-de:}},
+ license / inc-1.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
+ Die~Veröffentlichung~ist~urheberrechtlich~geschützt\newline
+ \url{https://rightsstatements.org/page/InC/1.0/}
+ },
+ license / inc-1.0-en .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
+ This~work~is~protected~by~copyright\newline
+ \url{https://rightsstatements.org/page/InC/1.0/}
+ },
+ license / inc-1.0 .code:n = \tl_if_in:NnTF \languagename {german} {\keys_set:nn {ptxcd/thesis}{license=inc-1.0-de}}{\keys_set:nn {ptxcd/thesis}{license=inc-1.0-en}},
+ license / initial .code:n = {\keys_set:nn {ptxcd/thesis} {license=cc-by-4.0}},
+ license / unknown .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {#1},
+ license .initial:n = initial,
+ signature .tl_set:N = \l_ptxcd_signature_tl,
+ studentID .tl_set:N = \l_ptxcd_studentID_tl,
+ studentID .initial:n =,
+ signature-image .tl_set:N = \l_ptxcd_signature_image_tl,
+ signature-image .initial:n =,
+ signature-location .tl_set:N = \l_ptxcd_signature_location_tl,
+ signature-location .initial:n = Darmstadt,
+}
+
+\msg_new:nnnn {tudapub/thesis} {default-license-will-change} {
+TUprints~changed~their~default~license.\\
+tuda-ci~will~adapt~this~change~in~the~next~major~update.~\\
+Please~choose~your~license~manually~to~avoid~unintended~changes.
+} {Use~either~the~old~default~value~license=cc-by-nc-nd-2.0-de or~license=cc-by-4.0~or~license={<custom~text>}~with~\string\tuprints.}
+
+\cs_new:cn {g_@@_cc-by-nc-nd-2.0-de:} {
+ Die~Veröffentlichung~steht~unter~folgender~Creative~Commons~Lizenz:\\
+ Namensnennung~--~Keine~kommerzielle~Nutzung~--~Keine~Bearbeitung~ 2.0~Deutschland\\
+ \url{https://creativecommons.org/licenses/by-nc-nd/2.0/de/}
+}
+
+\defcaptionname{ngerman, german}{\g_@@_cc_attr_by:}{Namensnennung}
+\defcaptionname{ngerman, german}{\g_@@_cc_attr_nc:}{Nicht~kommerziell}
+\defcaptionname{ngerman, german}{\g_@@_cc_attr_sa:}{Weitergabe~unter~gleichen~Bedingungen}
+\defcaptionname{ngerman, german}{\g_@@_cc_attr_nd:}{Keine~Bearbeitungen}
+
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_attr_by:}{Attribution}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_attr_nc:}{NonCommercial}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_attr_sa:}{ShareAlike}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_attr_nd:}{NoDerivatives}
+
+\defcaptionname{ngerman,german}{\g_@@_cc_intro:}{Die~Veröffentlichung~steht~unter~folgender~Creative~Commons~Lizenz:}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_intro:}{This~work~is~licensed~under~a~Creative~Commons~License:}
+
+\defcaptionname{ngerman,german}{\g_@@_cc_sep:}{~--~}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\g_@@_cc_sep:}{--}
+
+\cs_new:Nn \g_@@_cc_license:n {
+ \group_begin:
+ \g_@@_cc_intro:\\
+ \seq_set_split:Nnn \l_tmpa_seq {-} {#1}
+ \bool_set_false:N \l_tmpa_bool
+ \seq_remove_all:Nn \l_tmpa_seq {cc}
+ \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl
+ \seq_map_inline:Nn \l_tmpa_seq {
+ \bool_if:NTF \l_tmpa_bool {\g_@@_cc_sep:} {\bool_set_true:N \l_tmpa_bool}
+ \use:c {g_@@_cc_attr_##1:}
+ }~\l_tmpa_tl{}~International\\
+ \url{https://creativecommons.org/licenses/\seq_use:Nn \l_tmpa_seq {-}/\l_tmpa_tl/}
+ \group_end:
+}
+
+\newcommand{\tuprints}[1]{%
+ \tl_if_in:nnTF {#1} {=}
+ {\keys_set:nn {ptxcd/thesis} {#1}}
+ {\keys_set:nn {ptxcd/thesis} {printid=#1}}
+ \lowertitleback{
+ \urlstyle{same}
+ \selectlanguage{german}
+ Bitte~zitieren~Sie~dieses~Dokument~als:
+ \tl_if_empty:NF \g_ptxcd_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_ptxcd_thesis_urn_tl}\\
+ URL:~\url{https://tuprints.ulb.tu-darmstadt.de/\g_ptxcd_thesis_tuprints_tl}\\
+ \tl_if_empty:NF \g_ptxcd_thesis_doi_tl {DOI:~\url{https://doi.org/\g_ptxcd_thesis_doi_tl}\\}
+ \tl_if_empty:NF \g_ptxcd_thesis_publication_year_tl {Jahr~der~Veröffentlichung~auf~TUprints:~\g_ptxcd_thesis_publication_year_tl}
+ \par\vspace{\baselineskip}
+ Dieses~Dokument~wird~bereitgestellt~von~tuprints,\\
+ E-Publishing-Service~der~TU~Darmstadt\\
+ \url{https://tuprints.ulb.tu-darmstadt.de}\\
+ \url{tuprints@ulb.tu-darmstadt.de}\\[2\baselineskip]
+ \tl_if_empty:NF \g_ptxcd_license_info_tl {\\[2\baselineskip]\g_ptxcd_license_info_tl}
+ }%
+}
+
+\gdef\@subject{
+ \text_titlecase_first:n{\tl_if_empty:NF \ptxcd_thesisStatus {\ptxcd_thesisStatus{}~}\ptxcd_thesisType}~
+ \tl_if_empty:NF \ptxcd_in_department {\ptxcd_in_department{}~}
+ \seq_if_empty:NF \g_ptxcd_author_seq {\ptxcd_byname\nobreakspace\@author}
+ \tl_if_empty:NF \ptxcd_birthplace {\space\ptxcd_fromname\space\ptxcd_birthplace}
+ \tl_if_empty:NF \l_ptxcd_studentID_tl {\space\ptxcd_insert_studentID:n {\l_ptxcd_studentID_tl}}
+}
+
+\uppertitleback{
+ \liningnums
+ \raggedright
+ \@title\par\@subtitle
+ \par\vspace*{\baselineskip}
+% ignore birthplace on english subject
+ \let\ptxcd_birthplace\@empty
+ \@subject
+ \bool_if:NT \g_@@_reviewer_on_uppertitleback_bool
+ \ptxcd_thesis_print_reviewer:
+ \exp_args:Nx \tl_if_empty:nF {\@date\ptxcd_submissiondate}{
+ \par\vspace*{\baselineskip}
+ \ptxcd_thesis_print_dates:n {\\}
+ }
+ \tl_if_empty:NF \@publishers {
+ \par\vspace*{\baselineskip}
+ \@publishers
+ }
+}
+
+%%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_ptxcd_thesis_institution_box
+
+%% The following macro is an adapted version of the corresponding KOMA-Script macro
+%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+\renewcommand*{\maketitle}[1][1]{
+ \bool_if:NF \g_ptxcd_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/thesis} {unsupported-title-language} {\languagename}
+ }
+ }
+ \exp_args:NV \ptxcd_select_department:n \g_ptxcd_department_choice_tl
+ \clist_map_inline:nn {author, date} {
+ \ptxcd_check_title_data:cn {@##1} {##1}
+ }
+ \clist_map_inline:nn {examdate, birthplace, group, department, institution} {
+ \ptxcd_check_title_data:cn {TUDa@##1} {##1}
+ }
+ \cs_if_exist_use:N \ptxcd_pass_TitleData:
+ \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
+ }%
+ \ptxcd_disable_marginpar:
+ \cleardoublepage
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\fnsymbol{footnote}}
+ \if@titlepageiscoverpage
+ \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
+ \ptxcd_setup_sponsor_box:
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g_@@_logo_head_bool {.75}\linewidth}
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {
+ \begin{addmargin}{3mm}
+ {\usekomafont{titlehead}{\@titlehead\par}}
+ \end{addmargin}
+ }
+ \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
+ \raggedright
+ \leavevmode\usekomafont{title}
+ \expandafter\fontsize\ptxcd_title_fontsize:
+ \selectfont
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip0pt}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \end{addmargin}
+ \end{minipage}%
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \usekomafont{titleinfo}
+ \raggedright
+ \expandafter\fontsize\ptxcd_titleinfo_fontsize:
+ \selectfont
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ \usekomafont{subject}
+ \bool_if:NT \g_ptxcd_dr_bool {\selectlanguage{german}}
+ \tl_if_empty:NF \g_ptxcd_titleintro_tl {\g_ptxcd_titleintro_tl\par}
+ \tl_if_empty:NF \g_ptxcd_thesis_drtext_tl {\g_ptxcd_thesis_drtext_tl\par}
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@subject
+ \par
+ }%
+ {\usekomafont{date}{\ptxcd_thesis_print_dates:n {,~}\par}}%
+ \ptxcd_thesis_print_reviewer:\par
+ {\usekomafont{publishers}{\@publishers \par}}%
+ \tl_if_empty:NF \g_ptxcd_titleaddendum_tl {\g_ptxcd_titleaddendum_tl\par}
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \let\footnotetext\ptxcd_title@footnote
+ \@thanks
+ \end{addmargin}
+ \par\vspace{-\dp\strutbox}
+ }
+ \normalcolor
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ }
+ }
+ \let\@thanks\@empty
+ \bool_if:NF \g_ptxcd_manual_info_box_bool {
+ \exp_args:Nf \tl_if_empty:nF {\ptxcd_institution\ptxcd_department:\ptxcd_institute\ptxcd_group} {
+ \addTitleBox{
+ \setlength{\parskip}{\c_ptxcd_rulesep_dim}
+ \tl_if_empty:NF \ptxcd_institution {\ptxcd_institution\par}
+ \tl_if_empty:NF \ptxcd_box_department {\ptxcd_box_department\par}
+ \tl_if_empty:NF \ptxcd_institute {\ptxcd_institute\par}
+ \tl_if_empty:NF \ptxcd_group {\ptxcd_group}
+ }}
+ }
+ \ptxcd_adjust_titlepage_style:
+ \thispagestyle{title.TUDa}
+ \nointerlineskip\box_use:N \g_ptxcd_title_box
+ \par
+ \vfill
+ \box_if_empty:NTF \g_ptxcd_sponsor_box {
+ \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ \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_ptxcd_thesis_urn_tl\g_ptxcd_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
+ \ptxcd_restore_typearea:
+ \aftergroup\ptxcd_restore_typearea:
+}
+
+\newcommand*{\@ThesisType}{\ptxcd_thesisType}
+
+\bool_if:NTF \g_ptxcd_dr_bool {
+ \keys_define:nn {ptxcd/thesis} {
+ affidavit .choices:nn = {dr}{\tl_gset_eq:NN \g_@@_affidavit_version_tl \l_keys_choice_tl},
+ affidavit / default .meta:n = {affidavit=dr},
+ affidavit .initial:n = dr,
+ }
+} {
+ \keys_define:nn {ptxcd/thesis} {
+ affidavit .choices:nn = {digital,print}{\tl_gset_eq:NN \g_@@_affidavit_version_tl \l_keys_choice_tl},
+ affidavit / default .meta:n = {affidavit=digital},
+ affidavit / hide-architecture-note .meta:n = {hide-architecture-note},
+ affidavit .initial:n = default,
+ }
+}
+\NewDocumentCommand{\affidavit}{so}{%
+ \IfNoValueF {#2} {%
+ \tl_if_in:nnTF {#2} {=}
+ {\keys_set:nn {ptxcd/thesis} {#2}}
+ {\keys_set:nn {ptxcd/thesis} {affidavit=#2}}%
+ }%
+ \clearpage
+ \begin{otherlanguage}{german}
+ \bool_if:NTF \g_ptxcd_dr_bool {
+ \g_@@_affidavit_dr_tl
+ } {
+ \tl_use:c {g_@@_affidavit_\g_@@_affidavit_version_tl _tl}
+ }
+ \par
+ \bigskip
+ \AffidavitSignature
+ \end{otherlanguage}
+ \IfBooleanF{#1}{\clearpage}
+}
+
+\ExplSyntaxOff
+
+\expandafter\def\csname g_@@_affidavit_dr_tl\endcsname {%
+ \section*{Erklärungen laut Promotionsordnung}
+ \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 – abgesehen von den in ihr ausdrücklich genannten Hilfen – selbstständig verfasst wurde und dass die „Grundsätze zur Sicherung guter wissenschaftlicher Praxis an der Technischen Universität Darmstadt“ und die „Leitlinien zum Umgang mit digitalen Forschungsdaten an der TU Darmstadt“ in den jeweils aktuellen Versionen bei der Verfassung der Dissertation beachtet wurden.
+
+ \subsection*{\S\,9 Abs. 2 PromO}
+ Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient.
+}
+
+%% Quelle: https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp
+\expandafter\def\csname g_@@_affidavit_digital_tl\endcsname {%
+ \subsection*{Erklärung zur Abschlussarbeit gemäß \S\,22~Abs.~7~APB TU~Darmstadt}
+ \begin{sloppypar}%
+ Hiermit erkläre ich, \@author, dass ich die vorliegende Arbeit gemäß \S\,22~Abs.~7~APB der TU Darmstadt selbstständig, ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt habe.
+ Ich habe mit Ausnahme der zitierten Literatur und anderer in der Arbeit genannter Quellen keine fremden Hilfsmittel benutzt. Die von mir bei der Anfertigung dieser wissenschaftlichen Arbeit wörtlich oder inhaltlich benutzte Literatur und alle anderen Quellen habe ich im Text deutlich gekennzeichnet und gesondert aufgeführt. Dies gilt auch für Quellen oder Hilfsmittel aus dem Internet.
+ \end{sloppypar}%
+ \par
+ Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
+ \par
+ Mir ist bekannt, dass im Falle 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.
+ \csname bool_if:cT\endcsname {g_@@_architecture_note_bool} {%
+ \par
+ Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
+ }
+}
+
+\ExplSyntaxOn
+
+\cs_set_eq:NN \g_@@_affidavit_print_tl \g_@@_affidavit_digital_tl
+
+\NewDocumentEnvironment{affidavit*}{om}{
+ \IfNoValueF {#1} {\begin{otherlanguage}{#1}}
+ \section*{#2}
+ }{
+ \IfNoValueF {#1} {\end{otherlanguage}}
+}
+
+\NewDocumentCommand{\AffidavitSignature}{o}{
+ \par
+ \begingroup
+ \IfNoValueF {#1} {%
+ \tl_if_in:nnTF {#1} {=}
+ {\keys_set:nn {ptxcd/thesis} {#1}}
+ {\keys_set:nn {ptxcd/thesis} {signature-location=#1}}%
+ }%
+ \tl_if_empty:NT \l_ptxcd_signature_image_tl {\bigskip}
+ \noindent \l_ptxcd_signature_location_tl,~ \ptxcd_submissiondate\hfill
+ \SignatureBox{\l_ptxcd_signature_tl}
+ \endgroup
+ \\\strut
+}
+
+\newcommand*{\SignatureBox}[2][5cm]{\parbox[t]{#1}{\centering
+ \tl_if_empty:NF \l_ptxcd_signature_image_tl
+ {\let\width\linewidth\l_ptxcd_signature_image_tl\par\nointerlineskip}
+ \rule{\linewidth}{.3pt}\\\makebox[0pt][c]{#2}}
+}
+
+% messages:
+\msg_new:nnn{tudapub/thesis} {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/thesis} {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/thesis} {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.
+}
+
+\PassOptionsToPackage{german}{babel}
+\AtBeginDocument{
+ \@ifpackageloaded{babel}{}{
+ \msg_new:nnnn{tudapub/thesis} {missing-babel} {
+ The~babel~package~is~not~loaded.\\
+ Please~load~babel~with~option\\
+ main=<main~language~of~your~document>\\
+ to~ensure~correct~hyphenation.
+ }{
+ I~will~use~a~workaround~(redefine~\string\otherlanguagen)~to~be~able~to~compile,~but~can't~configure~hyphenation~correctly.
+ }
+ \msg_warning:nn {tudapub/thesis} {missing-babel}
+ \renewenvironment{otherlanguage}[1]{}{}
+ }
+}
+
+% Fallback mechanism for older l3 kernels
+\cs_if_exist:NF \text_titlecase:n {
+ \cs_set_eq:NN \text_titlecase:n \tl_mixed_case:n
+}
+
+\seq_new:N \g_ptxcd_reviewer_name_seq
+\NewDocumentCommand{\setupReviewName}{som}{
+ \IfBooleanTF {#1} {
+ \clist_map_inline:nn {#3} {
+ \int_incr:N \l_tmpb_int
+ \cs_set:cn {_@@_reviewname_\int_use:N \l_tmpb_int :} {##1}
+ }
+ } {
+ \IfNoValueTF {#2} {
+ \cs_set:Npn \ptxcd_reviewname {#3}
+ } {
+ \ifnum #2 > 0
+ \cs_set:cn {_@@_reviewname_#2:}
+ {#3}
+ \fi
+ }
+ }
+}
+% \end{macrocode}
+% \iffalse
+%</tudathesis>
+% \fi
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.ins b/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.ins
new file mode 100644
index 00000000000..3d38237dbdf
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tuda-ci.ins
@@ -0,0 +1,242 @@
+%% This is file `tuda-ci.ins' version 4.00 (2025-01-26),
+%% it is part of
+%% TUDa-CI -- Corporate Design for TU Darmstadt
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2018--2025 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.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is
+%% Marei Peischl <tuda-ci@peitex.de>
+%%
+%% The development repository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%%
+%% ==========================================
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/tuda-ci}
+
+\let\orig@ds@heading\ds@heading
+\let\ds@heading\@empty
+\declarepreamble\tudatop
+it is part of
+TUDa-CI -- Corporate Design for TU Darmstadt
+
+----------------------------------------------------------------------------
+
+ Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
+
+============================================================================
+\endpreamble
+\declarepreamble\tudabottom
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+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.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is
+ Marei Peischl <tuda-ci@peitex.de>
+
+The development repository can be found at
+https://github.com/tudace/tuda_latex_templates
+Please use the issue tracker for feedback!
+
+============================================================================
+
+\endpreamble
+\ExplSyntaxOn
+\tl_replace_once:Nnn \tudatop{\ReferenceLines} {^^J}
+\tl_replace_once:Nnn \tudabottom {\ReferenceLines} {^^J}
+\ExplSyntaxOff
+
+\let\ds@heading\orig@ds@heading
+\declarepreamble\tudadefault\tudatop\tudabottom
+\endpreamble
+
+\usepreamble\tudadefault
+
+\askforoverwritefalse
+
+\generate{
+ %tudabeamer
+ \file{tudabeamer.cls}{
+ \from{tudabeamer.dtx}{class,initialize,options}
+ \from{tuda-ci.dtx}{options,tudabeamer,beamer}
+ \from{tudabeamer.dtx}{class,body}
+ }
+ %tudapub
+ \file{tudapub.cls}{\from{tuda-ci.dtx}{class,tudapub,pdfa,options}}
+}
+
+\generate{%
+ \file{tudaexercise.cls}{%
+ \from{tudaexercise.dtx}{class,initialization}%
+ \from{tuda-ci.dtx}{options,exercise,print}%
+ \from{tudaexercise.dtx}{class,center}%
+ \from{tuda-ci.dtx}{margin,geometry,exercise}%
+ \from{tudaexercise.dtx}{class,body}
+ }%
+}
+\generate{\file{tudaleaflet.cls}{%
+ \from{tudaleaflet.dtx}{class,initialization}%
+ \from{tuda-ci.dtx}{options,leaflet,print}%
+ \from{tudaleaflet.dtx}{class,body}%
+ }%
+}
+\generate{\file{tudaletter.cls}{%
+ \from{tudaletter.dtx}{class,initialization}%
+ \from{tuda-ci.dtx}{options,letter,print,process-options,pdfa}%
+ \from{tudaletter.dtx}{class,packages}%
+ \from{tuda-ci.dtx}{pdfx}%
+ \from{tudaletter.dtx}{class,body}%
+ \from{tuda-ci.dtx}{xmpdata}%
+ }%
+}
+\generate{\file{tudasciposter.cls}{%
+ \from{tudasciposter.dtx}{class,initialization}%
+ \from{tuda-ci.dtx}{options,sciposter,print,pdfa}%
+ \from{tudasciposter.dtx}{class,packages}%
+ \from{tuda-ci.dtx}{pdfx}%
+ \from{tudasciposter.dtx}{class,body}%
+ \from{tuda-ci.dtx}{xmpdata}%
+ }%
+}
+\generate{\file{tudaposter.cls}{%
+ \from{tudaposter.dtx}{class,initialization}%
+ \from{tuda-ci.dtx}{options,poster,print}%
+ \from{tudaposter.dtx}{class,body}%
+ }%
+}
+\generate{
+ \file{beamerouterthemeTUDa.sty}{
+ \from{beamerouterthemeTUDa.dtx}{package,initialize,main}
+ \from{tuda-ci.dtx}{options,beamer-outer}
+ \from{beamerouterthemeTUDa.dtx}{package,main,body}
+ }
+ \file{tudathesis.cfg}{\from{tuda-ci.dtx}{cfg,tudathesis}}
+ \file{tudacolors.sty}{\from{tudacolors.dtx}{package}}
+ \file{tudafonts.sty}{\from{tudafonts.dtx}{package}}
+ \file{tudarules.sty}{\from{tudarules.dtx}{package}}
+}
+\generate{
+% tudabeamer
+ \file{beamerthemeTUDa.sty}{\from{tudabeamer.dtx}{package,main,initialize,body,options}}
+ \file{beamerthemeTUDa2008.sty}{\from{tudabeamer.dtx}{package,2008,initialize,body,options}}
+ \file{beamerthemeTUDa2023.sty}{\from{tudabeamer.dtx}{package,2023,initialize,body,options}}
+% beamer font theme
+ \file{beamerfontthemeTUDa.sty}{\from{beamerfontthemeTUDa.dtx}{package,main}}
+ \file{beamerfontthemeTUDa2008.sty}{\from{beamerfontthemeTUDa.dtx}{package,2008}}
+% beamer color theme
+ \file{beamercolorthemeTUDa.sty}{\from{beamercolorthemeTUDa.dtx}{package,main}}
+ \file{beamercolorthemeTUDa2008.sty}{\from{beamercolorthemeTUDa.dtx}{package,2008}}
+% \file{beamerouterthemeTUDa2008.sty}{\from{beamerouterthemeTUDa.dtx}{package,2008}}
+ \file{beamerouterthemeTUDa2008.sty}{%
+ \from{beamerouterthemeTUDa.dtx}{package,initialize,2008}%
+ \from{tuda-ci.dtx}{options,beamer-outer}%
+ \from{beamerouterthemeTUDa.dtx}{package,2008,body}%
+ \from{beamerthemeTUDa2008.dtx}{outer}%
+ }%
+% beamer inner theme
+ \file{beamerinnerthemeTUDa.sty}{\from{beamerinnerthemeTUDa.dtx}{package,main}}
+ \file{beamerinnerthemeTUDa2008.sty}{\from{beamerinnerthemeTUDa.dtx}{package,2008}}
+ \file{beamerinnerthemeTUDa2023.sty}{\from{beamerinnerthemeTUDa.dtx}{package,2023}}
+}
+
+\declarepreamble\tudakomasize
+it is part of
+TUDa-CI -- Corporate Design for TU Darmstadt
+
+----------------------------------------------------------------------------
+
+ Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
+
+============================================================================
+
+The source file includes parts of the files scrkernel-fonts.dtx and scrkernel-paragraphs.dtx
+Copyright (c) 1994--2024 Markus Kohm [komascript at gmx info]
+which are part of the KOMA-Script bundle.
+
+The files were modified 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.3c
+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.3c or later is part of all distributions of LaTeX
+version 2008/05/04 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is
+ Marei Peischl <tuda-ci@peitex.de>
+
+The development repository can be found at
+https://github.com/tudace/tuda_latex_templates
+Please use the issue tracker for feedback!
+
+============================================================================
+
+\endpreamble
+
+\generate{%
+ \file{tudasize9pt.clo}{\from{tudasize.dtx}{scrsize,9pt}}%
+ \file{tudalettersize10pt.clo}{\from{tudasize.dtx}{scrsize,tudaletter}}%
+}%
+
+\usepreamble\tudadefault
+
+\ExplSyntaxOn
+\int_new:N \g_ptxcd_count_int
+
+% redefine module replacement to allow custom replacements for paper size
+\str_new:N \l_ptxcd__tmpa_str
+\str_new:N \l_@@_customize_ins_str
+\cs_set_eq:NN \_@@_customize_ins_prepareActiveModule:n \prepareActiveModule
+\cs_set:Npn \prepareActiveModule#1{
+ \_@@_customize_ins_prepareActiveModule:n {#1}%
+ \tl_put_left:Nn \replaceModuleInLine{
+ \str_set:NV \l_ptxcd__tmpa_str \inLine
+ \exp_args:NNxx \str_replace_all:Nnn \l_ptxcd__tmpa_str {\tl_to_str:V \l_@@_customize_ins_str} {\use:c {\l_@@_customize_ins_str}}
+ \tl_set_rescan:NnV \inLine {} \l_ptxcd__tmpa_str
+ \int_gzero:N \g_ptxcd_count_int
+ }
+}
+
+
+\str_set:Nx \l_@@_customize_ins_str {\string\@@tudasizepaper@@\space}
+
+\cs_set:Npn \generateTUDaPaperFiles #1 {
+ \str_set:Nx \l_@@_customize_ins_str {\string\@@tudasizepaper@@\space}
+ \clist_map_inline:nn {#1} {
+ \generate{
+ \tl_set:cn {\str_use:N \l_@@_customize_ins_str} {##1}
+ \file{tuda-##1paper.clo}{\from{tudasize.dtx}{##1,tudasize}}
+ }
+ }
+}
+\ExplSyntaxOff
+\generateTUDaPaperFiles {a0,a1,a2,a3,a4,a5}
+
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudabeamer.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudabeamer.dtx
new file mode 100644
index 00000000000..2d9e49ff188
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudabeamer.dtx
@@ -0,0 +1,327 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudabeamer.dtx}[2025-01-26 v4.00 Beamer slides using the corporate design of TU Darmstadt]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaBeamer.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*initialize>
+%<@@=ptxcd>
+%<package|class>\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+%<class>\ProvidesClass{tudabeamer}
+%<*class>
+ [2025-01-26 v4.00 Beamer wrapper class for TUDa-CI – Corporate Design Templates for TU Darmstadt]
+%</class>
+%<main>\ProvidesExplPackage{beamerthemeTUDa}{2025-01-26}{4.00}{Beamer theme using the Corporate Design of TU Darmstadt}
+%<2023>\ProvidesExplPackage{beamerthemeTUDa2023}{2025-01-26}{4.00}{Beamer theme using the Corporate Design of TU Darmstadt Design of 2023}
+%<2008>\ProvidesPackage{beamerthemeTUDa2008}[2025-01-26 v4.00 beamer theme using the Corporate Design of TU Darmstadt Design of 2008]
+%</initialize>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudabeamer.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudabeamer.dtx}
+% \title{The \textsf{tudabeamer} package}
+% \author{Marei Peischl\thanks{Email: \href{mailto:tuda-ci@peitex.de}{tuda-ci@peitex.de}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*initialize>
+%<*class>
+% \fi
+% \begin{macrocode}
+\PassOptionsToClass{10pt}{beamer}
+\ExplSyntaxOn
+\str_new:N \g_ptxcd_department_str
+\str_const:Nn \c_@@_base_str {beamer}
+% \end{macrocode}
+% \iffalse
+%</class>
+%<main>\tl_if_exist:NF \g_@@_design_tl {
+%<*main|class>
+% \fi
+% \begin{macrocode}
+ \tl_new:N \g_@@_design_tl
+% \end{macrocode}
+% Because the option passing accross beamer themes is quite annoying and we want to limit the choice of the design to \file{beamerthemeTUDa.sty} and \cls{tudabeamer} the options will be defined to pass to both theme variants.
+% The theme in the end will either do something or send a warning message.
+% \changes{v4.00}{2025-01-26}{Refactor all beamer options to fix passing issues.}
+% \begin{macrocode}
+ \cs_new:Nn \_@@_beamer_declare_pass_options:nn {
+ \keys_define:nn {ptxcd/beamer} {
+ #1 .code:n = \clist_map_inline:nn {#2}{
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa2008}
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa}
+ },
+ #1 .default:n = true,
+ }
+ }
+
+ \_@@_beamer_declare_pass_options:nn {centerframetitle} {outer}
+ \_@@_beamer_declare_pass_options:nn {headsepline} {outer}
+ \_@@_beamer_declare_pass_options:nn {logo} {outer}
+ \_@@_beamer_declare_pass_options:nn {colortitle} {color}
+ \_@@_beamer_declare_pass_options:nn {colorbacktitle} {color}
+ \_@@_beamer_declare_pass_options:nn {colorback} {color}
+ \_@@_beamer_declare_pass_options:nn {colorframetitle} {outer, color}
+% \iffalse
+%<main>}
+% \fi
+
+\keys_define:nn {ptxcd/beamer} {
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+% \end{macrocode}
+% \iffalse
+%</main|class>
+%<*options>
+%<*class>
+% \fi
+% \begin{macrocode}
+ color .code:n = {
+ \tl_if_in:nnTF {#1} {=} {
+ \msg_new:nnn {tudabeamer} {color-option-warning} {
+ The~color~option~should~no~longer~be~used~to~pass~options~to~the~tudacolors~package.\\
+ Please~use~tudacolors={##1}~instead~of~color={##1}.\\
+ See~the~tudabeamer~documentation~for~more~information.
+ }
+ \msg_warning:nnn {tudabeamer} {color-option-warning} {#1}
+ \PassOptionsToPackage{#1}{tudacolors}
+ } {
+ \PassOptionsToPackage{color=#1}{tudacolors}
+ }
+ },
+ tudacolors .code:n = \PassOptionsToPackage{#1}{tudacolors},
+% \end{macrocode}
+% \iffalse
+%</class>
+%<*!(2023|2008)>
+% \fi
+% \begin{macrocode}
+ design .choice:,
+ design / 2023 .code:n = {
+ \tl_gset:Nn \g_@@_design_tl {2023}
+ \PassOptionsToClass{aspectratio=169}{beamer}
+ },
+ design / 2008 .code:n = {
+ \tl_gset:Nn \g_@@_design_tl {2008}
+ },
+ design / default .code:n = {
+ \tl_gset:Nn \g_@@_design_tl {default}
+ },
+ design .initial:n = default,
+ design2023 .meta:n = {design=2023},
+ design2008 .meta:n = {design=2008},
+ design .usage:n = load,
+%<main>}
+% \end{macrocode}
+% \iffalse
+%</!(2023|2008)>
+% \fi
+%
+%
+% \iffalse
+%</options>
+%</initialize>
+%<*body>
+%<*class>
+% \fi
+% \begin{macrocode}
+\ExplSyntaxOff
+\PassOptionsToPackage{
+ hidelinks,
+ unicode,
+ pdfpagelabels=false,
+ plainpages=false,
+ pdfcreator=LaTeX using the TUDa-CI Bundle,
+}{hyperref}
+\PassOptionsToClass{t}{beamer}
+\DeclareOption*{%
+ \PassOptionsToClass{\CurrentOption}{beamer}
+}
+%</class>
+%<main|class|wrapper>\ProcessKeyOptions[ptxcd/beamer]
+%<*class>
+\ProcessOptions*
+\ExplSyntaxOn
+\tl_if_eq:NnT \g_@@_design_tl {default} {
+ \msg_new:nnn {tudabeamer} {default-design-changed} {
+ With~version~4.0~tudabeamer~switched~to~the~new~corporate~design~layout.\\
+ In~case~this~is~not~intended,~it's~possible~switch~back~using~`design=2008`~option.\\
+ `design=2023`~will~disable~this~warning.
+ }
+ \msg_warning:nn {tudabeamer} {default-design-changed}
+ \keys_set:nn {ptxcd/beamer} {design=2023}
+}
+\ExplSyntaxOff
+\LoadClass{beamer}
+\ExplSyntaxOn
+%
+% \begin{macro}{\department}
+% \department command
+% \begin{macrocode}
+\def\department{\@dblarg\ptxcd_beamer_department}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ptxcd}
+% \begin{macrocode}
+\long\def\ptxcd_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{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\insertshortdepartment}
+% \begin{macrocode}
+\newcommand\insertshortdepartment[1][]{%
+ {%
+ \let\thanks=\@gobble%
+ \beamer@setupshort{#1}%
+ \beamer@insertshort{\beamer@shortdepartment}%
+ }%
+}
+% \end{macrocode}
+% end of \department command
+% \changes{v4.00}{2025-01-26}{remove pdfa option}
+% \end{macro}
+\str_if_empty:NF \g_ptxcd_department_str {}
+% \end{macrocode}
+% Load the TUDa theme
+% \begin{macrocode}
+\usetheme{TUDa\g_@@_design_tl}%
+\let\accentfont\normalfont%
+\file_if_exist:nTF {\g_@@_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str.sty}
+ {\RequirePackage{\g_@@_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str}}
+ {
+ \file_if_exist:nT {beamerthemeTUDa-\g_ptxcd_department_str.sty}
+ {\RequirePackage{beamerthemeTUDa-\g_ptxcd_department_str}}
+ }
+\ExplSyntaxOff
+% \end{macrocode}
+% \iffalse
+%</class>
+% \fi
+%
+% \iffalse
+%<*package>
+% \fi
+% \iffalse
+%<*main>
+% \fi
+% \begin{macrocode}
+\RequirePackageWithOptions{beamerthemeTUDa\g_@@_design_tl}
+% \end{macrocode}
+% \iffalse
+%</main>
+% \fi
+% \subsection{Design specific options}
+% The design for 2023 removed a lot of options as the accentcolor is no longer used within the frames.
+% \iffalse
+%<*2023>
+% \fi
+% \begin{macrocode}
+\msg_new:nnn {tudabeamer} {option-removed} {
+ The~design~you~selected~doesn't~support~the~option~`#1`.\\
+ It~will~be~ignored.
+}
+% \end{macrocode}
+% \iffalse
+%</2023>
+%</package>
+%<*options>
+% \fi
+% \begin{macrocode}
+%<2008>\ExplSyntaxOn
+%<2008|2023>\ProcessKeyOptions[ptxcd/beamer]
+%</options>
+%<*package>
+\mode<presentation>
+%<2008>\ExplSyntaxOff
+% \end{macrocode}
+% \subsection{Design 2023}
+% \iffalse
+%<*2023>
+% \fi
+% \begin{macrocode}
+\usefonttheme{TUDa}
+\usecolortheme{TUDa}
+\useoutertheme{TUDa}
+\useinnertheme[design=2023]{TUDa}
+% \end{macrocode}
+% \iffalse
+%</2023>
+% \fi
+% \subsection{Design 2008}
+% \iffalse
+%<*2008>
+% \fi
+% \begin{macrocode}
+\usefonttheme{TUDa2008}
+\usecolortheme{TUDa2008}
+\useoutertheme{TUDa2008}
+\useinnertheme[design=2008]{TUDa}
+% \end{macrocode}
+% \iffalse
+%</2008>
+% \fi
+% \begin{macrocode}
+\setbeamertemplate{navigation symbols}{}
+\mode<all>
+% \end{macrocode}
+% \iffalse
+%</package>
+%</body>
+% \fi
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudacolors.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudacolors.dtx
new file mode 100644
index 00000000000..757516dd528
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudacolors.dtx
@@ -0,0 +1,277 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{tudacolors.dtx}
+ [2025-01-26 v4.00 Color definition for TU Darmstadt's tuda-ci bundle]
+%</driver>
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesExplPackage{tudacolors}{2025-01-26}{4.00}{Color definition for TU Darmstadt's tuda-ci bundle}
+%</package>
+%<*driver>
+\providecommand*{\TUDaDocDTXfiles}{tudacolors.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+% \chapter{\pkg{tudacolors} –– Color definitions}
+% \label{sec:color}
+% The \pkg{tudacolors} package provides the general color definitions necessary for the TUDa-CI Templates.
+% It defines the colors according to the design guideline \cite{TUDaGuideline}.
+% The definitions are using the \pkg{xcolor} package \cite{xcolor}.
+% Additionally the \option{mecheng} specific colors (see \autoref{sec:mecheng-color}) but the additional colors used by the new \cls{tudabeamer} layout are provided directly in the color theme.
+% This is because right now these colors are only defined in RGB mode and should not be used in documents using CMYK colors.
+%
+% The colors can be used like within standard \LaTeX.
+% The predefined TUDa-CI specific colors are:
+%
+% \begin{multicols}{4}
+% \raggedright
+% \renewcommand*{\definecolor}[3]{\makebox[5em]{#1}\textcolor{#1}{\rule{1cm}{\ht\strutbox}}\par}
+% \input{tudacolors.def}
+% \end{multicols}
+%
+% \pkg{tudacolors} provides package options to allow color selection or the color mode.
+% Since \pkg{tudacolors} is usually not loaded directly but indirectly using one of the TUDa-CI document classes, the options can be added as class options, as described in \autoref{sec:options}.
+% They will be passed to the package.
+% \begin{implementation}
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\str_if_exist:NF \g_ptxcd_department_str {
+ \str_new:N \g_ptxcd_department_str
+ \str_gset:Nn \g_ptxcd_department_str {default}
+}
+\keys_define:nn {ptxcd/colors} {
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeKeyOption{accentcolor=\meta{Color}}{0b}*
+% \DescribeOption{accent=}
+%
+% Highlight color used for all highlight elements by default.
+% The options below will reference this color as default setting meta{accentcolor}.
+% Depending on the documentclass it might be used for the so-called \enquote{identbar} as well as highlighted test elements, e.\,g. within letters if \option{premium} is enabled.
+%
+% |accent| is an alias.
+% We recommend using |accentcolor| to simplify recognizing the purpose of that option.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{accent=}
+% \begin{macrocode}
+ accent .tl_gset:N = \g_ptxcd_color_accent_tl,
+ accent .initial:n = 0b,
+ accentcolor .meta:n = {accent =#1},
+% \end{macrocode}
+% \end{optionenv}^^A accent
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeKeyOption{textaccent=\meta{color}}{\meta{accentcolor}}*
+% The accent color for highlighted text. Usage depends on the document class.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{textaccent=\meta{color}}
+% \begin{macrocode}
+ textaccent .tl_gset:N = \g_ptxcd_color_textaccent_tl,
+ textaccent .initial:n = \g_ptxcd_color_accent_tl,
+ textaccentcolor .meta:n = {textaccent = #1},
+% \end{macrocode}
+% \end{optionenv}^^A textaccent
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeKeyOption{identbar=\meta{color}}{\meta{accentcolor}}*
+% Color of the colored bar on the top of the page or slides using the 2008 layout.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{identbar=\meta{color}}
+% \begin{macrocode}
+ identbar .tl_gset:N = \g_ptxcd_color_identbar_tl,
+ identbar .initial:n = \g_ptxcd_color_accent_tl,
+ identbarcolor .meta:n = {identbar = #1},
+% \end{macrocode}
+% \end{optionenv}^^A identbar
+% compatibility only
+% \begin{macrocode}
+ color .code:n = {
+ \keys_set:nn {ptxcd/colors} {
+ accent=#1,
+ textaccent=#1,
+ identbar=#1
+ }
+ \PassOptionsToPackage{color=}{siunitx}
+ },
+% \end{macrocode}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeKeyOption{text=preferblack/preferwhite}{preferwhite}*
+% The text placed on top a colored area, e.\,g. if the background of the title is set colored is either set to black or white.
+% There are some color combinations forbidded according to the design guideline \cite{TUDaGuideline} and some colors are allowed to use black or white.
+% This option can be used to prefer either black or white for the title in case both variants are allowed.
+% It's not possible to enforce a forbidden setting using this option.
+% \end{documentation}
+%
+% \begin{implementation}
+% \begin{optionenv}{text}
+% \begin{macrocode}
+ text .choice:,
+ text/preferblack .code:n = \bool_gset_false:N \g_ptxcd_color_whitetext_bool,
+ text/preferwhite .code:n = \bool_gset_true:N \g_ptxcd_color_whitetext_bool,
+ text .initial:n = {preferwhite},
+ text/black .meta:n = {text=preferblack},
+ text/white .meta:n = {text=preferwhite},
+% \end{macrocode}
+% \end{optionenv}^^A text
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption*{colormode=cmyk/RGB}{Depends on document type}*
+% The colormode can be selected to overwrite the default setting.
+% Please be aware, that there is a difference in casing and \code{RGB} has to be used uppercase and \code{cmyk} lowercase.
+% The reason for this is that internally uppercase and lowercase model names slightly differ because of rounding.
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{cmyk, RGB}
+% \begin{macrocode}
+ cmyk .code:n = \PassOptionsToPackage{cmyk}{xcolor},
+ RGB .code:n = \PassOptionsToPackage{RGB}{xcolor},
+% \end{macrocode}
+% \end{optionenv}
+% \end{implementation}
+% \begin{documentation}
+% \DescribeKeyOption{department=default/mecheng/\meta{department}}{default}*
+% Within \pkg{tudacolors} it's only checked if the department was set to \option{mecheng}. In that case the additional color configuration will be enbled (\autoref{sec:mecheng}).
+% \end{documentation}
+% \begin{implementation}
+% \begin{optionenv}{department=}
+% \begin{macrocode}
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \keys_set:nn {ptxcd/colors}{
+ accent=TUDa-2d,
+ identbar=TUDa-6b
+ }
+ },
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+% \end{macrocode}
+% Necessary to apply the option if it was processed before.
+% \begin{macrocode}
+ department .initial:V = \g_ptxcd_department_str,
+% \end{macrocode}
+% \end{optionenv}^^A department
+% \end{implementation}
+% \begin{implementation}
+% \begin{macrocode}
+ departmentconfigprefix .tl_gset:N = \g_@@_config_prefix_tl,
+ mecheng .meta:n = {department=mecheng},
+}
+\ProcessKeyOptions[ptxcd/colors]
+\RequirePackage{xcolor}
+\input{tudacolors.def}
+\str_if_eq:VnT \g_ptxcd_department_str {mecheng} {
+ \colorlet{TUDa-Primary1}{TUDa-6b}
+ \colorlet{TUDa-Primary2}{TUDa-2d}
+ \colorlet{TUDa-Secondary1}{TUDa-9a}
+ \colorlet{TUDa-Secondary2}{TUDa-8a}
+ \colorlet{TUDa-Secondary3}{TUDa-6a}
+ \colorlet{TUDa-Secondary4}{TUDa-3a}
+ \colorlet{TUDa-Secondary5}{TUDa-4a}
+ \colorlet{TUDa-Secondary6}{TUDa-5a}
+ \colorlet{TUDa-Arrow}{TUDa-Primary2}
+}
+\clist_const:Nn \c_ptxcd_color_forbid_textaccent_clist {TUDa-0a,TUDa-5a,TUDa-6a,TUDa-6b,TUDa-7a}
+\clist_const:Nn \c_ptxcd_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_ptxcd_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}
+% \end{macrocode}
+% messages
+% \begin{macrocode}
+\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~ Guideline~ for~ further~ information.}
+\hook_new:n {ptxcd/init-colors}
+\hook_gput_code:nnn {ptxcd/init-colors} {tudacolors} {
+ \clist_map_inline:nn {accent, textaccent, identbar} {
+ \cs_if_exist:cF {\string\color@\tl_use:c {g_ptxcd_color_#1_tl}} {
+ \cs_if_exist:cT {\string\color@TUDa-\tl_use:c {g_ptxcd_color_#1_tl}} {
+ \tl_gset:cx {g_ptxcd_color_#1_tl} {TUDa-\tl_use:c {g_ptxcd_color_#1_tl}}
+ }
+ }
+ }
+ \exp_args:Nnx \colorlet{accentcolor}{\g_ptxcd_color_accent_tl}
+ \bool_if:NTF \g_ptxcd_color_whitetext_bool {
+ \clist_if_in:NVTF \c_ptxcd_color_allow_whitetext_clist \g_ptxcd_color_accent_tl {
+ \colorlet{textonaccentcolor}{white}
+ } {
+ \colorlet{textonaccentcolor}{black}
+ \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {white} {textonaccentcolor}
+ }
+ }
+ } {
+ \clist_if_in:NVTF \c_ptxcd_color_allow_blacktext_clist \g_ptxcd_color_accent_tl {
+ \colorlet{textonaccentcolor}{black}
+ } {
+ \colorlet{textonaccentcolor}{white}
+ \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {black} {textonaccentcolor}
+ }
+ }
+ }
+ \colorlet{identbarcolor}{\g_ptxcd_color_identbar_tl}
+ \exp_args:NNx \clist_if_in:NnTF \c_ptxcd_color_forbid_textaccent_clist {\g_ptxcd_color_textaccent_tl} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {\g_ptxcd_color_textaccent_tl} {textaccentcolor}
+ \colorlet{textaccentcolor}{black}
+ } {
+ \colorlet{textaccentcolor}{\g_ptxcd_color_textaccent_tl}
+ }
+}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str-colors.def}
+\hook_use:n {ptxcd/init-colors}
+\colorlet{InfoBox}{white}
+% \end{macrocode}
+% \end{implementation}
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudaexercise.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudaexercise.dtx
new file mode 100644
index 00000000000..459a78b60e7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudaexercise.dtx
@@ -0,0 +1,1490 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudaexercise.dtx}[2025-01-26 v4.00 Exercise sheets and exams using TU Darmstadt's Corporate Desing (TUDa-CI)]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaExercise.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*class&initialization>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplClass{tudaexercise}{2025-01-26}{4.00}{Exercise sheets and exams using TU Darmstadt's Corporate Desing (TUDa-CI)}
+%</class&initialization>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudaexercise.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \maketitle
+%
+%
+%
+% \DescribeEnv{solution}
+%
+%
+% \DescribeMacro{\sectionlinesformat}
+%
+%
+% \DescribeMacro{\institution}
+%
+%
+% \DescribeMacro{\titlepagestyle}
+%
+%
+% \DescribeMacro{\titleimage}
+%
+%
+% \DescribeMacro{\author}
+%
+%
+% \DescribeMacro{\title}
+%
+%
+% \DescribeMacro{\sheetnumber}
+%
+%
+% \DescribeMacro{\term}
+%
+%
+% \DescribeMacro{\sheetsep}
+%
+%
+% \DescribeMacro{\tasksep}
+%
+%
+% \DescribeMacro{\solutionsep}
+%
+%
+% \DescribeMacro{\StudentNamesep}
+%
+%
+% \DescribeMacro{\StudentIDname}
+%
+%
+% \DescribeMacro{\StudentIDsep}
+%
+%
+% \DescribeMacro{\creditformat}
+%
+%
+% \DescribeMacro{\creditformatsum}
+%
+%
+% \DescribeMacro{\pointformat}
+%
+%
+% \DescribeMacro{\PointsName}
+%
+%
+% \DescribeMacro{\thetask}
+%
+%
+% \DescribeMacro{\taskformat}
+%
+%
+% \DescribeEnv{task}
+%
+%
+% \DescribeMacro{\thesubtask}
+%
+%
+% \DescribeMacro{\subtaskformat}
+%
+%
+% \DescribeEnv{subtask}
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*initialization>
+% \fi
+%
+% \begin{macrocode}
+\msg_new:nnnn {tudaexercise} {outdated-koma-script} {
+ Your~KOMA-Script~is~outdated.\\
+ To~use~the~feature~'#1'~you~will~be~required~to~update.
+} {
+ Please~do~not~use~this~feature~or~update~your~TeX~distribution.\\
+ The~feature~requires~KOMA-Script~v#2~or~newer.
+}
+\str_const:Nn \c_@@_base_str {exercise}
+\prop_new:N \g_ptxcd_clsopts_prop
+\prop_new:N \g_ptxcd_unknown_clsopts_prop
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline}
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {parskip} {half-}
+\prop_new:N \g_@@_points_collector_prop
+\prop_new:N \g_@@_subtask_points_collector_prop
+\prop_new:N \g_@@_property_collector_prop
+\bool_new:N \l_@@_points_auto_bool
+\bool_new:N \g_@@_points_bool
+\prop_new:N \g_@@_loaded_points_prop
+\fp_new:N \g_@@_points_total_fp
+\int_new:N \g_ptxcd_paper_int
+\bool_new:N \g_ptxcd_geometry_bool
+\bool_new:N \g_ptxcd_custommargins_bool
+\bool_new:N \l_@@_solution_bool
+\bool_new:N \g_ptxcd_smalltitle_bool
+\str_new:N \g_ptxcd_department_str
+\tl_new:N \g_ptxcd_tmp_tl
+\int_new:N \g_ptxcd_tmp_int
+\tl_new:N \l_ptxcd_tmp_tl
+\clist_map_inline:nn {section,subsection,subsubsection,task,subtask,@solution} {
+ \bool_new:c {g_@@_ruled_#1_bool}
+ \bool_gset_true:c {g_@@_ruled_#1_bool}
+}
+\bool_new:N \g_@@_runin_subtask_bool
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeEnv{solution}
+%
+% \end{documentation}
+% \begin{environment}{solution}
+% \begin{macrocode}
+\newenvironment{solution}{}{}
+% \end{macrocode}
+% \end{environment}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeEnv{solution*}
+%
+% \end{documentation}
+% \begin{environment}{solution*}
+% \begin{macrocode}
+\newenvironment{solution*}{}{}
+% \end{macrocode}
+% \end{environment}
+% \end{implementation}
+% \changes{v4.00}{2025-01-26}{Remove obsolete use of environ}
+% \begin{macrocode}
+\cs_new:Nn \_@@_setup_solution: {
+ \bool_if:NTF \l_@@_solution_bool {
+ \def\solution{\_@@_solutionheader:}
+ \def\endsolution{}
+ \expandafter\def\csname solution*\endcsname{\ignorespaces}
+ \expandafter\let\csname endsolution*\endcsname\endsolution
+ }{
+ \RenewDocumentEnvironment{solution}{+b}{}{}
+ \RenewDocumentEnvironment{solution*}{+b}{}{}
+ }
+}
+\_@@_setup_solution:
+\prg_new_conditional:Nnn \_@@_if_solution: {T,F,TF} {
+ \bool_if:NTF \l_@@_solution_bool
+ {\prg_return_true:}
+ {\prg_return_false:}
+}
+\let\IfSolutionT \_@@_if_solution:T
+\let\IfSolutionF \_@@_if_solution:F
+\let\IfSolutionTF \_@@_if_solution:TF
+% \end{macrocode}
+% Message Declaration for option processing
+% \begin{macrocode}
+\msg_new:nnn{tudaexercise} {titlepage-option-disabled} {
+ You~set~the~titlepage~option~to~#1.\\
+ This option is not supported by tudaexercise.cls.\\
+ The~KOMA-Script~option~titlepage~is~forced~to~"false".
+}
+% \end{macrocode}
+% \changes{v4.00}{2025-01-26}{add bookmarksnumbered option and enable by default}
+% The options have to be passed before the package options to allow being changed by the user.
+% \begin{macrocode}
+\PassOptionsToPackage{pdfusetitle,bookmarksnumbered=true}{hyperref}
+\keys_define:nn {ptxcd/exercise} {
+% \end{macrocode}
+%
+% \begin{macrocode}
+ bookmarksnumbered .code:n = \PassOptionsToPackage{bookmarksnumbered=#1}{hyperref},
+ compat .bool_gset:N = \g_@@_compatibility_bool,
+ compat .initial:n = false,
+ compatilibity .meta:n = {compat=#1},
+ compatibility .default:n = true,
+ credit .tl_set:N = \l_@@_credit_tl,
+ credit .initial:n =,
+ headontitle .bool_gset:N = \g_ptxcd_headontitle_bool,
+ headontitle .initial:n = false,
+ headontitle .default:n =true,
+ titlepage .code:n = {\msg_warning:nnn {tudapub} {titlepage-option-disabled} {#1}},
+ match-task-subtask-syntax .bool_gset:N = \g_ptxcd_match_task_subtask_bool,
+ match-task-subtask-syntax .initial:n = false,
+ match-task-subtask-syntax .default:n = true,
+ solution .code:n = {
+ \bool_set_eq:Nc \l_@@_solution_bool {c_#1_bool}
+ \_@@_setup_solution:
+ },
+ solution .default:n = true,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+ points .choice:,
+ points / true .code:n = \bool_set_false:N \l_@@_points_auto_bool\bool_gset_true:N \g_@@_points_bool,
+ points /false .code:n = \bool_set_false:N \l_@@_points_auto_bool\bool_gset_false:N \g_@@_points_bool,
+ points / auto .code:n = \bool_set_true:N \l_@@_points_auto_bool\bool_gset_true:N \g_@@_points_bool,
+ points .initial:n = false,
+ subtask .choice:,
+ subtask / ruled .code:n =
+ \bool_gset_true:N \g_@@_ruled_subtask_bool
+ \bool_gset_false:N \g_@@_runin_subtask_bool,
+ subtask / runin .code:n =
+ \bool_gset_false:N \g_@@_ruled_subtask_bool
+ \bool_gset_true:N \g_@@_runin_subtask_bool,
+ subtask / plain .code:n =
+ \bool_gset_false:N \g_@@_ruled_subtask_bool
+ \bool_gset_false:N \g_@@_runin_subtask_bool,
+%</initialization>
+% ^AA}
+%<*center>
+\ProcessKeyOptions[ptxcd/exercise]
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {scrartcl}}
+ {
+ \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {scrartcl}}
+ }
+}
+ \bool_new:N \l_@@_subtask_fallback_bool
+ \fp_new:N \l_@@_task_points_fp
+ \fp_new:N \g_@@_ex_collected_points_fp
+ \tl_new:N \l_@@_task_credit_tl
+ \keys_define:nn {ptxcd/task}{
+ points .choice:,
+ points / auto .code:n =
+ \bool_set_true:N \l_@@_points_auto_bool,
+ points / unknown .code:n = \fp_set:Nn \l_@@_task_points_fp {#1}
+ \bool_set_false:N \l_@@_points_auto_bool,
+ credit .code:n = \tl_set:Nn \l_@@_task_credit_tl {#1}
+ \bool_set_false:N \l_@@_points_auto_bool,
+ solution .meta:nn ={ptxcd/exercise}{solution=#1},
+ }
+\fp_new:N \l_@@_subtask_points_fp
+\keys_define:nn {ptxcd/subtask} {
+ credit .tl_set:N = \l_@@_subtask_credit_tl,
+ credit .initial:n =,
+ points .code:n = \fp_set:Nn \l_@@_subtask_points_fp {#1}
+ \bool_set_false:N \l_@@_points_auto_bool,
+ title .tl_set:N = \l_@@_title_tl,
+ title .initial:n =,
+ unknown .code:n = {
+ \bool_set_true:N \l_@@_subtask_fallback_bool
+ \tl_clear:N \l_@@_subtask_credit_tl
+ \fp_zero:N \l_@@_subtask_points_fp
+ },
+}
+\keys_define:nn {ptxcd/exercise/headline} {
+ headline .code:n = {
+ \if@twoside
+ \keys_set:nn {ptxcd/exercise/headline} {odd=#1,even=#1}
+ \else
+ \keys_set:nn {ptxcd/exercise/headline} {oneside=#1}
+ \fi
+ },
+}
+\clist_map_inline:nn {odd, even, oneside} {
+ \tl_new:c {g_@@_headline_#1_tl}
+ \box_new:c {g_@@_headline_#1_box}
+ \keys_define:nn {ptxcd/exercise/headline} {
+ #1 .choice:,
+ #1 / title-name-id .meta:n = {
+ #1 = {
+ \g_ptxcd_shorttitle_tl\par
+ \StudentName\StudentID
+ }
+ },
+ #1 / title-name .meta:n = {
+ #1 = {
+ \g_ptxcd_shorttitle_tl\par
+ \smallskip
+ \StudentName
+ }
+ },
+ #1 / title .meta:n = {#1 = {\g_ptxcd_shorttitle_tl}},
+ #1 / name-id .meta:n = {#1 = {\StudentName\StudentID}},
+ #1 / name .meta:n = {#1 = {\StudentName}},
+ #1 / unknown .code:n = \tl_gset:cn {g_@@_headline_#1_tl} {##1}
+ }
+}
+% \end{macrocode}
+% Load tudasize clo file if available
+% \begin{macrocode}
+\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo}
+{\providecommand*{\@fontsizefilebase}{tudasize}}
+\LoadClass{scrartcl}
+\bool_if:NT \g_@@_points_bool {
+ \cs_if_exist:NF \AddtoDoHook{
+ \msg_error:nnnn {tudaexercise} {outdated-koma-script} {points=true/auto} {3.27}
+ \keys_set:nn {ptxcd/exercise} {points=false}
+ }
+}
+\RequirePackage{tudarules}
+% \end{macrocode}
+% Has to be loaded here due to headwidth options
+% \begin{macrocode}
+\RequirePackage[draft=false]{scrlayer-scrpage}
+\KOMAoptions {twoside = false}
+\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
+ \cs_if_exist:cT {KV@KOMA.scrartcl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}
+ }
+ }
+}
+% \end{macrocode}
+% \begin{implementation}
+% \begin{macro}{\sectionlinesformat}
+% \begin{macrocode}
+\renewcommand*\sectionlinesformat[4]{%
+ \parbox{\linewidth}{
+ \bool_if:cT {g_@@_ruled_#1_bool} {
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ }
+ \@hangfrom{%
+ \hskip #2#3}{
+ \tl_if_eq:nnT {#1} {task} {
+ \exp_args:No \tl_if_empty:nF {#4}
+ {:~}
+ \bool_if:NT \l_@@_points_auto_bool {
+ \exp_args:NNx \prop_get:NnN \g_@@_loaded_points_prop {\thetask} \l_ptxcd_tmp_tl
+ \quark_if_no_value:NF \l_ptxcd_tmp_tl {
+ \fp_set:Nn \l_@@_task_points_fp {\l_ptxcd_tmp_tl}
+ }
+ }
+ }
+ #4
+ \tl_if_in:nnT {#1} {task} {
+ \tl_if_empty:cTF{l_@@_#1_credit_tl}
+ {\pointformat{\fp_to_decimal:c {l_@@_#1_points_fp}}}
+ {\creditformat{\tl_use:c {l_@@_#1_credit_tl}}}
+ }
+ \rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \bool_if:cT {g_@@_ruled_#1_bool}
+ {\smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }
+}
+\RequirePackage{tudafonts}
+% \end{macrocode}
+% \iffalse
+%</center>
+%<*body>
+% \fi
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\institution}
+%
+%^^A TODO Rename and deprecate variable names
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\institution}
+% \begin{macrocode}
+\newcommand*{\institution}[1]{
+ \def\ptxcd_institution{#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_datename}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_datename}
+% \begin{macrocode}
+\gdef\ptxcd_datename{Datum}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_dateseparator}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_dateseparator}
+% \begin{macrocode}
+\gdef\ptxcd_dateseparator{:~}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\setkomafont{disposition}{\sffamily\bfseries}
+\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
+\RequirePackage{tudacolors}
+\setkomafont{pageheadfoot}{\sffamily\small}
+\setkomafont{pagenumber}{}
+\addtokomafont{captionlabel}{\sffamily}
+\addtokomafont{caption}{\sffamily}
+\cs_new:Nn \_@@_preamble_ConfigureHeadline:n {
+ \tl_if_empty:nF {#1} {\keys_set:nn {ptxcd/exercise/headline} {#1}}
+}
+\cs_new:Nn \ptxcd_ConfigureHeadline:n {
+ \_@@_preamble_ConfigureHeadline:n {#1}
+ \ptxcd_update_headline_boxes:
+ \_@@_adjust_headheight:
+}
+\NewDocumentCommand{\ConfigureHeadline}{m}{\_@@_preamble_ConfigureHeadline:n {#1}}
+\bool_if:NT \g_@@_compatibility_bool {
+ \cs_new:Npn \_@@_env_to_tl_aux:w #1 \q_stop { \tl_gset:Nn \g_@@_headline_oneside_tl {#1} }
+ \NewDocumentEnvironment{examheader}{+b}{}{
+ \tl_gset:Nn \g_@@_headline_oneside_tl {#1}
+ \tl_gset:Nn \g_@@_headline_odd_tl {#1}
+ \tl_gset:Nn \g_@@_headline_even_tl {#1}
+ \ptxcd_ConfigureHeadline:n {}
+ }
+ \newcommand*{\examheaderdefault}{\par\StudentName\StudentID}
+}
+\cs_new:Nn \ptxcd_update_headline_boxes: {
+ \clist_map_inline:nn {even, odd, oneside}
+ {
+ \tl_if_empty:cF {g_@@_headline_##1_tl} {
+ \vbox_gset:cn {g_@@_headline_##1_box} {
+ \begin{minipage}[b]{\textwidth}
+ \usekomafont{pagehead}
+ \raggedright
+ \leavevmode\rule{\z@}{\dimexpr\ht\strutbox+\c_ptxcd_rulesep_dim}
+ \ignorespaces
+ \use:c {g_@@_headline_##1_tl}\ignorespaces\strut
+ \par\vspace{\z@}
+ \end{minipage}
+ }
+ }
+ }
+}
+\cs_new:Nn \_@@_adjust_headheight: {
+ \if@twoside
+ \dim_set:Nn \l_tmpa_dim {
+ \dim_max:nn
+ {\box_ht:N \g_@@_headline_odd_box+\box_dp:N \g_@@_headline_odd_box}
+ {\box_ht:N \g_@@_headline_even_box+\box_dp:N \g_@@_headline_even_box}
+ }
+ \else
+ \dim_set:Nn \l_tmpa_dim {
+ \box_ht:N \g_@@_headline_oneside_box
+ + \box_dp:N \g_@@_headline_oneside_box
+ }
+ \fi
+ \dim_compare:nT {\l_tmpa_dim > \z@}
+ {
+ \dim_add:Nn \l_tmpa_dim {\box_dp:N \ptxcd_headrule_box +\c_ptxcd_rulesep_dim}
+ \KOMAoptions{headinclude, headheight=\l_tmpa_dim,headsepline = .5\c_ptxcd_smallrule_dim}
+ \if@twoside
+ \cehead{\box_use:c {g_@@_headline_even_box}}
+ \cohead{\box_use:c {g_@@_headline_odd_box}}
+ \else
+ \chead{\box_use:c {g_@@_headline_oneside_box}}
+ \fi
+ \global\setlength{\headheight}{\l_tmpa_dim}
+ }
+}
+\newpairofpagestyles{TUDa.exercise}{
+ \KOMAoptions{plainfootsepline,headtopline,plainheadtopline}
+ \KOMAoptions {
+ headwidth=text,
+ footwidth=text
+ }
+ \setkomafont{pagehead}{}
+ \box_if_exist:NF \ptxcd_headrule_box {
+ \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
+ }
+ \ModifyLayer[
+ background,
+ height=\box_dp:N \ptxcd_headrule_box,
+ align=tl,
+ voffset=\g_ptxcd_topMargin_dim,
+ contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
+ ]{plain.TUDa.exercise.head.above.line}
+ \ModifyLayer[
+ background,
+ height=\box_dp:N \ptxcd_headrule_box,
+ align=tl,
+ voffset=\g_ptxcd_topMargin_dim,
+ contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
+ ]{TUDa.exercise.head.above.line}
+ \ofoot[\pagemark]{\pagemark}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.even}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.odd}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.oneside}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.even}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.odd}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.oneside}
+}
+\DeclarePageStyleAlias{TUDa}{TUDa.exercise}
+\DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.exercise}
+% \end{macrocode}
+% \begin{implementation}
+% \begin{macrocode}
+\renewcommand{\titlepagestyle}{plain.TUDa}
+\pagestyle{TUDa}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\seq_new:N \g_ptxcd_author_seq
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\author}
+% \begin{macrocode}
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\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 \ptxcd_define_captionFallback:Nn {
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
+}
+\cs_new:Nn \ptxcd_declare_caption:Nnnn {
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
+}
+\cs_new:Nn \ptxcd_declare_caption:Nnn {
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+}
+\ptxcd_declare_caption:Nnn \authorandname {und} {and}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\@author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\@author}
+% \begin{macrocode}
+\renewcommand*{\@author}{
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
+\tl_new:N \g_ptxcd_shorttitle_tl
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\title}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\title}
+% \begin{macrocode}
+\RenewDocumentCommand{\title}{om}{
+ \IfNoValueTF{#1}{
+ \tl_gset:Nn \g_ptxcd_shorttitle_tl {#2}
+ }{
+ \tl_gset:Nn \g_ptxcd_shorttitle_tl {#1}
+ }
+ \def\@title{#2}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% Define \subsubtitle for compatibility
+% \begin{macrocode}
+\newcommand*{\subsubtitle}[1]{
+ \def\@subsubtitle{#1}
+}
+\subsubtitle{}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_title@footnote}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_title@footnote}
+% \begin{macrocode}
+\newcommand*{\ptxcd_title@footnote}[2][1]{
+ \textsuperscript{\@fnsymbol{#1}}#2
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\@maketitle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\@maketitle}
+% \begin{macrocode}
+\renewcommand*{\@maketitle}{%
+\global\@topnum=\z@
+\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+\vspace*{-\dim_eval:n {
+ \headheight
+ -\c_ptxcd_largerule_dim -\c_ptxcd_rulesep_dim
+ +\headsep
+ +\ht\strutbox
+ +\p@
+ }}
+\par
+\nointerlineskip
+\begingroup
+\setlength{\fboxsep}{\z@}
+\bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\linewidth}{
+ \rule{0pt}{\bool_if:NTF \g_ptxcd_smalltitle_bool {.25} {.5}\c_ptxcd_logoheight_dim}
+ \par\nointerlineskip
+ \raisebox{-\height}{%
+ \begin{minipage}[t]{\dimexpr\linewidth-\_@@_logowidth:-1ex}
+ \bool_if:NT \g_ptxcd_colorback_bool {\begin{addmargin}{3mm}}
+ \raggedright
+ \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{title}%
+ {\usekomafont{title}\bool_if:NTF \g_ptxcd_smalltitle_bool {\LARGE} {\huge} {\@title\par}}%
+ \vskip 1em
+ \bool_if:NF \g_@@_compatibility_bool
+ {
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
+ \gdef\@subtitle{}
+ \vskip .5em
+ }
+ {
+ \xdef\@author {\@author}
+ \ifx\@author\@empty\else\usekomafont{author}\@author\par\fi
+ }
+ \vskip .5em
+ \bool_if:NTF \g_ptxcd_colorback_bool {\end{addmargin}} {\par}
+ \end{minipage}}
+ \tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hfill\raisebox{\dim_eval:n {
+ \bool_if:NTF \g_ptxcd_colorback_bool
+ {-\height}
+ {-.9\c_ptxcd_logoheight_dim}
+ }}
+ [0pt]
+ [\dim_eval:n {
+ \bool_if:NTF \g_ptxcd_smalltitle_bool
+ {\bool_if:NTF \g_ptxcd_colorback_bool {1.15}{1}}
+ {\bool_if:NTF \g_ptxcd_colorback_bool {1.5}{1.3}
+ }\c_ptxcd_logoheight_dim}]
+ {\makebox[\_@@_logowidth:][l]{\_@@_insert_logo:}}
+ }
+ \par\medskip
+ }}
+\par
+\nointerlineskip
+\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+% \end{macrocode}
+% subtitle fields if not compat
+% \begin{macrocode}
+\exp_args:Nf \tl_if_empty:nF {\g_ptxcd_ex_sheetnum_tl\@date\g_ptxcd_ex_term_tl\use:c {@subsubtitle}\@subtitle}{
+ \par\nointerlineskip
+ \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{
+ \parbox{\linewidth}{
+ \begin{minipage}{\linewidth}
+ \bool_if:NT \g_ptxcd_colorback_bool {
+ \color{textonaccentcolor}
+ \begin{addmargin}{3mm}
+ }
+ \null\par
+ \def\ptxcd_nextsep{}
+ \clist_map_inline:nn {@subtitle, @subsubtitle, g_ptxcd_ex_term_tl, @date} {
+ \tl_if_empty:cF {##1} {\ptxcd_nextsep\use:c {##1}\def\ptxcd_nextsep{\\}}
+ }
+ \tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl {\ptxcd_nextsep\sheetname\sheetsep\g_ptxcd_ex_sheetnum_tl}
+ \bool_if:NT \g_ptxcd_colorback_bool {\end{addmargin}}
+ \end{minipage}
+ \vspace*{\dp\strutbox}
+ }}\par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+}
+\par
+\bool_if:NT \g_ptxcd_headontitle_bool {
+ \if@twoside
+ \box_use:N \g_@@_headline_odd_box
+ \else
+ \box_use:N \g_@@_headline_oneside_box
+ \fi
+ \par
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \par
+}
+\endgroup
+\vskip 2em
+\ConfigureHeadline{}
+}%
+\setkomafont{subtitle}{\bfseries}
+\setkomafont{author}{}
+\setkomafont{date}{}
+\newkomafont{sheetnumber}{\usekomafont{date}}
+\newkomafont{term}{\usekomafont{date}}
+\date{}
+\tl_new:N \g_ptxcd_ex_sheetnum_tl
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\sheetnumber}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\sheetnumber}
+% \begin{macrocode}
+\newcommand*{\sheetnumber}[1]{\tl_gset:Nn \g_ptxcd_ex_sheetnum_tl {#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\sheetnumber{}
+\tl_new:N \g_ptxcd_ex_term_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\term}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\term}
+% \begin{macrocode}
+\newcommand*{\term}[1]{\tl_gset:Nn \g_ptxcd_ex_term_tl {#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\term{}
+% \end{macrocode}
+% Logos
+% \begin{macrocode}
+\RequirePackage{graphicx}
+% \end{macrocode}
+% %hyperref
+% \begin{macrocode}
+\RequirePackage{hyperref}
+\hypersetup{hidelinks, unicode}
+\providecaptionname{ngerman, german}{\sheetname}{Übungsblatt}
+\providecaptionname{english, american, british}{\sheetname}{Sheet}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\sheetsep}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\sheetsep}
+% \begin{macrocode}
+\newcommand*{\sheetsep}{~}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\taskname}{Aufgabe}
+\providecaptionname{english, american, british}{\taskname}{Task}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\tasksep}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\tasksep}
+% \begin{macrocode}
+\newcommand*{\tasksep}{~}%TODO
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\solutionname}{Lösungsvorschlag}
+\providecaptionname{english, american, british}{\solutionname}{Solution}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\solutionsep}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\solutionsep}
+% \begin{macrocode}
+\newcommand*{\solutionsep}{:~}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\StudentNamename}{Nachname,~Vorname}
+\providecaptionname{english, american, british}{\StudentNamename}{Last Name,~ First Name}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\StudentNamesep}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\StudentNamesep}
+% \begin{macrocode}
+\newcommand*{\StudentNamesep}{:~}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\StudentIDname}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\StudentIDname}
+% \begin{macrocode}
+\providecommand{\StudentIDname}{Matrikelnummer}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\StudentIDname}{Matrikelnummer}
+\providecaptionname{english, american, british}{\StudentIDname}{Enrollment ID}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\StudentIDsep}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\StudentIDsep}
+% \begin{macrocode}
+\newcommand*{\StudentIDsep}{:~}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\creditformat}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\creditformat}
+% \begin{macrocode}
+\providecommand{\creditformat}[1]{\space(#1)}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\creditformatsum}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\creditformatsum}
+% \begin{macrocode}
+\providecommand{\creditformatsum}[1]{\creditformat{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\pointformat}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\pointformat}
+% \begin{macrocode}
+\newcommand*{\pointformat}[1]{
+ \fp_compare:nF {#1 = 0} {
+ \bool_if:NTF \l_@@_points_auto_bool
+ \creditformatsum
+ \creditformat
+ {
+ \fp_to_decimal:n {#1}\space
+ \fp_compare:nTF {#1=1}
+ \PointName
+ \PointsName
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\PointName}{Punkt}
+\providecaptionname{english, american, british}{\PointName}{Point}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\PointsName}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\PointsName}
+% \begin{macrocode}
+\providecommand{\PointsName}{Punkte}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\providecaptionname{ngerman, german}{\PointsName}{Punkte}
+\providecaptionname{english, american, british}{\PointsName}{Points}
+% \end{macrocode}
+% Has to be initialized after captionnames have been defined
+% \begin{macrocode}
+\AtBeginDocument{
+ \ptxcd_update_headline_boxes:
+ \_@@_adjust_headheight:
+ \global\let\ConfigureHeadline\ptxcd_ConfigureHeadline:n
+}
+% \end{macrocode}
+% task environment
+% \begin{macrocode}
+\DeclareSectionCommand[%
+ style=section,%
+ level=2,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=section,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsection@numwidth {2.3em},%
+]{task}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\thetask}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\thetask}
+% \begin{macrocode}
+\renewcommand*{\thetask}{
+ \g_ptxcd_ex_sheetnum_tl\tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl{.}
+ \arabic{task}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\taskformat}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\taskformat}
+% \begin{macrocode}
+\newcommand*{\tasklabel}{\thetask}
+\renewcommand*{\taskformat}{\taskname\tasksep\tasklabel{}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\let\@task\task
+\cs_undefine:N \task
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeEnv{task}
+%
+% \end{documentation}
+% \begin{environment}{task}
+% \begin{macrocode}
+\NewDocumentEnvironment{task}{om}{
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/task}{#1}}
+ \@task{#2}
+ \edef\@currenttasklabel{\tasklabel}
+}{
+ \_@@_save_task_properties:nnnn {} {\thetask} {#2} {
+ \bool_if:NTF \l_@@_points_auto_bool {
+ \fp_to_decimal:N \g_@@_ex_collected_points_fp
+ }{
+ \fp_to_decimal:N \l_@@_task_points_fp
+ }
+ }
+ \fp_gzero:N \g_@@_ex_collected_points_fp
+}
+% \end{macrocode}
+% \changes{v4.00}{2025-01-26}{Write task properties diractly per task/subtask}
+% \begin{macrocode}
+\cs_new:Nn \_@@_save_task_properties:nnnn {
+ \iow_now:Ne \@auxout {
+ \exp_not:N \ptxcd@TaskProperties {#1} {#2} {
+ \tl_if_empty:cF {l_@@_#1credit_tl} {credit=\tl_to_str:v {l_ptxcd_#1credit_tl},}
+ \tl_if_blank:nF {#3} {title=\tl_to_str:n {#3},}
+ } {#4}
+ }
+ \prop_gput:cee {g_@@_#1points_collector_prop}
+ {#2} {#4}
+}
+\cs_generate_variant:Nn \_@@_save_task_properties:nnnn {nnon}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\iffalse
+\newcommand*{\addsubtasktocentry}[4]{
+ \show\subtaskentry
+ %% {Dateierweiterung }{Ebene }{Gliederungsnummer }{Eintrag }
+ %\IfArgIsEmpty {#3}{\addcontentsline {#1}{#2}{\protect \nonumberline #4}}{\addcontentsline {#1}{#2}{\protect \numberline {#3}#4}}
+ \tocbasic@addxcontentsline{#1}{#2}{#3}{#4}
+ \iow_now:Ne \@auxout {
+ \exp_not:N \ptxcd@TaskProperties {\the\c@task} {\the\c@subtask} {\tl_to_str:n {#2}} {
+ \bool_if:NTF \l_@@_points_auto_bool {
+ \fp_to_decimal:N \l_@@_task_points_fp
+ }{
+ \fp_to_decimal:N \g_@@_ex_collected_points_fp
+ }
+ }
+ }
+}
+\fi
+
+%\ptxcd@TaskProperties {}{5.10}{Einheitliche Syntax für Task/Subtask}{0}
+\newcommand*\ptxcd@TaskProperties [4]{
+ \prop_gput:cnn {g_@@_#1points_collector_prop}
+ {#2} {#4}
+ \clist_map_inline:nn {#3} {
+ \prop_gput_from_keyval:Nn \g_@@_property_collector_prop {
+ #2-##1
+ }
+ }
+ \prop_gput:Nnn \g_@@_property_collector_prop {#2-points} {#4}
+}
+% \end{macrocode}
+% \end{environment}
+% \end{implementation}
+%
+% \begin{macrocode}
+\cs_set_eq:cN {task*} \task
+\cs_set_eq:cN {endtask*} \endtask
+% \end{macrocode}
+% subtasks
+% \begin{macrocode}
+\DeclareSectionCommand[%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=subsection,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
+ counterwithin=task,%
+]{subtask}
+\bool_if:NT \g_@@_runin_subtask_bool {
+ \RedeclareSectionCommand[runin=true]{subtask}
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\thesubtask}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\thesubtask}
+% \begin{macrocode}
+\renewcommand*{\thesubtask}{\alph{subtask})}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\subtaskformat}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\subtaskformat}
+% \begin{macrocode}
+\newcommand*{\subtasklabel}{\thetask\thesubtask}
+\renewcommand*{\subtaskformat}{\subtasklabel\enskip}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\setkomafont{subtask}{\mdseries\normalsize}
+\let\@subtask\subtask
+\cs_undefine:N \subtask
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeEnv{subtask}
+%
+% \end{documentation}
+% \begin{environment}{subtask}
+% \begin{macrocode}
+\NewDocumentEnvironment{subtask}{o}{
+ \begingroup
+ \tl_if_in:nnTF {#1} {=} {
+ \keys_set:nn {ptxcd/subtask} {#1}
+ } {
+ \keys_set:nn {ptxcd/subtask} {title={#1}}
+ }
+ \bool_if:NTF \l_@@_subtask_fallback_bool {
+ \@subtask{\IfNoValueF{#1}{#1}}
+ }{
+ \@subtask{\l_@@_title_tl}
+ }
+ \edef\@currenttasklabel{\subtasklabel}
+ \_@@_save_task_properties:nnon {subtask_} {\@currenttasklabel}
+ {\l_@@_title_tl} {\fp_to_decimal:N \l_@@_subtask_points_fp}
+ \bool_if:NT \g_@@_runin_subtask_bool \strut
+ \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
+ \endgroup
+ \edef\@currentcounter{subtask}
+ \protected@edef\@currentlabel{\p@subtask\thesubtask}
+}{}
+% \end{macrocode}
+% \end{environment}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeEnv{subtask*}
+%
+% \end{documentation}
+% \begin{environment}{subtask*}
+% \begin{macrocode}
+\NewDocumentEnvironment{subtask*}{om}{
+ \begingroup
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/subtask}{#1}}
+ \@subtask{#2}
+ \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
+ \endgroup
+ \tl_set_eq:NN \@currentlabel \g_tmpa_tl
+}{}
+% Solution mechanism
+%
+ \DeclareSectionCommand[%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=subsection,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
+ ]{@solution}
+ \setkomafont{@solution}{\normalfont}
+ \cs_new:Nn \_@@_solutionheader: {
+ \@solution*{\solutionname\solutionsep}
+ \if@newlist\global\@newlistfalse\fi
+ }
+% \end{macrocode}
+% \end{environment}
+% \end{implementation}
+%
+% \begin{macrocode}
+\box_new:N \g_ptxcd_NumberForm_box
+\hbox_gset:Nn \g_ptxcd_NumberForm_box {
+ \rule{\fboxrule}{1ex}
+ \rule{1em}{\fboxrule}
+ \rule{\fboxrule}{1ex}
+ \,
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_StudentID}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_StudentID}
+% \begin{macrocode}
+\newcommand*\ptxcd_StudentID[1][7]{
+ \StudentIDname\StudentIDsep\prg_replicate:nn {#1} {\box_use:N \g_ptxcd_NumberForm_box}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\let\StudentID\ptxcd_StudentID
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_StudentName}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_StudentName}
+% \begin{macrocode}
+\newcommand*\ptxcd_StudentName{
+ \StudentNamename\StudentNamesep\hrulefill\qquad
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\let\StudentName\ptxcd_StudentName
+\let\ShortTitle\g_ptxcd_shorttitle_tl
+% \end{macrocode}
+% Compatibility Features
+%
+% \begin{macrocode}
+\bool_if:NT \g_@@_compatibility_bool {
+ \cs_set_eq:NN \c@subsection \c@task
+ \cs_set_eq:NN \subsection \task
+ \cs_set_eq:NN \c@subsubsection \c@subtask
+ \cs_set_eq:NN \subsubsection \subtask
+ \cs_set_eq:NN \thetask \thesubsection
+ \cs_set_eq:NN \thesubtask \thesubsection
+}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+\ptxcd_makeheadrule[color=identbarcolor, width=\textwidth]{ptxcd_headrule}
+% \end{macrocode}
+% Point referencing
+% \begin{macrocode}
+\cs_if_exist:NTF \AddtoDoHook {
+ \AddtoDoHook{heading/preinit/subtask}{
+ \bool_if:NT \g_@@_points_bool {
+ \fp_gadd:Nn \g_@@_ex_collected_points_fp {\l_@@_subtask_points_fp}
+ }
+ }
+ \AddtoDoHook{heading/preinit/task}{
+ \fp_gzero:N \g_@@_ex_collected_points_fp
+ }
+} {
+ \msg_warning:nnnn {tudaexercise} {outdated-koma-script} {point~references} {3.27}
+}
+\msg_new:nnn {tudaexercise} {points-differ} {
+ Value~of~points~changed~for~at~least~one~task.\\
+ Please~rerun~LaTeX~to~get~correct~references~and~calculations.
+}
+\msg_new:nnn {tudaexercise} {empty-point-mapping} {
+ I~could~not~find~references~for~points~in~the~aux~file.\\
+ Please~rerun~LaTeX~to~get~correct~references~and~calculations.
+}
+\msg_new:nnn {tudaexercise} {point-referencing-disabled} {
+ You~try~to~use~#1.\\
+ This~function~is~only~available~with~points=true~or~points=auto.\\
+ Please~activate~referencing~to~use~it.
+}
+\bool_if:NTF \g_@@_points_bool {
+ \BeforeClosingMainAux{
+ \tl_clear:N \l_tmpa_tl
+ \tl_clear:N \l_tmpb_tl
+ \fp_zero:N \l_tmpa_fp
+ \prop_map_inline:Nn \g_@@_points_collector_prop {
+ \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
+ \fp_add:Nn \l_tmpa_fp {#2}
+ }
+ \prop_map_inline:Nn \g_@@_subtask_points_collector_prop {
+ \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
+ }
+ \prop_map_inline:Nn \g_@@_loaded_points_prop {
+ \tl_put_right:Nn \l_tmpb_tl {#1=#2,}
+ }
+ \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl {
+ \msg_warning:nn {tudaexercise} {points-differ}
+ }
+ \iow_now:Nx \@auxout{
+ \exp_not:N \ptxcd@LoadPoints[\the\c@task][\fp_use:N \l_tmpa_fp]{\l_tmpa_tl}
+ }
+ }
+ \cs_new:Nn \_@@_getPoints:n {
+ \prop_if_in:NnTF \g_@@_loaded_points_prop {#1}
+ {\prop_item:Nn \g_@@_loaded_points_prop {#1}}
+ {\nfss@text{\reset@font\bfseries??}}
+ }
+ \cs_generate_variant:Nn \_@@_getPoints:n {x}
+ \newcommand{\getPoints}[1]{\_@@_getPoints:x {#1}}
+ \newcommand{\refPoints}[1]{
+ \edef\x{#1}
+ \cs_if_exist:cTF {r@\x} {
+ \str_if_in:cnTF {r@\x} {subtask} {
+ \tl_set_eq:Nc \l_tmpa_tl {r@\x}
+ \getPoints{\tl_item:Nn \l_tmpa_tl {2}\tl_item:Nn \l_tmpa_tl {1}}
+ } {
+ \getPoints{\tl_head:v {r@\x}}
+ }
+ }{
+ \nfss@text{\reset@font\bfseries??}
+ }
+ }
+ \newcommand{\getPointsTotal}{
+ \fp_use:N \g_@@_points_total_fp
+ }
+% \end{macrocode}
+% \DescribeMacro{\getTaskProperty}\oarg{Task Number}{title/credit/points}
+% Suggested in PR \# 316 \url{https://github.com/tudace/tuda_latex_templates/pull/316}
+% \changes{v4.00}{2025-01-26}{Add Interface to access task title}
+% \begin{macrocode}
+\NewDocumentCommand{\getTaskProperty}{O{\@currenttasklabel}m}{
+ \exp_args:Ne \tl_show:n {#1-#2}
+ \prop_show:N \g_@@_property_collector_prop
+ \prop_if_in:NnTF \g_@@_property_collector_prop {#1-#2}
+ {\prop_item:Nn \g_@@_property_collector_prop {#1-#2}}
+ {{\nfss@text{\reset@font\bfseries??}}}
+}
+
+ \NewDocumentCommand{\mapPoints}{sO{1}m}{
+ \mapTasks[skip-zero-points=true,\IfBooleanF{#1}{subtask=false},start-task=#2]{#3}{#3}
+ }
+% \end{macrocode}
+% \changes{v4.00}{2025-01-26}{Add mapping Mechanismus including subtasks based on Pull-request 316}
+% \begin{Syntax}
+% \_@@_point_mapping_aux:nnn \marg{task/subtask} \marg{start value} \marg{action to do before continuing the loop}
+% \end{Syntax}
+% \begin{macrocode}
+\cs_new:Nn \_@@_point_mapping_aux:nnn {
+ \bool_set_true:c {l_@@_#1_bool}
+ \cs_set:ce {_@@_cached_#1_counter:} {\int_eval:n {\value{#1}}}
+ \setcounter{#1}{#2}
+ \bool_while_do:cn {l_@@_#1_bool} {
+ \prop_get:NeNTF \g_@@_loaded_points_prop {\use:c {#1label}} \l_tmpa_tl {
+% \end{macrocode}
+% mechanism to skip item if it doesn't have points
+% \begin{macrocode}
+ \bool_if:NT \l_@@_skip_zero_points_bool
+ {\fp_compare:nF {\l_tmpa_tl = 0}}
+ \use:n
+ {
+ \tl_build_put_right:Ne \l_ptxcd_tmp_tl {
+ \exp_not:c {_@@_map_points_#1:nn} {\use:c {#1label}} {\l_tmpa_tl}
+ }
+ }
+ #3
+ \stepcounter{#1}
+ } {\bool_set_false:c {l_@@_#1_bool}}
+ }
+ \setcounter{#1}{\use:c {_@@_cached_#1_counter:}}
+}
+% \end{macrocode}
+% \changes{v4.00}{2025-01-26}{Add generic mechanism to iterate over tasks}
+% \begin{macrocode}
+\keys_define:nn {ptxcd/task-mapping} {
+ task .bool_set:N = \l_@@_task_bool,
+ task .initial:n = false,
+ subtask .bool_set:N = \l_@@_subtask_bool,
+ subtask .initial:n = false,
+ skip-zero-points .bool_set:N = \l_@@_skip_zero_points_bool,
+ skip-zero-points .initial:n = false,
+ start-task .int_set:N = \l_@@_start_task_int,
+ start-task .initial:n = 1,
+}
+
+\NewDocumentCommand{\mapTasks}{O{}+m+m}{
+ \cs_gset:Ne \_@@_restore_task_counters: {
+ \exp_not:N \setcounter{task}{\the\value{task}}
+ \exp_not:N \setcounter{subtask}{\the\value{subtask}}
+ }
+ \group_begin:
+ \keys_set:ne {ptxcd/task-mapping} {
+ task = true,
+ subtask=true,
+ #1
+ }
+ \cs_gset:Nn \_@@_map_points_task:nn {#2}
+ \cs_gset:Nn \_@@_map_points_subtask:nn {#3}
+
+ \prop_if_empty:NTF \g_@@_loaded_points_prop {
+ \msg_warning:nn {tudaexercise} {empty-point-mapping}
+ \tl_set:Nn \l_ptxcd_tmp_tl {\_@@_map_points_task:nn {?task?} {?points?}}
+ } {
+ \tl_build_begin:N \l_ptxcd_tmp_tl
+ \exp_args:Nne \use:n {
+ \bool_if:NTF \l_@@_task_bool \use:n \use_ii:nn
+ {\_@@_point_mapping_aux:nnn {task} {\int_use:N \l_@@_start_task_int}}
+ }{
+ \bool_if:NT \l_@@_subtask_bool {
+ \exp_not:n {
+ \bool_set_true:N \l_@@_subtask_bool
+ \_@@_point_mapping_aux:nnn {subtask} {1} {}
+ }
+ }
+ }
+ \tl_build_end:N \l_ptxcd_tmp_tl
+ }
+ \cs_gset_eq:NN \g_ptxcd_tmp_tl \l_ptxcd_tmp_tl
+ \exp_last_unbraced:No
+ \group_end:
+ \g_ptxcd_tmp_tl
+% \end{macrocode}
+% check if between tabular rows to use \noalign
+% \begin{macrocode}
+ \ifhmode\else\ifvoid\@arstrutbox\else\noalign\fi\fi
+ {\_@@_restore_task_counters:}
+ }
+} {
+ \newcommand{\getPoints}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPoints}
+ }
+ \newcommand{\refPoints}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\refPoints}
+ }
+ \newcommand{\getPointsTotal}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPointsTotal}
+ }
+ \NewDocumentCommand{\mapPoints}{som} {
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\mapPoints}
+ }
+ \NewDocumentCommand{\getTaskProperty}{om}{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getTaskProperty}
+ }
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd@LoadPoints}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd@LoadPoints}
+% \begin{macrocode}
+\int_new:N \g_@@_max_task_int
+\NewDocumentCommand{\ptxcd@LoadPoints}{oO{0}m}{
+ \IfNoValueF{#1}{\int_gset:Nn \g_@@_max_task_int {#1}}
+ \prop_gset_from_keyval:Nn \g_@@_loaded_points_prop {
+ #3
+ }
+ \fp_gset:Nn \g_@@_points_total_fp {#2}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+
+%
+% \iffalse
+%</body>
+% \fi
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudafonts.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudafonts.dtx
new file mode 100644
index 00000000000..a6471b429f6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudafonts.dtx
@@ -0,0 +1,164 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<driver>\ProvidesFile{tudafonts.dtx}
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesPackage{tudafonts}
+%</package>
+%<*driver|package>
+ [2025-01-26 v4.00
+ font setup for TUDa-CI, TU Darmstadt's Corporate Design]
+%</driver|package>
+%<*driver>
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudafonts.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudafonts.dtx}
+% \title{The \textsf{tudafonts} package}
+% \author{Marei Peischl\thanks{Email: \href{mailto:tuda-ci@peitex.de}{tuda-ci@peitex.de}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\expandafter\newif\csname if@ptxcd@T1\endcsname
+\DeclareOption{T1}{\csname @ptxcd@T1true\endcsname}
+\ProcessOptions\relax
+\RequirePackage{iftex}
+\RequirePackage{anyfontsize}
+\ifPDFTeX
+ \csname @ptxcd@T1true\endcsname
+ %Fallback for older versions
+ \expandafter\ifx\csname DeclareUnicodeCharacter\endcsname\relax
+ \RequirePackage[utf8]{inputenc}
+ \fi
+ \expandafter\ifx\csname texteuro\endcsname\relax
+ \RequirePackage{textcomp}
+ \fi
+ \DeclareUnicodeCharacter{20AC}{\texteuro}
+\fi
+\csname if@ptxcd@T1\endcsname
+ \ifLuaTeX
+ \RequirePackage[utf8]{luainputenc}
+ \fi
+ \RequirePackage{XCharter}%activates T1
+ \PassOptionsToPackage{type1}{roboto}
+ \PassOptionsToPackage{type1}{roboto-mono}
+ % Workaround for missing ligature replacements with roboto in T1
+ \ifXeTeX
+ \else
+ \RequirePackage{microtype}
+ \DisableLigatures{encoding = *, family=\sfdefault,shape = sc }
+ \fi
+\else
+ \RequirePackage{fontspec}
+ \setmainfont{XCharter}
+\fi
+\RequirePackage{roboto}
+\csname if@ptxcd@T1\endcsname
+ \newcommand\robotoblackspaced{%
+ \robotoblack
+ \lsstyle
+ }
+\else
+ \newfontfamily\robotoblackspaced
+ [ Numbers = {\roboto@figurealign,\roboto@figurestyle},
+ UprightFont = *-Black ,
+ ItalicFont = *-BlackItalic,
+ LetterSpace=26,
+ WordSpace=2.2
+ ]
+ {Roboto}
+\fi
+\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}
+}
+% \end{macrocode}
+%
+% \begin{macro}{\ptxcd@sffamily@lining}
+% \begin{macrocode}
+\def\ptxcd@sffamily@lining{\robototlf}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\let\accentfont\robotoslab
+\DeclareTextFontCommand{\textaccent}{\accentfont}
+% \end{macrocode}
+% adjust LaTeX Logo kerning to font
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudaleaflet.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudaleaflet.dtx
new file mode 100644
index 00000000000..259f2299374
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudaleaflet.dtx
@@ -0,0 +1,614 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudaleaflet.dtx}
+ [2025-01-26 v4.00 Leaflets using the Corporate Design of TU Darmstadt]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaLeaflet.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*class&initialization>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudaleaflet}{2025-01-26}{4.00}{Leaflets using the Corporate Design of TU Darmstadt}
+%</class&initialization>
+%
+%
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudaleaflet.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudaleaflet.dtx}
+% \title{The \textsf{tudaleaflet} package}
+% \author{<+author+>\thanks{Email: \href{mailto:<+email+>}{<+email+>}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+%
+% \DescribeMacro{\maketitle}
+%
+%
+% \DescribeMacro{\section}
+%
+%
+% \DescribeMacro{\subsection}
+%
+%
+% \DescribeMacro{\subsubsection}
+%
+%
+% \DescribeMacro{\subtitle}
+%
+%
+% \DescribeMacro{\AddSponsor}
+%
+%
+% \DescribeMacro{\sponsors}
+%
+%
+% \DescribeMacro{\footergraphics}
+%
+%
+% \DescribeMacro{\titleimage}
+%
+%
+% \DescribeMacro{\addTitleBox}
+%
+%
+% \DescribeMacro{\addTitleBoxLogo}
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*initialization>
+% \fi
+% \begin{macrocode}
+\str_const:Nn \c_@@_base_str {leaflet}
+\tl_new:N \g_ptxcd_sponsor_pos_tl
+\keys_define:nn {ptxcd/leaflet} {
+ sponsor .choices:nn = {title,lastfoot,manual}{\tl_gset_eq:NN \g_ptxcd_sponsor_pos_tl \l_keys_choice_tl},
+ sponsor .initial:n = title,
+% \end{macrocode}
+% \iffalse
+%</initialization>
+%<*body>
+% \fi
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{leaflet}}
+
+\ProcessKeyOptions[ptxcd/leaflet]
+\ProcessOptions\relax
+\bool_if:NT \g_ptxcd_colorbacksubtitle_bool {
+ \bool_if:NF \g_ptxcd_colorbacktitle_bool {
+ \msg_new:nnnn {ptxcd/leaflet} {incompatible-options} {You~cannot~use~the~setting~#1~at~the~same~time~as~#2.} {See~TUDaLeaflet~documentation~for~further~information.}
+ \msg_error:nn {ptxcd/leaflet} {incompatible-options} {colorbacksubtitle=true} {colorbacktitle=false}
+ }
+}
+\LoadClass[notumble]{leaflet}
+% \end{macrocode}
+% to workaround incompatibilities between leaflet and scrextend
+% \begin{macrocode}
+\let\sectfont\relax
+\RequirePackage{scrextend}
+\RequirePackage{scrlayer}
+\PassOptionsToPackage{cmyk}{tudacolors}
+\RequirePackage[paper=leaflet]{tudarules}
+\setlength{\headheight}{1cm}%to add headline
+\setlength{\footheight}{2mm}
+\setmargins{10mm}{\dimexpr10mm+\headheight\relax}{10mm}{10mm}%Hardcoded, according to the guideline
+\DeclareNewLayer[
+ head,
+ mode=picture,
+ contents=\putUL{\box_use:N \ptxcd_headrule_box}
+]{TUDa.flyer.headline}
+\DeclareNewLayer[
+ foot,
+ mode=picture,
+ height=\z@,
+ voffset=\paperheight-14mm,
+ contents=\smash{\box_use:N \ptxcd_footrule_box}
+]{TUDa.flyer.footline}
+\DeclareNewPageStyleByLayers{TUDa.flyer}{
+ TUDa.flyer.headline,
+ TUDa.flyer.footline,
+}
+% \end{macrocode}
+% Title specific additions to pagestyle
+%
+% \begin{macrocode}
+\DeclareNewLayer[textarea,mode=picture,
+ addheight=\headheight-\box_dp:N \ptxcd_headrule_box+\dp\strutbox,
+ contents={
+ \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
+ \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
+ {\bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}}
+ {\putUL{\color{identbarcolor}\raisebox{-\height}{\parbox[t]{\textwidth}{
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_ptxcd_titleimage_code_tl
+ }}}}
+ \put(\dim_to_decimal_in_unit:nn {\layerwidth-\_@@_logowidth:
+ } {\unitlength},
+ \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
+ \rlap{\box_use:N \g_ptxcd_title_info_box}
+ }
+ }
+]{title.TUDa.image}
+\DeclareNewLayer[textarea,background,mode=picture,
+ contents={
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {
+ \color{identbarcolor}\rule{\layerwidth}{\layerheight}
+ }
+ }
+]{title.TUDa.background}
+\DeclareNewPageStyleByLayers{title.TUDa}{
+ title.TUDa.image,
+ title.TUDa.background,
+ TUDa.flyer.headline,
+ TUDa.flyer.footline,
+}
+\cs_new:Nn \ptxcd_Setup_Title_box: {
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {
+ \parbox{\dim_eval:n {\_@@_logowidth: + \_@@_logosep:}}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
+ }
+ }
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\sectionlinesformat}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\sectionlinesformat}
+% \begin{macrocode}
+\newcommand*\sectionlinesformat[1]{%
+ \parbox{\linewidth}{
+ \rule[\ptxcd_titlerule_sep:]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ #1\strut\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -.5\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\raggedtitle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\raggedtitle}
+% \begin{macrocode}
+\newcommand*{\raggedtitle}{\raggedright}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\maketitle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\maketitle}
+% \begin{macrocode}
+\renewcommand*{\maketitle}{
+ \def\and{,~ }
+ \hbox_gset:Nn \g_ptxcd_sponsor_box {
+ \edef\height{\noexpand\dimexpr\dim_eval:n {\_@@_logosep: + .5\c_ptxcd_logoheight_dim}}
+ \parbox[b]{\textwidth}{%
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \vspace{.1\c_ptxcd_logoheight_dim}
+ \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}\par
+ \addvspace{.1\c_ptxcd_logoheight_dim}
+ \ifx\@sponsors\@empty
+ \else
+ \@sponsors\par
+ \fi
+ \par\nointerlineskip\addvspace{\dim_eval:n {.1\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}}
+ }
+ }
+ \begin{titlepage}
+ \def\thefootnote{\fnsymbol{footnote}}
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\linewidth}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\color{textonaccentcolor}}
+ \begin{addmargin}{3mm}
+ \raggedtitle
+ \Huge
+ \usekomafont{disposition}
+ \usekomafont{title}
+ \leavevmode%
+ \@title\strut\par
+ \vskip0pt
+ \end{addmargin}
+ \end{minipage}%
+ \par\nointerlineskip
+ \bool_if:NTF \g_ptxcd_colorbacksubtitle_bool
+ {\textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}}
+ {\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ \par
+ \vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \raggedtitle
+ \usekomafont{disposition}
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@author
+ \par
+ }%
+ {\usekomafont{date}{\@date\par}}%
+ \end{addmargin}
+ \nointerlineskip
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool
+ {
+ \textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}\par\nointerlineskip
+ }
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ }
+ }
+ \ptxcd_adjust_titlepage_style:
+ \par
+ \vspace*{\dimexpr.5\c_ptxcd_logoheight_dim-\topskip}
+ \box_use:N \g_ptxcd_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
+ \fi
+\end{titlepage}
+\setcounter{footnote}{0}%
+\global\let\and\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\cs_set:Nn \ptxcd_adjust_titlepage_style: {
+ \dim_set:Nn \l_tmpa_dim {1\c_ptxcd_logoheight_dim}%\fp_to_dim:n {2.8\baselineskip}}
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
+ \skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
+ }
+ \dim_set:Nn \l_tmpa_dim {
+ +\box_ht:N \g_ptxcd_title_box
+ +.5\c_ptxcd_logoheight_dim
+ +\box_dp:N \g_ptxcd_title_box
+ +\g_ptxcd_title_fill_skip
+ }
+ \ModifyLayer[
+ addvoffset=\l_tmpa_dim,
+ addheight= -\l_tmpa_dim
+ ]{title.TUDa.image}
+ \DeclareNewLayer[clone=TUDa.flyer.footline,
+ mode=picture,
+ align=bl,
+ height=\box_ht:N \g_ptxcd_sponsor_box + \box_dp:N \g_ptxcd_sponsor_box,
+ addvoffset=-\dp\strutbox,
+ contents=\raisebox{\depth}{\box_use:N \g_ptxcd_sponsor_box}
+ ]
+ {title.TUDa.sponsor}
+ \exp_args:Nx \tl_if_eq:nnT {\g_ptxcd_sponsor_pos_tl} {title} {
+ \AddLayersToPageStyle{title.TUDa}{title.TUDa.sponsor}
+ \ModifyLayer[
+ addheight=-\box_ht:N \g_ptxcd_sponsor_box -\box_dp:N \g_ptxcd_sponsor_box-\dp\strutbox
+ ]{title.TUDa.image}
+ }
+ \ModifyLayer[
+ addvoffset={-\dim_eval:n {\headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box }},
+ height={
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\box_dp:N \g_ptxcd_title_box}
+ +\box_ht:N \g_ptxcd_title_box+\g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim+
+ \headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box
+ }
+ ]{title.TUDa.background}
+ \AddLayersToPageStyle{title.TUDa}{title.TUDa.background}
+ \thispagestyle{title.TUDa}
+ \nointerlineskip
+ \ptxcd_Setup_Title_box:
+ \par
+ \vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
+ \setlength{\fboxsep}{\z@}
+}
+% \end{macrocode}
+% \begin{macrocode}
+\pagestyle{TUDa.flyer}
+\RequirePackage{tudafonts}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\familydefault}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\familydefault}
+% \begin{macrocode}
+\renewcommand*{\familydefault}{\sfdefault}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% Titlepage font setup
+% compatibility after disposition was removed from scrextend
+% \begin{macrocode}
+\expandafter\ifx\csname scr@fnt@disposition\endcsname\relax
+ \newkomafont{disposition}
+\fi
+\setkomafont{disposition}{\bfseries}
+\setkomafont{title}{\Huge}
+\setkomafont{subtitle}{}
+\setkomafont{date}{}
+\setkomafont{author}{}
+\newkomafont{institution}{}
+% \end{macrocode}
+% Adjust section font setup to be komafont compatible
+% \begin{macrocode}
+\newkomafont{section}{}
+\newkomafont{subsection}{}
+\newkomafont{subsubsection}{}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\section}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macrocode}
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {-3.5ex \@plus -.75ex}%
+ {1ex}%
+ {\usekomafont{disposition}\usekomafont{section}\sectfont}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-2.5ex plus -.5ex}%
+ {1\p@}%
+ {\usekomafont{disposition}\usekomafont{subsection}\sectfont}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-2.5ex plus -.5ex}%
+ {-1em}%
+ {\usekomafont{disposition}\usekomafont{subsubsection}\sectfont}}
+\clist_map_inline:nn {section, subsection, subsubsection} {
+ \cs_set_eq:cc {ptxcd_save_#1} {#1}
+ \exp_args:Nc \RenewDocumentCommand{#1}{sO{##3}m}{
+ \IfBooleanTF{##1}{
+ \use:c {ptxcd_save_#1}*{\sectionlinesformat{##3}}
+ }{
+ \use:c {ptxcd_save_#1}[##2]{\sectionlinesformat{##3}}
+ }
+ }
+}
+% \end{macrocode}
+% \end{implementation}
+% \begin{macrocode}
+\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\subtitle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\subtitle}
+% \begin{macrocode}
+\def\subtitle#1{\def\@subtitle{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\subtitle{}
+\seq_new:N \g_ptxcd_sponsors_seq
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\AddSponsor}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\AddSponsor}
+% \begin{macrocode}
+\def\AddSponsor{\seq_gput_right:Nn \g_ptxcd_sponsors_seq}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\sponsors}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\sponsors}
+% \begin{macrocode}
+\def\sponsors#1{\def\@sponsors{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\sponsors{}
+\box_new:N \g_ptxcd_sponsor_box
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footergraphics}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footergraphics}
+% \begin{macrocode}
+\newcommand*{\footergraphics}[1]{
+ \begingroup
+ \let\height\g_ptxcd_footheight_dim
+ \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_titleimage_code_tl
+\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\titleimage}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\titleimage}
+% \begin{macrocode}
+\newcommand{\titleimage}[1]{\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\author{}%to remove warning if no author given
+\box_new:N \g_ptxcd_title_box
+\skip_new:N \g_ptxcd_title_fill_skip
+\seq_new:N \g_ptxcd_title_info_seq
+\box_new:N \g_ptxcd_title_info_box
+\cs_new:Nn \ptxcd_make_title_info_box:n {
+ \setlength{\fboxsep}{1.5mm}%
+ \colorbox{InfoBox}{
+ \makebox[\dim_eval:n {\_@@_logowidth:-\fboxsep}][r]{
+ \parbox{2\c_ptxcd_logoheight_dim}{
+ \usekomafont{institution}
+ \raggedright%
+ #1
+ }}}
+}
+\cs_new:Nn \ptxcd_make_title_logo_box:n {
+ \setlength{\fboxsep}{\z@}
+ \parbox{\_@@_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\_@@_logowidth: + \_@@_logosep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}}
+ }
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\addTitleBox}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\addTitleBox}
+% \begin{macrocode}
+\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\addTitleBoxLogo}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\addTitleBoxLogo}
+% \begin{macrocode}
+\NewDocumentCommand{\addTitleBoxLogo}{sm}{
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\addTitleBoxLogo*{\makebox[\linewidth][l]{\_@@_insert_logo:}}
+\date{}
+\let\insertSponsors\relax
+\str_case:Vn \g_ptxcd_sponsor_pos_tl {
+ {lastfoot}{
+ \AtEndDocument{
+ \par\vspace*{\fill}
+ \leavevmode\raisebox{\dimexpr\depth-\baselineskip}[0pt][0pt]{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ }
+ }
+ {manual} {
+ \renewcommand*{\insertSponsors}{\par\vfill\leavevmode\box_use:N \g_ptxcd_sponsor_box\par\nobreak\nointerlineskip\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
+}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+\ptxcd_makeheadrule[color=identbarcolor]{ptxcd_headrule}
+\ptxcd_makefootrule{ptxcd_footrule}
+\endinput
+% \end{macrocode}
+
+%
+% \iffalse
+%</body>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudaletter.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudaletter.dtx
new file mode 100644
index 00000000000..0e556c92dd9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudaletter.dtx
@@ -0,0 +1,536 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudaletter.dtx}[2025-01-26 v4.00 Letters for TUDa-CI, Corporate Design of TU Darmstadt]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaLetter.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*class&initialization>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplClass{tudaletter}{2025-01-26}{4.00}{Letters for TUDa-CI, Corporate Design of TU Darmstadt}
+%</class&initialization>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudaletter.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudaletter.dtx}
+% \title{The \textsf{tudaletter} package}
+% \author{<+author+>\thanks{Email: \href{mailto:<+email+>}{<+email+>}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+%
+% \DescribeMacro{\fileversion}
+%
+%
+% \DescribeMacro{\filedate}
+%
+%
+% \DescribeMacro{\opening}
+%
+%
+% \DescribeMacro{\letterpagestyle}
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*class>
+%<*initialization>
+% \fi
+%
+%
+% \begin{macrocode}
+\str_const:Nn \c_@@_base_str {letter}
+\str_new:N \g_ptxcd_department_str
+\bool_new:N \g_@@_adjust_textwidth_bool
+\keys_define:nn {ptxcd/letter} {
+ logo .bool_gset:N = \g_@@_letter_logo_bool,
+ logo .default:n = true,
+ logo .initial:n = true,
+ premium .bool_gset:N = \g_@@_letter_premium_bool,
+ premium .default:n = true,
+ firstpagenumber .bool_gset:N = \g_@@_firstpagenumber_bool,
+ firstpagenumber .initial:n = true,
+ raggedright .bool_gset:N = \g_@@_letter_raggedright_bool,
+ headrule .bool_gset:N = \g_@@_letter_headrule_bool,
+ headrule .initial:n = true,
+ headrule .default:n = true,
+ textwidth .choice:,
+ textwidth / wide .code:n = \bool_gset_true:N \g_@@_adjust_textwidth_bool,
+ textwidth / narrow .code:n = \bool_gset_false:N \g_@@_adjust_textwidth_bool,
+ textwidth .initial:n = wide,
+%</initialization>
+%<gobble>}
+% \end{macrocode}
+% \iffalse
+%<*packages>
+% \fi
+% \begin{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\@fontsizefilebase}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\@fontsizefilebase}
+% \begin{macrocode}
+\newcommand*{\@fontsizefilebase}{tudalettersize}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\PassOptionsToClass{fontsize=10pt,parskip=full-}{scrletter}
+\PassOptionsToPackage{refline=nodate,addrfield=topaligned,firstfoot=false,pagenumber=botright}{scrletter}
+\LoadClass{scrletter}
+% \end{macrocode}
+% Load the TUDa-colorscheme
+% \begin{macrocode}
+\RequirePackage{tudacolors}
+\RequirePackage{tudafonts}
+\RequirePackage{graphicx}
+\RequirePackage{afterpage}
+\RequirePackage{ragged2e}
+\bool_if:NTF \g_@@_letter_premium_bool {
+ \cs_new:Nn \ptxcd_premiumcolor: {accentcolor}
+ \cs_new:Nn \ptxcd_use_premiumcolor: {\color{accentcolor}}
+ \cs_set:Nn \ptxcd_use_premiumcolor_text: {\color{textaccentcolor}}
+}{
+ \cs_new:Nn \ptxcd_premiumcolor: {black}
+ \let\ptxcd_use_premiumcolor:\relax
+ \let\ptxcd_use_premiumcolor_text:\relax
+}
+% \end{macrocode}
+% %%%%Briefbogen
+% % Spacing:
+% \begin{macrocode}
+\dim_const:Nn \c_ptxcd_HeadMargin_dim {12.5mm}
+\dim_const:Nn \c_ptxcd_LeftMargin_dim {24.0mm}
+\dim_const:Nn \c_@@_firstpage_extraindent_dim {-\paperwidth+120mm +\c_ptxcd_LeftMargin_dim +\c_ptxcd_HeadMargin_dim}
+\bool_if:NTF \g_@@_adjust_textwidth_bool
+ {
+ \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim}
+ }{
+ \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim-\c_@@_firstpage_extraindent_dim}
+ }
+\dim_const:Nn \c_ptxcd_BottomMargin_dim {20mm}
+\dim_const:Nn \c_ptxcd_Linewidth_dim {\paperwidth-\c_ptxcd_LeftMargin_dim-\c_ptxcd_RightMargin_dim}
+\RequirePackage{geometry}
+\geometry{
+ twoside=false,
+ left=\c_ptxcd_LeftMargin_dim,
+ right=\c_ptxcd_RightMargin_dim,
+ bottom=\c_ptxcd_BottomMargin_dim,
+ footskip=7mm,
+}
+\dim_const:Nn \c_ptxcd_textwidth_dim {\textwidth}
+\bool_if:NTF \g_@@_letter_logo_bool {
+ \geometry{top=64mm}
+} {
+ \geometry{top=30mm}
+}
+% \end{macrocode}
+% \iffalse
+%</packages>
+%<*pdfx>
+% \fi
+% \changes{v4.00}{2025-01-26}{Unify pdfx/pdfa mechanism structure over all document types}
+% \begin{macrocode}
+\if_bool:N \g_ptxcd_pdfx_bool
+ \PassOptionsToPackage{a-2b}{pdfx}
+% \end{macrocode}
+% Workaround posted by David Carlisle on tex.stackexchange
+% Thanks to Ulrike Fischer for mentioning it in #472
+% \begin{macrocode}
+ \let \_@@_grouplevel_before_pdfx: \currentgrouplevel
+ \chardef\currentgrouplevel0
+ \ExplSyntaxOff
+ \RequirePackage{pdfx}
+ \ExplSyntaxOn
+ \let \currentgrouplevel \_@@_grouplevel_before_pdfx:
+ \cs_undefine:N \_@@_grouplevel_before_pdfx:
+% \end{macrocode}
+% end of the workaround
+% \begin{macrocode}
+\else:
+ \PassOptionsToPackage{hidelinks, unicode}{hyperref}
+ \RequirePackage{hyperref}
+\fi:
+% \end{macrocode}
+% \iffalse
+%</pdfx>
+%<*body>
+% \fi
+% \changes{v4.00}{2025-01-26}{Unify pdfx/pdfa mechanism structure over all document types}
+% \begin{macrocode}
+\RequirePackage[paper=a4]{tudarules}% might load pgfcore, so it has to be loaded after pdfx
+\setplength{firstheadhpos}{\c_ptxcd_HeadMargin_dim}
+\setplength{firstheadvpos}{\c_ptxcd_HeadMargin_dim}
+\setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_ptxcd_HeadMargin_dim}}
+\setplength{firstfootvpos}{\dim_eval:n {\paperheight -17mm}}
+\setplength{firstfoothpos}{\useplength{firstheadhpos}}
+\setplength{firstfootwidth}{\useplength{firstheadwidth}}
+\setplength{toaddrhpos}{\c_ptxcd_LeftMargin_dim}
+\setplength{toaddrvpos}{50mm}
+\setplength{backaddrheight}{4mm}
+\setplength{toaddrindent}{0mm}
+\setplength{refhpos}{\c_ptxcd_LeftMargin_dim}
+\setplength{refvpos}{106mm}
+\setplength{subjectaftervskip}{2\baselineskip}
+\setplength{lochpos}{\c_ptxcd_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_ptxcd_HeadMargin_dim\relax}
+\setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_ptxcd_BottomMargin_dim\relax}
+\bool_if:NTF \g_@@_letter_headrule_bool {
+ \ptxcd_makeheadrule[width=\useplength{firstheadwidth},color=identbarcolor]{ptxcd_LetterheadRule}
+} {
+ \box_new:N \ptxcd_LetterheadRule_box
+ \def\ptxcd_LetterheadRule{}
+}
+\ptxcd_makefootrule[width=\useplength{firstheadwidth}]{ptxcd_LetterfootRule}
+\box_new:N \g_TUDaLetter_firsthead_box
+\hbox_gset:Nn \g_TUDaLetter_firsthead_box {
+ \parbox[t]{\useplength{firstheadwidth}}{
+ \raggedleft
+ \smash{\ptxcd_LetterheadRule}
+ \par
+ \vspace{.5\c_ptxcd_logoheight_dim}
+ \makebox[\_@@_logowidth:][l]{\_@@_insert_logo:}
+ }
+}
+\box_gset_dp:Nn \g_TUDaLetter_firsthead_box {\c_zero_dim}
+\setkomavar{firsthead}{
+ \box_use:N \g_TUDaLetter_firsthead_box
+}
+\KOMAoptions{backaddress=plain}
+\setkomavar{backaddressseparator}{\,$\vert$\,}
+% \end{macrocode}
+% DOKU neue komavars
+% \begin{macrocode}
+\newkomavar{frominstitution}
+\newkomavar{frominstitution-en}
+\newkomafont{ptxcd_location}{\accentfont\normalcolor}
+\setkomafont{fromname}{\small}
+\newkomafont{ptxcd_frominst}{\small\ptxcd_use_premiumcolor_text: }
+\setkomafont{fromaddress}{\footnotesize}
+\setkomafont{refname}{}
+\setkomafont{refvalue}{}
+\setkomafont{pageheadfoot}{\footnotesize}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\TUD@locfield}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\TUD@locfield}
+% \begin{macrocode}
+\newcommand{\TUD@locfield}{%
+ \usekomafont{ptxcd_location}\usekomafont{fromaddress}
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}
+ \par@updaterelative
+ \begingroup
+ \int_compare:nT {0 < \@pageat <3} {
+ \ptxcd_letterpagemark:\\[\baselineskip]
+ }
+ \usekomafont{ptxcd_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_@@_reffields_seq {}
+ \Ifkomavarempty{frombank}{}{\vfill%
+ \Ifkomavarempty*{frombank}{Bankverbindung}{\usekomavar*{frombank}}\\\usekomavar{frombank}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\setkomavar{location}{\parbox[t][.45\paperheight][t]{\useplength{locwidth}}{\TUD@locfield}}
+\tl_const:Nn \ptxcd_reffield_separator_tl {\\}
+\cs_new:Nn \ptxcd_set_reffield:n {
+ \Ifkomavarempty{#1}{}{%
+ \if@tempswa\\[\baselineskip]\fi
+ \parbox[t]{\linewidth}{\noindent\raggedright
+ \usekomafont{refname}
+ \usekomavar*{#1}\ptxcd_reffield_separator_tl
+ \usekomafont{refvalue}
+ \usekomavar{#1}
+ }%
+ \@tempswatrue
+ }%
+}
+\seq_new:N \g_@@_reffields_seq
+\newlength{\TUD@page@free}
+\newcounter{TUD@page@free@lines}
+\dim_new:N \g_@@_page_free_dim
+\int_new:N \g_@@_free_lines_int
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\opening}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\opening}
+% \begin{macrocode}
+\renewcommand{\opening}[1]{%
+ \widowpenalty=100
+ \@PapersizeWarning
+ \seq_gclear:N \g_@@_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_@@_reffields_seq {%
+ \ptxcd_set_reffield:n {##1}
+ }%
+ }%
+ }
+ \let\do@set@reffield\@set@reffield
+ \@set@reffields
+ \removereffields
+ \@gen@firsthead
+ \@mkboth{\scr@fromname@var}{\scr@subject@var}%
+ \thispagestyle{letter.first}\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
+ \bool_if:NT \g_@@_adjust_textwidth_bool {
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse\clubpenalty\@M
+ \if@afterindent
+ \else{\setbox\z@\lastbox}
+ \fi
+ \else
+ \clubpenalty\@clubpenalty
+ \fi
+ \ifnum\thepage=1%
+ \dim_gset:Nn \g_@@_page_free_dim {-\pagegoal + \pagetotal}
+ \dim_compare:nTF {-\g_@@_page_free_dim>2\baselineskip}
+ {
+ \int_gset:Nn \g_@@_free_lines_int {\fp_eval:n {ceil(\g_@@_page_free_dim/\baselineskip)}}
+ \int_compare:nT {\g_@@_free_lines_int<0} {
+ \hangafter=\g_@@_free_lines_int\hangindent=\c_@@_firstpage_extraindent_dim%
+ }
+ } {
+ \dim_compare:nT {-\TUD@page@free>\baselineskip} {
+ \hangafter=-2\hangindent=\c_@@_firstpage_extraindent_dim%
+ }
+ }
+ \fi%
+ }%
+ \global\setlength{\linewidth}{\dim_eval:n {\c_ptxcd_Linewidth_dim + \c_@@_firstpage_extraindent_dim}}
+ \afterpage{
+ \global\setlength{\linewidth}{\c_ptxcd_Linewidth_dim}
+ \widowpenalty=10000
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \raggedbottom%
+}
+\setkomafont{backaddress}{\accentfont\tiny\ptxcd_use_premiumcolor_text:\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}}
+\raggedbottom
+\int_new:N \l_ptxcd_letter_lastpage_int
+\cs_new:Nn \ptxcd_letterpagemark: {
+ %get lastpage for this letter if not already done
+ \int_compare:nNnTF {\value{page}} = {1} {
+ \bool_if:NTF \g_@@_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_ptxcd_letter\thisletter _lastpage_int} {
+ \cs_if_exist:cTF {r@\thisletter.lastpage} {
+ \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {
+ \exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}
+ }
+ } {
+ %warning -> rerun latex
+ \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {0}
+ }
+ }
+ \usekomafont{pagenumber}\pagename\nobreakspace\thepage
+ \int_compare:nT {
+ \int_use:c {c_ptxcd_letter\thisletter _lastpage_int}
+ > 1
+ } {/\int_to_arabic:n{\int_use:c {c_ptxcd_letter\thisletter _lastpage_int}}}
+ }
+}
+\setkomavar{firstfoot}{\usekomavar{nextfoot}}
+\setkomavar{nextfoot}{%
+ \ifnum\@pageat>2
+ \parbox[c]{\layerwidth}{%
+ \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
+ \strut\pagemark%
+ }%
+ \fi
+}
+\cs_set_eq:NN \letterpagemark \ptxcd_letterpagemark:
+\bool_if:NT \g_@@_letter_headrule_bool {
+ \bool_if:NTF \g_@@_letter_logo_bool {
+ \setkomavar{nexthead}{\raisebox{\topskip}{\box_use:N \g_TUDaLetter_firsthead_box}}
+ }{
+ \setkomavar{nexthead}{\raisebox{\depth}{\ptxcd_LetterheadRule}}
+ }
+}
+\newpairofpagestyles[letter]{TUDaLetter}{
+ \exp_args:Nx \KOMAoptions{
+ footwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
+ headwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
+ footsepline=.5\c_ptxcd_smallrule_dim,plainfootsepline
+ }
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.even}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.odd}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.oneside}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.even}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.odd}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.oneside}
+ \lehead{\usekomavar{nexthead}}%
+ \lohead{\usekomavar{nexthead}}%
+ \lefoot{\usekomavar{nextfoot}}%
+ \lofoot{\usekomavar{nextfoot}}%
+}
+\DeclarePageStyleByLayers{TUDaLetter.first}{TUDaLetter.foot.even,TUDaLetter.foot.odd,TUDaLetter.foot.oneside,TUDaLetter.foot.above.line}
+\pagestyle{TUDaLetter}
+\DeclarePageStyleAlias{letter.first}{TUDaLetter.first}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\letterpagestyle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\letterpagestyle}
+% \begin{macrocode}
+\def\letterpagestyle{TUDaLetter}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% Widows and clubs
+% \begin{macrocode}
+\widowpenalty=10000
+\clubpenalty=10000
+% \end{macrocode}
+% default values
+% \begin{macrocode}
+\setkomavar*{fromemail}{}
+\setkomavar*{fromurl}{}
+\setkomavar{backaddress}{Technische~ Universität~ Darmstadt\\Karolinenplatz~ 5\\64289~ Darmstadt}
+% \end{macrocode}
+% renewcaptions
+% \begin{macrocode}
+\defcaptionname{german,ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\yourmailname{Ihre~ Nachricht}%
+\defcaptionname{german, ngerman,austrian,naustrian,%
+ swissgerman,nswissgerman}\phonename{Tel.}%
+% \end{macrocode}
+% signature raggedright
+% \begin{macrocode}
+\let\raggedsignature\raggedright
+\newkomavar{fromfunction}
+\bool_if:NT \g_@@_letter_raggedright_bool {\AtBeginLetter{\RaggedRight}}
+% \end{macrocode}
+% backwards compatibility for KOMA-Script
+% \begin{macrocode}
+\cs_if_exist:NF \Ifkomavarempty{
+ \let\Ifkomavarempty\ifkomavarempty
+}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+% \end{macrocode}
+
+%
+% \iffalse
+%</body>
+%</class>
+% \fi
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudaposter.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudaposter.dtx
new file mode 100644
index 00000000000..13539c77fbf
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudaposter.dtx
@@ -0,0 +1,757 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudaposter.dtx}[2025-01-26 v4.00 Announcement poster Layouts for the Corporate Design of TU Darmstadt]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaPoster.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*class&initialization>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudaposter}{2025-01-26}{4.00}{Announcement poster Layouts for the Corporate Design of TU Darmstadt}
+%</class&initialization>
+%
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudaposter.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudaposter.dtx}
+% \title{The \textsf{tudaposter} package}
+% \author{<+author+>\thanks{Email: \href{mailto:<+email+>}{<+email+>}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+%
+% \DescribeMacro{\familydefault}
+%
+%
+% \DescribeMacro{\titleinfo}
+%
+%
+% \DescribeMacro{\maketitle}
+%
+%
+% \DescribeMacro{\titlegraphic}
+%
+%
+% \DescribeMacro{\addTitleBox}
+%
+%
+% \DescribeMacro{\addTitleBoxLogo}
+%
+%
+% \DescribeMacro{\footer}
+%
+%
+% \DescribeMacro{\footerqrcode}
+%
+%
+% \DescribeMacro{\footerqrcodeimg}
+%
+%
+% \DescribeMacro{\infofont}
+%
+%
+% \DescribeMacro{\SetMarginpar}
+%
+%
+% \DescribeMacro{\contentwidth}
+%
+%
+% \DescribeMacro{\contentheight}
+%
+%
+% \DescribeMacro{\author}
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*class&initialization>
+% \fi
+% \begin{macrocode}
+\bool_new:N \g_@@_logo_head_bool
+\dim_new:N \g_ptxcd_margin_dim
+\int_new:N \g_ptxcd_paper_int
+\int_new:N \g_ptxcd_postertype_int
+\str_new:N \g_ptxcd_department_str
+\str_const:Nn \c_@@_base_str {poster}
+\keys_define:nn {ptxcd/poster} {
+ footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = false,
+ footheight .dim_gset:N = \g_ptxcd_footheight_dim,
+ fontsize .choice:,
+ fontsize / auto .code:n = \tl_gclear:N \g_ptxcd_fontsize_tl,
+ fontsize / unknown .code:n = {\@defaultunits\@tempdima#1pt\relax\@nnil \tl_gset:Nx \g_ptxcd_fontsize_tl {\the\@tempdima}},
+ fontsize .initial:n = auto,
+ type .choice:,
+ type / default .code:n = {
+ \int_gset:Nn \g_ptxcd_postertype_int {1}
+ },
+ type / announcement .code:n = {
+ \int_gset:Nn \g_ptxcd_postertype_int {2}
+ \keys_set:nn {ptxcd/poster}{
+ marginpar=true,
+ indenttext=false,%allow overwrite - check default
+ logo=head,
+ title=small,
+ colorsubtitle=true
+ }
+ },
+ type .initial:n = default,
+ indenttext .bool_gset:N = \g_ptxcd_indenttext_bool,
+ indenttext .initial:n = false,
+ indenttext .default:n = true,
+ colorsubtitle .bool_gset:N = \g_ptxcd_colorsubtitle_bool,
+ colorsubtitle .default:n = true,
+ colorsubtitle .initial:n = false,
+%</class&initialization>
+%<gobble>}
+%<*class&body>
+\ProcessKeyOptions[ptxcd/poster]
+\ExplSyntaxOff
+\PassOptionsToPackage{DIV=6,typeareawarninfolimit=-1}{typearea}
+\LoadClass[parskip=half-]{scrartcl}
+\RequirePackage{scrlayer}
+\RequirePackage{scrlayer-notecolumn}
+\ExplSyntaxOn
+\bool_if:NTF \g_ptxcd_smalltitle_bool {
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_base_sizes:
+}{
+ \int_gdecr:N \g_ptxcd_paper_int
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \ptxcd_setup_base_sizes:
+}
+\setkomafont{title}{
+ \bool_if:NT \g_ptxcd_colorback_bool
+ {\color{textonaccentcolor}}\expandafter\fontsize\ptxcd_title_fontsize:\selectfont}
+\setkomafont{subtitle}{\expandafter\fontsize\ptxcd_titleinfo_fontsize:\selectfont}
+\newkomafont{titleinfo}{\usekomafont{subtitle}}
+\clist_map_inline:nn {author, date, publishers}
+{\setkomafont{#1}{\usekomafont{subtitle}}}
+\ExplSyntaxOff
+\KOMAoptions{fontsize=\csname g_ptxcd_fontsize_tl\endcsname}
+\ExplSyntaxOn
+\RequirePackage{tudafonts}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\familydefault}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\familydefault}
+% \begin{macrocode}
+\renewcommand*{\familydefault}{\sfdefault}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\exp_args:Nx \PassOptionsToPackage{mode=tikz}{tudarules}
+\RequirePackage{tudarules}
+\RequirePackage{tudacolors}
+\RequirePackage{qrcode}
+\RequirePackage{tikz}
+\newlength{\contentwidth}
+\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_ptxcd_margin_dim}
+\ptxcd_makeheadrule[width=\contentwidth, color=identbarcolor]{ptxcd_headrule}
+% \end{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%
+% \begin{macrocode}
+\int_case:nn {\g_ptxcd_postertype_int}
+{
+ {1} {}
+ {2} {
+ \addtokomafont{subtitle}{\bfseries}
+ }
+}
+% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% marginpar option
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_marginpar_dim
+% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_titleindent_dim
+\begingroup
+\expandafter\fontsize\ptxcd_title_fontsize:\selectfont
+\dim_gset:Nn \g_ptxcd_titleindent_dim {.5ex}
+\endgroup
+\dim_new:N \g_ptxcd_columnSep_dim
+\dim_gset:Nn \g_ptxcd_columnSep_dim {1em}
+\RequirePackage{geometry}
+\geometry{
+ margin= \g_ptxcd_margin_dim,
+ hmargin = \dim_eval:n {
+ \g_ptxcd_margin_dim +
+ \bool_if:NTF \g_ptxcd_indenttext_bool
+ {\g_ptxcd_titleindent_dim} {0pt}
+ },
+ top=\dim_eval:n {
+ \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
+ + .5\c_ptxcd_logoheight_dim
+ +\g_ptxcd_margin_dim}
+}
+\bool_if:NTF \g_ptxcd_marginpar_bool {
+ \dim_gset:Nn \g_ptxcd_marginpar_dim {\_@@_logowidth:}
+ \geometry{
+ includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim,
+ right = \dim_eval:n {
+ \g_ptxcd_margin_dim +
+ \bool_if:nTF {\g_ptxcd_indenttext_bool && !\g_ptxcd_marginpar_bool}
+ {\g_ptxcd_titleindent_dim} {0pt}
+ },
+ }
+ \KOMAoptions{mpinclude}
+}{
+ \dim_gzero:N \g_ptxcd_marginpar_dim
+ \geometry{
+ nomarginpar,
+ right = \dim_eval:n {
+ \bool_if:NT \g_ptxcd_indenttext_bool
+ {\g_ptxcd_titleindent_dim}
+ + \g_ptxcd_margin_dim
+ },
+ }
+ \KOMAoptions{mpinclude=false}
+}
+\bool_if:NT \g_ptxcd_poster_foot_bool {
+ \dim_compare:nT {\g_ptxcd_footheight_dim = 0pt} {
+ \dim_set:Nn \g_ptxcd_footheight_dim
+ {1.5\baselineskip}
+ }
+ \geometry{bottom=\dim_eval:n {\g_ptxcd_footheight_dim+\footskip+\g_ptxcd_margin_dim}}
+}
+% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_qrcode_dim
+\dim_gset:Nn \g_ptxcd_qrcode_dim {.7\c_ptxcd_logoheight_dim}
+\DeclareNewLayer[
+ background,
+ align=br,
+ width=\g_ptxcd_qrcode_dim,
+ height=\g_ptxcd_qrcode_dim,
+ hoffset=\paperwidth-\g_ptxcd_margin_dim,
+ voffset=\paperheight-\g_ptxcd_margin_dim,
+ mode=picture,
+ contents={%
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
+ \let\width\g_ptxcd_qrcode_dim
+ \let\height\g_ptxcd_qrcode_dim
+ \g_ptxcd_poster_qrcode_tl
+ }
+ }
+]{TUDa.poster.qrcode}
+\DeclareNewLayer[
+ clone=TUDa.poster.qrcode,
+ align=bl,
+ hoffset=\g_ptxcd_margin_dim,
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ height=\g_ptxcd_footheight_dim,
+ contents={
+ \bool_if:NTF \g_ptxcd_poster_foot_bool {
+ \putUL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ \put(0,0) {\parbox[b][\g_ptxcd_footheight_dim][c]{\layerwidth}{\strut\g_ptxcd_poster_foot_tl\strut}}
+ \putLL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \smash{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ }
+ }
+]{TUDa.poster.footer}
+\DeclareNewLayer[
+ background,mode=picture,
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ hoffset=\g_ptxcd_margin_dim,
+ voffset=\g_ptxcd_margin_dim+\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
+ contents=\bool_if:NT \g_ptxcd_colorback_bool {\color{accentcolor}\rule{\layerwidth}{\layerheight}},
+]{TUDa.poster.background}
+\DeclareNewLayer[
+ textarea,
+ foreground,
+ align=tr,
+ hoffset=\paperwidth-\g_ptxcd_margin_dim,
+ width=\_@@_logowidth:,
+ height=.5\textheight,
+ contents={\box_use:N \g_ptxcd_title_info_box}
+]{TUDa.poster.logo}
+\DeclareNewLayer[
+ clone=TUDa.poster.background,
+ align=tl,
+ voffset=\g_ptxcd_margin_dim,
+ height=\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
+ mode=picture,
+ contents={\box_use:N \ptxcd_headrule_box}
+]{TUDa.poster.rule}
+\DeclareNewLayer[
+ clone=notecolumn.marginpar,
+]{TUDa.poster.marginpar}
+\DeclareNewPageStyleByLayers{TUDa.poster.title}{TUDa.poster.rule,TUDa.poster.background,TUDa.poster.qrcode,TUDa.poster.footer}
+\DeclareNewPageStyleByLayers{TUDa.poster}{TUDa.poster.rule,TUDa.poster.qrcode,TUDa.poster.footer, TUDa.poster.marginpar}
+\pagestyle{TUDa.poster}
+\dim_new:N \g_ptxcd_titlegraphic_max_height_dim
+\dim_new:N \g_ptxcd_titleback_dim
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\titleinfo}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\titleinfo}
+% \begin{macrocode}
+\newcommand*{\titleinfo}[1]{\def\@titleinfo{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\titleinfo{}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\maketitle}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\maketitle}
+% \begin{macrocode}
+\renewcommand*{\maketitle}{
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \bool_if:NT \g_ptxcd_marginpar_bool
+ {\setlength{\linewidth}{\dim_eval:n {\textwidth+\g_ptxcd_marginpar_dim + \marginparsep}}}
+ \vbox_gset:Nn \g_ptxcd_title_box
+ {
+ \usesizeofkomafont{title}
+ \parbox[t]{\linewidth}{
+ \bool_if:NT \g_ptxcd_smalltitle_bool {\raisebox{
+ \dim_max:nn {0pt} {1.5\c_ptxcd_logoheight_dim - \height}
+ }}
+ {
+ \begin{minipage}[b]{\bool_if:NT \g_@@_logo_head_bool {.75}\linewidth}
+ \leavevmode\par\nointerlineskip
+ \bool_if:NF \g_ptxcd_indenttext_bool {\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \usekomafont{title}
+ \raggedright
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{disposition}\usekomafont{title}%
+ \@title\strut\par
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\nointerlineskip\leavevmode}{\end{addmargin}}
+ \end{minipage}
+ }
+ \par\nointerlineskip
+ \exp_args:Nf \tl_if_empty:nF {\@subtitle\@titleinfo\@subject\@author\@date\@publishers} {
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \par
+ \nointerlineskip
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \bool_if:NT \g_ptxcd_colorsubtitle_bool {\color{textonaccentcolor}}
+ \clist_map_inline:nn {subtitle, titleinfo, subject, author, date, publishers}
+ {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
+ \nointerlineskip
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \par\nointerlineskip
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
+ \tl_if_empty:NF \@thanks {
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \par\nointerlineskip
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \let\footnotetext\ptxcd_title@footnote
+ \@thanks
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
+ \global\let\@thanks\@empty
+ \par
+ }
+ }
+ \nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
+ \endgroup
+ \ptxcd_Setup_Title_box:
+ \dim_gset:Nn \g_ptxcd_titleback_dim {
+ \bool_if:NT \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+
+ \box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim
+ }
+ \ModifyLayer[
+ height=\g_ptxcd_titleback_dim
+ ]{TUDa.poster.background}
+ \bool_if:NF \g_@@_logo_head_bool {
+ \ModifyLayer[
+ addvoffset=
+ \bool_if:NF \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+\g_ptxcd_titleback_dim+\c_ptxcd_smallrule_dim
+ ]{TUDa.poster.logo}
+ }
+ \leavevmode\box_use:N \g_ptxcd_title_box\par
+ \dim_set:Nn \g_ptxcd_titlegraphic_max_height_dim {\textheight-\pagetotal}
+ \bool_if:NTF \g_@@_logo_head_bool {
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
+ {\msg_warning:nn{tudaposter} {infobox-too-high}}
+ } {
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_titlegraphic_box + \box_dp:N \g_ptxcd_titlegraphic_box}
+ {\msg_warning:nn{tudaposter} {infobox-too-high}}
+ }
+ \global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim}
+ \tl_if_empty:NF \@titlegraphic{
+ \vbox_gset:Nn \g_ptxcd_titlegraphic_box {\parbox[t]{\dim_eval:n {\paperwidth-2\g_ptxcd_margin_dim}}{\@titlegraphic}}
+ \par\nointerlineskip
+ \box_use:N \g_ptxcd_titlegraphic_box
+ }
+ \DeclareLayer[
+ clone=TUDa.poster.marginpar,
+ height=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {-\box_ht:N \g_ptxcd_titlegraphic_box-\box_dp:N \g_ptxcd_titlegraphic_box}
+ +\textheight-\box_ht:N \g_ptxcd_title_box-\box_dp:N \g_ptxcd_title_box-.5\c_ptxcd_logoheight_dim,
+ addvoffset=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {+\box_ht:N\g_ptxcd_titlegraphic_box+\box_dp:N \g_ptxcd_titlegraphic_box}
+ +\box_ht:N \g_ptxcd_title_box+\box_dp:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim,
+ ]{TUDa.poster.marginpar.title}
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
+ \ModifyLayer[addwidth=-\g_ptxcd_qrcode_dim-\c_ptxcd_rulesep_dim]{TUDa.poster.footer}
+ }
+ \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.marginpar.title}
+ \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.logo}
+ \thispagestyle{TUDa.poster.title}
+ \global\def\contentwidth{\linewidth}
+ \par
+ \let\@title\@empty
+ \let\@subtitle\@empty
+ \let\@titleinfo\@empty
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+% \begin{macrocode}
+\def\@titlegraphic{}
+\newcommand{\titlegraphic}[1]{
+ \def\@titlegraphic{#1}
+}
+
+\box_new:N \g_ptxcd_titlegraphic_box
+\seq_new:N \g_ptxcd_title_info_seq
+\seq_gput_right:Nn \g_ptxcd_title_info_seq {\rlap{\_@@_insert_logo:}}
+\box_new:N \g_ptxcd_title_info_box
+\box_new:N \g_ptxcd_title_box
+\cs_new:Nn \ptxcd_make_title_info_box:n {
+ \usekomafont{titleinfo}
+ \setlength{\fboxsep}{.2\baselineskip}
+ \colorbox{InfoBox}{\hspace*{\dimexpr.2\c_ptxcd_logoheight_dim-\fboxsep}%
+ \parbox{2\c_ptxcd_logoheight_dim}{
+ \raggedright
+ #1
+ }}
+}
+\cs_new:Nn \ptxcd_make_title_logo_box:n {
+ \setlength{\fboxsep}{\z@}%
+ \parbox{\_@@_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\_ptxcd_logowidth: + \_ptxcd_logowsep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{\_@@_logosep:}}
+ }
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\addTitleBox}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\addTitleBox}
+% \begin{macrocode}
+\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\addTitleBoxLogo}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\addTitleBoxLogo}
+% \begin{macrocode}
+\NewDocumentCommand{\addTitleBoxLogo}{sm}{
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\cs_new:Nn \ptxcd_Setup_Title_box: {
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {\parbox{\_@@_logowidth:}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\skip_vertical:n
+ {
+ \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
+ }
+ }
+ }}
+}
+\tl_new:N \g_ptxcd_poster_foot_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footer}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footer}
+% \begin{macrocode}
+\newcommand{\footer}[1]{
+ \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_poster_qrcode_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footerqrcode}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footerqrcode}
+% \begin{macrocode}
+\newcommand*{\footerqrcode}[1]{
+ \tl_gset:Nn \g_ptxcd_poster_qrcode_tl
+ {\raisebox{\depth}{\qrcode[height={\g_ptxcd_qrcode_dim}]{#1}}}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\footerqrcodeimg}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footerqrcodeimg}
+% \begin{macrocode}
+\newcommand*{\footerqrcodeimg}[1]{\tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\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.
+}
+\keys_define:nn {ptxcd/poster/marginparopts}{
+ valign .tl_set:N = \l_ptxcd_marginpar_valign_tl,
+ valign .initial:n = t,
+ overlap .bool_set:N = \l_ptxcd_marginpar_overlap_bool,
+ overlap .initial:n = false,
+ overlap .default:n = true
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\infofont}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\infofont}
+% \begin{macrocode}
+\newcommand*{\infofont}{\accentfont\normalcolor\footnotesize}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\DeclareTextFontCommand{\infotext}{\infofont}
+\int_new:N \g_ptxcd_marginpar_int
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\SetMarginpar}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\SetMarginpar}
+% \begin{macrocode}
+\NewDocumentCommand{\SetMarginpar}{o+m}{
+ \bool_if:NF \g_ptxcd_marginpar_bool {\msg_warning:nn {ptxcd/Poster} {marginpar-disabled}}
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/poster/marginparopts} {#1}}
+ \ModifyLayer[addvoffset={-\ht\strutbox},contents={\parbox[t][\layerheight][\l_ptxcd_marginpar_valign_tl]{\layerwidth}{#2\strut}}]{TUDa.poster.marginpar}
+ \bool_set_true:N \l_tmpa_bool
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\msg_new:nnnn {ptxcd/Poster} {marginpar-disabled} {
+ You~are~adding~data~to~the~marginpar~box,~though~marginpar option is set to false.\\
+ I~will~add~it,~but~cannot~ensure~the~position.
+} {
+ I'd~suggest~to~switch~the~marginpar~option~to~true.
+ See~the~TUDa-CI~documentation~for~further~information.
+}
+% \end{macrocode}
+
+\global\def\contentwidth{\linewidth}
+\global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim}
+% \end{macrocode}
+%
+%author setup
+%
+% \begin{macrocode}
+\seq_new:N \g_ptxcd_author_seq
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\author}
+% \begin{macrocode}
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\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 \ptxcd_define_captionFallback:Nn {
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
+}
+\cs_new:Nn \ptxcd_declare_caption:Nnnn {
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
+}
+\cs_new:Nn \ptxcd_declare_caption:Nnn {
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\@author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\@author}
+% \begin{macrocode}
+\renewcommand*{\@author}{
+ \begingroup
+ \hyphenpenalty=100000
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\ptxcd_declare_caption:Nnn \authorandname {und} {and}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_title@footnote}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_title@footnote}
+% \begin{macrocode}
+\newcommand*{\ptxcd_title@footnote}[2][1]{
+ \textsuperscript{#1}#2
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+\endinput
+% \end{macrocode}
+
+%
+% \iffalse
+%</class|body>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudarules.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudarules.dtx
new file mode 100644
index 00000000000..fcefffadd4f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudarules.dtx
@@ -0,0 +1,200 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudarules.dtx}
+ [2025-01-26 v4.00 Creation of colored bars for tuda-ci bundle]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<*package>
+%<@@=ptxcd>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudarules}{2025-01-26}{4.00}{Creation of colored bars for the tuda-ci bundle}
+%</package>
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudarules.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \GetFileInfo{tudarules.dtx}
+% \title{The \textsf{tudarules} package}
+% \author{Marei Peischl\thanks{Email: \href{mailto:tuda-ci@peitex.de}{tuda-ci@peitex.de}}}
+% \date{\fileversion~from \filedate}
+%
+% \maketitle
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\str_if_exist:NF \g_ptxcd_department_str {
+ \str_new:N \g_ptxcd_department_str
+ \str_gset:Nn \g_ptxcd_department_str {default}
+}
+\bool_new:N \g_ptxcd_simple_rules_bool
+\dim_new:N \g_ptxcd_titlerule_dim
+\seq_if_exist:NF \l_ptxcd_tmpa_seq {\seq_new:N \l_ptxcd_tmpa_seq}
+\tl_if_exist:NF \l_ptxcd_tmpa_tk {\tl_new:N \l_ptxcd_tmpa_tl}
+\cs_new:Nn \ptxcd_rules_set_values:n {
+ \seq_set_split:Nnn \l_ptxcd_tmpa_seq {|} {#1}
+ \int_step_inline:nnnn {1} {1} {4} {
+ \tl_set:Nn \l_ptxcd_tmpa_tl {c_ptxcd_
+ \clist_item:nn {largerule, rulesep, smallrule, logoheight} {##1}
+ _dim}
+ \dim_if_exist:cT {\l_ptxcd_tmpa_tl} {\cs_undefine:c {\l_ptxcd_tmpa_tl}}
+ \dim_const:cn {\l_ptxcd_tmpa_tl} {\seq_item:Nn \l_ptxcd_tmpa_seq {##1}}
+ }
+ \dim_gset:Nn \g_ptxcd_titlerule_dim {.5\c_ptxcd_smallrule_dim}
+}
+\keys_define:nn {ptxcd/rules} {
+ color .tl_gset:N = \g_ptxcd_rules_color_tl,
+ blackrule .meta:n = {color=black},
+ paper .choice:,
+ paper/dl .code:n = { \ptxcd_rules_set_values:n { 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm}},
+ paper/a6 .code:n = { \ptxcd_rules_set_values:n { 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm}},
+ paper/a5 .code:n = { \ptxcd_rules_set_values:n { 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm}},
+ paper/a4 .code:n = { \ptxcd_rules_set_values:n { 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm}},
+ paper/a3 .code:n = { \ptxcd_rules_set_values:n { 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm}},
+ paper/a2 .code:n = { \ptxcd_rules_set_values:n { 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm}},
+ paper/a1 .code:n = { \ptxcd_rules_set_values:n { 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm}},
+ paper/a0 .code:n = { \ptxcd_rules_set_values:n { 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm}},
+ paper/slide .code:n = { \ptxcd_rules_set_values:n { 2mm | .7mm | .6pt | 11 mm | .3pt| 7.5mm | 10mm}},
+ paper/beamer .meta:n = {paper= slide},
+ paper/leaflet .meta:n = {paper=a5},
+ color .tl_gset:N = \g_ptxcd_rules_default_color_tl,
+ color .initial:n = black,
+ mode .tl_gset:N = \g_ptxcd_rules_default_mode_tl,
+ mode .initial:n = box,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = \str_gset:Nn \g_ptxcd_department_str {mecheng},
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ mecheng .meta:n = {department=mecheng},
+}
+\ProcessKeyOptions[ptxcd/rules]
+\RequirePackage{tudacolors}
+\RequirePackage{xparse}
+% \end{macrocode}
+% Switch between TikZ and box mode
+% \begin{macrocode}
+\bool_new:N \g_ptxcd_rule_TikZmode_bool
+\keys_define:nn {ptxcd/rules} {
+ width .dim_gset:N = \l_ptxcd_headrule_width_dim,
+ color .tl_gset:N = \l_ptxcd_headrule_color_tl,
+ mode .choice:,
+ mode / box .code:n = \bool_gset_false:N \g_ptxcd_rule_TikZmode_bool,
+ mode / tikz .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
+ mode / TikZ .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
+}
+\cs_if_exist_use:NF \str_case:Vn \str_case:on
+\g_ptxcd_department_str {
+ {mecheng} {\bool_gset_true:N \g_ptxcd_simple_rules_bool}
+}
+\cs_new:Nn \_@@_logowidth: {\dim_eval:n {2.2\c_ptxcd_logoheight_dim}}
+\cs_new:Nn \_@@_logosep:{\dim_eval:n {0.3\c_ptxcd_logoheight_dim}}
+\NewDocumentCommand{\ptxcd_makeheadrule}{som}{
+ \keys_set:nn {ptxcd/rules} {
+ %TODO maybe package options for default
+ width=\textwidth,
+ }
+ \exp_args:Nnx \keys_set:nn {ptxcd/rules} {
+ mode= \g_ptxcd_rules_default_mode_tl,
+ color= \g_ptxcd_rules_default_color_tl
+ }
+ \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
+ \IfBooleanF {#1} {\box_if_exist:cF {#3_box} {\box_new:c {#3_box}}}
+ \bool_if:NTF \g_ptxcd_simple_rules_bool {
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box}
+ {
+ \color{\l_ptxcd_headrule_color_tl}
+ \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{.5\c_ptxcd_largerule_dim}}
+ }
+ }{
+ \bool_if:NTF \g_ptxcd_rule_TikZmode_bool {
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box} {
+ \begin{tikzpicture}
+ \fill[\l_ptxcd_headrule_color_tl](0,\c_ptxcd_rulesep_dim)rectangle++(\l_ptxcd_headrule_width_dim,\c_ptxcd_largerule_dim);
+ \fill(0,0)rectangle(\l_ptxcd_headrule_width_dim,-\c_ptxcd_smallrule_dim);
+ \end{tikzpicture}
+ }
+ }{
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box}
+ {
+ \parbox[t]{\l_ptxcd_headrule_width_dim}{
+ \setlength{\baselineskip}{\z@}
+ \null\par\nointerlineskip
+ \textcolor{\l_ptxcd_headrule_color_tl}{\rule{\linewidth}{\c_ptxcd_largerule_dim}}
+ \vspace{\c_ptxcd_rulesep_dim}\par\nointerlineskip
+ \rule{\linewidth}{\c_ptxcd_smallrule_dim}
+ }
+ }
+ }
+ }
+ \IfBooleanF {#1} {\cs_set:cpn {#3} {\box_use:c {#3_box}}}
+}
+\NewDocumentCommand{\ptxcd_makefootrule}{som}{
+ \keys_set:nn {ptxcd/rules} {
+ width= \textwidth
+ }
+ \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
+ \IfBooleanF {#1} {\box_new:c {#3_box}}
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn {#3_box} {
+ \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{\g_ptxcd_titlerule_dim}}
+ }
+ \IfBooleanF{#1} {\cs_new:cpn {#3} {\box_use:c {#3_box}}}
+}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudasciposter.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudasciposter.dtx
new file mode 100644
index 00000000000..769000f031f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudasciposter.dtx
@@ -0,0 +1,657 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudasciposter.dtx}
+ [2025-01-26 v4.00 Scientific Poster Layout for TUDa-CI]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more information and DEMO-TUDaSciPoster.tex/.pdf for an example of use.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+%<@@=ptxcd>
+%<*class&initialization>
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplClass{tudasciposter}{2025-01-26}{4.00}{Scientific Poster Layout for TU Darmstadt}
+%</class&initialization>
+%
+%<*driver>^^A Preparation for real docstrip documentation
+\providecommand*{\TUDaDocDTXfiles}{tudasciposter.dtx}
+\input{tuda-ci.dtx}
+%</driver>
+% \fi
+%
+% \changes{v4.00}{2025-01-26}{Converted to DTX file}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \DescribeMacro{\title}
+%
+%
+% \DescribeMacro{\footergraphics}
+%
+%
+% \DescribeMacro{\footer}
+%
+%
+% \DescribeMacro{\footerqrcode}
+%
+%
+% \DescribeMacro{\Metadata}
+%
+%
+% \DescribeMacro{\author}
+%
+%
+% \DescribeMacro{\authorandname}
+%
+%
+% \DescribeMacro{\titlegraphic}
+%
+%
+% \DescribeMacro{\institute}
+%
+%
+% \MaybeStop{}
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*class&initialization>
+% \fi
+% \begin{macrocode}
+\prop_new:N \g_ptxcd_clsopts_prop
+\tl_new:N \g_ptxcd_boxstyle_tl
+\int_new:N \g_ptxcd_paper_int
+\str_new:N \g_ptxcd_department_str
+\str_const:Nn \c_@@_base_str {sciposter}
+\keys_define:nn {ptxcd/poster} {
+ titletext .code:n = {\PassOptionsToPackage{text =#1}{tudacolors}},
+ footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = true,
+ thanks .tl_gset:N = \g_ptxcd_footnote_label_tl,
+ thanks .initial:n = arabic*,
+ boxstyle .choice:,
+ boxstyle / official .code:n = \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa},
+ boxstyle / colored .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-colored},
+ boxstyle / boxed .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-boxed},
+ boxstyle /default .meta:n = {boxstyle=official},
+ boxstyle .initial:n = default,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_clsopts_prop \l_keys_key_tl {#1}},
+ fontsize .tl_gset:N = \g_ptxcd_fontsize_tl,
+ titlesepline .bool_gset:N = \g_ptxcd_titlesepline_bool,
+ titlesepline .initial:n = true,
+%</class&initialization>
+%<gobble>}
+%<*class&packages>
+\ProcessKeyOptions[ptxcd/poster]
+\dim_new:N \g_ptxcd_margin_dim
+\bool_if:NTF \g_ptxcd_smalltitle_bool {
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_base_sizes:
+}{
+ \int_gdecr:N \g_ptxcd_paper_int
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \ptxcd_setup_base_sizes:
+}
+\prop_gput:NnV \g_ptxcd_clsopts_prop {fontsize} \g_ptxcd_fontsize_tl
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass{#1}{scrartcl}}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}}
+}
+\ExplSyntaxOff
+\PassOptionsToPackage{typeareawarninfolimit=-1,DIV=10}{typearea}
+\LoadClass[parskip=full-]{scrartcl}
+\ExplSyntaxOn
+% \end{macrocode}
+% \iffalse
+%</class&packages>
+%<*class&body>
+% \fi
+% \begin{macrocode}
+\ExplSyntaxOff
+\RequirePackage{tudafonts}
+\RequirePackage{tudacolors}
+\RequirePackage[margin=0pt]{geometry}
+\RequirePackage{tcolorbox}
+\tcbuselibrary{poster}
+\RequirePackage[mode=tikz]{tudarules}
+\RequirePackage{qrcode}
+\ExplSyntaxOn
+
+\renewcommand*{\familydefault}{\sfdefault}
+\setkomafont{title}{
+ \color{titlefgcolor}
+ \expandafter\fontsize\ptxcd_title_fontsize:\selectfont
+ \bfseries
+}
+\setkomafont{author}{\bfseries}
+\setkomafont{captionlabel}{\bfseries}
+\setkomafont{disposition}{\sffamily\bfseries}
+% \end{macrocode}
+% end of font adjustments
+%
+% \begin{macrocode}
+\dim_const:Nn \c_ptxcd_headrule_ht_dim {\c_ptxcd_rulesep_dim +\c_ptxcd_largerule_dim + \c_ptxcd_smallrule_dim}
+% \end{macrocode}
+% Setup title
+% \begin{macrocode}
+\box_new:N \l_ptxcd_tmpa_box
+\box_new:N \g_ptxcd_titlegraphic_box
+\box_new:N \g_ptxcd_title_box
+\box_new:N \g_ptxcd_author_box
+\box_new:N \g_ptxcd_credit_box
+\tl_new:N \g_ptxcd_thanks_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\ptxcd_title@footnote}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\ptxcd_title@footnote}
+% \begin{macrocode}
+\newcommand*{\ptxcd_title@footnote}[2][1]{
+ \begingroup
+ \ptxcd_def_footnotelabel:
+ \footnotemark[#1]\,#2\quad
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {*} {{footnote}}
+\clist_map_inline:nn {alph, arabic, fnsymbol, Alph, roman, Roman} {
+ \tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {#1} {\use:c {#1}}
+}
+\cs_set:Nn \ptxcd_def_footnotelabel: {
+ \renewcommand*{\thefootnote}{\g_ptxcd_footnote_label_tl}
+}
+\pagestyle{empty}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\title}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\title}
+% \begin{macrocode}
+\renewcommand*{\title}[1]{\gdef \@title {#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\dim_new:N \g_ptxcd_footheight_dim
+\dim_gset:Nn \g_ptxcd_footheight_dim {0.06\paperwidth}%
+\box_new:N \g_ptxcd_footergraphics_box
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footergraphics}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footergraphics}
+% \begin{macrocode}
+\newcommand*{\footergraphics}[1]{
+ \begingroup
+ \let\height\g_ptxcd_footheight_dim
+ \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_poster_foot_tl
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footer}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footer}
+% \begin{macrocode}
+\newcommand{\footer}[1]{
+ \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\tl_new:N \g_ptxcd_poster_qrcode_tl
+\msg_new:nnnn {tudapub} {biblatex-required}{
+ You~tried~to~use~#1.\\
+ This~feature~requires~the~biblatex~package.
+} {
+ Try~to~remove~the~star~or~load~biblatex.
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\footerqrcode}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\footerqrcode}
+% \begin{macrocode}
+\NewDocumentCommand{\footerqrcode}{sm}{
+ \IfBooleanTF {#1} {
+ \cs_if_exist:NTF \blx@blxinit {
+ \begingroup
+ \blx@blxinit
+ \entrydata{#2}{
+ \tl_gset:Nx \g_ptxcd_poster_qrcode_tl{\thefield{url}}
+ }
+ \endgroup
+ }{
+ \msg_error:nnx {tudapub} {biblatex-required} {\use:c{footerqrcode*}}
+ }
+ }{
+ \tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}%
+% redefine \author to manage \and and \thanks
+%
+% \begin{macrocode}
+\seq_new:N \g_ptxcd_author_seq
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\author}
+% \begin{macrocode}
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\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.
+}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\authorandname}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\authorandname}
+% \begin{macrocode}
+\providecommand*\authorandname{
+ \msg_warning:nnxxx{tudasciposter} {unknown-language}
+ {\languagename} {\exp_not:N \authorandname} {und}
+ und
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\defcaptionname{ngerman, german}{\authorandname}{und}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\authorandname}{and}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\@author}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\@author}
+% \begin{macrocode}
+\renewcommand*{\@author}{
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{documentation}
+% \DescribeMacro{\titlegraphic}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\titlegraphic}
+% \begin{macrocode}
+\newcommand\titlegraphic[1]{\def\@titlegraphic{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\titlegraphic{}
+% \end{macrocode}
+% \begin{documentation}
+% \DescribeMacro{\institute}
+%
+% \end{documentation}
+% \begin{implementation}
+% \begin{macro}{\institute}
+% \begin{macrocode}
+\newcommand{\institute}[1]{\def\@institute{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{implementation}
+%
+% \begin{macrocode}
+\institute{}
+% \end{macrocode}
+% Language dependent configuration
+% \begin{macrocode}
+\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\g_ptxcd_margin_dim\relax}
+\newlength{\contentheight}
+\cs_new:Nn \_@@_logo_code:n {
+ \node[anchor=north~east,inner~sep=0pt,minimum~width=\dim_eval:n {\_@@_logowidth: + \_@@_logosep:}](#1) at ([xshift=\_@@_logosep:,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~east){
+ \_@@_insert_logo:
+ };
+}
+\tcbposterset{
+ coverage =
+ {
+ spread,
+ parbox=false,
+ bottom=\dim_eval:n {\g_ptxcd_margin_dim
+ \bool_if:NT \g_ptxcd_poster_foot_bool {+\g_ptxcd_footheight_dim + 3\c_ptxcd_rulesep_dim}
+ },
+ left=\g_ptxcd_margin_dim,
+ right=\g_ptxcd_margin_dim,
+ before= {\ptxcd_poster_setup_title_box:},
+ top= \dim_eval:n {
+ \bool_if:NF \g_ptxcd_colorback_bool {1.5}
+ \g_ptxcd_margin_dim
+ +\box_ht:N \ptxcd_headrule_box
+ +\box_dp:N \ptxcd_headrule_box
+ +\g_ptxcd_titleblock_dim
+ +4\c_ptxcd_rulesep_dim
+ +\box_ht:N \g_ptxcd_author_box
+ +\box_dp:N \g_ptxcd_author_box
+ },
+ overlay={%
+ \coordinate(topleft) at ([xshift=\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ west);
+ \coordinate(topright) at ([xshift=-\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ east);
+ \coordinate(bottomleft) at ([xshift=\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ west);
+ \coordinate(bottomright) at ([xshift=-\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ east);
+ \dim_gset:Nn \g_ptxcd_titleindent_dim {\bool_if:NTF \g_ptxcd_colorback_bool {3\c_ptxcd_rulesep_dim} {\c_zero_dim}}
+ \node[inner~sep=0pt, anchor=north~west](identbar) at (topleft){\ptxcd_headrule};
+ \bool_if:NTF \g_ptxcd_colorback_bool
+ \fill \path [identbarcolor]
+ (identbar.south~east)rectangle([yshift=-\g_ptxcd_titleblock_dim]identbar.south~west) coordinate(bottomlefttitleblock);
+ \_@@_logo_code:n {TUDalogo}
+ \node[inner~sep=0pt,text~width=\_@@_logowidth:,align=right,anchor=north~west,](titlegraphic) at ([yshift=-\c_ptxcd_rulesep_dim]TUDalogo.south~west){\box_use:N \g_ptxcd_titlegraphic_box};
+ \node[anchor=north~west,inner~sep=0pt,] (title) at ([
+ xshift=\g_ptxcd_titleindent_dim,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~west) {\box_use:N \g_ptxcd_title_box};
+ \bool_if:NT \g_ptxcd_titlesepline_bool
+ {\draw[line~ width=.5\c_ptxcd_smallrule_dim](bottomlefttitleblock)--++(\contentwidth,0);}
+ \node[anchor=north~west, inner~xsep=0pt, inner~ ysep=\c_ptxcd_rulesep_dim] (author) at ([xshift=\g_ptxcd_titleindent_dim]bottomlefttitleblock) {\box_use:N \g_ptxcd_author_box};
+ \draw[line~ width=.5\c_ptxcd_smallrule_dim](author.south-|identbar.west)--++(\contentwidth,0);
+ \bool_if:NT \g_ptxcd_poster_foot_bool {\_@@_typeset_footer:}
+ }}
+}
+\cs_new:Nn \_@@_typeset_footer: {
+ \coordinate(lastpos) at (bottomright);
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl
+ {
+ \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos)
+ {
+ \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_ptxcd_footheight_dim]}\g_ptxcd_poster_qrcode_tl
+ };
+ \coordinate (lastpos) at (qrcode.south~west);
+ }
+ \box_if_empty:NF \g_ptxcd_footergraphics_box {
+ \node[anchor=south~east, inner~sep=\z@] at (lastpos) {
+ \accentfont
+ \box_use:N \g_ptxcd_footergraphics_box
+ };
+ }
+ \node[anchor=north~ west, inner~ sep=\z@] (infofooter) at ([yshift=\g_ptxcd_footheight_dim]bottomleft) {
+ \parbox{\dim_eval:n {\contentwidth
+ -\box_wd:N \g_ptxcd_footergraphics_box
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {-\g_ptxcd_footheight_dim-\c_ptxcd_rulesep_dim}
+ }}{
+ \rule{\linewidth}{.5\c_ptxcd_smallrule_dim}\\
+ \accentfont\small\g_ptxcd_poster_foot_tl
+ \par\medskip
+ \let\footnotetext\ptxcd_title@footnote
+ \g_ptxcd_thanks_tl}
+ };
+}
+\hook_gput_code:nnn {ptxcd/init-colors} {tudasciposter} {
+\bool_if:NTF \g_ptxcd_colorback_bool
+{\colorlet{titlefgcolor}{textonaccentcolor}}
+{\colorlet{titlefgcolor}{black}}
+\colorlet{titlebgcolor}{accentcolor}
+% \end{macrocode}
+% Block Colors
+% \begin{macrocode}
+\colorlet{blocktitlebgcolor}{accentcolor}
+\colorlet{blocktitlefgcolor}{textonaccentcolor}
+% \end{macrocode}
+% Innerblock Colors
+% \begin{macrocode}
+\colorlet{innerblockbodybgcolor}{textonaccentcolor}
+}
+% \end{macrocode}
+% Background Colors
+% \begin{macrocode}
+\colorlet{backgroundcolor}{white}
+\colorlet{framecolor}{white}
+% \end{macrocode}
+% Block Colors
+% \begin{macrocode}
+\colorlet{blockbodybgcolor}{white}
+\colorlet{blockbodyfgcolor}{black}
+% \end{macrocode}
+% Innerblock Colors
+% \begin{macrocode}
+\colorlet{innerblocktitlebgcolor}{black!15}
+\colorlet{innerblocktitlefgcolor}{black}
+\colorlet{innerblockbodyfgcolor}{black}
+\dim_new:N \g_ptxcd_titleblock_dim
+\dim_new:N \g_ptxcd_titleindent_dim
+\cs_new:Nn \_@@_inst:n {\textsuperscript{#1}}
+\cs_new:Nn \ptxcd_poster_setup_title_box: {
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox{.65\paperwidth}{
+ \raggedright
+ \usekomafont{disposition}\usekomafont{title}\leavevmode\@title \par
+ }
+ }
+ \hbox_gset:Nn \g_ptxcd_author_box {
+ \parbox{\dimexpr\contentwidth-6\c_ptxcd_rulesep_dim\relax}{
+ \ptxcd_def_footnotelabel:
+ \cs_set_eq:NN \inst\_@@_inst:n
+ {\usekomafont{author}\@author\\}
+ \tl_gset:No \g_ptxcd_thanks_tl {\@thanks}
+ \@institute
+ }
+ }
+ \tl_if_empty:NF \@titlegraphic {
+ \hbox_gset:Nn \g_ptxcd_titlegraphic_box {
+ \parbox{\_@@_logowidth:}{
+ \raggedleft
+ \@titlegraphic
+ }
+ }
+ }
+ \dim_gset:Nn \g_ptxcd_titleblock_dim {
+ \dim_max:nn
+ {
+ +\box_ht:N \g_ptxcd_titlegraphic_box +\box_dp:N \g_ptxcd_titlegraphic_box+ 2\c_ptxcd_logoheight_dim
+ }
+ {\box_ht:N \g_ptxcd_title_box+ \box_dp:N \g_ptxcd_title_box+\c_ptxcd_logoheight_dim}
+ }
+}
+% \end{macrocode}
+% %%%%%%%%%%%%%%%%%%%%%
+% Declare TCBstyles for tudaposter
+% \begin{macrocode}
+\tcbset {
+TUDa/.style =
+{
+enhanced,
+coltitle=black,
+colbacktitle=white,
+coltext=black,
+colback=white,
+size=minimal,
+boxrule=.5\c_ptxcd_smallrule_dim,
+leftrule=\z@,
+rightrule=\z@,
+fonttitle=\usekomafont{disposition}\usekomafont{section},
+before~title={\strut},
+toptitle=.5\c_ptxcd_rulesep_dim,
+bottomtitle=.5\c_ptxcd_rulesep_dim,
+top=\c_ptxcd_rulesep_dim,
+bottom=\c_ptxcd_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_ptxcd_rulesep_dim,
+ right=.5\c_ptxcd_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_ptxcd_rulesep_dim,
+boxrule=.5\c_ptxcd_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}
+ },
+}
+% \end{macrocode}
+% Select default box styles according to style option
+% \begin{macrocode}
+\tcbposterset{boxes ={\g_ptxcd_boxstyle_tl}, poster={spacing=5cm}}
+\tcbset{
+every~ box~ on~ layer~ 3/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+every~ box~ on~ layer~ 4/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+}
+% \end{macrocode}
+% Adjust caption indent
+% \begin{macrocode}
+\setcapindent{1em}
+\file_if_exist_input:n {\g_@@_config_prefix_tl\g_ptxcd_department_str.cfg}
+\hook_use:n {ptxcd/init-colors}
+\ptxcd_makeheadrule[
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ color=identbarcolor
+]{ptxcd_headrule}
+\endinput
+% \end{macrocode}
+
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/source/latex/tuda-ci/tudasize.dtx b/Master/texmf-dist/source/latex/tuda-ci/tudasize.dtx
new file mode 100644
index 00000000000..ee107b56d40
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tuda-ci/tudasize.dtx
@@ -0,0 +1,275 @@
+% \iffalse meta-comment
+%
+% TUDa-CI -- Corporate Design for TU Darmstadt
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) 2018--2025 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.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <tuda-ci@peitex.de>
+%
+% The development repository can be found at
+% https://github.com/tudace/tuda_latex_templates
+% Please use the issue tracker for feedback!
+%
+% ============================================================================
+%
+% \fi
+%
+% \iffalse% no documentation on this
+% \iffalse^^A Preparation for real docstrip documentation
+%<*driver>
+\ProvidesFile{tudasize.dtx}
+ [2025-01-26 v4.00 Paper and font size configuration for TUDa-CI]
+\typeout{***********************************************************}
+\typeout{No documentation included in this file! Please see tuda-ci.pdf for more the general documentation information.}
+\typeout{***********************************************************}
+\stop
+%</driver>
+% \iffalse %no documentation on this
+%<@@=ptxcd>
+%<*tudasize>
+\ProvidesExplFile{tuda-\@@tudasizepaper@@ paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~\@@tudasizepaper@@ paper}
+\cs_set:Nn \ptxcd_setup_title_sizes: {
+ \cs_set:Nn \ptxcd_title_fontsize: {
+%<a0> {125pt}{165pt}
+%<a1> {86pt}{120pt}
+%<a2> {65pt}{82pt}
+%<a3> {47pt}{61pt}
+%<a4> {36pt}{47pt}
+%<a5> {22pt}{28pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+%<a0> {28pt}{35pt}
+%<a1> {35pt}{42pt}
+%<a2> {22pt}{28pt}
+%<a3> {16pt}{20pt}
+%<a4> {12pt}{14pt}
+%<a5> {10pt}{11.5pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+%<a0> {24pt}{30pt}
+%<a1> {22pt}{26pt}
+%<a2> {14pt}{20pt}
+%<a3> {12pt}{16pt}
+%<a4|a5> {10pt}{11.5pt}
+ }
+}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+ \tl_gset:Nn \g_ptxcd_fontsize_tl
+%<a0> {30pt}
+%<a1|a2> {25pt}
+%<a3> {17pt}
+%<a4> {14pt}
+%<a5> {10pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+%<a0|a1|a2> {30mm}
+%<a3|a4> {15mm}
+%<a5> {12mm}
+}
+%</tudasize>
+%
+% The following part is a modified version of
+% scrkernel-fonts.dtx and scrkernel-paragraphs.dtx
+% Copyright (c) Markus Kohm, 2002-2024
+% modified by Marei Peischl <marei@peitex.de>
+% \iffalse
+%<*scrsize>
+% \fi
+% \begin{macrocode}
+\ProvidesFile{%
+%<9pt> tudasize9pt.clo%
+%<tudaletter> tudalettersize10pt.clo%
+}[
+%<9pt> TUDa-CI font size class option (9pt)
+%<tudaletter> tudaletter font size class option (10pt)
+]
+% \end{macrocode}
+%
+% \begin{command}{\normalsize,\datasize,\small,\footnotesize,\scriptsize,\tiny,\large,
+% \Large,\LARGE,\huge,\Huge}
+% \begin{macrocode}
+\let\normalsize\@undefined
+\DeclareRobustCommand\normalsize{%
+%<*9pt>
+ \@setfontsize\normalsize\@ixpt\@xipt%
+ \abovedisplayskip 8\p@ \@plus4\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 5\p@ \@plus3\p@ \@minus3\p@
+%</9pt>
+%<*tudaletter>
+ \@setfontsize\normalsize\@xpt\@xipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+%</tudaletter>
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\datasize{%
+ \normalsize
+ \@setfontsize\normalsize
+%<9pt> \@ixpt\@xipt
+%<tudaletter> \@xpt\@xiiipt
+}
+\let\small\@undefined
+\DeclareRobustCommand\small{%
+%<*9pt>
+\@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@
+%</9pt>
+%<*tudaletter>
+ \@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@
+%</tudaletter>
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\let\footnotesize\@undefined
+\DeclareRobustCommand\footnotesize{%
+%<*9pt>
+ \@setfontsize\footnotesize\@viipt\@viiipt
+ \abovedisplayskip 4\p@ \@plus2\p@ \@minus2\p@
+ \abovedisplayshortskip \z@ \@plus1\p@
+ \belowdisplayshortskip 2.5\p@ \@plus\p@ \@minus\p@
+%</9pt>
+%<*tudaletter>
+ \@setfontsize\footnotesize{7.5pt}\@xpt%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+%</tudaletter>
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\let\scriptsize\@undefined
+\let\tiny\@undefined
+\let\large\@undefined
+\let\Large\@undefined
+\let\LARGE\@undefined
+\let\huge\@undefined
+\let\Huge\@undefined
+%<*9pt>
+\DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@vipt\@viipt}
+\DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\DeclareRobustCommand\large{\@setfontsize\large\@xpt\@xiipt}
+\DeclareRobustCommand\Large{\@setfontsize\Large\@xipt{13}}
+\DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xiipt{14}}
+\DeclareRobustCommand\huge{\@setfontsize\huge\@xivpt{18}}
+\DeclareRobustCommand\Huge{\@setfontsize\Huge\@xviipt{22}}
+%</9pt>
+%<*tudaletter>
+\DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}}
+\DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}}
+\DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}}
+\DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%</tudaletter>
+\normalsize
+% \end{macrocode}
+% \end{command}
+% The values are same as with the standard classes.
+% \begin{macrocode}
+%<*9pt>
+\setlength\footnotesep {6.3\p@}
+\setlength{\skip\footins} {8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\textfloatsep {18\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{18\p@ \@plus 2\p@ \@minus 2\p@}
+%</9pt>
+%<*tudaletter>
+\setlength\footnotesep {6.65\p@}
+\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+%</tudaletter>
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\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@}
+% \end{macrocode}
+% \begin{macro}{\@listi,\@listii,\@listiii,\@listiv,\@listv,\@listvi}
+% The definitions are the same as with the standard classes.
+% \begin{macrocode}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+%<9pt> \topsep 8\p@ \@plus2\p@ \@minus3\p@
+%<tudaletter> \topsep 8\p@ \@plus2\p@ \@minus4\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 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
+% \end{macrocode}
+% \end{macro}^^A \@listi … \@listvi
+% \end{ilength}^^A \@fptop … \@dblfpbot
+% \end{length}^^A \footnotesep … \partopsep
+%
+% \Finale
+% \PrintChanges
+%</scrsize>
+% \Finale
+% \fi^^A No documentation on this
+\endinput
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa.sty
index 62af9069e55..e07c116668b 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa.sty
@@ -1,10 +1,18 @@
-%% This is file `beamercolorthemeTUDa.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamercolorthemeTUDa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamercolorthemeTUDa.dtx (with options: `package,main')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,95 +21,86 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{beamercolorthemeTUDa}[2024-01-22 v3.35]
+\ProvidesExplPackage{beamercolorthemeTUDa}{2025-01-26}{4.00}{Beamer color theme of tuda-ci}
-\ExplSyntaxOn
\clist_map_inline:nn {
- colortitle,
- colorbacktitle,
- colorframetitle,
- colorback
+colortitle,
+colorbacktitle,
+colorframetitle,
+colorback
} {
- \keys_define:nn {ptxcd/beamer/color} {#1 .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {#1}}
-}
-
-\keys_define:nn {ptxcd/beamer/color} {
-
+\keys_define:nn {ptxcd/beamer/color} {#1 .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {#1}}
}
\ExplSyntaxOff
-
\ProcessKeyOptions[ptxcd/beamer/color]
-
+\mode<presentation>{\PassOptionsToPackage{RGB}{tudacolors}}
\RequirePackage{tudacolors}
-
\definecolorset{HTML}{TUDa-}{}{%
- dark1,000000;%
- dark2,44546A;%
- light1,FFFFFF;%
- light2,E7E6E6;%
- accent1,E6001A;%
- accent2,004E8A;%
- accent3,009CDA;%
- accent4,00689D;%
- accent5,B5B5B5;%
- accent5,535353;%
- hyperlink,243572%
+dark1,000000;%
+dark2,44546A;%
+light1,FFFFFF;%
+light2,E7E6E6;%
+accent1,E6001A;%
+accent2,004E8A;%
+accent3,009CDA;%
+accent4,00689D;%
+accent5,B5B5B5;%
+accent5,535353;%
+hyperlink,243572%
}
-
\mode<presentation>
-
\setbeamercolor*{title}{parent=normal text}
\setbeamercolor{subtitle}{parent=title}
\setbeamercolor{author}{parent=title}
\setbeamercolor{institute}{parent=title}
\setbeamercolor{date}{parent=title}
\setbeamercolor{titlelike}{parent=title}
-
\setbeamercolor*{author}{parent=title}
\setbeamercolor*{institute}{parent=title}
-
\setbeamercolor*{normal text}{bg=,fg=black}
\setbeamercolor*{background canvas}{parent=normal text}
\setbeamercolor*{section in toc}{parent=normal text}
-\setbeamercolor*{footline}{parent=normal text}
-
+\setbeamercolor*{footline}{
+fg=black!50
+}
\setbeamercolor*{alerted text}{fg=textaccentcolor}
\setbeamercolor*{structure}{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*{block title}{fg=textonaccentcolor,bg=accentcolor}
\setbeamercolor*{block body}{fg=black,bg=black!15}
-
-\setbeamercolor*{block title alerted}{fg=TUDa-accent1,bg=TUDa-light2}
+\setbeamercolor*{block title alerted}{
+fg=TUDa-accent1,bg=TUDa-light2
+}
\setbeamercolor*{block body alerted}{use=normal text, bg=white}
-\setbeamercolor*{block frame alerted}{bg=TUDa-accent1}
-
-\setbeamercolor*{block title example}{fg=TUDa-accent2,bg=TUDa-light2}
+\setbeamercolor*{block frame alerted}{
+bg=TUDa-accent1
+}
+\setbeamercolor*{block title example}{
+fg=TUDa-accent2,bg=TUDa-light2
+}
\setbeamercolor*{block body example}{use=normal text, bg=white}
-\setbeamercolor*{block frame example}{bg=TUDa-accent2}
-
-\setbeamercolor{footline}{fg=black!50}
-
+\setbeamercolor*{block frame example}{
+bg=TUDa-accent2
+}
+\ExplSyntaxOn
\mode<all>
-
\endinput
+%%
+%% End of file `beamercolorthemeTUDa.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa2008.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa2008.sty
index 14a86607d18..6c9fc32a1c5 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa2008.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamercolorthemeTUDa2008.sty
@@ -1,10 +1,18 @@
-%% This is file `beamercolorthemeTUDa2008.sty' version 3.41 (2024-07-02)
+%%
+%% This is file `beamercolorthemeTUDa2008.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamercolorthemeTUDa.dtx (with options: `package,2008')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,93 +21,87 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesExplPackage{beamercolorthemeTUDa2008}{2024-04-21}{3.37}{Beamer color theme of tuda-ci, compatibility for design of 2008}
-\bool_if_exist:NF \g__ptxcd_colorframetitle_bool {\bool_new:N \g__ptxcd_colorframetitle_bool}
+\ProvidesExplPackage{beamercolorthemeTUDa2008}{2025-01-26}{4.00}{Beamer color theme of tuda-ci, compatibility for design of 2008}
+\bool_if_exist:NF \g__ptxcd_colorframetitle_bool {\bool_new:N \g__ptxcd_colorframetitle_bool}
\keys_define:nn {ptxcd/beamer/color} {
- colortitle .bool_gset:N = \g_ptxcd_beamer_colortitle_bool,
- colortitle .default:n = true,
- colortitle .initial:n = true,
- colorbacktitle .meta:n = {colortitle=#1},
- colorframetitle .code:n = \use:c {bool_gset_#1:N} \g__ptxcd_colorframetitle_bool \cs_if_exist_use:N \__ptxcd_setup_frametitle_color:,
- colorframetitle .default:n = true,
- colorback .meta:n = {colorframetitle=#1}
-}
-
-\ProcessKeyOptions[ptxcd/beamer/color]
-
-\ExplSyntaxOff
-\RequirePackage[RGB]{tudacolors}
-
-\mode<presentation>
-
-\setbeamercolor*{smallrule}{bg=black}
-\setbeamercolor*{identbar}{bg=identbarcolor}
-
-\ExplSyntaxOn
-\bool_if:NTF \g_ptxcd_beamer_colortitle_bool {
- \setbeamercolor*{title}{fg=textonaccentcolor,bg=accentcolor}
-}{
- \setbeamercolor*{title}{parent=normal~text}
+colortitle .bool_gset:N = \g_ptxcd_beamer_colortitle_bool,
+colortitle .default:n = true,
+colortitle .initial:n = true,
+colorbacktitle .meta:n = {colortitle=#1},
+ colorframetitle .choices:nn = {true, false} {
+ \use:c {bool_gset_ \l_keys_choice_tl :N} \g__ptxcd_colorframetitle_bool
+ \cs_if_exist_use:N \__ptxcd_setup_frametitle_color:
+ },
+colorframetitle .default:n = true,
+colorback .meta:n = {colorframetitle=#1}
}
-
-\cs_new:Nn \__ptxcd_setup_frametitle_color: {
- \bool_if:NTF \g__ptxcd_colorframetitle_bool {
- \setbeamercolor*{frametitle}{fg=textonaccentcolor,bg=accentcolor}
- } {
- \setbeamercolor*{frametitle}{use=normal~text,fg=normal~text.fg,bg=}
- }
-}
-
-\__ptxcd_setup_frametitle_color:
-
\ExplSyntaxOff
+\ProcessKeyOptions[ptxcd/beamer/color]
+\mode<presentation>{\PassOptionsToPackage{RGB}{tudacolors}}
+\RequirePackage{tudacolors}
+\setbeamercolor{titlelike}{fg=textaccentcolor,bg=white}
\setbeamercolor*{author}{parent=title}
\setbeamercolor*{institute}{parent=title}
-
\setbeamercolor*{normal text}{bg=,fg=black}
\setbeamercolor*{background canvas}{parent=normal text}
\setbeamercolor*{section in toc}{parent=normal text}
-\setbeamercolor*{footline}{parent=normal text}
-
+\setbeamercolor*{footline}{
+parent=normal text
+}
\setbeamercolor*{alerted text}{fg=textaccentcolor}
\setbeamercolor*{structure}{fg=textaccentcolor}
-
\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 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 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}
+\setbeamercolor*{block frame example}{
+bg=TUDa-4d
+}
+\setbeamercolor*{smallrule}{bg=black}
+\setbeamercolor*{identbar}{bg=identbarcolor}
\ExplSyntaxOn
-
+\bool_if:NTF \g_ptxcd_beamer_colortitle_bool {
+\setbeamercolor*{title}{fg=textonaccentcolor,bg=accentcolor}
+}{
+\setbeamercolor*{title}{parent=normal~text}
+}
+\cs_new:Nn \__ptxcd_setup_frametitle_color: {
+\bool_if:NTF \g__ptxcd_colorframetitle_bool {
+\setbeamercolor*{frametitle}{fg=textonaccentcolor,bg=accentcolor}
+} {
+\setbeamercolor*{frametitle}{use=normal~text,fg=normal~text.fg,bg=}
+}
+}
+\__ptxcd_setup_frametitle_color:
\mode<all>
-
-
-
\endinput
+%%
+%% End of file `beamercolorthemeTUDa2008.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa.sty
index c2ec43d33ea..8d16f772bbd 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerfontthemeTUDa.sty' version 3.41 (2024-07-02)
+%%
+%% This is file `beamerfontthemeTUDa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerfontthemeTUDa.dtx (with options: `package,main')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,62 +21,51 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesExplPackage{beamerfontthemeTUDa}{2024-04-21}{3.37}{Beamer font theme of tuda-ci}
+\ProvidesExplPackage{beamerfontthemeTUDa}{2025-01-26}{4.00}{Beamer font theme of tuda-ci}
\RequirePackage{tudafonts}
-
\keys_define:nn {ptxcd/beamer/fonts} {
- serif .bool_gset:N = \g_ptxcd_serif_bool,
- serif .default:n = true,
- serif .initial:n = false,
- sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool,
- sans-serif .default:n = true,
+serif .bool_gset:N = \g_ptxcd_serif_bool,
+serif .default:n = true,
+serif .initial:n = false,
+sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool,
+sans-serif .default:n = true,
}
-
\ProcessKeyOptions[ptxcd/beamer/fonts]
-
\mode<presentation>
-
\bool_if:NTF \g_ptxcd_serif_bool
- {\usefonttheme{serif}}
- {\renewcommand*{\familydefault}{\sfdefault}}
-
+{\usefonttheme{serif}}
+{\renewcommand*{\familydefault}{\sfdefault}}
+\setbeamerfont{author}{size=\footnotesize, series=\bfseries}
+\setbeamerfont{institute}{size=\footnotesize, series=\mdseries}
\ExplSyntaxOff
-
\setbeamerfont{title}{family=\robotoblack,size=\huge}
\setbeamerfont*{subtitle}{family=\normalfont,size=\small}
-
-\setbeamerfont{author}{size=\footnotesize, series=\bfseries}
-\setbeamerfont{institute}{size=\footnotesize, series=\mdseries}
-
\setbeamerfont*{frametitle}{size*={20}{20},family=\robotoblack}
-
\setbeamerfont{footline}{size*={3.8}{5}}
\setbeamerfont{author in head/foot}{parent=footline}
\setbeamerfont{title in head/foot}{family=\robotoblackspaced}
-
\setbeamerfont*{section title}{size=\huge,family=\robotoblack}
\setbeamerfont*{section name}{size=\small}
\setbeamerfont{section entry}{size=\footnotesize}
\setbeamerfont{toc section number}{family=\robotoblack,size=\huge}
-
+\setbeamerfont{section entry}{size=\footnotesize}
\setbeamerfont{subsection in toc}{parent=section entry}
\setbeamerfont{subsubsection in toc}{parent=section entry}
-
\ExplSyntaxOn
-
\mode<all>
-
\endinput
+%%
+%% End of file `beamerfontthemeTUDa.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa2008.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa2008.sty
index 4ac32a79cda..329ee0f60f4 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa2008.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerfontthemeTUDa2008.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerfontthemeTUDa2008.sty' version 3.41 (2024-07-02)
+%%
+%% This is file `beamerfontthemeTUDa2008.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerfontthemeTUDa.dtx (with options: `package,2008')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,47 +21,40 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesExplPackage{beamerfontthemeTUDa2008}{2024-04-21}{3.37}{Beamer font theme of tuda-ci, compatibility for design of 2008}
-
+\ProvidesExplPackage{beamerfontthemeTUDa2008}{2025-01-26}{4.00}{Beamer font theme of tuda-ci, compatibility for design of 2008}
\RequirePackage{tudafonts}
-
\keys_define:nn {ptxcd/beamer/fonts} {
- serif .bool_gset:N = \g_ptxcd_serif_bool,
- serif .default:n = true,
- serif .initial:n = false,
- sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool,
- sans-serif .default:n = true,
+serif .bool_gset:N = \g_ptxcd_serif_bool,
+serif .default:n = true,
+serif .initial:n = false,
+sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool,
+sans-serif .default:n = true,
}
-
\ProcessKeyOptions[ptxcd/beamer/fonts]
-
\mode<presentation>
-
\bool_if:NTF \g_ptxcd_serif_bool
- {\usefonttheme{serif}}
- {\renewcommand*{\familydefault}{\sfdefault}}
-
-\setbeamerfont{title}{size=\large,series=\bfseries}
-\setbeamerfont{subtitle}{size=\normalsize,series=\bfseries}
+{\usefonttheme{serif}}
+{\renewcommand*{\familydefault}{\sfdefault}}
\setbeamerfont{author}{size=\footnotesize, series=\bfseries}
\setbeamerfont{institute}{size=\footnotesize, series=\mdseries}
-
+\setbeamerfont{title}{size=\large,series=\bfseries}
+\setbeamerfont{subtitle}{size=\normalsize,series=\bfseries}
\setbeamerfont{frametitle}{size=\large,series=\bfseries}
\setbeamerfont{author~in~head/foot}{size=\tiny}
-
\mode<all>
-
\endinput
+%%
+%% End of file `beamerfontthemeTUDa2008.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa.sty
index f2a82c86a5f..2aea2dc4c2a 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerinnerthemeTUDa.sty' version 3.41 (2024-07-02)
+%%
+%% This is file `beamerinnerthemeTUDa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerinnerthemeTUDa.dtx (with options: `package,main')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,163 +21,148 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{beamerinnerthemeTUDa}{2024-04-21}{3.37}{Inner~beamer~theme~of~tuda-ci}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplPackage{beamerinnerthemeTUDa}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci}
\int_new:N \g__ptxcd_beamer_toc_col_int
-
\tl_if_exist:NF \g__ptxcd_design_tl {
- \tl_new:N \g__ptxcd_design_tl
- \keys_define:nn {ptxcd/beamer} {
- design .choice:,
- design / 2023 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2023}
- \PassOptionsToClass{aspectratio=169}{beamer}
- },
- design / 2008 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2008}
- },
- design .initial:n = 2023,
- design2023 .meta:n = {design=2023},
- design2008 .meta:n = {design=2008},
- }
+\tl_new:N \g__ptxcd_design_tl
+\keys_define:nn {ptxcd/beamer} {
+design .choice:,
+design / 2023 .code:n = {
+\tl_gset:Nn \g__ptxcd_design_tl {2023}
+\PassOptionsToClass{aspectratio=169}{beamer}
+},
+design / 2008 .code:n = {
+\tl_gset:Nn \g__ptxcd_design_tl {2008}
+},
+design .initial:n = 2023,
+design .usage:n = load,
+design2023 .meta:n = {design=2023},
+design2008 .meta:n = {design=2008},
+}
}
-
\keys_define:nn {ptxcd/beamer/inner} {
- author-on-title .bool_gset:N = \g_ptxcd_authorontitle_bool,
- author-on-title .initial:n = false,
- author-on-title .default:n = true,
- authorontitle .meta:n = {author-on-title=#1},
- toc-columns .choices:nn = {one,two,auto} {
- \int_gset_eq:NN \g__ptxcd_beamer_toc_col_int \l_keys_choice_int
- },
- toc-columns / 1 .meta:n = {toc-columns=one},
- toc-columns / 2 .meta:n = {toc-columns=two},
- toc-columns .initial:n = auto,
- design .meta:nn = {ptxcd/beamer} {design=#1}
+author-on-title .bool_gset:N = \g_ptxcd_authorontitle_bool,
+author-on-title .initial:n = false,
+author-on-title .default:n = true,
+authorontitle .meta:n = {author-on-title=#1},
+toc-columns .choices:nn = {one,two,auto} {
+\int_gset_eq:NN \g__ptxcd_beamer_toc_col_int \l_keys_choice_int
+},
+toc-columns / 1 .meta:n = {toc-columns=one},
+toc-columns / 2 .meta:n = {toc-columns=two},
+toc-columns .initial:n = auto,
+design .meta:nn = {ptxcd/beamer} {design=#1}
}
-
\ProcessKeyOptions[ptxcd/beamer/inner]
-
\ExplSyntaxOff
\RequirePackage{trimclip}
\ExplSyntaxOn
-
\box_new:N \l__ptxcd_titlegraphic_box
\box_new:N \l__ptxcd_titlehead_box
\dim_new:N \l__ptxcd_titlegraphic_ht_dim
\dim_new:N \l__ptxcd_titlegraphic_wd_dim
-
\box_if_exist:NF \g__ptxcd_logo_box {
- \dim_new:N \g__ptxcd_beamer_logosep_dim
- \dim_new:N \l__ptxcd_beamer_extraindent_dim
- \dim_new:N \g__ptxcd_beamer_sep_dim
- \box_new:N \g__ptxcd_logo_box
+\dim_new:N \g__ptxcd_beamer_logosep_dim
+\dim_new:N \l__ptxcd_beamer_extraindent_dim
+\dim_new:N \g__ptxcd_beamer_sep_dim
+\box_new:N \g__ptxcd_logo_box
}
-
\cs_set:Nn \__ptxcd_block_colorsep: {.75ex}
-
\RenewDocumentCommand{\titlegraphic}{sm}{
- \IfBooleanTF{#1}{
- \def\inserttitlegraphic{
- \hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
- \box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\width}
- \dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box - \height> \c_zero_dim}
- {
- \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\height}
- \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
- }{
- \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\height}
- \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \width) / 2}
- \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
- }
- }
- }{
- \def\inserttitlegraphic{#2}
- }
+\IfBooleanTF{#1}{
+\def\inserttitlegraphic{
+\hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
+\box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\width}
+\dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box - \height> \c_zero_dim}
+{
+\dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\height}
+\clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
+}{
+\box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\height}
+\dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \width) / 2}
+\clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
+}
+}
+}{
+\def\inserttitlegraphic{#2}
+}
}
-
\useinnertheme{TUDa\g__ptxcd_design_tl}
-
-% Blocks
\defbeamertemplate*{block~begin}{TUDa}{
- \par\vskip\medskipamount%
- \begin{beamercolorbox}[wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,sep=.5pt,
- leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
- ]{block~title}
- \ifx\insertblocktitle\@empty
- \else
- \begin{beamercolorbox}[colsep*=\__ptxcd_block_colorsep:,
- wd=\dimexpr\linewidth-1pt-1.5ex\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*=\__ptxcd_block_colorsep:,vmode, wd=\dimexpr\linewidth-1.5ex-1pt\relax]{block~body}%
- \usebeamerfont{block~body}%
- \ifbeamercolorempty[bg]{block~body}{\vskip-.25ex}{\vskip-\__ptxcd_block_colorsep:}\vbox{}%
+\par\vskip\medskipamount%
+\begin{beamercolorbox}[wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,sep=.5pt,
+leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
+]{block~title}
+\ifx\insertblocktitle\@empty
+\else
+\begin{beamercolorbox}[colsep*=\__ptxcd_block_colorsep:,
+ wd=\dimexpr\linewidth-1pt-1.5ex\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*=\__ptxcd_block_colorsep:,vmode, wd=\dimexpr\linewidth-1.5ex-1pt\relax]{block~body}%
+\usebeamerfont{block~body}%
+\ifbeamercolorempty[bg]{block~body}{\vskip-.25ex}{\vskip-\__ptxcd_block_colorsep:}\vbox{}%
}
\defbeamertemplate*{block~end}{TUDa}
- {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
-
+{\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
\defbeamertemplate*{block~alerted~begin}{TUDa}{
- \par\vskip\medskipamount%
- \begin{beamercolorbox}[
- wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
- sep=1.5pt,
- leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
- ]{block~frame~alerted}
- \ifx\insertblocktitle\@empty
- \else
- \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~title~alerted}
- \usebeamerfont*{block~title~alerted}\insertblocktitle%
- \end{beamercolorbox}%
- \vskip1.5pt\par\nointerlineskip
- \fi
- \leavevmode
- \usebeamerfont{block~body~alerted}%
- \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~body~alerted}%
+\par\vskip\medskipamount%
+\begin{beamercolorbox}[
+wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
+sep=1.5pt,
+leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
+]{block~frame~alerted}
+\ifx\insertblocktitle\@empty
+\else
+\begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~title~alerted}
+\usebeamerfont*{block~title~alerted}\insertblocktitle%
+\end{beamercolorbox}%
+\vskip1.5pt\par\nointerlineskip
+\fi
+\leavevmode
+\usebeamerfont{block~body~alerted}%
+\begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~body~alerted}%
}
\defbeamertemplate*{block~alerted~end}{TUDa}
- {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
-
-
+{\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
\defbeamertemplate*{block~example~begin}{TUDa}{
- \par\vskip\medskipamount%
- \begin{beamercolorbox}[
- wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
- sep=1.5pt,
- leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
- ]{block~frame~example}
- \ifx\insertblocktitle\@empty
- \else
- \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~title~example}
- \usebeamerfont*{block~title~example}\insertblocktitle%
- \end{beamercolorbox}%
+\par\vskip\medskipamount%
+\begin{beamercolorbox}[
+wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
+sep=1.5pt,
+leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\__ptxcd_block_colorsep:}},
+]{block~frame~example}
+\ifx\insertblocktitle\@empty
+\else
+\begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~title~example}
+\usebeamerfont*{block~title~example}\insertblocktitle%
+\end{beamercolorbox}%
\vskip1.5pt\par\nointerlineskip
- \fi
- \leavevmode
- \usebeamerfont{block~body~example}%
- \begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~body~example}%
+\fi
+\leavevmode
+\usebeamerfont{block~body~example}%
+\begin{beamercolorbox}[wd=\dim_eval:n {\linewidth-1.5ex-3pt},colsep*=\__ptxcd_block_colorsep:]{block~body~example}%
}
\defbeamertemplate*{block~example~end}{TUDa}
- {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
-
-
-
+{\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
\endinput
+%%
+%% End of file `beamerinnerthemeTUDa.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2008.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2008.sty
index 55644e97664..7f846afb74b 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2008.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2008.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerinnerthemeTUDa2008.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerinnerthemeTUDa2008.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerinnerthemeTUDa.dtx (with options: `package,2008')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,105 +21,98 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage{beamerinnerthemeTUDa2008}{2024-04-21}{3.37}{Inner~beamer~theme~of~tuda-ci, compatibility for design of 2008}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplPackage{beamerinnerthemeTUDa2008}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci, compatibility for design of 2008}
\mode<presentation>
-
\RequirePackage{beamerinnerthemeTUDa2008}
-
\defbeamertemplate*{title~ page}{TUDa}[1][]{
- \nointerlineskip
- \vspace{\dim_eval:n {-\c_ptxcd_largerule_dim}}
- \hbox_set:Nn \l__ptxcd_titlehead_box {
- \parbox{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim}{%
- \begin{beamercolorbox}[
- wd=\linewidth,
- sep=\g__ptxcd_beamer_logosep_dim,
- ]{title}
- \raggedright
- \usebeamerfont{title}
- \skip_horizontal:n {1ex}
- \strut\parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-2ex\relax}{
- \inserttitle
- \par
- }
- \hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\box_use:N \g__ptxcd_logo_box}
- \ifx\insertsubtitle\@empty
- \else
- \par\vspace{\c_ptxcd_largerule_dim}
- \skip_horizontal:n {1ex}\parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-2ex\relax}{
- \usebeamerfont{subtitle}\insertsubtitle
- }
- \fi
- \end{beamercolorbox}
-
- \bool_if:NT \g_ptxcd_authorontitle_bool {
- \par\nointerlineskip
- \begin{beamercolorbox}[
- wd=\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
- \end{beamercolorbox}
- \par\nointerlineskip
- \begin{beamercolorbox}[
- wd=\linewidth,
- sep=\c_ptxcd_largerule_dim,
- ]{title}
- \raggedright
- \skip_horizontal:n {1ex}
- \parbox[t]{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim-2ex\relax}{
- \ifx\insertauthor\@empty
- \else
- \usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par
- \fi
- \ifx\insertauthor\@empty
- \else
- \usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute
- \fi
- }
- \end{beamercolorbox}
- }
- }
- }
- \box_use:N \l__ptxcd_titlehead_box
- \nointerlineskip\begin{beamercolorbox}[
- wd=\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
- \end{beamercolorbox}
- \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\textheight-\box_ht:N\l__ptxcd_titlehead_box-\box_dp:N \l__ptxcd_titlehead_box
- +\c_ptxcd_largerule_dim-.5\c_ptxcd_rulesep_dim-\c_ptxcd_smallrule_dim}
- \let\height\l__ptxcd_titlegraphic_ht_dim
- \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim}
- \let\width\l__ptxcd_titlegraphic_wd_dim
- \nointerlineskip
- \begin{beamercolorbox}[wd=\width,center]{titlegraphic}
- \raisebox{-\c_ptxcd_largerule_dim}[\dim_eval:n {\height-\c_ptxcd_largerule_dim}][0pt]{\inserttitlegraphic}
- \end{beamercolorbox}
+\nointerlineskip
+\vspace{\dim_eval:n {-\c_ptxcd_largerule_dim}}
+\hbox_set:Nn \l__ptxcd_titlehead_box {
+\parbox{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim}{%
+\begin{beamercolorbox}[
+wd=\linewidth,
+sep=\g__ptxcd_beamer_logosep_dim,
+]{title}
+\raggedright
+\usebeamerfont{title}
+\skip_horizontal:n {1ex}
+\strut\parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-2ex\relax}{
+\inserttitle
+\par
+}
+\hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\box_use:N \g__ptxcd_logo_box}
+\ifx\insertsubtitle\@empty
+\else
+\par\vspace{\c_ptxcd_largerule_dim}
+\skip_horizontal:n {1ex}\parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-2ex\relax}{
+\usebeamerfont{subtitle}\insertsubtitle
+}
+\fi
+\end{beamercolorbox}
+\bool_if:NT \g_ptxcd_authorontitle_bool {
+\par\nointerlineskip
+\begin{beamercolorbox}[
+wd=\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
+\end{beamercolorbox}
+\par\nointerlineskip
+\begin{beamercolorbox}[
+wd=\linewidth,
+sep=\c_ptxcd_largerule_dim,
+]{title}
+\raggedright
+\skip_horizontal:n {1ex}
+\parbox[t]{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim-2ex\relax}{
+\ifx\insertauthor\@empty
+\else
+\usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par
+\fi
+\ifx\insertauthor\@empty
+\else
+\usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute
+\fi
+}
+\end{beamercolorbox}
+}
+}
+}
+\box_use:N \l__ptxcd_titlehead_box
+\nointerlineskip\begin{beamercolorbox}[
+wd=\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule}
+\end{beamercolorbox}
+\dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\textheight-\box_ht:N\l__ptxcd_titlehead_box-\box_dp:N \l__ptxcd_titlehead_box
++\c_ptxcd_largerule_dim-.5\c_ptxcd_rulesep_dim-\c_ptxcd_smallrule_dim}
+\let\height\l__ptxcd_titlegraphic_ht_dim
+\dim_set:Nn \l__ptxcd_titlegraphic_wd_dim{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim}
+\let\width\l__ptxcd_titlegraphic_wd_dim
+\nointerlineskip
+\begin{beamercolorbox}[wd=\width,center]{titlegraphic}
+\raisebox{-\c_ptxcd_largerule_dim}[\dim_eval:n {\height-\c_ptxcd_largerule_dim}][0pt]{\inserttitlegraphic}
+\end{beamercolorbox}
}
-
-%Itemize Items
\defbeamertemplate*{itemize~item}{TUDa}{
- \usebeamerfont*{itemize~item}
- \raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}
+\usebeamerfont*{itemize~item}
+\raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}
}
\defbeamertemplate*{itemize~subitem}{TUDa}{
- \usebeamerfont*{itemize~subitem}
- \setlength{\fboxsep}{\z@}\setlength{\fboxrule}{1pt}
- \raise\dimexpr.4\ht\strutbox-.2ex-\fboxrule\hbox{\fbox{\color{bg}\rule{.4ex}{.4ex}}}
+\usebeamerfont*{itemize~subitem}
+\setlength{\fboxsep}{\z@}\setlength{\fboxrule}{1pt}
+\raise\dimexpr.4\ht\strutbox-.2ex-\fboxrule\hbox{\fbox{\color{bg}\rule{.4ex}{.4ex}}}
}
\defbeamertemplate*{itemize~subsubitem}{TUDa}{\usebeamerfont*{itemize~subsubitem}\hbox{--}}
-
\mode<all>
-
\endinput
-
+%%
+%% End of file `beamerinnerthemeTUDa2008.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2023.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2023.sty
index e4780a9fefd..a9adc043a92 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2023.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerinnerthemeTUDa2023.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerinnerthemeTUDa2023.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerinnerthemeTUDa2023.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerinnerthemeTUDa.dtx (with options: `package,2023')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,186 +21,150 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\NeedsTeXFormat{LaTeX2e}[2022/10/01]
-\ProvidesExplPackage{beamerinnerthemeTUDa2023}{2024-04-21}{3.37}{Inner~beamer~theme~of~tuda-ci,~Design~of~2023}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplPackage{beamerinnerthemeTUDa2023}{2025-01-26}{4.00}{Inner beamer theme of tuda-ci, Design of 2023}
\mode<presentation>
-
\RequirePackage{beamerinnerthemeTUDa}
-
\ExplSyntaxOff
\RequirePackage{multicol}
\ExplSyntaxOn
-
\AddToHook{begindocument}[ptxcd-titlegraphic]{
- \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\paperheight}
- \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth}
+\dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\paperheight}
+\dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth}
}
-
\defbeamertemplate*{titlegraphic}{TUDa2023}{{
- \def\width{\l__ptxcd_titlegraphic_wd_dim}
- \def\height{\l__ptxcd_titlegraphic_ht_dim}
- \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par
- }}
-
+\def\width{\l__ptxcd_titlegraphic_wd_dim}
+\def\height{\l__ptxcd_titlegraphic_ht_dim}
+\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par
+}}
\def\ps@titlegraphic@titlepage{%
- \setbeamertemplate{background}{\usebeamertemplate{titlegraphic}}
- \@nameuse{ps@navigation}%
+\setbeamertemplate{background}{\usebeamertemplate{titlegraphic}}
+\@nameuse{ps@navigation}%
}
-
\defbeamertemplate*{title~page}{TUDa2023}[1][]
{
- \ifbeamer@plainframe
- \skip_vertical:n {\dimexpr\paperheight/38- \beamer@frametopskip}%
- \color{red}
- \hspace*{\fill}
- \raisebox{\dimexpr-\height+.33\c_ptxcd_logoheight_dim}{\includegraphics[height=\dim_use:N \c_ptxcd_logoheight_dim]{tuda_logo}}\hspace*{\dimexpr.7pt-\beamer@rightmargin}
- \par
- \vskip1.39\baselineskip
- \fi
- \vbox{}
- \thispagestyle{titlegraphic@titlepage}
- \vskip.185\paperheight
- \begingroup
- \centering
- \usebeamertemplate{title}
- % \vskip1em\par
- \bool_if:NT \g_ptxcd_authorontitle_bool {
- \usebeamertemplate{author}
- \usebeamertemplate{institute}
- }
- \usebeamertemplate{date}
- \endgroup
- \vfill
+\ifbeamer@plainframe
+\skip_vertical:n {\dimexpr\paperheight/38- \beamer@frametopskip}%
+\color{red}
+\hspace*{\fill}
+\raisebox{\dimexpr-\height+.33\c_ptxcd_logoheight_dim}{\includegraphics[height=\dim_use:N \c_ptxcd_logoheight_dim]{tuda_logo}}\hspace*{\dimexpr.7pt-\beamer@rightmargin}
+\par
+\vskip1.39\baselineskip
+\fi
+\vbox{}
+\thispagestyle{titlegraphic@titlepage}
+\vskip.185\paperheight
+\begingroup
+\centering
+\usebeamertemplate{title}
+\bool_if:NT \g_ptxcd_authorontitle_bool {
+\usebeamertemplate{author}
+\usebeamertemplate{institute}
+}
+\usebeamertemplate{date}
+\endgroup
+\vfill
}
-
\defbeamertemplate*{title}{TUDa2023}[1][]{%
- \begin{beamercolorbox}[sep=8pt,center,#1]{title}
- \usebeamerfont{title}\text_uppercase:n {\inserttitle}\par%
- \ifx\insertsubtitle\@empty%
- \else%
- \vskip.45em%
- {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
- \fi%
- \end{beamercolorbox}%
+\begin{beamercolorbox}[sep=8pt,center,#1]{title}
+\usebeamerfont{title}\text_uppercase:n {\inserttitle}\par%
+\ifx\insertsubtitle\@empty%
+\else%
+\vskip.45em%
+{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
+\fi%
+\end{beamercolorbox}%
}
-
\defbeamertemplate{author}{TUDa2023}[1][]{%
- \begin{beamercolorbox}[sep=8pt,center,#1]{author}
- \usebeamerfont{author}\insertauthor
- \end{beamercolorbox}
+\begin{beamercolorbox}[sep=8pt,center,#1]{author}
+\usebeamerfont{author}\insertauthor
+\end{beamercolorbox}
}
-
\defbeamertemplate{institute}{TUDa2023}[1][]{%
- \begin{beamercolorbox}[sep=8pt,center,#1]{institute}
- \usebeamerfont{institute}\insertinstitute
- \end{beamercolorbox}
+\begin{beamercolorbox}[sep=8pt,center,#1]{institute}
+\usebeamerfont{institute}\insertinstitute
+\end{beamercolorbox}
}
-
\defbeamertemplate{date}{TUDa2023}[1][]{%
- \begin{beamercolorbox}[sep=8pt,center,#1]{date}
- \usebeamerfont{date}\insertdate
- \end{beamercolorbox}
+\begin{beamercolorbox}[sep=8pt,center,#1]{date}
+\usebeamerfont{date}\insertdate
+\end{beamercolorbox}
}
-
-% partner/sub logo
\box_new:N \g__ptxcd_partnerlogo_box
\dim_new:N \l__ptxcd_partnerlogo_ht_dim
\dim_gset:Nn \l__ptxcd_partnerlogo_ht_dim {.6\c_ptxcd_logoheight_dim}
\dim_new:N \l__ptxcd_partnerlogo_wd_dim
\dim_gset:Nn \l__ptxcd_partnerlogo_wd_dim {1.6\c_ptxcd_logoheight_dim}
-
\box_new:N \g__ptxcd_sublogo_box
\dim_new:N \l__ptxcd_sublogo_wd_dim
\dim_gset:Nn \l__ptxcd_sublogo_wd_dim {2.2\c_ptxcd_logoheight_dim}
\dim_new:N \l__ptxcd_sublogo_ht_dim
\dim_gset:Nn \l__ptxcd_sublogo_ht_dim {.6\c_ptxcd_logoheight_dim}
-
\cs_new:Nn \__ptxcd_setup_logo_box:nnn {
- \begingroup
- \def\width{\use:c {l__ptxcd_#2_wd_dim}}
- \def\height{\use:c {l__ptxcd_#2_ht_dim}}
- \IfBooleanTF{#1}{
- \hbox_gset:cn {g__ptxcd_#2_box} {#3}
- \box_gautosize_to_wd_and_ht_plus_dp:cnn {g__ptxcd_#2_box} {\width} {\height}
- } {
- \hbox_gset:cn {g__ptxcd_#2_box} {
- #3
- }
- }
- \endgroup
+\begingroup
+\def\width{\use:c {l__ptxcd_#2_wd_dim}}
+\def\height{\use:c {l__ptxcd_#2_ht_dim}}
+\IfBooleanTF{#1}{
+\hbox_gset:cn {g__ptxcd_#2_box} {#3}
+\box_gautosize_to_wd_and_ht_plus_dp:cnn {g__ptxcd_#2_box} {\width} {\height}
+} {
+\hbox_gset:cn {g__ptxcd_#2_box} {
+#3
+}
+}
+\endgroup
}
-
\NewDocumentCommand{\partnerlogo}{sm}{
- \__ptxcd_setup_logo_box:nnn {#1} {partnerlogo} {#2}
+\__ptxcd_setup_logo_box:nnn {#1} {partnerlogo} {#2}
}
-
\NewDocumentCommand{\sublogo}{sms}{
- \__ptxcd_setup_logo_box:nnn {#1} {sublogo} {#2}
- \IfBooleanT{#3}{
- \hbox_gset:Nn \g__ptxcd_sublogo_box {
- \hbox_unpack_drop:N \g__ptxcd_sublogo_box
- \hskip.6\l__ptxcd_sublogo_ht_dim
- }
- }
+\__ptxcd_setup_logo_box:nnn {#1} {sublogo} {#2}
+\IfBooleanT{#3}{
+\hbox_gset:Nn \g__ptxcd_sublogo_box {
+\hbox_unpack_drop:N \g__ptxcd_sublogo_box
+\hskip.6\l__ptxcd_sublogo_ht_dim
+}
+}
}
-
-% section page
\defbeamertemplate*{section~page}{TUDa2023}[1][]
{%
- \ifbeamer@inframe
- \begingroup
- \vbox{}
- \vspace{0pt plus 1 filll}
- \begin{beamercolorbox}[#1]{section title}
- \usebeamerfont{section~title}\text_uppercase:n {\secname}\par
- \end{beamercolorbox}
- {\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
- \par
- \skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
- \endgroup
- \else
- \begin{frame}[b]
- \begin{beamercolorbox}[#1]{section title}
- \usebeamerfont{section~title}\text_uppercase:n {\secname}\par
- \end{beamercolorbox}
- {\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
- \skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
- \end{frame}
- \fi
+\ifbeamer@inframe
+\begingroup
+\vbox{}
+\vspace{0pt plus 1 filll}
+\begin{beamercolorbox}[#1]{section title}
+\usebeamerfont{section~title}\text_uppercase:n {\secname}\par
+\end{beamercolorbox}
+{\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
+\par
+\skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
+\endgroup
+\else
+\begin{frame}[b]
+\begin{beamercolorbox}[#1]{section title}
+\usebeamerfont{section~title}\text_uppercase:n {\secname}\par
+\end{beamercolorbox}
+{\usebeamerfont{section~name}\usebeamercolor[fg]{section~name}\sectionname{}~\insertsectionnumber}
+\skip_vertical:n {\c_ptxcd_logoheight_dim+\baselineskip}
+\end{frame}
+\fi
}
-
-% toc
-% original definition can be found in beamerbasetoc.sty which is part of the beamer package
-% Copyright 2003--2007 by Till Tantau
-% Copyright 2010 by Vedran Mileti\'c
-% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Public License.
-%
-% See the file LICENSE.md for more details.
\ExplSyntaxOn
\cs_new:Nn \__ptxcd_toc_check: {
\int_compare:nNnT {\g__ptxcd_beamer_toc_col_int} = {3} {
-% if all subsections/subsubsections are hidden we can have two columns
-\str_if_eq:eeTF {
+\str_if_eq:eeTF {
\beamer@toc@css
\beamer@toc@oss
\beamer@toc@ooss
@@ -203,121 +175,100 @@
}{
\prg_replicate:nn {7} {hide}
}{
-% if all subsections/subsubsections are hidden standard twocolumn layout will be choosen
\int_set:Nn \g__ptxcd_beamer_toc_col_int {2}
} {
-% check if there are subsections/subsubsections
\int_gzero:N \g_tmpa_int
{\makeatletter%%
- \let\babel@toc\use_none:nn
- \let\beamer@sectionintoc \use_none:nnnnn
- \def\beamer@subsectionintoc##1##2##3##4##5##6{\int_gset:Nn \g_tmpa_int {1}\endinput}
- \def\beamer@subsubsectionintoc##1##2##3##4##5##6##7{\int_gset:Nn \g_tmpa_int {1}\endinput}
- \@input{\jobname.toc}%
+\let\babel@toc\use_none:nn
+\let\beamer@sectionintoc \use_none:nnnnn
+\def\beamer@subsectionintoc##1##2##3##4##5##6{\int_gset:Nn \g_tmpa_int {1}\endinput}
+\def\beamer@subsubsectionintoc##1##2##3##4##5##6##7{\int_gset:Nn \g_tmpa_int {1}\endinput}
+\@input{\jobname.toc}%
}
\int_compare:nNnT {\g_tmpa_int} = {1} {\int_set:Nn \g__ptxcd_beamer_toc_col_int {1}}
}
}
}
-
\def\beamer@twocoltableofcontents[#1]{%
- \begin{beamercolorbox}[wd=\paperwidth]{}%
- \def\beamer@toc@cs{show}%
- \def\beamer@toc@os{show}%
- \def\beamer@toc@css{show}%
- \def\beamer@toc@oss{show}%
- \def\beamer@toc@ooss{show}%
- \def\beamer@toc@csss{show}%
- \def\beamer@toc@osss{show}%
- \def\beamer@toc@oosss{show}%
- \def\beamer@toc@ooosss{show}%
- \beamer@showpartnumber=\c@part%
- \beamer@pausesectionsfalse%
- \beamer@pausesubsectionsfalse%
- \def\beamer@tocsections{<*>}%
- \setkeys{beamertoc}{firstsection=1}%
- \setkeys{beamertoc}{#1}%
- \UseName{__ptxcd_toc_check:}
- \int_compare:nNnT {\g__ptxcd_beamer_toc_col_int} > {1} {
- \setlength{\columnsep}{5ex}%
- \raggedcolumns
- \begin{multicols}{2}
- }
- {\makeatletter%
- \pause[0]%
- \@input{\jobname.toc}%
- }%
- \int_compare:nNnT {\g__ptxcd_beamer_toc_col_int} > {1} {
- \end{multicols}%
- }
- \end{beamercolorbox}%
- \vspace*{.68\baselineskip}%}
+\begin{beamercolorbox}[wd=\paperwidth]{}%
+\def\beamer@toc@cs{show}%
+\def\beamer@toc@os{show}%
+\def\beamer@toc@css{show}%
+\def\beamer@toc@oss{show}%
+\def\beamer@toc@ooss{show}%
+\def\beamer@toc@csss{show}%
+\def\beamer@toc@osss{show}%
+\def\beamer@toc@oosss{show}%
+\def\beamer@toc@ooosss{show}%
+\beamer@showpartnumber=\c@part%
+\beamer@pausesectionsfalse%
+\beamer@pausesubsectionsfalse%
+\def\beamer@tocsections{<*>}%
+\setkeys{beamertoc}{firstsection=1}%
+\setkeys{beamertoc}{#1}%
+\UseName{__ptxcd_toc_check:}
+\int_compare:nNnT {\g__ptxcd_beamer_toc_col_int} > {1} {
+\setlength{\columnsep}{5ex}%
+\raggedcolumns
+\begin{multicols}{2}
+}
+{\makeatletter%
+\pause[0]%
+\@input{\jobname.toc}%
+}%
+\int_compare:nNnT {\g__ptxcd_beamer_toc_col_int} > {1} {
+\end{multicols}%
+}
+\end{beamercolorbox}%
+\vspace*{.68\baselineskip}%}
}
-
\define@key{beamertoc}{columns}{\keys_set:nn {ptxcd/beamer/inner} {toc-columns=#1}}
-
\def\beamer@tableofcontents[#1]{%
- \ifbeamer@inframe
- \beamer@twocoltableofcontents[#1]
- \else
- \begin{frame}[b]{\contentsname}
- \beamer@twocoltableofcontents[#1]
- \end{frame}
- \fi
+\ifbeamer@inframe
+\beamer@twocoltableofcontents[#1]
+\else
+\begin{frame}[b]{\contentsname}
+\beamer@twocoltableofcontents[#1]
+\end{frame}
+\fi
}
-
-
-
\defbeamertemplate*{section~in~toc}{TUDa}{%
- \ifvmode\nointerlineskip\fi
- \leavevmode
- \ifnum\beamer@tempcount>\beamer@toclastsection
- \else
- \ifnum\beamer@tempcount>0\relax
- \usebeamertemplate***{toc~section~number}%
- \fi\fi%
- \usebeamertemplate***{section~entry}%
- \par
+\ifvmode\nointerlineskip\fi
+\leavevmode
+\ifnum\beamer@tempcount>\beamer@toclastsection
+\else
+\ifnum\beamer@tempcount>0\relax
+\usebeamertemplate***{toc~section~number}%
+\fi\fi%
+\usebeamertemplate***{section~entry}%
+\par
}
-
-
-% (sub-)section in toc: default
\cs_new:Nn \__ptxcd_toc_sub_level_entry_numbered:n {
- \exp_args:Nc \tl_if_blank:nF {inserttoc#1subsectionnumber}
- {\hphantom{0}\llap{\use:c {inserttoc#1subsectionnumber}}\hspace{.5em}}
+\exp_args:Nc \tl_if_blank:nF {inserttoc#1subsectionnumber}
+{\hphantom{0}\llap{\use:c {inserttoc#1subsectionnumber}}\hspace{.5em}}
}
-
\cs_new:Nn \__ptxcd_toc_sub_level_entry_itemize:n {
- \strut
- \usebeamertemplate{itemize~#1item}\hspace{.5em}
+\strut
+\usebeamertemplate{itemize~#1item}\hspace{.5em}
}
-
\defbeamertemplate*{subsection~in~toc}{TUDa}[1][false]{\leavevmode
- \leftskip=12.4mm
- \use:c {__ptxcd_toc_sub_level_entry_#1:n} {}
- \inserttocsubsection\par}
-
+\leftskip=12.4mm
+\use:c {__ptxcd_toc_sub_level_entry_#1:n} {}
+\inserttocsubsection\par}
\defbeamertemplate*{subsubsection~in~toc}{TUDa}[1][false]{\leavevmode
- \leftskip=\dimexpr12.4mm+.5em\relax
- \use:c {__ptxcd_toc_sub_level_entry_#1:n} {sub}
- \inserttocsubsubsection\par}
-
-
+\leftskip=\dimexpr12.4mm+.5em\relax
+\use:c {__ptxcd_toc_sub_level_entry_#1:n} {sub}
+\inserttocsubsubsection\par}
\defbeamertemplate*{toc~section~number}{TUDa}{
- \hphantom{00}\llap{\inserttocsectionnumber}\hspace{.5em}
+\hphantom{00}\llap{\inserttocsectionnumber}\hspace{.5em}
}
-
\defbeamertemplate*{section~entry}{TUDa}{
- \strut\inserttocsection\strut
+\strut\inserttocsection\strut
}
-
-
-%Itemize Items
\defbeamertemplate*{itemize~item}{TUDa}{\raise.2\baselineskip\hbox{\vrule width .5ex height .5ex}}
\defbeamertemplate*{itemize~subitem}{TUDa}{\raise.2\baselineskip\hbox{\small\vrule width .5ex height .5ex}}
\defbeamertemplate*{itemize~subsubitem}{TUDa}{\raise.2\baselineskip\hbox{\small\vrule width .5ex height 1ex}}
-
\mode<all>
-
\endinput
-
+%%
+%% End of file `beamerinnerthemeTUDa2023.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty
index 38f1a7b00a2..60f1ba60e22 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa.sty
@@ -1,10 +1,20 @@
-%% This is file `beamerouterthemeTUDa.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerouterthemeTUDa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerouterthemeTUDa.dtx (with options: `package,initialize,main')
+%% tuda-ci.dtx (with options: `options,beamer-outer')
+%% beamerouterthemeTUDa.dtx (with options: `package,main,body')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,212 +23,213 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage{beamerouterthemeTUDa}{2024-04-21}{3.37}{Outer~beamer~theme~of~tuda-ci~design~of~2023}
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplPackage{beamerouterthemeTUDa}{2025-01-26}{4.00}{Outer beamer theme of tuda-ci design of 2023}
\PassOptionsToPackage{paper=slide}{tudarules}
\RequirePackage{tudarules}
-
+\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
\dim_new:N \l__ptxcd_beamer_extraindent_dim
\dim_new:N {\g__ptxcd_beamer_sep_dim}
\dim_gset:Nn \g__ptxcd_beamer_sep_dim {.3\c_ptxcd_logoheight_dim}
\dim_new:N \g__ptxcd_beamer_logosep_dim
\dim_gset:Nn \g__ptxcd_beamer_logosep_dim{2mm}
-
-
\cs_if_exist:NF \g__ptxcd_colorframetitle_bool {\bool_new:N \g__ptxcd_colorframetitle_bool}
-
\keys_define:nn {ptxcd/beamer/outer} {
- logo .bool_gset:N = \g_ptxcd_headlinelogo_bool,
- logo .default:n =true,
- logo .initial:n =true,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- colorframetitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorframetitle},
- centerframetitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {centerframetitle},
- framebgcolor .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {framebgcolor},
- singleframebgcolor .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {singleframebgcolor},
- headsepline .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {headsepline},
- extendedspace .bool_gset:N = \g__ptxcd_extended_space_bool,
- headrule .bool_gset:N = \g__ptxcd_headrule_bool,
- uppercase-frametitle .bool_gset:N = \g__ptxcd_uppercase_frametitle_bool,
- uppercase-frametitle .default:n = true,
- uppercase-frametitle .initial:n = true,
+ logo .bool_gset:N = \g_ptxcd_headlinelogo_bool,
+ logo .default:n =true,
+ logo .initial:n =true,
+ colorframetitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorframetitle},
+ centerframetitle
+ .code:n = \msg_warning:nnn {tudabeamer} {option-removed},
+ framebgcolor
+ .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {framebgcolor},
+ singleframebgcolor .code:n =
+ \msg_warning:nnn {tudabeamer} {option-removed} {singleframebgcolor},
+ headsepline
+ .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {headsepline},
+ extendedspace .bool_gset:N = \g__ptxcd_extended_space_bool,
+ headrule .bool_gset:N = \g__ptxcd_headrule_bool,
+ uppercase-frametitle .bool_gset:N = \g__ptxcd_uppercase_frametitle_bool,
+ uppercase-frametitle .default:n = true,
+ uppercase-frametitle .initial:n = true,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+%% color options
+%% color options
}
-
-\define@key{beamerframe}{bgcolor}{
- \keys_set:nn {ptxcd/beamer/outer} {
- singleframebgcolor=#1
- }
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ beamer/outer
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
\define@key{beamerframe}{uppercase}{
- \keys_set:nn {ptxcd/beamer/outer} {
- uppercase-frametitle=#1
- }
+ \keys_set:nn {ptxcd/beamer/outer} {
+ uppercase-frametitle=#1
+ }
}
-
\ProcessKeyOptions[ptxcd/beamer/outer]
-
-
\mode<presentation>
-
\RequirePackage{graphicx}
-
-\bool_if:NT \g__ptxcd_colorframetitle_bool
- {\dim_set:Nn \l__ptxcd_beamer_extraindent_dim {\g__ptxcd_beamer_logosep_dim}}
-
\setbeamersize{
- text~margin~left=\dim_eval:n {\paperwidth/34},
- text~margin~right=\dim_eval:n {\paperwidth/38}
-}
+ text~margin~left=\dim_eval:n {
+ \paperwidth/34
+},
+ text~margin~right=\dim_eval:n {
+ \paperwidth/38
+ }
+}
\cs_new:Nn \__ptxcd_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}}
-
-%Logo
-
\box_new:N \g__ptxcd_logo_box
\hbox_gset:Nn \g__ptxcd_logo_box {%
- \raisebox{\dim_eval:n {-\height+.33\c_ptxcd_logoheight_dim}}{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}%
+ \raisebox{\dim_eval:n {-\height+.33\c_ptxcd_logoheight_dim}}
+ {\__ptxcd_insert_logo:}%
+}
+\RenewDocumentCommand{\logo}{sm}{
+\IfBooleanTF{#1}{
+\setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}
+}{
+\setbeamertemplate{logo}{#2}
+}
+}
+\newcommand*{\setupTUDaFrame}[1]{
+ \keys_set:nn {ptxcd/beamer/outer} {#1}
}
-
-\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
-
\defbeamertemplate*{footline}{TUDa2023}{
- \begin{beamercolorbox}[leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin]{footline}
- \usebeamerfont{footline}
- \rlap{\insertshortdate}
- \hfill
- \makebox[0pt][c]{
- \bool_set_false:N \l_ptxcd_separate_bool
- \clist_map_variable:nNn {department, institute, author} \l_tmpa_tl {
- \tl_if_empty:cF {beamer@short\l_tmpa_tl} {
- \bool_if:NTF \l_ptxcd_separate_bool
- {\usebeamertemplate{footline~sep}}
- {\bool_set_true:N \l_ptxcd_separate_bool}
- \use:c {insertshort\l_tmpa_tl}
- }
- }
- }
- \hfill
- \llap{\insertframenumber}
- \par\vspace{-\dp\strutbox}
- \end{beamercolorbox}
- \skip_vertical:n {\dimexpr\paperheight/32-\dp\strutbox}
+ \begin{beamercolorbox}[leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin]{footline}
+ \usebeamerfont{footline}
+ \rlap{\insertshortdate}
+ \hfill
+ \makebox[0pt][c]{
+ \bool_set_false:N \l_ptxcd_separate_bool
+ \clist_map_variable:nNn {department, institute, author} \l_tmpa_tl {
+ \tl_if_empty:cF {beamer@short\l_tmpa_tl} {
+ \bool_if:NTF \l_ptxcd_separate_bool
+ {\usebeamertemplate{footline~sep}}
+ {\bool_set_true:N \l_ptxcd_separate_bool}
+ \use:c {insertshort\l_tmpa_tl}
+ }
+ }
+ }
+ \hfill
+ \llap{\insertframenumber}
+ \par\vspace{-\dp\strutbox}
+ \end{beamercolorbox}
+ \skip_vertical:n {\dimexpr\paperheight/32-\dp\strutbox}
}
-
\setbeamertemplate{footline~sep}{\space\smash{\rule[-.5\dp\strutbox]{.25pt}{\ht\strutbox}}\space}
-
-\RenewDocumentCommand{\logo}{sm}{
- \IfBooleanTF{#1}{
- \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}
- }{
- \setbeamertemplate{logo}{#2}
- }
-}
-
\defbeamertemplate*{headline}{TUDa2023}{
- \bool_if:NT \g__ptxcd_headrule_bool {
- \cs_if_exist:NF \ptxcd_beamer_headrule {
- \ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth]{ptxcd_beamer_headrule}
- }
- \ptxcd_beamer_headrule\par\nointerlineskip
- }
- \bool_if:NTF \g__ptxcd_extended_space_bool {
- \bool_if:NTF \g__ptxcd_headrule_bool {
- \skip_vertical:n {\dim_eval:n {+\paperheight/38}}
- \strut
- } {
- \skip_vertical:n {\dim_eval:n {\paperheight/16}}
- }
- }{
- \skip_vertical:n {\dimexpr\paperheight/38}
- \hspace*{\beamer@leftmargin}\rlap{\usebeamertemplate***{title~in~head/foot}}
- }
- \hspace*{\fill}
-
- \bool_if:NT \g_ptxcd_headlinelogo_bool {
- %partnerlogo
- \bool_if:NT \g__ptxcd_extended_space_bool \smash {
- \raisebox{\dimexpr-\height+\ht\strutbox}{
- \box_use:N \g__ptxcd_partnerlogo_box
- }
- }
-
- \skip_horizontal:n {\dimexpr\paperheight/38}
- %logo
- \bool_if:NTF \g__ptxcd_headrule_bool {
- \raisebox{2mm}[0pt][0pt]{\setlength{\fboxsep}{\z@}\colorbox{white}{\rule{\z@}{\dim_eval:n {\box_ht:N \g__ptxcd_logo_box+\box_ht:N \ptxcd_beamer_headrule_box + \box_dp:N \ptxcd_beamer_headrule_box+1pt}}\box_use:N \g__ptxcd_logo_box}}
- \hspace*{10pt}
- } {
- \bool_if:NT \g__ptxcd_extended_space_bool \smash {\box_use:N \g__ptxcd_logo_box}
- \hspace*{.7pt}
- }
- }
- \par
+ \bool_if:NT \g__ptxcd_headrule_bool {
+ \cs_if_exist:NF \ptxcd_beamer_headrule {
+ \ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth]{ptxcd_beamer_headrule}
+ }
+ \ptxcd_beamer_headrule\par\nointerlineskip
+ }
+ \bool_if:NTF \g__ptxcd_extended_space_bool {
+ \bool_if:NTF \g__ptxcd_headrule_bool {
+ \skip_vertical:n {\dim_eval:n {+\paperheight/38}}
+ \strut
+ } {
+ \skip_vertical:n {\dim_eval:n {\paperheight/16}}
+ }
+ }{
+ \skip_vertical:n {\dimexpr\paperheight/38}
+ \hspace*{\beamer@leftmargin}\rlap{\usebeamertemplate***{title~in~head/foot}}
+ }
+ \hspace*{\fill}
+ \bool_if:NT \g_ptxcd_headlinelogo_bool {
+ %partnerlogo
+ \bool_if:NT \g__ptxcd_extended_space_bool \smash {
+ \raisebox{\dimexpr-\height+\ht\strutbox}{
+ \box_use:N \g__ptxcd_partnerlogo_box
+ }
+ }
+ \skip_horizontal:n {\dimexpr\paperheight/38}
+ %logo
+ \bool_if:NTF \g__ptxcd_headrule_bool {
+ \raisebox{2mm}[0pt][0pt]{\setlength{\fboxsep}{\z@}\colorbox{white}{\rule{\z@}{\dim_eval:n {\box_ht:N \g__ptxcd_logo_box+\box_ht:N \ptxcd_beamer_headrule_box + \box_dp:N \ptxcd_beamer_headrule_box+1pt}}\box_use:N \g__ptxcd_logo_box}}
+ \hspace*{10pt}
+ } {
+ \bool_if:NT \g__ptxcd_extended_space_bool \smash {\box_use:N \g__ptxcd_logo_box}
+ \hspace*{.7pt}
+ }
+ }
+ \par
}
-
\setbeamertemplate{title~in~head/foot}{
- \bool_set_false:N \l_ptxcd_separate_bool
- \tl_if_empty:NF {\beamer@shorttitle} {
- \bool_set_true:N \l_ptxcd_separate_bool
- \text_uppercase:n {\beamer@shorttitle}
- }
- \tl_if_empty:NF {\beamer@shortauthor} {
- \bool_if:NT \l_ptxcd_separate_bool {
- \space/\space
- }
- \text_uppercase:n {\beamer@shortauthor}
- }
+ \bool_set_false:N \l_ptxcd_separate_bool
+ \tl_if_empty:NF {\beamer@shorttitle} {
+ \bool_set_true:N \l_ptxcd_separate_bool
+ \text_uppercase:n {\beamer@shorttitle}
+ }
+ \tl_if_empty:NF {\beamer@shortauthor} {
+ \bool_if:NT \l_ptxcd_separate_bool {
+ \space/\space
+ }
+ \text_uppercase:n {\beamer@shortauthor}
+ }
}
-
-
\defbeamertemplate*{sidebar~right}{TUDa2023}{
- \bool_if:NT \g_ptxcd_headlinelogo_bool {
- \vspace{\c_ptxcd_logoheight_dim}
- \llap{\box_use:N \g__ptxcd_sublogo_box}
- }
+ \bool_if:NT \g_ptxcd_headlinelogo_bool {
+ \vspace{\c_ptxcd_logoheight_dim}
+ \llap{\box_use:N \g__ptxcd_sublogo_box}
+ }
}
-
\defbeamertemplate*{frametitle}{TUDa2023}[1][left]{%
- \nointerlineskip%
- \bool_if:NF \g__ptxcd_extended_space_bool
- {\vskip.55ex}
- \begin{beamercolorbox}[
- wd=\dim_eval:n {\bool_if:NT \g__ptxcd_extended_space_bool {-\box_wd:N \g__ptxcd_logo_box } \box_if_empty:NF \g__ptxcd_sublogo_box {-\box_wd:N \g__ptxcd_sublogo_box - 1em}+ \textwidth},
- ]{frametitle}
- \usebeamerfont{frametitle}%
- \if@tempswa\else\csname beamer@fte#1\endcsname\fi%
- \vphantom{Ü}
- \bool_if:NT \g__ptxcd_uppercase_frametitle_bool \text_uppercase:n {\insertframetitle}\strut
- \par%
- {%
- \ifx\insertframesubtitle\@empty%
- \else%
- {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\text_uppercase:n {\insertframesubtitle}\strut\par}%
- \fi
- }%
- \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
- \end{beamercolorbox}
- \vskip.5ex
-}
-\newcommand*{\setupTUDaFrame}[1]{
- \keys_set:nn {ptxcd/beamer/outer} {#1}
+ \nointerlineskip%
+ \bool_if:NF \g__ptxcd_extended_space_bool
+ {\vskip.55ex}
+ \begin{beamercolorbox}[
+ wd=\dim_eval:n {\bool_if:NT \g__ptxcd_extended_space_bool {-\box_wd:N \g__ptxcd_logo_box } \box_if_empty:NF \g__ptxcd_sublogo_box {-\box_wd:N \g__ptxcd_sublogo_box - 1em}+ \textwidth},
+ ]{frametitle}
+ \usebeamerfont{frametitle}%
+ \if@tempswa\else\csname beamer@fte#1\endcsname\fi%
+ \vphantom{Ü}
+ \bool_if:NT \g__ptxcd_uppercase_frametitle_bool \text_uppercase:n {\insertframetitle}\strut
+ \par%
+ {%
+ \ifx\insertframesubtitle\@empty%
+ \else%
+ {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\text_uppercase:n {\insertframesubtitle}\strut\par}%
+ \fi
+ }%
+ \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
+ \end{beamercolorbox}
+ \vskip.5ex
}
-
\mode
<all>
-
\endinput
+%%
+%% End of file `beamerouterthemeTUDa.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa2008.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa2008.sty
index b74da09f609..923b395e258 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa2008.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerouterthemeTUDa2008.sty
@@ -1,10 +1,21 @@
-%% This is file `beamerouterthemeTUDa2008.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerouterthemeTUDa2008.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% beamerouterthemeTUDa.dtx (with options: `package,initialize,2008')
+%% tuda-ci.dtx (with options: `options,beamer-outer')
+%% beamerouterthemeTUDa.dtx (with options: `package,2008,body')
+%% beamerthemeTUDa2008.dtx (with options: `outer')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,168 +24,178 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{beamerouterthemeTUDa2008}{2024-04-21}{3.37}{Outer~beamer~theme~of~tuda-ci, compatibility for design of 2008}
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplPackage{beamerouterthemeTUDa2008}{2025-01-26}{4.00}{Outer beamer theme of tuda-ci, compatibility for design of 2008}
\PassOptionsToPackage{paper=slide}{tudarules}
\RequirePackage{tudarules}
-
+\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
\dim_new:N \l__ptxcd_beamer_extraindent_dim
\dim_new:N {\g__ptxcd_beamer_sep_dim}
\dim_gset:Nn \g__ptxcd_beamer_sep_dim {.3\c_ptxcd_logoheight_dim}
\dim_new:N \g__ptxcd_beamer_logosep_dim
\dim_gset:Nn \g__ptxcd_beamer_logosep_dim{2mm}
-
-
\cs_if_exist:NF \g__ptxcd_colorframetitle_bool {\bool_new:N \g__ptxcd_colorframetitle_bool}
-
\keys_define:nn {ptxcd/beamer/outer} {
- logo .bool_gset:N = \g_ptxcd_headlinelogo_bool,
- logo .default:n =true,
- logo .initial:n =true,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- colorframetitle .code:n = {
- \use:c {bool_gset_#1:N} \g__ptxcd_colorframetitle_bool
- \cs_if_exist_use:N \__ptxcd_setup_frametitle_color:
- },
- colorframetitle .default:n = true,
- centerframetitle .bool_gset:N = \g_ptxcd_centerframetitle_bool,
- centerframetitle .initial:n = false,
- centerframetitle .default:n = true,
- framebgcolor .choice:,
- framebgcolor / reset .code:n =
- \__ptxcd_reset_framebgcolor:
- ,
- framebgcolor / unknown .code:n = {
- \__ptxcd_set_framebgcolor:n {#1}
- },
- singleframebgcolor .code:n = {
- \cs_gset_eq:Nc \__ptxcd_save_background_canvas: {beamer@thcbg@normal~text}
- \keys_set:nn {ptxcd/beamer/outer} {
- framebgcolor = #1
- }
- },
- headsepline .bool_gset:N = \g_ptxcd_headsepline_bool,
- headsepline .initial:n = true,
- headsepline .default:n = true,
+ logo .bool_gset:N = \g_ptxcd_headlinelogo_bool,
+ logo .default:n =true,
+ logo .initial:n =true,
+ colorframetitle .choices:nn = {true, false} {
+ \use:c {bool_gset_ \l_keys_choice_tl :N} \g__ptxcd_colorframetitle_bool
+ \cs_if_exist_use:N \__ptxcd_setup_frametitle_color:
+ },
+ colorframetitle .default:n = true,
+ centerframetitle
+ .bool_gset:N = \g_ptxcd_centerframetitle_bool,
+ centerframetitle .initial:n = false,
+ centerframetitle .default:n = true,
+ framebgcolor
+ .choice:,
+ framebgcolor / reset .code:n =
+ \__ptxcd_reset_framebgcolor:
+ ,
+ framebgcolor / unknown .code:n = {
+ \__ptxcd_set_framebgcolor:n {#1}
+ },
+ singleframebgcolor .code:n =
+ \cs_gset_eq:Nc \__ptxcd_save_background_canvas: {beamer@thcbg@normal~text}
+ \keys_set:nn {ptxcd/beamer/outer} {
+ framebgcolor = #1
+ },
+ headsepline
+ .bool_gset:N = \g_ptxcd_headsepline_bool,
+ headsepline .initial:n = true,
+ headsepline .default:n = true,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+%% color options
+%% color options
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ beamer/outer
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
\define@key{beamerframe}{bgcolor}{
- \keys_set:nn {ptxcd/beamer/outer} {
- singleframebgcolor=#1
- }
+ \keys_set:nn {ptxcd/beamer/outer} {
+ singleframebgcolor=#1
+ }
}
-
\cs_new:Nn \__ptxcd_reset_framebgcolor: {
- \cs_gset_eq:cN {beamer@thcbg@normal~text} \__ptxcd_save_background_canvas:
- \cs_undefine:N \__ptxcd_save_background_canvas:
+ \cs_gset_eq:cN {beamer@thcbg@normal~text} \__ptxcd_save_background_canvas:
+ \cs_undefine:N \__ptxcd_save_background_canvas:
}
\cs_new:Nn \__ptxcd_set_framebgcolor:n {
- \cs_if_exist:cTF {\string\color@#1}
- {\setbeamercolor{normal~text}{bg=#1}}
- {\setbeamercolor{normal~text}{bg=TUDa-#1}}
+ \cs_if_exist:cTF {\string\color@#1}
+ {\setbeamercolor{normal~text}{bg=#1}}
+ {\setbeamercolor{normal~text}{bg=TUDa-#1}}
}
\BeforeBeginEnvironment{frame}{
- \cs_if_exist:NT \__ptxcd_save_background_canvas: {
- \__ptxcd_reset_framebgcolor:
- }
+ \cs_if_exist:NT \__ptxcd_save_background_canvas: {
+ \__ptxcd_reset_framebgcolor:
+ }
}
-
\ProcessKeyOptions[ptxcd/beamer/outer]
-
-
\mode<presentation>
-
-
\RequirePackage{graphicx}
-
\bool_if:NT \g__ptxcd_colorframetitle_bool
- {\dim_set:Nn \l__ptxcd_beamer_extraindent_dim {\g__ptxcd_beamer_logosep_dim}}
+ {\dim_set:Nn \l__ptxcd_beamer_extraindent_dim {\g__ptxcd_beamer_logosep_dim}}
\setbeamersize{
- text~margin~left=\dimexpr\g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim \relax,
- text~margin~right=\dimexpr\g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim \relax,
-}
+ text~margin~left=\dim_eval:n {
+ \g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim
+},
+ text~margin~right=\dim_eval:n {
+ \g__ptxcd_beamer_sep_dim+\l__ptxcd_beamer_extraindent_dim
+ }
+}
\cs_new:Nn \__ptxcd_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}}
-
-%Logo
-
\box_new:N \g__ptxcd_logo_box
\hbox_gset:Nn \g__ptxcd_logo_box {%
- \makebox[\__ptxcd_logowidth:][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}%
+ \makebox[\__ptxcd_logowidth:][l]
+ {\__ptxcd_insert_logo:}%
+}
+\RenewDocumentCommand{\logo}{sm}{
+\IfBooleanTF{#1}{
+\setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}
+}{
+\setbeamertemplate{logo}{#2}
+}
+}
+\newcommand*{\setupTUDaFrame}[1]{
+ \keys_set:nn {ptxcd/beamer/outer} {#1}
+ \ptxcd_setup_frame:
}
-
\ptxcd_makeheadrule[color=identbarcolor,width=\paperwidth-2\g__ptxcd_beamer_sep_dim]{ptxcd_beamer_headrule}
\ptxcd_makefootrule[width=\paperwidth-2\g__ptxcd_beamer_sep_dim]{ptxcd_beamer_rule}
-
-\newcommand\insertsmalllogo{\setbeamertemplate{logo}[small]\usebeamertemplate{logo}}
-
\defbeamertemplate*{sidebar~left}{TUDa}{}
\defbeamertemplate*{sidebar~right}{TUDa}{}
-
\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool}
-
\defbeamertemplate*{footline}{TUDa}
{
- \begin{beamercolorbox}[leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim,
- ht=\csname c_ptxcd_smallrule_dim\endcsname,dp=1mm]{footline}
- \ptxcd_beamer_rule
- \end{beamercolorbox}
- \begin{beamercolorbox}[
- leftskip=\g__ptxcd_beamer_sep_dim,
- rightskip=\g__ptxcd_beamer_sep_dim, ht=2.75mm,dp=2.75mm]{footline}
- \usebeamerfont{author~ in~ head/foot}%
- \bool_set_false:N \l_ptxcd_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_ptxcd_tmpa_bool {~|~}
- {\bool_set_true:N \l_ptxcd_tmpa_bool}
- \use:c {insertshort\l_tmpa_tl}
- }
- }
- \bool_if:NT \l_ptxcd_tmpa_bool {~|~}
- \insertframenumber
- \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo}
- \end{beamercolorbox}
+\begin{beamercolorbox}[leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim,
+ht=\csname c_ptxcd_smallrule_dim\endcsname,dp=1mm]{footline}
+\ptxcd_beamer_rule
+\end{beamercolorbox}
+\begin{beamercolorbox}[
+leftskip=\g__ptxcd_beamer_sep_dim,
+rightskip=\g__ptxcd_beamer_sep_dim, ht=2.75mm,dp=2.75mm]{footline}
+\usebeamerfont{author~ in~ head/foot}%
+\bool_set_false:N \l_ptxcd_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_ptxcd_tmpa_bool {~|~}
+{\bool_set_true:N \l_ptxcd_tmpa_bool}
+\use:c {insertshort\l_tmpa_tl}
}
-
-
-
-\RenewDocumentCommand{\logo}{sm}{
- \IfBooleanTF{#1}{
- \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}
- }{
- \setbeamertemplate{logo}{#2}
- }
+}
+\bool_if:NT \l_ptxcd_tmpa_bool {~|~}
+\insertframenumber
+\hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo}
+\end{beamercolorbox}
}
\defbeamertemplate{headline}{TUDa.logo} {%
- \begin{beamercolorbox}[
- leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim,
- ht=.75\g__ptxcd_beamer_sep_dim,dp=\box_dp:N \ptxcd_beamer_headrule_box]{headline}
- \ptxcd_beamer_headrule
- \end{beamercolorbox}
+\begin{beamercolorbox}[
+leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim,
+ht=.75\g__ptxcd_beamer_sep_dim,dp=\box_dp:N \ptxcd_beamer_headrule_box]{headline}
+\ptxcd_beamer_headrule
+\end{beamercolorbox}
}
-
-
\box_new:N \l__ptxcd_frametitle_box
-
\defbeamertemplate{frametitle}{TUDa.logo}{%
\nointerlineskip%
\begin{beamercolorbox}[
@@ -182,125 +203,113 @@
wd=\dim_eval:n {\__ptxcd_beamer_linewidth:+2\l__ptxcd_beamer_extraindent_dim},
rightskip=-\g__ptxcd_beamer_logosep_dim,
leftskip=\dim_eval:n {-\g__ptxcd_beamer_logosep_dim+\l__ptxcd_beamer_extraindent_dim},
- ]{frametitle}
- \hbox_set:Nn \l__ptxcd_frametitle_box {
- \parbox[t]
- {\dim_eval:n {\linewidth- \box_wd:N \g__ptxcd_logo_box-1em}}{%
- \usebeamerfont{frametitle}\strut\insertframetitle
- \ifx\insertframesubtitle\@empty
- \else
- \par
- \usebeamercolor[fg]{framesubtitle}
- \usebeamerfont{framesubtitle}
- \insertframesubtitle
- \fi
- }}
- \leavevmode
- \bool_if:NTF \g_ptxcd_centerframetitle_bool
- {\raisebox{\dimexpr-.5\height+.5\depth}}
- {\use:n}
- {\box_use:N \l__ptxcd_frametitle_box}
- \hfill%
- \bool_if:NTF \g_ptxcd_centerframetitle_bool
- {\raisebox{\dimexpr-.5\height+.5\depth}}
- {\raisebox{\dimexpr-\height+\ht\strutbox}}
- {\box_use:N \g__ptxcd_logo_box}
+]{frametitle}
+\hbox_set:Nn \l__ptxcd_frametitle_box {
+\parbox[t]
+{\dim_eval:n {\linewidth- \box_wd:N \g__ptxcd_logo_box-1em}}{%
+\usebeamerfont{frametitle}\strut\insertframetitle
+\ifx\insertframesubtitle\@empty
+\else
+\par
+\usebeamercolor[fg]{framesubtitle}
+\usebeamerfont{framesubtitle}
+\insertframesubtitle
+\fi
+}}
+\leavevmode
+\bool_if:NTF \g_ptxcd_centerframetitle_bool
+{\raisebox{\dimexpr-.5\height+.5\depth}}
+{\use:n}
+{\box_use:N \l__ptxcd_frametitle_box}
+\hfill%
+\bool_if:NTF \g_ptxcd_centerframetitle_bool
+{\raisebox{\dimexpr-.5\height+.5\depth}}
+{\raisebox{\dimexpr-\height+\ht\strutbox}}
+{\box_use:N \g__ptxcd_logo_box}
\end{beamercolorbox}%
\bool_if:NT \g_ptxcd_headsepline_bool {
- \nointerlineskip
- \begin{beamercolorbox}[
- wd=\dim_eval:n {\textwidth+2\l__ptxcd_beamer_extraindent_dim},
- ht=\c_ptxcd_smallrule_dim,
- dp=0pt
- ]{smallrule}
- \end{beamercolorbox}
+\nointerlineskip
+\begin{beamercolorbox}[
+wd=\dim_eval:n {\textwidth+2\l__ptxcd_beamer_extraindent_dim},
+ht=\c_ptxcd_smallrule_dim,
+dp=0pt
+]{smallrule}
+\end{beamercolorbox}
}
}
-
\defbeamertemplate*{headline}{TUDa.nologo}
{%
- \vspace{.75\g__ptxcd_beamer_sep_dim}
- \begin{beamercolorbox}[
- leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim]{headline}
- \ptxcd_beamer_headrule
- \end{beamercolorbox}
- }
-
+\vspace{.75\g__ptxcd_beamer_sep_dim}
+\begin{beamercolorbox}[
+leftskip=\g__ptxcd_beamer_sep_dim,rightskip=\g__ptxcd_beamer_sep_dim]{headline}
+\ptxcd_beamer_headrule
+\end{beamercolorbox}
+}
\defbeamertemplate*{headline}{TUDa.simple}
{
- \ifbeamercolorempty[bg]{background~canvas}{
- \vspace{\dimexpr.5\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}
- \skip_horizontal:n {\beamer@leftmargin}
- \color{identbarcolor}
- \vrule width\dimexpr\textwidth-\beamer@leftmargin-\beamer@rightmargin height\c_ptxcd_rulesep_dim
- }{
- \vspace{\dimexpr.5\c_ptxcd_logoheight_dim}
- }
+\ifbeamercolorempty[bg]{background~canvas}{
+\vspace{\dimexpr.5\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}
+\skip_horizontal:n {\beamer@leftmargin}
+\color{identbarcolor}
+\vrule width\dimexpr\textwidth-\beamer@leftmargin-\beamer@rightmargin height\c_ptxcd_rulesep_dim
+}{
+\vspace{\dimexpr.5\c_ptxcd_logoheight_dim}
+}
}
-
\defbeamertemplate*{frametitle}{TUDa.nologo}{%
- \nointerlineskip%
+\nointerlineskip%
\begin{beamercolorbox}[
sep=\g__ptxcd_beamer_logosep_dim,
wd=\dim_eval:n {\__ptxcd_beamer_linewidth:+2\l__ptxcd_beamer_extraindent_dim},
leftskip=\dim_eval:n {-\g__ptxcd_beamer_logosep_dim+\l__ptxcd_beamer_extraindent_dim},
- ]{frametitle}
- \hbox_set:Nn \l__ptxcd_frametitle_box {
- \parbox[t]
- {\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{%
- \usebeamerfont{frametitle}\strut\insertframetitle
- \ifx\insertframesubtitle\@empty
- \else
- \par
- \usebeamercolor[fg]{framesubtitle}
- \usebeamerfont{framesubtitle}
- \insertframesubtitle
- \fi
+]{frametitle}
+\hbox_set:Nn \l__ptxcd_frametitle_box {
+\parbox[t]
+{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{%
+\usebeamerfont{frametitle}\strut\insertframetitle
+\ifx\insertframesubtitle\@empty
+\else
+\par
+\usebeamercolor[fg]{framesubtitle}
+\usebeamerfont{framesubtitle}
+\insertframesubtitle
+\fi
}}
\leavevmode
\bool_if:NTF \g_ptxcd_centerframetitle_bool
{\raisebox{\dimexpr-.5\height+.5\depth}}
{\use:n}
{\box_use:N \l__ptxcd_frametitle_box}
-% Rule for voffset similar to logo
- \rule[\dim_eval:n {
- \bool_if:NTF \g_ptxcd_centerframetitle_bool
- {-.5\box_ht:N \g__ptxcd_logo_box+.5\box_dp:N \g__ptxcd_logo_box}
- {-\box_ht:N \g__ptxcd_logo_box+\ht\strutbox}
- }]{0pt}{\dim_eval:n {
- \box_ht:N \g__ptxcd_logo_box+\box_dp:N \g__ptxcd_logo_box
- }}
+\rule[\dim_eval:n {
+\bool_if:NTF \g_ptxcd_centerframetitle_bool
+{-.5\box_ht:N \g__ptxcd_logo_box+.5\box_dp:N \g__ptxcd_logo_box}
+{-\box_ht:N \g__ptxcd_logo_box+\ht\strutbox}
+}]{0pt}{\dim_eval:n {
+\box_ht:N \g__ptxcd_logo_box+\box_dp:N \g__ptxcd_logo_box
+}}
\end{beamercolorbox}
\bool_if:NT \g_ptxcd_headsepline_bool {
- \nointerlineskip
- \begin{beamercolorbox}[
- wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim \relax,
- ht=\c_ptxcd_smallrule_dim,
- dp=0pt
- ]{smallrule}
- \end{beamercolorbox}
+\nointerlineskip
+\begin{beamercolorbox}[
+wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim \relax,
+ht=\c_ptxcd_smallrule_dim,
+dp=0pt
+]{smallrule}
+\end{beamercolorbox}
}
}
-
\cs_new:Nn \ptxcd_setup_frame: {
- \bool_if:NTF \g_ptxcd_headlinelogo_bool {
- \setbeamertemplate{frametitle}[TUDa.logo]
- \setbeamertemplate{headline}[TUDa.logo]
- }{
- \setbeamertemplate{frametitle}[TUDa.nologo]
- \setbeamertemplate{headline}[TUDa.nologo]
- }
+\bool_if:NTF \g_ptxcd_headlinelogo_bool {
+\setbeamertemplate{frametitle}[TUDa.logo]
+\setbeamertemplate{headline}[TUDa.logo]
+}{
+\setbeamertemplate{frametitle}[TUDa.nologo]
+\setbeamertemplate{headline}[TUDa.nologo]
}
-\ptxcd_setup_frame:
-
-\newcommand*{\setupTUDaFrame}[1]{
- \keys_set:nn {ptxcd/beamer/outer} {#1}
- \ptxcd_setup_frame:
}
-
-
-
+\ptxcd_setup_frame:
\mode
<all>
-
\endinput
+%%
+%% End of file `beamerouterthemeTUDa2008.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa-mecheng.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa-mecheng.sty
index e84e7fa228e..5fd524dabc4 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa-mecheng.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa-mecheng.sty
@@ -1,9 +1,9 @@
-%% This is file `beamerthemeTUDa-mecheng.sty' version 3.41 (2024-07-02),
+%% This is file `beamerthemeTUDa-mecheng.sty' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,7 +16,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
%% The development respository can be found at
@@ -25,15 +25,13 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\ProvidesExplPackage{beamerthemeTUDa-mecheng}{\filedate}{\fileversion}{specific tudabeamer configuration for the department of mechanical engineering}
+\ProvidesExplPackage{beamerthemeTUDa-mecheng}{2025-01-26}{4.00}{specific tudabeamer configuration for the department of mechanical engineering}
\tl_if_empty:NT \g_ptxcd_departmentlogo_tl {
\keys_set:nn {ptxcd/beamer}{departmentlogofile=tuda_maschinenbau_logo_rgb}
-}
+}
\mode<presentation>
@@ -85,7 +83,7 @@
%innertheme adjustments
\defbeamertemplate*{title~ page}{TUDa-mecheng}[1][]
-{
+{
\nointerlineskip
\vspace{\dimexpr.5\c_ptxcd_logoheight_dim-\ht\strutbox+
\box_dp:N \ptxcd_beamer_headrule_box + \box_ht:N \ptxcd_beamer_headrule_box
@@ -94,11 +92,11 @@
\parbox{\__ptxcd_beamer_linewidth:}{%
\begin{beamercolorbox}[
wd=\linewidth,
- ]{title}
+ ]{title}
\raggedright
\usebeamerfont{title}
\hbox_set:Nn \l__ptxcd_frametitle_box {
- \parbox[c]{\dimexpr\linewidth-\box_wd:N \g__ptxcd_logo_box-1em\relax}{
+ \parbox[c]{\dimexpr\linewidth-\box_wd:N \g__ptxcd_logo_box-1em}{
\raggedright{}
\inserttitle
\par
@@ -107,17 +105,17 @@
\dim_compare:nT {\box_ht:N \l__ptxcd_frametitle_box > \baselineskip} {\raisebox{\dimexpr-\height+.5\c_ptxcd_logoheight_dim}}
{\box_use:N \l__ptxcd_frametitle_box}
\hspace{\fill}
- \raisebox{\dimexpr-.5\height+.5\ht\strutbox-.5\dp\strutbox\relax}{\box_use:N \g__ptxcd_logo_box}\hspace*{\dimexpr-\beamer@rightmargin+\g__ptxcd_beamer_logosep_dim}
+ \raisebox{\dimexpr-.5\height+.5\ht\strutbox-.5\dp\strutbox}{\box_use:N \g__ptxcd_logo_box}\hspace*{\dimexpr-\beamer@rightmargin+\g__ptxcd_beamer_logosep_dim}
\ifx\insertsubtitle\@empty
\else
\par\vspace{\c_ptxcd_largerule_dim}
- \parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box\relax}{
+ \parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box}{
\usebeamerfont{subtitle}\insertsubtitle
}
\fi
\bool_if:NT \g_ptxcd_authorontitle_bool {
\par
- \parbox[t]{\dimexpr\linewidth-2ex\relax}{
+ \parbox[t]{\dimexpr\linewidth-2ex}{
\ifx\insertauthor\@empty
\else
\usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par
@@ -136,7 +134,7 @@
\begin{beamercolorbox}[
rightskip=.07\linewidth,%place image left of arrow tip
ht=\c_ptxcd_smallrule_dim,%dp=1mm,
- wd=\dimexpr\textwidth]{footline}
+ wd=\textwidth]{footline}
\setbeamertemplate{departmentlogo}[TUDa-mecheng][width=\dimexpr2\linewidth/11\relax]
\insertdepartmentlogo
\hfill
@@ -193,8 +191,9 @@
{
\begin{beamercolorbox}[
wd=\linewidth,
- leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin,
- ]{footline}
+ leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,
+ ]{footline}
\MechEngArrow*{\linewidth}
\par\skip_vertical:n {.5\g__ptxcd_beamer_logosep_dim}
\makebox[\linewidth][s]{
@@ -229,8 +228,8 @@
sep=\g__ptxcd_beamer_logosep_dim,
wd=\__ptxcd_beamer_linewidth:,
rightskip=-\g__ptxcd_beamer_logosep_dim,
- leftskip=\dimexpr-\g__ptxcd_beamer_logosep_dim\relax,
- ]{frametitle}
+ leftskip=-\g__ptxcd_beamer_logosep_dim,
+ ]{frametitle}
\hbox_set:Nn \l__ptxcd_frametitle_box {
\parbox[t]
{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{%
@@ -257,7 +256,7 @@
sep=\g__ptxcd_beamer_logosep_dim,
wd=\__ptxcd_beamer_linewidth:,
rightskip=-\g__ptxcd_beamer_logosep_dim,
- leftskip=\dimexpr-\g__ptxcd_beamer_logosep_dim\relax,
+ leftskip=-\g__ptxcd_beamer_logosep_dim,
ht=\c_ptxcd_smallrule_dim.
dp=0
]{smallrule}
@@ -278,7 +277,6 @@
}
\cs_set:Nn \__ptxcd_set_framebgcolor:n {
-
\str_case:nnTF {#1} {
{Primary1} {\tl_set:Nn \l_tmpa_tl {Primary2}}
{Primary2} {\tl_set:Nn \l_tmpa_tl {Primary1}}
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa.sty
index beb85e6785d..d8f3436852e 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerthemeTUDa.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerthemeTUDa.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudabeamer.dtx (with options: `package,main,initialize,body,options')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,44 +21,64 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesExplPackage{beamerthemeTUDa}{2024-04-21}{3.37}{Beamer theme using the Corporate Design of TU Darmstadt}
-
-\mode<presentation>
-
+\ProvidesExplPackage{beamerthemeTUDa}{2025-01-26}{4.00}{Beamer theme using the Corporate Design of TU Darmstadt}
\tl_if_exist:NF \g__ptxcd_design_tl {
- \tl_new:N \g__ptxcd_design_tl
- \keys_define:nn {ptxcd/beamer} {
- design .choice:,
- design / 2023 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2023}
- \PassOptionsToClass{aspectratio=169}{beamer}
- },
- design / 2008 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2008}
- },
- design .initial:n = 2023,
- design .usage:n = load,
- design2023 .meta:n = {design=2023},
- design2008 .meta:n = {design=2008},
- }
- \ProcessKeyOptions[ptxcd/beamer]
+ \tl_new:N \g__ptxcd_design_tl
+ \cs_new:Nn \__ptxcd_beamer_declare_pass_options:nn {
+ \keys_define:nn {ptxcd/beamer} {
+ #1 .code:n = \clist_map_inline:nn {#2}{
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa2008}
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa}
+ },
+ #1 .default:n = true,
+ }
+ }
+
+ \__ptxcd_beamer_declare_pass_options:nn {centerframetitle} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {headsepline} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {logo} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {colortitle} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorbacktitle} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorback} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorframetitle} {outer, color}
}
+\keys_define:nn {ptxcd/beamer} {
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+ design .choice:,
+ design / 2023 .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {2023}
+ \PassOptionsToClass{aspectratio=169}{beamer}
+ },
+ design / 2008 .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {2008}
+ },
+ design / default .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {default}
+ },
+ design .initial:n = default,
+ design2023 .meta:n = {design=2023},
+ design2008 .meta:n = {design=2008},
+ design .usage:n = load,
+}
+\ProcessKeyOptions[ptxcd/beamer]
\RequirePackageWithOptions{beamerthemeTUDa\g__ptxcd_design_tl}
-
+\mode<presentation>
+\setbeamertemplate{navigation symbols}{}
\mode<all>
-
\endinput
+%%
+%% End of file `beamerthemeTUDa.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2008.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2008.sty
index f3c3064841c..ee424cb254c 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2008.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2008.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerthemeTUDa2008.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `beamerthemeTUDa2008.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudabeamer.dtx (with options: `package,2008,initialize,body,options')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,48 +21,30 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesPackage{beamerthemeTUDa2008}
- [\filedate\space\fileversion\space beamer theme using the Corporate Design of TU Darmstadt Design of 2008]
-
-\mode<presentation>
-
+\ProvidesPackage{beamerthemeTUDa2008}[2025-01-26 v4.00 beamer theme using the Corporate Design of TU Darmstadt Design of 2008]
\ExplSyntaxOn
-
-\keys_define:nn {ptxcd/beamer} {
- accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
- colortitle .code:n = \PassOptionsToPackage{colortitle=#1}{beamercolorthemeTUDa},
- colorbacktitle .code:n = \PassOptionsToPackage{colorbacktitle=#1}{beamercolorthemeTUDa},
- colorframetitle .code:n = \PassOptionsToPackage{colorframetitle=#1}{beamerouterthemeTUDa},
- colorback .code:n = \PassOptionsToPackage{colorback=#1}{beamercolorthemeTUDa},
- logo .code:n = \PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa}
-}
-
\ProcessKeyOptions[ptxcd/beamer]
-
+\mode<presentation>
\ExplSyntaxOff
-
\usefonttheme{TUDa2008}
\usecolortheme{TUDa2008}
\useoutertheme{TUDa2008}
\useinnertheme[design=2008]{TUDa}
\setbeamertemplate{navigation symbols}{}
-
-
\mode<all>
-
\endinput
+%%
+%% End of file `beamerthemeTUDa2008.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2023.sty b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2023.sty
index 7095ba69f12..c9df31ab97e 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2023.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/beamerthemeTUDa2023.sty
@@ -1,10 +1,18 @@
-%% This is file `beamerthemeTUDa2023.sty' version 3.41 (2024-07-02)
+%%
+%% This is file `beamerthemeTUDa2023.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudabeamer.dtx (with options: `package,2023,initialize,body,options')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,45 +21,32 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
+%%
\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\ProvidesExplPackage{beamerthemeTUDa2023}{2024-04-21}{3.37}{Beamer theme using the Corporate Design of TU Darmstadt Design of 2023}
-
-\mode<presentation>
-
+\ProvidesExplPackage{beamerthemeTUDa2023}{2025-01-26}{4.00}{Beamer theme using the Corporate Design of TU Darmstadt Design of 2023}
\msg_new:nnn {tudabeamer} {option-removed} {
- The~design~you~selected~doesn't~support~the~option~`#1`.\\
- It~will~be~ignored.
+ The~design~you~selected~doesn't~support~the~option~`#1`.\\
+ It~will~be~ignored.
}
-
-\keys_define:nn {ptxcd/beamer} {
- colortitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colortitle},
- colorbacktitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorbacktitle},
- colorframetitle .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorframetitle},
- colorback .code:n = \msg_warning:nnn {tudabeamer} {option-removed} {colorback},
- logo .code:n = \PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa2023}
-}
-
\ProcessKeyOptions[ptxcd/beamer]
-
+\mode<presentation>
\usefonttheme{TUDa}
\usecolortheme{TUDa}
\useoutertheme{TUDa}
\useinnertheme[design=2023]{TUDa}
-
\setbeamertemplate{navigation symbols}{}
-
\mode<all>
-
\endinput
+%%
+%% End of file `beamerthemeTUDa2023.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a0paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a0paper.clo
index 55147ed57f1..376cfaa2aa5 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a0paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a0paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a0paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a0paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a0,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a0paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a0paper}
+%%
+\ProvidesExplFile{tuda-a0paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a0paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{125pt}{165pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{28pt}{35pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{24pt}{30pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {125pt}{165pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {28pt}{35pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {24pt}{30pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {30pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {30mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {30pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {30mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a1paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a1paper.clo
index 4a89742e12c..e6559161ca6 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a1paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a1paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a1paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a1paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a1,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a1paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a1paper}
+%%
+\ProvidesExplFile{tuda-a1paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a1paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{86pt}{120pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{35pt}{42pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{22pt}{26pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {86pt}{120pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {35pt}{42pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {22pt}{26pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {25pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {30mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {25pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {30mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a2paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a2paper.clo
index 57121954a49..40c0b999dd8 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a2paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a2paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a2paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a2paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a2,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a2paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a2paper}
+%%
+\ProvidesExplFile{tuda-a2paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a2paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{65pt}{82pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{22pt}{28pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{14pt}{20pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {65pt}{82pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {22pt}{28pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {14pt}{20pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {25pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {30mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {25pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {30mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a3paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a3paper.clo
index e841639ad03..789eb784ec6 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a3paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a3paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a3paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a3paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a3,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a3paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a3paper}
+%%
+\ProvidesExplFile{tuda-a3paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a3paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{47pt}{61pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{16pt}{20pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{12pt}{16pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {47pt}{61pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {16pt}{20pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {12pt}{16pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {17pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {15mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {17pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {15mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a4paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a4paper.clo
index 646a994a6ad..15b33243975 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a4paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a4paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a4paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a4paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a4,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a4paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a4paper}
+%%
+\ProvidesExplFile{tuda-a4paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a4paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{36pt}{47pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{12pt}{14pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{10pt}{11.5pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {36pt}{47pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {12pt}{14pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {10pt}{11.5pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {14pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {15mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {14pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {15mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a5paper.clo b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a5paper.clo
index 8c0ef0e94f7..81b7319e27c 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-a5paper.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-a5paper.clo
@@ -1,10 +1,18 @@
-%% This is file `tuda-a5paper.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tuda-a5paper.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `a5,tudasize')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,37 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\ProvidesExplFile{tuda-a5paper.clo}{2024-07-01}{3.40}{tuda-ci~size~adjustments~for~a5paper}
+%%
+\ProvidesExplFile{tuda-a5paper.clo}{2025-01-26}{4.00}{tuda-ci~size~adjustments~for~a5paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
- \cs_set:Nn \ptxcd_title_fontsize: {{22pt}{28pt}}
- \cs_set:Nn \ptxcd_titleinfo_fontsize: {{10pt}{11.5pt}}
- \cs_set:Nn \ptxcd_titlethanks_fontsize: {{10pt}{11.5pt}}
+ \cs_set:Nn \ptxcd_title_fontsize: {
+ {22pt}{28pt}
+ }
+ \cs_set:Nn \ptxcd_titleinfo_fontsize: {
+ {10pt}{11.5pt}
+ }
+ \cs_set:Nn \ptxcd_titlethanks_fontsize: {
+ {10pt}{11.5pt}
+ }
}
\cs_set:Nn \ptxcd_setup_base_sizes: {
- \tl_if_empty:NT \g_ptxcd_fontsize_tl {
- \tl_gset:Nn \g_ptxcd_fontsize_tl {10pt}
- }
- \dim_gset:Nn \g_ptxcd_margin_dim {12mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {
+\tl_gset:Nn \g_ptxcd_fontsize_tl
+ {10pt}
+ }
+ \dim_gset:Nn \g_ptxcd_margin_dim
+ {12mm}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tuda-pgfplots.sty b/Master/texmf-dist/tex/latex/tuda-ci/tuda-pgfplots.sty
index b0a32c7502f..37f64c0a2a4 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tuda-pgfplots.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tuda-pgfplots.sty
@@ -1,9 +1,9 @@
-%% This is file `tuda-pgfplots.sty' version 3.41 (2024-07-02),
+%% This is file `tuda-pgfplots.sty' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,7 +16,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
%% The development respository can be found at
@@ -25,134 +25,132 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
% Special thanks to: Sebastian Schöps Institut Theorie Elektromagnetischer Felder (TEMF), TU Darmstadt
% The original version of this file has been inspired by the colorscheme in the Metropolis beamer theme by Matthias Vogelgesang https://github.com/matze/mtheme
-\ProvidesPackage{tuda-pgfplots}[\filedate\space\fileversion\space tuda-ci pgfplots color schemes]
+\ProvidesPackage{tuda-pgfplots}[2025-01-26 v4.00 tuda-ci pgfplots color schemes]
\RequirePackage{pgfplots}
\RequirePackage{tudacolors}
\pgfplotscreateplotcyclelist{tudabarplot cycle}{%
- draw=TUDa-1a, fill=TUDa-1b \\
- draw=TUDa-9b, fill=TUDa-9c \\
- draw=TUDa-3b, fill=TUDa-3c \\
- draw=TUDa-10b, fill=TUDa-10c\\
- draw=TUDa-5c, fill=TUDa-5d \\
- draw=TUDa-6d, fill=TUDa-6a \\
+ draw=TUDa-1a, fill=TUDa-1b \\
+ draw=TUDa-9b, fill=TUDa-9c \\
+ draw=TUDa-3b, fill=TUDa-3c \\
+ draw=TUDa-10b, fill=TUDa-10c\\
+ draw=TUDa-5c, fill=TUDa-5d \\
+ draw=TUDa-6d, fill=TUDa-6a \\
}
\pgfplotscreateplotcyclelist{tudalineplot cycle}{%
- TUDa-1b, mark=*, \\
- TUDa-9c, mark=diamond*, \\
- TUDa-3c, mark=square*, \\
- TUDa-10c, mark=triangle* \\
- TUDa-5d, mark=*, \\
- TUDa-6a, mark=diamond*, \\
+ TUDa-1b, mark=*, \\
+ TUDa-9c, mark=diamond*, \\
+ TUDa-3c, mark=square*, \\
+ TUDa-10c, mark=triangle* \\
+ TUDa-5d, mark=*, \\
+ TUDa-6a, mark=diamond*, \\
}
\pgfplotsset{
- tuda3dplot/.style={
- axis line style = thin,
- axis x line*=box,
- axis y line*=box,
- tudabaseplot,
- xmajorgrids=true,
- ymajorgrids=true,
- major grid style={dotted},
- },
- tudalineplot/.style={
- tudabaseplot,
- grid,
- legend style={cells={anchor=west}},
- thick,
- mark size=1.5pt,
- cycle list name=tudalineplot cycle,
- },
- tudabarplot base/.style={
- tudabaseplot,
- bar width=6pt,
- cycle list name=tudabarplot cycle,
- },
- tudabarplot/.style={
- ybar,
- tudabarplot base,
- xmajorgrids=false,
- ymajorgrids=true,
- },
- horizontal tudabarplot/.style={
- xbar stacked,
- tudabarplot base,
- xmajorgrids=true,
- ymajorgrids=false,
- },
- colormap={tudaa}{rgb255=(93,133,195)
- rgb255=(0,156,218)
- rgb255=(80,182,149)
- rgb255=(175,204,80)
- rgb255=(221,223,72)
- rgb255=(255,224,92)
- rgb255=(248,186,60)
- rgb255=(238,122,52)
- rgb255=(233,80,62)
- rgb255=(201,48,142)
- rgb255=(128,69,151)
- },
- colormap={tudab}{%
- rgb255=(0,90,169)
- rgb255=(0,131,204)
- rgb255=(0,157,129)
- rgb255=(153,192,0)
- rgb255=(201,212,0)
- rgb255=(253,202,0)
- rgb255=(245,163,0)
- rgb255=(236,101,0)
- rgb255=(230,0,26)
- rgb255=(166,0,132)
- rgb255=(114,16,133)
- rgb255=(0,78,138)
- },
- colormap={tudac}{
- rgb255=(0,78,138)
- rgb255=(0,104,157)
- rgb255=(0,136,119)
- rgb255=(127,171,22)
- rgb255=(177,189,0)
- rgb255=(215,172,0)
- rgb255=(210,135,0)
- rgb255=(204,76,3)
- rgb255=(185,15,34)
- rgb255=(149,17,10)
- rgb255=(97,28,115)
- },
- colormap={tudad}{
- rgb255=(36,53,114)
- rgb255=(0,78,115)
- rgb255=(0,113,94)
- rgb255=(106,139,55)
- rgb255=(153,166,4)
- rgb255=(174,142,0)
- rgb255=(190,111,0)
- rgb255=(169,73,19)
- rgb255=(156,28,38)
- rgb255=(115,32,84)
- rgb255=(76,34,106)
- },
- tudabaseplot/.style={
- colormap name=viridis,
- legend style={fill=white,cells={anchor=west}},
- ticklabel style={font=\footnotesize},
- legend style={font=\footnotesize},
- major grid style={dotted},
- axis x line=bottom,axis y line=left,
- },
- colormap={tuda}{
- rgb255=(115,32,84)
- rgb255=(0,157,129)
- rgb255=(255,224,92)
- }
+ tuda3dplot/.style={
+ axis line style = thin,
+ axis x line*=box,
+ axis y line*=box,
+ tudabaseplot,
+ xmajorgrids=true,
+ ymajorgrids=true,
+ major grid style={dotted},
+ },
+ tudalineplot/.style={
+ tudabaseplot,
+ grid,
+ legend style={cells={anchor=west}},
+ thick,
+ mark size=1.5pt,
+ cycle list name=tudalineplot cycle,
+ },
+ tudabarplot base/.style={
+ tudabaseplot,
+ bar width=6pt,
+ cycle list name=tudabarplot cycle,
+ },
+ tudabarplot/.style={
+ ybar,
+ tudabarplot base,
+ xmajorgrids=false,
+ ymajorgrids=true,
+ },
+ horizontal tudabarplot/.style={
+ xbar stacked,
+ tudabarplot base,
+ xmajorgrids=true,
+ ymajorgrids=false,
+ },
+ colormap={tudaa}{rgb255=(93,133,195)
+ rgb255=(0,156,218)
+ rgb255=(80,182,149)
+ rgb255=(175,204,80)
+ rgb255=(221,223,72)
+ rgb255=(255,224,92)
+ rgb255=(248,186,60)
+ rgb255=(238,122,52)
+ rgb255=(233,80,62)
+ rgb255=(201,48,142)
+ rgb255=(128,69,151)
+ },
+ colormap={tudab}{%
+ rgb255=(0,90,169)
+ rgb255=(0,131,204)
+ rgb255=(0,157,129)
+ rgb255=(153,192,0)
+ rgb255=(201,212,0)
+ rgb255=(253,202,0)
+ rgb255=(245,163,0)
+ rgb255=(236,101,0)
+ rgb255=(230,0,26)
+ rgb255=(166,0,132)
+ rgb255=(114,16,133)
+ rgb255=(0,78,138)
+ },
+ colormap={tudac}{
+ rgb255=(0,78,138)
+ rgb255=(0,104,157)
+ rgb255=(0,136,119)
+ rgb255=(127,171,22)
+ rgb255=(177,189,0)
+ rgb255=(215,172,0)
+ rgb255=(210,135,0)
+ rgb255=(204,76,3)
+ rgb255=(185,15,34)
+ rgb255=(149,17,10)
+ rgb255=(97,28,115)
+ },
+ colormap={tudad}{
+ rgb255=(36,53,114)
+ rgb255=(0,78,115)
+ rgb255=(0,113,94)
+ rgb255=(106,139,55)
+ rgb255=(153,166,4)
+ rgb255=(174,142,0)
+ rgb255=(190,111,0)
+ rgb255=(169,73,19)
+ rgb255=(156,28,38)
+ rgb255=(115,32,84)
+ rgb255=(76,34,106)
+ },
+ tudabaseplot/.style={
+ colormap name=viridis,
+ legend style={fill=white,cells={anchor=west}},
+ ticklabel style={font=\footnotesize},
+ legend style={font=\footnotesize},
+ major grid style={dotted},
+ axis x line=bottom,axis y line=left,
+ },
+ colormap={tuda}{
+ rgb255=(115,32,84)
+ rgb255=(0,157,129)
+ rgb255=(255,224,92)
+ }
}
\endinput
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudabeamer.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudabeamer.cls
index df4840467e0..c857d9a5d81 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudabeamer.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudabeamer.cls
@@ -1,10 +1,20 @@
-%% This is file `tudabeamer.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudabeamer.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudabeamer.dtx (with options: `class,initialize,options')
+%% tuda-ci.dtx (with options: `options,tudabeamer,beamer')
+%% tudabeamer.dtx (with options: `class,body')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,246 +23,174 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
\ProvidesClass{tudabeamer}
- [\filedate\space\fileversion\space]
-
+ [2025-01-26 v4.00 Beamer wrapper class for TUDa-CI – Corporate Design Templates for TU Darmstadt]
\PassOptionsToClass{10pt}{beamer}
-
\ExplSyntaxOn
\str_new:N \g_ptxcd_department_str
-\tl_new:N \g__ptxcd_design_tl
+\str_const:Nn \c__ptxcd_base_str {beamer}
+ \tl_new:N \g__ptxcd_design_tl
+ \cs_new:Nn \__ptxcd_beamer_declare_pass_options:nn {
+ \keys_define:nn {ptxcd/beamer} {
+ #1 .code:n = \clist_map_inline:nn {#2}{
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa2008}
+ \PassOptionsToPackage{#1=##1}{beamer####1themeTUDa}
+ },
+ #1 .default:n = true,
+ }
+ }
+
+ \__ptxcd_beamer_declare_pass_options:nn {centerframetitle} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {headsepline} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {logo} {outer}
+ \__ptxcd_beamer_declare_pass_options:nn {colortitle} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorbacktitle} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorback} {color}
+ \__ptxcd_beamer_declare_pass_options:nn {colorframetitle} {outer, color}
+
\keys_define:nn {ptxcd/beamer} {
- accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
- colorframetitle .code:n = \exp_args:Nx \PassOptionsToPackage{\l_keys_key_tl=#1}{beamercolorthemeTUDa}
- \exp_args:Nx \PassOptionsToPackage{\l_keys_key_tl=#1}{beamerouterthemeTUDa},
- colorframetitle .default:n = true,
- logo .code:n = \PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa},
- pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
- pdfa .initial:n = false,
- logofile .code:n = \PassOptionsToPackage{logofile=#1}{beamerouterthemeTUDa},
- serif .code:n = \PassOptionsToPackage{serif=#1}{beamerfontthemeTUDa},
- serif .default:n = true,
- sans-serif .code:n = \PassOptionsToPackage{sans-serif=#1}{beamerfontthemeTUDa},
- sans-serif .default:n = true,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \keys_set:nn {ptxcd/beamer} {
- colorframetitle=false,
- centerframetitle,
- headsepline=false
- }
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = ,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
- color .code:n = {
- \tl_if_in:nnTF {#1} {=} {
- \msg_new:nnn {tudabeamer} {color-option-warning} {
- The~color~option~should~no~longer~be~used~to~pass~options~to~the~tudacolors~package.\\
- Please~use~tudacolors={##1}~instead~of~color={##1}.\\
- See~the~tudabeamer~documentation~for~more~information.
- }
- \msg_warning:nnn {tudabeamer} {color-option-warning} {#1}
- \PassOptionsToPackage{#1}{tudacolors}
- } {
- \PassOptionsToPackage{color=#1}{tudacolors}
- }
- },
- tudacolors .code:n = \PassOptionsToPackage{#1}{tudacolors},
- design .choice:,
- design / 2023 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2023}
- \PassOptionsToClass{aspectratio=169}{beamer}
- },
- design / 2008 .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {2008}
- },
- design / default .code:n = {
- \tl_gset:Nn \g__ptxcd_design_tl {default}
- },
- design .initial:n = default,
- design2023 .meta:n = {design=2023},
- design2008 .meta:n = {design=2008},
- design .usage:n = load,
+ accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
+ color .code:n = {
+ \tl_if_in:nnTF {#1} {=} {
+ \msg_new:nnn {tudabeamer} {color-option-warning} {
+ The~color~option~should~no~longer~be~used~to~pass~options~to~the~tudacolors~package.\\
+ Please~use~tudacolors={##1}~instead~of~color={##1}.\\
+ See~the~tudabeamer~documentation~for~more~information.
+ }
+ \msg_warning:nnn {tudabeamer} {color-option-warning} {#1}
+ \PassOptionsToPackage{#1}{tudacolors}
+ } {
+ \PassOptionsToPackage{color=#1}{tudacolors}
+ }
+ },
+ tudacolors .code:n = \PassOptionsToPackage{#1}{tudacolors},
+ design .choice:,
+ design / 2023 .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {2023}
+ \PassOptionsToClass{aspectratio=169}{beamer}
+ },
+ design / 2008 .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {2008}
+ },
+ design / default .code:n = {
+ \tl_gset:Nn \g__ptxcd_design_tl {default}
+ },
+ design .initial:n = default,
+ design2023 .meta:n = {design=2023},
+ design2008 .meta:n = {design=2008},
+ design .usage:n = load,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \keys_set:nn {ptxcd/beamer} {
+ design=2008,
+ colorframetitle=false,
+ centerframetitle=true,
+ headsepline=false,
+ }
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+ pdfa .code:n = {
+ \msg_error:nn {tuda\c__ptxcd_base_str} {pdfa-option-removed}
+ },
+ pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
+ pdfx .initial:n = true,
+%% color options
+%% color options
+}
+\msg_new:nnn {tuda\c__ptxcd_base_str} {pdfa-option-removed} {
+ The~option~"pdfa"~was~removed~for~this~document~class.\\
+ In~case~you~need~it,~please~use~the~mechanism~provided~by~the~pdfmanagement~instead.\\
+ See~TUDa-CI~documentation~for~details.
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
}
\ExplSyntaxOff
-
-\PassOptionsToPackage{pdfpagelabels=false,plainpages=false}{hyperref}
+\PassOptionsToPackage{
+ hidelinks,
+ unicode,
+ pdfpagelabels=false,
+ plainpages=false,
+ pdfcreator=LaTeX using the TUDa-CI Bundle,
+}{hyperref}
\PassOptionsToClass{t}{beamer}
-
\DeclareOption*{%
- \PassOptionsToClass{\CurrentOption}{beamer}
+ \PassOptionsToClass{\CurrentOption}{beamer}
}
-
\ProcessKeyOptions[ptxcd/beamer]
\ProcessOptions*
-
\ExplSyntaxOn
\tl_if_eq:NnT \g__ptxcd_design_tl {default} {
- \msg_new:nnn {tudabeamer} {default-design-changed} {
- With~version~4.0~tudabeamer~switched~to~the~new~corporate~design~layout.\\
- In~case~this~is~not~intended,~it's~possible~switch~back~using~`design=2008`~option.\\
- `design=2023`~will~disable~this~warning.
- }
- \msg_warning:nn {tudabeamer} {default-design-changed}
- \keys_set:nn {ptxcd/beamer} {design=2023}
-}
-
-\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
-
-\bool_if:NT \g_ptxcd_pdfa_bool {
- \RequirePackage{scrlfile}
- \PreventPackageFromLoading{hyperref}
- \def\hypersetup#1{}
+ \msg_new:nnn {tudabeamer} {default-design-changed} {
+ With~version~4.0~tudabeamer~switched~to~the~new~corporate~design~layout.\\
+ In~case~this~is~not~intended,~it's~possible~switch~back~using~`design=2008`~option.\\
+ `design=2023`~will~disable~this~warning.
+ }
+ \msg_warning:nn {tudabeamer} {default-design-changed}
+ \keys_set:nn {ptxcd/beamer} {design=2023}
}
\ExplSyntaxOff
-
-% Load the latex-beamer class
\LoadClass{beamer}
-
\ExplSyntaxOn
-\bool_if:NT \g_ptxcd_pdfa_bool {
- \UnPreventPackageFromLoading{hyperref}
- \PassOptionsToPackage{a-2b}{pdfx}
-% Workaround posted by David Carlisle on tex.stackexchange
-% Thanks to Ulrike Fischer for mentioning it in #472
- \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
- \chardef\currentgrouplevel0
- \ExplSyntaxOff
- \RequirePackage{pdfx}
- \ExplSyntaxOn
- \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
- \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
-% end of the workaround
-}
-\hypersetup{hidelinks, unicode}
-
-
-%\department command
\def\department{\@dblarg\ptxcd_beamer_department}
-
\long\def\ptxcd_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}}
+ \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
-\if_bool:N \g_ptxcd_pdfa_bool
-\iow_new:N \ptxcd_xmpdata_stream
-\iow_open:Nn \ptxcd_xmpdata_stream {\jobname.xmpdata}
-\tl_new:N \g_ptxcd_xmp_title
-\tl_new:N \g_ptxcd_xmp_author
-
-\cs_new:Nn \ptxcd_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_ptxcd_pass_TitleData_bool {
- \tl_gset:Nx \g_ptxcd_xmp_title {\insertshorttitle}
- \tl_gset:Nx \g_ptxcd_xmp_author {\insertshortauthor}
- \iow_now:Nx \ptxcd_xmpdata_stream
- {
- \exp_not:N \Title{\tl_to_str:V \g_ptxcd_xmp_title}
- ^^J
- \exp_not:N \Author{\tl_to_str:V \g_ptxcd_xmp_author}
- ^^J
- \exp_not:N \Creator{LaTeX~ using~ the~ TUDa-CI~ Bundle}
- }
- }{
- \begingroup
- \use:c {pdfx@localcommands}
- \prop_if_in:NnF \g_ptxcd_MetaData_prop {Creator} {\prop_gput:Nnn \g_ptxcd_MetaData_prop {Creator} {LaTeX~ using~ the~ TUDa-CI~ Bundle}}
- \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
- \endgroup
- }
- \endgroup
-}
-\cs_new:Nn \ptxcd_write_xmp_line:nn {
- %Fallback test for older kernels
- \cs_if_exist:NTF \str_uppercase:f {
- \tl_set:Nx \l_tmpa_tl {
- \str_uppercase:f {\tl_head:n {#1}}
- \str_lowercase:f { \tl_tail:n {#1}}
- }
- } {
- %may be removed in some time
- \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}}
- }
- \cs_if_exist:cTF {\l_tmpa_tl}{
- \iow_now:Nx \ptxcd_xmpdata_stream {
- \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}}
- }
- }{
- \msg_error:nnn{tudapub} {unknown-metadata} {#1}
- }
+ {%
+ \let\thanks=\@gobble%
+ \beamer@setupshort{#1}%
+ \beamer@insertshort{\beamer@shortdepartment}%
+ }%
}
-
-\bool_new:N \g_ptxcd_pass_TitleData_bool
-\bool_gset_true:N \g_ptxcd_pass_TitleData_bool
-\prop_new:N \g_ptxcd_MetaData_prop
-
-\newcommand*{\Metadata}[1]{
- \bool_gset_false:N \g_ptxcd_pass_TitleData_bool
- \prop_gset_from_keyval:Nn \g_ptxcd_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:
-
\str_if_empty:NF \g_ptxcd_department_str {}
-
-% Load the TUDa theme
\usetheme{TUDa\g__ptxcd_design_tl}%
-\@input{\jobname.len}%
-\@starttoc{len}%
\let\accentfont\normalfont%
-
-\file_if_exist:nT {\g__ptxcd_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str.sty}
- {\RequirePackage{\g__ptxcd_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str}}
-
+\file_if_exist:nTF {\g__ptxcd_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str.sty}
+ {\RequirePackage{\g__ptxcd_config_prefix_tl beamerthemeTUDa-\g_ptxcd_department_str}}
+ {
+ \file_if_exist:nT {beamerthemeTUDa-\g_ptxcd_department_str.sty}
+ {\RequirePackage{beamerthemeTUDa-\g_ptxcd_department_str}}
+ }
\ExplSyntaxOff
-
\endinput
+%%
+%% End of file `tudabeamer.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.def b/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.def
index 44f09edb861..8a9ebad2def 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.def
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.def
@@ -1,9 +1,11 @@
-%% This is file `tudacolors.def' version 3.41 (2024-07-02),
+%% \iffalse meta-comment^^A necessary for use with \input in documentation
+%%
+%% This is file `tudacolors.def' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,7 +18,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
%% The development respository can be found at
@@ -25,10 +27,9 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\ProvidesFile{tudacolors.def}
-[\filedate\space\fileversion\space Color definitions for tuda-ci]
+%\fi
+
+\ProvidesFile{tudacolors.def}[2025-01-26 v4.00 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}
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.sty b/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.sty
index 448483daaf7..be2a0ed9b7c 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudacolors.sty
@@ -1,10 +1,18 @@
-%% This is file `tudacolors.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `tudacolors.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudacolors.dtx (with options: `package')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,123 +21,125 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplPackage{tudacolors}{\filedate}{\fileversion}{Color definition for TU Darmstadt's tuda-ci bundle}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\ProvidesExplPackage{tudacolors}{2025-01-26}{4.00}{Color definition for TU Darmstadt's tuda-ci bundle}
\str_if_exist:NF \g_ptxcd_department_str {
- \str_new:N \g_ptxcd_department_str
- \str_gset:Nn \g_ptxcd_department_str {default}
+\str_new:N \g_ptxcd_department_str
+\str_gset:Nn \g_ptxcd_department_str {default}
}
-
\keys_define:nn {ptxcd/colors} {
- accent .tl_gset:N = \g_ptxcd_color_accent_tl,
- accent .initial:n = 0b,
- textaccent .tl_gset:N = \g_ptxcd_color_textaccent_tl,
- textaccent .initial:n = \g_ptxcd_color_accent_tl,
- identbar .tl_gset:N = \g_ptxcd_color_identbar_tl,
- identbar .initial:n = \g_ptxcd_color_accent_tl,
- accentcolor .meta:n = {accent =#1},
- textaccentcolor .meta:n = {textaccent = #1},
- identbarcolor .meta:n = {identbar = #1},
- color .code:n = \keys_set:nn {ptxcd/colors} {accent=#1, textaccent=#1, identbar=#1}\PassOptionsToPackage{color=}{siunitx},
- text .choice:,
- text/preferblack .code:n = \bool_gset_false:N \g_ptxcd_color_whitetext_bool,
- text/preferwhite .code:n = \bool_gset_true:N \g_ptxcd_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},
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = \str_gset:Nn \g_ptxcd_department_str {mecheng}\keys_set:nn {ptxcd/colors}{accent=TUDa-2d,identbar=TUDa-6b},
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- mecheng .meta:n = {department=mecheng},
+accent .tl_gset:N = \g_ptxcd_color_accent_tl,
+accent .initial:n = 0b,
+accentcolor .meta:n = {accent =#1},
+textaccent .tl_gset:N = \g_ptxcd_color_textaccent_tl,
+textaccent .initial:n = \g_ptxcd_color_accent_tl,
+textaccentcolor .meta:n = {textaccent = #1},
+identbar .tl_gset:N = \g_ptxcd_color_identbar_tl,
+identbar .initial:n = \g_ptxcd_color_accent_tl,
+identbarcolor .meta:n = {identbar = #1},
+color .code:n = {
+ \keys_set:nn {ptxcd/colors} {
+ accent=#1,
+ textaccent=#1,
+ identbar=#1
+ }
+ \PassOptionsToPackage{color=}{siunitx}
+ },
+text .choice:,
+text/preferblack .code:n = \bool_gset_false:N \g_ptxcd_color_whitetext_bool,
+text/preferwhite .code:n = \bool_gset_true:N \g_ptxcd_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},
+department .choice:,
+department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \keys_set:nn {ptxcd/colors}{
+ accent=TUDa-2d,
+ identbar=TUDa-6b
+ }
+ },
+department / unknown .code:n = {
+\str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+},
+department .initial:V = \g_ptxcd_department_str,
+departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+mecheng .meta:n = {department=mecheng},
}
-
\ProcessKeyOptions[ptxcd/colors]
-
\RequirePackage{xcolor}
-
\input{tudacolors.def}
-
\str_if_eq:VnT \g_ptxcd_department_str {mecheng} {
- \colorlet{TUDa-Primary1}{TUDa-6b}
- \colorlet{TUDa-Primary2}{TUDa-2d}
- \colorlet{TUDa-Secondary1}{TUDa-9a}
- \colorlet{TUDa-Secondary2}{TUDa-8a}
- \colorlet{TUDa-Secondary3}{TUDa-6a}
- \colorlet{TUDa-Secondary4}{TUDa-3a}
- \colorlet{TUDa-Secondary5}{TUDa-4a}
- \colorlet{TUDa-Secondary6}{TUDa-5a}
- \colorlet{TUDa-Arrow}{TUDa-Primary2}
+\colorlet{TUDa-Primary1}{TUDa-6b}
+\colorlet{TUDa-Primary2}{TUDa-2d}
+\colorlet{TUDa-Secondary1}{TUDa-9a}
+\colorlet{TUDa-Secondary2}{TUDa-8a}
+\colorlet{TUDa-Secondary3}{TUDa-6a}
+\colorlet{TUDa-Secondary4}{TUDa-3a}
+\colorlet{TUDa-Secondary5}{TUDa-4a}
+\colorlet{TUDa-Secondary6}{TUDa-5a}
+\colorlet{TUDa-Arrow}{TUDa-Primary2}
}
-
-
\clist_const:Nn \c_ptxcd_color_forbid_textaccent_clist {TUDa-0a,TUDa-5a,TUDa-6a,TUDa-6b,TUDa-7a}
\clist_const:Nn \c_ptxcd_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_ptxcd_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.}
-
+\msg_new:nnnn{tudacolors} {unselectable-color} {The~ color~ you~ selected~ (#1)~ must~ not~ be~ choosen~ for~ #2.} {See~ the~ Corporate~ Design~ Guideline~ for~ further~ information.}
\hook_new:n {ptxcd/init-colors}
\hook_gput_code:nnn {ptxcd/init-colors} {tudacolors} {
- \clist_map_inline:nn {accent, textaccent, identbar} {
- \cs_if_exist:cF {\string\color@\tl_use:c {g_ptxcd_color_#1_tl}} {
- \cs_if_exist:cT {\string\color@TUDa-\tl_use:c {g_ptxcd_color_#1_tl}} {
- \tl_gset:cx {g_ptxcd_color_#1_tl} {TUDa-\tl_use:c {g_ptxcd_color_#1_tl}}
- }}
- }
- \exp_args:Nnx \colorlet{accentcolor}{\g_ptxcd_color_accent_tl}
- \bool_if:NTF \g_ptxcd_color_whitetext_bool {
- \clist_if_in:NVTF \c_ptxcd_color_allow_whitetext_clist \g_ptxcd_color_accent_tl {
- \colorlet{textonaccentcolor}{white}
- } {
- \colorlet{textonaccentcolor}{black}
- \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {\msg_warning:nnxx{tudacolors} {unselectable-color} {white} {textonaccentcolor}}
- }
- } {
- \clist_if_in:NVTF \c_ptxcd_color_allow_blacktext_clist \g_ptxcd_color_accent_tl {
- \colorlet{textonaccentcolor}{black}
- } {
- \colorlet{textonaccentcolor}{white}
- \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {msg_warning:nnxx{tudacolors} {unselectable-color} {black} {textonaccentcolor}}
- }
- }
- \colorlet{identbarcolor}{\g_ptxcd_color_identbar_tl}
- \exp_args:NNx \clist_if_in:NnTF \c_ptxcd_color_forbid_textaccent_clist {\g_ptxcd_color_textaccent_tl} {
- \msg_warning:nnxx{tudacolors} {unselectable-color} {\g_ptxcd_color_textaccent_tl} {textaccentcolor}
- \colorlet{textaccentcolor}{black}
- } {
- \colorlet{textaccentcolor}{\g_ptxcd_color_textaccent_tl}
- }
+ \clist_map_inline:nn {accent, textaccent, identbar} {
+ \cs_if_exist:cF {\string\color@\tl_use:c {g_ptxcd_color_#1_tl}} {
+ \cs_if_exist:cT {\string\color@TUDa-\tl_use:c {g_ptxcd_color_#1_tl}} {
+ \tl_gset:cx {g_ptxcd_color_#1_tl} {TUDa-\tl_use:c {g_ptxcd_color_#1_tl}}
+ }
+ }
+ }
+ \exp_args:Nnx \colorlet{accentcolor}{\g_ptxcd_color_accent_tl}
+ \bool_if:NTF \g_ptxcd_color_whitetext_bool {
+ \clist_if_in:NVTF \c_ptxcd_color_allow_whitetext_clist \g_ptxcd_color_accent_tl {
+ \colorlet{textonaccentcolor}{white}
+ } {
+ \colorlet{textonaccentcolor}{black}
+ \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {white} {textonaccentcolor}
+ }
+ }
+ } {
+ \clist_if_in:NVTF \c_ptxcd_color_allow_blacktext_clist \g_ptxcd_color_accent_tl {
+ \colorlet{textonaccentcolor}{black}
+ } {
+ \colorlet{textonaccentcolor}{white}
+ \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {black} {textonaccentcolor}
+ }
+ }
+ }
+ \colorlet{identbarcolor}{\g_ptxcd_color_identbar_tl}
+ \exp_args:NNx \clist_if_in:NnTF \c_ptxcd_color_forbid_textaccent_clist {\g_ptxcd_color_textaccent_tl} {
+ \msg_warning:nnxx{tudacolors} {unselectable-color} {\g_ptxcd_color_textaccent_tl} {textaccentcolor}
+ \colorlet{textaccentcolor}{black}
+ } {
+ \colorlet{textaccentcolor}{\g_ptxcd_color_textaccent_tl}
+ }
}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str-colors.def}
-
\hook_use:n {ptxcd/init-colors}
-
\colorlet{InfoBox}{white}
-
\endinput
+%%
+%% End of file `tudacolors.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudaexercise.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudaexercise.cls
index 366b9668261..791bfc4d3b6 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudaexercise.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudaexercise.cls
@@ -1,10 +1,22 @@
-%% This is file `tudaexercise.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudaexercise.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudaexercise.dtx (with options: `class,initialization')
+%% tuda-ci.dtx (with options: `options,exercise,print')
+%% tudaexercise.dtx (with options: `class,center')
+%% tuda-ci.dtx (with options: `margin,geometry,exercise')
+%% tudaexercise.dtx (with options: `class,body')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,25 +25,20 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplClass{tudaexercise}
- {\filedate}{\fileversion}{Exercise sheets and exams using TU Darmstadt's Corporate Desing (TUDa-CI)}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplClass{tudaexercise}{2025-01-26}{4.00}{Exercise sheets and exams using TU Darmstadt's Corporate Desing (TUDa-CI)}
\msg_new:nnnn {tudaexercise} {outdated-koma-script} {
Your~KOMA-Script~is~outdated.\\
To~use~the~feature~'#1'~you~will~be~required~to~update.
@@ -39,558 +46,507 @@
Please~do~not~use~this~feature~or~update~your~TeX~distribution.\\
The~feature~requires~KOMA-Script~v#2~or~newer.
}
-
\str_const:Nn \c__ptxcd_base_str {exercise}
\prop_new:N \g_ptxcd_clsopts_prop
\prop_new:N \g_ptxcd_unknown_clsopts_prop
\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline}
\prop_gput:Nnn \g_ptxcd_clsopts_prop {parskip} {half-}
-
\prop_new:N \g__ptxcd_points_collector_prop
\prop_new:N \g__ptxcd_subtask_points_collector_prop
+\prop_new:N \g__ptxcd_property_collector_prop
\bool_new:N \l__ptxcd_points_auto_bool
\bool_new:N \g__ptxcd_points_bool
\prop_new:N \g__ptxcd_loaded_points_prop
\fp_new:N \g__ptxcd_points_total_fp
-
\int_new:N \g_ptxcd_paper_int
-
\bool_new:N \g_ptxcd_geometry_bool
\bool_new:N \g_ptxcd_custommargins_bool
-\bool_new:N \l_ptxcd_ex_solution_bool
-
+\bool_new:N \l__ptxcd_solution_bool
\bool_new:N \g_ptxcd_smalltitle_bool
\str_new:N \g_ptxcd_department_str
-
\tl_new:N \g_ptxcd_tmp_tl
\int_new:N \g_ptxcd_tmp_int
\tl_new:N \l_ptxcd_tmp_tl
-
\clist_map_inline:nn {section,subsection,subsubsection,task,subtask,@solution} {
- \bool_new:c {g__ptxcd_ruled_#1_bool}
- \bool_gset_true:c {g__ptxcd_ruled_#1_bool}
+ \bool_new:c {g__ptxcd_ruled_#1_bool}
+ \bool_gset_true:c {g__ptxcd_ruled_#1_bool}
}
-
\bool_new:N \g__ptxcd_runin_subtask_bool
-
-\RequirePackage{environ}
-
\newenvironment{solution}{}{}
\newenvironment{solution*}{}{}
-
-\cs_new:Nn \ptxcd_setup_solution: {
- \bool_if:NTF \l_ptxcd_ex_solution_bool {
- \def\solution{\ptxcd_ex_solutionheader:}
- \def\endsolution{}
- \expandafter\def\csname solution*\endcsname{\ignorespaces}
- \expandafter\let\csname endsolution*\endcsname\endsolution
- }{
- \RenewEnviron{solution}{
- \if_false:
- \BODY
- \fi:
- }
- \RenewEnviron{solution*}{
- \if_false:
- \BODY
- \fi:
- }
- }
+\cs_new:Nn \__ptxcd_setup_solution: {
+ \bool_if:NTF \l__ptxcd_solution_bool {
+ \def\solution{\__ptxcd_solutionheader:}
+ \def\endsolution{}
+ \expandafter\def\csname solution*\endcsname{\ignorespaces}
+ \expandafter\let\csname endsolution*\endcsname\endsolution
+ }{
+ \RenewDocumentEnvironment{solution}{+b}{}{}
+ \RenewDocumentEnvironment{solution*}{+b}{}{}
+ }
}
-
-\ptxcd_setup_solution:
-
+\__ptxcd_setup_solution:
\prg_new_conditional:Nnn \__ptxcd_if_solution: {T,F,TF} {
- \bool_if:NTF \l_ptxcd_ex_solution_bool
- {\prg_return_true:}
- {\prg_return_false:}
+ \bool_if:NTF \l__ptxcd_solution_bool
+ {\prg_return_true:}
+ {\prg_return_false:}
}
-
\let\IfSolutionT \__ptxcd_if_solution:T
\let\IfSolutionF \__ptxcd_if_solution:F
\let\IfSolutionTF \__ptxcd_if_solution:TF
-
-
-%Message Declaration for option processing
\msg_new:nnn{tudaexercise} {titlepage-option-disabled} {
- You~set~the~titlepage~option~to~#1.\\
- This option is not supported by tudaexercise.cls.\\
- The~KOMA-Script~option~titlepage~is~forced~to~"false".
+ You~set~the~titlepage~option~to~#1.\\
+ This option is not supported by tudaexercise.cls.\\
+ The~KOMA-Script~option~titlepage~is~forced~to~"false".
}
-
+\PassOptionsToPackage{pdfusetitle,bookmarksnumbered=true}{hyperref}
\keys_define:nn {ptxcd/exercise} {
- color .code:n = {\PassOptionsToPackage{color=#1}{tudacolors}},
- accentcolor .code:n = {\PassOptionsToPackage{accentcolor=#1}{tudacolors}},
- textaccentcolor .code:n = {\PassOptionsToPackage{textaccentcolor=#1}{tudacolors}},
- textonaccentcolor .code:n = {\PassOptionsToPackage{textaccentcolor=#1}{tudacolors}},
- identbarcolor .code:n = {\PassOptionsToPackage{identbarcolor=#1}{tudacolors}},
- color .initial:n = 0b,
- custommargins .choice:,
- custommargins / true .code:n ={
- \bool_gset_true:N \g_ptxcd_custommargins_bool
- \bool_gset_false:N \g_ptxcd_geometry_bool
- },
- custommargins / false .code:n ={
- \bool_gset_false:N \g_ptxcd_custommargins_bool
- \bool_gset_true:N \g_ptxcd_geometry_bool
- },
- custommargins / geometry .code:n = {
- \bool_gset_true:N \g_ptxcd_custommargins_bool
- \bool_gset_true:N \g_ptxcd_geometry_bool
- },
- custommargins .initial:n = false,
- custommargins .default:n = true,
- fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1},
- fontsize .initial:n = {10pt},
- BCOR .code:n = \PassOptionsToPackage{bindingoffset=#1}{geometry},
- bindingoffset .meta:n = {BCOR=#1},
- captions .code:n = {\prop_gput:Nnx \g_ptxcd_clsopts_prop {captions} {
- \use:n {\prop_item:Nn \g_ptxcd_clsopts_prop {captions}}, #1}
- },
- 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_ptxcd_paper_int \l_keys_choice_int
- \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
- \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
- \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
- },
- paper .initial:n = a4,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- compat .bool_gset:N = \g_ptxcd_ex_compatibility_bool,
- compat .initial:n = false,
- compatilibity .meta:n = {compat=#1},
- compatibility .default:n = true,
- credit .tl_set:N = \l_ptxcd_ex_credit_tl,
- credit .initial:n =,
- headontitle .bool_gset:N = \g_ptxcd_headontitle_bool,
- headontitle .initial:n = false,
- headontitle .default:n =true,
- colorback .bool_gset:N = \g_ptxcd_colorback_bool,
- colorback .default:n = true,
- colorback .initial:n = true,
- title .choice:,
- title / default .meta:n = {title=large},
- title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
- title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
- title .initial:n = default,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/exercise}{colorback=false,departmentlogofile=tuda_maschinenbau_logo,color=Primary1}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
- match-task-subtask-syntax .bool_gset:N = \g_ptxcd_match_task_subtask_bool,
- match-task-subtask-syntax .initial:n = false,
- match-task-subtask-syntax .default:n = true,
- solution .code:n = {
- \bool_set_eq:Nc \l_ptxcd_ex_solution_bool {c_#1_bool}
- \ptxcd_setup_solution:
- },
- solution .default:n = true,
- unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
- points .choice:,
- points / true .code:n = \bool_set_false:N \l__ptxcd_points_auto_bool\bool_gset_true:N \g__ptxcd_points_bool,
- points /false .code:n = \bool_set_false:N \l__ptxcd_points_auto_bool\bool_gset_false:N \g__ptxcd_points_bool,
- points / auto .code:n = \bool_set_true:N \l__ptxcd_points_auto_bool\bool_gset_true:N \g__ptxcd_points_bool,
- points .initial:n = false,
- subtask .choice:,
- subtask / ruled .code:n =
- \bool_gset_true:N \g__ptxcd_ruled_subtask_bool
- \bool_gset_false:N \g__ptxcd_runin_subtask_bool,
- subtask / runin .code:n =
- \bool_gset_false:N \g__ptxcd_ruled_subtask_bool
- \bool_gset_true:N \g__ptxcd_runin_subtask_bool,
- subtask / plain .code:n =
- \bool_gset_false:N \g__ptxcd_ruled_subtask_bool
- \bool_gset_false:N \g__ptxcd_runin_subtask_bool,
+ bookmarksnumbered .code:n = \PassOptionsToPackage{bookmarksnumbered=#1}{hyperref},
+ compat .bool_gset:N = \g__ptxcd_compatibility_bool,
+ compat .initial:n = false,
+ compatilibity .meta:n = {compat=#1},
+ compatibility .default:n = true,
+ credit .tl_set:N = \l__ptxcd_credit_tl,
+ credit .initial:n =,
+ headontitle .bool_gset:N = \g_ptxcd_headontitle_bool,
+ headontitle .initial:n = false,
+ headontitle .default:n =true,
+ titlepage .code:n = {\msg_warning:nnn {tudapub} {titlepage-option-disabled} {#1}},
+ match-task-subtask-syntax .bool_gset:N = \g_ptxcd_match_task_subtask_bool,
+ match-task-subtask-syntax .initial:n = false,
+ match-task-subtask-syntax .default:n = true,
+ solution .code:n = {
+ \bool_set_eq:Nc \l__ptxcd_solution_bool {c_#1_bool}
+ \__ptxcd_setup_solution:
+ },
+ solution .default:n = true,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+ points .choice:,
+ points / true .code:n = \bool_set_false:N \l__ptxcd_points_auto_bool\bool_gset_true:N \g__ptxcd_points_bool,
+ points /false .code:n = \bool_set_false:N \l__ptxcd_points_auto_bool\bool_gset_false:N \g__ptxcd_points_bool,
+ points / auto .code:n = \bool_set_true:N \l__ptxcd_points_auto_bool\bool_gset_true:N \g__ptxcd_points_bool,
+ points .initial:n = false,
+ subtask .choice:,
+ subtask / ruled .code:n =
+ \bool_gset_true:N \g__ptxcd_ruled_subtask_bool
+ \bool_gset_false:N \g__ptxcd_runin_subtask_bool,
+ subtask / runin .code:n =
+ \bool_gset_false:N \g__ptxcd_ruled_subtask_bool
+ \bool_gset_true:N \g__ptxcd_runin_subtask_bool,
+ subtask / plain .code:n =
+ \bool_gset_false:N \g__ptxcd_ruled_subtask_bool
+ \bool_gset_false:N \g__ptxcd_runin_subtask_bool,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / \c__ptxcd_base_str
+ }{
+ colorback=false,
+ departmentlogofile=tuda_maschinenbau_logo,
+ color=Primary1,
+ }
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+%% color options
+%% color options
+ 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}},
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+ custommargins .choice:,
+ custommargins / true .code:n ={
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_false:N \g_ptxcd_geometry_bool
+ },
+ custommargins / false .code:n ={
+ \bool_gset_false:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins / geometry .code:n = {
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins .initial:n = false,
+ custommargins .default:n = true,
+ fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1},
+ fontsize .initial:n =
+ {10pt},
+ BCOR .code:n = \PassOptionsToPackage{bindingoffset=#1}{geometry},
+ bindingoffset .meta:n = {BCOR=#1},
+ captions .code:n = {\prop_gput:Nnx \g_ptxcd_clsopts_prop {captions} {
+ \use:n {\prop_item:Nn \g_ptxcd_clsopts_prop {captions}}, #1}
+ },
+ paper .choices:nn = {
+ a0,a1,a2,a3,a4,a5,a6
+ }{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n =
+
+ a4,
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
-
\ProcessKeyOptions[ptxcd/exercise]
-
\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
- \tl_if_empty:nTF {#2}
- {\PassOptionsToClass {#1} {scrartcl}}
- {
- \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {scrartcl}}
- }
-}
-
-\RequirePackage{environ}
-
-\bool_new:N \l_ptxcd_ex_subtask_fallback_bool
-\fp_new:N \l_ptxcd_ex_task_points_fp
-\fp_new:N \g__ptxcd_ex_collected_points_fp
-\tl_new:N \l_ptxcd_ex_task_credit_tl
-
-\keys_define:nn {ptxcd/task}{
- points .choice:,
- points / auto .code:n =
- \bool_set_true:N \l__ptxcd_points_auto_bool,
- points / unknown .code:n = \fp_set:Nn \l_ptxcd_ex_task_points_fp {#1}
- \bool_set_false:N \l__ptxcd_points_auto_bool,
- credit .code:n = \tl_set:Nn \l_ptxcd_ex_task_credit_tl {#1}
- \bool_set_false:N \l__ptxcd_points_auto_bool,
- solution .meta:nn ={ptxcd/exercise}{solution=#1},
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {scrartcl}}
+ {
+ \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {scrartcl}}
+ }
}
-
-\fp_new:N \l_ptxcd_ex_subtask_points_fp
+ \bool_new:N \l__ptxcd_subtask_fallback_bool
+ \fp_new:N \l__ptxcd_task_points_fp
+ \fp_new:N \g__ptxcd_ex_collected_points_fp
+ \tl_new:N \l__ptxcd_task_credit_tl
+ \keys_define:nn {ptxcd/task}{
+ points .choice:,
+ points / auto .code:n =
+ \bool_set_true:N \l__ptxcd_points_auto_bool,
+ points / unknown .code:n = \fp_set:Nn \l__ptxcd_task_points_fp {#1}
+ \bool_set_false:N \l__ptxcd_points_auto_bool,
+ credit .code:n = \tl_set:Nn \l__ptxcd_task_credit_tl {#1}
+ \bool_set_false:N \l__ptxcd_points_auto_bool,
+ solution .meta:nn ={ptxcd/exercise}{solution=#1},
+ }
+\fp_new:N \l__ptxcd_subtask_points_fp
\keys_define:nn {ptxcd/subtask} {
- credit .tl_set:N = \l_ptxcd_ex_subtask_credit_tl,
- credit .initial:n =,
- points .code:n = \fp_set:Nn \l_ptxcd_ex_subtask_points_fp {#1}
- \bool_set_false:N \l__ptxcd_points_auto_bool,
- title .tl_set:N = \l_ptxcd_ex_title_tl,
- title .initial:n =,
- unknown .code:n = \bool_set_true:N \l_ptxcd_ex_subtask_fallback_bool \tl_clear:N \l_ptxcd_ex_subtask_credit_tl \fp_zero:N \l_ptxcd_ex_subtask_points_fp,
+ credit .tl_set:N = \l__ptxcd_subtask_credit_tl,
+ credit .initial:n =,
+ points .code:n = \fp_set:Nn \l__ptxcd_subtask_points_fp {#1}
+ \bool_set_false:N \l__ptxcd_points_auto_bool,
+ title .tl_set:N = \l__ptxcd_title_tl,
+ title .initial:n =,
+ unknown .code:n = {
+ \bool_set_true:N \l__ptxcd_subtask_fallback_bool
+ \tl_clear:N \l__ptxcd_subtask_credit_tl
+ \fp_zero:N \l__ptxcd_subtask_points_fp
+ },
}
-
\keys_define:nn {ptxcd/exercise/headline} {
- headline .code:n = {
- \if@twoside
- \keys_set:nn {ptxcd/exercise/headline} {odd=#1,even=#1}
- \else
- \keys_set:nn {ptxcd/exercise/headline} {oneside=#1}
- \fi
- },
+ headline .code:n = {
+ \if@twoside
+ \keys_set:nn {ptxcd/exercise/headline} {odd=#1,even=#1}
+ \else
+ \keys_set:nn {ptxcd/exercise/headline} {oneside=#1}
+ \fi
+ },
}
-
\clist_map_inline:nn {odd, even, oneside} {
- \tl_new:c {g_ptxcd_ex_headline_#1_tl}
- \keys_define:nn {ptxcd/exercise/headline} {
- #1 .choice:,
- #1 / title-name-id .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {
- \g_ptxcd_shorttitle_tl\par
- \StudentName\StudentID},
- #1 / title-name .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {
- \g_ptxcd_shorttitle_tl\par
- \smallskip
- \StudentName},
- #1 / title .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {\g_ptxcd_shorttitle_tl},
- #1 / name-id .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {\StudentName\StudentID},
- #1 / name .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {\StudentName},
- #1 / unknown .code:n = \tl_gset:cn {g_ptxcd_ex_headline_#1_tl} {##1}
- }
+ \tl_new:c {g__ptxcd_headline_#1_tl}
+ \box_new:c {g__ptxcd_headline_#1_box}
+ \keys_define:nn {ptxcd/exercise/headline} {
+ #1 .choice:,
+ #1 / title-name-id .meta:n = {
+ #1 = {
+ \g_ptxcd_shorttitle_tl\par
+ \StudentName\StudentID
+ }
+ },
+ #1 / title-name .meta:n = {
+ #1 = {
+ \g_ptxcd_shorttitle_tl\par
+ \smallskip
+ \StudentName
+ }
+ },
+ #1 / title .meta:n = {#1 = {\g_ptxcd_shorttitle_tl}},
+ #1 / name-id .meta:n = {#1 = {\StudentName\StudentID}},
+ #1 / name .meta:n = {#1 = {\StudentName}},
+ #1 / unknown .code:n = \tl_gset:cn {g__ptxcd_headline_#1_tl} {##1}
+ }
}
-
-
-%Load tudasize clo file if available
\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo}
- {\providecommand*{\@fontsizefilebase}{tudasize}}
-
+{\providecommand*{\@fontsizefilebase}{tudasize}}
\LoadClass{scrartcl}
-
\bool_if:NT \g__ptxcd_points_bool {
\cs_if_exist:NF \AddtoDoHook{
\msg_error:nnnn {tudaexercise} {outdated-koma-script} {points=true/auto} {3.27}
\keys_set:nn {ptxcd/exercise} {points=false}
- }
+ }
}
-
\RequirePackage{tudarules}
-
-%Has to be loaded here due to headwidth options
\RequirePackage[draft=false]{scrlayer-scrpage}
\KOMAoptions {twoside = false}
-
\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
- \cs_if_exist:cT {KV@KOMA.scrartcl.cls@#1} {
- \tl_if_empty:nTF {#2}
- {\KOMAoptions{#1}}
- {\KOMAoption{#1}{#2}
- }
-}
+ \cs_if_exist:cT {KV@KOMA.scrartcl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}
+ }
+ }
}
-
\renewcommand*\sectionlinesformat[4]{%
-\parbox{\linewidth}{
- \bool_if:cT {g__ptxcd_ruled_#1_bool} {
- \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- }
- \@hangfrom{%
- \hskip #2#3}{
- \tl_if_eq:nnT {#1} {task} {
- \exp_args:No \tl_if_empty:nF {#4}
- {:~}
- \bool_if:NT \l__ptxcd_points_auto_bool {
- \exp_args:NNx \prop_get:NnN \g__ptxcd_loaded_points_prop {\thetask} \l_ptxcd_tmp_tl
- \quark_if_no_value:NF \l_ptxcd_tmp_tl {
- \fp_set:Nn \l_ptxcd_ex_task_points_fp {\l_ptxcd_tmp_tl}
- }
- }
- }
- #4
- \tl_if_in:nnT {#1} {task} {
- \tl_if_empty:cTF{l_ptxcd_ex_#1_credit_tl}
- {\pointformat{\fp_to_decimal:c {l_ptxcd_ex_#1_points_fp}}}
- {\creditformat{\tl_use:c {l_ptxcd_ex_#1_credit_tl}}}
- }
- \rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
- \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
- \bool_if:cT {g__ptxcd_ruled_#1_bool} {\smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
-}}
-
-
+ \parbox{\linewidth}{
+ \bool_if:cT {g__ptxcd_ruled_#1_bool} {
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ }
+ \@hangfrom{%
+ \hskip #2#3}{
+ \tl_if_eq:nnT {#1} {task} {
+ \exp_args:No \tl_if_empty:nF {#4}
+ {:~}
+ \bool_if:NT \l__ptxcd_points_auto_bool {
+ \exp_args:NNx \prop_get:NnN \g__ptxcd_loaded_points_prop {\thetask} \l_ptxcd_tmp_tl
+ \quark_if_no_value:NF \l_ptxcd_tmp_tl {
+ \fp_set:Nn \l__ptxcd_task_points_fp {\l_ptxcd_tmp_tl}
+ }
+ }
+ }
+ #4
+ \tl_if_in:nnT {#1} {task} {
+ \tl_if_empty:cTF{l__ptxcd_#1_credit_tl}
+ {\pointformat{\fp_to_decimal:c {l__ptxcd_#1_points_fp}}}
+ {\creditformat{\tl_use:c {l__ptxcd_#1_credit_tl}}}
+ }
+ \rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \bool_if:cT {g__ptxcd_ruled_#1_bool}
+ {\smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }
+}
\RequirePackage{tudafonts}
-
\dim_new:N \g_ptxcd_innerMargin_dim
\dim_new:N \g_ptxcd_outerMargin_dim
\dim_new:N \g_ptxcd_bottomMargin_dim
\dim_new:N \g_ptxcd_topMargin_dim
-
- %a3,a4
- \int_compare:nTF {4<=\g_ptxcd_paper_int<=5}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {20mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {15mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }{
- %a0, a1, a2
- \int_compare:nT {1<=\g_ptxcd_paper_int<=3}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {35mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {30mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- %a5
- \int_compare:nT {\g_ptxcd_paper_int<=6}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {16mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- %a6
- \int_compare:nT {\g_ptxcd_paper_int<=7}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {15mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- }
+\int_compare:nTF {4<=\g_ptxcd_paper_int<=5}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {20mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {15mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}{
+\int_compare:nT {1<=\g_ptxcd_paper_int<=3}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {35mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {30mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+\int_compare:nT {\g_ptxcd_paper_int<=6}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {16mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+\int_compare:nT {\g_ptxcd_paper_int<=7}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {15mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+}
\dim_new:N \g_ptxcd_columnSep_dim
\dim_gset:Nn \g_ptxcd_columnSep_dim {10pt}
-
\dim_new:N \g_ptxcd_headheight_dim
-\dim_new:N \g_ptxcd_headwidth_dim
-
\dim_gset:Nn \g_ptxcd_headheight_dim {\c_ptxcd_largerule_dim +\c_ptxcd_rulesep_dim +\c_ptxcd_smallrule_dim}
-%%%%%Anfang Randeinstellungen Geometry
-
-
\bool_if:NTF \g_ptxcd_geometry_bool {
- \RequirePackage[top=\g_ptxcd_topMargin_dim, inner=\g_ptxcd_innerMargin_dim, outer=\dim_eval:n {\g_ptxcd_outerMargin_dim}, bottom=\g_ptxcd_bottomMargin_dim, columnsep= \g_ptxcd_columnSep_dim, includehead, includefoot, headheight=\g_ptxcd_headheight_dim
- ]{geometry}
+\RequirePackage{geometry}
+\geometry{
+top=\g_ptxcd_topMargin_dim,
+inner=\g_ptxcd_innerMargin_dim,
+outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
+bottom=\g_ptxcd_bottomMargin_dim,
+columnsep= \g_ptxcd_columnSep_dim,
+includehead,
+includefoot,
+headheight=\g_ptxcd_headheight_dim
+}
}{
- \KOMAoptions{headinclude, footinclude, headwidth=text,footwidth=text}
+\KOMAoptions{headinclude, footinclude}
+ \KOMAoptions{headwidth=text,footwidth=text}
}
-
-%%%%%%%%
-%Ende Randeinstellungen klassisch
-
\newcommand*{\institution}[1]{
- \def\ptxcd_institution{#1}
+\def\ptxcd_institution{#1}
}
-
\gdef\ptxcd_datename{Datum}
\gdef\ptxcd_dateseparator{:~}
-
-
-
-
\setkomafont{disposition}{\sffamily\bfseries}
-
\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
-
\RequirePackage{tudacolors}
-\RequirePackage{environ}
-
\setkomafont{pageheadfoot}{\sffamily\small}
\setkomafont{pagenumber}{}
\addtokomafont{captionlabel}{\sffamily}
\addtokomafont{caption}{\sffamily}
-
-\box_new:N \g_ptxcd_ex_headline_odd_box
-\box_new:N \g_ptxcd_ex_headline_even_box
-\box_new:N \g_ptxcd_ex_headline_oneside_box
-
-\cs_new:Nn \ptxcd_preamble_ConfigureHeadline:n {
+\cs_new:Nn \__ptxcd_preamble_ConfigureHeadline:n {
\tl_if_empty:nF {#1} {\keys_set:nn {ptxcd/exercise/headline} {#1}}
}
-
\cs_new:Nn \ptxcd_ConfigureHeadline:n {
- \ptxcd_preamble_ConfigureHeadline:n {#1}
+ \__ptxcd_preamble_ConfigureHeadline:n {#1}
\ptxcd_update_headline_boxes:
- \ptxcd_ex_adjust_headheight:
+ \__ptxcd_adjust_headheight:
}
-
-\let\ConfigureHeadline\ptxcd_preamble_ConfigureHeadline:n
-
-
-
-\bool_if:NT \g_ptxcd_ex_compatibility_bool {
- \cs_new:Npn \ptxcd_ex_env_to_tl_aux:w #1 \q_stop { \tl_gset:Nn \g_ptxcd_ex_headline_oneside_tl {#1} }
-
- \NewEnviron{examheader}{
- \tl_gset:No \g_ptxcd_ex_headline_oneside_tl {\BODY}
- \tl_gset:No \g_ptxcd_ex_headline_odd_tl {\BODY}
- \tl_gset:No \g_ptxcd_ex_headline_even_tl {\BODY}
- \ptxcd_ConfigureHeadline:n {}
- }
-
- \newcommand*{\examheaderdefault}{\par\StudentName\StudentID}
+\NewDocumentCommand{\ConfigureHeadline}{m}{\__ptxcd_preamble_ConfigureHeadline:n {#1}}
+\bool_if:NT \g__ptxcd_compatibility_bool {
+ \cs_new:Npn \__ptxcd_env_to_tl_aux:w #1 \q_stop { \tl_gset:Nn \g__ptxcd_headline_oneside_tl {#1} }
+ \NewDocumentEnvironment{examheader}{+b}{}{
+ \tl_gset:Nn \g__ptxcd_headline_oneside_tl {#1}
+ \tl_gset:Nn \g__ptxcd_headline_odd_tl {#1}
+ \tl_gset:Nn \g__ptxcd_headline_even_tl {#1}
+ \ptxcd_ConfigureHeadline:n {}
+ }
+ \newcommand*{\examheaderdefault}{\par\StudentName\StudentID}
}
-
-
\cs_new:Nn \ptxcd_update_headline_boxes: {
\clist_map_inline:nn {even, odd, oneside}
{
- \tl_if_empty:cF {g_ptxcd_ex_headline_##1_tl} {
- \vbox_gset:cn {g_ptxcd_ex_headline_##1_box} {
- \begin{minipage}[b]{\textwidth}
+ \tl_if_empty:cF {g__ptxcd_headline_##1_tl} {
+ \vbox_gset:cn {g__ptxcd_headline_##1_box} {
+ \begin{minipage}[b]{\textwidth}
\usekomafont{pagehead}
- \raggedright
+ \raggedright
\leavevmode\rule{\z@}{\dimexpr\ht\strutbox+\c_ptxcd_rulesep_dim}
\ignorespaces
- \use:c {g_ptxcd_ex_headline_##1_tl}\ignorespaces\strut
+ \use:c {g__ptxcd_headline_##1_tl}\ignorespaces\strut
\par\vspace{\z@}
\end{minipage}
}
}
}
}
-
-
-\cs_new:Nn \ptxcd_ex_adjust_headheight: {
- \if@twoside
- \dim_set:Nn \l_tmpa_dim {
- \dim_max:nn
- {\box_ht:N \g_ptxcd_ex_headline_odd_box+\box_dp:N \g_ptxcd_ex_headline_odd_box}
- {\box_ht:N \g_ptxcd_ex_headline_even_box+\box_dp:N \g_ptxcd_ex_headline_even_box}
- }
- \else
- \dim_set:Nn \l_tmpa_dim {
- \box_ht:N \g_ptxcd_ex_headline_oneside_box
- + \box_dp:N \g_ptxcd_ex_headline_oneside_box
- }
- \fi
- \dim_compare:nT {\l_tmpa_dim > \z@}
- {
- \dim_add:Nn \l_tmpa_dim {\box_dp:N \ptxcd_headrule_box +\c_ptxcd_rulesep_dim}
- \KOMAoptions{headinclude, headheight=\l_tmpa_dim,headsepline = .5\c_ptxcd_smallrule_dim}
- \if@twoside
- \cehead{\box_use:c {g_ptxcd_ex_headline_even_box}}
- \cohead{\box_use:c {g_ptxcd_ex_headline_odd_box}}
- \else
- \chead{\box_use:c {g_ptxcd_ex_headline_oneside_box}}
- \fi
- \global\setlength{\headheight}{\l_tmpa_dim}
- }
+\cs_new:Nn \__ptxcd_adjust_headheight: {
+ \if@twoside
+ \dim_set:Nn \l_tmpa_dim {
+ \dim_max:nn
+ {\box_ht:N \g__ptxcd_headline_odd_box+\box_dp:N \g__ptxcd_headline_odd_box}
+ {\box_ht:N \g__ptxcd_headline_even_box+\box_dp:N \g__ptxcd_headline_even_box}
+ }
+ \else
+ \dim_set:Nn \l_tmpa_dim {
+ \box_ht:N \g__ptxcd_headline_oneside_box
+ + \box_dp:N \g__ptxcd_headline_oneside_box
+ }
+ \fi
+ \dim_compare:nT {\l_tmpa_dim > \z@}
+ {
+ \dim_add:Nn \l_tmpa_dim {\box_dp:N \ptxcd_headrule_box +\c_ptxcd_rulesep_dim}
+ \KOMAoptions{headinclude, headheight=\l_tmpa_dim,headsepline = .5\c_ptxcd_smallrule_dim}
+ \if@twoside
+ \cehead{\box_use:c {g__ptxcd_headline_even_box}}
+ \cohead{\box_use:c {g__ptxcd_headline_odd_box}}
+ \else
+ \chead{\box_use:c {g__ptxcd_headline_oneside_box}}
+ \fi
+ \global\setlength{\headheight}{\l_tmpa_dim}
+ }
}
-
\newpairofpagestyles{TUDa.exercise}{
- \KOMAoptions{plainfootsepline,headtopline,plainheadtopline}
- \KOMAoptions {
- headwidth=text,
- footwidth=text
- }
- \setkomafont{pagehead}{}
- \box_if_exist:NF \ptxcd_headrule_box {
- \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
- }
-\ModifyLayer[
- background,
- height=\box_dp:N \ptxcd_headrule_box,
- align=tl,
- voffset=\g_ptxcd_topMargin_dim,
- contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
- ]{plain.TUDa.exercise.head.above.line}
- \ModifyLayer[
- background,
- height=\box_dp:N \ptxcd_headrule_box,
- align=tl,
- voffset=\g_ptxcd_topMargin_dim,
- contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
- ]{TUDa.exercise.head.above.line}
- \ofoot[\pagemark]{\pagemark}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.even}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.odd}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.oneside}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.even}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.odd}
- \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.oneside}
+ \KOMAoptions{plainfootsepline,headtopline,plainheadtopline}
+ \KOMAoptions {
+ headwidth=text,
+ footwidth=text
+ }
+ \setkomafont{pagehead}{}
+ \box_if_exist:NF \ptxcd_headrule_box {
+ \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
+ }
+ \ModifyLayer[
+ background,
+ height=\box_dp:N \ptxcd_headrule_box,
+ align=tl,
+ voffset=\g_ptxcd_topMargin_dim,
+ contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
+ ]{plain.TUDa.exercise.head.above.line}
+ \ModifyLayer[
+ background,
+ height=\box_dp:N \ptxcd_headrule_box,
+ align=tl,
+ voffset=\g_ptxcd_topMargin_dim,
+ contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box},
+ ]{TUDa.exercise.head.above.line}
+ \ofoot[\pagemark]{\pagemark}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.even}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.odd}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.exercise.foot.oneside}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.even}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.odd}
+ \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.exercise.foot.oneside}
}
-
\DeclarePageStyleAlias{TUDa}{TUDa.exercise}
\DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.exercise}
\renewcommand{\titlepagestyle}{plain.TUDa}
\pagestyle{TUDa}
-
-%Titelseite
-\tl_new:N \g_ptxcd_titleimage_code_tl
-\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
-\newcommand{\titleimage}[1]{\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#1}}
-
-\box_new:N \g_ptxcd_title_box
-\skip_new:N \g_ptxcd_title_fill_skip
-
-
-
-
\seq_new:N \g_ptxcd_author_seq
-
\renewcommand*\author[1]{
- \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+\seq_gset_split:Nnn \g_ptxcd_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.
+ 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 \ptxcd_define_captionFallback:Nn {
- \providecommand*#1{
- \msg_warning:nnxxx{tudapub} {unknown-language}
- {\languagename} {\exp_not:N #1} {#2}
- \def#1{#2}
- }
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
}
-
\cs_new:Nn \ptxcd_declare_caption:Nnnn {
- \ptxcd_define_captionFallback:Nn #1 {#2}
- \defcaptionname{ngerman, german}{#1}{#2}
- \defcaptionname{english, USenglish, american}{#1}{#3}
- \defcaptionname{UKenglish, british}{#1}{#4}
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
}
-
\cs_new:Nn \ptxcd_declare_caption:Nnn {
- \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
}
-
\ptxcd_declare_caption:Nnn \authorandname {und} {and}
-
\renewcommand*{\@author}{
- \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
- }
-
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
\tl_new:N \g_ptxcd_shorttitle_tl
-
\RenewDocumentCommand{\title}{om}{
\IfNoValueTF{#1}{
\tl_gset:Nn \g_ptxcd_shorttitle_tl {#2}
@@ -599,122 +555,112 @@
}
\def\@title{#2}
}
-
-% Define \subsubtitle for compatibility
- \newcommand*{\subsubtitle}[1]{
- \def\@subsubtitle{#1}
- }
- \subsubtitle{}
-
-
+\newcommand*{\subsubtitle}[1]{
+ \def\@subsubtitle{#1}
+}
+\subsubtitle{}
\newcommand*{\ptxcd_title@footnote}[2][1]{
-\textsuperscript{\@fnsymbol{#1}}#2
+ \textsuperscript{\@fnsymbol{#1}}#2
}
-
-
\renewcommand*{\@maketitle}{%
- \global\@topnum=\z@
- \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
- \vspace*{-\dim_eval:n {
- \headheight
- -\c_ptxcd_largerule_dim -\c_ptxcd_rulesep_dim
- +\headsep
- +\ht\strutbox
- +\p@
- }}
- \par
- \nointerlineskip
- \begingroup
- \setlength{\fboxsep}{\z@}
- \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\linewidth}{
- \rule{0pt}{\bool_if:NTF \g_ptxcd_smalltitle_bool {.25} {.5}\c_ptxcd_logoheight_dim}
- \par\nointerlineskip
- \raisebox{-\height}{%
- \begin{minipage}[t]{\dimexpr\linewidth-\__ptxcd_logowidth:-1ex}
- \bool_if:NT \g_ptxcd_colorback_bool {\begin{addmargin}{3mm}}
+\global\@topnum=\z@
+\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+\vspace*{-\dim_eval:n {
+ \headheight
+ -\c_ptxcd_largerule_dim -\c_ptxcd_rulesep_dim
+ +\headsep
+ +\ht\strutbox
+ +\p@
+ }}
+\par
+\nointerlineskip
+\begingroup
+\setlength{\fboxsep}{\z@}
+\bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\linewidth}{
+ \rule{0pt}{\bool_if:NTF \g_ptxcd_smalltitle_bool {.25} {.5}\c_ptxcd_logoheight_dim}
+ \par\nointerlineskip
+ \raisebox{-\height}{%
+ \begin{minipage}[t]{\dimexpr\linewidth-\__ptxcd_logowidth:-1ex}
+ \bool_if:NT \g_ptxcd_colorback_bool {\begin{addmargin}{3mm}}
\raggedright
\bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
\tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
\leavevmode\usekomafont{title}%
{\usekomafont{title}\bool_if:NTF \g_ptxcd_smalltitle_bool {\LARGE} {\huge} {\@title\par}}%
\vskip 1em
- \bool_if:NF \g_ptxcd_ex_compatibility_bool
- {
- {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
- \gdef\@subtitle{}
- \vskip .5em
- }
- {
+ \bool_if:NF \g__ptxcd_compatibility_bool
+ {
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
+ \gdef\@subtitle{}
+ \vskip .5em
+ }
+ {
\xdef\@author {\@author}
\ifx\@author\@empty\else\usekomafont{author}\@author\par\fi
- }
+ }
\vskip .5em
- \bool_if:NTF \g_ptxcd_colorback_bool {\end{addmargin}} {\par}
- \end{minipage}}
- \tl_if_empty:NF \g_ptxcd_logofile_tl {
- \hfill\raisebox{\dim_eval:n {
- \bool_if:NTF \g_ptxcd_colorback_bool
- {-\height}
- {-.9\c_ptxcd_logoheight_dim}
- }}
- [0pt]
- [\dim_eval:n {
- \bool_if:NTF \g_ptxcd_smalltitle_bool
- {\bool_if:NTF \g_ptxcd_colorback_bool {1.15}{1}}
- {\bool_if:NTF \g_ptxcd_colorback_bool {1.5}{1.3}
- }\c_ptxcd_logoheight_dim}]
- {\makebox[\__ptxcd_logowidth:][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}}
- }
- \par\medskip
- }}
- \par
- \nointerlineskip
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- % subtitle fields if not compat
- \exp_args:Nf \tl_if_empty:nF {\g_ptxcd_ex_sheetnum_tl\@date\g_ptxcd_ex_term_tl\use:c {@subsubtitle}\@subtitle}{
- \par\nointerlineskip
- \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{
- \parbox{\linewidth}{
- \begin{minipage}{\linewidth}
- \bool_if:NT \g_ptxcd_colorback_bool {
- \color{textonaccentcolor}
- \begin{addmargin}{3mm}
- }
+ \bool_if:NTF \g_ptxcd_colorback_bool {\end{addmargin}} {\par}
+ \end{minipage}}
+ \tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hfill\raisebox{\dim_eval:n {
+ \bool_if:NTF \g_ptxcd_colorback_bool
+ {-\height}
+ {-.9\c_ptxcd_logoheight_dim}
+ }}
+ [0pt]
+ [\dim_eval:n {
+ \bool_if:NTF \g_ptxcd_smalltitle_bool
+ {\bool_if:NTF \g_ptxcd_colorback_bool {1.15}{1}}
+ {\bool_if:NTF \g_ptxcd_colorback_bool {1.5}{1.3}
+ }\c_ptxcd_logoheight_dim}]
+ {\makebox[\__ptxcd_logowidth:][l]{\__ptxcd_insert_logo:}}
+ }
+ \par\medskip
+ }}
+\par
+\nointerlineskip
+\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+\exp_args:Nf \tl_if_empty:nF {\g_ptxcd_ex_sheetnum_tl\@date\g_ptxcd_ex_term_tl\use:c {@subsubtitle}\@subtitle}{
+ \par\nointerlineskip
+ \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{
+ \parbox{\linewidth}{
+ \begin{minipage}{\linewidth}
+ \bool_if:NT \g_ptxcd_colorback_bool {
+ \color{textonaccentcolor}
+ \begin{addmargin}{3mm}
+ }
\null\par
\def\ptxcd_nextsep{}
\clist_map_inline:nn {@subtitle, @subsubtitle, g_ptxcd_ex_term_tl, @date} {
\tl_if_empty:cF {##1} {\ptxcd_nextsep\use:c {##1}\def\ptxcd_nextsep{\\}}
}
\tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl {\ptxcd_nextsep\sheetname\sheetsep\g_ptxcd_ex_sheetnum_tl}
- \bool_if:NT \g_ptxcd_colorback_bool {\end{addmargin}}
- \end{minipage}
- \vspace*{\dp\strutbox}
- }}\par\nointerlineskip
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- }
+ \bool_if:NT \g_ptxcd_colorback_bool {\end{addmargin}}
+ \end{minipage}
+ \vspace*{\dp\strutbox}
+ }}\par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+}
+\par
+\bool_if:NT \g_ptxcd_headontitle_bool {
+ \if@twoside
+ \box_use:N \g__ptxcd_headline_odd_box
+ \else
+ \box_use:N \g__ptxcd_headline_oneside_box
+ \fi
\par
- \bool_if:NT \g_ptxcd_headontitle_bool {
- \if@twoside
- \box_use:N \g_ptxcd_ex_headline_odd_box
- \else
- \box_use:N \g_ptxcd_ex_headline_oneside_box
- \fi
- \par
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- \par
- }
- \endgroup
- \vskip 2em
- \ConfigureHeadline{}
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \par
+}
+\endgroup
+\vskip 2em
+\ConfigureHeadline{}
}%
-
\setkomafont{subtitle}{\bfseries}
\setkomafont{author}{}
\setkomafont{date}{}
\newkomafont{sheetnumber}{\usekomafont{date}}
-
\newkomafont{term}{\usekomafont{date}}
-
\date{}
\tl_new:N \g_ptxcd_ex_sheetnum_tl
\newcommand*{\sheetnumber}[1]{\tl_gset:Nn \g_ptxcd_ex_sheetnum_tl {#1}}
@@ -722,181 +668,187 @@
\tl_new:N \g_ptxcd_ex_term_tl
\newcommand*{\term}[1]{\tl_gset:Nn \g_ptxcd_ex_term_tl {#1}}
\term{}
-
-%Logos
\RequirePackage{graphicx}
-
-%%hyperref
-\PassOptionsToPackage{pdfusetitle}{hyperref}
\RequirePackage{hyperref}
\hypersetup{hidelinks, unicode}
-
\providecaptionname{ngerman, german}{\sheetname}{Übungsblatt}
\providecaptionname{english, american, british}{\sheetname}{Sheet}
\newcommand*{\sheetsep}{~}
-
\providecaptionname{ngerman, german}{\taskname}{Aufgabe}
\providecaptionname{english, american, british}{\taskname}{Task}
\newcommand*{\tasksep}{~}%TODO
-
\providecaptionname{ngerman, german}{\solutionname}{Lösungsvorschlag}
\providecaptionname{english, american, british}{\solutionname}{Solution}
\newcommand*{\solutionsep}{:~}
-
\providecaptionname{ngerman, german}{\StudentNamename}{Nachname,~Vorname}
\providecaptionname{english, american, british}{\StudentNamename}{Last Name,~ First Name}
\newcommand*{\StudentNamesep}{:~}
-
\providecommand{\StudentIDname}{Matrikelnummer}
\providecaptionname{ngerman, german}{\StudentIDname}{Matrikelnummer}
\providecaptionname{english, american, british}{\StudentIDname}{Enrollment ID}
\newcommand*{\StudentIDsep}{:~}
-
\providecommand{\creditformat}[1]{\space(#1)}
\providecommand{\creditformatsum}[1]{\creditformat{#1}}
\newcommand*{\pointformat}[1]{
- \fp_compare:nF {#1 = 0} {
- \bool_if:NTF \l__ptxcd_points_auto_bool
- \creditformatsum
- \creditformat
- {
- \fp_to_decimal:n {#1}\space
- \fp_compare:nTF {#1=1}
- \PointName
- \PointsName
- }
- }
+ \fp_compare:nF {#1 = 0} {
+ \bool_if:NTF \l__ptxcd_points_auto_bool
+ \creditformatsum
+ \creditformat
+ {
+ \fp_to_decimal:n {#1}\space
+ \fp_compare:nTF {#1=1}
+ \PointName
+ \PointsName
+ }
+ }
}
\providecaptionname{ngerman, german}{\PointName}{Punkt}
\providecaptionname{english, american, british}{\PointName}{Point}
\providecommand{\PointsName}{Punkte}
\providecaptionname{ngerman, german}{\PointsName}{Punkte}
\providecaptionname{english, american, british}{\PointsName}{Points}
-
-%Has to be initialized after captionnames have been defined
- \AtBeginDocument{
+\AtBeginDocument{
\ptxcd_update_headline_boxes:
- \ptxcd_ex_adjust_headheight:
+ \__ptxcd_adjust_headheight:
\global\let\ConfigureHeadline\ptxcd_ConfigureHeadline:n
}
-
-%task environment
\DeclareSectionCommand[%
- style=section,%
- level=2,%
- indent=\z@,%
- beforeskip=\cs_if_exist_use:NF \scr@subsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
- afterskip=\cs_if_exist_use:NF \scr@subsection@afterskip {1.5ex \@plus .2ex},%
- tocstyle=section,%
- tocindent=\cs_if_exist_use:NF \scr@tso@subsection@indent {1.5em},%
- tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsection@numwidth {2.3em},%
+ style=section,%
+ level=2,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=section,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsection@numwidth {2.3em},%
]{task}
-
\renewcommand*{\thetask}{
- \g_ptxcd_ex_sheetnum_tl\tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl{.}
- \arabic{task}
+ \g_ptxcd_ex_sheetnum_tl\tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl{.}
+ \arabic{task}
}
-\renewcommand*{\taskformat}{\taskname\tasksep\thetask{}}
-
+\newcommand*{\tasklabel}{\thetask}
+\renewcommand*{\taskformat}{\taskname\tasksep\tasklabel{}}
\let\@task\task
\cs_undefine:N \task
-
\NewDocumentEnvironment{task}{om}{
- \IfNoValueF{#1}{\keys_set:nn {ptxcd/task}{#1}}
- \@task{#2}
- \bool_if:NF \l__ptxcd_points_auto_bool {
- \cs_if_exist_use:NF \prop_gput:Nxx
- {\exp_args:NNx \prop_gput:Nnx}
- \g__ptxcd_points_collector_prop
- {\thetask} {\fp_to_decimal:N \l_ptxcd_ex_task_points_fp}
- }
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/task}{#1}}
+ \@task{#2}
+ \edef\@currenttasklabel{\tasklabel}
}{
- \bool_if:NT \l__ptxcd_points_auto_bool {
- \cs_if_exist_use:NF \prop_gput:Nxx
- {\exp_args:NNx \prop_gput:Nnx}
- \g__ptxcd_points_collector_prop
- {\thetask} {\fp_to_decimal:N \g__ptxcd_ex_collected_points_fp}
- \fp_gzero:N \g__ptxcd_ex_collected_points_fp
- }
+ \__ptxcd_save_task_properties:nnnn {} {\thetask} {#2} {
+ \bool_if:NTF \l__ptxcd_points_auto_bool {
+ \fp_to_decimal:N \g__ptxcd_ex_collected_points_fp
+ }{
+ \fp_to_decimal:N \l__ptxcd_task_points_fp
+ }
+ }
+ \fp_gzero:N \g__ptxcd_ex_collected_points_fp
+}
+\cs_new:Nn \__ptxcd_save_task_properties:nnnn {
+ \iow_now:Ne \@auxout {
+ \exp_not:N \ptxcd@TaskProperties {#1} {#2} {
+ \tl_if_empty:cF {l__ptxcd_#1credit_tl} {credit=\tl_to_str:v {l_ptxcd_#1credit_tl},}
+ \tl_if_blank:nF {#3} {title=\tl_to_str:n {#3},}
+ } {#4}
+ }
+ \prop_gput:cee {g__ptxcd_#1points_collector_prop}
+ {#2} {#4}
+}
+\cs_generate_variant:Nn \__ptxcd_save_task_properties:nnnn {nnon}
+\iffalse
+\newcommand*{\addsubtasktocentry}[4]{
+ \show\subtaskentry
+ %% {Dateierweiterung }{Ebene }{Gliederungsnummer }{Eintrag }
+ %\IfArgIsEmpty {#3}{\addcontentsline {#1}{#2}{\protect \nonumberline #4}}{\addcontentsline {#1}{#2}{\protect \numberline {#3}#4}}
+ \tocbasic@addxcontentsline{#1}{#2}{#3}{#4}
+ \iow_now:Ne \@auxout {
+ \exp_not:N \ptxcd@TaskProperties {\the\c@task} {\the\c@subtask} {\tl_to_str:n {#2}} {
+ \bool_if:NTF \l__ptxcd_points_auto_bool {
+ \fp_to_decimal:N \l__ptxcd_task_points_fp
+ }{
+ \fp_to_decimal:N \g__ptxcd_ex_collected_points_fp
+ }
+ }
+ }
+}
+\fi
+
+\newcommand*\ptxcd@TaskProperties [4]{
+ \prop_gput:cnn {g__ptxcd_#1points_collector_prop}
+ {#2} {#4}
+ \clist_map_inline:nn {#3} {
+ \prop_gput_from_keyval:Nn \g__ptxcd_property_collector_prop {
+ #2-##1
+ }
+ }
+ \prop_gput:Nnn \g__ptxcd_property_collector_prop {#2-points} {#4}
}
-
\cs_set_eq:cN {task*} \task
\cs_set_eq:cN {endtask*} \endtask
-
-% subtasks
\DeclareSectionCommand[%
- style=section,%
- level=3,%
- indent=\z@,%
- beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
- afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
- tocstyle=subsection,%
- tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
- tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
- counterwithin=task,%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=subsection,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
+ counterwithin=task,%
]{subtask}
-
\bool_if:NT \g__ptxcd_runin_subtask_bool {
- \RedeclareSectionCommand[runin=true]{subtask}
+ \RedeclareSectionCommand[runin=true]{subtask}
}
-
\renewcommand*{\thesubtask}{\alph{subtask})}
-\renewcommand*{\subtaskformat}{\thetask{}\thesubtask\enskip}
+\newcommand*{\subtasklabel}{\thetask\thesubtask}
+\renewcommand*{\subtaskformat}{\subtasklabel\enskip}
\setkomafont{subtask}{\mdseries\normalsize}
-
\let\@subtask\subtask
\cs_undefine:N \subtask
-
\NewDocumentEnvironment{subtask}{o}{
- \begingroup
- \tl_if_in:nnT {#1} {=} {
- \keys_set:nn {ptxcd/subtask} {#1}
- }
- \bool_if:NTF \l_ptxcd_ex_subtask_fallback_bool {
- \@subtask{\IfNoValueF{#1}{#1}}
- }{
- \@subtask{\l_ptxcd_ex_title_tl}
- }
- \cs_if_exist_use:NF \prop_gput:Nxx
- {\exp_args:NNx \prop_gput:Nnx}
- \g__ptxcd_subtask_points_collector_prop
- {\thetask\thesubtask} {\fp_to_decimal:N \l_ptxcd_ex_subtask_points_fp }
- \bool_if:NT \g__ptxcd_runin_subtask_bool \strut
- \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
- \endgroup
- \tl_set_eq:NN \@currentlabel \g_tmpa_tl
+ \begingroup
+ \tl_if_in:nnTF {#1} {=} {
+ \keys_set:nn {ptxcd/subtask} {#1}
+ } {
+ \keys_set:nn {ptxcd/subtask} {title={#1}}
+ }
+ \bool_if:NTF \l__ptxcd_subtask_fallback_bool {
+ \@subtask{\IfNoValueF{#1}{#1}}
+ }{
+ \@subtask{\l__ptxcd_title_tl}
+ }
+ \edef\@currenttasklabel{\subtasklabel}
+ \__ptxcd_save_task_properties:nnon {subtask_} {\@currenttasklabel}
+ {\l__ptxcd_title_tl} {\fp_to_decimal:N \l__ptxcd_subtask_points_fp}
+ \bool_if:NT \g__ptxcd_runin_subtask_bool \strut
+ \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
+ \endgroup
+ \edef\@currentcounter{subtask}
+ \protected@edef\@currentlabel{\p@subtask\thesubtask}
}{}
-
\NewDocumentEnvironment{subtask*}{om}{
- \begingroup
- \IfNoValueF{#1}{\keys_set:nn {ptxcd/subtask}{#1}}
- \@subtask{#2}
- \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
- \endgroup
- \tl_set_eq:NN \@currentlabel \g_tmpa_tl
+ \begingroup
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/subtask}{#1}}
+ \@subtask{#2}
+ \tl_gset_eq:NN \g_tmpa_tl \@currentlabel
+ \endgroup
+ \tl_set_eq:NN \@currentlabel \g_tmpa_tl
}{}
-
-%Solution mechanism
-
-\DeclareSectionCommand[%
- style=section,%
- level=3,%
- indent=\z@,%
- beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
- afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
- tocstyle=subsection,%
- tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
- tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
-]{@solution}
-
-
-\setkomafont{@solution}{\normalfont}
-
-\cs_new:Nn \ptxcd_ex_solutionheader: {
- \@solution*{\solutionname\solutionsep}
- \if@newlist\global\@newlistfalse\fi
-}
-
+ \DeclareSectionCommand[%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=\cs_if_exist_use:NF \scr@subsubsection@beforeskip {-3.25ex\@plus -1ex \@minus -.2ex},%
+ afterskip=\cs_if_exist_use:NF \scr@subsubsection@afterskip {1.5ex \@plus .2ex},%
+ tocstyle=subsection,%
+ tocindent=\cs_if_exist_use:NF \scr@tso@subsubsection@indent {1.5em},%
+ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},%
+ ]{@solution}
+ \setkomafont{@solution}{\normalfont}
+ \cs_new:Nn \__ptxcd_solutionheader: {
+ \@solution*{\solutionname\solutionsep}
+ \if@newlist\global\@newlistfalse\fi
+ }
\box_new:N \g_ptxcd_NumberForm_box
\hbox_gset:Nn \g_ptxcd_NumberForm_box {
\rule{\fboxrule}{1ex}
@@ -904,22 +856,16 @@
\rule{\fboxrule}{1ex}
\,
}
-
\newcommand*\ptxcd_StudentID[1][7]{
\StudentIDname\StudentIDsep\prg_replicate:nn {#1} {\box_use:N \g_ptxcd_NumberForm_box}
}
\let\StudentID\ptxcd_StudentID
-
\newcommand*\ptxcd_StudentName{
\StudentNamename\StudentNamesep\hrulefill\qquad
}
\let\StudentName\ptxcd_StudentName
-
\let\ShortTitle\g_ptxcd_shorttitle_tl
-
-% Compatibility Features
-
-\bool_if:NT \g_ptxcd_ex_compatibility_bool {
+\bool_if:NT \g__ptxcd_compatibility_bool {
\cs_set_eq:NN \c@subsection \c@task
\cs_set_eq:NN \subsection \task
\cs_set_eq:NN \c@subsubsection \c@subtask
@@ -927,148 +873,184 @@
\cs_set_eq:NN \thetask \thesubsection
\cs_set_eq:NN \thesubtask \thesubsection
}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
-
\ptxcd_makeheadrule[color=identbarcolor, width=\textwidth]{ptxcd_headrule}
-
-% Point referencing
\cs_if_exist:NTF \AddtoDoHook {
\AddtoDoHook{heading/preinit/subtask}{
\bool_if:NT \g__ptxcd_points_bool {
- \fp_gadd:Nn \g__ptxcd_ex_collected_points_fp {\l_ptxcd_ex_subtask_points_fp}
+ \fp_gadd:Nn \g__ptxcd_ex_collected_points_fp {\l__ptxcd_subtask_points_fp}
}
}
-
\AddtoDoHook{heading/preinit/task}{
\fp_gzero:N \g__ptxcd_ex_collected_points_fp
}
} {
\msg_warning:nnnn {tudaexercise} {outdated-koma-script} {point~references} {3.27}
}
-
-
-
\msg_new:nnn {tudaexercise} {points-differ} {
- Value~of~points~changed~for~at~least~one~task.\\
- Please~rerun~LaTeX~to~get~correct~references~and~calculations.
+ Value~of~points~changed~for~at~least~one~task.\\
+ Please~rerun~LaTeX~to~get~correct~references~and~calculations.
}
-
\msg_new:nnn {tudaexercise} {empty-point-mapping} {
- I~could~not~find~references~for~points~in~the~aux~file.\\
- Please~rerun~LaTeX~to~get~correct~references~and~calculations.
+ I~could~not~find~references~for~points~in~the~aux~file.\\
+ Please~rerun~LaTeX~to~get~correct~references~and~calculations.
}
-
\msg_new:nnn {tudaexercise} {point-referencing-disabled} {
- You~try~to~use~#1.\\
- This~function~is~only~available~with~points=true~or~points=auto.\\
- Please~activate~referencing~to~use~it.
+ You~try~to~use~#1.\\
+ This~function~is~only~available~with~points=true~or~points=auto.\\
+ Please~activate~referencing~to~use~it.
}
-
\bool_if:NTF \g__ptxcd_points_bool {
- \BeforeClosingMainAux{
- \tl_clear:N \l_tmpa_tl
- \tl_clear:N \l_tmpb_tl
- \fp_zero:N \l_tmpa_fp
- \prop_map_inline:Nn \g__ptxcd_points_collector_prop {
- \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
- \fp_add:Nn \l_tmpa_fp {#2}
- }
- \prop_map_inline:Nn \g__ptxcd_subtask_points_collector_prop {
- \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
- }
- \prop_map_inline:Nn \g__ptxcd_loaded_points_prop {
- \tl_put_right:Nn \l_tmpb_tl {#1=#2,}
- }
- \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl {
- \msg_warning:nn {tudaexercise} {points-differ}
- }
- \iow_now:Nx \@auxout{
- \exp_not:N \ptxcd@LoadPoints[\thetask][\fp_use:N \l_tmpa_fp]{\l_tmpa_tl}
- }
- }
-
- \cs_new:Nn \__ptxcd_getPoints:n {
- \prop_if_in:NnTF \g__ptxcd_loaded_points_prop {#1}
- {\prop_item:Nn \g__ptxcd_loaded_points_prop {#1}}
- {\nfss@text{\reset@font\bfseries??}}
- }
- \cs_generate_variant:Nn \__ptxcd_getPoints:n {x}
-
- \newcommand{\getPoints}[1]{\__ptxcd_getPoints:x {#1}}
-
- \newcommand{\refPoints}[1]{
- \edef\x{#1}
- \cs_if_exist:cTF {r@\x} {
- \str_if_in:cnTF {r@\x} {subtask} {
- \tl_set_eq:Nc \l_tmpa_tl {r@\x}
- \getPoints{\tl_item:Nn \l_tmpa_tl {2}\tl_item:Nn \l_tmpa_tl {1}}
- } {
- \getPoints{\tl_head:v {r@\x}}
- }
- }{
- \nfss@text{\reset@font\bfseries??}
- }
- }
+ \BeforeClosingMainAux{
+ \tl_clear:N \l_tmpa_tl
+ \tl_clear:N \l_tmpb_tl
+ \fp_zero:N \l_tmpa_fp
+ \prop_map_inline:Nn \g__ptxcd_points_collector_prop {
+ \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
+ \fp_add:Nn \l_tmpa_fp {#2}
+ }
+ \prop_map_inline:Nn \g__ptxcd_subtask_points_collector_prop {
+ \tl_put_right:Nn \l_tmpa_tl {#1=#2,}
+ }
+ \prop_map_inline:Nn \g__ptxcd_loaded_points_prop {
+ \tl_put_right:Nn \l_tmpb_tl {#1=#2,}
+ }
+ \tl_if_eq:NNF \l_tmpa_tl \l_tmpb_tl {
+ \msg_warning:nn {tudaexercise} {points-differ}
+ }
+ \iow_now:Nx \@auxout{
+ \exp_not:N \ptxcd@LoadPoints[\the\c@task][\fp_use:N \l_tmpa_fp]{\l_tmpa_tl}
+ }
+ }
+ \cs_new:Nn \__ptxcd_getPoints:n {
+ \prop_if_in:NnTF \g__ptxcd_loaded_points_prop {#1}
+ {\prop_item:Nn \g__ptxcd_loaded_points_prop {#1}}
+ {\nfss@text{\reset@font\bfseries??}}
+ }
+ \cs_generate_variant:Nn \__ptxcd_getPoints:n {x}
+ \newcommand{\getPoints}[1]{\__ptxcd_getPoints:x {#1}}
+ \newcommand{\refPoints}[1]{
+ \edef\x{#1}
+ \cs_if_exist:cTF {r@\x} {
+ \str_if_in:cnTF {r@\x} {subtask} {
+ \tl_set_eq:Nc \l_tmpa_tl {r@\x}
+ \getPoints{\tl_item:Nn \l_tmpa_tl {2}\tl_item:Nn \l_tmpa_tl {1}}
+ } {
+ \getPoints{\tl_head:v {r@\x}}
+ }
+ }{
+ \nfss@text{\reset@font\bfseries??}
+ }
+ }
+ \newcommand{\getPointsTotal}{
+ \fp_use:N \g__ptxcd_points_total_fp
+ }
+\NewDocumentCommand{\getTaskProperty}{O{\@currenttasklabel}m}{
+ \exp_args:Ne \tl_show:n {#1-#2}
+ \prop_show:N \g__ptxcd_property_collector_prop
+ \prop_if_in:NnTF \g__ptxcd_property_collector_prop {#1-#2}
+ {\prop_item:Nn \g__ptxcd_property_collector_prop {#1-#2}}
+ {{\nfss@text{\reset@font\bfseries??}}}
+}
- \newcommand{\getPointsTotal}{
- \fp_use:N \g__ptxcd_points_total_fp
- }
+ \NewDocumentCommand{\mapPoints}{sO{1}m}{
+ \mapTasks[skip-zero-points=true,\IfBooleanF{#1}{subtask=false},start-task=#2]{#3}{#3}
+ }
+\cs_new:Nn \__ptxcd_point_mapping_aux:nnn {
+ \bool_set_true:c {l__ptxcd_#1_bool}
+ \cs_set:ce {__ptxcd_cached_#1_counter:} {\int_eval:n {\value{#1}}}
+ \setcounter{#1}{#2}
+\bool_while_do:cn {l__ptxcd_#1_bool} {
+ \prop_get:NeNTF \g__ptxcd_loaded_points_prop {\use:c {#1label}} \l_tmpa_tl {
+ \bool_if:NT \l__ptxcd_skip_zero_points_bool
+ {\fp_compare:nF {\l_tmpa_tl = 0}}
+ \use:n
+ {
+ \tl_build_put_right:Ne \l_ptxcd_tmp_tl {
+ \exp_not:c {__ptxcd_map_points_#1:nn} {\use:c {#1label}} {\l_tmpa_tl}
+ }
+ }
+ #3
+ \stepcounter{#1}
+ } {\bool_set_false:c {l__ptxcd_#1_bool}}
+ }
+ \setcounter{#1}{\use:c {__ptxcd_cached_#1_counter:}}
+}
+\keys_define:nn {ptxcd/task-mapping} {
+ task .bool_set:N = \l__ptxcd_task_bool,
+ task .initial:n = false,
+ subtask .bool_set:N = \l__ptxcd_subtask_bool,
+ subtask .initial:n = false,
+ skip-zero-points .bool_set:N = \l__ptxcd_skip_zero_points_bool,
+ skip-zero-points .initial:n = false,
+ start-task .int_set:N = \l__ptxcd_start_task_int,
+ start-task .initial:n = 1,
+}
- \NewDocumentCommand{\mapPoints}{sO{1}m}{
- \cs_gset_nopar:Nn \__ptxcd_map_points_helper:nn {#3}
- \prop_if_empty:NTF \g__ptxcd_loaded_points_prop {
- \msg_warning:nn {tudaexercise} {empty-point-mapping}
- \__ptxcd_map_points_helper:nn {?task?} {?points?}
- }{
- \int_gset:Nn \g_ptxcd_tmp_int {\value{task}}
- \setcounter{task}{#2}
- \tl_gclear:N \g_ptxcd_tmp_tl
- \bool_gset_true:N \g_tmpa_bool
- \bool_while_do:Nn \g_tmpa_bool
- {
- \exp_args:NNx \prop_get:NnNTF \g__ptxcd_loaded_points_prop {\thetask} \l_tmpa_tl
- {
- \fp_compare:nF {\l_tmpa_tl = 0}
- {
- \tl_gput_right:Nn \g_ptxcd_tmp_tl {\__ptxcd_map_points_helper:nn}
- \tl_gput_right:Nx \g_ptxcd_tmp_tl {{\thetask} {\l_tmpa_tl}}
- }
- }
- {\bool_gset_false:N \g_tmpa_bool}
- \stepcounter{task}
- }
- \setcounter{task}{\int_use:N \g_ptxcd_tmp_int}
- \g_ptxcd_tmp_tl
- }
+\NewDocumentCommand{\mapTasks}{O{}+m+m}{
+ \cs_gset:Ne \__ptxcd_restore_task_counters: {
+ \exp_not:N \setcounter{task}{\the\value{task}}
+ \exp_not:N \setcounter{subtask}{\the\value{subtask}}
+ }
+ \group_begin:
+ \keys_set:ne {ptxcd/task-mapping} {
+ task = true,
+ subtask=true,
+ #1
+ }
+ \cs_gset:Nn \__ptxcd_map_points_task:nn {#2}
+ \cs_gset:Nn \__ptxcd_map_points_subtask:nn {#3}
+
+ \prop_if_empty:NTF \g__ptxcd_loaded_points_prop {
+ \msg_warning:nn {tudaexercise} {empty-point-mapping}
+ \tl_set:Nn \l_ptxcd_tmp_tl {\__ptxcd_map_points_task:nn {?task?} {?points?}}
+ } {
+ \tl_build_begin:N \l_ptxcd_tmp_tl
+ \exp_args:Nne \use:n {
+ \bool_if:NTF \l__ptxcd_task_bool \use:n \use_ii:nn
+ {\__ptxcd_point_mapping_aux:nnn {task} {\int_use:N \l__ptxcd_start_task_int}}
+ }{
+ \bool_if:NT \l__ptxcd_subtask_bool {
+ \exp_not:n {
+ \bool_set_true:N \l__ptxcd_subtask_bool
+ \__ptxcd_point_mapping_aux:nnn {subtask} {1} {}
+ }
}
-
+ }
+ \tl_build_end:N \l_ptxcd_tmp_tl
+ }
+ \cs_gset_eq:NN \g_ptxcd_tmp_tl \l_ptxcd_tmp_tl
+ \exp_last_unbraced:No
+ \group_end:
+ \g_ptxcd_tmp_tl
+ \ifhmode\else\ifvoid\@arstrutbox\else\noalign\fi\fi
+ {\__ptxcd_restore_task_counters:}
+ }
} {
- \newcommand{\getPoints}[1]{
- \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPoints}
- }
- \newcommand{\refPoints}[1]{
- \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\refPoints}
- }
- \newcommand{\getPointsTotal}[1]{
- \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPointsTotal}
- }
-
- \NewDocumentCommand{\mapPoints}{som} {
- \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\mapPoints}
- }
+ \newcommand{\getPoints}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPoints}
+ }
+ \newcommand{\refPoints}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\refPoints}
+ }
+ \newcommand{\getPointsTotal}[1]{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getPointsTotal}
+ }
+ \NewDocumentCommand{\mapPoints}{som} {
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\mapPoints}
+ }
+ \NewDocumentCommand{\getTaskProperty}{om}{
+ \msg_error:nnn {tudaexercise} {point-referencing-disabled} {\getTaskProperty}
+ }
}
-
-\cs_new:Nn \__ptxcd_map_points_helper:nn {#1-#2}
-
-
+\int_new:N \g__ptxcd_max_task_int
\NewDocumentCommand{\ptxcd@LoadPoints}{oO{0}m}{
- \prop_gset_from_keyval:Nn \g__ptxcd_loaded_points_prop {
- #3
- }
- \fp_gset:Nn \g__ptxcd_points_total_fp {#2}
+ \IfNoValueF{#1}{\int_gset:Nn \g__ptxcd_max_task_int {#1}}
+ \prop_gset_from_keyval:Nn \g__ptxcd_loaded_points_prop {
+ #3
+ }
+ \fp_gset:Nn \g__ptxcd_points_total_fp {#2}
}
-
-
\endinput
-%End of class tudaexercise.cls
+%%
+%% End of file `tudaexercise.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudafonts.sty b/Master/texmf-dist/tex/latex/tuda-ci/tudafonts.sty
index 9fb3ad06005..194a9bbf10b 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudafonts.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudafonts.sty
@@ -1,10 +1,18 @@
-%% This is file `tudafonts.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `tudafonts.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudafonts.dtx (with options: `package')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,106 +21,93 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
\ProvidesPackage{tudafonts}
- [\filedate\space\fileversion\space
- font loading for TUDa-CI, TU Darmstadt's Corporate Design]
-
+ [2025-01-26 v4.00
+ font setup for TUDa-CI, TU Darmstadt's Corporate Design]
\expandafter\newif\csname if@ptxcd@T1\endcsname
-
\DeclareOption{T1}{\csname @ptxcd@T1true\endcsname}
\ProcessOptions\relax
-
\RequirePackage{iftex}
\RequirePackage{anyfontsize}
-
\ifPDFTeX
- \csname @ptxcd@T1true\endcsname
- %Fallback for older versions
- \expandafter\ifx\csname DeclareUnicodeCharacter\endcsname\relax
- \RequirePackage[utf8]{inputenc}
- \fi
- \expandafter\ifx\csname texteuro\endcsname\relax
- \RequirePackage{textcomp}
- \fi
- \DeclareUnicodeCharacter{20AC}{\texteuro}
+ \csname @ptxcd@T1true\endcsname
+ %Fallback for older versions
+ \expandafter\ifx\csname DeclareUnicodeCharacter\endcsname\relax
+ \RequirePackage[utf8]{inputenc}
+ \fi
+ \expandafter\ifx\csname texteuro\endcsname\relax
+ \RequirePackage{textcomp}
+ \fi
+ \DeclareUnicodeCharacter{20AC}{\texteuro}
\fi
-
\csname if@ptxcd@T1\endcsname
- \ifLuaTeX
- \RequirePackage[utf8]{luainputenc}
- \fi
- \RequirePackage{XCharter}%activates T1
- \PassOptionsToPackage{type1}{roboto}
- \PassOptionsToPackage{type1}{roboto-mono}
- %Workaround for missing ligature replacements with roboto in T1
- \ifXeTeX
- \else
- \RequirePackage{microtype}
- \DisableLigatures{encoding = *, family=\sfdefault,shape = sc }
- \fi
+ \ifLuaTeX
+ \RequirePackage[utf8]{luainputenc}
+ \fi
+ \RequirePackage{XCharter}%activates T1
+ \PassOptionsToPackage{type1}{roboto}
+ \PassOptionsToPackage{type1}{roboto-mono}
+ % Workaround for missing ligature replacements with roboto in T1
+ \ifXeTeX
+ \else
+ \RequirePackage{microtype}
+ \DisableLigatures{encoding = *, family=\sfdefault,shape = sc }
+ \fi
\else
- \RequirePackage{fontspec}
- \setmainfont{XCharter}
+ \RequirePackage{fontspec}
+ \setmainfont{XCharter}
\fi
-
\RequirePackage{roboto}
-
\csname if@ptxcd@T1\endcsname
- \newcommand\robotoblackspaced{%
- \robotoblack
- \lsstyle
- }
+ \newcommand\robotoblackspaced{%
+ \robotoblack
+ \lsstyle
+ }
\else
- \newfontfamily\robotoblackspaced
- [ Numbers = {\roboto@figurealign,\roboto@figurestyle},
- UprightFont = *-Black ,
- ItalicFont = *-BlackItalic,
- LetterSpace=26,
- WordSpace=2.2
- ]
- {Roboto}
+ \newfontfamily\robotoblackspaced
+ [ Numbers = {\roboto@figurealign,\roboto@figurestyle},
+ UprightFont = *-Black ,
+ ItalicFont = *-BlackItalic,
+ LetterSpace=26,
+ WordSpace=2.2
+ ]
+ {Roboto}
\fi
-
\IfFileExists{roboto-mono.sty}{
- \RequirePackage{roboto-mono}
+ \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}
+ \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}
}
-
\def\ptxcd@sffamily@lining{\robototlf}
-
\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}
-
-%%-----------------------------------------------------
+ {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
+%%
+%% End of file `tudafonts.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudaleaflet.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudaleaflet.cls
index 52b86eb3321..962062ead3f 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudaleaflet.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudaleaflet.cls
@@ -1,10 +1,20 @@
-%% This is file `tudaleaflet.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudaleaflet.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudaleaflet.dtx (with options: `class,initialization')
+%% tuda-ci.dtx (with options: `options,leaflet,print')
+%% tudaleaflet.dtx (with options: `class,body')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,302 +23,311 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplPackage{tudaleaflet}{\filedate}{\fileversion}{Leaflets using the Corporate Design of TU Darmstadt}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudaleaflet}{2025-01-26}{4.00}{Leaflets using the Corporate Design of TU Darmstadt}
\str_const:Nn \c__ptxcd_base_str {leaflet}
-
\tl_new:N \g_ptxcd_sponsor_pos_tl
\keys_define:nn {ptxcd/leaflet} {
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- 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}},
- colorback .bool_gset:N = \g_ptxcd_colorback_bool,
- colorback .initial:n = true,
- colorback .default:n = true,
- colorbacktitle .bool_gset:N = \g_ptxcd_colorbacktitle_bool,
- colorbacktitle .initial:n = false,
- colorbacktitle .default:n = true,
- colorbacksubtitle .bool_set:N = \g_ptxcd_colorbacksubtitle_bool,
- colorbacksubtitle .initial:n = false,
- colorbacksubtitle .default:n = true,
- sponsor .choices:nn = {title,lastfoot,manual}{\tl_gset_eq:NN \g_ptxcd_sponsor_pos_tl \l_keys_choice_tl},
- sponsor .initial:n = title,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/leaflet} {colorback=false, departmentlogofile=tuda_maschinenbau_logo}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
+ sponsor .choices:nn = {title,lastfoot,manual}{\tl_gset_eq:NN \g_ptxcd_sponsor_pos_tl \l_keys_choice_tl},
+ sponsor .initial:n = title,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / \c__ptxcd_base_str
+ }{
+ colorback=false,
+ departmentlogofile=tuda_maschinenbau_logo,
+ }
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+%% color options
+%% color options
+ 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}},
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+ colorbacktitle .bool_gset:N = \g_ptxcd_colorbacktitle_bool,
+ colorbacktitle .initial:n = false,
+ colorbacktitle .default:n = true,
+ colorbacksubtitle .bool_set:N = \g_ptxcd_colorbacksubtitle_bool,
+ colorbacksubtitle .initial:n = false,
+ colorbacksubtitle .default:n = true,
+ colorback / title .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool,
+ colorback / body .code:n =
+ \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool,
+ colorback / head .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_true:N \g_ptxcd_colorbacksubtitle_bool,
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
-
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{leaflet}}
\ProcessKeyOptions[ptxcd/leaflet]
\ProcessOptions\relax
-
\bool_if:NT \g_ptxcd_colorbacksubtitle_bool {
- \bool_if:NF \g_ptxcd_colorbacktitle_bool {
- \msg_new:nnnn {ptxcd/leaflet} {incompatible-options} {You~cannot~use~the~setting~#1~at~the~same~time~as~#2.} {See~TUDaLeaflet~documentation~for~further~information.}
- \msg_error:nn {ptxcd/leaflet} {incompatible-options} {colorbacksubtitle=true} {colorbacktitle=false}
- }
+ \bool_if:NF \g_ptxcd_colorbacktitle_bool {
+ \msg_new:nnnn {ptxcd/leaflet} {incompatible-options} {You~cannot~use~the~setting~#1~at~the~same~time~as~#2.} {See~TUDaLeaflet~documentation~for~further~information.}
+ \msg_error:nn {ptxcd/leaflet} {incompatible-options} {colorbacksubtitle=true} {colorbacktitle=false}
+ }
}
-
\LoadClass[notumble]{leaflet}
-
-%to workaround incompatibilities between leaflet and scrextend
\let\sectfont\relax
\RequirePackage{scrextend}
\RequirePackage{scrlayer}
\PassOptionsToPackage{cmyk}{tudacolors}
\RequirePackage[paper=leaflet]{tudarules}
-
-
\setlength{\headheight}{1cm}%to add headline
\setlength{\footheight}{2mm}
\setmargins{10mm}{\dimexpr10mm+\headheight\relax}{10mm}{10mm}%Hardcoded, according to the guideline
-
\DeclareNewLayer[
- head,
- mode=picture,
- contents=\putUL{\box_use:N \ptxcd_headrule_box}
+ head,
+ mode=picture,
+ contents=\putUL{\box_use:N \ptxcd_headrule_box}
]{TUDa.flyer.headline}
-
\DeclareNewLayer[
- foot,
- mode=picture,
- height=\z@,
- voffset=\paperheight-14mm,
- contents=\smash{\box_use:N \ptxcd_footrule_box}
+ foot,
+ mode=picture,
+ height=\z@,
+ voffset=\paperheight-14mm,
+ contents=\smash{\box_use:N \ptxcd_footrule_box}
]{TUDa.flyer.footline}
-
\DeclareNewPageStyleByLayers{TUDa.flyer}{
- TUDa.flyer.headline,
- TUDa.flyer.footline,
+ TUDa.flyer.headline,
+ TUDa.flyer.footline,
}
-
-% Title specific additions to pagestyle
-
\DeclareNewLayer[textarea,mode=picture,
-addheight=\headheight-\box_dp:N \ptxcd_headrule_box+\dp\strutbox,
-contents={
- \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
- \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
- {\bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}}
- {\putUL{\color{identbarcolor}\raisebox{-\height}{\parbox[t]{\textwidth}{
- \let\width\layerwidth
- \let\height\layerheight
- \g_ptxcd_titleimage_code_tl
- }}}}
- \put(\dim_to_decimal_in_unit:nn {\layerwidth-\__ptxcd_logowidth:
- } {\unitlength},
- \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
- \rlap{\box_use:N \g_ptxcd_title_info_box}
- }
-}
+ addheight=\headheight-\box_dp:N \ptxcd_headrule_box+\dp\strutbox,
+ contents={
+ \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
+ \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
+ {\bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}}
+ {\putUL{\color{identbarcolor}\raisebox{-\height}{\parbox[t]{\textwidth}{
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_ptxcd_titleimage_code_tl
+ }}}}
+ \put(\dim_to_decimal_in_unit:nn {\layerwidth-\__ptxcd_logowidth:
+ } {\unitlength},
+ \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
+ \rlap{\box_use:N \g_ptxcd_title_info_box}
+ }
+ }
]{title.TUDa.image}
-
\DeclareNewLayer[textarea,background,mode=picture,
- contents={
- \bool_if:NT \g_ptxcd_colorbacktitle_bool {
- \color{identbarcolor}\rule{\layerwidth}{\layerheight}
- }
- }
+ contents={
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {
+ \color{identbarcolor}\rule{\layerwidth}{\layerheight}
+ }
+ }
]{title.TUDa.background}
-
\DeclareNewPageStyleByLayers{title.TUDa}{
- title.TUDa.image,
- title.TUDa.background,
- TUDa.flyer.headline,
- TUDa.flyer.footline,
+ title.TUDa.image,
+ title.TUDa.background,
+ TUDa.flyer.headline,
+ TUDa.flyer.footline,
}
-
\cs_new:Nn \ptxcd_Setup_Title_box: {
- \hbox_gset:Nn \g_ptxcd_title_info_box
- {
- \parbox{\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}}{
- \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
- }
- }
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {
+ \parbox{\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
+ }
+ }
}
-
\newcommand*\sectionlinesformat[1]{%
- \parbox{\linewidth}{
- \rule[\ptxcd_titlerule_sep:]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- #1\strut\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par\nointerlineskip
- \skip_vertical:n {\ptxcd_titlerule_sep: -.5\dp\strutbox}
- \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
- }
+ \parbox{\linewidth}{
+ \rule[\ptxcd_titlerule_sep:]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ #1\strut\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -.5\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }
}
-
-% Titlepage
\newcommand*{\raggedtitle}{\raggedright}
\renewcommand*{\maketitle}{
- \def\and{,~ }
- \hbox_gset:Nn \g_ptxcd_sponsor_box {
- \edef\height{\noexpand\dimexpr\dim_eval:n {\__ptxcd_logosep: + .5\c_ptxcd_logoheight_dim}}
- \parbox[b]{\textwidth}{%
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- \vspace{.1\c_ptxcd_logoheight_dim}
- \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}\par
- \addvspace{.1\c_ptxcd_logoheight_dim}
- \ifx\@sponsors\@empty
- \else
- \@sponsors\par
- \fi
- \par\nointerlineskip\addvspace{\dim_eval:n {.1\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}}
-% \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- }
- }
- \begin{titlepage}
- \def\thefootnote{\fnsymbol{footnote}}
- \hbox_gset:Nn \g_ptxcd_title_box {
- \parbox[t]{\linewidth}{
- \begin{minipage}[b]{\linewidth}
- \bool_if:NT \g_ptxcd_colorbacktitle_bool {\color{textonaccentcolor}}
- \begin{addmargin}{3mm}
- \raggedtitle
- \Huge
- \usekomafont{disposition}
- \usekomafont{title}
- \leavevmode%
- \@title\strut\par
- \vskip0pt
- \end{addmargin}
- \end{minipage}%
- \par\nointerlineskip
- \bool_if:NTF \g_ptxcd_colorbacksubtitle_bool
- {\textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}}
- {\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
- \par
- \vspace{\c_ptxcd_rulesep_dim}
- \begin{addmargin}{3mm}
- \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
- \raggedtitle
- \usekomafont{disposition}
- {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
- {%
- \usekomafont{author}
- \lineskip 0.75em
- \@author
- \par
- }%
- {\usekomafont{date}{\@date\par}}%
- \end{addmargin}\nointerlineskip
- \vspace{\c_ptxcd_rulesep_dim}
- \bool_if:NT \g_ptxcd_colorbacktitle_bool
- {
- \textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}\par\nointerlineskip
- }
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
- }
- }
- \ptxcd_adjust_titlepage_style:
- \par
- \vspace*{\dimexpr.5\c_ptxcd_logoheight_dim-\topskip}
- \box_use:N \g_ptxcd_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
- \fi
- \end{titlepage}
- \setcounter{footnote}{0}%
- \global\let\and\relax
+ \def\and{,~ }
+ \hbox_gset:Nn \g_ptxcd_sponsor_box {
+ \edef\height{\noexpand\dimexpr\dim_eval:n {\__ptxcd_logosep: + .5\c_ptxcd_logoheight_dim}}
+ \parbox[b]{\textwidth}{%
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \vspace{.1\c_ptxcd_logoheight_dim}
+ \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}\par
+ \addvspace{.1\c_ptxcd_logoheight_dim}
+ \ifx\@sponsors\@empty
+ \else
+ \@sponsors\par
+ \fi
+ \par\nointerlineskip\addvspace{\dim_eval:n {.1\c_ptxcd_logoheight_dim-\c_ptxcd_rulesep_dim}}
+ }
+ }
+ \begin{titlepage}
+ \def\thefootnote{\fnsymbol{footnote}}
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\linewidth}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\color{textonaccentcolor}}
+ \begin{addmargin}{3mm}
+ \raggedtitle
+ \Huge
+ \usekomafont{disposition}
+ \usekomafont{title}
+ \leavevmode%
+ \@title\strut\par
+ \vskip0pt
+ \end{addmargin}
+ \end{minipage}%
+ \par\nointerlineskip
+ \bool_if:NTF \g_ptxcd_colorbacksubtitle_bool
+ {\textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}}
+ {\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ \par
+ \vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \raggedtitle
+ \usekomafont{disposition}
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@author
+ \par
+ }%
+ {\usekomafont{date}{\@date\par}}%
+ \end{addmargin}
+ \nointerlineskip
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool
+ {
+ \textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}\par\nointerlineskip
+ }
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ }
+ }
+ \ptxcd_adjust_titlepage_style:
+ \par
+ \vspace*{\dimexpr.5\c_ptxcd_logoheight_dim-\topskip}
+ \box_use:N \g_ptxcd_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
+ \fi
+\end{titlepage}
+\setcounter{footnote}{0}%
+\global\let\and\relax
}
-
-
-\cs_set:Nn \ptxcd_adjust_titlepage_style: {
- \dim_set:Nn \l_tmpa_dim {1\c_ptxcd_logoheight_dim}%\fp_to_dim:n {2.8\baselineskip}}
- \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
- \skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
- }
-
- \dim_set:Nn \l_tmpa_dim {
- +\box_ht:N \g_ptxcd_title_box
- +.5\c_ptxcd_logoheight_dim
- +\box_dp:N \g_ptxcd_title_box
- +\g_ptxcd_title_fill_skip
- }
- \ModifyLayer[
- addvoffset=\l_tmpa_dim,
- addheight= -\l_tmpa_dim
- ]{title.TUDa.image}
- \DeclareNewLayer[clone=TUDa.flyer.footline,
- mode=picture,
- align=bl,
- height=\box_ht:N \g_ptxcd_sponsor_box + \box_dp:N \g_ptxcd_sponsor_box,
- addvoffset=-\dp\strutbox,
- contents=\raisebox{\depth}{\box_use:N \g_ptxcd_sponsor_box}
- ]
- {title.TUDa.sponsor}
- \exp_args:Nx \tl_if_eq:nnT {\g_ptxcd_sponsor_pos_tl} {title} {
- \AddLayersToPageStyle{title.TUDa}{title.TUDa.sponsor}
- \ModifyLayer[
- addheight=-\box_ht:N \g_ptxcd_sponsor_box -\box_dp:N \g_ptxcd_sponsor_box-\dp\strutbox
- ]{title.TUDa.image}
- }
- \ModifyLayer[
- addvoffset={-\dim_eval:n {\headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box }},
- height={
- \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\box_dp:N \g_ptxcd_title_box}
- +\box_ht:N \g_ptxcd_title_box+\g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim+
- \headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box
- }
- ]{title.TUDa.background}
-
- \AddLayersToPageStyle{title.TUDa}{title.TUDa.background}
- \thispagestyle{title.TUDa}
- \nointerlineskip
- \ptxcd_Setup_Title_box:
- \par
- \vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
- \setlength{\fboxsep}{\z@}
+\cs_set:Nn \ptxcd_adjust_titlepage_style: {
+ \dim_set:Nn \l_tmpa_dim {1\c_ptxcd_logoheight_dim}%\fp_to_dim:n {2.8\baselineskip}}
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
+ \skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
+ }
+ \dim_set:Nn \l_tmpa_dim {
+ +\box_ht:N \g_ptxcd_title_box
+ +.5\c_ptxcd_logoheight_dim
+ +\box_dp:N \g_ptxcd_title_box
+ +\g_ptxcd_title_fill_skip
+ }
+ \ModifyLayer[
+ addvoffset=\l_tmpa_dim,
+ addheight= -\l_tmpa_dim
+ ]{title.TUDa.image}
+ \DeclareNewLayer[clone=TUDa.flyer.footline,
+ mode=picture,
+ align=bl,
+ height=\box_ht:N \g_ptxcd_sponsor_box + \box_dp:N \g_ptxcd_sponsor_box,
+ addvoffset=-\dp\strutbox,
+ contents=\raisebox{\depth}{\box_use:N \g_ptxcd_sponsor_box}
+ ]
+ {title.TUDa.sponsor}
+ \exp_args:Nx \tl_if_eq:nnT {\g_ptxcd_sponsor_pos_tl} {title} {
+ \AddLayersToPageStyle{title.TUDa}{title.TUDa.sponsor}
+ \ModifyLayer[
+ addheight=-\box_ht:N \g_ptxcd_sponsor_box -\box_dp:N \g_ptxcd_sponsor_box-\dp\strutbox
+ ]{title.TUDa.image}
+ }
+ \ModifyLayer[
+ addvoffset={-\dim_eval:n {\headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box }},
+ height={
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\box_dp:N \g_ptxcd_title_box}
+ +\box_ht:N \g_ptxcd_title_box+\g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim+
+ \headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box
+ }
+ ]{title.TUDa.background}
+ \AddLayersToPageStyle{title.TUDa}{title.TUDa.background}
+ \thispagestyle{title.TUDa}
+ \nointerlineskip
+ \ptxcd_Setup_Title_box:
+ \par
+ \vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
+ \setlength{\fboxsep}{\z@}
}
-%
-
\pagestyle{TUDa.flyer}
-
\RequirePackage{tudafonts}
\renewcommand*{\familydefault}{\sfdefault}
-
-%Titlepage font setup
-%compatibility after disposition was removed from scrextend
\expandafter\ifx\csname scr@fnt@disposition\endcsname\relax
- \newkomafont{disposition}
+ \newkomafont{disposition}
\fi
\setkomafont{disposition}{\bfseries}
\setkomafont{title}{\Huge}
@@ -316,137 +335,115 @@ contents={
\setkomafont{date}{}
\setkomafont{author}{}
\newkomafont{institution}{}
-
-%Adjust section font setup to be komafont compatible
\newkomafont{section}{}
\newkomafont{subsection}{}
\newkomafont{subsubsection}{}
-
\renewcommand\section{\@startsection{section}{1}{\z@}%
- {-3.5ex \@plus -.75ex}%
- {1ex}%
- {\usekomafont{disposition}\usekomafont{section}\sectfont}}
+ {-3.5ex \@plus -.75ex}%
+ {1ex}%
+ {\usekomafont{disposition}\usekomafont{section}\sectfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
- {-2.5ex plus -.5ex}%
- {1\p@}%
- {\usekomafont{disposition}\usekomafont{subsection}\sectfont}}
+ {-2.5ex plus -.5ex}%
+ {1\p@}%
+ {\usekomafont{disposition}\usekomafont{subsection}\sectfont}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
- {-2.5ex plus -.5ex}%
- {-1em}%
- {\usekomafont{disposition}\usekomafont{subsubsection}\sectfont}}
-
+ {-2.5ex plus -.5ex}%
+ {-1em}%
+ {\usekomafont{disposition}\usekomafont{subsubsection}\sectfont}}
\clist_map_inline:nn {section, subsection, subsubsection} {
- \cs_set_eq:cc {ptxcd_save_#1} {#1}
- \exp_args:Nc \RenewDocumentCommand{#1}{sO{##3}m}{
- \IfBooleanTF{##1}{
- \use:c {ptxcd_save_#1}*{\sectionlinesformat{##3}}
- }{
- \use:c {ptxcd_save_#1}[##2]{\sectionlinesformat{##3}}
- }
- }
+ \cs_set_eq:cc {ptxcd_save_#1} {#1}
+ \exp_args:Nc \RenewDocumentCommand{#1}{sO{##3}m}{
+ \IfBooleanTF{##1}{
+ \use:c {ptxcd_save_#1}*{\sectionlinesformat{##3}}
+ }{
+ \use:c {ptxcd_save_#1}[##2]{\sectionlinesformat{##3}}
+ }
+ }
}
-
\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
-
\def\subtitle#1{\def\@subtitle{#1}}
\subtitle{}
-
\seq_new:N \g_ptxcd_sponsors_seq
\def\AddSponsor{\seq_gput_right:Nn \g_ptxcd_sponsors_seq}
-
\def\sponsors#1{\def\@sponsors{#1}}
\sponsors{}
-
\box_new:N \g_ptxcd_sponsor_box
-
\newcommand*{\footergraphics}[1]{
- \begingroup
- \let\height\g_ptxcd_footheight_dim
- \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
- \endgroup
+ \begingroup
+ \let\height\g_ptxcd_footheight_dim
+ \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
+ \endgroup
}
-
\tl_new:N \g_ptxcd_titleimage_code_tl
\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
\newcommand{\titleimage}[1]{\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#1}}
-
\author{}%to remove warning if no author given
-
\box_new:N \g_ptxcd_title_box
\skip_new:N \g_ptxcd_title_fill_skip
-
\seq_new:N \g_ptxcd_title_info_seq
\box_new:N \g_ptxcd_title_info_box
-
\cs_new:Nn \ptxcd_make_title_info_box:n {
- \setlength{\fboxsep}{1.5mm}%
- \colorbox{InfoBox}{
- \makebox[\dim_eval:n {\__ptxcd_logowidth:-\fboxsep}][r]{
- \parbox{2\c_ptxcd_logoheight_dim}{
- \usekomafont{institution}
- \raggedright%
- #1
- }}}
+ \setlength{\fboxsep}{1.5mm}%
+ \colorbox{InfoBox}{
+ \makebox[\dim_eval:n {\__ptxcd_logowidth:-\fboxsep}][r]{
+ \parbox{2\c_ptxcd_logoheight_dim}{
+ \usekomafont{institution}
+ \raggedright%
+ #1
+ }}}
}
-
\cs_new:Nn \ptxcd_make_title_logo_box:n {
- \setlength{\fboxsep}{\z@}
- \parbox{\__ptxcd_logowidth:}{
- \colorbox{InfoBox}{
- \rlap{
- \makebox[\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}][r]{
- \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}}
- }
- }
- }
- }
+ \setlength{\fboxsep}{\z@}
+ \parbox{\__ptxcd_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}}
+ }
+ }
+ }
+ }
}
-
\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
-
\NewDocumentCommand{\addTitleBoxLogo}{sm}{
- \IfBooleanTF{#1}{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {#2}
- }
- }{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {
- \hbox_set:Nn \l_tmpa_box {
- \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
- }
- \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
- }
- }
- }
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}}
+\addTitleBoxLogo*{\makebox[\linewidth][l]{\__ptxcd_insert_logo:}}
\date{}
-
\let\insertSponsors\relax
-
\str_case:Vn \g_ptxcd_sponsor_pos_tl {
- {lastfoot}{
- \AtEndDocument{
- \par\vspace*{\fill}
- \leavevmode\raisebox{\dimexpr\depth-\baselineskip}[0pt][0pt]{
- \box_use:N \g_ptxcd_sponsor_box
- }
- }
- }
- {manual} {
- \renewcommand*{\insertSponsors}{\par\vfill\leavevmode\box_use:N \g_ptxcd_sponsor_box\par\nobreak\nointerlineskip\rule{\linewidth}{\g_ptxcd_titlerule_dim}
- }
+ {lastfoot}{
+ \AtEndDocument{
+ \par\vspace*{\fill}
+ \leavevmode\raisebox{\dimexpr\depth-\baselineskip}[0pt][0pt]{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ }
+ }
+ {manual} {
+ \renewcommand*{\insertSponsors}{\par\vfill\leavevmode\box_use:N \g_ptxcd_sponsor_box\par\nobreak\nointerlineskip\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
}
-}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
-
\ptxcd_makeheadrule[color=identbarcolor]{ptxcd_headrule}
\ptxcd_makefootrule{ptxcd_footrule}
-
\endinput
+%%
+%% End of file `tudaleaflet.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls
index 9eb3a15953a..73f6a022df8 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudaletter.cls
@@ -1,10 +1,23 @@
-%% This is file `tudaletter.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudaletter.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudaletter.dtx (with options: `class,initialization')
+%% tuda-ci.dtx (with options: `options,letter,print,process-options,pdfa')
+%% tudaletter.dtx (with options: `class,packages')
+%% tuda-ci.dtx (with options: `pdfx')
+%% tudaletter.dtx (with options: `class,body')
+%% tuda-ci.dtx (with options: `xmpdata')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,201 +26,230 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplClass{tudaletter}
- {\filedate}{\fileversion}{Letters for TUDa-CI, Corporate Design of TU Darmstadt}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplClass{tudaletter}{2025-01-26}{4.00}{Letters for TUDa-CI, Corporate Design of TU Darmstadt}
\str_const:Nn \c__ptxcd_base_str {letter}
\str_new:N \g_ptxcd_department_str
\bool_new:N \g__ptxcd_adjust_textwidth_bool
-
\keys_define:nn {ptxcd/letter} {
- logo .bool_gset:N = \g__ptxcd_letter_logo_bool,
- logo .default:n = true,
- logo .initial:n = true,
- premium .bool_gset:N = \g__ptxcd_letter_premium_bool,
- premium .default:n = true,
- accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors},
- firstpagenumber .bool_gset:N = \g__ptxcd_firstpagenumber_bool,
- firstpagenumber .initial:n = true,
- raggedright .bool_gset:N = \g__ptxcd_letter_raggedright_bool,
- pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
- pdfa .initial:n = true,
- pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
- pdfx .initial:n = true,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/letter}{departmentlogofile=tuda_maschinenbau_logo,headrule=false,logo=false,textwidth=narrow}
- \PassOptionsToPackage{identbar=Primary1,accent=Primary2}{tudacolors}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
- headrule .bool_gset:N = \g__ptxcd_letter_headrule_bool,
- headrule .initial:n = true,
- headrule .default:n = true,
- textwidth .choice:,
- textwidth / wide .code:n = \bool_gset_true:N \g__ptxcd_adjust_textwidth_bool,
- textwidth / narrow .code:n = \bool_gset_false:N \g__ptxcd_adjust_textwidth_bool,
- textwidth .initial:n = wide,
+ logo .bool_gset:N = \g__ptxcd_letter_logo_bool,
+ logo .default:n = true,
+ logo .initial:n = true,
+ premium .bool_gset:N = \g__ptxcd_letter_premium_bool,
+ premium .default:n = true,
+ firstpagenumber .bool_gset:N = \g__ptxcd_firstpagenumber_bool,
+ firstpagenumber .initial:n = true,
+ raggedright .bool_gset:N = \g__ptxcd_letter_raggedright_bool,
+ headrule .bool_gset:N = \g__ptxcd_letter_headrule_bool,
+ headrule .initial:n = true,
+ headrule .default:n = true,
+ textwidth .choice:,
+ textwidth / wide .code:n = \bool_gset_true:N \g__ptxcd_adjust_textwidth_bool,
+ textwidth / narrow .code:n = \bool_gset_false:N \g__ptxcd_adjust_textwidth_bool,
+ textwidth .initial:n = wide,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / \c__ptxcd_base_str
+ }{
+ departmentlogofile=tuda_maschinenbau_logo,
+ headrule=false,
+ logo=false,
+ textwidth=narrow,
+ }
+ \PassOptionsToPackage{identbar=Primary1,accent=Primary2}{tudacolors}
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+ pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
+ pdfa .initial:n =
+ true,
+ pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
+ pdfx .initial:n = true,
+%% color options
+%% color options
+ 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}},
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
-
-\ProcessKeyOptions[ptxcd/letter]
+\ProcessKeyOptions[ptxcd/\c__ptxcd_base_str]
\bool_if:NF \g_ptxcd_pdfa_bool {\bool_gset_false:N \g_ptxcd_pdfx_bool}
\bool_if:NT \g_ptxcd_pdfa_bool {
- \msg_new:nnn {tudapub} {colors-to-rgb} {
- You~did~not~add~a~color~profile.\\
- I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
- This~is~required~to~be~able~to~create~PDF/A~compliance.
- }
-
- \cs_if_exist:NT \pdfmeta_standard_get:nN {
- \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
- \quark_if_no_value:NF \l_tmpa_tl {
- \bool_gset_false:N \g_ptxcd_pdfx_bool
- \msg_new:nnn{tudapub} {prefer-lualatex} {
- I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
- tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
- To~disable this message use pdfx=false.
- }
- \msg_info:nn {tudapub} {prefer-lualatex}
- }
-
- \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
- \PassOptionsToPackage{RGB}{xcolor}
- \msg_info:nn {tudapub} {colors-to-rgb}
- }
- }
-}
-
-\bool_if:NT \g_ptxcd_pdfx_bool {
- \PassOptionsToPackage{RGB}{xcolor}
- \msg_info:nn {tudapub} {colors-to-rgb}
+ \msg_new:nnn {tudapub} {colors-to-rgb} {
+ You~did~not~add~a~color~profile.\\
+ I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
+ This~is~required~to~be~able~to~create~PDF/A~compliance.
+ }
+
+ \cs_if_exist:NT \pdfmeta_standard_get:nN {
+ \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
+ \quark_if_no_value:NF \l_tmpa_tl {
+ \bool_gset_false:N \g_ptxcd_pdfx_bool
+ \msg_new:nnn{tudapub} {prefer-lualatex} {
+ I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
+ tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
+ To~disable~this~message~use~pdfx=false.
+ }
+ \msg_info:nn {tudapub} {prefer-lualatex}
+ }
+ \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
+ \use_iii:nnn
+ }
+ }
+ \bool_if:NT \g_ptxcd_pdfx_bool {
+ \PassOptionsToPackage{RGB}{xcolor}
+ \msg_info:nn {tudapub} {colors-to-rgb}
+ }
}
\newcommand*{\@fontsizefilebase}{tudalettersize}
-
\PassOptionsToClass{fontsize=10pt,parskip=full-}{scrletter}
\PassOptionsToPackage{refline=nodate,addrfield=topaligned,firstfoot=false,pagenumber=botright}{scrletter}
\LoadClass{scrletter}
-
-% Load the TUDa-colorscheme
\RequirePackage{tudacolors}
\RequirePackage{tudafonts}
\RequirePackage{graphicx}
\RequirePackage{afterpage}
\RequirePackage{ragged2e}
-
-
-\bool_if:NTF \g__ptxcd_letter_premium_bool
-{ \cs_new:Nn \ptxcd_premiumcolor: {accentcolor}
- \cs_new:Nn \ptxcd_use_premiumcolor: {\color{accentcolor}}
- \cs_set:Nn \ptxcd_use_premiumcolor_text: {\color{textaccentcolor}}
+\bool_if:NTF \g__ptxcd_letter_premium_bool {
+ \cs_new:Nn \ptxcd_premiumcolor: {accentcolor}
+ \cs_new:Nn \ptxcd_use_premiumcolor: {\color{accentcolor}}
+ \cs_set:Nn \ptxcd_use_premiumcolor_text: {\color{textaccentcolor}}
}{
- \cs_new:Nn \ptxcd_premiumcolor: {black}
- \let\ptxcd_use_premiumcolor:\relax
- \let\ptxcd_use_premiumcolor_text:\relax
+ \cs_new:Nn \ptxcd_premiumcolor: {black}
+ \let\ptxcd_use_premiumcolor:\relax
+ \let\ptxcd_use_premiumcolor_text:\relax
}
-
-
-
-%%%%%Briefbogen
-%% Spacing:
\dim_const:Nn \c_ptxcd_HeadMargin_dim {12.5mm}
\dim_const:Nn \c_ptxcd_LeftMargin_dim {24.0mm}
\dim_const:Nn \c__ptxcd_firstpage_extraindent_dim {-\paperwidth+120mm +\c_ptxcd_LeftMargin_dim +\c_ptxcd_HeadMargin_dim}
\bool_if:NTF \g__ptxcd_adjust_textwidth_bool
- {
- \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim}
-
- }{
- \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim-\c__ptxcd_firstpage_extraindent_dim}
- }
+ {
+ \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim}
+ }{
+ \dim_const:Nn \c_ptxcd_RightMargin_dim {\c_ptxcd_HeadMargin_dim-\c__ptxcd_firstpage_extraindent_dim}
+ }
\dim_const:Nn \c_ptxcd_BottomMargin_dim {20mm}
\dim_const:Nn \c_ptxcd_Linewidth_dim {\paperwidth-\c_ptxcd_LeftMargin_dim-\c_ptxcd_RightMargin_dim}
-
\RequirePackage{geometry}
-
\geometry{
- twoside=false,
- left=\c_ptxcd_LeftMargin_dim,
- right=\c_ptxcd_RightMargin_dim,
- bottom=\c_ptxcd_BottomMargin_dim,
- footskip=7mm,
+ twoside=false,
+ left=\c_ptxcd_LeftMargin_dim,
+ right=\c_ptxcd_RightMargin_dim,
+ bottom=\c_ptxcd_BottomMargin_dim,
+ footskip=7mm,
}
-
\dim_const:Nn \c_ptxcd_textwidth_dim {\textwidth}
-
\bool_if:NTF \g__ptxcd_letter_logo_bool {
- \geometry{top=64mm}
+ \geometry{top=64mm}
} {
- \geometry{top=30mm}
+ \geometry{top=30mm}
}
+\PassOptionsToPackage{hidelinks, unicode}{hyperref}
+\bool_if:NTF \g_ptxcd_pdfx_bool {
+%% only apply the hack if pdfx is older than the working version
+ \PassOptionsToPackage{a-2b}{pdfx}
+%% Workaround posted by David Carlisle on tex.stackexchange
+%% Thanks to Ulrike Fischer for mentioning it in #472
+ \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
+ \chardef\currentgrouplevel0
+ \ExplSyntaxOff
+ \RequirePackage{pdfx}
+ \ExplSyntaxOn
+ \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
+ \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
+%% end of the workaround
+
+ \msg_new:nnn{tuda-ci} {prefer-lualatex} {
+ You~use~pdfa-mode~in~#1.\\
+ This~can~lead~to~incompatiblities~especially~with~older~compiler~versions.\\
+ You~should~prefer~using~lualatex.
+ }
+ \msg_new:nnnn{tuda-ci} {outdated-package-pdfa} {
+ Your~Version~of~the~#1-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.}
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {PDFTeX}
+ }
+
+ \sys_if_engine_xetex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {XeTeX}
+ }
+
+ \@ifpackagelater{xmpincl}{2021/09/22}{
+ }{
+ \msg_error:nn{tuda-ci} {outdated-package-pdfa} {xmpincl}
+ }
-\if_bool:N \g_ptxcd_pdfx_bool
- \PassOptionsToPackage{a-2b}{pdfx}
-% Workaround posted by David Carlisle on tex.stackexchange
-% Thanks to Ulrike Fischer for mentioning it in #472
- \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
- \chardef\currentgrouplevel0
- \ExplSyntaxOff
- \RequirePackage{pdfx}
- \ExplSyntaxOn
- \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
- \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
-% end of the workaround
-\else:
- \PassOptionsToPackage{hidelinks, unicode}{hyperref}
- \RequirePackage{hyperref}
-\fi:
-
+} {
+ \RequirePackage{hyperref}
+}
\RequirePackage[paper=a4]{tudarules}% might load pgfcore, so it has to be loaded after pdfx
-
\setplength{firstheadhpos}{\c_ptxcd_HeadMargin_dim}
\setplength{firstheadvpos}{\c_ptxcd_HeadMargin_dim}
\setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_ptxcd_HeadMargin_dim}}
-
\setplength{firstfootvpos}{\dim_eval:n {\paperheight -17mm}}
\setplength{firstfoothpos}{\useplength{firstheadhpos}}
\setplength{firstfootwidth}{\useplength{firstheadwidth}}
-
-
\setplength{toaddrhpos}{\c_ptxcd_LeftMargin_dim}
\setplength{toaddrvpos}{50mm}
\setplength{backaddrheight}{4mm}
\setplength{toaddrindent}{0mm}
-
\setplength{refhpos}{\c_ptxcd_LeftMargin_dim}
\setplength{refvpos}{106mm}
-
\setplength{subjectaftervskip}{2\baselineskip}
\setplength{lochpos}{\c_ptxcd_HeadMargin_dim}
\setplength{locvpos}{\dimexpr\useplength{refvpos}+\useplength{subjectaftervskip}+1.4\baselineskip\relax}
@@ -215,428 +257,372 @@
\setplength{subjectbeforevskip}{0pt}
\setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_ptxcd_HeadMargin_dim\relax}
\setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_ptxcd_BottomMargin_dim\relax}
-
-
\bool_if:NTF \g__ptxcd_letter_headrule_bool {
- \ptxcd_makeheadrule[width=\useplength{firstheadwidth},color=identbarcolor]{ptxcd_LetterheadRule}
+ \ptxcd_makeheadrule[width=\useplength{firstheadwidth},color=identbarcolor]{ptxcd_LetterheadRule}
} {
- \box_new:N \ptxcd_LetterheadRule_box
- \def\ptxcd_LetterheadRule{}
+ \box_new:N \ptxcd_LetterheadRule_box
+ \def\ptxcd_LetterheadRule{}
}
\ptxcd_makefootrule[width=\useplength{firstheadwidth}]{ptxcd_LetterfootRule}
-
-
\box_new:N \g_TUDaLetter_firsthead_box
\hbox_gset:Nn \g_TUDaLetter_firsthead_box {
- \parbox[t]{\useplength{firstheadwidth}}{
- \raggedleft
- \smash{\ptxcd_LetterheadRule}
- \par
- \vspace{.5\c_ptxcd_logoheight_dim}
- \makebox[\__ptxcd_logowidth:][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
- }
+ \parbox[t]{\useplength{firstheadwidth}}{
+ \raggedleft
+ \smash{\ptxcd_LetterheadRule}
+ \par
+ \vspace{.5\c_ptxcd_logoheight_dim}
+ \makebox[\__ptxcd_logowidth:][l]{\__ptxcd_insert_logo:}
+ }
}
-
\box_gset_dp:Nn \g_TUDaLetter_firsthead_box {\c_zero_dim}
\setkomavar{firsthead}{
- \box_use:N \g_TUDaLetter_firsthead_box
+ \box_use:N \g_TUDaLetter_firsthead_box
}
-
\KOMAoptions{backaddress=plain}
\setkomavar{backaddressseparator}{\,$\vert$\,}
-
-%DOKU neue komavars
\newkomavar{frominstitution}
\newkomavar{frominstitution-en}
-
\newkomafont{ptxcd_location}{\accentfont\normalcolor}
\setkomafont{fromname}{\small}
\newkomafont{ptxcd_frominst}{\small\ptxcd_use_premiumcolor_text: }
\setkomafont{fromaddress}{\footnotesize}
-
\setkomafont{refname}{}
\setkomafont{refvalue}{}
-
\setkomafont{pageheadfoot}{\footnotesize}
-
\newcommand{\TUD@locfield}{%
- \usekomafont{ptxcd_location}\usekomafont{fromaddress}
- \setparsizes{\z@}{\z@}{\z@ plus 1fil}
- \par@updaterelative
- \begingroup
- \int_compare:nT {0 < \@pageat <3} {
- \ptxcd_letterpagemark:\\[\baselineskip]
- }
- \usekomafont{ptxcd_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__ptxcd_reffields_seq {}
- \Ifkomavarempty{frombank}{}{\vfill%
- \Ifkomavarempty*{frombank}{Bankverbindung}{\usekomavar*{frombank}}\\\usekomavar{frombank}
- }
+ \usekomafont{ptxcd_location}\usekomafont{fromaddress}
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}
+ \par@updaterelative
+ \begingroup
+ \int_compare:nT {0 < \@pageat <3} {
+ \ptxcd_letterpagemark:\\[\baselineskip]
+ }
+ \usekomafont{ptxcd_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__ptxcd_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 \ptxcd_reffield_separator_tl {\\}
-
\cs_new:Nn \ptxcd_set_reffield:n {
- \Ifkomavarempty{#1}{}{%
- \if@tempswa\\[\baselineskip]\fi
- \parbox[t]{\linewidth}{\noindent\raggedright
- \usekomafont{refname}
- \usekomavar*{#1}\ptxcd_reffield_separator_tl
- \usekomafont{refvalue}
- \usekomavar{#1}
- }%
- \@tempswatrue
- }%
+ \Ifkomavarempty{#1}{}{%
+ \if@tempswa\\[\baselineskip]\fi
+ \parbox[t]{\linewidth}{\noindent\raggedright
+ \usekomafont{refname}
+ \usekomavar*{#1}\ptxcd_reffield_separator_tl
+ \usekomafont{refvalue}
+ \usekomavar{#1}
+ }%
+ \@tempswatrue
+ }%
}
-
-
-
\seq_new:N \g__ptxcd_reffields_seq
\newlength{\TUD@page@free}
\newcounter{TUD@page@free@lines}
\dim_new:N \g__ptxcd_page_free_dim
\int_new:N \g__ptxcd_free_lines_int
-
\renewcommand{\opening}[1]{%
- \widowpenalty=100
- \@PapersizeWarning
- \seq_gclear:N \g__ptxcd_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__ptxcd_reffields_seq {%
- \ptxcd_set_reffield:n {##1}
- }%
- }%
- }
- \let\do@set@reffield\@set@reffield
- \@set@reffields
- \removereffields
- \@gen@firsthead
- \@mkboth{\scr@fromname@var}{\scr@subject@var}%
- \thispagestyle{letter.first}\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
- \bool_if:NT \g__ptxcd_adjust_textwidth_bool {
- \everypar{%
- \if@nobreak
- \@nobreakfalse\clubpenalty\@M
- \if@afterindent
- \else{\setbox\z@\lastbox}
- \fi
- \else
- \clubpenalty\@clubpenalty
- \fi
- \ifnum\thepage=1%
- \dim_gset:Nn \g__ptxcd_page_free_dim {-\pagegoal + \pagetotal}
- \dim_compare:nTF {-\g__ptxcd_page_free_dim>2\baselineskip}
- {
- \int_gset:Nn \g__ptxcd_free_lines_int {\fp_eval:n {ceil(\g__ptxcd_page_free_dim/\baselineskip)}}
- \int_compare:nT {\g__ptxcd_free_lines_int<0} {
- \hangafter=\g__ptxcd_free_lines_int\hangindent=\c__ptxcd_firstpage_extraindent_dim%
- }
- } {
- \dim_compare:nT {-\TUD@page@free>\baselineskip} {
- \hangafter=-2\hangindent=\c__ptxcd_firstpage_extraindent_dim%
- }
- }
- \fi%
- }%
- \global\setlength{\linewidth}{\dim_eval:n {\c_ptxcd_Linewidth_dim + \c__ptxcd_firstpage_extraindent_dim}}
- \afterpage{
- \global\setlength{\linewidth}{\c_ptxcd_Linewidth_dim}
- \widowpenalty=10000
- }
- }
+ \widowpenalty=100
+ \@PapersizeWarning
+ \seq_gclear:N \g__ptxcd_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__ptxcd_reffields_seq {%
+ \ptxcd_set_reffield:n {##1}
+ }%
+ }%
+ }
+ \let\do@set@reffield\@set@reffield
+ \@set@reffields
+ \removereffields
+ \@gen@firsthead
+ \@mkboth{\scr@fromname@var}{\scr@subject@var}%
+ \thispagestyle{letter.first}\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
+ \bool_if:NT \g__ptxcd_adjust_textwidth_bool {
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse\clubpenalty\@M
+ \if@afterindent
+ \else{\setbox\z@\lastbox}
+ \fi
+ \else
+ \clubpenalty\@clubpenalty
+ \fi
+ \ifnum\thepage=1%
+ \dim_gset:Nn \g__ptxcd_page_free_dim {-\pagegoal + \pagetotal}
+ \dim_compare:nTF {-\g__ptxcd_page_free_dim>2\baselineskip}
+ {
+ \int_gset:Nn \g__ptxcd_free_lines_int {\fp_eval:n {ceil(\g__ptxcd_page_free_dim/\baselineskip)}}
+ \int_compare:nT {\g__ptxcd_free_lines_int<0} {
+ \hangafter=\g__ptxcd_free_lines_int\hangindent=\c__ptxcd_firstpage_extraindent_dim%
+ }
+ } {
+ \dim_compare:nT {-\TUD@page@free>\baselineskip} {
+ \hangafter=-2\hangindent=\c__ptxcd_firstpage_extraindent_dim%
+ }
+ }
+ \fi%
+ }%
+ \global\setlength{\linewidth}{\dim_eval:n {\c_ptxcd_Linewidth_dim + \c__ptxcd_firstpage_extraindent_dim}}
+ \afterpage{
+ \global\setlength{\linewidth}{\c_ptxcd_Linewidth_dim}
+ \widowpenalty=10000
+ }
+ }
}
-
\AtBeginDocument{%
\raggedbottom%
}
-
\setkomafont{backaddress}{\accentfont\tiny\ptxcd_use_premiumcolor_text:\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}}
-
\raggedbottom
-
\int_new:N \l_ptxcd_letter_lastpage_int
\cs_new:Nn \ptxcd_letterpagemark: {
- %get lastpage for this letter if not already done
- \int_compare:nNnTF {\value{page}} = {1} {
- \bool_if:NTF \g__ptxcd_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_ptxcd_letter\thisletter _lastpage_int} {
- \cs_if_exist:cTF {r@\thisletter.lastpage} {
- \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {
- \exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}
- }
- } {
- %warning -> rerun latex
- \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {0}
- }
- }
- \usekomafont{pagenumber}\pagename\nobreakspace\thepage
- \int_compare:nT {
- \int_use:c {c_ptxcd_letter\thisletter _lastpage_int}
- > 1
- } {/\int_to_arabic:n{\int_use:c {c_ptxcd_letter\thisletter _lastpage_int}}}
- }
+ %get lastpage for this letter if not already done
+ \int_compare:nNnTF {\value{page}} = {1} {
+ \bool_if:NTF \g__ptxcd_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_ptxcd_letter\thisletter _lastpage_int} {
+ \cs_if_exist:cTF {r@\thisletter.lastpage} {
+ \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {
+ \exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}
+ }
+ } {
+ %warning -> rerun latex
+ \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {0}
+ }
+ }
+ \usekomafont{pagenumber}\pagename\nobreakspace\thepage
+ \int_compare:nT {
+ \int_use:c {c_ptxcd_letter\thisletter _lastpage_int}
+ > 1
+ } {/\int_to_arabic:n{\int_use:c {c_ptxcd_letter\thisletter _lastpage_int}}}
+ }
}
-
-
\setkomavar{firstfoot}{\usekomavar{nextfoot}}
-
\setkomavar{nextfoot}{%
- \ifnum\@pageat>2
- \parbox[c]{\layerwidth}{%
- \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
- \strut\pagemark%
- }%
- \fi
+ \ifnum\@pageat>2
+ \parbox[c]{\layerwidth}{%
+ \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
+ \strut\pagemark%
+ }%
+ \fi
}
-
\cs_set_eq:NN \letterpagemark \ptxcd_letterpagemark:
-
-
\bool_if:NT \g__ptxcd_letter_headrule_bool {
- \bool_if:NTF \g__ptxcd_letter_logo_bool {
- \setkomavar{nexthead}{\raisebox{\topskip}{\box_use:N \g_TUDaLetter_firsthead_box}}
- }{
- \setkomavar{nexthead}{\raisebox{\depth}{\ptxcd_LetterheadRule}}
- }
+ \bool_if:NTF \g__ptxcd_letter_logo_bool {
+ \setkomavar{nexthead}{\raisebox{\topskip}{\box_use:N \g_TUDaLetter_firsthead_box}}
+ }{
+ \setkomavar{nexthead}{\raisebox{\depth}{\ptxcd_LetterheadRule}}
+ }
}
-
\newpairofpagestyles[letter]{TUDaLetter}{
- \exp_args:Nx \KOMAoptions{
- footwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
- headwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
- footsepline=.5\c_ptxcd_smallrule_dim,plainfootsepline
- }
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.even}
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.odd}
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.oneside}
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.even}
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.odd}
- \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.oneside}
- \lehead{\usekomavar{nexthead}}%
- \lohead{\usekomavar{nexthead}}%
- \lefoot{\usekomavar{nextfoot}}%
- \lofoot{\usekomavar{nextfoot}}%
+ \exp_args:Nx \KOMAoptions{
+ footwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
+ headwidth=\dimexpr\paperwidth-2\c_ptxcd_HeadMargin_dim \c_colon_str-\dim_eval:n {\c_ptxcd_HeadMargin_dim -1mm},
+ footsepline=.5\c_ptxcd_smallrule_dim,plainfootsepline
+ }
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.even}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.odd}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{TUDaLetter.head.oneside}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.even}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.odd}
+ \ModifyLayer[voffset=\c_ptxcd_HeadMargin_dim,align=tl]{plain.TUDaLetter.head.oneside}
+ \lehead{\usekomavar{nexthead}}%
+ \lohead{\usekomavar{nexthead}}%
+ \lefoot{\usekomavar{nextfoot}}%
+ \lofoot{\usekomavar{nextfoot}}%
}
-
\DeclarePageStyleByLayers{TUDaLetter.first}{TUDaLetter.foot.even,TUDaLetter.foot.odd,TUDaLetter.foot.oneside,TUDaLetter.foot.above.line}
\pagestyle{TUDaLetter}
-
\DeclarePageStyleAlias{letter.first}{TUDaLetter.first}
\def\letterpagestyle{TUDaLetter}
-
-%pdfa
-\if_bool:N \g_ptxcd_pdfx_bool
- \PassOptionsToPackage{a-2b}{pdfx}
-% Workaround posted by David Carlisle on tex.stackexchange
-% Thanks to Ulrike Fischer for mentioning it in #472
- \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
- \chardef\currentgrouplevel0
- \ExplSyntaxOff
- \RequirePackage{pdfx}
- \ExplSyntaxOn
- \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
- \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
-% end of the workaround
- %%hyperref
- \hypersetup{hidelinks, unicode}
- \iow_new:N \ptxcd_xmpdata_stream
-
- \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 \ptxcd_pass_TitleData: {
- \prop_if_empty:NF \g_ptxcd_MetaData_prop {
- \iow_open:Nn \ptxcd_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_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
- \endgroup
- \iow_close:N \ptxcd_xmpdata_stream
- }
- }
- \cs_new:Nn \ptxcd_write_xmp_line:nn {
- %Fallback test for older kernels
- \cs_if_exist:NTF \str_uppercase:f {
- \tl_set:Nx \l_tmpa_tl {
- \str_uppercase:f {\tl_head:n {#1}}
- \str_lowercase:f { \tl_tail:n {#1}}
- }
- } {
- %may be removed in some time
- \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}}
- }
- \cs_if_exist:cTF {\l_tmpa_tl}{
- \iow_now:Nx \ptxcd_xmpdata_stream {
- \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}}
- }
- }{
- \msg_error:nnn{tudaletter} {unknown-metadata} {#1}
- }
- }
-
- \bool_new:N \g_ptxcd_pass_TitleData_bool
- \bool_gset_true:N \g_ptxcd_pass_TitleData_bool
- \prop_new:N \g_ptxcd_MetaData_prop
-
- \newcommand*{\Metadata}[1]{
- \bool_gset_false:N \g_ptxcd_pass_TitleData_bool
- \prop_gset_from_keyval:Nn \g_ptxcd_MetaData_prop {#1}
- }
-
- \msg_new:nnnn{tudaletter} {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:
- \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
-
- \msg_new:nnnn {tudapub} {metadata-to-hypersetup} {
- You~don't~use~pdfx.~
- Here~the~\string\Metadata\~command~only~exists~for~compatibility~reasons.\\
- I~will~pass~the~data~to~ḩypersetup.
- }{
- If~possible~please~use~hyperref's~\strung\hypersetup~command~for~the~metadata~directly.\\
- See~hyperref~documentation~for~details~on~usage.
- }
-
- \newcommand*{\Metadata}[1]{
- \tl_set:Nn \l_tmpa_tl {#1}
- \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
- \clist_map_inline:Nn \l_tmpa_tl {
- \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
- }
- \msg_warning:nn {tudapub} {metadata-to-hypersetup}
- }
-
-
- \cs_new:Nn \ptxcd_pass_TitleData: {
- % check if pdfmanagement is active
- \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
- \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
- } {
- \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
- }
-
- % title
- \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
- \begingroup
- \def\newline{}
- \def\\{}
- \let\thanks\use_none:n
- \tl_gset:Nf \g_tmpa_tl {\@title}
- \endgroup
- \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
- }
-
- % author
- \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
- \begingroup
- \def\newline{}
- \def\\{}
- \let\thanks\use_none:n
- \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
- \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
- \endgroup
- \hypersetup{pdfauthor=\g_tmpa_tl}
- }
- }
-
- \bool_if:NF \g_ptxcd_pdfa_bool {
- \msg_new:nnn{tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.}
- \msg_info:nn{tudapub} {no-pdfa}
- }
-
-\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}%
+ swissgerman,nswissgerman}\yourmailname{Ihre~ Nachricht}%
\defcaptionname{german, ngerman,austrian,naustrian,%
- swissgerman,nswissgerman}\phonename{Tel.}%
-
-
-%signature raggedright
+ swissgerman,nswissgerman}\phonename{Tel.}%
\let\raggedsignature\raggedright
-
\newkomavar{fromfunction}
-
\bool_if:NT \g__ptxcd_letter_raggedright_bool {\AtBeginLetter{\RaggedRight}}
-
-%backwards compatibility for KOMA-Script
\cs_if_exist:NF \Ifkomavarempty{
- \let\Ifkomavarempty\ifkomavarempty
+ \let\Ifkomavarempty\ifkomavarempty
}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
+
+\if_bool:N \g_ptxcd_pdfx_bool
+ \iow_new:N \ptxcd_xmpdata_stream
+ \tl_new:N \g_ptxcd_xmp_title_tl
+ \tl_new:N \g_ptxcd_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 \ptxcd_pass_TitleData: {
+ \iow_open:Nn \ptxcd_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_ptxcd_xmp_title_tl {\@title}
+ \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl}
+ \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} {
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}}
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl}
+ \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl}
+ }
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt}
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI}
+ \use:c {pdfx@localcommands}%should be held inside group
+ \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \ptxcd_xmpdata_stream
+ \let\ptxcd_pass_TitleData:\relax
+ }
+ \cs_new:Nn \ptxcd_write_xmp_line:nn {
+ \begingroup
+ \cs_set:Npn \sep {\exp_not:N \sep}
+ \cs_if_exist:cTF {#1}{
+ \iow_now:Nx \ptxcd_xmpdata_stream {
+ \c_backslash_str #1 {\exp_not:n {#2}}
+ }
+ }{
+ \msg_error:nnn{tuda-ci} {unknown-metadata} {#1}
+ }
+ \endgroup
+ }
+
+ \prop_new:N \g_ptxcd_MetaData_prop
+
+ \newcommand*{\Metadata}[1]{
+ \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn
+ {#1}
+ }
+
+ \cs_set:Nn \ptxcd_set_metadata_prop:nn {
+ % Fallback test for older kernels doesn't support mixed case eintries
+ \cs_if_exist:NTF \text_titlecase_first:n {
+ \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2}
+ } {
+ \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop {
+ \str_uppercase:f {\tl_head:n {#1}}
+ \str_lowercase:f {\tl_tail:n {#1}}
+ } {#2}
+ }
+ }
+ \msg_new:nnnn{tuda-ci} {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:
+ \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
+ \msg_new:nnnn {tuda-ci} {metadata-to-hypersetup} {
+ You~don't~use~pdfx.~
+ Here~the~\string\Metadata ~command~only~exists~for~compatibility~reasons.\\
+ I~will~pass~the~data~to~ḩypersetup.
+ }{
+ If~possible~please~use~hyperref's~\string\hypersetup~command~for~the~metadata~directly.\\
+ See~hyperref~documentation~for~details~on~usage.
+ }
+
+ \newcommand*{\Metadata}[1]{
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
+ \clist_map_inline:Nn \l_tmpa_tl {
+ \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
+ }
+ \msg_warning:nn {tuda-ci} {metadata-to-hypersetup}
+ }
+ \cs_new:Nn \ptxcd_pass_TitleData: {
+ \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
+ \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
+ } {
+ \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nf \g_tmpa_tl {\@title}
+ \endgroup
+ \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
+ \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
+ \endgroup
+ \hypersetup{pdfauthor=\g_tmpa_tl}
+ }
+ }
+ \bool_if:NF \g_ptxcd_pdfa_bool {
+ \msg_new:nnn{tuda-ci} {no-pdfa}{The~ tuda\c__ptxcd_base_str\space class~ will~ not~ create~ PDF/A.}
+ \msg_info:nn{tuda-ci} {no-pdfa}
+ }
+\fi:
\endinput
+%%
+%% End of file `tudaletter.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudalettersize10pt.clo b/Master/texmf-dist/tex/latex/tuda-ci/tudalettersize10pt.clo
index 216642a28ce..86a1d992b17 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudalettersize10pt.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudalettersize10pt.clo
@@ -1,40 +1,38 @@
-%% This is file `tudalettersize10pt.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tudalettersize10pt.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `scrsize,tudaletter')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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
+%% conditions of the LaTeX Project Public License, either version 1.3c
%% 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.
-%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are Marei Peischl <kontakt@peitex.de>.
-%%
-%%
+%%
+%% The Current Maintainer of this work is
+%% Marei Peischl <tuda-ci@peitex.de>
+%%
+%% The development repository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
\ProvidesFile{%
tudalettersize10pt.clo%
}[
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudamecheng.cfg b/Master/texmf-dist/tex/latex/tuda-ci/tudamecheng.cfg
index d1d70773e85..ffde27cb75b 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudamecheng.cfg
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudamecheng.cfg
@@ -1,9 +1,9 @@
-%% This is file `tudamecheng.cfg' version 3.41 (2024-07-02),
+%% This is file `tudamecheng.cfg' version 4.00 (2025-01-26),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
+%% Copyright (C) 2018--2025 by Marei Peischl <marei@peitex.de>
%%
%% ============================================================================
%% This work may be distributed and/or modified under the
@@ -16,7 +16,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
%%
%% The development respository can be found at
@@ -25,11 +25,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
\RequirePackage{expl3}
-\ProvidesExplFile{tudamecheng.cfg}
-{\filedate}{\fileversion}{Special Features the department of mechanical engineering of Darmstadt's Corporate Design (tuda-ci)}
+\ProvidesExplFile{tudamecheng.cfg}{2025-01-26}{4.00}{Special Features the department of mechanical engineering of Darmstadt's Corporate Design (tuda-ci)}
\RequirePackage{pgf}
@@ -97,7 +94,7 @@
\@sponsors\par
\nointerlineskip\addvspace{.1\c_ptxcd_logoheight_dim}
\fi
-
+
\smash{\MechEngArrow{\linewidth}}
\\[\c_ptxcd_rulesep_dim]
\usekomafont{pagefoot}\includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}
@@ -106,7 +103,7 @@
}
\renewcommand*{\sectionformat}{\color{TUDa-Primary2}\thesection\autodot\enskip}
-
+
\if@titlepage
\titlehead{\rule{0pt}{\c_ptxcd_logoheight_dim}}
\fi
@@ -146,7 +143,7 @@
\smash{\box_use:N \g_ptxcd_footline_box}
}
]{TUDa.mecheng.foot.above.line}
-
+
\ModifyLayer[
contents={
\dim_compare:nF {\box_wd:N \g_ptxcd_footline_box=\layerwidth} {
@@ -155,7 +152,7 @@
\smash{\box_use:N \g_ptxcd_footline_box}%
}
]{plain.TUDa.mecheng.foot.above.line}
-
+
\clearpairofpagestyles
\cfoot[\pagemark]{\pagemark}
\hbox_gset:Nn \g_ptxcd_departmentlogo_box {
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudaposter.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudaposter.cls
index 0286215cb05..e4a27701d8a 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudaposter.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudaposter.cls
@@ -1,10 +1,20 @@
-%% This is file `tudaposter.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudaposter.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudaposter.dtx (with options: `class,initialization')
+%% tuda-ci.dtx (with options: `options,poster,print')
+%% tudaposter.dtx (with options: `class,body')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,604 +23,554 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplPackage{tudaposter}{\filedate}{\fileversion}{Poster Layouts for the Corporate Design of TU Darmstadt}
-
-\bool_new:N \g_ptxcd_logo_inhead_bool
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudaposter}{2025-01-26}{4.00}{Announcement poster Layouts for the Corporate Design of TU Darmstadt}
+\bool_new:N \g__ptxcd_logo_head_bool
\dim_new:N \g_ptxcd_margin_dim
\int_new:N \g_ptxcd_paper_int
\int_new:N \g_ptxcd_postertype_int
\str_new:N \g_ptxcd_department_str
-
\str_const:Nn \c__ptxcd_base_str {poster}
-
\keys_define:nn {ptxcd/poster} {
- accentcolor .code:n = {\PassOptionsToPackage{accent=#1}{tudacolors}},
- color .code:n = {\PassOptionsToPackage{color=#1}{tudacolors}},
- textaccentcolor .code:n = {\PassOptionsToPackage{textaccent=#1}{tudacolors}},
- identbarcolor .code:n = {\PassOptionsToPackage{identbar=#1}{tudacolors}},
- logo .choice:,
- logo / head .code:n = {\bool_gset_true:N \g_ptxcd_logo_inhead_bool},
- logo / body .code:n = {\bool_gset_false:N \g_ptxcd_logo_inhead_bool},
- logo / top .code:n = {\bool_gset_true:N \g_ptxcd_logo_inhead_bool},
- logo / bottom .code:n = {\bool_gset_false:N \g_ptxcd_logo_inhead_bool},
- logo .initial:n = {head},
- footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
- footer .default:n = true,
- footer .initial:n = false,
- footheight .dim_gset:N = \g_ptxcd_footheight_dim,
- paper .choices:nn = {a0,a1,a2,a3,a4}{
- \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
- \tl_gset_eq:NN \g_ptxcd_paper_tl \l_keys_choice_tl
- },
- fontsize .choice:,
- fontsize / auto .code:n = \tl_gclear:N \g_ptxcd_fontsize_tl,
- fontsize / unknown .code:n = {\@defaultunits\@tempdima#1pt\relax\@nnil \tl_gset:Nx \g_ptxcd_fontsize_tl {\the\@tempdima}},
- fontsize .initial:n = auto,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- type .choice:,
- type / default .code:n = {
- \int_gset:Nn \g_ptxcd_postertype_int {1}
- },
- type / announcement .code:n = {
- \int_gset:Nn \g_ptxcd_postertype_int {2}
- \keys_set:nn {ptxcd/poster}{
- marginpar=true,
- indenttext=false,%allow overwrite - check default
- logo=head,
- title=small,
- colorsubtitle=true
- }
- },
- type .initial:n = default,
- indenttext .bool_gset:N = \g_ptxcd_indenttext_bool,
- indenttext .initial:n = false,
- indenttext .default:n = true,
- marginpar .bool_gset:N = \g_ptxcd_marginpar_bool,
- marginpar / auto .meta:n = {marginpar = true} ,
- marginpar .default:n = true,
- marginpar .initial:n = false,
- title .choice:,
- title / default .meta:n = {title=large},
- title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
- title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
- title .initial:n = default,
- colorback .bool_gset:N = \g_ptxcd_colorback_bool,
- colorback .initial:n = true,
- colorsubtitle .bool_gset:N = \g_ptxcd_colorsubtitle_bool,
- colorsubtitle .default:n = true,
- colorsubtitle .initial:n = false,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/poster} {colorback=false, departmentlogofile=tuda_maschinenbau_logo}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
+ footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = false,
+ footheight .dim_gset:N = \g_ptxcd_footheight_dim,
+ fontsize .choice:,
+ fontsize / auto .code:n = \tl_gclear:N \g_ptxcd_fontsize_tl,
+ fontsize / unknown .code:n = {\@defaultunits\@tempdima#1pt\relax\@nnil \tl_gset:Nx \g_ptxcd_fontsize_tl {\the\@tempdima}},
+ fontsize .initial:n = auto,
+ type .choice:,
+ type / default .code:n = {
+ \int_gset:Nn \g_ptxcd_postertype_int {1}
+ },
+ type / announcement .code:n = {
+ \int_gset:Nn \g_ptxcd_postertype_int {2}
+ \keys_set:nn {ptxcd/poster}{
+ marginpar=true,
+ indenttext=false,%allow overwrite - check default
+ logo=head,
+ title=small,
+ colorsubtitle=true
+ }
+ },
+ type .initial:n = default,
+ indenttext .bool_gset:N = \g_ptxcd_indenttext_bool,
+ indenttext .initial:n = false,
+ indenttext .default:n = true,
+ colorsubtitle .bool_gset:N = \g_ptxcd_colorsubtitle_bool,
+ colorsubtitle .default:n = true,
+ colorsubtitle .initial:n = false,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / \c__ptxcd_base_str
+ }{
+ colorback=false,
+ departmentlogofile=tuda_maschinenbau_logo,
+ }
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+ logo .choice:,
+ logo / head .code:n = {
+ \bool_gset_true:N \g__ptxcd_logo_head_bool
+ },
+ logo / body .code:n = {
+ \bool_gset_false:N \g__ptxcd_logo_head_bool
+ },
+ logo / top .meta:n = {logo=head},
+ logo / bottom .code:n = {\bool_gset_false:N \g__ptxcd_logo_head_bool},
+ logo .initial:n = {head},
+%% color options
+%% color options
+ 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}},
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+ marginpar
+ .bool_gset:N = \g_ptxcd_marginpar_bool,
+ marginpar / auto .meta:n = {marginpar = true} ,
+ marginpar .default:n = auto,
+ marginpar .initial:n = false,
+ paper .choices:nn = {
+ a0,a1,a2,a3,a4
+ }{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n =
+
+ a0,
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
-
\ProcessKeyOptions[ptxcd/poster]
-
\ExplSyntaxOff
+\PassOptionsToPackage{DIV=6,typeareawarninfolimit=-1}{typearea}
\LoadClass[parskip=half-]{scrartcl}
\RequirePackage{scrlayer}
\RequirePackage{scrlayer-notecolumn}
\ExplSyntaxOn
-
-\tl_if_empty:NT \g_ptxcd_paper_tl {\keys_set:nn {ptxcd/poster} {paper=a0}}
-
\bool_if:NTF \g_ptxcd_smalltitle_bool {
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_title_sizes:
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_base_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_base_sizes:
}{
- \int_gdecr:N \g_ptxcd_paper_int
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_title_sizes:
- \ptxcd_setup_base_sizes:
+ \int_gdecr:N \g_ptxcd_paper_int
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \ptxcd_setup_base_sizes:
}
-
-
\setkomafont{title}{
- \bool_if:NT \g_ptxcd_colorback_bool
- {\color{textonaccentcolor}}\expandafter\fontsize\ptxcd_title_fontsize:\selectfont}
+ \bool_if:NT \g_ptxcd_colorback_bool
+ {\color{textonaccentcolor}}\expandafter\fontsize\ptxcd_title_fontsize:\selectfont}
\setkomafont{subtitle}{\expandafter\fontsize\ptxcd_titleinfo_fontsize:\selectfont}
\newkomafont{titleinfo}{\usekomafont{subtitle}}
-
\clist_map_inline:nn {author, date, publishers}
{\setkomafont{#1}{\usekomafont{subtitle}}}
-
\ExplSyntaxOff
\KOMAoptions{fontsize=\csname g_ptxcd_fontsize_tl\endcsname}
\ExplSyntaxOn
-
\RequirePackage{tudafonts}
\renewcommand*{\familydefault}{\sfdefault}
-
-\exp_args:Nx \PassOptionsToPackage{paper=\g_ptxcd_paper_tl , mode=tikz}{tudarules}
+\exp_args:Nx \PassOptionsToPackage{mode=tikz}{tudarules}
\RequirePackage{tudarules}
-
\RequirePackage{tudacolors}
\RequirePackage{qrcode}
\RequirePackage{tikz}
-
-
-
-
\newlength{\contentwidth}
\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_ptxcd_margin_dim}
-
\ptxcd_makeheadrule[width=\contentwidth, color=identbarcolor]{ptxcd_headrule}
-
%%%%%%%%%%%%%%%%%%%%%%
\int_case:nn {\g_ptxcd_postertype_int}
{
- {1} {}
- {2} {
- \addtokomafont{subtitle}{\bfseries}
- }
+ {1} {}
+ {2} {
+ \addtokomafont{subtitle}{\bfseries}
+ }
}
-
-%%%%%%%%%%%%%%%%%%%%%%
-%marginpar option
\dim_new:N \g_ptxcd_marginpar_dim
-%%%%%%%%%%%%%%%%%%%%%%
\dim_new:N \g_ptxcd_titleindent_dim
\begingroup
\expandafter\fontsize\ptxcd_title_fontsize:\selectfont
\dim_gset:Nn \g_ptxcd_titleindent_dim {.5ex}
\endgroup
-
\dim_new:N \g_ptxcd_columnSep_dim
\dim_gset:Nn \g_ptxcd_columnSep_dim {1em}
-
\RequirePackage{geometry}
-
\geometry{
- margin= \g_ptxcd_margin_dim,
- hmargin = \dim_eval:n {
- \g_ptxcd_margin_dim +
- \bool_if:NTF \g_ptxcd_indenttext_bool
- {\g_ptxcd_titleindent_dim} {0pt}
- },
- top=\dim_eval:n {
- \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
- + .5\c_ptxcd_logoheight_dim
- +\g_ptxcd_margin_dim}
+ margin= \g_ptxcd_margin_dim,
+ hmargin = \dim_eval:n {
+ \g_ptxcd_margin_dim +
+ \bool_if:NTF \g_ptxcd_indenttext_bool
+ {\g_ptxcd_titleindent_dim} {0pt}
+ },
+ top=\dim_eval:n {
+ \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
+ + .5\c_ptxcd_logoheight_dim
+ +\g_ptxcd_margin_dim}
}
-
\bool_if:NTF \g_ptxcd_marginpar_bool {
- \dim_gset:Nn \g_ptxcd_marginpar_dim {\__ptxcd_logowidth:}
- \geometry{
- includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim,
- right = \dim_eval:n {
- \g_ptxcd_margin_dim +
- \bool_if:nTF {\g_ptxcd_indenttext_bool && !\g_ptxcd_marginpar_bool}
- {\g_ptxcd_titleindent_dim} {0pt}
- },
- }
- \KOMAoptions{mpinclude}
+ \dim_gset:Nn \g_ptxcd_marginpar_dim {\__ptxcd_logowidth:}
+ \geometry{
+ includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim,
+ right = \dim_eval:n {
+ \g_ptxcd_margin_dim +
+ \bool_if:nTF {\g_ptxcd_indenttext_bool && !\g_ptxcd_marginpar_bool}
+ {\g_ptxcd_titleindent_dim} {0pt}
+ },
+ }
+ \KOMAoptions{mpinclude}
}{
- \dim_gzero:N \g_ptxcd_marginpar_dim
- \geometry{
- nomarginpar,
- right = \dim_eval:n {
- \bool_if:NT \g_ptxcd_indenttext_bool
- {\g_ptxcd_titleindent_dim}
- + \g_ptxcd_margin_dim
- },
- }
- \KOMAoptions{mpinclude=false}
+ \dim_gzero:N \g_ptxcd_marginpar_dim
+ \geometry{
+ nomarginpar,
+ right = \dim_eval:n {
+ \bool_if:NT \g_ptxcd_indenttext_bool
+ {\g_ptxcd_titleindent_dim}
+ + \g_ptxcd_margin_dim
+ },
+ }
+ \KOMAoptions{mpinclude=false}
}
-
-
\bool_if:NT \g_ptxcd_poster_foot_bool {
- \dim_compare:nT {\g_ptxcd_footheight_dim = 0pt} {
- \dim_set:Nn \g_ptxcd_footheight_dim
- {1.5\baselineskip}
- }
- \geometry{bottom=\dim_eval:n {\g_ptxcd_footheight_dim+\footskip+\g_ptxcd_margin_dim}}
+ \dim_compare:nT {\g_ptxcd_footheight_dim = 0pt} {
+ \dim_set:Nn \g_ptxcd_footheight_dim
+ {1.5\baselineskip}
+ }
+ \geometry{bottom=\dim_eval:n {\g_ptxcd_footheight_dim+\footskip+\g_ptxcd_margin_dim}}
}
-%%%%%%%%%%%%%%%%%%%%%%
-
\dim_new:N \g_ptxcd_qrcode_dim
\dim_gset:Nn \g_ptxcd_qrcode_dim {.7\c_ptxcd_logoheight_dim}
-
\DeclareNewLayer[
- background,
- align=br,
- width=\g_ptxcd_qrcode_dim,
- height=\g_ptxcd_qrcode_dim,
- hoffset=\paperwidth-\g_ptxcd_margin_dim,
- voffset=\paperheight-\g_ptxcd_margin_dim,
- mode=picture,
- contents={%
- \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
- \let\width\g_ptxcd_qrcode_dim
- \let\height\g_ptxcd_qrcode_dim
- \g_ptxcd_poster_qrcode_tl
- }
- }
+ background,
+ align=br,
+ width=\g_ptxcd_qrcode_dim,
+ height=\g_ptxcd_qrcode_dim,
+ hoffset=\paperwidth-\g_ptxcd_margin_dim,
+ voffset=\paperheight-\g_ptxcd_margin_dim,
+ mode=picture,
+ contents={%
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
+ \let\width\g_ptxcd_qrcode_dim
+ \let\height\g_ptxcd_qrcode_dim
+ \g_ptxcd_poster_qrcode_tl
+ }
+ }
]{TUDa.poster.qrcode}
-
-
-
\DeclareNewLayer[
- clone=TUDa.poster.qrcode,
- align=bl,
- hoffset=\g_ptxcd_margin_dim,
- width=\paperwidth-2\g_ptxcd_margin_dim,
- height=\g_ptxcd_footheight_dim,
- contents={
- \bool_if:NTF \g_ptxcd_poster_foot_bool {
- \putUL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
- \put(0,0) {\parbox[b][\g_ptxcd_footheight_dim][c]{\layerwidth}{\strut\g_ptxcd_poster_foot_tl\strut}}
- \putLL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
- }{
- \smash{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
- }
- }
+ clone=TUDa.poster.qrcode,
+ align=bl,
+ hoffset=\g_ptxcd_margin_dim,
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ height=\g_ptxcd_footheight_dim,
+ contents={
+ \bool_if:NTF \g_ptxcd_poster_foot_bool {
+ \putUL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ \put(0,0) {\parbox[b][\g_ptxcd_footheight_dim][c]{\layerwidth}{\strut\g_ptxcd_poster_foot_tl\strut}}
+ \putLL{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \smash{\rule{\layerwidth}{\g_ptxcd_titlerule_dim}}
+ }
+ }
]{TUDa.poster.footer}
-
\DeclareNewLayer[
- background,mode=picture,
- width=\paperwidth-2\g_ptxcd_margin_dim,
- hoffset=\g_ptxcd_margin_dim,
- voffset=\g_ptxcd_margin_dim+\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
- contents=\bool_if:NT \g_ptxcd_colorback_bool {\color{accentcolor}\rule{\layerwidth}{\layerheight}},
+ background,mode=picture,
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ hoffset=\g_ptxcd_margin_dim,
+ voffset=\g_ptxcd_margin_dim+\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
+ contents=\bool_if:NT \g_ptxcd_colorback_bool {\color{accentcolor}\rule{\layerwidth}{\layerheight}},
]{TUDa.poster.background}
-
\DeclareNewLayer[
- textarea,
- foreground,
- align=tr,
- hoffset=\paperwidth-\g_ptxcd_margin_dim,
- width=\__ptxcd_logowidth:,
- height=.5\textheight,
- contents={\box_use:N \g_ptxcd_title_info_box}
+ textarea,
+ foreground,
+ align=tr,
+ hoffset=\paperwidth-\g_ptxcd_margin_dim,
+ width=\__ptxcd_logowidth:,
+ height=.5\textheight,
+ contents={\box_use:N \g_ptxcd_title_info_box}
]{TUDa.poster.logo}
-
\DeclareNewLayer[
- clone=TUDa.poster.background,
- align=tl,
- voffset=\g_ptxcd_margin_dim,
- height=\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
- mode=picture,
- contents={\box_use:N \ptxcd_headrule_box}
+ clone=TUDa.poster.background,
+ align=tl,
+ voffset=\g_ptxcd_margin_dim,
+ height=\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box,
+ mode=picture,
+ contents={\box_use:N \ptxcd_headrule_box}
]{TUDa.poster.rule}
-
\DeclareNewLayer[
- clone=notecolumn.marginpar,
+ clone=notecolumn.marginpar,
]{TUDa.poster.marginpar}
-
\DeclareNewPageStyleByLayers{TUDa.poster.title}{TUDa.poster.rule,TUDa.poster.background,TUDa.poster.qrcode,TUDa.poster.footer}
\DeclareNewPageStyleByLayers{TUDa.poster}{TUDa.poster.rule,TUDa.poster.qrcode,TUDa.poster.footer, TUDa.poster.marginpar}
\pagestyle{TUDa.poster}
-
-
\dim_new:N \g_ptxcd_titlegraphic_max_height_dim
\dim_new:N \g_ptxcd_titleback_dim
-
\newcommand*{\titleinfo}[1]{\def\@titleinfo{#1}}
\titleinfo{}
-
\renewcommand*{\maketitle}{
- \begingroup
- \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
- \bool_if:NT \g_ptxcd_marginpar_bool
- {\setlength{\linewidth}{\dim_eval:n {\textwidth+\g_ptxcd_marginpar_dim + \marginparsep}}}
- \vbox_gset:Nn \g_ptxcd_title_box
- {
- \usesizeofkomafont{title}
- \parbox[t]{\linewidth}{
- \bool_if:NT \g_ptxcd_smalltitle_bool {\raisebox{
- \dim_max:nn {0pt} {1.5\c_ptxcd_logoheight_dim - \height}
- }}
- {
- \begin{minipage}[b]{\bool_if:NT \g_ptxcd_logo_inhead_bool {.75}\linewidth}
- \leavevmode\par\nointerlineskip
- \bool_if:NF \g_ptxcd_indenttext_bool {\begin{addmargin}{\g_ptxcd_titleindent_dim }}
- \usekomafont{title}
- \raggedright
- \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
- \leavevmode\usekomafont{disposition}\usekomafont{title}%
- \@title\strut\par
- \bool_if:NTF \g_ptxcd_indenttext_bool {\nointerlineskip\leavevmode}{\end{addmargin}}
- \end{minipage}
- }
- \par\nointerlineskip
- \exp_args:Nf \tl_if_empty:nF {\@subtitle\@titleinfo\@subject\@author\@date\@publishers} {
- \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- \par
- \nointerlineskip
- \vspace{\c_ptxcd_rulesep_dim}
- \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
- \bool_if:NT \g_ptxcd_colorsubtitle_bool {\color{textonaccentcolor}}
- \clist_map_inline:nn {subtitle, titleinfo, subject, author, date, publishers}
- {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
- \nointerlineskip
- \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
- \vspace{\c_ptxcd_rulesep_dim}
- \par\nointerlineskip
- \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
- \tl_if_empty:NF \@thanks {
- \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}\rule{\linewidth}{\g_ptxcd_titlerule_dim}
- \vspace{\c_ptxcd_rulesep_dim}
- \par\nointerlineskip
- \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
- \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
- \let\footnotetext\ptxcd_title@footnote
- \@thanks
- \vspace{\c_ptxcd_rulesep_dim}
- \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
- \global\let\@thanks\@empty
- \par
- }
- }
- \nointerlineskip
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- }
- }
- \endgroup
-
- \ptxcd_Setup_Title_box:
- \dim_gset:Nn \g_ptxcd_titleback_dim {
- \bool_if:NT \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+
- \box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim
- }
-
- \ModifyLayer[
- height=\g_ptxcd_titleback_dim
- ]{TUDa.poster.background}
-
- \bool_if:NF \g_ptxcd_logo_inhead_bool {
- \ModifyLayer[
- addvoffset=
- \bool_if:NF \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+\g_ptxcd_titleback_dim+\c_ptxcd_smallrule_dim
- ]{TUDa.poster.logo}
- }
- \leavevmode\box_use:N \g_ptxcd_title_box\par
- \dim_set:Nn \g_ptxcd_titlegraphic_max_height_dim {\textheight-\pagetotal}
- \bool_if:NTF \g_ptxcd_logo_inhead_bool {
- \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
- {\msg_warning:nn{tudaposter} {infobox-too-high}}
- } {
- \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_titlegraphic_box + \box_dp:N \g_ptxcd_titlegraphic_box}
- {\msg_warning:nn{tudaposter} {infobox-too-high}}
- }
- \global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim}
- \tl_if_empty:NF \@titlegraphic{
- \vbox_gset:Nn \g_ptxcd_titlegraphic_box {\parbox[t]{\dim_eval:n {\paperwidth-2\g_ptxcd_margin_dim}}{\@titlegraphic}}
- \par\nointerlineskip
- \box_use:N \g_ptxcd_titlegraphic_box
- }
-
- \DeclareLayer[
- clone=TUDa.poster.marginpar,
- height=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {-\box_ht:N \g_ptxcd_titlegraphic_box-\box_dp:N \g_ptxcd_titlegraphic_box}
- +\textheight-\box_ht:N \g_ptxcd_title_box-\box_dp:N \g_ptxcd_title_box-.5\c_ptxcd_logoheight_dim,
- addvoffset=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {+\box_ht:N\g_ptxcd_titlegraphic_box+\box_dp:N \g_ptxcd_titlegraphic_box}
- +\box_ht:N \g_ptxcd_title_box+\box_dp:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim,
- ]{TUDa.poster.marginpar.title}
-
- \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
- \ModifyLayer[addwidth=-\g_ptxcd_qrcode_dim-\c_ptxcd_rulesep_dim]{TUDa.poster.footer}
- }
-
- \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.marginpar.title}
- \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.logo}
- \thispagestyle{TUDa.poster.title}
- \global\def\contentwidth{\linewidth}
- \par
- \let\@title\@empty
- \let\@subtitle\@empty
- \let\@titleinfo\@empty
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \bool_if:NT \g_ptxcd_marginpar_bool
+ {\setlength{\linewidth}{\dim_eval:n {\textwidth+\g_ptxcd_marginpar_dim + \marginparsep}}}
+ \vbox_gset:Nn \g_ptxcd_title_box
+ {
+ \usesizeofkomafont{title}
+ \parbox[t]{\linewidth}{
+ \bool_if:NT \g_ptxcd_smalltitle_bool {\raisebox{
+ \dim_max:nn {0pt} {1.5\c_ptxcd_logoheight_dim - \height}
+ }}
+ {
+ \begin{minipage}[b]{\bool_if:NT \g__ptxcd_logo_head_bool {.75}\linewidth}
+ \leavevmode\par\nointerlineskip
+ \bool_if:NF \g_ptxcd_indenttext_bool {\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \usekomafont{title}
+ \raggedright
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{disposition}\usekomafont{title}%
+ \@title\strut\par
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\nointerlineskip\leavevmode}{\end{addmargin}}
+ \end{minipage}
+ }
+ \par\nointerlineskip
+ \exp_args:Nf \tl_if_empty:nF {\@subtitle\@titleinfo\@subject\@author\@date\@publishers} {
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \par
+ \nointerlineskip
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \bool_if:NT \g_ptxcd_colorsubtitle_bool {\color{textonaccentcolor}}
+ \clist_map_inline:nn {subtitle, titleinfo, subject, author, date, publishers}
+ {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
+ \nointerlineskip
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \par\nointerlineskip
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}
+ \tl_if_empty:NF \@thanks {
+ \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}}\rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \par\nointerlineskip
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\begingroup}{\begin{addmargin}{\g_ptxcd_titleindent_dim }}
+ \let\footnotetext\ptxcd_title@footnote
+ \@thanks
+ \vspace{\c_ptxcd_rulesep_dim}
+ \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}}
+ \global\let\@thanks\@empty
+ \par
+ }
+ }
+ \nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
+ \endgroup
+ \ptxcd_Setup_Title_box:
+ \dim_gset:Nn \g_ptxcd_titleback_dim {
+ \bool_if:NT \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+
+ \box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim
+ }
+ \ModifyLayer[
+ height=\g_ptxcd_titleback_dim
+ ]{TUDa.poster.background}
+ \bool_if:NF \g__ptxcd_logo_head_bool {
+ \ModifyLayer[
+ addvoffset=
+ \bool_if:NF \g_ptxcd_colorsubtitle_bool {\box_dp:N \g_ptxcd_title_box}+\g_ptxcd_titleback_dim+\c_ptxcd_smallrule_dim
+ ]{TUDa.poster.logo}
+ }
+ \leavevmode\box_use:N \g_ptxcd_title_box\par
+ \dim_set:Nn \g_ptxcd_titlegraphic_max_height_dim {\textheight-\pagetotal}
+ \bool_if:NTF \g__ptxcd_logo_head_bool {
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
+ {\msg_warning:nn{tudaposter} {infobox-too-high}}
+ } {
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_titlegraphic_box + \box_dp:N \g_ptxcd_titlegraphic_box}
+ {\msg_warning:nn{tudaposter} {infobox-too-high}}
+ }
+ \global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim}
+ \tl_if_empty:NF \@titlegraphic{
+ \vbox_gset:Nn \g_ptxcd_titlegraphic_box {\parbox[t]{\dim_eval:n {\paperwidth-2\g_ptxcd_margin_dim}}{\@titlegraphic}}
+ \par\nointerlineskip
+ \box_use:N \g_ptxcd_titlegraphic_box
+ }
+ \DeclareLayer[
+ clone=TUDa.poster.marginpar,
+ height=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {-\box_ht:N \g_ptxcd_titlegraphic_box-\box_dp:N \g_ptxcd_titlegraphic_box}
+ +\textheight-\box_ht:N \g_ptxcd_title_box-\box_dp:N \g_ptxcd_title_box-.5\c_ptxcd_logoheight_dim,
+ addvoffset=\bool_if:NF \l_ptxcd_marginpar_overlap_bool {+\box_ht:N\g_ptxcd_titlegraphic_box+\box_dp:N \g_ptxcd_titlegraphic_box}
+ +\box_ht:N \g_ptxcd_title_box+\box_dp:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim,
+ ]{TUDa.poster.marginpar.title}
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {
+ \ModifyLayer[addwidth=-\g_ptxcd_qrcode_dim-\c_ptxcd_rulesep_dim]{TUDa.poster.footer}
+ }
+ \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.marginpar.title}
+ \AddLayersToPageStyle{TUDa.poster.title}{TUDa.poster.logo}
+ \thispagestyle{TUDa.poster.title}
+ \global\def\contentwidth{\linewidth}
+ \par
+ \let\@title\@empty
+ \let\@subtitle\@empty
+ \let\@titleinfo\@empty
}
-
-
\def\@titlegraphic{}
\newcommand{\titlegraphic}[1]{
- \def\@titlegraphic{#1}
+\def\@titlegraphic{#1}
}
-\box_new:N \g_ptxcd_titlegraphic_box
+\box_new:N \g_ptxcd_titlegraphic_box
\seq_new:N \g_ptxcd_title_info_seq
-
-\seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \rlap{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
-}
-
+\seq_gput_right:Nn \g_ptxcd_title_info_seq {\rlap{\__ptxcd_insert_logo:}}
\box_new:N \g_ptxcd_title_info_box
\box_new:N \g_ptxcd_title_box
-
\cs_new:Nn \ptxcd_make_title_info_box:n {
- \usekomafont{titleinfo}
- \setlength{\fboxsep}{.2\baselineskip}
- \colorbox{InfoBox}{\hspace*{\dimexpr.2\c_ptxcd_logoheight_dim-\fboxsep}%
- \parbox{2\c_ptxcd_logoheight_dim}{
- \raggedright
- #1
- }}
+ \usekomafont{titleinfo}
+ \setlength{\fboxsep}{.2\baselineskip}
+ \colorbox{InfoBox}{\hspace*{\dimexpr.2\c_ptxcd_logoheight_dim-\fboxsep}%
+ \parbox{2\c_ptxcd_logoheight_dim}{
+ \raggedright
+ #1
+ }}
}
-
\cs_new:Nn \ptxcd_make_title_logo_box:n {
- \setlength{\fboxsep}{\z@}%
- \parbox{\__ptxcd_logowidth:}{
- \colorbox{InfoBox}{
- \rlap{
- \makebox[\dim_eval:n {\_ptxcd_logowidth: + \_ptxcd_logowsep:}][r]{
- \colorbox{InfoBox}{#1\hspace{\__ptxcd_logosep:}}
- }
- }
- }
- }
+ \setlength{\fboxsep}{\z@}%
+ \parbox{\__ptxcd_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\_ptxcd_logowidth: + \_ptxcd_logowsep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{\__ptxcd_logosep:}}
+ }
+ }
+ }
+ }
}
-
-
\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
-
\NewDocumentCommand{\addTitleBoxLogo}{sm}{
- \IfBooleanTF{#1}{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {#2}
- }
- }{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {
- \hbox_set:Nn \l_tmpa_box {
- \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
- }
- \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
- }
- }
- }
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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}
+ }
+ }
+ }
}
-
\cs_new:Nn \ptxcd_Setup_Title_box: {
- \hbox_gset:Nn \g_ptxcd_title_info_box
- {\parbox{\__ptxcd_logowidth:}{
- \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\skip_vertical:n
- {
- \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
- }
- }
- }}
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {\parbox{\__ptxcd_logowidth:}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\skip_vertical:n
+ {
+ \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box
+ }
+ }
+ }}
}
-
-
\tl_new:N \g_ptxcd_poster_foot_tl
\newcommand{\footer}[1]{
- \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
+ \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
}
-
\tl_new:N \g_ptxcd_poster_qrcode_tl
\newcommand*{\footerqrcode}[1]{
- \tl_gset:Nn \g_ptxcd_poster_qrcode_tl
- {\raisebox{\depth}{\qrcode[height={\g_ptxcd_qrcode_dim}]{#1}}}
+ \tl_gset:Nn \g_ptxcd_poster_qrcode_tl
+ {\raisebox{\depth}{\qrcode[height={\g_ptxcd_qrcode_dim}]{#1}}}
}
-
\newcommand*{\footerqrcodeimg}[1]{\tl_gset:Nn \g_ptxcd_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.
+ 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.
}
-
\keys_define:nn {ptxcd/poster/marginparopts}{
- valign .tl_set:N = \l_ptxcd_marginpar_valign_tl,
- valign .initial:n = t,
- overlap .bool_set:N = \l_ptxcd_marginpar_overlap_bool,
- overlap .initial:n = false,
- overlap .default:n = true
+ valign .tl_set:N = \l_ptxcd_marginpar_valign_tl,
+ valign .initial:n = t,
+ overlap .bool_set:N = \l_ptxcd_marginpar_overlap_bool,
+ overlap .initial:n = false,
+ overlap .default:n = true
}
-
-
-
-
\newcommand*{\infofont}{\accentfont\normalcolor\footnotesize}
\DeclareTextFontCommand{\infotext}{\infofont}
-
\int_new:N \g_ptxcd_marginpar_int
-
\NewDocumentCommand{\SetMarginpar}{o+m}{
- \bool_if:NF \g_ptxcd_marginpar_bool {\msg_warning:nn {ptxcd/Poster} {marginpar-disabled}}
- \IfNoValueF{#1}{\keys_set:nn {ptxcd/poster/marginparopts} {#1}}
- \ModifyLayer[addvoffset={-\ht\strutbox},contents={\parbox[t][\layerheight][\l_ptxcd_marginpar_valign_tl]{\layerwidth}{#2\strut}}]{TUDa.poster.marginpar}
- \bool_set_true:N \l_tmpa_bool
+ \bool_if:NF \g_ptxcd_marginpar_bool {\msg_warning:nn {ptxcd/Poster} {marginpar-disabled}}
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/poster/marginparopts} {#1}}
+ \ModifyLayer[addvoffset={-\ht\strutbox},contents={\parbox[t][\layerheight][\l_ptxcd_marginpar_valign_tl]{\layerwidth}{#2\strut}}]{TUDa.poster.marginpar}
+ \bool_set_true:N \l_tmpa_bool
}
-
\msg_new:nnnn {ptxcd/Poster} {marginpar-disabled} {
- You~are~adding~data~to~the~marginpar~box,~though~marginpar option is set to false.\\
- I~will~add~it,~but~cannot~ensure~the~position.
+ You~are~adding~data~to~the~marginpar~box,~though~marginpar option is set to false.\\
+ I~will~add~it,~but~cannot~ensure~the~position.
} {
- I'd~suggest~to~switch~the~marginpar~option~to~true.
- See~the~TUDa-CI~documentation~for~further~information.
+ I'd~suggest~to~switch~the~marginpar~option~to~true.
+ See~the~TUDa-CI~documentation~for~further~information.
}
\global\def\contentwidth{\linewidth}
\global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim}
-
-%author setup
-
\seq_new:N \g_ptxcd_author_seq
-
\renewcommand*\author[1]{
- \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+ \seq_gset_split:Nnn \g_ptxcd_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.
+ 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 \ptxcd_define_captionFallback:Nn {
- \providecommand*#1{
- \msg_warning:nnxxx{tudapub} {unknown-language}
- {\languagename} {\exp_not:N #1} {#2}
- \def#1{#2}
- }
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
}
-
\cs_new:Nn \ptxcd_declare_caption:Nnnn {
- \ptxcd_define_captionFallback:Nn #1 {#2}
- \defcaptionname{ngerman, german}{#1}{#2}
- \defcaptionname{english, USenglish, american}{#1}{#3}
- \defcaptionname{UKenglish, british}{#1}{#4}
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
}
-
\cs_new:Nn \ptxcd_declare_caption:Nnn {
- \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
}
-
\renewcommand*{\@author}{
- \begingroup
- \hyphenpenalty=100000
- \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
- \endgroup
+ \begingroup
+ \hyphenpenalty=100000
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+ \endgroup
}
-
\ptxcd_declare_caption:Nnn \authorandname {und} {and}
-
\newcommand*{\ptxcd_title@footnote}[2][1]{
- \textsuperscript{#1}#2
+ \textsuperscript{#1}#2
}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
-
-
\endinput
+%%
+%% End of file `tudaposter.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudapub.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudapub.cls
index 976d2a943ca..274c5e0465c 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudapub.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudapub.cls
@@ -1,10 +1,18 @@
-%% This is file `tudapub.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudapub.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tuda-ci.dtx (with options: `class,tudapub,pdfa,options')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,29 +21,23 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplClass{tudapub}
- {\filedate}{\fileversion}{Publications using TU Darmstadt's Corporate Design (TUDa-CI)}
+%%
+\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+\ProvidesExplClass{tudapub}{2025-01-26}{4.00}{Publications using TU Darmstadt's Corporate Design (TUDa-CI)}
\RequirePackage{URspecialopts}
-
\Define@specialopt@Module[ptxcd/pub]
-
\str_const:Nn \c__ptxcd_base_str {pub}
\tl_new:N \g_ptxcd_pub_class_tl
\tl_new:N \g_ptxcd_thesis_options_tl
@@ -48,564 +50,563 @@
\int_new:N \g_ptxcd_ruledheaders_int
\int_new:N \g_ptxcd_paper_int
\msg_new:nnn {tudapub} {compatibility-only} {
- You~used~the~outdated~#1~option.\\
- This~option~has~been~removed~with~tuda-ci~version~3.08.\\
- See~documentation~for~the~updated~implementation.
+ You~used~the~outdated~#1~option.\\
+ This~option~has~been~removed~with~tuda-ci~version~3.08.\\
+ See~documentation~for~the~updated~implementation.
}
\bool_new:N \g_ptxcd_geometry_bool
\bool_new:N \g_ptxcd_custommargins_bool
-\bool_new:N \g_ptxcd_colorbacktitle_bool
-\bool_new:N \g_ptxcd_colorbacksubtitle_bool
\keys_define:nn {ptxcd/pub} {
- %twoside -> geometry + class
- class .choice:,
- class/report .meta:n = {class=scrreprt},
- class/scrreprt .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrreprt},
- class/article .meta:n = {class=scrartcl},
- class/scrartcl .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrartcl},
- class/book .meta:n = {class=scrbook},
- class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook},
- class .initial:n = scrartcl,
- 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_ptxcd_marginpar_tl,
- marginpar .default:n = auto,
- marginpar .initial:n = auto,
- custommargins .choice:,
- custommargins / true .code:n ={
- \bool_gset_true:N \g_ptxcd_custommargins_bool
- \bool_gset_false:N \g_ptxcd_geometry_bool
- },
- custommargins / false .code:n ={
- \bool_gset_false:N \g_ptxcd_custommargins_bool
- \bool_gset_true:N \g_ptxcd_geometry_bool
- },
- custommargins / geometry .code:n = {
- \bool_gset_true:N \g_ptxcd_custommargins_bool
- \bool_gset_true:N \g_ptxcd_geometry_bool
- },
- custommargins .initial:n = false,
- custommargins .default:n = true,
- fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1},
- fontsize .initial:n = {9pt},
- ruledheaders .choices:nn = {false, none, chapter, section, true, all}{
- \int_gset:Nn \g_ptxcd_ruledheaders_int {\l_keys_choice_int}
- },
- ruledheaders .initial:n = all,
- type .choices:nn = {publication, thesis} {\tl_gset_eq:NN \g_ptxcd_pubType_tl \l_keys_choice_tl},
- type / intern .code:n = {\keys_set:nn {ptxcd/pub} {titlepage=false, pdfa=false, IMRAD=false}},
- type .initial:n = publication,
- unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
- headline .choice:,
- headline / true .code:n = \bool_gset_true:N \g_ptxcd_headline_bool,
- headline / false .code:n = \bool_gset_false:N \g_ptxcd_headline_bool,
- headline / automark .code:n = {\bool_gset_true:N \g_ptxcd_headline_bool \PassOptionsToPackage{automark}{scrlayer-scrpage}},
- automark .meta:n = {headline=automark},
- headline .initial:n =false,
- colorback .bool_gset:N = \g_ptxcd_colorback_bool,
- colorback .initial:n = true,
- colorback / title .code:n =
- \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
- \bool_gset_true:N \g_ptxcd_colorback_bool
- \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool,
- colorback / body .code:n =
- \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
- \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool
- \bool_gset_true:N \g_ptxcd_colorback_bool,
- colorback / head .code:n =
- \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
- \bool_gset_true:N \g_ptxcd_colorback_bool
- \bool_gset_true:N \g_ptxcd_colorbacksubtitle_bool,
- colortitleback .code:n = \msg_error:nnx {tudapub} {compatibility-only} {\l_keys_key_tl},
- pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
- pdfa .initial:n = true,
- pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
- pdfx .initial:n = true,
- twocolumn .bool_gset:N = \g_ptxcd_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_ptxcd_clsopts_prop {captions} {
- \use:n {\prop_item:Nn \g_ptxcd_clsopts_prop {captions}}, #1}
- },
- abstract .code:n = \prop_gput:Nnn \g_ptxcd_unknown_clsopts_prop {abstract} {#1},
- abstract .initial:n =true,
- logo .choice:,
- logo / head .code:n = {
- \bool_gset_true:N \g__ptxcd_LogoInHead_bool
- \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
- },
- logo / body .code:n = {
- \bool_gset_false:N \g__ptxcd_LogoInHead_bool
- \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
- },
- logo / top .meta:n = {logo=head},
- logo / bottom .code:n = {\bool_gset_false:N \g__ptxcd_LogoInHead_bool},
- logo .initial:n = {body},
- paper .choices:nn = {a0,a1,a2,a3,a4,a5,a6}{
- \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
- \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
- \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
- \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
- },
- paper .initial:n = a4,
- IMRAD .bool_gset:N = \g_ptxcd_IMRAD_bool,
- IMRAD .initial:n = true,
- IMRAD .default:n = true,
- instbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,instbox=#1}},
- noinstbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,noinstbox=#1}},
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- title .choice:,
- title / default .meta:n = {title=large},
- title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
- title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
- title .initial:n = default,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/pub}{colorback=false,ruledheaders=section,departmentlogofile=tuda_maschinenbau_logo}
- },
- department .initial:n = default,
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
- BCORtitlepage .bool_gset:N = \g_ptxcd_BCOR_titlepage_bool,
- BCORtitlepage .initial:n = false,
- BCORtitlepage .default:n = true,
-}
-%
-%%special option handling grouped values
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / \c__ptxcd_base_str
+ }{
+ colorback=false,
+ ruledheaders=section,
+ departmentlogofile=tuda_maschinenbau_logo,
+ }
+ },
+
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+ pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
+ pdfa .initial:n =
+ true,
+ pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
+ pdfx .initial:n = true,
+ logo .choice:,
+ logo / head .code:n = {
+ \bool_gset_true:N \g__ptxcd_logo_head_bool
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ },
+ logo / body .code:n = {
+ \bool_gset_false:N \g__ptxcd_logo_head_bool
+ \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
+ },
+ logo / top .meta:n = {logo=head},
+ logo / bottom .code:n = {\bool_gset_false:N \g__ptxcd_logo_head_bool},
+ logo .initial:n = {body},
+%% color options
+ class .choice:,
+ class/report .meta:n = {class=scrreprt},
+ class/scrreprt .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrreprt},
+ class/article .meta:n = {class=scrartcl},
+ class/scrartcl .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrartcl},
+ class/book .meta:n = {class=scrbook},
+ class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook},
+ class .initial:n = scrartcl,
+%% color options
+ 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}},
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+ colorbacktitle .bool_gset:N = \g_ptxcd_colorbacktitle_bool,
+ colorbacktitle .initial:n = false,
+ colorbacktitle .default:n = true,
+ colorbacksubtitle .bool_set:N = \g_ptxcd_colorbacksubtitle_bool,
+ colorbacksubtitle .initial:n = false,
+ colorbacksubtitle .default:n = true,
+ colorback / title .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool,
+ colorback / body .code:n =
+ \bool_gset_false:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool,
+ colorback / head .code:n =
+ \bool_gset_true:N \g_ptxcd_colorbacktitle_bool
+ \bool_gset_true:N \g_ptxcd_colorback_bool
+ \bool_gset_true:N \g_ptxcd_colorbacksubtitle_bool,
+ colortitleback .code:n = \msg_error:nnx {tudapub} {compatibility-only} {\l_keys_key_tl},
+ marginpar
+ .tl_gset:N = \g_ptxcd_marginpar_tl,
+ marginpar .default:n = auto,
+ marginpar .initial:n = auto,
+ custommargins .choice:,
+ custommargins / true .code:n ={
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_false:N \g_ptxcd_geometry_bool
+ },
+ custommargins / false .code:n ={
+ \bool_gset_false:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins / geometry .code:n = {
+ \bool_gset_true:N \g_ptxcd_custommargins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ custommargins .initial:n = false,
+ custommargins .default:n = true,
+ fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1},
+ fontsize .initial:n =
+ {9pt},
+ ruledheaders .choices:nn = {false, none, chapter, section, true, all}{
+ \int_gset:Nn \g_ptxcd_ruledheaders_int {\l_keys_choice_int}
+ },
+ ruledheaders .initial:n = all,
+ type .choices:nn = {publication, thesis} {\tl_gset_eq:NN \g_ptxcd_pubType_tl \l_keys_choice_tl},
+ type / intern .code:n = {\keys_set:nn {ptxcd/pub} {titlepage=false, pdfa=false, IMRAD=false}},
+ type .initial:n = publication,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+ headline .choice:,
+ headline / true .code:n = \bool_gset_true:N \g_ptxcd_headline_bool,
+ headline / false .code:n = \bool_gset_false:N \g_ptxcd_headline_bool,
+ headline / automark .code:n = {\bool_gset_true:N \g_ptxcd_headline_bool \PassOptionsToPackage{automark}{scrlayer-scrpage}},
+ automark .meta:n = {headline=automark},
+ headline .initial:n =false,
+ twocolumn .bool_gset:N = \g_ptxcd_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_ptxcd_clsopts_prop {captions} {
+ \use:n {\prop_item:Nn \g_ptxcd_clsopts_prop {captions}}, #1}
+ },
+ abstract .code:n = \prop_gput:Nnn \g_ptxcd_unknown_clsopts_prop {abstract} {#1},
+ abstract .initial:n =true,
+ paper .choices:nn = {
+ a0,a1,a2,a3,a4,a5,a6
+ }{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n =
+
+ a4,
+ IMRAD .bool_gset:N = \g_ptxcd_IMRAD_bool,
+ IMRAD .initial:n = true,
+ IMRAD .default:n = true,
+ instbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,instbox=#1}},
+ noinstbox .code:n = {\tl_gput_right:Nn \g_ptxcd_thesis_options_tl {,noinstbox=#1}},
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+ BCORtitlepage .bool_gset:N = \g_ptxcd_BCOR_titlepage_bool,
+
+ BCORtitlepage .initial:n = false,
+ BCORtitlepage .default:n = true,
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ \c__ptxcd_base_str
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
+}
\Module@DefineSpecialKey[ptxcd/pub]{thesis}{
- \keys_set:nn {ptxcd/pub}{type=thesis}
- \tl_gput_right:No \g_ptxcd_thesis_options_tl {#1}
+ \keys_set:nn {ptxcd/pub}{type=thesis}
+ \tl_gput_right:No \g_ptxcd_thesis_options_tl {#1}
}
\Module@Process@SpecialOptions[ptxcd/pub]
-\ProcessKeyOptions[ptxcd/pub]
+
+\ProcessKeyOptions[ptxcd/\c__ptxcd_base_str]
\bool_if:NF \g_ptxcd_pdfa_bool {\bool_gset_false:N \g_ptxcd_pdfx_bool}
\bool_if:NT \g_ptxcd_pdfa_bool {
- \msg_new:nnn {tudapub} {colors-to-rgb} {
- You~did~not~add~a~color~profile.\\
- I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
- This~is~required~to~be~able~to~create~PDF/A~compliance.
- }
-
- \cs_if_exist:NT \pdfmeta_standard_get:nN {
- \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
- \quark_if_no_value:NF \l_tmpa_tl {
- \bool_gset_false:N \g_ptxcd_pdfx_bool
- \msg_new:nnn{tudapub} {prefer-lualatex} {
- I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
- tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
- To~disable this message use pdfx=false.
- }
- \msg_info:nn {tudapub} {prefer-lualatex}
- }
-
- \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
- \PassOptionsToPackage{RGB}{xcolor}
- \msg_info:nn {tudapub} {colors-to-rgb}
- }
- }
+ \msg_new:nnn {tudapub} {colors-to-rgb} {
+ You~did~not~add~a~color~profile.\\
+ I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
+ This~is~required~to~be~able~to~create~PDF/A~compliance.
+ }
+
+ \cs_if_exist:NT \pdfmeta_standard_get:nN {
+ \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
+ \quark_if_no_value:NF \l_tmpa_tl {
+ \bool_gset_false:N \g_ptxcd_pdfx_bool
+ \msg_new:nnn{tudapub} {prefer-lualatex} {
+ I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
+ tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
+ To~disable~this~message~use~pdfx=false.
+ }
+ \msg_info:nn {tudapub} {prefer-lualatex}
+ }
+ \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
+ \use_iii:nnn
+ }
+ }
+ \bool_if:NT \g_ptxcd_pdfx_bool {
+ \PassOptionsToPackage{RGB}{xcolor}
+ \msg_info:nn {tudapub} {colors-to-rgb}
+ }
}
+
\exp_args:Nx \tl_if_eq:nnT {\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}} {9pt}
- {
- \prop_if_in:NnF \g_ptxcd_unknown_clsopts_prop {DIV}
- {\PassOptionsToPackage{DIV=calc}{typearea}}
- }
+{
+ \prop_if_in:NnF \g_ptxcd_unknown_clsopts_prop {DIV}
+ {\PassOptionsToPackage{DIV=calc}{typearea}}
+}
\prop_gput:Nnx \g_ptxcd_clsopts_prop {twocolumn} {
- \bool_if:NTF \g_ptxcd_twocolumn_bool {true} {false}
+ \bool_if:NTF \g_ptxcd_twocolumn_bool {true} {false}
}
\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
- \tl_if_empty:nTF {#2}
- {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}}
- {
- \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_ptxcd_pub_class_tl}}
- }
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}}
+ {
+ \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_ptxcd_pub_class_tl}}
+ }
}
-
-
-%Load tudasize clo file if available
\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo}
- {\providecommand*{\@fontsizefilebase}{tudasize}}
-
+{\providecommand*{\@fontsizefilebase}{tudasize}}
+\bool_if:NT \g_ptxcd_geometry_bool {\PassOptionsToPackage{typeareawarninfolimit=-1}{typearea}}
\LoadClass{\g_ptxcd_pub_class_tl}
\RequirePackage{tudafonts}
\RequirePackage{tudacolors}
\RequirePackage[draft=false]{scrlayer-scrpage}
\RequirePackage{graphicx}
-
+\PassOptionsToPackage{hidelinks, unicode}{hyperref}
\bool_if:NTF \g_ptxcd_pdfx_bool {
- \PassOptionsToPackage{RGB}{xcolor}
- \msg_info:nn {tudapub} {colors-to-rgb}
-
- %only apply the hack if pdfx is older than the working version
- \PassOptionsToPackage{a-2b}{pdfx}
-% Workaround posted by David Carlisle on tex.stackexchange
-% Thanks to Ulrike Fischer for mentioning it in #472
- \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
- \chardef\currentgrouplevel0
- \ExplSyntaxOff
- \RequirePackage{pdfx}
- \ExplSyntaxOn
- \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
- \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
-% end of the workaround
-
- \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~using~lualatex.
- }
- \msg_new:nnnn{tudapub} {outdated-package-pdfa} {
- Your~Version~of~the~#1-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.}
-
-
- \sys_if_engine_pdftex:T {
- \msg_warning:nnn{tudapub} {prefer-lualatex} {PDFTeX}
- }
-
- \sys_if_engine_xetex:T {
- \msg_warning:nnn{tudapub} {prefer-lualatex} {XeTeX}
- }
-
- \@ifpackagelater{xmpincl}{2021/09/22}{
- }{
- \msg_error:nn{tudapub} {outdated-package-pdfa} {xmpincl}
- }
-
- \@ifpackagelater{pdfx}{2018/12/01}{
- }{
- \msg_error:nn{tudapub} {outdated-package-pdfa} {pdfx}
- }
+%% only apply the hack if pdfx is older than the working version
+ \PassOptionsToPackage{a-2b}{pdfx}
+%% Workaround posted by David Carlisle on tex.stackexchange
+%% Thanks to Ulrike Fischer for mentioning it in #472
+ \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
+ \chardef\currentgrouplevel0
+ \ExplSyntaxOff
+ \RequirePackage{pdfx}
+ \ExplSyntaxOn
+ \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
+ \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
+%% end of the workaround
+
+ \msg_new:nnn{tuda-ci} {prefer-lualatex} {
+ You~use~pdfa-mode~in~#1.\\
+ This~can~lead~to~incompatiblities~especially~with~older~compiler~versions.\\
+ You~should~prefer~using~lualatex.
+ }
+ \msg_new:nnnn{tuda-ci} {outdated-package-pdfa} {
+ Your~Version~of~the~#1-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.}
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {PDFTeX}
+ }
+
+ \sys_if_engine_xetex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {XeTeX}
+ }
+
+ \@ifpackagelater{xmpincl}{2021/09/22}{
+ }{
+ \msg_error:nn{tuda-ci} {outdated-package-pdfa} {xmpincl}
+ }
+
} {
- \PassOptionsToPackage{hidelinks, unicode}{hyperref}
- \RequirePackage{hyperref}
+ \RequirePackage{hyperref}
}
+\RequirePackage{bookmark}
\RequirePackage{tudarules}
\RequirePackage{trimclip}
\RequirePackage{bookmark}
\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
- \cs_if_exist:cT {KV@KOMA.\g_ptxcd_pub_class_tl.cls@#1} {
- \tl_if_empty:nTF {#2}
- {\KOMAoptions{#1}}
- {\KOMAoption{#1}{#2}}
- }
+ \cs_if_exist:cT {KV@KOMA.\g_ptxcd_pub_class_tl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}}
+ }
}
-
-%ruled headers
\int_compare:nT {\g_ptxcd_ruledheaders_int>=3} {
- \cs_if_exist:NT \chapterlinesformat {
- \renewcommand*{\chapterlinesformat}[3]{%
- \@hangfrom{#2}{#3}
- \smash{\raisebox{\depth}{\rule[\dp\strutbox]{\linewidth}{\g_ptxcd_titlerule_dim}}}
- }
- }
+ \cs_if_exist:NT \chapterlinesformat {
+ \renewcommand*{\chapterlinesformat}[3]{%
+ \@hangfrom{#2}{#3}
+ \smash{\raisebox{\depth}{\rule[\dp\strutbox]{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }
+ }
}
\int_compare:nT {\g_ptxcd_ruledheaders_int =4 }{
- \renewcommand*\sectionlinesformat[4]{%
- \tl_if_eq:nnTF {#1} {section}
- {
- \parbox{\linewidth}{
- \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- \@hangfrom{%
- \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
- \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
- \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
- }{
- \@hangfrom{\hskip #2#3}{#4}
- }
- }
+ \renewcommand*\sectionlinesformat[4]{%
+ \tl_if_eq:nnTF {#1} {section}
+ {
+ \parbox{\linewidth}{
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}}
+ }{
+ \@hangfrom{\hskip #2#3}{#4}
+ }
+ }
}
\int_compare:nT {\g_ptxcd_ruledheaders_int>4} {
- \renewcommand*\sectionlinesformat[4]{%
- \parbox{\linewidth}{
- \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- \@hangfrom{%
- \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
- \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
- \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
- }}
+ \renewcommand*\sectionlinesformat[4]{%
+ \parbox{\linewidth}{
+ \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \@hangfrom{%
+ \hskip #2#3\strut}{#4\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip
+ \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox}
+ \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }}
}
-
-
-%Margin & titlefontsize setup setup
\bool_new:N \g_ptxcd_marginpar_bool
-
\dim_new:N \g_ptxcd_marginpar_dim
\dim_new:N \g_ptxcd_innerMargin_dim
\dim_new:N \g_ptxcd_outerMargin_dim
\dim_new:N \g_ptxcd_bottomMargin_dim
\dim_new:N \g_ptxcd_topMargin_dim
-
- %a3,a4
- \int_compare:nTF {4<=\g_ptxcd_paper_int<=5}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {20mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {15mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }{
- %a0, a1, a2
- \int_compare:nT {1<=\g_ptxcd_paper_int<=3}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {35mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {30mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- %a5
- \int_compare:nT {\g_ptxcd_paper_int<=6}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {16mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- %a6
- \int_compare:nT {\g_ptxcd_paper_int<=7}
- {
- \dim_gset:Nn \g_ptxcd_bottomMargin_dim {15mm}
- \dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
- \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
- \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
- }
- }
+\int_compare:nTF {4<=\g_ptxcd_paper_int<=5}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {20mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {15mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}{
+\int_compare:nT {1<=\g_ptxcd_paper_int<=3}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {35mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {30mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+\int_compare:nT {\g_ptxcd_paper_int<=6}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {16mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+\int_compare:nT {\g_ptxcd_paper_int<=7}
+{
+\dim_gset:Nn \g_ptxcd_bottomMargin_dim {15mm}
+\dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
+\dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+\dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+}
+}
\dim_new:N \g_ptxcd_columnSep_dim
\dim_gset:Nn \g_ptxcd_columnSep_dim {10pt}
-
-%coverpage
\edef\coverpageleftmargin{\dim_eval:n {\g_ptxcd_outerMargin_dim}}
\renewcommand*{\coverpagetopmargin}{\g_ptxcd_outerMargin_dim}
\edef\coverpagerightmargin{\dim_eval:n {\g_ptxcd_outerMargin_dim}}
\renewcommand*{\coverpagebottommargin}{\g_ptxcd_outerMargin_dim}
-
\str_case:onTF {\g_ptxcd_marginpar_tl} {
- {true} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
- {false} {\bool_gset_false:N \g_ptxcd_marginpar_bool}
- {auto} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
+{true} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
+{false} {\bool_gset_false:N \g_ptxcd_marginpar_bool}
+{auto} {\bool_gset_true:N \g_ptxcd_marginpar_bool}
} {
- \bool_if:NT \g_ptxcd_marginpar_bool {
- \msg_new:nnnn {tudapub} {marginpar-auto} {Setting~up~marginpar~consistent~with~layout~guidelines.}
- {To~turn~this~off~use~marginpar=false~option.}
- \msg_info:nn {tudapub} {marginpar-auto}
- \dim_gset:Nn \g_ptxcd_marginpar_dim {(\paperwidth - \g_ptxcd_innerMargin_dim -\g_ptxcd_outerMargin_dim - 4 \g_ptxcd_columnSep_dim)/5}
- }
+\bool_if:NT \g_ptxcd_marginpar_bool {
+\msg_new:nnnn {tudapub} {marginpar-auto} {Setting~up~marginpar~consistent~with~layout~guidelines.}
+{To~turn~this~off~use~marginpar=false~option.}
+\msg_info:nn {tudapub} {marginpar-auto}
+\dim_gset:Nn \g_ptxcd_marginpar_dim {(\paperwidth - \g_ptxcd_innerMargin_dim -\g_ptxcd_outerMargin_dim - 4 \g_ptxcd_columnSep_dim)/5}
+}
} {
- \msg_new:nnn {tudapub} {marginpar-no-key} {I~did~not~find~a~text~key~for~marginpar~setup~will~use~the~value~#1~as~width.}
- \msg_info:nnx {tudapub} {marginpar-no-key} {\g_ptxcd_marginpar_tl}
- \bool_gset_true:N \g_ptxcd_marginpar_bool
- \dim_gset:Nn \g_ptxcd_marginpar_dim {\g_ptxcd_marginpar_tl}
+\msg_new:nnn {tudapub} {marginpar-no-key} {I~did~not~find~a~text~key~for~marginpar~setup~will~use~the~value~#1~as~width.}
+\msg_info:nnx {tudapub} {marginpar-no-key} {\g_ptxcd_marginpar_tl}
+\bool_gset_true:N \g_ptxcd_marginpar_bool
+\dim_gset:Nn \g_ptxcd_marginpar_dim {\g_ptxcd_marginpar_tl}
}
-
-\dim_new:N \g_ptxcd_headheight_dim
\dim_new:N \g_ptxcd_headwidth_dim
-
+\dim_new:N \g_ptxcd_headheight_dim
+\dim_gset:Nn \g_ptxcd_headheight_dim {\c_ptxcd_largerule_dim +\c_ptxcd_rulesep_dim +\c_ptxcd_smallrule_dim}
\bool_if:NTF \g_ptxcd_headline_bool
- {\dim_gset:Nn \g_ptxcd_headheight_dim {20pt +\c_ptxcd_largerule_dim +\c_ptxcd_rulesep_dim +\c_ptxcd_smallrule_dim}}
- {\dim_gset:Nn \g_ptxcd_headheight_dim {1.25\baselineskip +\c_ptxcd_largerule_dim +\c_ptxcd_rulesep_dim +\c_ptxcd_smallrule_dim}}
-
-%%%%%Anfang Randeinstellungen Geometry
-
-
-
-\AddToHook{begindocument}[tudapub:BCOR-titlepage]{
- \bool_if:NT \g_ptxcd_BCOR_titlepage_bool
- {\xdef\coverpageleftmargin{\the\dimexpr\coverpageleftmargin+\the\ta@bcor}}
-}
-
+{\dim_gadd:Nn \g_ptxcd_headheight_dim {20pt}}
+{\dim_gadd:Nn \g_ptxcd_headheight_dim {1.25\baselineskip}}
\bool_if:NTF \g_ptxcd_geometry_bool {
- \RequirePackage{geometry}
- \geometry{
- top=\g_ptxcd_topMargin_dim,
- inner=\g_ptxcd_innerMargin_dim,
- outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
- bottom=\g_ptxcd_bottomMargin_dim,
- columnsep= \g_ptxcd_columnSep_dim,
- includehead,
- includefoot,
- includemp,
- nomarginpar,
- headheight=\g_ptxcd_headheight_dim
- }
- \savegeometry{TUDa-nomarginpar}
- \geometry{includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim}
- \KOMAoptions{mpinclude}
- \savegeometry{TUDa-marginpar}
-
- \bool_if:NTF \g_ptxcd_custommargins_bool {
- \AddToHook{begindocument}[tudapub:custommargins]{
- \savegeometry{TUDa-default}
- \bool_if:NTF \g_ptxcd_marginpar_bool {
- \dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth+\marginparwidth+\marginparsep}
- }{
- \dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth}
- }
- }
- \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-default}
- }{
- \bool_if:NTF \g_ptxcd_marginpar_bool {
- \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-marginpar}
- } {
- \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-nomarginpar}
- }
- \AddToHook{begindocument}[tudapub:custommargins-geometry]{
- \loadgeometry{\c_ptxcd_default_geometry_tl}
- }
- }
-
- \dim_gset:Nn \g_ptxcd_headwidth_dim {\paperwidth-\g_ptxcd_innerMargin_dim-\g_ptxcd_outerMargin_dim-\Gm@bindingoffset}
-
- \cs_set:Nn \ptxcd_disable_marginpar: {\loadgeometry{TUDa-nomarginpar}}
- \cs_set:Nn \ptxcd_restore_typearea: {\loadgeometry{\c_ptxcd_default_geometry_tl}}
-
- \AddToHook{cmd/Gm@changelayout/after}[tudapub-restore-headwidth]{
- \bool_if:NTF \g_ptxcd_marginpar_bool
- {\KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}}
- {\KOMAoptions{headwidth=text,footwidth=text}}
- }
-
+\RequirePackage{geometry}
+\geometry{
+top=\g_ptxcd_topMargin_dim,
+inner=\g_ptxcd_innerMargin_dim,
+outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
+bottom=\g_ptxcd_bottomMargin_dim,
+columnsep= \g_ptxcd_columnSep_dim,
+includehead,
+includefoot,
+ includemp,
+ nomarginpar,
+headheight=\g_ptxcd_headheight_dim
+}
+\savegeometry{TUDa-nomarginpar}
+\geometry{includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim}
+\KOMAoptions{mpinclude}
+\savegeometry{TUDa-marginpar}
+
+\bool_if:NTF \g_ptxcd_custommargins_bool {
+\AddToHook{begindocument}[tudapub:custommargins]{
+\savegeometry{TUDa-default}
+\bool_if:NTF \g_ptxcd_marginpar_bool {
+\dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth+\marginparwidth+\marginparsep}
}{
- \let\ptxcd_disable_marginpar:\relax
- \def\ptxcd_restore_typearea:{
- \KOMAoptions{headinclude, footinclude}
- \bool_if:NTF \g_ptxcd_marginpar_bool {\KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}}
- {\KOMAoptions{headwidth=text,footwidth=text}}
- \bool_if:NT \g_ptxcd_headline_bool {\KOMAoptions{headheight=\g_ptxcd_headheight_dim}}
- \recalctypearea
- }
- \ptxcd_restore_typearea:
+\dim_gset:Nn \g_ptxcd_headwidth_dim {\textwidth}
+}
+}
+\tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-default}
+}{
+\bool_if:NTF \g_ptxcd_marginpar_bool {
+\tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-marginpar}
+} {
+\tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-nomarginpar}
+}
+\AddToHook{begindocument}[tudapub:custommargins-geometry]{
+\loadgeometry{\c_ptxcd_default_geometry_tl}
+}
}
+\dim_gset:Nn \g_ptxcd_headwidth_dim {\paperwidth-\g_ptxcd_innerMargin_dim-\g_ptxcd_outerMargin_dim-\Gm@bindingoffset}
+\cs_set:Nn \ptxcd_disable_marginpar: {\loadgeometry{TUDa-nomarginpar}}
+\cs_set:Nn \ptxcd_restore_typearea: {\loadgeometry{\c_ptxcd_default_geometry_tl}}
-%%%%%%%%
-%Ende Randeinstellungen klassisch
-
-
-
+\AddToHook{cmd/Gm@changelayout/after}[tudapub-restore-headwidth]{
+\bool_if:NTF \g_ptxcd_marginpar_bool
+{\KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}}
+{\KOMAoptions{headwidth=text,footwidth=text}}
+}
+}{
+\let\ptxcd_disable_marginpar:\relax
+\def\ptxcd_restore_typearea:{
+\KOMAoptions{headinclude, footinclude}
+ \bool_if:NTF \g_ptxcd_marginpar_bool {
+ \KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}
+ } {
+ \KOMAoptions{headwidth=text,footwidth=text}
+ }
+ \bool_if:NT \g_ptxcd_headline_bool {\KOMAoptions{headheight=\g_ptxcd_headheight_dim}}
+ \recalctypearea
+ }
+\ptxcd_restore_typearea:
+}
+\AddToHook{begindocument}[tudapub:BCOR-titlepage]{
+\bool_if:NT \g_ptxcd_BCOR_titlepage_bool
+{\xdef\coverpageleftmargin{\the\dimexpr\coverpageleftmargin+\the\ta@bcor}}
+}
\newcommand*{\institution}[1]{
- \def\ptxcd_institution{#1}
+\def\ptxcd_institution{#1}
}
-
-
\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox}
-
-
\setkomafont{disposition}{\sffamily\bfseries}
\setkomafont{pageheadfoot}{\sffamily\small}
\setkomafont{pagenumber}{}
\addtokomafont{captionlabel}{\sffamily}
\addtokomafont{caption}{\sffamily}
-
\KOMAoptions{footsepline=.5\c_ptxcd_smallrule_dim}
\setlength{\footheight}{\dimexpr\baselineskip+\c_ptxcd_rulesep_dim}
\bool_if:NT \g_ptxcd_headline_bool {\KOMAoptions{headsepline=.5\c_ptxcd_smallrule_dim}}
-
-%Adjust headheight
\AddToHook{begindocument}[tudapub:adjust-headheight]{
\bool_if:NTF \g_ptxcd_marginpar_bool
- {
- \KOMAoptions {
- headwidth=textwithmarginpar,
- footwidth=textwithmarginpar
- }
- }{
- \KOMAoptions {
- headwidth=text,
- footwidth=text
- }
- }
+{
+\KOMAoptions {
+headwidth=textwithmarginpar,
+footwidth=textwithmarginpar
+}
+}{
+\KOMAoptions {
+headwidth=text,
+footwidth=text
+}
+}
\box_if_exist:NF \ptxcd_headrule_box {
- \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
+\ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule}
}
}
\newpairofpagestyles[scrheadings]{TUDa.headings}{
- \KOMAoptions{headsepline, headlines=1.25}
- \setkomafont{pagehead}{}
- \chead{}
- \ohead{\headmark}
+\KOMAoptions{headsepline, headlines=1.25}
+\setkomafont{pagehead}{}
+\chead{}
+\ohead{\headmark}
}
\newpairofpagestyles{TUDa.pub}{
- \KOMAoptions{plainfootsepline}
-
- \bool_if:NTF \g_ptxcd_marginpar_bool
- {
- \KOMAoptions {
- headwidth=textwithmarginpar,
- footwidth=textwithmarginpar
- }
- }{
- \KOMAoptions {
- headwidth=text,
- footwidth=text
- }
- }
- \bool_if:NT \g_ptxcd_headline_bool {
- \setkomafont{pagehead}{\Large\bfseries}
- \KOMAoptions{headlines=2}
- \clist_map_variable:nNn {oneside, even, odd} \l_tmpa_tl {
- \ModifyLayer[pretocontents={\rule[-6pt]{0pt}{\layerheight}}]{TUDa.pub.head.\l_tmpa_tl}
- }
- \lehead{\headmark}
- \lohead{\headmark}
- }
- \ofoot[\pagemark]{\pagemark}
+\KOMAoptions{plainfootsepline}
+
+\bool_if:NTF \g_ptxcd_marginpar_bool
+{
+\KOMAoptions {
+headwidth=textwithmarginpar,
+footwidth=textwithmarginpar
+}
+}{
+\KOMAoptions {
+headwidth=text,
+footwidth=text
+}
+}
+\bool_if:NT \g_ptxcd_headline_bool {
+\setkomafont{pagehead}{\Large\bfseries}
+\KOMAoptions{headlines=2}
+\clist_map_variable:nNn {oneside, even, odd} \l_tmpa_tl {
+\ModifyLayer[pretocontents={\rule[-6pt]{0pt}{\layerheight}}]{TUDa.pub.head.\l_tmpa_tl}
+}
+\lehead{\headmark}
+\lohead{\headmark}
+}
+\ofoot[\pagemark]{\pagemark}
}
\RedeclareLayer[
- clone=scrheadings.head.above.line,
- background,
- contents={
- \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
- \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
- }
- \smash{\ptxcd_headrule}
- }
+clone=scrheadings.head.above.line,
+background,
+contents={
+\dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
+\ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
+}
+\smash{\ptxcd_headrule}
+}
]{TUDa.pub.head.above.line}
\RedeclareLayer[
- clone=plain.scrheadings.head.above.line,
- background,
- contents={
- \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
- \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
- }
- \smash{\ptxcd_headrule}
- }
+clone=plain.scrheadings.head.above.line,
+background,
+contents={
+\dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} {
+\ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule}
+}
+\smash{\ptxcd_headrule}
+}
]{plain.TUDa.pub.head.above.line}
-%\dim_set:Nn \l_tmpa_dim {\topmargin+1in+\headheight+\headsep+\textheight
-% +\footskip+\dp\strutbox-\footheight +\c_ptxcd_rulesep_dim}
\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.even}
\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.odd}
\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.oneside}
@@ -613,56 +614,48 @@
\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.odd}
\ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.oneside}
-
\DeclarePageStyleAlias{TUDa}{TUDa.pub}
\DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.pub}
\pagestyle{TUDa}
-
\renewcommand*{\titlepagestyle}{plain.TUDa}
\cs_new:Nn \ptxcd_sls@leftmargin: {%
- \dimexpr
- \if@twoside
- \ifodd\value{page}
- \oddsidemargin
- \else
- \evensidemargin
- \fi
- \else
- \oddsidemargin
- \fi
- \bool_if:NT \g_ptxcd_twocolumn_bool {
- -\marginparwidth-\marginparsep
- }
- +1in\relax
+\dimexpr
+\if@twoside
+\ifodd\value{page}
+\oddsidemargin
+\else
+\evensidemargin
+\fi
+\else
+\oddsidemargin
+\fi
+\bool_if:NT \g_ptxcd_twocolumn_bool {
+-\marginparwidth-\marginparsep
+}
++1in\relax
}
-
-
-
-%Titelseite
\tl_new:N \g_ptxcd_titleimage_code_tl
\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
\newcommand{\titleimage}[1]{\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#1}}
\box_new:N \l__ptxcd_titlegraphic_box
-
-
\NewDocumentCommand{\titlegraphic}{sm}{
- \IfBooleanTF{#1}{
- \tl_gset:Nn \g_ptxcd_titleimage_code_tl {
- \hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
- \box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\width}
- \dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box -\height> \c_zero_dim}
- {
- \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\height}
- \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
- }{
- \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\height}
- \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \width) / 2}
- \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
- }
- }
- }{
- \tl_gset:Nn \g_ptxcd_titleimage_code_tl {#2}
- }
+\IfBooleanTF{#1}{
+\tl_gset:Nn \g_ptxcd_titleimage_code_tl {
+\hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
+\box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\width}
+\dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box -\height> \c_zero_dim}
+{
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\height}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
+}{
+ \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\height}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \width) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
+}
+}
+}{
+\tl_gset:Nn \g_ptxcd_titleimage_code_tl {#2}
+}
}
\let\titleimage\titlegraphic%for backwards compatbility
@@ -670,106 +663,97 @@
\box_new:N \g_ptxcd_title_box
\skip_new:N \g_ptxcd_title_fill_skip
-
-
-
\seq_new:N \g_ptxcd_author_seq
-
\renewcommand*\author[1]{
- \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+ \seq_gset_split:Nnn \g_ptxcd_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~german~vaue~#3~will~be~used.
+ 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~german~vaue~#3~will~be~used.
}
\cs_new:Nn \ptxcd_define_captionFallback:Nn {
- \providecommand*#1{
- \msg_warning:nnxxx{tudapub} {unknown-language}
- {\languagename} {\exp_not:N #1} {#2}
- \def#1{#2}
- }
+ \providecommand*#1{
+ \msg_warning:nnxxx{tudapub} {unknown-language}
+ {\languagename} {\exp_not:N #1} {#2}
+ \def#1{#2}
+ }
}
\cs_new:Nn \ptxcd_declare_caption:Nnnn {
- \ptxcd_define_captionFallback:Nn #1 {#2}
- \defcaptionname{ngerman, german}{#1}{#2}
- \defcaptionname{english, USenglish, american}{#1}{#3}
- \defcaptionname{UKenglish, british}{#1}{#4}
+ \ptxcd_define_captionFallback:Nn #1 {#2}
+ \defcaptionname{ngerman, german}{#1}{#2}
+ \defcaptionname{english, USenglish, american}{#1}{#3}
+ \defcaptionname{UKenglish, british}{#1}{#4}
}
\cs_new:Nn \ptxcd_declare_caption:Nnn {
- \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
+ \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3}
}
-
\renewcommand*{\@author}{
\begingroup
\hyphenpenalty=100000
\seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
\endgroup
}
-
\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.
-}
-
-
-\cs_set:Nn \ptxcd_adjust_titlepage_style: {
- \dim_set:Nn \l_tmpa_dim {\fp_to_dim:n {\expandafter \use_ii:nn\ptxcd_title_fontsize: *2.8}}
- \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
- \skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
- }
-
- \dim_set:Nn \l_tmpa_dim {
- \box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim
- +\box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim+\g_ptxcd_title_fill_skip+\box_dp:N \g_ptxcd_title_box
- }
-
- \ModifyLayer[
- addvoffset=\l_tmpa_dim,
- addheight=-\l_tmpa_dim
- -\box_dp:N \g_ptxcd_sponsor_box
- +\c_ptxcd_rulesep_dim
- ]{title.TUDa.image}
-
- \bool_if:NT \g_ptxcd_colorbacktitle_bool {
- \ModifyLayer[
- textarea,
- addvoffset=\dim_eval:n {\box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim},
- height={\box_ht:N \g_ptxcd_title_box+ \g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim
- \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {+\box_dp:N \g_ptxcd_title_box}
- }
- ]{title.TUDa.background}
- }
- \vspace*{\dim_eval:n {
- -\topskip
- -\g_ptxcd_titlerule_dim
- +\box_ht:N \ptxcd_headrule_box
- +\box_dp:N \ptxcd_headrule_box
- +.5\c_ptxcd_logoheight_dim
- }}
- \nointerlineskip
- \ptxcd_setup_title_box:
-
- \bool_if:NT \g__ptxcd_LogoInHead_bool {
- \dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
- {\msg_warning:nn{tudapub} {infobox-too-high}}
- \makebox[\linewidth][r]{\smash{
- \raisebox{-\height}{
- \makebox[\__ptxcd_logowidth:][l]{
- \box_use:N \g_ptxcd_title_info_box
- }}
- }}
- }
- \par
- \vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
- \setlength{\fboxsep}{\z@}
+ 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.
+}
+
+\cs_set:Nn \ptxcd_adjust_titlepage_style: {
+ \dim_set:Nn \l_tmpa_dim {\fp_to_dim:n {\expandafter \use_ii:nn\ptxcd_title_fontsize: *2.8}}
+ \dim_compare:nT {\box_ht:N \g_ptxcd_title_box < \l_tmpa_dim} {
+\skip_set:Nn \g_ptxcd_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_ptxcd_title_box}}
}
+\dim_set:Nn \l_tmpa_dim {
+\box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim
++\box_ht:N \g_ptxcd_title_box+.5\c_ptxcd_logoheight_dim+\g_ptxcd_title_fill_skip+\box_dp:N \g_ptxcd_title_box
+}
+
+\ModifyLayer[
+addvoffset=\l_tmpa_dim,
+addheight=-\l_tmpa_dim
+-\box_dp:N \g_ptxcd_sponsor_box
++\c_ptxcd_rulesep_dim
+]{title.TUDa.image}
+
+\bool_if:NT \g_ptxcd_colorbacktitle_bool {
+\ModifyLayer[
+textarea,
+addvoffset=\dim_eval:n {\box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim},
+height={\box_ht:N \g_ptxcd_title_box+ \g_ptxcd_title_fill_skip+.5\c_ptxcd_logoheight_dim
+\bool_if:NT \g_ptxcd_colorbacksubtitle_bool {+\box_dp:N \g_ptxcd_title_box}
+}
+]{title.TUDa.background}
+}
+\vspace*{\dim_eval:n {
+-\topskip
+-\g_ptxcd_titlerule_dim
++\box_ht:N \ptxcd_headrule_box
++\box_dp:N \ptxcd_headrule_box
++.5\c_ptxcd_logoheight_dim
+}}
+\nointerlineskip
+\ptxcd_setup_title_box:
+
+\bool_if:NT \g__ptxcd_logo_head_bool {
+\dim_compare:nT {\box_ht:N \g_ptxcd_title_info_box+ \box_dp:N \g_ptxcd_title_info_box > \box_ht:N \g_ptxcd_title_box}
+ {\msg_warning:nn{tudapub} {infobox-too-high}}
+ \makebox[\linewidth][r]{\smash{
+ \raisebox{-\height}{
+ \makebox[\__ptxcd_logowidth:][l]{
+ \box_use:N \g_ptxcd_title_info_box
+ }}
+ }}
+}
+\par
+\vspace*{\skip_use:N \g_ptxcd_title_fill_skip}
+\setlength{\fboxsep}{\z@}
+}
\newkomafont{institution}{\sffamily}
\newkomafont{titleinfo}{\ptxcd@sffamily@lining}
@@ -780,7 +764,7 @@
\setkomafont{date}{}
\bool_if:NF \g_ptxcd_smalltitle_bool {
- \int_gdecr:N \g_ptxcd_paper_int
+ \int_gdecr:N \g_ptxcd_paper_int
}
\file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
\ptxcd_setup_title_sizes:
@@ -789,268 +773,243 @@
\box_new:N \g_ptxcd_title_info_box
\cs_new:Nn \ptxcd_make_title_info_box:n {
- \setlength{\fboxsep}{1.5mm}%
- \colorbox{InfoBox}{
- \makebox[\dim_eval:n {\__ptxcd_logowidth:-\fboxsep}][r]{
- \parbox{\dim_eval:n {\__ptxcd_logowidth:+\fboxsep-\__ptxcd_logosep:}}{
- \expandafter \fontsize\ptxcd_titlethanks_fontsize:\selectfont\usekomafont{institution}%
- \raggedright%
- #1
- }}}
+ \setlength{\fboxsep}{1.5mm}%
+ \colorbox{InfoBox}{
+ \makebox[\dim_eval:n {\__ptxcd_logowidth:-\fboxsep}][r]{
+ \parbox{\dim_eval:n {\__ptxcd_logowidth:+\fboxsep-\__ptxcd_logosep:}}{
+ \expandafter \fontsize\ptxcd_titlethanks_fontsize:\selectfont\usekomafont{institution}%
+ \raggedright%
+ #1
+ }}}
}
\cs_new:Nn \ptxcd_make_title_logo_box:n {
- \setlength{\fboxsep}{\z@}%
- \parbox{\__ptxcd_logowidth:}{
- \colorbox{InfoBox}{
- \rlap{
- \makebox[\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}][r]{
- \colorbox{InfoBox}{#1\hspace{\__ptxcd_logosep:}}
- }
- }
- }
- }
+ \setlength{\fboxsep}{\z@}%
+ \parbox{\__ptxcd_logowidth:}{
+ \colorbox{InfoBox}{
+ \rlap{
+ \makebox[\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}][r]{
+ \colorbox{InfoBox}{#1\hspace{\__ptxcd_logosep:}}
+ }
+ }
+ }
+ }
}
-
\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_ptxcd_title_info_seq {\ptxcd_make_title_info_box:n {#1}}}
-
\NewDocumentCommand{\addTitleBoxLogo}{sm}{
- \IfBooleanTF{#1}{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {#2}
- }
- }{
- \seq_gput_right:Nn \g_ptxcd_title_info_seq {
- \ptxcd_make_title_logo_box:n {
- \hbox_set:Nn \l_tmpa_box {
- \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
- }
- \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}}
+ \IfBooleanTF{#1}{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {#2}
+ }
+ }{
+ \seq_gput_right:Nn \g_ptxcd_title_info_seq {
+ \ptxcd_make_title_logo_box:n {
+ \hbox_set:Nn \l_tmpa_box {
+ \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2}
+ }
+ \dim_set:Nn \l_tmpa_dim {2\c_ptxcd_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]{\__ptxcd_insert_logo:}}
\DeclareNewLayer[textarea,background,mode=picture,
- contents={
- \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
- {
- \bool_if:NF \g_ptxcd_colorbacktitle_bool
- {
- \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
- }
- }
- {\putUL{\color{identbarcolor}
- \let\width\layerwidth
- \let\height\layerheight
- \raisebox{-\height}{\parbox[t]{\textwidth}{
- \leavevmode\ignorespaces
- \g_ptxcd_titleimage_code_tl
- }}}}
- \bool_if:NF \g__ptxcd_LogoInHead_bool {
- \put(\dim_to_decimal_in_unit:nn {\layerwidth-\__ptxcd_logowidth:
- } {\unitlength},
- \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
- \rlap{\box_use:N \g_ptxcd_title_info_box}
- }
- }
- }
+ contents={
+ \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl
+ {
+ \bool_if:NF \g_ptxcd_colorbacktitle_bool
+ {
+ \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}
+ }
+ }
+ {\putUL{\color{identbarcolor}
+ \let\width\layerwidth
+ \let\height\layerheight
+ \raisebox{-\height}{\parbox[t]{\textwidth}{
+ \leavevmode\ignorespaces
+ \g_ptxcd_titleimage_code_tl
+ }}}}
+ \bool_if:NF \g__ptxcd_logo_head_bool {
+ \put(\dim_to_decimal_in_unit:nn {\layerwidth-\__ptxcd_logowidth:
+ } {\unitlength},
+ \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_ptxcd_title_info_box - .5\c_ptxcd_logoheight_dim} {\unitlength}){
+ \rlap{\box_use:N \g_ptxcd_title_info_box}
+ }
+ }
+ }
]{title.TUDa.image}
\DeclareNewLayer[background,mode=picture,
- contents={
- \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {
- {\color{identbarcolor}\rule{\layerwidth}{\layerheight}}
- }
- }
+ contents={
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {
+ {\color{identbarcolor}\rule{\layerwidth}{\layerheight}}
+ }
+ }
]{title.TUDa.background}
\DeclareNewLayer[
- clone=plain.TUDa.pub.head.above.line,
- hoffset=\coverpageleftmargin,
- width=\paperwidth-\coverpageleftmargin-\coverpagerightmargin,
+ clone=plain.TUDa.pub.head.above.line,
+ hoffset=\coverpageleftmargin,
+ width=\paperwidth-\coverpageleftmargin-\coverpagerightmargin,
]{title.TUDa.rule}
-
-
\ptxcd_makeheadrule[color=identbarcolor, width=\textwidth]{ptxcd_title_headline}
\cs_new:Nn \ptxcd_setup_title_box: {
- \hbox_gset:Nn \g_ptxcd_title_info_box
- {
- \parbox{\dim_eval:n {\__ptxcd_logowidth:+\__ptxcd_logosep:}}{
- \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
- }
- }
+ \hbox_gset:Nn \g_ptxcd_title_info_box
+ {
+ \parbox{\dim_eval:n {\__ptxcd_logowidth:+\__ptxcd_logosep:}}{
+ \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}}
+ }
+ }
}
\cs_new:Nn \ptxcd_setup_sponsor_box: {
- \bool_if:nF {\seq_if_empty_p:N \g_ptxcd_sponsors_seq && \tl_if_empty_p:N \@sponsors} {
- \hbox_gset:Nn \g_ptxcd_sponsor_box {
- \edef\height{\noexpand\dimexpr\dim_eval:n {\__ptxcd_logosep: + .5\c_ptxcd_logoheight_dim}}
- \parbox[t]{\textwidth}{
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
- \addvspace{\c_ptxcd_rulesep_dim}
- \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}
- \ifhmode\par\fi
- \ifx\@sponsors\@empty
- \else
- \addvspace{.1\c_ptxcd_logoheight_dim}
- \@sponsors\par
- \fi
- \par\nointerlineskip\addvspace{\c_ptxcd_rulesep_dim}
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}
- }
- }
- }
+ \bool_if:nF {\seq_if_empty_p:N \g_ptxcd_sponsors_seq && \tl_if_empty_p:N \@sponsors} {
+ \hbox_gset:Nn \g_ptxcd_sponsor_box {
+ \edef\height{\noexpand\dimexpr\dim_eval:n {\__ptxcd_logosep: + .5\c_ptxcd_logoheight_dim}}
+ \parbox[t]{\textwidth}{
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip
+ \addvspace{\c_ptxcd_rulesep_dim}
+ \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill}
+ \ifhmode\par\fi
+ \ifx\@sponsors\@empty
+ \else
+ \addvspace{.1\c_ptxcd_logoheight_dim}
+ \@sponsors\par
+ \fi
+ \par\nointerlineskip\addvspace{\c_ptxcd_rulesep_dim}
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}
+ }
+ }
+ }
}
\DeclareNewPageStyleByLayers{title.TUDa}{title.TUDa.background,title.TUDa.rule,title.TUDa.image}
-
-%Logos
-
\if_bool:N \g_ptxcd_pdfx_bool
- %%hyperref
- \hypersetup{hidelinks, unicode}
- \iow_new:N \ptxcd_xmpdata_stream
- \tl_new:N \g_ptxcd_xmp_title_tl
- \tl_new:N \g_ptxcd_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 \ptxcd_pass_TitleData: {
- \iow_open:Nn \ptxcd_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_ptxcd_xmp_title_tl {\@title}
- \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl}
- \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} {
- \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}}
- \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl}
- \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl}
- }
- \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt}
- \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI}
- \use:c {pdfx@localcommands}%should be held inside group
- \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
- \endgroup
- \iow_close:N \ptxcd_xmpdata_stream
- \let\ptxcd_pass_TitleData:\relax
- }
- \cs_new:Nn \ptxcd_write_xmp_line:nn {
- \begingroup
- \cs_set:Npn \sep {\exp_not:N \sep}
- \cs_if_exist:cTF {#1}{
- \iow_now:Nx \ptxcd_xmpdata_stream {
- \c_backslash_str #1 {\exp_not:n {#2}}
- }
- }{
- \msg_error:nnn{tudapub} {unknown-metadata} {#1}
- }
- \endgroup
- }
-
- \prop_new:N \g_ptxcd_MetaData_prop
-
- \newcommand*{\Metadata}[1]{
- \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn
- {#1}
- }
-
- \cs_set:Nn \ptxcd_set_metadata_prop:nn {
- %Fallback test for older kernels doesn't support mixed case eintries
- \cs_if_exist:NTF \text_titlecase_first:n {
- \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2}
- } {
- \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop {
- \str_uppercase:f {\tl_head:n {#1}}
- \str_lowercase:f {\tl_tail: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.}
+ \iow_new:N \ptxcd_xmpdata_stream
+ \tl_new:N \g_ptxcd_xmp_title_tl
+ \tl_new:N \g_ptxcd_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 \ptxcd_pass_TitleData: {
+ \iow_open:Nn \ptxcd_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_ptxcd_xmp_title_tl {\@title}
+ \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl}
+ \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} {
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}}
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl}
+ \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl}
+ }
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt}
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI}
+ \use:c {pdfx@localcommands}%should be held inside group
+ \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \ptxcd_xmpdata_stream
+ \let\ptxcd_pass_TitleData:\relax
+ }
+ \cs_new:Nn \ptxcd_write_xmp_line:nn {
+ \begingroup
+ \cs_set:Npn \sep {\exp_not:N \sep}
+ \cs_if_exist:cTF {#1}{
+ \iow_now:Nx \ptxcd_xmpdata_stream {
+ \c_backslash_str #1 {\exp_not:n {#2}}
+ }
+ }{
+ \msg_error:nnn{tuda-ci} {unknown-metadata} {#1}
+ }
+ \endgroup
+ }
+
+ \prop_new:N \g_ptxcd_MetaData_prop
+
+ \newcommand*{\Metadata}[1]{
+ \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn
+ {#1}
+ }
+
+ \cs_set:Nn \ptxcd_set_metadata_prop:nn {
+ % Fallback test for older kernels doesn't support mixed case eintries
+ \cs_if_exist:NTF \text_titlecase_first:n {
+ \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2}
+ } {
+ \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop {
+ \str_uppercase:f {\tl_head:n {#1}}
+ \str_lowercase:f {\tl_tail:n {#1}}
+ } {#2}
+ }
+ }
+ \msg_new:nnnn{tuda-ci} {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:
- \PassOptionsToPackage{hidelinks, unicode}{hyperref}
- \RequirePackage{hyperref}
- \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
-
- \msg_new:nnnn {tudapub} {metadata-to-hypersetup} {
- You~don't~use~pdfx.~
- Here~the~\string\Metadata\~command~only~exists~for~compatibility~reasons.\\
- I~will~pass~the~data~to~ḩypersetup.
- }{
- If~possible~please~use~hyperref's~\strung\hypersetup~command~for~the~metadata~directly.\\
- See~hyperref~documentation~for~details~on~usage.
- }
-
- \newcommand*{\Metadata}[1]{
- \tl_set:Nn \l_tmpa_tl {#1}
- \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
- \clist_map_inline:Nn \l_tmpa_tl {
- \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
- }
- \msg_warning:nn {tudapub} {metadata-to-hypersetup}
- }
-
-
- \cs_new:Nn \ptxcd_pass_TitleData: {
- % check if pdfmanagement is active
- \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
- \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
- } {
- \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
- }
-
- % title
- \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
- \begingroup
- \def\newline{}
- \def\\{}
- \let\thanks\use_none:n
- \tl_gset:Nf \g_tmpa_tl {\@title}
- \endgroup
- \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
- }
-
- % author
- \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
- \begingroup
- \def\newline{}
- \def\\{}
- \let\thanks\use_none:n
- \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
- \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
- \endgroup
- \hypersetup{pdfauthor=\g_tmpa_tl}
- }
- }
-
- \bool_if:NF \g_ptxcd_pdfa_bool {
- \msg_new:nnn{tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.}
- \msg_info:nn{tudapub} {no-pdfa}
- }
+ \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
+ \msg_new:nnnn {tuda-ci} {metadata-to-hypersetup} {
+ You~don't~use~pdfx.~
+ Here~the~\string\Metadata ~command~only~exists~for~compatibility~reasons.\\
+ I~will~pass~the~data~to~ḩypersetup.
+ }{
+ If~possible~please~use~hyperref's~\string\hypersetup~command~for~the~metadata~directly.\\
+ See~hyperref~documentation~for~details~on~usage.
+ }
+
+ \newcommand*{\Metadata}[1]{
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
+ \clist_map_inline:Nn \l_tmpa_tl {
+ \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
+ }
+ \msg_warning:nn {tuda-ci} {metadata-to-hypersetup}
+ }
+ \cs_new:Nn \ptxcd_pass_TitleData: {
+ \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
+ \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
+ } {
+ \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nf \g_tmpa_tl {\@title}
+ \endgroup
+ \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
+ \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
+ \endgroup
+ \hypersetup{pdfauthor=\g_tmpa_tl}
+ }
+ }
+ \bool_if:NF \g_ptxcd_pdfa_bool {
+ \msg_new:nnn{tuda-ci} {no-pdfa}{The~ tuda\c__ptxcd_base_str\space class~ will~ not~ create~ PDF/A.}
+ \msg_info:nn{tuda-ci} {no-pdfa}
+ }
\fi:
-
-\RequirePackage{bookmark}
-
\box_new:N \g_ptxcd_sponsor_box
\seq_new:N \g_ptxcd_sponsors_seq
\def\AddSponsor{\seq_gput_right:Nn \g_ptxcd_sponsors_seq}
@@ -1058,419 +1017,400 @@
\sponsors{}
\cs_new:Npn \ptxcd_title_footnote:w [#1] #2 {
- \textsuperscript{ \ptxcd_title_footnotestyle:n {#1}}#2
+ \textsuperscript{ \ptxcd_title_footnotestyle:n {#1}}#2
}
\cs_set_eq:NN \ptxcd_title_footnotestyle:n \@fnsymbol
\str_if_eq:VnTF \g_ptxcd_pubType_tl {thesis} {
- \input{tudathesis.cfg}
+ \input{tudathesis.cfg}
} {
-
-\msg_new:nnnn {tudapub} {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 {tudapub} {only-thesis} {#1}
- }
-}
-
-% The following macro is an adapted version of the corresponding KOMA-Script macro
-% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
-\renewcommand*{\maketitle}[1][1]{
- \def\and{,~ }
- \cs_if_exist_use:N \ptxcd_pass_TitleData:
- \if@titlepage
- \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
- }%
- \ptxcd_disable_marginpar:
- \begin{titlepage}
- \setcounter{page}{%
- #1%
- }%
- \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
- \if@titlepageiscoverpage
- \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
- \ptxcd_setup_sponsor_box:
- \hbox_gset:Nn \g_ptxcd_title_box {
- \parbox[t]{\linewidth}{
- \begin{minipage}[b]{\bool_if:NT \g__ptxcd_LogoInHead_bool {.75}\linewidth}
- \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
- \tl_if_empty:NF \@titlehead {
- \begin{addmargin}{3mm}
- {\usekomafont{titlehead}{\@titlehead\par}}
- \end{addmargin}
- }
- \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
- \raggedright
- \leavevmode\usekomafont{title}%
- \expandafter\fontsize\ptxcd_title_fontsize:
- \selectfont
- \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
- \@title\strut
- \par
- \box_if_empty:NTF \g_ptxcd_PaperID_box
- {\vskip0pt}
- {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
- \end{addmargin}
- \end{minipage}%
- \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
- \par\nointerlineskip
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
- \begin{addmargin}{3mm}
- \usekomafont{titleinfo}
- \expandafter\fontsize\ptxcd_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
- }%
- {\ifx\@date\@empty\else\usekomafont{date}{\@date\par}\fi}%
- {\ifx\@publishers\@empty\else\usekomafont{publishers}{\@publishers \par}\fi}%
- \end{addmargin}
- \tl_if_empty:NF \@thanks {
- \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
- \begin{addmargin}{3mm}
- \let\footnotetext\ptxcd_title_footnote:w
- \@thanks
- \end{addmargin}
- \par\vspace{-\dp\strutbox}
- }
- \normalcolor
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par}
- }
- \let\@thanks\@empty
- \ptxcd_adjust_titlepage_style:
- \thispagestyle{title.TUDa}
- \nointerlineskip\box_use:N \g_ptxcd_title_box
- \par
- \vfill
- \box_if_empty:NTF \g_ptxcd_sponsor_box {
- \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
- }{
- \box_use:N \g_ptxcd_sponsor_box
- }
- \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
- \ptxcd_restore_typearea:
- \aftergroup\ptxcd_restore_typearea:
- \else
- \par
- \@tempcnta=%
- #1%
- \relax\ifnum\@tempcnta=1\else
- \ClassWarning{\KOMAClassName}{%
- Optional argument of \string\maketitle\space ignored\MessageBreak
- in `titlepage=false' mode%
- }%
- \fi
- \ifx\@uppertitleback\@empty\else
- \ClassWarning{\KOMAClassName}{%
- non empty \string\uppertitleback\space ignored
- by \string\maketitle\MessageBreak
- in `titlepage=false' mode%
- }%
- \fi
- \ifx\@lowertitleback\@empty\else
- \ClassWarning{\KOMAClassName}{%
- non empty \string\lowertitleback\space ignored
- by \string\maketitle\MessageBreak
- in `titlepage=false' mode%
- }%
- \fi
- \begingroup
- \let\titlepage@restore\relax
- \def\thefootnote{\fnsymbol{footnote}}
- \next@tdpage
- \ifx\@extratitle\@empty
- \ifx\@frontispiece\@empty\else \mbox{}\fi
- \else
- \@makeextratitle
- \fi
- \ifx\@frontispiece\@empty
- \ifx\@extratitle\@empty\else\next@tdpage\fi
- \else
- \next@tpage
- \@makefrontispiece
- \next@tdpage
- \fi
- \if@twocolumn
- \twocolumn[\@maketitle]
- \else
- \@maketitle
- \fi
- \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
- \global\let\@thanks\@empty
- \endgroup
- \fi
-}
+ \msg_new:nnnn {tudapub} {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 {tudapub} {only-thesis} {#1}
+ }
+ }
+%% The following macro is an adapted version of the corresponding KOMA-Script macro
+%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+ \renewcommand*{\maketitle}[1][1]{
+ \def\and{,~ }
+ \cs_if_exist_use:N \ptxcd_pass_TitleData:
+ \if@titlepage
+ \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
+ }%
+ \ptxcd_disable_marginpar:
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
+ \if@titlepageiscoverpage
+ \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
+ \ptxcd_setup_sponsor_box:
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g__ptxcd_logo_head_bool {.75}\linewidth}
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {
+ \begin{addmargin}{3mm}
+ {\usekomafont{titlehead}{\@titlehead\par}}
+ \end{addmargin}
+ }
+ \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
+ \raggedright
+ \leavevmode\usekomafont{title}%
+ \expandafter\fontsize\ptxcd_title_fontsize:
+ \selectfont
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip0pt}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \end{addmargin}
+ \end{minipage}%
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \usekomafont{titleinfo}
+ \expandafter\fontsize\ptxcd_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
+ }%
+ {\ifx\@date\@empty\else\usekomafont{date}{\@date\par}\fi}%
+ {\ifx\@publishers\@empty\else\usekomafont{publishers}{\@publishers \par}\fi}%
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \let\footnotetext\ptxcd_title_footnote:w
+ \@thanks
+ \end{addmargin}
+ \par\vspace{-\dp\strutbox}
+ }
+ \normalcolor
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par}
+ }
+ \let\@thanks\@empty
+ \ptxcd_adjust_titlepage_style:
+ \thispagestyle{title.TUDa}
+ \nointerlineskip\box_use:N \g_ptxcd_title_box
+ \par
+ \vfill
+ \box_if_empty:NTF \g_ptxcd_sponsor_box {
+ \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ \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
+ \ptxcd_restore_typearea:
+ \aftergroup\ptxcd_restore_typearea:
+ \else
+ \par
+ \@tempcnta=%
+ #1%
+ \relax\ifnum\@tempcnta=1\else
+ \ClassWarning{\KOMAClassName}{%
+ Optional argument of \string\maketitle\space ignored\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@uppertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\uppertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@lowertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\lowertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \begingroup
+ \let\titlepage@restore\relax
+ \def\thefootnote{\fnsymbol{footnote}}
+ \next@tdpage
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else \mbox{}\fi
+ \else
+ \@makeextratitle
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \@makefrontispiece
+ \next@tdpage
+ \fi
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else
+ \@maketitle
+ \fi
+ \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
+ \global\let\@thanks\@empty
+ \endgroup
+ \fi
+ }
}
\newkomafont{paperid}{\sffamily}
\box_new:N \g_ptxcd_PaperID_box
\newcommand*{\SetPaperID}[2]{
- \hbox_gset:Nn \g_ptxcd_PaperID_box {
- \usekomafont{paperid}
- \if@titlepage
- \dim_set:Nn \l_tmpa_dim {\exp_last_unbraced:No \use_i:nn \ptxcd_title_fontsize: + \exp_last_unbraced:No \use_ii:nn \ptxcd_title_fontsize:}
- \else
- \Huge
- \dim_set:Nn \l_tmpa_dim {1.8\baselineskip}
- \fi
- \fontsize{1.1\l_tmpa_dim}{1.1\l_tmpa_dim}
- \selectfont
- #1{\Huge #2}
- }
+ \hbox_gset:Nn \g_ptxcd_PaperID_box {
+ \usekomafont{paperid}
+ \if@titlepage
+ \dim_set:Nn \l_tmpa_dim {\exp_last_unbraced:No \use_i:nn \ptxcd_title_fontsize: + \exp_last_unbraced:No \use_ii:nn \ptxcd_title_fontsize:}
+ \else
+ \Huge
+ \dim_set:Nn \l_tmpa_dim {1.8\baselineskip}
+ \fi
+ \fontsize{1.1\l_tmpa_dim}{1.1\l_tmpa_dim}
+ \selectfont
+ #1{\Huge #2}
+ }
}
-
\renewcommand*{\@maketitle}{%
- \global\@topnum=\z@
- \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
- \vspace*{-\dim_eval:n {
- \headheight
- +\headsep
- +\topskip
- -\box_ht:N\ptxcd_headrule_box
- -\box_dp:N \ptxcd_headrule_box
- }}
- \par
- \nointerlineskip
- \begingroup
- \usekomafont{disposition}
- \hsize=\g_ptxcd_headwidth_dim
- \setlength{\fboxsep}{\z@}
- \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
- \bool_if:NT \g_ptxcd_colorback_bool {\bool_set_true:N \g_ptxcd_colorbacktitle_bool}
- \bool_if:NT \g_ptxcd_colorbacktitle_bool {\colorbox{identbarcolor}}
- {\parbox[t]{\g_ptxcd_headwidth_dim}{
- \rule{\z@}{.5\c_ptxcd_logoheight_dim}\par\nointerlineskip
- \raisebox{-\height}{%
- \begin{minipage}[t]{\dim_eval:n {\linewidth-\__ptxcd_logowidth:-1ex}}
- \bool_if:NT \g_ptxcd_colorbacktitle_bool {\begin{addmargin}{.5\c_ptxcd_largerule_dim}}
- \raggedright
- \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
- \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
- \box_if_empty:NF \g_ptxcd_PaperID_box {\begin{addmargin}[\dim_eval:n {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim}]{0pt}}
- \raggedright
- \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
- \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
- \leavevmode\usekomafont{title}%
- \Huge
- \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
- \@title\strut
- \par
- \box_if_empty:NTF \g_ptxcd_PaperID_box
- {\vskip1em}
- {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
- \box_if_empty:NF \g_ptxcd_PaperID_box {\end{addmargin}}
- \bool_if:NTF \g_ptxcd_colorbacktitle_bool {\end{addmargin}} {\par}
- \vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}
- \end{minipage}
- }
- \hfill
- \raisebox{-\height}{
- \ptxcd_setup_title_box:
- \makebox[\__ptxcd_logowidth:][l]{
- \box_use:N \g_ptxcd_title_info_box
- }
- }
- \dim_compare:nNnTF {\box_ht:N \g_ptxcd_title_info_box + \box_ht:N \g_ptxcd_title_info_box} > {(\__ptxcd_logowidth:)/2}
- {\vspace{\c_ptxcd_largerule_dim}}
- {\vspace{.5\c_ptxcd_logoheight_dim}}
- \par
- }}
- \par
- \nointerlineskip
- \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
- \begin{addmargin}{.5\c_ptxcd_largerule_dim}
- \Large
- \clist_map_inline:nn {subtitle, subject, author, date, publishers}
- {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
- \vspace{\c_ptxcd_rulesep_dim}
- \end{addmargin}
- \tl_if_empty:NF \@thanks {
- \par\nointerlineskip
- \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
- \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
- \begin{addmargin}{.5\c_ptxcd_largerule_dim}
- \let\footnotetext\ptxcd_title_footnote:w
- \@thanks
- \vspace{\c_ptxcd_rulesep_dim}
- \end{addmargin}
- \par
- \let\@thanks\@empty
- }
- \par\nointerlineskip
- \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
- \par
- \endgroup
- \vskip .5\c_ptxcd_logoheight_dim
+ \global\@topnum=\z@
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \vspace*{-\dim_eval:n {
+ \headheight
+ +\headsep
+ +\topskip
+ -\box_ht:N\ptxcd_headrule_box
+ -\box_dp:N \ptxcd_headrule_box
+ }}
+ \par
+ \nointerlineskip
+ \begingroup
+ \usekomafont{disposition}
+ \hsize=\g_ptxcd_headwidth_dim
+ \setlength{\fboxsep}{\z@}
+ \def\thefootnote{\ptxcd_title_footnotestyle:n {\c@footnote}}
+ \bool_if:NT \g_ptxcd_colorback_bool {\bool_set_true:N \g_ptxcd_colorbacktitle_bool}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\colorbox{identbarcolor}}
+ {\parbox[t]{\g_ptxcd_headwidth_dim}{
+ \rule{\z@}{.5\c_ptxcd_logoheight_dim}\par\nointerlineskip
+ \raisebox{-\height}{%
+ \begin{minipage}[t]{\dim_eval:n {\linewidth-\__ptxcd_logowidth:-1ex}}
+ \bool_if:NT \g_ptxcd_colorbacktitle_bool {\begin{addmargin}{.5\c_ptxcd_largerule_dim}}
+ \raggedright
+ \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \box_if_empty:NF \g_ptxcd_PaperID_box {\begin{addmargin}[\dim_eval:n {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim}]{0pt}}
+ \raggedright
+ \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}}
+ \leavevmode\usekomafont{title}%
+ \Huge
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip1em}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \box_if_empty:NF \g_ptxcd_PaperID_box {\end{addmargin}}
+ \bool_if:NTF \g_ptxcd_colorbacktitle_bool {\end{addmargin}} {\par}
+ \vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}}
+ \end{minipage}
+ }
+ \hfill
+ \raisebox{-\height}{
+ \ptxcd_setup_title_box:
+ \makebox[\__ptxcd_logowidth:][l]{
+ \box_use:N \g_ptxcd_title_info_box
+ }
+ }
+ \dim_compare:nNnTF {\box_ht:N \g_ptxcd_title_info_box + \box_ht:N \g_ptxcd_title_info_box} > {(\__ptxcd_logowidth:)/2}
+ {\vspace{\c_ptxcd_largerule_dim}}
+ {\vspace{.5\c_ptxcd_logoheight_dim}}
+ \par
+ }}
+ \par
+ \nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \begin{addmargin}{.5\c_ptxcd_largerule_dim}
+ \Large
+ \clist_map_inline:nn {subtitle, subject, author, date, publishers}
+ {\tl_if_empty:cF {@##1} {{\usekomafont{##1}\use:c {@##1}\par}}}
+ \vspace{\c_ptxcd_rulesep_dim}
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \par\nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont
+ \begin{addmargin}{.5\c_ptxcd_largerule_dim}
+ \let\footnotetext\ptxcd_title_footnote:w
+ \@thanks
+ \vspace{\c_ptxcd_rulesep_dim}
+ \end{addmargin}
+ \par
+ \let\@thanks\@empty
+ }
+ \par\nointerlineskip
+ \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim}
+ \par
+ \endgroup
+ \vskip .5\c_ptxcd_logoheight_dim
}%
-
%%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
+ \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
+}
\cs_set_eq:NN\ptxcd_orig@marginpar:w \marginpar
\newkomafont{marginpar}{\accentfont\color{textaccentcolor}}
\RenewDocumentCommand{\marginpar}{om}{
- \IfNoValueTF{#1}{
- \ptxcd_orig@marginpar:w {\leavevmode\usekomafont{marginpar}#2}
- }{
- \ptxcd_orig@marginpar:w [{\leavevmode\usekomafont{marginpar}#1}]{\leavevmode\usekomafont{marginpar}#2}
- }
+ \IfNoValueTF{#1}{
+ \ptxcd_orig@marginpar:w {\leavevmode\usekomafont{marginpar}#2}
+ }{
+ \ptxcd_orig@marginpar:w [{\leavevmode\usekomafont{marginpar}#1}]{\leavevmode\usekomafont{marginpar}#2}
+ }
}
\ptxcd_declare_caption:Nnn \authorandname {und} {and}
\ptxcd_declare_caption:Nnn \ptxcd_datename {Datum}{Date}
-
\gdef\ptxcd_dateseparator{:~}
-
-
\providecommand*{\frontmatter}{
- \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
- \pagenumbering {roman}
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {roman}
}
-
\providecommand*{\mainmatter}{
- \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
- \pagenumbering {arabic}
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmattertrue
+ \pagenumbering {arabic}
}
-
\providecommand*{\backmatter}{
- \if@twoside\cleardoublepage\else\clearpage\fi \@mainmatterfalse
+ \if@twoside\cleardoublepage\else\clearpage\fi \@mainmatterfalse
}
-
-
-%IMRAD:Introduction
\seq_if_exist:NTF \seq_const_from_clist:Nn {
- \seq_const_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
+ \seq_const_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
} {
- \seq_new:N \c_ptxcd_IMRAD_seq
- \seq_gset_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
+ \seq_new:N \c_ptxcd_IMRAD_seq
+ \seq_gset_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion}
}
-
\newcommand*{\IMRADlabel}[1]{
- \seq_if_in:NnTF \c_ptxcd_IMRAD_seq {#1}
- {\label{IMRAD:#1}}
- {\msg_error:nnnn {tudapub} {undefined-IMRADlabel}{#1}{\seq_use:Nn \c_ptxcd_IMRAD_seq {,}}}
+ \seq_if_in:NnTF \c_ptxcd_IMRAD_seq {#1}
+ {\label{IMRAD:#1}}
+ {\msg_error:nnnn {tudapub} {undefined-IMRADlabel}{#1}{\seq_use:Nn \c_ptxcd_IMRAD_seq {,}}}
}
-
-
\bool_if:NT \g_ptxcd_IMRAD_bool {
- \AtEndDocument{
- \seq_map_inline:Nn \c_ptxcd_IMRAD_seq {
- \cs_if_exist:cF {r@IMRAD:#1} {
- \msg_warning:nnn {tudapub} {missing-IMRADlabel} {#1}
- }
- }
- }
+ \AtEndDocument{
+ \seq_map_inline:Nn \c_ptxcd_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
+ 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.
+ You~did~not~provide~a~Label~for~key~#1.\\
+ Either~you~need~to~recompile~your~document~or~add~a~label~using~\string\IMRADlabel.
}
-
-%backwards compatibility for KOMA-Script
\cs_if_exist:NF \Iftocfeature{
- \let\Iftocfeature\iftocfeature
+ \let\Iftocfeature\iftocfeature
}
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
+
\endinput
-%End of class tudapub.cls
+%%
+%% End of file `tudapub.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudarules.sty b/Master/texmf-dist/tex/latex/tuda-ci/tudarules.sty
index 98182d08c18..226dba858f6 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudarules.sty
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudarules.sty
@@ -1,10 +1,18 @@
-%% This is file `tudarules.sty' version 3.41 (2024-07-02),
+%%
+%% This is file `tudarules.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudarules.dtx (with options: `package')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,156 +21,138 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplPackage{tudarules}{\filedate}{\fileversion}{Creation of colored bars for tuda-ci bundle}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{tudarules}{2025-01-26}{4.00}{Creation of colored bars for the tuda-ci bundle}
\str_if_exist:NF \g_ptxcd_department_str {
- \str_new:N \g_ptxcd_department_str
- \str_gset:Nn \g_ptxcd_department_str {default}
+ \str_new:N \g_ptxcd_department_str
+ \str_gset:Nn \g_ptxcd_department_str {default}
}
-
\bool_new:N \g_ptxcd_simple_rules_bool
\dim_new:N \g_ptxcd_titlerule_dim
-
\seq_if_exist:NF \l_ptxcd_tmpa_seq {\seq_new:N \l_ptxcd_tmpa_seq}
\tl_if_exist:NF \l_ptxcd_tmpa_tk {\tl_new:N \l_ptxcd_tmpa_tl}
-
\cs_new:Nn \ptxcd_rules_set_values:n {
- \seq_set_split:Nnn \l_ptxcd_tmpa_seq {|} {#1}
-
- \int_step_inline:nnnn {1} {1} {4} {
- \tl_set:Nn \l_ptxcd_tmpa_tl {c_ptxcd_
- \clist_item:nn {largerule, rulesep, smallrule, logoheight} {##1}
- _dim}
- \dim_if_exist:cT {\l_ptxcd_tmpa_tl} {\cs_undefine:c {\l_ptxcd_tmpa_tl}}
- \dim_const:cn {\l_ptxcd_tmpa_tl} {\seq_item:Nn \l_ptxcd_tmpa_seq {##1}}
- }
- \dim_gset:Nn \g_ptxcd_titlerule_dim {.5\c_ptxcd_smallrule_dim}
+ \seq_set_split:Nnn \l_ptxcd_tmpa_seq {|} {#1}
+ \int_step_inline:nnnn {1} {1} {4} {
+ \tl_set:Nn \l_ptxcd_tmpa_tl {c_ptxcd_
+ \clist_item:nn {largerule, rulesep, smallrule, logoheight} {##1}
+ _dim}
+ \dim_if_exist:cT {\l_ptxcd_tmpa_tl} {\cs_undefine:c {\l_ptxcd_tmpa_tl}}
+ \dim_const:cn {\l_ptxcd_tmpa_tl} {\seq_item:Nn \l_ptxcd_tmpa_seq {##1}}
+ }
+ \dim_gset:Nn \g_ptxcd_titlerule_dim {.5\c_ptxcd_smallrule_dim}
}
-
\keys_define:nn {ptxcd/rules} {
- color .tl_gset:N = \g_ptxcd_rules_color_tl,
- blackrule .meta:n = {color=black},
- paper .choice:,
- paper/dl .code:n = { \ptxcd_rules_set_values:n { 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm}},
- paper/a6 .code:n = { \ptxcd_rules_set_values:n { 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm}},
- paper/a5 .code:n = { \ptxcd_rules_set_values:n { 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm}},
- paper/a4 .code:n = { \ptxcd_rules_set_values:n { 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm}},
- paper/a3 .code:n = { \ptxcd_rules_set_values:n { 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm}},
- paper/a2 .code:n = { \ptxcd_rules_set_values:n { 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm}},
- paper/a1 .code:n = { \ptxcd_rules_set_values:n { 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm}},
- paper/a0 .code:n = { \ptxcd_rules_set_values:n { 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm}},
- paper/slide .code:n = { \ptxcd_rules_set_values:n { 2mm | .7mm | .6pt | 11 mm | .3pt| 7.5mm | 10mm}},
- paper/beamer .meta:n = {paper= slide},
- paper/leaflet .meta:n = {paper=a5},
- color .tl_gset:N = \g_ptxcd_rules_default_color_tl,
- color .initial:n = black,
- mode .tl_gset:N = \g_ptxcd_rules_default_mode_tl,
- mode .initial:n = box,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = \str_gset:Nn \g_ptxcd_department_str {mecheng},
- department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },
- mecheng .meta:n = {department=mecheng},
+ color .tl_gset:N = \g_ptxcd_rules_color_tl,
+ blackrule .meta:n = {color=black},
+ paper .choice:,
+ paper/dl .code:n = { \ptxcd_rules_set_values:n { 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm}},
+ paper/a6 .code:n = { \ptxcd_rules_set_values:n { 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm}},
+ paper/a5 .code:n = { \ptxcd_rules_set_values:n { 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm}},
+ paper/a4 .code:n = { \ptxcd_rules_set_values:n { 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm}},
+ paper/a3 .code:n = { \ptxcd_rules_set_values:n { 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm}},
+ paper/a2 .code:n = { \ptxcd_rules_set_values:n { 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm}},
+ paper/a1 .code:n = { \ptxcd_rules_set_values:n { 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm}},
+ paper/a0 .code:n = { \ptxcd_rules_set_values:n { 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm}},
+ paper/slide .code:n = { \ptxcd_rules_set_values:n { 2mm | .7mm | .6pt | 11 mm | .3pt| 7.5mm | 10mm}},
+ paper/beamer .meta:n = {paper= slide},
+ paper/leaflet .meta:n = {paper=a5},
+ color .tl_gset:N = \g_ptxcd_rules_default_color_tl,
+ color .initial:n = black,
+ mode .tl_gset:N = \g_ptxcd_rules_default_mode_tl,
+ mode .initial:n = box,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = \str_gset:Nn \g_ptxcd_department_str {mecheng},
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ mecheng .meta:n = {department=mecheng},
}
-
\ProcessKeyOptions[ptxcd/rules]
-
\RequirePackage{tudacolors}
\RequirePackage{xparse}
-
-%Switch between TikZ and box mode
\bool_new:N \g_ptxcd_rule_TikZmode_bool
-
\keys_define:nn {ptxcd/rules} {
- width .dim_gset:N = \l_ptxcd_headrule_width_dim,
- color .tl_gset:N = \l_ptxcd_headrule_color_tl,
- mode .choice:,
- mode / box .code:n = \bool_gset_false:N \g_ptxcd_rule_TikZmode_bool,
- mode / tikz .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
- mode / TikZ .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
+ width .dim_gset:N = \l_ptxcd_headrule_width_dim,
+ color .tl_gset:N = \l_ptxcd_headrule_color_tl,
+ mode .choice:,
+ mode / box .code:n = \bool_gset_false:N \g_ptxcd_rule_TikZmode_bool,
+ mode / tikz .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
+ mode / TikZ .code:n = \bool_gset_true:N \g_ptxcd_rule_TikZmode_bool,
}
-
-
\cs_if_exist_use:NF \str_case:Vn \str_case:on
- \g_ptxcd_department_str {
- {mecheng} {\bool_gset_true:N \g_ptxcd_simple_rules_bool}
+\g_ptxcd_department_str {
+ {mecheng} {\bool_gset_true:N \g_ptxcd_simple_rules_bool}
}
-
\cs_new:Nn \__ptxcd_logowidth: {\dim_eval:n {2.2\c_ptxcd_logoheight_dim}}
\cs_new:Nn \__ptxcd_logosep:{\dim_eval:n {0.3\c_ptxcd_logoheight_dim}}
-
\NewDocumentCommand{\ptxcd_makeheadrule}{som}{
- \keys_set:nn {ptxcd/rules} {
- %TODO maybe package options for default
- width=\textwidth,
- }
- \exp_args:Nnx \keys_set:nn {ptxcd/rules} {
- mode= \g_ptxcd_rules_default_mode_tl,
- color= \g_ptxcd_rules_default_color_tl
- }
- \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
- \IfBooleanF {#1} {\box_if_exist:cF {#3_box} {\box_new:c {#3_box}}}
- \bool_if:NTF \g_ptxcd_simple_rules_bool {
- \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
- {#3_box}
- {
- \color{\l_ptxcd_headrule_color_tl}
- \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{.5\c_ptxcd_largerule_dim}}
- }
- }{
- \bool_if:NTF \g_ptxcd_rule_TikZmode_bool {
- \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
- {#3_box} {
- \begin{tikzpicture}
- \fill[\l_ptxcd_headrule_color_tl](0,\c_ptxcd_rulesep_dim)rectangle++(\l_ptxcd_headrule_width_dim,\c_ptxcd_largerule_dim);
- \fill(0,0)rectangle(\l_ptxcd_headrule_width_dim,-\c_ptxcd_smallrule_dim);
- \end{tikzpicture}
- }
- }{
- \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
- {#3_box}
- {
- \parbox[t]{\l_ptxcd_headrule_width_dim}{
- \setlength{\baselineskip}{\z@}
- \null\par\nointerlineskip
- \textcolor{\l_ptxcd_headrule_color_tl}{\rule{\linewidth}{\c_ptxcd_largerule_dim}}
- \vspace{\c_ptxcd_rulesep_dim}\par\nointerlineskip
- \rule{\linewidth}{\c_ptxcd_smallrule_dim}
- }
- }
- }
- }
- \IfBooleanF {#1} {\cs_set:cpn {#3} {\box_use:c {#3_box}}}
+ \keys_set:nn {ptxcd/rules} {
+ %TODO maybe package options for default
+ width=\textwidth,
+ }
+ \exp_args:Nnx \keys_set:nn {ptxcd/rules} {
+ mode= \g_ptxcd_rules_default_mode_tl,
+ color= \g_ptxcd_rules_default_color_tl
+ }
+ \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
+ \IfBooleanF {#1} {\box_if_exist:cF {#3_box} {\box_new:c {#3_box}}}
+ \bool_if:NTF \g_ptxcd_simple_rules_bool {
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box}
+ {
+ \color{\l_ptxcd_headrule_color_tl}
+ \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{.5\c_ptxcd_largerule_dim}}
+ }
+ }{
+ \bool_if:NTF \g_ptxcd_rule_TikZmode_bool {
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box} {
+ \begin{tikzpicture}
+ \fill[\l_ptxcd_headrule_color_tl](0,\c_ptxcd_rulesep_dim)rectangle++(\l_ptxcd_headrule_width_dim,\c_ptxcd_largerule_dim);
+ \fill(0,0)rectangle(\l_ptxcd_headrule_width_dim,-\c_ptxcd_smallrule_dim);
+ \end{tikzpicture}
+ }
+ }{
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn
+ {#3_box}
+ {
+ \parbox[t]{\l_ptxcd_headrule_width_dim}{
+ \setlength{\baselineskip}{\z@}
+ \null\par\nointerlineskip
+ \textcolor{\l_ptxcd_headrule_color_tl}{\rule{\linewidth}{\c_ptxcd_largerule_dim}}
+ \vspace{\c_ptxcd_rulesep_dim}\par\nointerlineskip
+ \rule{\linewidth}{\c_ptxcd_smallrule_dim}
+ }
+ }
+ }
+ }
+ \IfBooleanF {#1} {\cs_set:cpn {#3} {\box_use:c {#3_box}}}
}
-
\NewDocumentCommand{\ptxcd_makefootrule}{som}{
- \keys_set:nn {ptxcd/rules} {
- width= \textwidth
- }
- \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
- \IfBooleanF {#1} {\box_new:c {#3_box}}
- \IfBooleanTF {#1} \use_none:n \hbox_gset:cn {#3_box} {
- \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{\g_ptxcd_titlerule_dim}}
- }
- \IfBooleanF{#1} {\cs_new:cpn {#3} {\box_use:c {#3_box}}}
+ \keys_set:nn {ptxcd/rules} {
+ width= \textwidth
+ }
+ \IfNoValueF {#2} {\keys_set:nn {ptxcd/rules}{#2}}
+ \IfBooleanF {#1} {\box_new:c {#3_box}}
+ \IfBooleanTF {#1} \use_none:n \hbox_gset:cn {#3_box} {
+ \raisebox{-\height}{\rule{\l_ptxcd_headrule_width_dim}{\g_ptxcd_titlerule_dim}}
+ }
+ \IfBooleanF{#1} {\cs_new:cpn {#3} {\box_use:c {#3_box}}}
}
-
\endinput
+%%
+%% End of file `tudarules.sty'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudasciposter.cls b/Master/texmf-dist/tex/latex/tuda-ci/tudasciposter.cls
index 71e8123ef10..d1abede6134 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudasciposter.cls
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudasciposter.cls
@@ -1,10 +1,23 @@
-%% This is file `tudasciposter.cls' version 3.41 (2024-07-02),
+%%
+%% This is file `tudasciposter.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasciposter.dtx (with options: `class,initialization')
+%% tuda-ci.dtx (with options: `options,sciposter,print,pdfa')
+%% tudasciposter.dtx (with options: `class,packages')
+%% tuda-ci.dtx (with options: `pdfx')
+%% tudasciposter.dtx (with options: `class,body')
+%% tuda-ci.dtx (with options: `xmpdata')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,634 +26,674 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\NeedsTeXFormat{LaTeX2e}
-
-\ProvidesExplPackage{tudasciposter}{\filedate}{\fileversion}{Scientific Poster Layout for TU Darmstadt}
-
+%%
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesExplClass{tudasciposter}{2025-01-26}{4.00}{Scientific Poster Layout for TU Darmstadt}
\prop_new:N \g_ptxcd_clsopts_prop
\tl_new:N \g_ptxcd_boxstyle_tl
\int_new:N \g_ptxcd_paper_int
\str_new:N \g_ptxcd_department_str
\str_const:Nn \c__ptxcd_base_str {sciposter}
-
\keys_define:nn {ptxcd/poster} {
- accentcolor .code:n = {\PassOptionsToPackage{accent =#1}{tudacolors}},
- color .meta:n = {accentcolor = #1},
- textaccentcolor .code:n = {\PassOptionsToPackage{textaccent =#1}{tudacolors}},
- identbarcolor .code:n = {\PassOptionsToPackage{identbar =#1}{tudacolors}},
- titletext .code:n = {\PassOptionsToPackage{text =#1}{tudacolors}},
- footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
- footer .default:n = true,
- footer .initial:n = true,
- thanks .tl_gset:N = \g_ptxcd_footnote_label_tl,
- thanks .initial:n = arabic*,
- pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
- pdfa .initial:n = false,
- boxstyle .choice:,
- boxstyle / official .code:n = \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa},
- boxstyle / colored .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-colored},
- boxstyle / boxed .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-boxed},
- boxstyle /default .meta:n = {boxstyle=official},
- boxstyle .initial:n = default,
- unknown .code:n = {\prop_gput:NVn \g_ptxcd_clsopts_prop \l_keys_key_tl {#1}},
- paper .choices:nn = {a0,a1,a2,a3}{
- \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
- \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
- \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
- },
- paper / landscape .code:n = \PassOptionsToPackage{landscape}{geometry},
- paper / portrait .code:n = \PassOptionsToPackage{portrait}{geometry},
- paper .initial:n = a0,
- fontsize .tl_gset:N = \g_ptxcd_fontsize_tl,
- logofile .tl_gset:N = \g_ptxcd_logofile_tl,
- logofile .initial:n = tuda_logo,
- title .choice:,
- title / default .meta:n = {title=large},
- title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
- title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
- title .initial:n = default,
- colorback .bool_gset:N = \g_ptxcd_colorback_bool,
- colorback .initial:n = true,
- department .choice:,
- department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
- department / mecheng .code:n = {
- \str_gset:Nn \g_ptxcd_department_str {mecheng}
- \keys_set:nn {ptxcd/poster} {colorback=false, departmentlogofile=tuda_maschinenbau_logo,titlesepline=false}
- },
- department .initial:n = default,
+ titletext .code:n = {\PassOptionsToPackage{text =#1}{tudacolors}},
+ footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = true,
+ thanks .tl_gset:N = \g_ptxcd_footnote_label_tl,
+ thanks .initial:n = arabic*,
+ boxstyle .choice:,
+ boxstyle / official .code:n = \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa},
+ boxstyle / colored .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-colored},
+ boxstyle / boxed .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {TUDa-boxed},
+ boxstyle /default .meta:n = {boxstyle=official},
+ boxstyle .initial:n = default,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_clsopts_prop \l_keys_key_tl {#1}},
+ fontsize .tl_gset:N = \g_ptxcd_fontsize_tl,
+ titlesepline .bool_gset:N = \g_ptxcd_titlesepline_bool,
+ titlesepline .initial:n = true,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n = tuda_logo,
+ accept-missing-logos .bool_gset:N = \g_ptxcd_logo_workaround_bool,
+ accept-missing-logos .initial:n = false,
+ accept-missing-logos .usage:n = load,
+ accept-missing-logos .default:n = true,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department / mecheng .code:n = {
+ \str_gset:Nn \g_ptxcd_department_str {mecheng}
+ \exp_args:Ne \keys_set:ne {
+
+ ptxcd / poster
+ }{
+ colorback=false,
+ departmentlogofile=tuda_maschinenbau_logo,
+ titlesepline=false
+ }
+ },
+
+ department .initial:n = default,
department / unknown .code:n = {
- \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
- },,
- departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
- departmentconfigprefix .initial:n = tuda,
- mecheng .meta:n = {department=mecheng},
- departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
- departmentlogofile .initial:n =,
- titlesepline .bool_gset:N = \g_ptxcd_titlesepline_bool,
- titlesepline .initial:n = true,
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ departmentconfigprefix .tl_gset:N = \g__ptxcd_config_prefix_tl,
+ departmentconfigprefix .initial:n = tuda,
+ departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl,
+ departmentlogofile .initial:n =,
+ mecheng .meta:n = {department=mecheng},
+ pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
+ pdfa .initial:n =
+ false,
+ pdfx .bool_gset:N = \g_ptxcd_pdfx_bool,
+ pdfx .initial:n = true,
+%% color options
+%% color options
+ 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}},
+ colorback .bool_gset:N = \g_ptxcd_colorback_bool,
+ colorback .default:n = true,
+ colorback .initial:n = true,
+ paper .choices:nn = {
+ a0,a1,a2,a3
+ }{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper / landscape .code:n = \PassOptionsToPackage{landscape}{geometry},
+
+ paper / portrait .code:n = \PassOptionsToPackage{portrait}{geometry},
+ paper .initial:n =
+
+ a0,
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+}
+\cs_if_exist:NT \TUDaDefaultBuildOptions {
+ \exp_args:Ne \keys_set:ne { ptxcd /
+ poster
+ } {
+ \TUDaDefaultBuildOptions
+ }
+}
+\cs_new:Nn \__ptxcd_insert_logo: {
+ \bool_if:NTF \g_ptxcd_logo_workaround_bool {
+ \file_if_exist:nTF {\g_ptxcd_logofile_tl.pdf}
+ \use_ii:nn
+ \use_i:nn
+ } {
+ \use_ii:nn
+ }
+ {\rule{0pt}{\c_ptxcd_logoheight_dim}\makebox[2.5\c_ptxcd_logoheight_dim][c]{\rule[.1\c_ptxcd_logoheight_dim]{2.05\c_ptxcd_logoheight_dim}{.8\c_ptxcd_logoheight_dim}}}
+ {\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}
}
-\ProcessKeyOptions[ptxcd/poster]
+\bool_if:NF \g_ptxcd_pdfa_bool {\bool_gset_false:N \g_ptxcd_pdfx_bool}
+
+\bool_if:NT \g_ptxcd_pdfa_bool {
+ \msg_new:nnn {tudapub} {colors-to-rgb} {
+ You~did~not~add~a~color~profile.\\
+ I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\
+ This~is~required~to~be~able~to~create~PDF/A~compliance.
+ }
+
+ \cs_if_exist:NT \pdfmeta_standard_get:nN {
+ \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl
+ \quark_if_no_value:NF \l_tmpa_tl {
+ \bool_gset_false:N \g_ptxcd_pdfx_bool
+ \msg_new:nnn{tudapub} {prefer-lualatex} {
+ I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\
+ tudapub~will~not~load~pdfx~to~avoid~conflicts.\\
+ To~disable~this~message~use~pdfx=false.
+ }
+ \msg_info:nn {tudapub} {prefer-lualatex}
+ }
+ \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} {
+ \use_iii:nnn
+ }
+ }
+ \bool_if:NT \g_ptxcd_pdfx_bool {
+ \PassOptionsToPackage{RGB}{xcolor}
+ \msg_info:nn {tudapub} {colors-to-rgb}
+ }
+}
+\ProcessKeyOptions[ptxcd/poster]
\dim_new:N \g_ptxcd_margin_dim
\bool_if:NTF \g_ptxcd_smalltitle_bool {
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_title_sizes:
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_base_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_base_sizes:
}{
- \int_gdecr:N \g_ptxcd_paper_int
- \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
- \ptxcd_setup_title_sizes:
- \ptxcd_setup_base_sizes:
+ \int_gdecr:N \g_ptxcd_paper_int
+ \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \ptxcd_setup_base_sizes:
}
-
\prop_gput:NnV \g_ptxcd_clsopts_prop {fontsize} \g_ptxcd_fontsize_tl
-
\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
- \tl_if_empty:nTF {#2}
- {\PassOptionsToClass{#1}{scrartcl}}
- {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}}
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass{#1}{scrartcl}}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}}
}
-
-\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}}
-
\ExplSyntaxOff
-\PassOptionsToPackage{DIV=10}{typearea}
+\PassOptionsToPackage{typeareawarninfolimit=-1,DIV=10}{typearea}
\LoadClass[parskip=full-]{scrartcl}
-\RequirePackage{tudafonts}
-\RequirePackage{calc}
-\RequirePackage[margin=0pt]{geometry}
-\RequirePackage{tudacolors}
-
\ExplSyntaxOn
+\PassOptionsToPackage{hidelinks, unicode}{hyperref}
+\bool_if:NTF \g_ptxcd_pdfx_bool {
+%% only apply the hack if pdfx is older than the working version
+ \PassOptionsToPackage{a-2b}{pdfx}
+%% Workaround posted by David Carlisle on tex.stackexchange
+%% Thanks to Ulrike Fischer for mentioning it in #472
+ \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
+ \chardef\currentgrouplevel0
+ \ExplSyntaxOff
+ \RequirePackage{pdfx}
+ \ExplSyntaxOn
+ \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
+ \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
+%% end of the workaround
+
+ \msg_new:nnn{tuda-ci} {prefer-lualatex} {
+ You~use~pdfa-mode~in~#1.\\
+ This~can~lead~to~incompatiblities~especially~with~older~compiler~versions.\\
+ You~should~prefer~using~lualatex.
+ }
+ \msg_new:nnnn{tuda-ci} {outdated-package-pdfa} {
+ Your~Version~of~the~#1-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.}
+
+ \sys_if_engine_pdftex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {PDFTeX}
+ }
+
+ \sys_if_engine_xetex:T {
+ \msg_warning:nnn{tuda-ci} {prefer-lualatex} {XeTeX}
+ }
+
+ \@ifpackagelater{xmpincl}{2021/09/22}{
+ }{
+ \msg_error:nn{tuda-ci} {outdated-package-pdfa} {xmpincl}
+ }
-\if_bool:N \g_ptxcd_pdfa_bool
-\PassOptionsToPackage{a-2b}{pdfx}
-\IfFormatAtLeastTF{2020/10/01}{}{\endinput}
-% Workaround posted by David Carlisle on tex.stackexchange
-% Thanks to Ulrike Fischer for mentioning it in #472
- \let \__ptxcd_grouplevel_before_pdfx: \currentgrouplevel
- \chardef\currentgrouplevel0
- \ExplSyntaxOff
- \RequirePackage{pdfx}
- \ExplSyntaxOn
- \let \currentgrouplevel \__ptxcd_grouplevel_before_pdfx:
- \cs_undefine:N \__ptxcd_grouplevel_before_pdfx:
-% end of the workaround
-\fi:
-
+} {
+ \RequirePackage{hyperref}
+}
\ExplSyntaxOff
-
+\RequirePackage{tudafonts}
+\RequirePackage{tudacolors}
+\RequirePackage[margin=0pt]{geometry}
\RequirePackage{tcolorbox}
\tcbuselibrary{poster}
-
\RequirePackage[mode=tikz]{tudarules}
\RequirePackage{qrcode}
-
\ExplSyntaxOn
-%Font adjusments
\renewcommand*{\familydefault}{\sfdefault}
-
\setkomafont{title}{
- \color{titlefgcolor}
- \expandafter\fontsize\ptxcd_title_fontsize:\selectfont
- \bfseries
+ \color{titlefgcolor}
+ \expandafter\fontsize\ptxcd_title_fontsize:\selectfont
+ \bfseries
}
-
\setkomafont{author}{\bfseries}
\setkomafont{captionlabel}{\bfseries}
-
\setkomafont{disposition}{\sffamily\bfseries}
-
-% end of font adjustments
-
-
-
\dim_const:Nn \c_ptxcd_headrule_ht_dim {\c_ptxcd_rulesep_dim +\c_ptxcd_largerule_dim + \c_ptxcd_smallrule_dim}
-%Setup title
\box_new:N \l_ptxcd_tmpa_box
\box_new:N \g_ptxcd_titlegraphic_box
\box_new:N \g_ptxcd_title_box
\box_new:N \g_ptxcd_author_box
\box_new:N \g_ptxcd_credit_box
-
\tl_new:N \g_ptxcd_thanks_tl
\newcommand*{\ptxcd_title@footnote}[2][1]{
- \begingroup
- \ptxcd_def_footnotelabel:
- \footnotemark[#1]\,#2\quad
- \endgroup
+ \begingroup
+ \ptxcd_def_footnotelabel:
+ \footnotemark[#1]\,#2\quad
+ \endgroup
}
-
\tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {*} {{footnote}}
\clist_map_inline:nn {alph, arabic, fnsymbol, Alph, roman, Roman} {
- \tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {#1} {\use:c {#1}}
+ \tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {#1} {\use:c {#1}}
}
-
\cs_set:Nn \ptxcd_def_footnotelabel: {
- \renewcommand*{\thefootnote}{\g_ptxcd_footnote_label_tl}
+ \renewcommand*{\thefootnote}{\g_ptxcd_footnote_label_tl}
}
-
\pagestyle{empty}
\renewcommand*{\title}[1]{\gdef \@title {#1}}
-
-
\dim_new:N \g_ptxcd_footheight_dim
\dim_gset:Nn \g_ptxcd_footheight_dim {0.06\paperwidth}%
-
\box_new:N \g_ptxcd_footergraphics_box
\newcommand*{\footergraphics}[1]{
- \begingroup
- \let\height\g_ptxcd_footheight_dim
- \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
- \endgroup
+ \begingroup
+ \let\height\g_ptxcd_footheight_dim
+ \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
+ \endgroup
}
-
\tl_new:N \g_ptxcd_poster_foot_tl
\newcommand{\footer}[1]{
- \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
+ \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
}
-
\tl_new:N \g_ptxcd_poster_qrcode_tl
-
\msg_new:nnnn {tudapub} {biblatex-required}{
- You~tried~to~use~#1.\\
- This~feature~requires~the~biblatex~package.
+ You~tried~to~use~#1.\\
+ This~feature~requires~the~biblatex~package.
} {
- Try~to~remove~the~star~or~load~biblatex.
+ Try~to~remove~the~star~or~load~biblatex.
}
-
\NewDocumentCommand{\footerqrcode}{sm}{
- \IfBooleanTF {#1} {
- \cs_if_exist:NTF \blx@blxinit {
- \begingroup
- \blx@blxinit
- \entrydata{#2}{
- \tl_gset:Nx \g_ptxcd_poster_qrcode_tl{\thefield{url}}
- }
- \endgroup
- }{
- \msg_error:nnx {tudapub} {biblatex-required} {\use:c{footerqrcode*}}
- }
- }{
- \tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#2}
- }
-}
-
-
-%%%%%%%%%%%%%%%%%%%
-% Begin of PDF/A mode
-%%%%%%%%%%%%%%%%%%%
-%PDFA
-\if_bool:N \g_ptxcd_pdfa_bool
-%%hyperref
-\hypersetup{hidelinks, unicode, hyperfootnotes=false}
-\iow_new:N \ptxcd_xmpdata_stream
-\iow_open:Nn \ptxcd_xmpdata_stream {\jobname.xmpdata}
-\tl_new:N \g_ptxcd_xmp_title
-\tl_new:N \g_ptxcd_xmp_author
-
-\cs_new:Nn \ptxcd_pass_TitleData: {
- \begingroup
- \def\newline{}
- \def\\{}
- \cs_set_eq:NN \thanks \use_none:n
- \cs_set_eq:NN \inst \use_none:n
- \cs_set:Npn \and {\sep}
- \bool_if:NTF \g_ptxcd_pass_TitleData_bool {
- \tl_gset:Nx \g_ptxcd_xmp_title {\@title}
- \seq_clear:N \l_tmpa_seq
- \seq_map_inline:Nn \g_ptxcd_author_seq {
- \seq_put_right:Nx \l_tmpa_seq {##1}
- }
- \tl_gset:Nx \g_ptxcd_xmp_author {\seq_use:Nn \l_tmpa_seq {\sep}}
- \iow_now:Nx \ptxcd_xmpdata_stream
- {
- \exp_not:N \Title{\tl_to_str:V \g_ptxcd_xmp_title}
- ^^J
- \exp_not:N \Author{\tl_to_str:V \g_ptxcd_xmp_author}
- ^^J
- \exp_not:N \Creator{LaTeX~ using~ the~ TUDa-CI~ Bundle}
- }
- }{
- \begingroup
- \use:c {pdfx@localcommands}
- \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
- \endgroup
- }
- \endgroup
-}
-
-\cs_new:Nn \ptxcd_write_xmp_line:nn {
- %Fallback test for older kernels
- \cs_if_exist:NTF \str_uppercase:f {
- \tl_set:Nx \l_tmpa_tl {
- \str_uppercase:f {\tl_head:n {#1}}
- \str_lowercase:f { \tl_tail:n {#1}}
- }
- } {
- %may be removed in some time
- \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}}
- }
- \cs_if_exist:cTF {\l_tmpa_tl}{
- \iow_now:Nx \ptxcd_xmpdata_stream {
- \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}}
- }
- }{
- \msg_error:nnn{tudapub} {unknown-metadata} {#1}
- }
-}
-
-\bool_new:N \g_ptxcd_pass_TitleData_bool
-\bool_gset_true:N \g_ptxcd_pass_TitleData_bool
-\prop_new:N \g_ptxcd_MetaData_prop
-
-\newcommand*{\Metadata}[1]{
- \bool_gset_false:N \g_ptxcd_pass_TitleData_bool
- \prop_gset_from_keyval:Nn \g_ptxcd_MetaData_prop {#1}
+ \IfBooleanTF {#1} {
+ \cs_if_exist:NTF \blx@blxinit {
+ \begingroup
+ \blx@blxinit
+ \entrydata{#2}{
+ \tl_gset:Nx \g_ptxcd_poster_qrcode_tl{\thefield{url}}
+ }
+ \endgroup
+ }{
+ \msg_error:nnx {tudapub} {biblatex-required} {\use:c{footerqrcode*}}
+ }
+ }{
+ \tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#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,hyperfootnotes=false]{hyperref}
-\fi:
-
-%%%%%%%%%%%%%%%%%%%
-% End of PDF/A mode
-%%%%%%%%%%%%%%%%%%%
-
-%redefine \author to manage \and and \thanks
-
\seq_new:N \g_ptxcd_author_seq
-
\renewcommand*\author[1]{
- \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+ \seq_gset_split:Nnn \g_ptxcd_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.
+ 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
+ \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_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+ \seq_use:Nnnn \g_ptxcd_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.}}
- }{}
+ \@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\g_ptxcd_margin_dim\relax}
\newlength{\contentheight}
-
\cs_new:Nn \__ptxcd_logo_code:n {
- \node[anchor=north~east,inner~sep=0pt,minimum~width=\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}](#1) at ([xshift=\__ptxcd_logosep:,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~east){
- \includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}
- };
+ \node[anchor=north~east,inner~sep=0pt,minimum~width=\dim_eval:n {\__ptxcd_logowidth: + \__ptxcd_logosep:}](#1) at ([xshift=\__ptxcd_logosep:,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~east){
+ \__ptxcd_insert_logo:
+ };
}
-
-
\tcbposterset{
- coverage =
- {
- spread,
- parbox=false,
- bottom=\dim_eval:n {\g_ptxcd_margin_dim
- \bool_if:NT \g_ptxcd_poster_foot_bool {+\g_ptxcd_footheight_dim + 3\c_ptxcd_rulesep_dim}
- },
- left=\g_ptxcd_margin_dim,
- right=\g_ptxcd_margin_dim,
- before= {\ptxcd_poster_setup_title_box:},
- top= \dim_eval:n {
- \bool_if:NF \g_ptxcd_colorback_bool {1.5}
- \g_ptxcd_margin_dim
- +\box_ht:N \ptxcd_headrule_box
- +\box_dp:N \ptxcd_headrule_box
- +\g_ptxcd_titleblock_dim
- +4\c_ptxcd_rulesep_dim
- +\box_ht:N \g_ptxcd_author_box
- +\box_dp:N \g_ptxcd_author_box
- },
- overlay={%
- \coordinate(topleft) at ([xshift=\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ west);
- \coordinate(topright) at ([xshift=-\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ east);
- \coordinate(bottomleft) at ([xshift=\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ west);
- \coordinate(bottomright) at ([xshift=-\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ east);
-
- \dim_gset:Nn \g_ptxcd_titleindent_dim {\bool_if:NTF \g_ptxcd_colorback_bool {3\c_ptxcd_rulesep_dim} {\c_zero_dim}}
-
- \node[inner~sep=0pt, anchor=north~west](identbar) at (topleft){\ptxcd_headrule};
- \bool_if:NTF \g_ptxcd_colorback_bool
- \fill \path [identbarcolor]
- (identbar.south~east)rectangle([yshift=-\g_ptxcd_titleblock_dim]identbar.south~west) coordinate(bottomlefttitleblock);
-
- \__ptxcd_logo_code:n {TUDalogo}
-
- \node[inner~sep=0pt,text~width=\__ptxcd_logowidth:,align=right,anchor=north~west,](titlegraphic) at ([yshift=-\c_ptxcd_rulesep_dim]TUDalogo.south~west){\box_use:N \g_ptxcd_titlegraphic_box};
-
- \node[anchor=north~west,inner~sep=0pt,] (title) at ([
- xshift=\g_ptxcd_titleindent_dim,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~west) {\box_use:N \g_ptxcd_title_box};
-
- \bool_if:NT \g_ptxcd_titlesepline_bool
- {\draw[line~ width=.5\c_ptxcd_smallrule_dim](bottomlefttitleblock)--++(\contentwidth,0);}
-
- \node[anchor=north~west, inner~xsep=0pt, inner~ ysep=\c_ptxcd_rulesep_dim] (author) at ([xshift=\g_ptxcd_titleindent_dim]bottomlefttitleblock) {\box_use:N \g_ptxcd_author_box};
-
- \draw[line~ width=.5\c_ptxcd_smallrule_dim](author.south-|identbar.west)--++(\contentwidth,0);
-
-
- \bool_if:NT \g_ptxcd_poster_foot_bool {\__ptxcd_typeset_footer:}
- }}
+ coverage =
+ {
+ spread,
+ parbox=false,
+ bottom=\dim_eval:n {\g_ptxcd_margin_dim
+ \bool_if:NT \g_ptxcd_poster_foot_bool {+\g_ptxcd_footheight_dim + 3\c_ptxcd_rulesep_dim}
+ },
+ left=\g_ptxcd_margin_dim,
+ right=\g_ptxcd_margin_dim,
+ before= {\ptxcd_poster_setup_title_box:},
+ top= \dim_eval:n {
+ \bool_if:NF \g_ptxcd_colorback_bool {1.5}
+ \g_ptxcd_margin_dim
+ +\box_ht:N \ptxcd_headrule_box
+ +\box_dp:N \ptxcd_headrule_box
+ +\g_ptxcd_titleblock_dim
+ +4\c_ptxcd_rulesep_dim
+ +\box_ht:N \g_ptxcd_author_box
+ +\box_dp:N \g_ptxcd_author_box
+ },
+ overlay={%
+ \coordinate(topleft) at ([xshift=\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ west);
+ \coordinate(topright) at ([xshift=-\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ east);
+ \coordinate(bottomleft) at ([xshift=\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ west);
+ \coordinate(bottomright) at ([xshift=-\g_ptxcd_margin_dim, yshift=\g_ptxcd_margin_dim]current~page.south~ east);
+ \dim_gset:Nn \g_ptxcd_titleindent_dim {\bool_if:NTF \g_ptxcd_colorback_bool {3\c_ptxcd_rulesep_dim} {\c_zero_dim}}
+ \node[inner~sep=0pt, anchor=north~west](identbar) at (topleft){\ptxcd_headrule};
+ \bool_if:NTF \g_ptxcd_colorback_bool
+ \fill \path [identbarcolor]
+ (identbar.south~east)rectangle([yshift=-\g_ptxcd_titleblock_dim]identbar.south~west) coordinate(bottomlefttitleblock);
+ \__ptxcd_logo_code:n {TUDalogo}
+ \node[inner~sep=0pt,text~width=\__ptxcd_logowidth:,align=right,anchor=north~west,](titlegraphic) at ([yshift=-\c_ptxcd_rulesep_dim]TUDalogo.south~west){\box_use:N \g_ptxcd_titlegraphic_box};
+ \node[anchor=north~west,inner~sep=0pt,] (title) at ([
+ xshift=\g_ptxcd_titleindent_dim,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~west) {\box_use:N \g_ptxcd_title_box};
+ \bool_if:NT \g_ptxcd_titlesepline_bool
+ {\draw[line~ width=.5\c_ptxcd_smallrule_dim](bottomlefttitleblock)--++(\contentwidth,0);}
+ \node[anchor=north~west, inner~xsep=0pt, inner~ ysep=\c_ptxcd_rulesep_dim] (author) at ([xshift=\g_ptxcd_titleindent_dim]bottomlefttitleblock) {\box_use:N \g_ptxcd_author_box};
+ \draw[line~ width=.5\c_ptxcd_smallrule_dim](author.south-|identbar.west)--++(\contentwidth,0);
+ \bool_if:NT \g_ptxcd_poster_foot_bool {\__ptxcd_typeset_footer:}
+ }}
}
-
\cs_new:Nn \__ptxcd_typeset_footer: {
- \coordinate(lastpos) at (bottomright);
- \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl
- {
- \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos)
- {
- \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_ptxcd_footheight_dim]}\g_ptxcd_poster_qrcode_tl
- };
- \coordinate (lastpos) at (qrcode.south~west);
- }
- \box_if_empty:NF \g_ptxcd_footergraphics_box {
- \node[anchor=south~east, inner~sep=\z@] at (lastpos) {
- \accentfont
- \box_use:N \g_ptxcd_footergraphics_box
- };
- }
- \node[anchor=north~ west, inner~ sep=\z@] (infofooter) at ([yshift=\g_ptxcd_footheight_dim]bottomleft) {
- \parbox{\dim_eval:n {\contentwidth
- -\box_wd:N \g_ptxcd_footergraphics_box
- \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {-\g_ptxcd_footheight_dim-\c_ptxcd_rulesep_dim}
- }}{
- \rule{\linewidth}{.5\c_ptxcd_smallrule_dim}\\
- \accentfont\small\g_ptxcd_poster_foot_tl
- \par\medskip
- \let\footnotetext\ptxcd_title@footnote
- \g_ptxcd_thanks_tl}
- };
+ \coordinate(lastpos) at (bottomright);
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl
+ {
+ \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos)
+ {
+ \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_ptxcd_footheight_dim]}\g_ptxcd_poster_qrcode_tl
+ };
+ \coordinate (lastpos) at (qrcode.south~west);
+ }
+ \box_if_empty:NF \g_ptxcd_footergraphics_box {
+ \node[anchor=south~east, inner~sep=\z@] at (lastpos) {
+ \accentfont
+ \box_use:N \g_ptxcd_footergraphics_box
+ };
+ }
+ \node[anchor=north~ west, inner~ sep=\z@] (infofooter) at ([yshift=\g_ptxcd_footheight_dim]bottomleft) {
+ \parbox{\dim_eval:n {\contentwidth
+ -\box_wd:N \g_ptxcd_footergraphics_box
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {-\g_ptxcd_footheight_dim-\c_ptxcd_rulesep_dim}
+ }}{
+ \rule{\linewidth}{.5\c_ptxcd_smallrule_dim}\\
+ \accentfont\small\g_ptxcd_poster_foot_tl
+ \par\medskip
+ \let\footnotetext\ptxcd_title@footnote
+ \g_ptxcd_thanks_tl}
+ };
}
-
\hook_gput_code:nnn {ptxcd/init-colors} {tudasciposter} {
- \bool_if:NTF \g_ptxcd_colorback_bool
- {\colorlet{titlefgcolor}{textonaccentcolor}}
- {\colorlet{titlefgcolor}{black}}
- \colorlet{titlebgcolor}{accentcolor}
- % Block Colors
- \colorlet{blocktitlebgcolor}{accentcolor}
- \colorlet{blocktitlefgcolor}{textonaccentcolor}
- % Innerblock Colors
- \colorlet{innerblockbodybgcolor}{textonaccentcolor}
+\bool_if:NTF \g_ptxcd_colorback_bool
+{\colorlet{titlefgcolor}{textonaccentcolor}}
+{\colorlet{titlefgcolor}{black}}
+\colorlet{titlebgcolor}{accentcolor}
+\colorlet{blocktitlebgcolor}{accentcolor}
+\colorlet{blocktitlefgcolor}{textonaccentcolor}
+\colorlet{innerblockbodybgcolor}{textonaccentcolor}
}
-% Background Colors
\colorlet{backgroundcolor}{white}
\colorlet{framecolor}{white}
-% Block Colors
\colorlet{blockbodybgcolor}{white}
\colorlet{blockbodyfgcolor}{black}
-% Innerblock Colors
\colorlet{innerblocktitlebgcolor}{black!15}
\colorlet{innerblocktitlefgcolor}{black}
\colorlet{innerblockbodyfgcolor}{black}
-
\dim_new:N \g_ptxcd_titleblock_dim
\dim_new:N \g_ptxcd_titleindent_dim
-
\cs_new:Nn \__ptxcd_inst:n {\textsuperscript{#1}}
-
\cs_new:Nn \ptxcd_poster_setup_title_box: {
- \hbox_gset:Nn \g_ptxcd_title_box {
- \parbox{.65\paperwidth}{
- \raggedright
- \usekomafont{disposition}\usekomafont{title}\leavevmode\@title \par
- }
- }
- \hbox_gset:Nn \g_ptxcd_author_box {
- \parbox{\dimexpr\contentwidth-6\c_ptxcd_rulesep_dim\relax}{
- \ptxcd_def_footnotelabel:
- \cs_set_eq:NN \inst\__ptxcd_inst:n
- {\usekomafont{author}\@author\\}
- \tl_gset:No \g_ptxcd_thanks_tl {\@thanks}
- \@institute
- }
- }
- \tl_if_empty:NF \@titlegraphic {
- \hbox_gset:Nn \g_ptxcd_titlegraphic_box {
- \parbox{\__ptxcd_logowidth:}{
- \raggedleft
- \@titlegraphic
- }
- }
- }
- \dim_gset:Nn \g_ptxcd_titleblock_dim {
- \dim_max:nn
- {
- +\box_ht:N \g_ptxcd_titlegraphic_box +\box_dp:N \g_ptxcd_titlegraphic_box+ 2\c_ptxcd_logoheight_dim
- }
- {\box_ht:N \g_ptxcd_title_box+ \box_dp:N \g_ptxcd_title_box+\c_ptxcd_logoheight_dim}
- }
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox{.65\paperwidth}{
+ \raggedright
+ \usekomafont{disposition}\usekomafont{title}\leavevmode\@title \par
+ }
+ }
+ \hbox_gset:Nn \g_ptxcd_author_box {
+ \parbox{\dimexpr\contentwidth-6\c_ptxcd_rulesep_dim\relax}{
+ \ptxcd_def_footnotelabel:
+ \cs_set_eq:NN \inst\__ptxcd_inst:n
+ {\usekomafont{author}\@author\\}
+ \tl_gset:No \g_ptxcd_thanks_tl {\@thanks}
+ \@institute
+ }
+ }
+ \tl_if_empty:NF \@titlegraphic {
+ \hbox_gset:Nn \g_ptxcd_titlegraphic_box {
+ \parbox{\__ptxcd_logowidth:}{
+ \raggedleft
+ \@titlegraphic
+ }
+ }
+ }
+ \dim_gset:Nn \g_ptxcd_titleblock_dim {
+ \dim_max:nn
+ {
+ +\box_ht:N \g_ptxcd_titlegraphic_box +\box_dp:N \g_ptxcd_titlegraphic_box+ 2\c_ptxcd_logoheight_dim
+ }
+ {\box_ht:N \g_ptxcd_title_box+ \box_dp:N \g_ptxcd_title_box+\c_ptxcd_logoheight_dim}
+ }
}
-
-%%%%%%%%%%%%%%%%%%%%%%
-%Declare TCBstyles for tudaposter
\tcbset {
- TUDa/.style =
- {
- enhanced,
- coltitle=black,
- colbacktitle=white,
- coltext=black,
- colback=white,
- size=minimal,
- boxrule=.5\c_ptxcd_smallrule_dim,
- leftrule=\z@,
- rightrule=\z@,
- fonttitle=\usekomafont{disposition}\usekomafont{section},
- before~title={\strut},
- toptitle=.5\c_ptxcd_rulesep_dim,
- bottomtitle=.5\c_ptxcd_rulesep_dim,
- top=\c_ptxcd_rulesep_dim,
- bottom=\c_ptxcd_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_ptxcd_rulesep_dim,
- right=.5\c_ptxcd_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_ptxcd_rulesep_dim,
- boxrule=.5\c_ptxcd_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}
- },
+TUDa/.style =
+{
+enhanced,
+coltitle=black,
+colbacktitle=white,
+coltext=black,
+colback=white,
+size=minimal,
+boxrule=.5\c_ptxcd_smallrule_dim,
+leftrule=\z@,
+rightrule=\z@,
+fonttitle=\usekomafont{disposition}\usekomafont{section},
+before~title={\strut},
+toptitle=.5\c_ptxcd_rulesep_dim,
+bottomtitle=.5\c_ptxcd_rulesep_dim,
+top=\c_ptxcd_rulesep_dim,
+bottom=\c_ptxcd_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_ptxcd_rulesep_dim,
+ right=.5\c_ptxcd_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_ptxcd_rulesep_dim,
+boxrule=.5\c_ptxcd_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_ptxcd_boxstyle_tl}, poster={spacing=5cm}}
\tcbset{
- every~ box~ on~ layer~ 3/.style={reset,\g_ptxcd_boxstyle_tl -inner},
- every~ box~ on~ layer~ 4/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+every~ box~ on~ layer~ 3/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+every~ box~ on~ layer~ 4/.style={reset,\g_ptxcd_boxstyle_tl -inner},
}
-
-%Adjust caption indent
\setcapindent{1em}
-
\file_if_exist_input:n {\g__ptxcd_config_prefix_tl\g_ptxcd_department_str.cfg}
-
\hook_use:n {ptxcd/init-colors}
-
\ptxcd_makeheadrule[
- width=\paperwidth-2\g_ptxcd_margin_dim,
- color=identbarcolor
+ width=\paperwidth-2\g_ptxcd_margin_dim,
+ color=identbarcolor
]{ptxcd_headrule}
-
+\if_bool:N \g_ptxcd_pdfx_bool
+ \iow_new:N \ptxcd_xmpdata_stream
+ \tl_new:N \g_ptxcd_xmp_title_tl
+ \tl_new:N \g_ptxcd_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 \ptxcd_pass_TitleData: {
+ \iow_open:Nn \ptxcd_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_ptxcd_xmp_title_tl {\@title}
+ \prop_gput_if_new:Nnx \g_ptxcd_MetaData_prop {Title} {\tl_to_str:V \g_ptxcd_xmp_title_tl}
+ \prop_if_in:NnF \g_ptxcd_MetaData_prop {Author} {
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \sep}}
+ \tl_gset:Nx \g_ptxcd_xmp_author_tl {\g_ptxcd_xmp_author_tl}
+ \prop_gput:Nnx \g_ptxcd_MetaData_prop {Author} {\tl_to_str:V \g_ptxcd_xmp_author_tl}
+ }
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Publisher}{TU~Darmstadt}
+ \prop_gput_if_new:Nnn \g_ptxcd_MetaData_prop {Creator}{LaTeX~using~TUDa-CI}
+ \use:c {pdfx@localcommands}%should be held inside group
+ \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn
+ \endgroup
+ \iow_close:N \ptxcd_xmpdata_stream
+ \let\ptxcd_pass_TitleData:\relax
+ }
+ \cs_new:Nn \ptxcd_write_xmp_line:nn {
+ \begingroup
+ \cs_set:Npn \sep {\exp_not:N \sep}
+ \cs_if_exist:cTF {#1}{
+ \iow_now:Nx \ptxcd_xmpdata_stream {
+ \c_backslash_str #1 {\exp_not:n {#2}}
+ }
+ }{
+ \msg_error:nnn{tuda-ci} {unknown-metadata} {#1}
+ }
+ \endgroup
+ }
+
+ \prop_new:N \g_ptxcd_MetaData_prop
+
+ \newcommand*{\Metadata}[1]{
+ \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn
+ {#1}
+ }
+
+ \cs_set:Nn \ptxcd_set_metadata_prop:nn {
+ % Fallback test for older kernels doesn't support mixed case eintries
+ \cs_if_exist:NTF \text_titlecase_first:n {
+ \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\text_titlecase_first:n {#1}} {#2}
+ } {
+ \exp_args:NNx \prop_gput:Nnn \g_ptxcd_MetaData_prop {
+ \str_uppercase:f {\tl_head:n {#1}}
+ \str_lowercase:f {\tl_tail:n {#1}}
+ } {#2}
+ }
+ }
+ \msg_new:nnnn{tuda-ci} {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:
+ \hypersetup{pdfcreator=LaTeX~using~TUDa-CI}
+ \msg_new:nnnn {tuda-ci} {metadata-to-hypersetup} {
+ You~don't~use~pdfx.~
+ Here~the~\string\Metadata ~command~only~exists~for~compatibility~reasons.\\
+ I~will~pass~the~data~to~ḩypersetup.
+ }{
+ If~possible~please~use~hyperref's~\string\hypersetup~command~for~the~metadata~directly.\\
+ See~hyperref~documentation~for~details~on~usage.
+ }
+
+ \newcommand*{\Metadata}[1]{
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility
+ \clist_map_inline:Nn \l_tmpa_tl {
+ \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}}
+ }
+ \msg_warning:nn {tuda-ci} {metadata-to-hypersetup}
+ }
+ \cs_new:Nn \ptxcd_pass_TitleData: {
+ \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop {
+ \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop
+ } {
+ \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nf \g_tmpa_tl {\@title}
+ \endgroup
+ \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}}
+ }
+ \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} {
+ \begingroup
+ \def\newline{}
+ \def\\{}
+ \let\thanks\use_none:n
+ \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}}
+ \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl }
+ \endgroup
+ \hypersetup{pdfauthor=\g_tmpa_tl}
+ }
+ }
+ \bool_if:NF \g_ptxcd_pdfa_bool {
+ \msg_new:nnn{tuda-ci} {no-pdfa}{The~ tuda\c__ptxcd_base_str\space class~ will~ not~ create~ PDF/A.}
+ \msg_info:nn{tuda-ci} {no-pdfa}
+ }
+\fi:
\endinput
-%end of tudasciposter.cls
+%%
+%% End of file `tudasciposter.cls'.
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudasize9pt.clo b/Master/texmf-dist/tex/latex/tuda-ci/tudasize9pt.clo
index 4f618069923..4c1733df68e 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudasize9pt.clo
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudasize9pt.clo
@@ -1,46 +1,45 @@
-%% This is file `tudasize9pt.clo' version 3.41 (2024-07-02),
+%%
+%% This is file `tudasize9pt.clo',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tudasize.dtx (with options: `scrsize,9pt')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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
+%% conditions of the LaTeX Project Public License, either version 1.3c
%% 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.
-%%
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are Marei Peischl <kontakt@peitex.de>.
-%%
-%%
+%%
+%% The Current Maintainer of this work is
+%% Marei Peischl <tuda-ci@peitex.de>
+%%
+%% The development repository can be found at
+%% https://github.com/tudace/tuda_latex_templates
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
\ProvidesFile{%
tudasize9pt.clo%
-}[TUDa-CI \space font size class option %
- (9pt)%
+}[
+ TUDa-CI font size class option (9pt)
]
-\def\normalsize{%
+\let\normalsize\@undefined
+\DeclareRobustCommand\normalsize{%
\@setfontsize\normalsize\@ixpt\@xipt%
\abovedisplayskip 8\p@ \@plus4\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus3\p@
@@ -50,45 +49,55 @@
}
\def\datasize{%
\normalsize
- \@setfontsize\normalsize\@ixpt\@xipt
+ \@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
+\let\small\@undefined
+\DeclareRobustCommand\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
+\let\footnotesize\@undefined
+\DeclareRobustCommand\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}}
+\let\scriptsize\@undefined
+\let\tiny\@undefined
+\let\large\@undefined
+\let\Large\@undefined
+\let\LARGE\@undefined
+\let\huge\@undefined
+\let\Huge\@undefined
+\DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@vipt\@viipt}
+\DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\DeclareRobustCommand\large{\@setfontsize\large\@xpt\@xiipt}
+\DeclareRobustCommand\Large{\@setfontsize\Large\@xipt{13}}
+\DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xiipt{14}}
+\DeclareRobustCommand\huge{\@setfontsize\huge\@xivpt{18}}
+\DeclareRobustCommand\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\dbltextfloatsep{18\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\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}
@@ -97,33 +106,33 @@
\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}
+ \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}
+ \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}
+ \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}
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
\def\@listv {\leftmargin\leftmarginv
- \labelwidth\leftmarginv
- \advance\labelwidth-\labelsep}
+ \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 $
+ \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}%
diff --git a/Master/texmf-dist/tex/latex/tuda-ci/tudathesis.cfg b/Master/texmf-dist/tex/latex/tuda-ci/tudathesis.cfg
index 54ffeeacd0a..43b673d44f0 100644
--- a/Master/texmf-dist/tex/latex/tuda-ci/tudathesis.cfg
+++ b/Master/texmf-dist/tex/latex/tuda-ci/tudathesis.cfg
@@ -1,10 +1,18 @@
-%% This is file `tudathesis.cfg' version 3.41 (2024-07-02),
+%%
+%% This is file `tudathesis.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tuda-ci.dtx (with options: `cfg,tudathesis')
+%%
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
+%%
%% ----------------------------------------------------------------------------
-%%
-%% Copyright (C) 2018--2024 by Marei Peischl <marei@peitex.de>
-%%
+%%
+%% Copyright (C) 2018--2025 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.3c
@@ -13,87 +21,76 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008/05/04 or later.
-%%
+%%
%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainers of this work are
+%%
+%% The Current Maintainer of this work is
%% Marei Peischl <tuda-ci@peitex.de>
-%%
-%% The development respository can be found at
+%%
+%% The development repository can be found at
%% https://github.com/tudace/tuda_latex_templates
%% Please use the issue tracker for feedback!
-%%
+%%
%% ============================================================================
-%%
-\def\fileversion{3.41}
-\def\filedate{2024-07-02}
-\RequirePackage{expl3}
-\ProvidesExplFile{tudathesis.cfg}
-{\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Corporate Design (tuda-ci)}
-
-\RequirePackage{l3keys2e}
-
-
+%%
\tl_new:N \g_ptxcd_thesis_drtext_tl
\clist_if_exist:NF \g_ptxcd_Required_title_data_clist {\clist_new:N \g_ptxcd_Required_title_data_clist}
-%Declare macros for department
\cs_new:Nn \ptxcd_select_department:n {
- \str_case:nnTF {#1} {
- {arch} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Architektur} {Architecture}}
- {bauing} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Bau-~und~Umweltingenieurwissenschaften}{Civil~and~Environmental~Engineering}}
- {bio} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Biologie}{Biology}}
- {chem} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Chemie}{Chemistry}}
- {etit} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Elektrotechnik~und~Informationstechnik}{Electrical~Engineering~and~Information~Technology}}
- {gugw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Gesellschafts-~und~Geschichtswissenschaften}{History~and~Social~Sciences}}
- {humanw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Humanwissenschaften}{Human~Sciences}}
- {inf} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Informatik}{Computer~Science}}
- {mb} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Maschinenbau}{Mechanical~Engineering}}
- {matgeo} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Material-~und~Geowissenschaften}{Materials~and~Earth~Sciences}}
- {math} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Mathematik}{Mathematics}}
- {phys} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Physik}{Physics}}
- {wi} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Rechts-~und~Wirtschaftswissenschaften}{Law~and~Economics}}
- }
- {
- \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
- \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} { \ptxcd_department:{}~ \text_titlecase:n{\departmentname}}
- \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname{}~ of}
- \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:}{\ptxcd_departmentprefix:{}~\ptxcd_department:}
- }
- {\bool_if:NTF \g_ptxcd_dr_bool
- {
- \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
- \gdef\ptxcd_department:{#1}
- \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
- }
- {\ptxcd_select_studyfield:n {#1}}
- }
+ \str_case:nnTF {#1} {
+ {arch} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Architektur} {Architecture}}
+ {bauing} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Bau-~und~Umweltingenieurwissenschaften}{Civil~and~Environmental~Engineering}}
+ {bio} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Biologie}{Biology}}
+ {chem} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Chemie}{Chemistry}}
+ {etit} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Elektrotechnik~und~Informationstechnik}{Electrical~Engineering~and~Information~Technology}}
+ {gugw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Gesellschafts-~und~Geschichtswissenschaften}{History~and~Social~Sciences}}
+ {humanw} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Humanwissenschaften}{Human~Sciences}}
+ {inf} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Informatik}{Computer~Science}}
+ {mb} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Maschinenbau}{Mechanical~Engineering}}
+ {matgeo} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Material-~und~Geowissenschaften}{Materials~and~Earth~Sciences}}
+ {math} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Mathematik}{Mathematics}}
+ {phys} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Physik}{Physics}}
+ {wi} {\ptxcd_declare_caption:Nnn \ptxcd_department: {Rechts-~und~Wirtschaftswissenschaften}{Law~and~Economics}}
+ }
+ {
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} { \ptxcd_department:{}~ \text_titlecase:n{\departmentname}}
+ \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname{}~ of}
+ \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:}{\ptxcd_departmentprefix:{}~\ptxcd_department:}
+ }
+ {\bool_if:NTF \g_ptxcd_dr_bool
+ {
+ \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
+ \gdef\ptxcd_department:{#1}
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
+ {\ptxcd_select_studyfield:n {#1}}
+ }
}
-
\cs_new:Nn \ptxcd_select_studyfield:n {
- \str_case:nnTF {#1} {
- {ce}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Computational\nobreakspace Engineering}{Computational\nobreakspace Engineering}}
- {ese}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Energy~Science~and~Engineering}{Energy~Science~and~Engineering}}
- {ist}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Informationssystemtechnik} {Information~Systems~Technology}}
- {mech}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechanik}{Mechanics}}
- {metro}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechatronik}{Mechatronics}}
- }
- {
- \ptxcd_declare_caption:Nnn \departmentname {Studienbereich} {field~of~study}
- \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} {\departmentname{}:~\ptxcd_department:}
- \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname}
- \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:} {\ptxcd_departmentprefix:{}~``\ptxcd_department:''}
- }
- {
- \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
- \gdef\ptxcd_department:{#1}
- \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
- }
+ \str_case:nnTF {#1} {
+ {ce}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Computational\nobreakspace Engineering}{Computational\nobreakspace Engineering}}
+ {ese}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Energy~Science~and~Engineering}{Energy~Science~and~Engineering}}
+ {ist}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Informationssystemtechnik} {Information~Systems~Technology}}
+ {mech}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechanik}{Mechanics}}
+ {metro}{\ptxcd_declare_caption:Nnn \ptxcd_department: {Mechatronik}{Mechatronics}}
+ }
+ {
+ \ptxcd_declare_caption:Nnn \departmentname {Studienbereich} {field~of~study}
+ \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department:} {\departmentname{}:~\ptxcd_department:}
+ \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix: {im~ \departmentname}{in~the~\departmentname}
+ \ptxcd_declare_caption:Nnn \ptxcd_in_department {\ptxcd_departmentprefix:{}~\ptxcd_department:} {\ptxcd_departmentprefix:{}~``\ptxcd_department:''}
+ }
+ {
+ \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1}
+ \gdef\ptxcd_department:{#1}
+ \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department}
+ }
}
\cs_new:Nn \ptxcd_insert_studentID:n {
- (\ptxcd_studentIDname :\nobreakspace#1)
+ (\ptxcd_studentIDname :\nobreakspace#1)
}
\ptxcd_declare_caption:Nnn \ptxcd_byname {von} {by}
@@ -104,7 +101,6 @@
\ptxcd_declare_caption:Nnn \ptxcd_submissiondatename {Tag~ der~ Einreichung}{Date~ of~ submission}
\ptxcd_declare_caption:Nnn \ptxcd_studentIDname {Matrikelnummer} {Student\nobreakspace ID}
-%Fallback content for box if not overwritten
\newcommand*\ptxcd_box_department {\cs_if_exist_use:NF \departmentfullname {\ptxcd_department:}}
\newcommand*\ptxcd_in_department {}
\newcommand*{\ptxcd_thesisStatus}{}
@@ -112,52 +108,49 @@
\def\@ThesisTypeArticle{die}
\keys_define:nn {ptxcd/thesis} {
- dr .choice:,
- dr/rernat .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)},
- dr/ing .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)},
- dr/phil .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)},
- dr/rerpol .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doctor~rerum~politicarum (Dr. rer. pol.)},
- type .choice:,
- type/sta .code:n = {\def\ptxcd_thesisType{Studienarbeit}
- \clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date}
- \bool_gset_false:N \g_ptxcd_dr_bool
- },
-% type/diplom .code:n = {\def\ptxcd_thesisType{Diplomarbeit}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, reviewer, department}},
- type/bsc .meta:n = {type=bachelor},
- type/bachelor .code:n = {\ptxcd_declare_caption:Nnn \ptxcd_thesisType{Bachelorarbeit}{bachelor~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool},
- type/pp .code:n = { \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Project-Proposal}{project~ proposal}\def\@ThesisTypeArticle{das}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date, department}\bool_gset_false:N \g_ptxcd_dr_bool},
- type/msc .meta:n = {type=master},
- type/master .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Masterarbeit}{master~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool,
- type/dr .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{vorgelegte}{submitted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate , birthplace, department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
- type/drfinal .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{genehmigte}{accepted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate,examdate, birthplace, department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
- type/unknown .code:n = \def\ptxcd_thesisType{#1}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {}\def\@ThesisTypeArticle{die}\bool_gset_false:N \g_ptxcd_dr_bool,
- ignore-missing-data .bool_gset:N = \g_ptxcd_missing_data_warning_bool,
- ignore-missing-data .initial:n = false,
- department .tl_gset:N = \g_ptxcd_department_choice_tl,
- status .code:n = \tl_if_head_is_group:nTF {#1} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus #1 {}} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{#1}{#1}},
- fieldofstudy .meta:n ={department = #1},
- ignore-title-language .bool_gset:N = \g_ptxcd_ignore_title_language_bool,
- ignore-title-language .initial:n ={false},
- noinstbox .bool_gset:N = \g_ptxcd_manual_info_box_bool,
- instbox .bool_gset_inverse:N = \g_ptxcd_manual_info_box_bool,
- instbox .initial:n = true,
- reviewer-on-uppertitleback .bool_gset:N = \g__ptxcd_reviewer_on_uppertitleback_bool,
- reviewer-on-uppertitleback .initial:n = false,
- hide-architecture-note .bool_gset_inverse:N = \g__ptxcd_architecture_note_bool,
- hide-architecture-note .initial:n = false,
- hide-architecture-note .default:n = true,
+ dr .choice:,
+ dr/rernat .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)},
+ dr/ing .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)},
+ dr/phil .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)},
+ dr/rerpol .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doctor~rerum~politicarum (Dr. rer. pol.)},
+ type .choice:,
+ type/sta .code:n = {\def\ptxcd_thesisType{Studienarbeit}
+ \clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date}
+ \bool_gset_false:N \g_ptxcd_dr_bool
+ },
+ type/bsc .meta:n = {type=bachelor},
+ type/bachelor .code:n = {\ptxcd_declare_caption:Nnn \ptxcd_thesisType{Bachelorarbeit}{bachelor~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool},
+ type/pp .code:n = { \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Project-Proposal}{project~ proposal}\def\@ThesisTypeArticle{das}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date, department}\bool_gset_false:N \g_ptxcd_dr_bool},
+ type/msc .meta:n = {type=master},
+ type/master .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Masterarbeit}{master~ thesis}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_ptxcd_dr_bool,
+ type/dr .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{vorgelegte}{submitted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate , department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
+ type/drfinal .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType {Dissertation}{doctoral~ thesis}\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{genehmigte}{accepted}\def\@ThesisTypeArticle{die}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, submissiondate,examdate, department, reviewer}\bool_gset_true:N \g_ptxcd_dr_bool,
+ type/unknown .code:n = \def\ptxcd_thesisType{#1}\clist_gset:Nn \g_ptxcd_Required_title_data_clist {}\def\@ThesisTypeArticle{die}\bool_gset_false:N \g_ptxcd_dr_bool,
+ ignore-missing-data .bool_gset:N = \g_ptxcd_missing_data_warning_bool,
+ ignore-missing-data .initial:n = false,
+ department .tl_gset:N = \g_ptxcd_department_choice_tl,
+ status .code:n = \tl_if_head_is_group:nTF {#1} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus #1 {}} {\ptxcd_declare_caption:Nnn\ptxcd_thesisStatus{#1}{#1}},
+ fieldofstudy .meta:n ={department = #1},
+ ignore-title-language .bool_gset:N = \g_ptxcd_ignore_title_language_bool,
+ ignore-title-language .initial:n ={false},
+ noinstbox .bool_gset:N = \g_ptxcd_manual_info_box_bool,
+ instbox .bool_gset_inverse:N = \g_ptxcd_manual_info_box_bool,
+ instbox .initial:n = true,
+ reviewer-on-uppertitleback .bool_gset:N = \g__ptxcd_reviewer_on_uppertitleback_bool,
+ reviewer-on-uppertitleback .initial:n = false,
+ hide-architecture-note .bool_gset_inverse:N = \g__ptxcd_architecture_note_bool,
+ hide-architecture-note .initial:n = false,
+ hide-architecture-note .default:n = true,
}
-
\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
- \keys_if_exist:nnT {ptxcd/thesis} {#1} {
- \keys_set:nn {ptxcd/thesis} {#1=#2}
- }
+ \keys_if_exist:nnT {ptxcd/thesis} {#1} {
+ \keys_set:nn {ptxcd/thesis} {#1=#2}
+ }
}
\tl_if_empty:NF \g_ptxcd_thesis_options_tl {\keys_set:nV {ptxcd/thesis} \g_ptxcd_thesis_options_tl}
-
\cs_new:Npn \drtext #1 {\tl_gset:Nn \g_ptxcd_thesis_drtext_tl {#1}}
\tl_new:N \g_ptxcd_titleintro_tl
\cs_new:Npn \titleintro #1 {\tl_gset:Nn \g_ptxcd_titleintro_tl {#1}}
@@ -167,28 +160,28 @@
\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 \ptxcd_missing_title_data:n {
- \bool_if:NTF \g_ptxcd_missing_data_warning_bool
- \msg_warning:nnn
- \msg_error:nnn{tudapub/thesis} {required-data-missing} {#1}
+ \bool_if:NTF \g_ptxcd_missing_data_warning_bool
+ \msg_warning:nnn
+ \msg_error:nnn{tudapub/thesis} {required-data-missing} {#1}
}
\cs_new:Nn \ptxcd_check_title_data:Nn {
- \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {#2} {
- \tl_if_empty:NT #1 {
- \bool_if:NTF \g_ptxcd_missing_data_warning_bool
- {\msg_warning:nnn}
- {\msg_error:nnn} {tudapub/thesis} {required-data-missing} {#2}
- }
- }
+ \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {#2} {
+ \tl_if_empty:NT #1 {
+ \bool_if:NTF \g_ptxcd_missing_data_warning_bool
+ {\msg_warning:nnn}
+ {\msg_error:nnn} {tudapub/thesis} {required-data-missing} {#2}
+ }
+ }
}
\cs_generate_variant:Nn \ptxcd_check_title_data:Nn {cn}
\renewcommand*\author[2][]{
- \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#2}
- \tl_if_empty:nTF {#1}
- {\tl_set:Nn \l_ptxcd_signature_tl {#2}}
- {\tl_set:Nn \l_ptxcd_signature_tl {#1}}
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#2}
+ \tl_if_empty:nTF {#1}
+ {\tl_set:Nn \l_ptxcd_signature_tl {#2}}
+ {\tl_set:Nn \l_ptxcd_signature_tl {#1}}
}
\newcommand*{\studentID}[1]{
@@ -198,18 +191,17 @@
\gdef\ptxcd_institution{}
\gdef\ptxcd_institute{}
\gdef\ptxcd_department:{}
-%\gdef\ptxcd_studentID{}
\NewDocumentCommand{\department}{som}{%
- \IfBooleanTF{#1}{
- \tl_gset:Nn \ptxcd_department: {#3}
- \tl_gset:Nn \ptxcd_in_department{#3}
- \IfNoValueTF {#2} {\tl_gset:Nn \ptxcd_box_department {#3}} {\tl_gset:Nn \ptxcd_box_department{#2}}
- \clist_remove_all:Nn \g_ptxcd_Required_title_data_clist {department}
- }{
- \tl_gset:Nn \g_ptxcd_department_choice_tl {#3}
- \IfNoValueF {#2} {\tl_gset:Nn \ptxcd_departmentprefix: {#2}}
- }
+ \IfBooleanTF{#1}{
+ \tl_gset:Nn \ptxcd_department: {#3}
+ \tl_gset:Nn \ptxcd_in_department{#3}
+ \IfNoValueTF {#2} {\tl_gset:Nn \ptxcd_box_department {#3}} {\tl_gset:Nn \ptxcd_box_department{#2}}
+ \clist_remove_all:Nn \g_ptxcd_Required_title_data_clist {department}
+ }{
+ \tl_gset:Nn \g_ptxcd_department_choice_tl {#3}
+ \IfNoValueF {#2} {\tl_gset:Nn \ptxcd_departmentprefix: {#2}}
+ }
}
\newcommand*{\institute}[1]{
@@ -223,117 +215,115 @@
\gdef\ptxcd_birthplace{}
\newcommand*{\birthplace}[1]{%
- \bool_if:NTF \g_ptxcd_dr_bool
- {\gdef\ptxcd_birthplace{#1}}
- {\msg_info:nnn{tudapub/thesis} {dr-field-only} {birthplace}}
+ \bool_if:NTF \g_ptxcd_dr_bool
+ {\gdef\ptxcd_birthplace{#1}}
+ {\msg_info:nnn{tudapub/thesis} {dr-field-only} {birthplace}}
}
\publishers{Darmstadt\bool_if:NT \g_ptxcd_dr_bool {,~Technische~Universität~Darmstadt}}
\seq_new:N \g_ptxcd_reviewer_seq
\NewDocumentCommand{\reviewer}{som}{
- \IfNoValueF {#2} {
- \IfBooleanTF{#1}
- {\setupReviewName*{#2}}
- {\setupReviewName{#2}}
- }
- \tl_if_empty:nTF {#3}
- {\let\@reviewer\@empty}
- {\seq_gset_split:Nnn \g_ptxcd_reviewer_seq {\and} {#3}}
+ \IfNoValueF {#2} {
+ \IfBooleanTF{#1}
+ {\setupReviewName*{#2}}
+ {\setupReviewName{#2}}
+ }
+ \tl_if_empty:nTF {#3}
+ {\let\@reviewer\@empty}
+ {\seq_gset_split:Nnn \g_ptxcd_reviewer_seq {\and} {#3}}
}
\cs_set:Nn \ptxcd_thesis_print_reviewer: {
- \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {reviewer} {
- \seq_if_empty:NT \g_ptxcd_reviewer_seq {\ptxcd_missing_title_data:n {reviewer}}
- }
- \int_zero:N \l_tmpb_int
- \par\vspace*{\baselineskip}
- {
- \seq_map_inline:Nn \g_ptxcd_reviewer_seq
- {
- \int_incr:N \l_tmpb_int
- \cs_if_exist_use:cF {__ptxcd_reviewname_\int_use:N \l_tmpb_int :}
- {\int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\ptxcd_reviewname}}
- :~\exp_not:n {##1}\\
- }
- }
+ \clist_if_in:NnT \g_ptxcd_Required_title_data_clist {reviewer} {
+ \seq_if_empty:NT \g_ptxcd_reviewer_seq {\ptxcd_missing_title_data:n {reviewer}}
+ }
+ \int_zero:N \l_tmpb_int
+ \par\vspace*{\baselineskip}
+ {
+ \seq_map_inline:Nn \g_ptxcd_reviewer_seq
+ {
+ \int_incr:N \l_tmpb_int
+ \cs_if_exist_use:cF {__ptxcd_reviewname_\int_use:N \l_tmpb_int :}
+ {\int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\ptxcd_reviewname}}
+ :~\exp_not:n {##1}\\
+ }
+ }
}
-
\gdef\ptxcd_examdate{}
\newcommand*{\examdate}[1]{
- \bool_if:NTF \g_ptxcd_dr_bool
- {\gdef\ptxcd_examdate{#1}}
- {\msg_info:nnn{tudapub/thesis} {dr-field-only} {examdate}}
+ \bool_if:NTF \g_ptxcd_dr_bool
+ {\gdef\ptxcd_examdate{#1}}
+ {\msg_info:nnn{tudapub/thesis} {dr-field-only} {examdate}}
}
\gdef\ptxcd_submissiondate{}
\newcommand*{\submissiondate}[1]{
- \gdef\ptxcd_submissiondate{#1}
+ \gdef\ptxcd_submissiondate{#1}
}
\gdef\@date{}
\cs_new:Nn \ptxcd_thesis_print_dates:n {
- \bool_set_false:N \l_tmpa_bool
- \tl_if_empty:NF \@date {
- \ptxcd_datename\tl_if_empty:NF \ptxcd_datename {\ptxcd_dateseparator}\@date
- \bool_set_true:N \l_tmpa_bool
- }
- \tl_if_empty:NF \ptxcd_submissiondate {
- \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_submissiondatename\ptxcd_dateseparator\ptxcd_submissiondate
- }
- \tl_if_empty:NF \ptxcd_examdate {
- \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_examdatename\ptxcd_dateseparator\ptxcd_examdate
- }
+ \bool_set_false:N \l_tmpa_bool
+ \tl_if_empty:NF \@date {
+ \ptxcd_datename\tl_if_empty:NF \ptxcd_datename {\ptxcd_dateseparator}\@date
+ \bool_set_true:N \l_tmpa_bool
+ }
+ \tl_if_empty:NF \ptxcd_submissiondate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_submissiondatename\ptxcd_dateseparator\ptxcd_submissiondate
+ }
+ \tl_if_empty:NF \ptxcd_examdate {
+ \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\ptxcd_examdatename\ptxcd_dateseparator\ptxcd_examdate
+ }
}
\tl_new:N \g_ptxcd_license_info_tl
\keys_define:nn {ptxcd/thesis} {
- urn .tl_gset:N =\g_ptxcd_thesis_urn_tl,
- urn .initial:V = \c_empty_tl,
- printid .tl_gset:N = \g_ptxcd_thesis_tuprints_tl,
- printid .initial:V = \c_empty_tl,
- doi .tl_gset:N = \g_ptxcd_thesis_doi_tl,
- year .tl_gset:N = \g_ptxcd_thesis_publication_year_tl,
- year .initial:n = ,
- license .choices:nn = {cc-by-4.0,cc-by-sa-4.0,cc-by-nc-sa-4.0,cc-by-nc-4.0,cc-by-nd-4.0,cc-by-nc-nd-4.0} {
- \tl_gset:Nx \g_ptxcd_license_info_tl {\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl} \exp_not:N \iflanguage{\exp_not:N \bbl@main@language}{}{\exp_not:n {\par\smallskip\otherlanguage{\bbl@main@language}}{\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl}}}}
- },
- license / cc-by-nc-nd-2.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {\use:c {g__ptxcd_cc-by-nc-nd-2.0-de:}},
- license / inc-1.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
- Die~Veröffentlichung~ist~urheberrechtlich~geschützt\newline
- \url{https://rightsstatements.org/page/InC/1.0/}
- },
- license / inc-1.0-en .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
- This~work~is~protected~by~copyright\newline
- \url{https://rightsstatements.org/page/InC/1.0/}
- },
- license / inc-1.0 .code:n = \tl_if_in:NnTF \languagename {german} {\keys_set:nn {ptxcd/thesis}{license=inc-1.0-de}}{\keys_set:nn {ptxcd/thesis}{license=inc-1.0-en}},
- license / initial .code:n = {\keys_set:nn {ptxcd/thesis} {license=cc-by-4.0}},
- license / unknown .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {#1},
- license .initial:n = initial,
- signature .tl_set:N = \l_ptxcd_signature_tl,
- studentID .tl_set:N = \l_ptxcd_studentID_tl,
- studentID .initial:n =,
- signature-image .tl_set:N = \l_ptxcd_signature_image_tl,
- signature-image .initial:n =,
- signature-location .tl_set:N = \l_ptxcd_signature_location_tl,
- signature-location .initial:n = Darmstadt,
+ urn .tl_gset:N =\g_ptxcd_thesis_urn_tl,
+ urn .initial:V = \c_empty_tl,
+ printid .tl_gset:N = \g_ptxcd_thesis_tuprints_tl,
+ printid .initial:V = \c_empty_tl,
+ doi .tl_gset:N = \g_ptxcd_thesis_doi_tl,
+ year .tl_gset:N = \g_ptxcd_thesis_publication_year_tl,
+ year .initial:n = ,
+ license .choices:nn = {cc-by-4.0,cc-by-sa-4.0,cc-by-nc-sa-4.0,cc-by-nc-4.0,cc-by-nd-4.0,cc-by-nc-nd-4.0} {
+ \tl_gset:Nx \g_ptxcd_license_info_tl {\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl} \exp_not:N \iflanguage{\exp_not:N \bbl@main@language}{}{\exp_not:n {\par\smallskip\otherlanguage{\bbl@main@language}}{\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl}}}}
+ },
+ license / cc-by-nc-nd-2.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {\use:c {g__ptxcd_cc-by-nc-nd-2.0-de:}},
+ license / inc-1.0-de .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
+ Die~Veröffentlichung~ist~urheberrechtlich~geschützt\newline
+ \url{https://rightsstatements.org/page/InC/1.0/}
+ },
+ license / inc-1.0-en .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {
+ This~work~is~protected~by~copyright\newline
+ \url{https://rightsstatements.org/page/InC/1.0/}
+ },
+ license / inc-1.0 .code:n = \tl_if_in:NnTF \languagename {german} {\keys_set:nn {ptxcd/thesis}{license=inc-1.0-de}}{\keys_set:nn {ptxcd/thesis}{license=inc-1.0-en}},
+ license / initial .code:n = {\keys_set:nn {ptxcd/thesis} {license=cc-by-4.0}},
+ license / unknown .code:n = \tl_gset:Nn \g_ptxcd_license_info_tl {#1},
+ license .initial:n = initial,
+ signature .tl_set:N = \l_ptxcd_signature_tl,
+ studentID .tl_set:N = \l_ptxcd_studentID_tl,
+ studentID .initial:n =,
+ signature-image .tl_set:N = \l_ptxcd_signature_image_tl,
+ signature-image .initial:n =,
+ signature-location .tl_set:N = \l_ptxcd_signature_location_tl,
+ signature-location .initial:n = Darmstadt,
}
\msg_new:nnnn {tudapub/thesis} {default-license-will-change} {
- TUprints~changed~their~default~license.\\
- tuda-ci~will~adapt~this~change~in~the~next~major~update.~\\
- Please~choose~your~license~manually~to~avoid~unintended~changes.
+TUprints~changed~their~default~license.\\
+tuda-ci~will~adapt~this~change~in~the~next~major~update.~\\
+Please~choose~your~license~manually~to~avoid~unintended~changes.
} {Use~either~the~old~default~value~license=cc-by-nc-nd-2.0-de or~license=cc-by-4.0~or~license={<custom~text>}~with~\string\tuprints.}
-
\cs_new:cn {g__ptxcd_cc-by-nc-nd-2.0-de:} {
- 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/}
+ Die~Veröffentlichung~steht~unter~folgender~Creative~Commons~Lizenz:\\
+ Namensnennung~--~Keine~kommerzielle~Nutzung~--~Keine~Bearbeitung~ 2.0~Deutschland\\
+ \url{https://creativecommons.org/licenses/by-nc-nd/2.0/de/}
}
\defcaptionname{ngerman, german}{\g__ptxcd_cc_attr_by:}{Namensnennung}
@@ -353,68 +343,66 @@
\defcaptionname{english, USenglish, american, UKenglish, british}{\g__ptxcd_cc_sep:}{--}
\cs_new:Nn \g__ptxcd_cc_license:n {
- \group_begin:
- \g__ptxcd_cc_intro:\\
- \seq_set_split:Nnn \l_tmpa_seq {-} {#1}
- \bool_set_false:N \l_tmpa_bool
- \seq_remove_all:Nn \l_tmpa_seq {cc}
- \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl
- \seq_map_inline:Nn \l_tmpa_seq {
- \bool_if:NTF \l_tmpa_bool {\g__ptxcd_cc_sep:} {\bool_set_true:N \l_tmpa_bool}
- \use:c {g__ptxcd_cc_attr_##1:}
- }~\l_tmpa_tl{}~International\\
- \url{https://creativecommons.org/licenses/\seq_use:Nn \l_tmpa_seq {-}/\l_tmpa_tl/}
- \group_end:
+ \group_begin:
+ \g__ptxcd_cc_intro:\\
+ \seq_set_split:Nnn \l_tmpa_seq {-} {#1}
+ \bool_set_false:N \l_tmpa_bool
+ \seq_remove_all:Nn \l_tmpa_seq {cc}
+ \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl
+ \seq_map_inline:Nn \l_tmpa_seq {
+ \bool_if:NTF \l_tmpa_bool {\g__ptxcd_cc_sep:} {\bool_set_true:N \l_tmpa_bool}
+ \use:c {g__ptxcd_cc_attr_##1:}
+ }~\l_tmpa_tl{}~International\\
+ \url{https://creativecommons.org/licenses/\seq_use:Nn \l_tmpa_seq {-}/\l_tmpa_tl/}
+ \group_end:
}
-
\newcommand{\tuprints}[1]{%
\tl_if_in:nnTF {#1} {=}
- {\keys_set:nn {ptxcd/thesis} {#1}}
- {\keys_set:nn {ptxcd/thesis} {printid=#1}}
+ {\keys_set:nn {ptxcd/thesis} {#1}}
+ {\keys_set:nn {ptxcd/thesis} {printid=#1}}
\lowertitleback{
- \urlstyle{same}
- \selectlanguage{german}
- Bitte~zitieren~Sie~dieses~Dokument~als:
+ \urlstyle{same}
+ \selectlanguage{german}
+ Bitte~zitieren~Sie~dieses~Dokument~als:
\tl_if_empty:NF \g_ptxcd_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_ptxcd_thesis_urn_tl}\\
URL:~\url{https://tuprints.ulb.tu-darmstadt.de/\g_ptxcd_thesis_tuprints_tl}\\
- \tl_if_empty:NF \g_ptxcd_thesis_doi_tl {DOI:~\url{https://doi.org/\g_ptxcd_thesis_doi_tl}\\}
- \tl_if_empty:NF \g_ptxcd_thesis_publication_year_tl {Jahr~der~Veröffentlichung~auf~TUprints:~\g_ptxcd_thesis_publication_year_tl}
- \par\vspace{\baselineskip}
+ \tl_if_empty:NF \g_ptxcd_thesis_doi_tl {DOI:~\url{https://doi.org/\g_ptxcd_thesis_doi_tl}\\}
+ \tl_if_empty:NF \g_ptxcd_thesis_publication_year_tl {Jahr~der~Veröffentlichung~auf~TUprints:~\g_ptxcd_thesis_publication_year_tl}
+ \par\vspace{\baselineskip}
Dieses~Dokument~wird~bereitgestellt~von~tuprints,\\
E-Publishing-Service~der~TU~Darmstadt\\
\url{https://tuprints.ulb.tu-darmstadt.de}\\
- \url{tuprints@ulb.tu-darmstadt.de}\\[2\baselineskip]
- \tl_if_empty:NF \g_ptxcd_license_info_tl {\\[2\baselineskip]\g_ptxcd_license_info_tl}
+ \url{tuprints@ulb.tu-darmstadt.de}\\[2\baselineskip]
+ \tl_if_empty:NF \g_ptxcd_license_info_tl {\\[2\baselineskip]\g_ptxcd_license_info_tl}
}%
}
\gdef\@subject{
- \text_titlecase_first:n{\tl_if_empty:NF \ptxcd_thesisStatus {\ptxcd_thesisStatus{}~}\ptxcd_thesisType}~
- \tl_if_empty:NF \ptxcd_in_department {\ptxcd_in_department{}~}
- \seq_if_empty:NF \g_ptxcd_author_seq {\ptxcd_byname\nobreakspace\@author}
- \tl_if_empty:NF \ptxcd_birthplace {\space\ptxcd_fromname\space\ptxcd_birthplace}
- \tl_if_empty:NF \l_ptxcd_studentID_tl {\space\ptxcd_insert_studentID:n {\l_ptxcd_studentID_tl}}
+ \text_titlecase_first:n{\tl_if_empty:NF \ptxcd_thesisStatus {\ptxcd_thesisStatus{}~}\ptxcd_thesisType}~
+ \tl_if_empty:NF \ptxcd_in_department {\ptxcd_in_department{}~}
+ \seq_if_empty:NF \g_ptxcd_author_seq {\ptxcd_byname\nobreakspace\@author}
+ \tl_if_empty:NF \ptxcd_birthplace {\space\ptxcd_fromname\space\ptxcd_birthplace}
+ \tl_if_empty:NF \l_ptxcd_studentID_tl {\space\ptxcd_insert_studentID:n {\l_ptxcd_studentID_tl}}
}
\uppertitleback{
- \liningnums
- \raggedright
- \@title\par\@subtitle
- \par\vspace*{\baselineskip}
- %ignore birthplace on english subject
- \let\ptxcd_birthplace\@empty
- \@subject
- \bool_if:NT \g__ptxcd_reviewer_on_uppertitleback_bool
- \ptxcd_thesis_print_reviewer:
- \exp_args:Nx \tl_if_empty:nF {\@date\ptxcd_submissiondate}{
- \par\vspace*{\baselineskip}
- \ptxcd_thesis_print_dates:n {\\}
- }
- \tl_if_empty:NF \@publishers {
- \par\vspace*{\baselineskip}
- \@publishers
- }
+ \liningnums
+ \raggedright
+ \@title\par\@subtitle
+ \par\vspace*{\baselineskip}
+ \let\ptxcd_birthplace\@empty
+ \@subject
+ \bool_if:NT \g__ptxcd_reviewer_on_uppertitleback_bool
+ \ptxcd_thesis_print_reviewer:
+ \exp_args:Nx \tl_if_empty:nF {\@date\ptxcd_submissiondate}{
+ \par\vspace*{\baselineskip}
+ \ptxcd_thesis_print_dates:n {\\}
+ }
+ \tl_if_empty:NF \@publishers {
+ \par\vspace*{\baselineskip}
+ \@publishers
+ }
}
%%Studienbereich (field of study):
@@ -423,12 +411,6 @@
%%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}
@@ -439,254 +421,254 @@
\box_new:N \g_ptxcd_thesis_institution_box
-% The following macro is an adapted version of the corresponding KOMA-Script macro
-% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+%% The following macro is an adapted version of the corresponding KOMA-Script macro
+%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
\renewcommand*{\maketitle}[1][1]{
- \bool_if:NF \g_ptxcd_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/thesis} {unsupported-title-language} {\languagename}
- }
- }
- \exp_args:NV \ptxcd_select_department:n \g_ptxcd_department_choice_tl
- \clist_map_inline:nn {author, date} {
- \ptxcd_check_title_data:cn {@##1} {##1}
- }
- \clist_map_inline:nn {examdate, birthplace, group, department, institution} {
- \ptxcd_check_title_data:cn {TUDa@##1} {##1}
- }
- \cs_if_exist_use:N \ptxcd_pass_TitleData:
- \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
- }%
- \ptxcd_disable_marginpar:
- \cleardoublepage
- \begin{titlepage}
- \setcounter{page}{%
- #1%
- }%
- \def\thefootnote{\fnsymbol{footnote}}
- \if@titlepageiscoverpage
- \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
- \ptxcd_setup_sponsor_box:
- \hbox_gset:Nn \g_ptxcd_title_box {
- \parbox[t]{\linewidth}{
- \begin{minipage}[b]{\bool_if:NT \g__ptxcd_LogoInHead_bool {.75}\linewidth}
- \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
- \tl_if_empty:NF \@titlehead {
- \begin{addmargin}{3mm}
- {\usekomafont{titlehead}{\@titlehead\par}}
- \end{addmargin}
- }
- \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
- \raggedright
- \leavevmode\usekomafont{title}
- \expandafter\fontsize\ptxcd_title_fontsize:
- \selectfont
- \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
- \@title\strut
- \par
- \box_if_empty:NTF \g_ptxcd_PaperID_box
- {\vskip0pt}
- {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
- \end{addmargin}
- \end{minipage}%
- \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
- \par\nointerlineskip
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
- \begin{addmargin}{3mm}
- \usekomafont{titleinfo}
- \raggedright
- \expandafter\fontsize\ptxcd_titleinfo_fontsize:
- \selectfont
- {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
- \usekomafont{subject}
- \bool_if:NT \g_ptxcd_dr_bool {\selectlanguage{german}}
- \tl_if_empty:NF \g_ptxcd_titleintro_tl {\g_ptxcd_titleintro_tl\par}
- \tl_if_empty:NF \g_ptxcd_thesis_drtext_tl {\g_ptxcd_thesis_drtext_tl\par}
- {%
- \usekomafont{author}
- \lineskip 0.75em
- \@subject
- \par
- }%
- {\usekomafont{date}{\ptxcd_thesis_print_dates:n {,~}\par}}%
- \ptxcd_thesis_print_reviewer:\par
- {\usekomafont{publishers}{\@publishers \par}}%
- \tl_if_empty:NF \g_ptxcd_titleaddendum_tl {\g_ptxcd_titleaddendum_tl\par}
- \end{addmargin}
- \tl_if_empty:NF \@thanks {
- \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
- \begin{addmargin}{3mm}
- \let\footnotetext\ptxcd_title@footnote
- \@thanks
- \end{addmargin}
- \par\vspace{-\dp\strutbox}
- }
- \normalcolor
- \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
- }
- }
- \let\@thanks\@empty
- \bool_if:NF \g_ptxcd_manual_info_box_bool {
- \exp_args:Nf \tl_if_empty:nF {\ptxcd_institution\ptxcd_department:\ptxcd_institute\ptxcd_group} {
- \addTitleBox{
- \setlength{\parskip}{\c_ptxcd_rulesep_dim}
- \tl_if_empty:NF \ptxcd_institution {\ptxcd_institution\par}
- \tl_if_empty:NF \ptxcd_box_department {\ptxcd_box_department\par}
- \tl_if_empty:NF \ptxcd_institute {\ptxcd_institute\par}
- \tl_if_empty:NF \ptxcd_group {\ptxcd_group}
- }}
- }
- \ptxcd_adjust_titlepage_style:
- \thispagestyle{title.TUDa}
- \nointerlineskip\box_use:N \g_ptxcd_title_box
- \par
- \vfill
- \box_if_empty:NTF \g_ptxcd_sponsor_box {
- \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
- }{
- \box_use:N \g_ptxcd_sponsor_box
- }
- \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_ptxcd_thesis_urn_tl\g_ptxcd_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
- \ptxcd_restore_typearea:
- \aftergroup\ptxcd_restore_typearea:
+ \bool_if:NF \g_ptxcd_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/thesis} {unsupported-title-language} {\languagename}
+ }
+ }
+ \exp_args:NV \ptxcd_select_department:n \g_ptxcd_department_choice_tl
+ \clist_map_inline:nn {author, date} {
+ \ptxcd_check_title_data:cn {@##1} {##1}
+ }
+ \clist_map_inline:nn {examdate, birthplace, group, department, institution} {
+ \ptxcd_check_title_data:cn {TUDa@##1} {##1}
+ }
+ \cs_if_exist_use:N \ptxcd_pass_TitleData:
+ \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
+ }%
+ \ptxcd_disable_marginpar:
+ \cleardoublepage
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\fnsymbol{footnote}}
+ \if@titlepageiscoverpage
+ \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
+ \ptxcd_setup_sponsor_box:
+ \hbox_gset:Nn \g_ptxcd_title_box {
+ \parbox[t]{\linewidth}{
+ \begin{minipage}[b]{\bool_if:NT \g__ptxcd_logo_head_bool {.75}\linewidth}
+ \bool_lazy_and:nnT {\g_ptxcd_colorback_bool} {\g_ptxcd_colorbacktitle_bool} {\color{textonaccentcolor}}
+ \tl_if_empty:NF \@titlehead {
+ \begin{addmargin}{3mm}
+ {\usekomafont{titlehead}{\@titlehead\par}}
+ \end{addmargin}
+ }
+ \begin{addmargin}[\dim_eval:n {\box_if_empty:NF \g_ptxcd_PaperID_box {\box_wd:N\g_ptxcd_PaperID_box+.5\c_ptxcd_logoheight_dim} +3mm}]{3mm}
+ \raggedright
+ \leavevmode\usekomafont{title}
+ \expandafter\fontsize\ptxcd_title_fontsize:
+ \selectfont
+ \llap{\raisebox{\dimexpr-\height+.5\baselineskip}[0pt][0pt]{\box_use:N \g_ptxcd_PaperID_box}\hspace{.5\c_ptxcd_logoheight_dim}}
+ \@title\strut
+ \par
+ \box_if_empty:NTF \g_ptxcd_PaperID_box
+ {\vskip0pt}
+ {\rule{0pt}{.5\c_ptxcd_logoheight_dim}}
+ \end{addmargin}
+ \end{minipage}%
+ \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}}
+ \par\nointerlineskip
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim}
+ \begin{addmargin}{3mm}
+ \usekomafont{titleinfo}
+ \raggedright
+ \expandafter\fontsize\ptxcd_titleinfo_fontsize:
+ \selectfont
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ \usekomafont{subject}
+ \bool_if:NT \g_ptxcd_dr_bool {\selectlanguage{german}}
+ \tl_if_empty:NF \g_ptxcd_titleintro_tl {\g_ptxcd_titleintro_tl\par}
+ \tl_if_empty:NF \g_ptxcd_thesis_drtext_tl {\g_ptxcd_thesis_drtext_tl\par}
+ {%
+ \usekomafont{author}
+ \lineskip 0.75em
+ \@subject
+ \par
+ }%
+ {\usekomafont{date}{\ptxcd_thesis_print_dates:n {,~}\par}}%
+ \ptxcd_thesis_print_reviewer:\par
+ {\usekomafont{publishers}{\@publishers \par}}%
+ \tl_if_empty:NF \g_ptxcd_titleaddendum_tl {\g_ptxcd_titleaddendum_tl\par}
+ \end{addmargin}
+ \tl_if_empty:NF \@thanks {
+ \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\par
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ \begin{addmargin}{3mm}
+ \let\footnotetext\ptxcd_title@footnote
+ \@thanks
+ \end{addmargin}
+ \par\vspace{-\dp\strutbox}
+ }
+ \normalcolor
+ \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par
+ }
+ }
+ \let\@thanks\@empty
+ \bool_if:NF \g_ptxcd_manual_info_box_bool {
+ \exp_args:Nf \tl_if_empty:nF {\ptxcd_institution\ptxcd_department:\ptxcd_institute\ptxcd_group} {
+ \addTitleBox{
+ \setlength{\parskip}{\c_ptxcd_rulesep_dim}
+ \tl_if_empty:NF \ptxcd_institution {\ptxcd_institution\par}
+ \tl_if_empty:NF \ptxcd_box_department {\ptxcd_box_department\par}
+ \tl_if_empty:NF \ptxcd_institute {\ptxcd_institute\par}
+ \tl_if_empty:NF \ptxcd_group {\ptxcd_group}
+ }}
+ }
+ \ptxcd_adjust_titlepage_style:
+ \thispagestyle{title.TUDa}
+ \nointerlineskip\box_use:N \g_ptxcd_title_box
+ \par
+ \vfill
+ \box_if_empty:NTF \g_ptxcd_sponsor_box {
+ \raisebox{-\c_ptxcd_rulesep_dim}[0pt][0pt]{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}
+ }{
+ \box_use:N \g_ptxcd_sponsor_box
+ }
+ \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_ptxcd_thesis_urn_tl\g_ptxcd_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
+ \ptxcd_restore_typearea:
+ \aftergroup\ptxcd_restore_typearea:
}
\newcommand*{\@ThesisType}{\ptxcd_thesisType}
\bool_if:NTF \g_ptxcd_dr_bool {
- \keys_define:nn {ptxcd/thesis} {
- affidavit .choices:nn = {dr}{\tl_gset_eq:NN \g__ptxcd_affidavit_version_tl \l_keys_choice_tl},
- affidavit / default .meta:n = {affidavit=dr},
- affidavit .initial:n = dr,
- }
+ \keys_define:nn {ptxcd/thesis} {
+ affidavit .choices:nn = {dr}{\tl_gset_eq:NN \g__ptxcd_affidavit_version_tl \l_keys_choice_tl},
+ affidavit / default .meta:n = {affidavit=dr},
+ affidavit .initial:n = dr,
+ }
} {
- \keys_define:nn {ptxcd/thesis} {
- affidavit .choices:nn = {digital,print}{\tl_gset_eq:NN \g__ptxcd_affidavit_version_tl \l_keys_choice_tl},
- affidavit / default .meta:n = {affidavit=digital},
- affidavit .initial:n = default,
- }
+ \keys_define:nn {ptxcd/thesis} {
+ affidavit .choices:nn = {digital,print}{\tl_gset_eq:NN \g__ptxcd_affidavit_version_tl \l_keys_choice_tl},
+ affidavit / default .meta:n = {affidavit=digital},
+ affidavit / hide-architecture-note .meta:n = {hide-architecture-note},
+ affidavit .initial:n = default,
+ }
}
-
\NewDocumentCommand{\affidavit}{so}{%
- \IfNoValueF {#2} {%
- \tl_if_in:nnTF {#2} {=}
- {\keys_set:nn {ptxcd/thesis} {#2}}
- {\keys_set:nn {ptxcd/thesis} {affidavit=#2}}%
- }%
- \clearpage
-\begin{otherlanguage}{german}
- \bool_if:NTF \g_ptxcd_dr_bool {
- \g__ptxcd_affidavit_dr_tl
- } {
- \tl_use:c {g__ptxcd_affidavit_\g__ptxcd_affidavit_version_tl _tl}
- }
-\par
-\bigskip
-\AffidavitSignature
-\end{otherlanguage}
-\IfBooleanF{#1}{\clearpage}
+ \IfNoValueF {#2} {%
+ \tl_if_in:nnTF {#2} {=}
+ {\keys_set:nn {ptxcd/thesis} {#2}}
+ {\keys_set:nn {ptxcd/thesis} {affidavit=#2}}%
+ }%
+ \clearpage
+ \begin{otherlanguage}{german}
+ \bool_if:NTF \g_ptxcd_dr_bool {
+ \g__ptxcd_affidavit_dr_tl
+ } {
+ \tl_use:c {g__ptxcd_affidavit_\g__ptxcd_affidavit_version_tl _tl}
+ }
+ \par
+ \bigskip
+ \AffidavitSignature
+ \end{otherlanguage}
+ \IfBooleanF{#1}{\clearpage}
}
\ExplSyntaxOff
\expandafter\def\csname g__ptxcd_affidavit_dr_tl\endcsname {%
- \section*{Erklärungen laut Promotionsordnung}
- \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.
+ \section*{Erklärungen laut Promotionsordnung}
+ \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 – abgesehen von den in ihr ausdrücklich genannten Hilfen – selbstständig verfasst wurde und dass die „Grundsätze zur Sicherung guter wissenschaftlicher Praxis an der Technischen Universität Darmstadt“ und die „Leitlinien zum Umgang mit digitalen Forschungsdaten an der TU Darmstadt“ in den jeweils aktuellen Versionen bei der Verfassung der Dissertation beachtet wurden.
+ \subsection*{\S\,9 Abs. 1 PromO}
+ Ich versichere hiermit, dass die vorliegende Dissertation – abgesehen von den in ihr ausdrücklich genannten Hilfen – selbstständig verfasst wurde und dass die „Grundsätze zur Sicherung guter wissenschaftlicher Praxis an der Technischen Universität Darmstadt“ und die „Leitlinien zum Umgang mit digitalen Forschungsdaten an der TU Darmstadt“ in den jeweils aktuellen Versionen bei der Verfassung der Dissertation beachtet wurden.
- \subsection*{\S\,9 Abs. 2 PromO}
- Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient.
+ \subsection*{\S\,9 Abs. 2 PromO}
+ Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient.
}
-% Quelle: https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp
+%% Quelle: https://www.tu-darmstadt.de/studieren/studierende_tu/studienorganisation_und_tucan/hilfe_und_faq/artikel_details_de_en_37824.de.jsp
\expandafter\def\csname g__ptxcd_affidavit_digital_tl\endcsname {%
- \subsection*{Erklärung zur Abschlussarbeit gemäß \S\,22~Abs.~7~APB TU~Darmstadt}
- \begin{sloppypar}%
- Hiermit erkläre ich, \@author, dass ich die vorliegende Arbeit gemäß \S\,22~Abs.~7~APB der TU Darmstadt selbstständig, ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt habe.
- Ich habe mit Ausnahme der zitierten Literatur und anderer in der Arbeit genannter Quellen keine fremden Hilfsmittel benutzt. Die von mir bei der Anfertigung dieser wissenschaftlichen Arbeit wörtlich oder inhaltlich benutzte Literatur und alle anderen Quellen habe ich im Text deutlich gekennzeichnet und gesondert aufgeführt. Dies gilt auch für Quellen oder Hilfsmittel aus dem Internet.
- \end{sloppypar}%
- \par
- Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
- \par
- Mir ist bekannt, dass im Falle 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.
- \csname bool_if:cT\endcsname {g__ptxcd_architecture_note_bool} {%
- \par
- Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
- }
+ \subsection*{Erklärung zur Abschlussarbeit gemäß \S\,22~Abs.~7~APB TU~Darmstadt}
+ \begin{sloppypar}%
+ Hiermit erkläre ich, \@author, dass ich die vorliegende Arbeit gemäß \S\,22~Abs.~7~APB der TU Darmstadt selbstständig, ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt habe.
+ Ich habe mit Ausnahme der zitierten Literatur und anderer in der Arbeit genannter Quellen keine fremden Hilfsmittel benutzt. Die von mir bei der Anfertigung dieser wissenschaftlichen Arbeit wörtlich oder inhaltlich benutzte Literatur und alle anderen Quellen habe ich im Text deutlich gekennzeichnet und gesondert aufgeführt. Dies gilt auch für Quellen oder Hilfsmittel aus dem Internet.
+ \end{sloppypar}%
+ \par
+ Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
+ \par
+ Mir ist bekannt, dass im Falle 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.
+ \csname bool_if:cT\endcsname {g__ptxcd_architecture_note_bool} {%
+ \par
+ Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
+ }
}
\ExplSyntaxOn
@@ -694,93 +676,92 @@
\cs_set_eq:NN \g__ptxcd_affidavit_print_tl \g__ptxcd_affidavit_digital_tl
\NewDocumentEnvironment{affidavit*}{om}{
- \IfNoValueF {#1} {\begin{otherlanguage}{#1}}
- \section*{#2}
-}{
- \IfNoValueF {#1} {\end{otherlanguage}}
+ \IfNoValueF {#1} {\begin{otherlanguage}{#1}}
+ \section*{#2}
+ }{
+ \IfNoValueF {#1} {\end{otherlanguage}}
}
\NewDocumentCommand{\AffidavitSignature}{o}{
- \par
- \begingroup
- \IfNoValueF {#1} {%
- \tl_if_in:nnTF {#1} {=}
- {\keys_set:nn {ptxcd/thesis} {#1}}
- {\keys_set:nn {ptxcd/thesis} {signature-location=#1}}%
- }%
- \tl_if_empty:NT \l_ptxcd_signature_image_tl {\bigskip}
- \noindent \l_ptxcd_signature_location_tl,~ \ptxcd_submissiondate\hfill
- \SignatureBox{\l_ptxcd_signature_tl}
- \endgroup
- \\\strut
+ \par
+ \begingroup
+ \IfNoValueF {#1} {%
+ \tl_if_in:nnTF {#1} {=}
+ {\keys_set:nn {ptxcd/thesis} {#1}}
+ {\keys_set:nn {ptxcd/thesis} {signature-location=#1}}%
+ }%
+ \tl_if_empty:NT \l_ptxcd_signature_image_tl {\bigskip}
+ \noindent \l_ptxcd_signature_location_tl,~ \ptxcd_submissiondate\hfill
+ \SignatureBox{\l_ptxcd_signature_tl}
+ \endgroup
+ \\\strut
}
\newcommand*{\SignatureBox}[2][5cm]{\parbox[t]{#1}{\centering
- \tl_if_empty:NF \l_ptxcd_signature_image_tl
- {\let\width\linewidth\l_ptxcd_signature_image_tl\par\nointerlineskip}
- \rule{\linewidth}{.3pt}\\\makebox[0pt][c]{#2}}
+ \tl_if_empty:NF \l_ptxcd_signature_image_tl
+ {\let\width\linewidth\l_ptxcd_signature_image_tl\par\nointerlineskip}
+ \rule{\linewidth}{.3pt}\\\makebox[0pt][c]{#2}}
}
-%messages:
\msg_new:nnn{tudapub/thesis} {dr-field-only} {
- You~submitted~#1~data~for~title~information.\\
- This~field~is~only~used~for~type=dr/drfinal.\\
- It~will~be~ignored.
+ You~submitted~#1~data~for~title~information.\\
+ This~field~is~only~used~for~type=dr/drfinal.\\
+ It~will~be~ignored.
}
\msg_new:nnn{tudapub/thesis} {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.
+ 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/thesis} {unsupported-title-language} {
- You~chose~an~unsupported~language~"#1".\\
- \string\maketitle\ ~ist~not~configured~for~this~language.
+\msg_new:nnnn{tudapub/thesis} {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.
+ You~can~manually~configure~it,~as~described~in~tudathesis~documentation.\\
+ Use~"ignore-title-language"~Option~to~ignore~this~message~at~your~own~risk.
}
\PassOptionsToPackage{german}{babel}
\AtBeginDocument{
- \@ifpackageloaded{babel}{}{
- \msg_new:nnnn{tudapub/thesis} {missing-babel} {
- The~babel~package~is~not~loaded.\\
- Please~load~babel~with~option\\
- main=<main~language~of~your~document>\\
- to~ensure~correct~hyphenation.
- }{
- I~will~use~a~workaround~(redefine~\string\otherlanguagen)~to~be~able~to~compile,~but~can't~configure~hyphenation~correctly.
- }
- \msg_warning:nn {tudapub/thesis} {missing-babel}
- \renewenvironment{otherlanguage}[1]{}{}
- }
-}
-
-% Fallback mechanism for older l3 kernels
+ \@ifpackageloaded{babel}{}{
+ \msg_new:nnnn{tudapub/thesis} {missing-babel} {
+ The~babel~package~is~not~loaded.\\
+ Please~load~babel~with~option\\
+ main=<main~language~of~your~document>\\
+ to~ensure~correct~hyphenation.
+ }{
+ I~will~use~a~workaround~(redefine~\string\otherlanguagen)~to~be~able~to~compile,~but~can't~configure~hyphenation~correctly.
+ }
+ \msg_warning:nn {tudapub/thesis} {missing-babel}
+ \renewenvironment{otherlanguage}[1]{}{}
+ }
+}
+
\cs_if_exist:NF \text_titlecase:n {
- \cs_set_eq:NN \text_titlecase:n \tl_mixed_case:n
+ \cs_set_eq:NN \text_titlecase:n \tl_mixed_case:n
}
\seq_new:N \g_ptxcd_reviewer_name_seq
\NewDocumentCommand{\setupReviewName}{som}{
- \IfBooleanTF {#1} {
- \clist_map_inline:nn {#3} {
- \int_incr:N \l_tmpb_int
- \cs_set:cn {__ptxcd_reviewname_\int_use:N \l_tmpb_int :} {##1}
- }
- } {
- \IfNoValueTF {#2} {
- \cs_set:Npn \ptxcd_reviewname {#3}
- } {
- \ifnum #2 > 0
- \cs_set:cn {__ptxcd_reviewname_#2:}
- {#3}
- \fi
- }
- }
+ \IfBooleanTF {#1} {
+ \clist_map_inline:nn {#3} {
+ \int_incr:N \l_tmpb_int
+ \cs_set:cn {__ptxcd_reviewname_\int_use:N \l_tmpb_int :} {##1}
+ }
+ } {
+ \IfNoValueTF {#2} {
+ \cs_set:Npn \ptxcd_reviewname {#3}
+ } {
+ \ifnum #2 > 0
+ \cs_set:cn {__ptxcd_reviewname_#2:}
+ {#3}
+ \fi
+ }
+ }
}
-
\endinput
+%%
+%% End of file `tudathesis.cfg'.