summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
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 /Master/texmf-dist/tex/latex
parent7a71e4e9a233a73cbd9626dc9d8cfd12c9bd6153 (diff)
tuda-ci (27jan25)
git-svn-id: svn://tug.org/texlive/trunk@73608 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-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
35 files changed, 6265 insertions, 6359 deletions
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'.