diff options
author | Norbert Preining <norbert@preining.info> | 2020-09-09 03:03:16 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-09-09 03:03:16 +0000 |
commit | 4b315627efc5a6beb1e6c6ec7a98779f215c75eb (patch) | |
tree | cf65539a3758192b9bfbaea63d1962f28ec32a3e /macros/latex/contrib/tuda-ci | |
parent | bc2d0660f4f460b55009ab4e525f2a0e4cde6187 (diff) |
CTAN sync 202009090303
Diffstat (limited to 'macros/latex/contrib/tuda-ci')
55 files changed, 3188 insertions, 2666 deletions
diff --git a/macros/latex/contrib/tuda-ci/README.md b/macros/latex/contrib/tuda-ci/README.md index cfcffa8459..4c6724968f 100644 --- a/macros/latex/contrib/tuda-ci/README.md +++ b/macros/latex/contrib/tuda-ci/README.md @@ -2,7 +2,7 @@ Copyright (C) Marei Peischl <marei@peitex.de>, 2018–2020 - tuda-ci 2020/06/12 v2.11 + tuda-ci 2020/09/08 v3.00 *************************************************************************** @@ -27,7 +27,7 @@ Derzeit existieren diese Templates nur in Deutscher Sprache. Die Richtlinien des Corporate Designs (https://www.intern.tu-darmstadt.de/media/medien_stabsstelle_km/services/medien_cd/das_bild_der_tu_darmstadt.pdf), sowie die Anforderungen der Universitätsbibliothek erfordern einige spezielle Konfigurationen. Beispielsweise ist für wissenschaftliche Veröffentlichungen und Abschlussarbeiten die Erzeugung einer archivierbaren PDF-Datei (PDF/A) vorgesehen. Dies ist mit aktuellen LaTeX-Paketen und dem Compiler LuaLaTeX deutlich konsequenter umzusetzen. Aus diesem Grund wird empfohlen, die verwendete Distribution vorab zu aktualisieren und LuaLaTeX zu verwenden. -Weitere Hinweise finden sich in den Beispieldateien dokumentiert. +Weitere Hinweise finden sich in den Beispieldateien dokumentiert. Diese sind auch als kompilierte PDFs unter http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc oder – falls das Paket installiert ist – im ensprechenden Doku-Verzeichnis (<Pfad zu Ihrer LaTeX-Installation>/doc/latex/tuda-ci) verfügbar. ## Abhängigkeiten Das Bundle verwendet Pakete der Standard-LaTeX-Distributionen. Bei der Verwendung von paketierten Versionen über die Linux-Paketverwaltung kann dies ggf. zu Schwierigkeiten führen. @@ -197,3 +197,8 @@ leaflets | DEMO-TUDaLeaflet.tex | tudaleaflet.cls - fixing marginpar alignment * v2.11 (2020-06-12) add translation for ThesisStatus - add option for a custom status + * v3.00 (2020-09-08) + - feature enhancement for more flexible usage and department specific requirements + - introduce department specific mode *mecheng* + - restructure internals (ptxcd module) + diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf Binary files differindex 5923462a94..50213a8ac9 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf Binary files differindex 34994d01fe..68764d87f6 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf Binary files differindex 871c6e49fa..f3c103b9e4 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf Binary files differindex 289247f768..d69a00ec77 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf Binary files differindex a6e907d2a8..df674ecd0f 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf Binary files differindex 94cc8cd817..09ef857e5b 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf Binary files differindex 7eb37d8519..99febac9d2 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf Binary files differindex daba90acc6..03643e3c5b 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf Binary files differindex 2dd1e323ce..dc0aa5e068 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf Binary files differindex aaf35c3331..1bae4c4b70 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf Binary files differindex f68d00fdfc..573843d80c 100644 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf +++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis_maschbau.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis_maschbau.pdf Binary files differdeleted file mode 100644 index f2e444523c..0000000000 --- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis_maschbau.pdf +++ /dev/null diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex index fdd98f0064..247edf87f7 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaAnnouncement.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaAnnouncement.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex index ada1417fbc..bbbad88530 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaBeamer.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaBeamer.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -75,7 +79,7 @@ \item Verwendung wie beamer \item keine besondere Syntax notwendig \item Klassenoption accentcolor wählt Akzentfarbe - \item Option serif=true für Serifenschrift + \item Option serif=true für Serifen \end{itemize} \end{frame} @@ -154,5 +158,37 @@ Ein Beispiel. \end{verbatim} Allgemein kann jedoch die Mathematikschriftart wie auch sonst durch Pakete angepasst werden. \end{frame} + + +\begin{frame}[fragile]{Spezielle Anpassungen des Fachbereichs Maschinenbau} + Mit Version 3.0 wird TUDa-CI um die Anpassungen des Corporate Designs des Fachbereichs Maschinenbau ergänzt. + Daher verfügt tudabeamer nun ebenfalls über die Option + \begin{verbatim} + department=mecheng + \end{verbatim} + oder kurz + \begin{verbatim} + mecheng + \end{verbatim} + Dieser Modus setzt automatisch alle notwendigen Änderungen, benötigt jedoch die zusätzlichen Logos. + + Falls das Logo des Fachbereichs nicht vorliegt, kann durch die Option + \begin{verbatim} + departmentlogo=example-image + \end{verbatim} ein Beispielbild statt des Logos verwendet werden. +\end{frame} + +\begin{frame}[fragile]{mecheng: Hintergrundfarbe} + Diese Variante des Corporate Designs erlaubt es zusätzlich die Hintergrundfarbe der einzelnen Folien zu verändern. Hierfür wurden die Frames um die Option \code{bgcolor} erweitert. Um in die beiden Voreingestellten Modi zu wechseln, gibt es die Konfiguration + \begin{verbatim} + bgcolor=Primary1 + \end{verbatim} + oder + \begin{verbatim} + bgcolor=Primary2 + \end{verbatim} + Damit wird auch die Textfarbe entsprechend der Vorgaben gewählt. Bei Auswahl einer abweichenden Farbe bleibt die Textfarbe unverändert und muss ggf. manuell angepasst werden. +\end{frame} + \end{document} diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib index 5c4ead9e90..9f46ebad38 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaBibliography.bib' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaBibliography.bib' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex index cac6446609..2792e0dbd1 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaExercise.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaExercise.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -50,14 +54,11 @@ headline={title-name-id} } -%compatbilitx -\let\unit\relax - \begin{document} \title[Übung TUDaExercise]{Übung zur Benutzung der TUDaExercise-Klasse} \author{Marei Peischl} -\term{Sommersemester 2042} +\term{Sommersemester 2042 -- v\fileversion\space(\filedate)} \sheetnumber{5} \maketitle @@ -185,6 +186,33 @@ Falls bei der Optionsverarbeitung Unstimmigkeiten festgestellt werden, so wird d \end{subtask} \end{task} +\begin{task*}{Beta-Feature: Einheitliche Syntax für Task/Subtask} +TUDaExercise unterscheidet in der Standardeinstellung zwischen \code{task} und \code{subtask}. Dies ist dadurch begründet, dass \code{subtask} keine Angabe eines Titels erfordert. + +Es wurde der Bedarf nach einer einheitlichen Syntax geäußert (siehe \url{https://github.com/tudace/tuda_latex_templates/issues/189}). + +\begin{subtask*}{Die gesternten Verianten der task/subtaks-Umgebungen} +Die mit Version 3.0 implementierten Varianten \code{task*} und \code{subtask*} ermöglichen dies. + +Beide Varianten stehe nur als Umgebung und nicht als Makro zur Verfügung: + +\begin{verbatim} +\begin{task*}{Aufgabentitel} + \begin{subtask*}{Titel der Teilaufgabe} + Beschreibung + \end{subtask*} +\end{task*} +\end{verbatim} + +\end{subtask*} + +\begin{subtask*}{Vertauschen der beiden Varianten} +Zusätzlich erlaubt die Klassenoption \code{match-task-subtask-syntax} das Vertauschen von \code{subtask} und \code{subtask*}. + +Die Umgebungen \code{task*} und \code{task} sind identisch. +\end{subtask*} +\end{task*} + \begin{task}{Kompatibilitätsmodus} Die Klasse \cls{tudaexercise} verfügt über einen Kompatibilitätsmodus, um den Umstieg von zuvor existierenden Templates, wie TUDexercise zu erleichtern. Um den Kompatibilitätsmodus zu aktivieren, existiert die Option \code{compat=true}. diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco index 525e3d5e51..cb1029b6c6 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaFromaddress.lco' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaFromaddress.lco' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex index fc1af401dc..b78481ec43 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaLeaflet.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaLeaflet.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -54,7 +58,7 @@ \title{TUDaLeaflet} %\titleimage{\includegraphics[width=\width,height=\height]{example-image}} \subtitle{Flyer mit TUDa-CI} -\addTitleBox{Insitut} +\addTitleBox{Institut} \AddSponsor{\includegraphics[height=\height ]{example-image}} \AddSponsor{\includegraphics[height=\height ]{example-image}} @@ -116,7 +120,7 @@ Sponsorenlogos werden üblicherweise über \end{verbatim} übergeben. Innerhalb des Arguments ist \verb+\height+ so gesetzt. Somit werden im Beispiel alle Logos auf die gleiche Höhe gesetzt. Der Abstand dazwischen wird entsprechend aufgefüllt, sodass der gesamte Block immer links und rechts mit dem Text abschließt. -Die zweite Variante ermöglicht die Platzierung mit manueller vertikaler ausrichtung, wie es bei logos mit unterschiedlicher Höhe notwendig sein könnte. Hierbei werden lediglich die Abstände und Trennlinien um die Logos ergänzt: +Die zweite Variante ermöglicht die Platzierung mit manueller vertikaler Ausrichtung, wie es bei Logos mit unterschiedlicher Höhe notwendig sein könnte. Hierbei werden lediglich die Abstände und Trennlinien um die Logos ergänzt: \begin{verbatim} \sponsors{ diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex index c59ebf93d0..4d96be1be3 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaLetter.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaLetter.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -36,6 +40,7 @@ premium=true,%Aktiviert die Färbung der Identitätsleiste % firstpagenumber=false,%Deaktiviert die Anzeige der Seitenzahl auf Seite 1 % logofile=example-image, %Falls die Logo Dateien nicht vorliegen +% textwidth=narrow,% Verhindert die Anpassung der Textbreite nach der ersten Seite ]{tudaletter} % Der folgende Block ist nur für die Kompatibilität mit pdfTeX Versionen vor April 2018 notwendig @@ -75,6 +80,7 @@ Zusätzliche Optionen sind im Folgenden aufgelistet:\\ \item[firstpagenumber=true/false] Aktiviert/deaktiviert die Angabe der Seitenzahl auf der ersten Seite. Voreinstellung ist true. \item[raggedright=true/false] Brieftext linksbündig. Voreinstellung ist false. Dies entspricht Blocksatz. \item[logo=true/false] Logo auf Folgeseiten aktiviert/deaktiviert. Voreinstellung ist true. + \item[texwidth=narrow/wide] Schaltet zwischen der Anpassung der Textbreite nach der ersten Seite um. Voreinstellung ist wide, da dies den Richtlinien entspricht. \end{description} } diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex index b262c076e1..f25fc6101b 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaPhD.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaPhD.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -123,7 +127,7 @@ \submissiondate{\today} \examdate{\today} -\tuprints{urn=1234,printid=12345} +\tuprints{urn=1234,printid=12345,doi=10.25534/tuprints-1234} \dedication{For \TeX{} \& Friends} @@ -146,7 +150,7 @@ Zwar basieren alle drei DEMO-Dateien auf der Klasse \code{tudapub}, allerdings s Für Erläuterungen zu den TUDaPub spezifischen Optionen, sei auf die Datei DEMO-TUDaPub verwiesen. Da die Basisklasse für beide identisch ist, kann jede Option abgeändert werden. Die Folgende Liste zeigt lediglich die gezeigten Features bei Standardeinstellungen. -\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}} +\noindent\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}} \toprule Option&DEMO-TUDaThesis&DEMO-TUDaPhD&DEMO-TUDapub\\ \midrule @@ -231,7 +235,11 @@ Es ist zu beachten, dass für die Erzeugung der Titelseite nach Übergabe aller \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt -- D17} (bei Dissertationen) vorbelegt. \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das dokument über tuprints Veröffentlicht werden soll. \begin{verbatim} - \tuprints{urn=1234, printid=12345} + \tuprints{ + urn=1234, + printid=12345, + doi=10.25534/tuprints-1234 + } \end{verbatim} Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben. @@ -266,6 +274,8 @@ hinzugefügt werden. Die Vorbelegung für Stadt ist hierbei \enquote{Darmstadt}. Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang. Daher existiert die Klassenoption \code{custommargins}, die für dieses Dokument aktiviert wurde. +Bei Verwendung einer Bindekorrektur wird diese nicht automatisch auch auf der Titelseite eingefügt. Für diesen Fall wurde mit Version 3.0 zusätzlich die Option \code{BCORtitlepage} hinzugefügt. Falls diese aktiviert wird, nimmt die Titelseite den Wert der Typearea Option \code{BCOR} auf der ersten Seite als Zusatz zum linken Rand hinzu. + Die Option \code{custommargins} verfügt ab Version 1.10 auch über den Wert \code{geometry}. Damit können die Ränder auch durch einen Aufruf von \code{\tbs{}geometry} vor Beginn des Dokuments manuell angepasst werden. Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen: diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex index 4db5dde606..95e79a3cc8 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaPoster.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaPoster.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex index 243299d1a8..5d05b18732 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaPub.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaPub.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -103,7 +107,7 @@ In diesem Dokument werden die speziellen Optionen und Einstellungsmöglichkeiten \section{Verwendung} Die Klasse wird wie gewohnt geladen: \begin{verbatim} -\documentclass[<Optionen>{tudapub} +\documentclass[<Optionen>]{tudapub} \end{verbatim} Im folgenden werden die möglichen Optionen beschrieben. @@ -133,7 +137,7 @@ Im folgenden werden die möglichen Optionen beschrieben. \item[ruledheaders] Wählt den Stil der Überschriften aus. \code{ruledheaders=all} wählt den mit Linien eingerahmten Stil für alle bis zur \verb+\subsubsection+. Bei \code{chapter} beziehungsweise \code{section} ist dieser Stil entsprechend beschränkt. False lädt den Standardstil aus \KOMAScript. \item[type] Als Typ stehen im Moment \code{publication} und \code{thesis} zur Verfügung. Die besonderen Möglichkeiten im Typ thesis sind in der Datei DEMO-TUDaThesis.tex/.pdf geschildert. Voreingestellt ist \code{publication}. - Zusätzlich existiert ab Version 1.2 noch der Modus \code{intern}. Dieser wählt die Optionen \code{titlepage=false} für einen Titelkopf statt Titelseiten, sowie die TUDaPub-Optionen \code{pdfa=false} und \code{IMRAD=false}. Dieser Modus ist für kurze, interne Berichte gedacht. + Zusätzlich existiert ab Version 1.2 noch der Modus \code{intern}. Dieser wählt die Optionen \code{titlepage=false} für einen Titelkopf statt Titelseiten, sowie die TUDaPub-Optionen \code{pdfa=""false} und \code{IMRAD=false}. Dieser Modus ist für kurze, interne Berichte gedacht. \item[headline] Die Kopfzeile verfügt über die im Corporate Design beschriebenen Layoutmöglichkeiten über den Wert \code{automark}. Da diese Lösung typografisch nicht sonderlich sinnvoll ist, ist es auch möglich, diese abzuschalten. Voreingestellt ist ein Stil ohne Kolumnentitel. \item[logo] Option für die Titelseite, siehe \ref{sec:title} \item[colorback] Option für die Titelseite, siehe \ref{sec:title} @@ -177,8 +181,27 @@ Um die Institutsboxen für Logos zu verwenden, liefert \cls{tudapub} das Makro \ \addTitleBoxLogo*{\includegraphics[width=\linewidth]{example-image}} \end{verbatim} +\minisec{Sponsorenlogos} +Ab Version 3.0 steht in TUDaPub auch der Sponsorenmechanismus der TUDaLeaflet-Klasse zur verfügung. Damit ist es Möglich Sponsorenlogos unterhalb des Titelbildes zu platzieren. + +Sponsorenlogos werden üblicherweise über +\begin{verbatim} + \AddSponsor{<logo1>} + \AddSponsor{<log2>} +\end{verbatim} +übergeben. Innerhalb des Arguments ist \verb+\height+ so gesetzt. Somit werden im Beispiel alle Logos auf die gleiche Höhe gesetzt. Der Abstand dazwischen wird entsprechend aufgefüllt, sodass der gesamte Block immer links und rechts mit dem Text abschließt. + +Die zweite Variante ermöglicht die Platzierung mit manueller vertikaler Ausrichtung, wie es bei Logos mit unterschiedlicher Höhe notwendig sein könnte. Hierbei werden lediglich die Abstände und Trennlinien um die Logos ergänzt: + +\begin{verbatim} + \sponsors{ + <logo1><logo2> + } +\end{verbatim} + + \minisec{Optionen für die Titelseite} -Die Position des Logos ist umschaltbar. Dies geschieht über die Dokumentenklassenoption \code{logo=head/body}. +Die Position des Logos ist umschaltbar. Dies geschieht über die Dokumentenklassenoption \code{logo=head/""body}. \begin{description} \item[logo=head] Das Logo wird im Kopf direkt neben dem Titel platziert. Der Titel wird in der Breite reduziert. Der Hintergrund des Titels wird in der Farbe der Identitätsleiste eingefärbt. Zusätzliche Infoboxen (s.u.) werden ebenfalls im Kopf platziert. \item[logo=body] Das Logo samt der Infoboxen wird im Körper der Titelseite platziert. @@ -233,7 +256,7 @@ No color profile found to use for RGB screen colors \end{verbatim} Um diesen Fehler zu beheben, können die notwendigen *.icc-Dateien unter \url{http://mirror.ctan.org/support/colorprofiles} heruntergeladen und entweder installiert oder im Projektordner mit abgelegt werden. Die einfachste Lösung bleibt jedoch, das eigene \TeX-System zu aktualisieren. -Darüber hinaus werden bei \hologo{XeLaTeX} einige Features nicht unterstützt. In diesem Fall erzeugt \code{pdfa=false} ein kompilierbares Dokument, allerdings sollte für validierbare PDF/A-Dateien auf \hologo{LuaLaTeX} einer möglichst aktuellen Version umgestiegen werden. +Darüber hinaus werden bei \hologo{XeLaTeX} einige Features nicht unterstützt. In diesem Fall erzeugt \code{pdfa=""false} ein kompilierbares Dokument, allerdings sollte für validierbare PDF/A-Dateien auf \hologo{LuaLaTeX} einer möglichst aktuellen Version umgestiegen werden. \subsection{Zusätzliche Metadaten nach Wunsch der Universitätsbibliothek} \label{sec:IMRAD} @@ -269,7 +292,8 @@ Somit ist es möglich, für den Vorspann auf römische Ziffern zu wechseln. Ab \ \subsection{Mathematikschriften} Da es keine Compiler-unanbhängige, universelle Mathematikschrift gibt und die Corporate Design Richtlinien auch keinerlei Empfehlung berücksichtigen, wurden hierfür einige mögliche Varianten diskutiert. Die Voreinstallung entspricht immer dem Standard der Installation. Es werden keine spezifischen Einstellungen geladen. -Die Diskussion hierzu findet sich unter \url{https://github.com/tudace/tuda_latex_templates/issues/19} +Die Diskussion hierzu findet sich unter:\\ +\url{https://github.com/tudace/tuda_latex_templates/issues/19} Im Folgenden werden ein paar Beispielkonfigurationen gezeigt. Grundsätzlich ist die Mathematikschriftart jedoch -- abgesehen durch Einschränkungen des Compilers -- frei wählbar. @@ -285,9 +309,47 @@ Hier existiert eine Variante, die die Buchstaben der Basischriftart \enquote{Cha Es gibt ähnliche Ansätze für ein paar weitere Kombinationen. Einige Beispiele finden sich in der XCharter Dokumentation. \url{http://mirrors.ctan.org/fonts/xcharter/doc/xcharter-doc.pdf} +\section{Fachbereichsspezifische Anpassungen} +Einige Fachbereiche haben spezielle Anforderungen. Dieser Abschnitt betrachtet die speziellen Anpassungen. Bisher (Juli 2020) existieren diese Modifikationen lediglich für den Fachbereich Maschinenbau, der Mechanismus ist jedoch erweiterungsfähig. + + +\subsection{Fachbereich Maschinenbau} +Der entsprechende Modus wird über die Option \code{department=mecheng} oder kurz \code{mecheng} aktiviert. Die Farbgebung passt sich dann automatisch an und die Trennlinie der Fußzeile erhält die geforderte Form des Zeitstrahles. + +Darüber hinaus erfordern manche Stellen dieses Fachbereits die übergabe einer ID zu Kennzeichnung des Dokuments. Hierfür wurde der Mechanismus +\begin{verbatim} +\SetPaperID{<Buchstabe>}{<tiefgestelle Nummer>}} +\end{verbatim} +eingeführt. +Dieser funktioniert auch ohne die Aktivierung des \code{mecheng}-Modus, allerdings ergänzt due Option einige zusätzliche Parameter für angepasste Abstände. + +Darüber hinaus aktiviert der Modus die Optionen: +\code{colorback=false}, \code{ruledheaders=section}. + +\minisec{Logo} +Das Fachbereichslogo wird über die Option \verb+departmentlogofile=tuda_maschinenbau_logo+ übergeben. Über diese Option kann auch eine abweichende Datei genutzt werden. Falls der Wert leer bleibt, wird kein Bild eingefügt. + +\minisec{Farbanpassungen} +Der Fachbereich untergliedert die im Corporate Design Handbuch beschriebenen Farben zusätzlich. Daher existieren, wenn \code{mecheng} aktiviert wurde zusätzlich die folgenden Farbnamen: + +\begin{verbatim} +\colorlet{TUDa-Primary1}{TUDa-6b} +\colorlet{TUDa-Primary2}{TUDa-2d} +\colorlet{TUDa-Secondary1}{TUDa-9a} +\colorlet{TUDa-Secondary2}{TUDa-8a} +\colorlet{TUDa-Secondary3}{TUDa-6a} +\colorlet{TUDa-Secondary4}{TUDa-3a} +\colorlet{TUDa-Secondary5}{TUDa-4a} +\colorlet{TUDa-Secondary6}{TUDa-5a} +\colorlet{TUDa-Arrow}{TUDa-Primary2} +\end{verbatim} + +\minisec{Zeitstrahl} +Des Design-Element des Zeitstrahls kann über das Makro \verb+\MechEngArrow{<Länge>}+ erzeugt werden. Die Farbe entspricht dabei der Farbe \code{TUDaArrow}, die mit der zweiten Primärfarbe (blau) vorbelegt ist. + \section{Standard-KOMA-Script} \label{sec:KOMA} -Da die Klasse bis auf ein paar erzwungene Einstellungen, die das Layout betreffen, vollständig \KOMAScript-kompatibel ist, ist für sämtliche Modifikationen ein Blick in die \KOMAScript-Dokumentation hilfreich. Für einen Großteil bietet \KOMAScript{} eine eigene Lösung, wodurch Ergänzungspakete oft hinfällig sind. +Da die Klasse bis auf ein paar erzwungene Einstellungen, die das Layout betreffen, vollständig \KOMAScript"=kompatibel ist, ist für sämtliche Modifikationen ein Blick in die \KOMAScript-Dokumentation hilfreich. Für einen Großteil bietet \KOMAScript{} eine eigene Lösung, wodurch Ergänzungspakete oft hinfällig sind. Beispiele für typische Modifikationen, die auch im Rahmen des Corporate Design zulässig sind: \begin{itemize} diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex index cb7a06dacd..68873f04fb 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaReport.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaReport.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex index 58b96b279d..9c7b9b5f4d 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaSciPoster.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaSciPoster.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex index 78b0a6914a..297b2bda39 100644 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex +++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex @@ -1,4 +1,4 @@ -%% This is file `DEMO-TUDaThesis.tex' version 2.11 (2020/06/12), +%% This is file `DEMO-TUDaThesis.tex' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -24,6 +24,10 @@ %% https://github.com/tudace/tuda_latex_templates %% Please use the issue tracker for feedback! %% +%% If you need a compiled version of this document, have a look at +%% http://mirror.ctan.org/tex-archive/macros/latex/contrib/tuda-ci/doc +%% or at the documentation directory of this package (if installed) +%% <path to your LaTeX distribution>/doc/latex/tuda-ci %% ============================================================================ %% % !TeX program = lualatex @@ -112,7 +116,7 @@ \submissiondate{\today} \examdate{\today} -% \tuprints{urn=1234,printid=12345} +% \tuprints{urn=1234,printid=12345,doi=10.25534/tuprints-1234} % \dedication{Für alle, die \TeX{} nutzen.} \maketitle @@ -137,7 +141,7 @@ Zwar basieren alle drei DEMO-Dateien auf der Klasse \code{tudapub}, allerdings s Für Erläuterungen zu den TUDaPub spezifischen Optionen, sei auf die Datei DEMO-TUDaPub verwiesen. Da die Basisklasse für beide identisch ist, kann jede Option abgeändert werden. Die Folgende Liste zeigt lediglich die gezeigten Features bei Standardeinstellungen. -\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}} +\noindent\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}} \toprule Option&DEMO-TUDaThesis&DEMO-TUDaPhD&DEMO-TUDapub\\ \midrule @@ -204,7 +208,7 @@ Es ist zu beachten, dass für die Erzeugung der Titelseite nach Übergabe aller \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt -- D17} (bei Dissertationen) vorbelegt. \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das dokument über tuprints Veröffentlicht werden soll. \begin{verbatim} - \tuprints{urn=1234, printid=12345} + \tuprints{urn=1234, printid=12345, doi=10.25534/tuprints-1234} \end{verbatim} Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben. @@ -237,6 +241,8 @@ hinzugefügt werden. Die Vorbelegung für Stadt ist hierbei \enquote{Darmstadt}. Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang. Daher existiert die Klassenoption \code{custommargins}, die für dieses Dokument aktiviert wurde. +Bei Verwendung einer Bindekorrektur wird diese nicht automatisch auch auf der Titelseite eingefügt. Für diesen Fall wurde mit Version 3.0 zusätzlich die Option \code{BCORtitlepage} hinzugefügt. Falls diese aktiviert wird, nimmt die Titelseite den Wert der Typearea Option \code{BCOR} auf der ersten Seite als Zusatz zum linken Rand hinzu. + Die Option \code{custommargins} verfügt ab Version 1.10 auch über den Wert \code{geometry}. Damit können die Ränder auch durch einen Aufruf von \code{\tbs{}geometry} vor Beginn des Dokuments manuell angepasst werden. Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen: diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis_maschbau.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis_maschbau.tex deleted file mode 100644 index 62e354b4f4..0000000000 --- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis_maschbau.tex +++ /dev/null @@ -1,438 +0,0 @@ -%% This is file `DEMO-TUDaThesis_maschbau.tex' version 2.11 (2020/06/12), -%% it is part of -%% TUDa-CI -- Corporate Design for TU Darmstadt -%% ---------------------------------------------------------------------------- -%% -%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> -%% -%% ============================================================================ -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008/05/04 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainers of this work are -%% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> -%% -%% The development respository can be found at -%% https://github.com/tudace/tuda_latex_templates -%% Please use the issue tracker for feedback! -%% -%% ============================================================================ -%% -% !TeX program = lualatex -%% - -%% This is file `DEMO-TUDaThesis_maschbau.tex' version 2.11 (2020/06/12), -%% it is part of -%% TUDa-CI -- Corporate Design for TU Darmstadt -%% ---------------------------------------------------------------------------- -%% -%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> -%% -%% ============================================================================ -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008/05/04 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainers of this work are -%% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> -%% -%% The development respository can be found at -%% https://github.com/tudace/tuda_latex_templates -%% Please use the issue tracker for feedback! -%% -%% ============================================================================ -%% -% !TeX program = lualatex -%% - -%% This is file `DEMO-TUDaThesis_maschbau.tex' version 2.11 (2020/06/12), -%% it is part of -%% TUDa-CI -- Corporate Design for TU Darmstadt -%% ---------------------------------------------------------------------------- -%% -%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> -%% -%% ============================================================================ -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008/05/04 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainers of this work are -%% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> -%% -%% The development respository can be found at -%% https://github.com/tudace/tuda_latex_templates -%% Please use the issue tracker for feedback! -%% -%% ============================================================================ -%% -% !TeX program = lualatex -%% - -%% This is file `DEMO-TUDaThesis.tex' version 2.10 (2020/06/12), -%% it is part of -%% TUDa-CI -- Corporate Design for TU Darmstadt -%% ---------------------------------------------------------------------------- -%% -%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> -%% -%% ============================================================================ -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008/05/04 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainers of this work are -%% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> -%% -%% The development respository can be found at -%% https://github.com/tudace/tuda_latex_templates -%% Please use the issue tracker for feedback! -%% -%% ============================================================================ -%% -% !TeX program = lualatex -%% - -\documentclass[ - ngerman, - ruledheaders=section,%Ebene bis zu der die Überschriften mit Linien abgetrennt werden, vgl. DEMO-TUDaPub - class=report,% Basisdokumentenklasse. Wählt die Korrespondierende KOMA-Script Klasse - thesis={type=bachelor},% Dokumententyp Thesis, für Dissertationen siehe die Demo-Datei DEMO-TUDaPhd -% accentcolor=9c,% Auswahl der Akzentfarbe - custommargins=false,% Ränder werden mithilfe von typearea automatisch berechnet - marginpar=false,% Kopfzeile und Fußzeile erstrecken sich nicht über die Randnotizspalte - %BCOR=5mm,%Bindekorrektur, falls notwendig - parskip=half-,%Absatzkennzeichnung durch Abstand vgl. KOMA-Sript - fontsize=11pt,%Basisschriftgröße laut Corporate Design ist mit 9pt häufig zu klein -% logofile=example-image, %Falls die Logo Dateien nicht vorliegen - maschinenbau -]{tudapub} - - -% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig -\usepackage{iftex} -\ifPDFTeX - \usepackage[utf8]{inputenc}%kompatibilität mit TeX Versionen vor April 2018 -\fi - -%%%%%%%%%%%%%%%%%%% -%Sprachanpassung & Verbesserte Trennregeln -%%%%%%%%%%%%%%%%%%% -\usepackage[english, main=ngerman]{babel} -\usepackage[autostyle]{csquotes}% Anführungszeichen vereinfacht -\usepackage{microtype} - - -%%%%%%%%%%%%%%%%%%% -%Literaturverzeichnis -%%%%%%%%%%%%%%%%%%% -\usepackage{biblatex} % Literaturverzeichnis -\bibliography{DEMO-TUDaBibliography} - - -%%%%%%%%%%%%%%%%%%% -%Paketvorschläge Tabellen -%%%%%%%%%%%%%%%%%%% -%\usepackage{array} % Basispaket für Tabellenkonfiguration, wird von den folgenden automatisch geladen -\usepackage{tabularx} % Tabellen, die sich automatisch der Breite anpassen -%\usepackage{longtable} % Mehrseitige Tabellen -%\usepackage{xltabular} % Mehrseitige Tabellen mit anpassarer Breite -\usepackage{booktabs} % Verbesserte Möglichkeiten für Tabellenlayout über horizontale Linien - -%%%%%%%%%%%%%%%%%%% -%Paketvorschläge Mathematik -%%%%%%%%%%%%%%%%%%% -%\usepackage{mathtools} % erweiterte Fassung von amsmath -%\usepackage{amssymb} % erweiterter Zeichensatz -%\usepackage{siunitx} % Einheiten - -%Formatierungen für Beispiele in diesem Dokument. Im Allgemeinen nicht notwendig! -\let\file\texttt -\let\code\texttt -\let\tbs\textbackslash - -\usepackage{pifont}% Zapf-Dingbats Symbole -\newcommand*{\FeatureTrue}{\ding{52}} -\newcommand*{\FeatureFalse}{\ding{56}} - -\begin{document} - -\Metadata{ - title=TUDaThesis - Abschlussarbeiten im CD der TU Darmstadt, - author=Marei Peischl -} - -\title{TUDaThesis -- Abschlussarbeiten im CD der TU Darmstadt} -\subtitle{\LaTeX{} using TU Darmstadt's Corporate Design} -\author[M. Peischl]{Marei Peischl}%optionales Argument ist die Signatur, -\birthplace{Geburtsort}%Geburtsort, bei Dissertationen zwingend notwendig -\reviewer{Gutachter 1 \and Gutachter 2 \and noch einer \and falls das immernoch nicht reicht}%Gutachter - -%Diese Felder erden untereinander auf der Titelseite platziert. -%\department ist eine notwendige Angabe, siehe auch dem Abschnitt `Abweichung von den Vorgaben für die Titelseite' -\department{ce} % Das Kürzel wird automatisch ersetzt und als Studienfach gewählt, siehe Liste der Kürzel im Dokument. -\institute{Institut} -\group{Arbeitsgruppe} - -\submissiondate{\today} -\examdate{\today} - -% \tuprints{urn=1234,printid=12345} -% \dedication{Für alle, die \TeX{} nutzen.} - -\maketitle - -\affidavit - -\tableofcontents - - -\chapter{Über diese Datei} -Die Datei \file{DEMO-TUDaThesis.tex} ist ein Template für Abschlussarbeiten im Stil des Corporate Designs der TU Darmstadt. -Sie ist Teil des TUDa-CI-Bundles wurde vom in Teilen tuddesign-Paket von C.~v.~Loewenich und J.~Werner inspiriert. - -Sie verwendet die Dokumentenklasse \file{tudapub.cls}, allerdings mit erweiterten Einstellungen. In diesem Dokument werden überwiegend die speziell auf Abschlussarbeiten ausgelegten Möglichkeiten beschrieben. - -Es ist voreingestellt, dass eine PDF/A-Datei erzeugt wird. Die beste Kompatibilität hierfür bietet Lua\LaTeX. Bei anderen Compilern kann dies entsprechend der Informationen in DEMO-TUDaPub zu Problemen führen. In diesem Fall sollte entweder der Compiler gewechselt oder \code{pdfa=false} aktiviert werden. - -Für weitere Informationen kann ein Blick in die zur Dokumentenklasse gehörigen Dokumentation (tudapub.pdf) hilfreich sein. Sie wird zusammen mit den Quelldateien verteilt. - -\minisec{Unterschiede der Demodateien DEMO-TUDaThesis und DEMO-TUDaPhD} -Zwar basieren alle drei DEMO-Dateien auf der Klasse \code{tudapub}, allerdings sind die Basiseinstelungen dem Dokumententyp angepasst. -Für Erläuterungen zu den TUDaPub spezifischen Optionen, sei auf die Datei DEMO-TUDaPub verwiesen. -Da die Basisklasse für beide identisch ist, kann jede Option abgeändert werden. Die Folgende Liste zeigt lediglich die gezeigten Features bei Standardeinstellungen. - -\begin{tabularx}{\linewidth}{@{}p{.25\linewidth}*3{>{\centering\arraybackslash}X}@{}} - \toprule - Option&DEMO-TUDaThesis&DEMO-TUDaPhD&DEMO-TUDapub\\ - \midrule - twoside&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule - parskip&\FeatureTrue&\FeatureFalse&\FeatureTrue\\\midrule - Kolophon&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule - Widmung&\FeatureFalse&\FeatureTrue&\FeatureFalse\\\midrule - Schriftgröße&11pt&11pt&9pt\\\midrule - ruledheaders§ion&chapter&all\\\midrule - Basisklasse&scrreprt&scrbook&scrartcl\\\midrule - thesis&\ttfamily type=bachelor&\ttfamily type=dr, dr=rernat - &\FeatureFalse\\\midrule - marginpar&\FeatureFalse&\FeatureFalse&\FeatureTrue\\\midrule - Affidavit\newline\rlap{(Selbstständigkeitserklärung)}&\FeatureTrue&\FeatureTrue&\FeatureFalse\\\midrule - abstract&\FeatureFalse&\FeatureTrue&\FeatureTrue\\\midrule - custommargins&\FeatureTrue&\FeatureTrue&\FeatureFalse\\ - \bottomrule -\end{tabularx} - - -\chapter{Verwendung} -Die Klasse kann wie für Dokumentenklassen üblich eingebunden werden -\begin{verbatim} -\documentclass[thesis]{tudapub} -\end{verbatim} -Die Option \code{thesis} wechselt hierbei in den Modus, der spezielle Features für Abschlussarbeiten freischaltet, die in diesem Dokument beschrieben werden. - -Darüber hinaus lässt sich die Klasse verwenden wie die Standard-KOMA-Script-Klasse, auf der sie basiert. -Voreingstellt ist hierbei \code{scrreprt}. - -Allgemein bietet \KOMAScript{} viele Möglichkeiten zu Anpassungen. Wie in der tudapub-Demo-Datei beschrieben, können hier jedoch nicht alle erläutert werden, ein Blick in die offizielle Dokumentation ist daher häufig hilfreich \cite{scrguide}. - -\section{Übergabe der Titelinformationen} - -Die Titelinformationen werden analog zur klassichen Titelerzeugung mit \verb+\maketitle+ übergeben. Allerdings wurden die Felder um ein paar speziellere Daten erweitert. Sofern nicht anders angegeben, verfügen alle Makros über ein notwendiges Argument für die Datenübergabe, z.\,B. -\begin{verbatim} -\title{\LaTeX{} im Corporate Design der TU Darmstadt} -\end{verbatim} -Es ist zu beachten, dass für die Erzeugung der Titelseite nach Übergabe aller Daten \verb+\maketitle+ aufgerufen werden muss. - -\begin{description}\setkomafont{descriptionlabel}{\ttfamily\textbackslash} - \item[title] Titel, wird in sehr großer Schrift im obersten Block der Titelseite platziert. Die Schriftgröße ist aufgrund der Häufigkeit für lange Titel kleiner gewählt als für andere Publikationen. - \item[subtitle] Untertitel. Dieses Feld kann alternativ für eine Übersetzung genutzt werden. - \item[author] Der Autor/dir Autoren. Mehere Autoren werden durch \verb+\and+ getrennt. - \item[studentID] Matrikelnummer. Nach den Vorgaben des Templates ist diese Angabe immer optional. - \item[birthplace] Geburtsort. Angabe ist bei Dissertationen notwendig. - \item[reviewer] Gutachter. Mehrere Gutachter werden, wie Autoren durch \verb+\and+ getrennt. Die Nummerierung läuft von links nach rechts. - \item[institution] Einrichtung. Dieser Eintrag, wie auch die beiden folgenden, werden unterhalb des Logos auf der Titelseite platziert. - \item[department] Fach-/Studienbereich, allerdings ist die oben genannte Option zu bevorzugen. Die Verarbeitung des Arguments erfolgt jedoch analog. - - Dieses Makro verfügt jedoch zusätzlich über die Möglichkeit abweichende Einträge gegenüber den Vorgaben anzugeben. Insbesondere wenn eine gesonderte Formulierung gegenüber der voreingestellten \enquote{im Fachbereich} und ihren Varianten notwendig ist. Hierfür liefert \code{\textbackslash{}department} ein optionales Argument: - - \begin{verbatim} - \department[Ersatztext]{Kürzel/Bezeichnung} - \end{verbatim} - Zusätzlich gibt es ab Version 2.01 auch die Möglichkeit den gesamten Text \enquote{im Fachbereich <Bereichsbezeichnung>}, sowie die Angabe in der Infobox auf der Titelseite zu ersetzen. Dies geschieht über die gesternte Variante: - \begin{verbatim} - \department*[Text für die Box]{Text zwischen Typ und Autor} - \end{verbatim} - \item[group] Arbeitsgruppe. - \item[submissiondate] Datum der Einreichung - \item[examdate] Datum der Disputation - \item[date] Beliebiges Datum. Wird über \verb|datename| bezeichnet. - \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt -- D17} (bei Dissertationen) vorbelegt. - \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das dokument über tuprints Veröffentlicht werden soll. - \begin{verbatim} - \tuprints{urn=1234, printid=12345} - \end{verbatim} - Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben. - - \item[titleimage] Hier kann Code übergeben werden, der den farbigen Block im unteren Teil der Titelseite ersetzt. Als Maße können hier die Längen \verb+\layerwidth+ und \verb+\layerheight+ verwendet werden. Sie passen sich dem Verfügbaren Platz an. Für ein Beispiel sei auf die TUDapub-Dokumentation verwiesen. - \item[titleintro] Ab Version 2.03 kann zusätzlich über diesen Hook ein beliebiger Text direkt nach dem Untertitel und vor den automatischen Informationen ergänzt werden. - \item[titleaddendum] Wie \code{\tbs{}titleintro} jedoch als letztes Element des Blocks. -\end{description} - -\section{Weitere Macros} -Das Makro \verb+\affidavit+ erzeugt eine Selbstständigkeitserklärung mit Unterschriftenzeile. Hier wird der oben übergebene Name/Signatur eingefügt. -In diesem Dokument findet sich das Affidavit direkt nach der Titelei. - -Es besteht zusätzlich die Möglichkeit ein anderssprachiges Affidavit als Ergänzung mit abzudrucken. Um die Struktur und die ggf. notwendige Sprachumschaltung zu erledigen, existiert hierfür ab Version 2.03 eine Umgebung: - -\begin{verbatim} -\begin{affidavit*}[Babel-Sprachoption]{Überschrift} -Text -\end{affidavit*} -\end{verbatim} - -Diese Variante verfügt bewusst über keine Unterschriftenzeile, da diese Version laut Verständnis der Entwickler keine rechtliche Verbindlichkeit besitzt. - -Die Umgebung kann jedoch auch für besondere Formen der Erklärung genutzt werden. In diesem Fall kann eine zusätzliche Signaturzeile über -\begin{verbatim} -\AffidavitSignature[Stadt] -\end{verbatim} -hinzugefügt werden. Die Vorbelegung für Stadt ist hierbei \enquote{Darmstadt}. - -\section{Layout-Optionen mit Verstoß gegen das Corporate Design} -Die Zeilenlängen sind laut Corporate Design aus typografischer Sicht zu lang. -Daher existiert die Klassenoption \code{custommargins}, die für dieses Dokument aktiviert wurde. - -Die Option \code{custommargins} verfügt ab Version 1.10 auch über den Wert \code{geometry}. Damit können die Ränder auch durch einen Aufruf von \code{\tbs{}geometry} vor Beginn des Dokuments manuell angepasst werden. - -Hierbei ist zu beachten, dass die Einstellungen als Ausgangspunkt den Voreingestellten Satzspiegel nutzen (je nach Option mit Randnotizspalte oder ohne). Es ist möglich diese Optionen vor den eigenen mit zurückzusetzen: -\begin{verbatim} -\geometry{ - reset, - <Eigene Anpassungen> -} -\end{verbatim} -Die gilt insbesondere für die Optionen \code{includehead}, \code{includefoot} und \code{includemp}. - -Diese Variante wird auf Wunsch zur Verfügung gestellt, allerdings wird darauf hingewiesen, dass manuelle Randeinstellungen oft nicht zu einem harmonischen Satzspiegel führen. - -Auch ist das Standard-Layout der Kolumnentitel wenig vorteilhaft, da die Kolumnentitel damit local größer sein können als die eigentliche Überschrift. - - -Dadurch werden die Ränder nicht fest definiert, sondern auf Basis des typearea-Paketes optimiert. - -Wenn die option \code{marginpar=true} gesetzt bleibt, ragen die Kopf- und Fußzeile über die Marginalspalte hinaus. Aus ästhetischen Gründen wird daher empfohlen in diesem Fall die Kopf- und Fußzeile mit \code{marginpar=false} auf den Textbereich zu beschränken. - - -Darüber hinaus kann über -\begin{verbatim} -\pagestyle{TUDa.headings} -\end{verbatim} -ein einfacherer Seitenstil ausgewählt werden, der die Nutzung mit lebenden Kolumnentitel erheblich vereinfacht. - - -\section{Spezielle Optionen für Abschlussarbeiten} -Die Klasse unterstützt alle Optionen der \file{tudapub}-Klasse. Darüber hinaus besteht über Wertzuweisung der Option \code{thesis} die Möglichkeit spezielle Einstellungen zu wählen. -Es ist prinzipiell möglich die Optionen auch direkt als Optionen zur \file{tudapub}-Klasse zu übergeben, allerdings ist dies aufgrund der schlechteren Übersicht nicht zu empfehlen. - -Für dieses Dokument wurden beispielsweise die Optionen als -\begin{verbatim} -thesis={type=drfinal,dr=phil} -\end{verbatim} -übergeben. - -Im folgenden findet sich die Bedeutung der einzelnen Optionen: -\begin{description} -\item[type=<Wert>] Auswahl des Typus. Dieser wird auf die Titelseite gesetzt und wählt zudem aus welche Informationen für die Titelseite zwingend übergeben werden müssen. - Es stehen die folgenden Werte zur Verfügung (die Werte in Klammern sind die notwendigen Titeldaten): - \begin{itemize} - \item \code{sta}: Studienarbeit (title, author, date) - \item \code{diplom}: Diplomarbeit (title, author, submissiondate, reviewer, department) - \item \code{bachelor}: Bachelorarbeit (title, author, submissiondate, department, reviewer) - \item \code{master}: Masterarbeit (title, author, submissiondate, department, reviewer) - \item \code{pp}: Project-Proposal (title, author, date, department) - \item \code{dr}: vorgelegte Dissertation (title, author, submissiondate , birthplace, department, reviewer) - \item \code{drfinal}: genehmigte Dissertation (title, author, submissiondate,examdate, birthplace, department, reviewer) - \end{itemize} - Wird ein Typus angegeben, der nicht erkannt wird, so wird der Text direkt übergeben. Notwendige Titelfelder über den Titel hinaus gibt es in diesem Fall nicht. -\item[dr=<Kürzel>] Lädt einen der vordefinierten Texte für die Titelseite. Als Werte stehen bislang \code{rernat}, \code{ing} und \code{phil} zur Verfügung. Zum Beispiel lädt der Wert \code{phil}: - \begin{quote} - Zur Erlangung des Grades eines Doktor der Philosophie (Dr.\,phil.) - \end{quote} - Sofern keiner dieser Werte dem angestrebten Titel entspricht, kann ein Text direkt übergeben werden. - \begin{verbatim} - \drtext{Zur Erlangung des Grades \ldots} - \end{verbatim} -\item[department=<Kürzel>] Die Fachbereiche sind fest als Textbausteine in Deutscher sowie Englischer Sprache hinterlegt. Diese Option ermöglicht die Auswahl als Dokumentenklassenoption. Aus Kompatibilitätsgründen kann jedoch auch das Makro \code{department}-Makro hierfür genutzt werden. Zur Verfügung stehen:\par - \begin{tabular}{@{}l@{${}\to{}$}l@{}} - arch & Architektur\\ - bauing& Bau- und Umweltingenieurwissenschaften\\ - bio &Biologie\\ - chem &Chemie\\ - etit &Elektrotechnik und Informationstechnik\\ - gugw &Gesellschafts- und Geschichtswissenschaften\\ - humanw&Humanwissenschaften\\ - inf &Informatik\\ - mb &Maschinenbau\\ - matgeo&Material- und Geowissenschaften\\ - math &Mathematik\\ - phys &Physik\\ - wi &Rechts- und Wirtschaftswissenschaften - \end{tabular} - - Neben den Fachbereichen existieren für Abschlussarbeiten, die keine Dissertationen sind auch Studienbereiche. - Falls das Kürzel nicht als Fachbereich hinterlegt ist, wird automatisch auf die Studienbereiche geprüft. Die Studienbereiche haben die folgenden Kürzel: - - \begin{tabular}{@{}l@{${}\to{}$}l@{}} - ce&Computational Engineering\\ - ese&Energy Science and Engineering\\ - ist&Information Systems Engineering\\ - mech&Mechanik\\ - metro&Mechatronik - \end{tabular} - - Falls etwas anderes als eines dieser Kürzel übergeben wird, wird der Text direkt verwendet und eine entsprechende Warnung ausgegeben. - - Die Auswahl der Fachrichtung erzeugt zusätzlich eine Box auf der Titelseite unterhalb des Logos. Falls diese automatische Erstellung nicht gewünscht ist, kann dies über die Option \code{instbox=false} deaktiviert werden. -\item[ignore-missing-data] Diese Option ist ein Schalter, der es ermöglicht die Fehlermeldung über nicht übergebene Titeldaten auszuschalten. In diesem Fall wird lediglich eine Warnung erzeugt, falls die angegeben Daten nicht mit den Anforderungen übereinstimmen. -\end{description} - -\minisec{Abweichung von den Vorgaben für die Titelseite} -Da es möglich sein kann von dieser Vorgabe abzuweichen, existiert für Sonderfälle die Dokumentenklassenoption \code{instbox=false}. Damit wird die automatische Verarbeitung der Daten für die Boxen auf der der Titelseite unterdrückt. In diesem Fall ist der Autor jedoch selbst für die Einhaltung der Vorschriften verantwortlich. Weitere Informationen zur Konstruktion der Boxen findet sich in den Verwendungshinweisen zu Basisklasse TUDaPub. Zusätzlich sei auf die Möglichkeiten des \code{\textbackslash{}department}-Makros verwiesen, sofern die Abweichung sich auf den Text beschränkt. - -\section{Erhöhter Zeilenabstand -- Informationen zum setspace-Paket} -Sofern die Vorgaben es erfordern, ist es möglich mit dem setspace-Paket den Durchschuss zu erhöhen. Allerdings beeinflusst dies natürlich sämtliche Zeilenabstände. Ein erhöhter Zeilenabstand sollte daher erst nach der Titelseite aktiviert werden. Allgemein ist es jedoch empfehlenswert auch für Verzeichnisse und sonstige Sonderelemente außerhalb des Fließtextes auf bei normalen Einstellungen zu bleiben. - -Setspace liefert hierfür die Möglichkeit, das Paket ohne Optionen zu laden und später über Makros, wie \code{\tbs{}onehalfspacing} das Umschalten zu verzögern. Alternativ kann auch durch die Umgebungen, wie \code{singlespace} lokal wieder zum Normalzustand gewechselt werden, sofern dies erforderlich ist. - -\printbibliography - -\end{document} diff --git a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty index 1160ffe48f..3436437533 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamercolorthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamercolorthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,70 +26,66 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamercolorthemeTUDa} [\filedate\space\fileversion] \RequirePackage{l3keys2e} \ExplSyntaxOn -\keys_define:nn {TUDa/beamercolor} { - colortitle .bool_gset:N = \g_TUDa@beamer_colortitle_bool, +\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 .bool_gset:N = \g_TUDa@beamer_colorframetitle_bool, + 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, - colorframetitle .initial:n = false, colorback .meta:n = {colorframetitle=#1} } -\ProcessKeysOptions{TUDa/beamercolor} +\ProcessKeysOptions{ptxcd/beamer/color} \ExplSyntaxOff \RequirePackage[RGB]{tudacolors} -\mode<all> +\mode<beamer> \setbeamercolor*{smallrule}{bg=black} \setbeamercolor*{identbar}{bg=identbarcolor} \ExplSyntaxOn -\bool_if:NTF \g_TUDa@beamer_colortitle_bool { +\bool_if:NTF \g_ptxcd_beamer_colortitle_bool { \setbeamercolor*{title}{fg=textonaccentcolor,bg=accentcolor} }{ - \setbeamercolor*{title}{fg=black,bg=white} + \setbeamercolor*{title}{parent=normal~text} } -\setbeamercolor*{author}{parent=title} -\setbeamercolor*{institute}{parent=title} -\bool_if:NTF \g_TUDa@beamer_colorframetitle_bool { - \setbeamercolor*{frametitle}{fg=textonaccentcolor,bg=accentcolor} -} { - \setbeamercolor*{frametitle}{fg=black,bg=white} +\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=} + } } -\ExplSyntaxOff - -\setbeamercolor*{frametitlecover}{bg=white} -\setbeamercolor*{author in head/foot}{fg=black, bg=white} -\setbeamercolor*{date in head/foot}{fg=black, bg=white} +\__ptxcd_setup_frametitle_color: -\setbeamercolor*{normal text}{bg=white,fg=black} -\setbeamercolor*{background canvas}{bg=white} +\ExplSyntaxOff -\setbeamercolor*{section in toc}{fg=black,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*{alerted text}{fg=textaccentcolor} -\setbeamercolor{structure}{fg=textaccentcolor} - -\setbeamercolor*{palette primary}{fg=textaccentcolor} -\setbeamercolor*{palette secondary}{fg=textaccentcolor} -\setbeamercolor*{palette tertiary}{fg=textaccentcolor} -\setbeamercolor*{palette quaternary}{fg=black} +\setbeamercolor*{structure}{fg=textaccentcolor} \setbeamercolor{bibliography item}{parent=item} \setbeamercolor{bibliography entry author}{use=structure,fg=structure.fg} diff --git a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty index a5c6b1568c..ceb211eff7 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamerfontthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamerfontthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerfontthemeTUDa} [\filedate\space\fileversion] @@ -35,15 +35,15 @@ \RequirePackage{l3keys2e} \ExplSyntaxOn -\keys_define:nn {TUDa/beamer/fonts} { - serif .bool_gset:N = \g_TUDa_serif_bool, +\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_TUDa_serif_bool, + sans-serif .bool_gset_inverse:N = \g_ptxcd_serif_bool, sans-serif .default:n = true, } -\ProcessKeysOptions{TUDa/beamer/fonts} +\ProcessKeysOptions{ptxcd/beamer/fonts} \ExplSyntaxOff @@ -52,7 +52,7 @@ \RequirePackage{tudafonts} \ExplSyntaxOn -\bool_if:NTF \g_TUDa_serif_bool +\bool_if:NTF \g_ptxcd_serif_bool {\usefonttheme{serif}} {\renewcommand*{\familydefault}{\sfdefault}} \ExplSyntaxOff diff --git a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty index 76c6dd3e02..aa7404b629 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamerinnerthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamerinnerthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,41 +26,10 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -%% This is file `beamerinnerthemeTUDa.sty' version 1.11 (2019/10/15), -%% it is part of -%% TUDa-CI -- Corporate Design for TU Darmstadt -%% ---------------------------------------------------------------------------- -%% -%% Copyright (C) 2018--2019 by Marei Peischl <marei@peitex.de> -%% -%% ============================================================================ -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2008/05/04 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainers of this work are -%% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> -%% -%% The development respository can be found at -%% https://github.com/tudace/tuda_latex_templates -%% Please use the issue tracker for feedback! -%% -%% ============================================================================ -%% -\def\fileversion{1.11} -\def\filedate{2019/10/15} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerinnerthemeTUDa} - [\filedate\space\fileversion] +\ProvidesExplPackage{beamerinnerthemeTUDa}{\filedate}{\fileversion}{Inner~beamer~theme~of~tuda-ci} \RequirePackage{l3keys2e} @@ -68,31 +37,39 @@ \RequirePackage{trimclip} - -\ExplSyntaxOn -\keys_define:nn {TUDa/beamer/inner} { - authorontitle .bool_gset:N = \g_TUDa_authorontitle_bool, +\keys_define:nn {ptxcd/beamer/inner} { + authorontitle .bool_gset:N = \g_ptxcd_authorontitle_bool, authorontitle .initial:n = false, authorontitle .default:n = true } -\ProcessKeysOptions{TUDa/beamer/inner} - -\box_new:N \l_TUDa_titlegraphic_box +\ProcessKeysOptions{ptxcd/beamer/inner} + +\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 + +\@ifpackageloaded{beamerouterthemeTUDa}{}{ + \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 +} \RenewDocumentCommand{\titlegraphic}{sm}{ \IfBooleanTF{#1}{ \def\inserttitlegraphic{ - \hbox_set:Nn \l_TUDa_titlegraphic_box {\raisebox{\depth}{#2}} - \box_resize_to_wd:Nn \l_TUDa_titlegraphic_box {\width} - \dim_compare:nTF {\box_ht:N \l_TUDa_titlegraphic_box - \l_TUDa_titlegraphic_ht_dim > \c_zero_dim} + \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 - \l__ptxcd_titlegraphic_ht_dim > \c_zero_dim} { - \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l_TUDa_titlegraphic_box - .5\l_TUDa_titlegraphic_ht_dim} - \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l_TUDa_titlegraphic_box} + \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\l__ptxcd_titlegraphic_ht_dim} + \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_TUDa_titlegraphic_box {\l_TUDa_titlegraphic_ht_dim} - \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l_TUDa_titlegraphic_box - \width) / 2} - \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l_TUDa_titlegraphic_box} + \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\l__ptxcd_titlegraphic_ht_dim} + \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} } } }{ @@ -101,52 +78,47 @@ } -\box_new:N \l_TUDa_titlehead_box - -\dim_new:N \l_TUDa_titlegraphic_ht_dim -\dim_new:N \l_TUDa_titlegraphic_wd_dim - \defbeamertemplate*{title~ page}{TUDa}[1][] { \nointerlineskip - \vspace{\dim_eval:n {-\c_TUDa_largerule_dim}} - \hbox_set:Nn \l_TUDa_titlehead_box { - \parbox{\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent}{% + \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=\TUDa@beamer@logosep, + sep=\g__ptxcd_beamer_logosep_dim, ]{title} \raggedright \usebeamerfont{title} \skip_horizontal:n {1ex} - \strut\parbox[t]{\dimexpr\linewidth- \wd\TUDa@logobox-2ex\relax}{ + \strut\parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-2ex\relax}{ \inserttitle \par } - \hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\usebox\TUDa@logobox} + \hspace{\fill}\raisebox{\dimexpr-\height+\ht\strutbox\relax}{\box_use:N \g__ptxcd_logo_box} \ifx\insertsubtitle\@empty \else - \par\vspace{\c_TUDa_largerule_dim} - \skip_horizontal:n {1ex}\parbox[t]{\dimexpr\linewidth- \wd\TUDa@logobox-2ex\relax}{ + \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 authorontrile -\bool_if:NT \g_TUDa_authorontitle_bool { +\bool_if:NT \g_ptxcd_authorontitle_bool { \par\nointerlineskip \begin{beamercolorbox}[ - wd=\linewidth,ht=\c_TUDa_smallrule_dim,dp=\z@]{smallrule} + 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_TUDa_largerule_dim, + sep=\c_ptxcd_largerule_dim, ]{title} \raggedright \skip_horizontal:n {1ex} - \parbox[t]{\dimexpr\linewidth-2ex\relax}{ + \parbox[t]{\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim-2ex\relax}{ \ifx\insertauthor\@empty \else \usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor\par @@ -160,100 +132,100 @@ } } } - \box_use:N \l_TUDa_titlehead_box + \box_use:N \l__ptxcd_titlehead_box \nointerlineskip\begin{beamercolorbox}[ - wd=\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent,ht=\c_TUDa_smallrule_dim,dp=\z@]{smallrule} + wd=\dimexpr\paperwidth-2\g__ptxcd_beamer_sep_dim,ht=\c_ptxcd_smallrule_dim,dp=\z@]{smallrule} \end{beamercolorbox} - \dim_set:Nn \l_TUDa_titlegraphic_ht_dim {\textheight-\box_ht:N\l_TUDa_titlehead_box-\box_dp:N \l_TUDa_titlehead_box - +\c_TUDa_largerule_dim-.5\c_TUDa_rulesep_dim-\c_TUDa_smallrule_dim} - \let\height\l_TUDa_titlegraphic_ht_dim - \dim_set:Nn \l_TUDa_titlegraphic_wd_dim{\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent} - \let\width\l_TUDa_titlegraphic_wd_dim + \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_TUDa_largerule_dim}[\dim_eval:n {\height-\c_TUDa_largerule_dim}][0pt]{\inserttitlegraphic} + \raisebox{-\c_ptxcd_largerule_dim}[\dim_eval:n {\height-\c_ptxcd_largerule_dim}][0pt]{\inserttitlegraphic} \end{beamercolorbox} +% \endgroup } -\ExplSyntaxOff % Blocks -\defbeamertemplate*{block begin}{TUDa} +\defbeamertemplate*{block~begin}{TUDa} { \par\vskip\medskipamount% - \begin{beamercolorbox}[ wd=\dimexpr\linewidth+2\TUDa@beamer@extraindent,sep=.5pt, - leftskip=\dimexpr\ifdim\TUDa@beamer@extraindent>\z@\TUDa@beamer@extraindent-\beamer@colbox@sep\else\z@\fi]{block title} + \begin{beamercolorbox}[ wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,sep=.5pt, + leftskip=\dimexpr\ifdim\l__ptxcd_beamer_extraindent_dim>\z@\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep\else\z@\fi]{block~title} \ifx\insertblocktitle\@empty \else \begin{beamercolorbox}[colsep=.75ex, - wd=\dimexpr\linewidth-1pt\relax]{block title} + wd=\dimexpr\linewidth-1pt\relax]{block~title} \usebeamerfont*{block title}\insertblocktitle% \end{beamercolorbox}% - \ifbeamercolorempty[bg]{block title} + \ifbeamercolorempty[bg]{block~title} {} - {\ifbeamercolorempty[bg]{block body}{}{\par\nointerlineskip\vskip-0.5pt}}% + {\ifbeamercolorempty[bg]{block~body}{}{\par\nointerlineskip\vskip-0.5pt}}% \leavevmode \fi - \begin{beamercolorbox}[colsep=.75ex,vmode, wd=\dimexpr\linewidth-1pt\relax]{block body}% - \usebeamerfont{block body}% - \ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}% + \begin{beamercolorbox}[colsep=.75ex,vmode, wd=\dimexpr\linewidth-1pt\relax]{block~body}% + \usebeamerfont{block~body}% + \ifbeamercolorempty[bg]{block~body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}% } -\defbeamertemplate*{block end}{TUDa} +\defbeamertemplate*{block~end}{TUDa} {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount} -\defbeamertemplate*{block alerted begin}{TUDa} +\defbeamertemplate*{block~alerted~begin}{TUDa} { \par\vskip\medskipamount% \begin{beamercolorbox}[ - wd=\dimexpr\linewidth+2\TUDa@beamer@extraindent, + wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim, sep=1.5pt, - leftskip=\dimexpr\ifdim\TUDa@beamer@extraindent>\z@\TUDa@beamer@extraindent-\beamer@colbox@sep\else\z@\fi, - ]{block frame alerted} + leftskip=\dimexpr\ifdim\l__ptxcd_beamer_extraindent_dim>\z@\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep\else\z@\fi, + ]{block~frame~alerted} \ifx\insertblocktitle\@empty \else - \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block title alerted} - \usebeamerfont*{block title alerted}\insertblocktitle% + \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~title~alerted} + \usebeamerfont*{block~title~alerted}\insertblocktitle% \end{beamercolorbox}% \vskip1.5pt\par\nointerlineskip \fi \leavevmode - \usebeamerfont{block body alerted}% - \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block body alerted}% + \usebeamerfont{block~body~alerted}% + \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~body~alerted}% } -\defbeamertemplate*{block alerted end}{TUDa} +\defbeamertemplate*{block~alerted~end}{TUDa} {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount} -\defbeamertemplate*{block example begin}{TUDa} +\defbeamertemplate*{block~example~begin}{TUDa} { \par\vskip\medskipamount% \begin{beamercolorbox}[ - wd=\dimexpr\linewidth+2\TUDa@beamer@extraindent, + wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim, sep=1.5pt, - leftskip=\dimexpr\ifdim\TUDa@beamer@extraindent>\z@\TUDa@beamer@extraindent-\beamer@colbox@sep\else\z@\fi, - ]{block frame example} + leftskip=\dim_eval:n {\dim_compare:nTF {\l__ptxcd_beamer_extraindent_dim>\c_zero_dim} {\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep} {\c_zero_dim}}, + ]{block~frame~example} \ifx\insertblocktitle\@empty \else - \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block title example} - \usebeamerfont*{block title example}\insertblocktitle% + \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~title~example} + \usebeamerfont*{block~title~example}\insertblocktitle% \end{beamercolorbox}% \vskip1.5pt\par\nointerlineskip \fi \leavevmode - \usebeamerfont{block body example}% - \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block body example}% + \usebeamerfont{block~body~example}% + \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~body~example}% } -\defbeamertemplate*{block example end}{TUDa} +\defbeamertemplate*{block~example~end}{TUDa} {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount} %Itemize Items -\defbeamertemplate*{itemize item}{TUDa}{\usebeamerfont*{itemize item}\raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}} -\defbeamertemplate*{itemize subitem}{TUDa}{\usebeamerfont*{itemize item}\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 subitem}\hbox{--}} +\defbeamertemplate*{itemize~item}{TUDa}{\usebeamerfont*{itemize~item}\raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}} +\defbeamertemplate*{itemize~subitem}{TUDa}{\usebeamerfont*{itemize~item}\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~subitem}\hbox{--}} \mode<all> diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty index 52389e9d59..88558b2a85 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamerouterthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamerouterthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,149 +26,171 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{beamerouterthemeTUDa} - [\filedate\space\fileversion] +\ProvidesExplPackage{beamerouterthemeTUDa}{\filedate}{\fileversion}{Outer~beamer~theme~of~tuda-ci} \RequirePackage{l3keys2e} +\RequirePackage[paper=slide]{tudarules} + + +\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} -\ExplSyntaxOn -\keys_define:nn {TUDa/beamer/outer} { - logo .bool_gset:N = \g_TUDa_headlinelogo_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_TUDa_logofile_tl, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, logofile .initial:n = tuda_logo, - colorframetitle .bool_gset:N = \g_TUDa_colorframetitle_bool, - colorframetitle .initial:n = false, - colorframetitle .default:n = true, - centerframetitle .bool_gset:N = \g_TUDa_centerframetitle_bool, - centerframetitle .initial:n = false, - centerframetitle .default:n = true, + 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, +} + +\define@key{beamerframe}{bgcolor}{ + \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_new:Nn \__ptxcd_set_framebgcolor:n { + \cs_if_exist:cTF {\string\color@#1} + {\setbeamercolor{normal~text}{bg=#1}} + {\setbeamercolor{normal~text}{bg=TUDa-#1}} } +\BeforeBeginEnvironment{frame}{ + \cs_if_exist:NT \__ptxcd_save_background_canvas: { + \__ptxcd_reset_framebgcolor: + } +} -\ProcessKeysOptions{TUDa/beamer/outer} +\ProcessKeysOptions{ptxcd/beamer/outer} \mode<presentation> \RequirePackage{graphicx} -\RequirePackage[paper=slide]{tudarules} -\newlength{\TUDa@beamer@sep} -\setlength{\TUDa@beamer@sep}{1em} -\newlength{\TUDa@beamer@logosep} -\setlength{\TUDa@beamer@logosep}{2mm} -\newlength{\TUDa@beamer@extraindent} -\ExplSyntaxOn -\bool_if:NT \g_TUDa_colorframetitle_bool {\setlength{\TUDa@beamer@extraindent}{\TUDa@beamer@logosep}} +\bool_if:NT \g__ptxcd_colorframetitle_bool + {\dim_set:Nn \l__ptxcd_beamer_extraindent_dim {\g__ptxcd_beamer_logosep_dim}} \setbeamersize{ - text~margin~left= \dimexpr\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax, - text~margin~right=\dimexpr\TUDa@beamer@sep+\TUDa@beamer@extraindent\relax, + 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, } -\newlength{\TUDa@beamer@linewidth} -\setlength{\TUDa@beamer@linewidth}{\dimexpr\paperwidth-2\TUDa@beamer@sep-2\TUDa@beamer@extraindent\relax} +\cs_new:Nn \__ptxcd_beamer_linewidth: {\dim_eval:n {\paperwidth-\beamer@leftmargin-\beamer@rightmargin}} %Logo -\newsavebox{\TUDa@logobox} -\sbox{\TUDa@logobox}{% - \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}% +\box_new:N \g__ptxcd_logo_box +\hbox_gset:Nn \g__ptxcd_logo_box {% + \makebox[2.2\c_ptxcd_logoheight_dim][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}% } -\TUDa@makeheadrule[color=identbarcolor,width=\paperwidth-2\TUDa@beamer@sep]{TUDa@beamer@headrule} -\TUDa@makefootrule[width=\paperwidth-2\TUDa@beamer@sep]{TUDa@beamer@rule} - -\newlength{\TUDa@beamer@headheight} -\setlength{\TUDa@beamer@headheight}{ -\dim_eval:n { - \ht\TUDa@logobox+ - \dp\TUDa@logobox + - 2\TUDa@beamer@logosep+ - \box_ht:N \TUDa@beamer@rule_box + - \box_dp:N \TUDa@beamer@rule_box -}} - - -\ExplSyntaxOff - - -\def\tudrule{\TUDa@beamer@rule} - +\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}{TUD theme}{} -\defbeamertemplate*{sidebar right}{TUD theme}{} +\defbeamertemplate*{sidebar~left}{TUDa}{} +\defbeamertemplate*{sidebar~right}{TUDa}{} -\ExplSyntaxOn +\bool_if_exist:NF \l_ptxcd_tmpa_bool {\bool_new:N \l_ptxcd_tmpa_bool} -\bool_if_exist:NF \l_TUDa_tmpa_bool {\bool_new:N \l_TUDa_tmpa_bool} - -\defbeamertemplate*{footline}{TUDa theme} +\defbeamertemplate*{footline}{TUDa} { - \begin{beamercolorbox}[leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep, - ht=\csname c_TUDa_smallrule_dim\endcsname,dp=1mm]{footline} - \TUDa@beamer@rule + \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=\TUDa@beamer@sep, - rightskip=\TUDa@beamer@sep, ht=2.75mm,dp=2.75mm]{footline} + \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_TUDa_tmpa_bool + \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_TUDa_tmpa_bool {~|~} - {\bool_set_true:N \l_TUDa_tmpa_bool} + \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_TUDa_tmpa_bool {~|~} + \bool_if:NT \l_ptxcd_tmpa_bool {~|~} \insertframenumber \hfill\raisebox{\dimexpr-.5\height+\dp\strutbox\relax}{\insertlogo} - \end{beamercolorbox} + \end{beamercolorbox} } \RenewDocumentCommand{\logo}{sm}{ \IfBooleanTF{#1}{ - \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}}%TODO change with aspectratio + \setbeamertemplate{logo}{\resizebox{!}{.06\beamer@paperheight}{\mbox{#2}}} }{ \setbeamertemplate{logo}{#2} } } -\defbeamertemplate{headline}{TUDa theme.logo} {% +\defbeamertemplate{headline}{TUDa.logo} {% \begin{beamercolorbox}[ - leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep, - ht=.75\TUDa@beamer@sep,dp=\box_dp:N \TUDa@beamer@headrule_box]{headline} - \TUDa@beamer@headrule + 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_TUDa_frametitle_box +\box_new:N \l__ptxcd_frametitle_box -\defbeamertemplate{frametitle}{TUDa~theme.logo}{% +\defbeamertemplate{frametitle}{TUDa.logo}{% \nointerlineskip% \begin{beamercolorbox}[ - sep=\TUDa@beamer@logosep, - wd=\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent\relax, - rightskip=-\TUDa@beamer@logosep, - leftskip=\dimexpr-\TUDa@beamer@logosep+\TUDa@beamer@extraindent\relax, + sep=\g__ptxcd_beamer_logosep_dim, + 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_TUDa_frametitle_box { + \hbox_set:Nn \l__ptxcd_frametitle_box { \parbox[t] - {\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{% + {\dim_eval:n {\linewidth- \box_wd:N \g__ptxcd_logo_box-1em}}{% \usebeamerfont{frametitle}\strut\insertframetitle \ifx\insertframesubtitle\@empty \else @@ -179,39 +201,58 @@ \fi }} \leavevmode - \bool_if:NTF \g_TUDa_centerframetitle_bool + \bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\use:n} - {\box_use:N \l_TUDa_frametitle_box} + {\box_use:N \l__ptxcd_frametitle_box} \hfill% - \bool_if:NTF \g_TUDa_centerframetitle_bool + \bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\raisebox{\dimexpr-\height+\ht\strutbox}} - {\usebox\TUDa@logobox} + {\box_use:N \g__ptxcd_logo_box} \end{beamercolorbox}% -\nointerlineskip -\leavevmode\color{black}\hspace*{-\TUDa@beamer@extraindent}\rlap{\TUDa@beamer@rule}% +\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} +} } -\defbeamertemplate*{headline}{TUDa~theme.nologo} +\defbeamertemplate*{headline}{TUDa.nologo} {% - \vspace{.75\TUDa@beamer@sep} + \vspace{.75\g__ptxcd_beamer_sep_dim} \begin{beamercolorbox}[ - leftskip=\TUDa@beamer@sep,rightskip=\TUDa@beamer@sep]{headline} - \TUDa@beamer@headrule + 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} + } +} -\defbeamertemplate*{frametitle}{TUDa~theme.nologo}{% +\defbeamertemplate*{frametitle}{TUDa.nologo}{% \nointerlineskip% \begin{beamercolorbox}[ - sep=\TUDa@beamer@logosep, - wd=\dimexpr\TUDa@beamer@linewidth+2\TUDa@beamer@extraindent\relax, - leftskip=\dimexpr-\TUDa@beamer@logosep+\TUDa@beamer@extraindent\relax, + 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_TUDa_frametitle_box { + \hbox_set:Nn \l__ptxcd_frametitle_box { \parbox[t] - {\dimexpr\linewidth- \wd\TUDa@logobox-1em\relax\relax}{% + {\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box-1em\relax\relax}{% \usebeamerfont{frametitle}\strut\insertframetitle \ifx\insertframesubtitle\@empty \else @@ -222,37 +263,46 @@ \fi }} \leavevmode -\bool_if:NTF \g_TUDa_centerframetitle_bool +\bool_if:NTF \g_ptxcd_centerframetitle_bool {\raisebox{\dimexpr-.5\height+.5\depth}} {\use:n} -{\box_use:N \l_TUDa_frametitle_box} +{\box_use:N \l__ptxcd_frametitle_box} % Rule for voffset similar to logo \rule[\dim_eval:n { - \bool_if:NTF \g_TUDa_centerframetitle_bool - {-.5\ht\TUDa@logobox+.5\dp\TUDa@logobox} {-\ht\TUDa@logobox+\ht\strutbox} - }]{0pt}{\dimexpr\ht\TUDa@logobox+\dp\TUDa@logobox\relax} + \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 -\TUDa@beamer@rule + \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 \TUDa_setup_frame: { - \bool_if:NTF \g_TUDa_headlinelogo_bool { - \setbeamertemplate{frametitle}[TUDa~ theme.logo] - \setbeamertemplate{headline}[TUDa~ theme.logo] +\cs_new:Nn \ptxcd_setup_frame: { + \bool_if:NTF \g_ptxcd_headlinelogo_bool { + \setbeamertemplate{frametitle}[TUDa.logo] + \setbeamertemplate{headline}[TUDa.logo] }{ - \setbeamertemplate{frametitle}[TUDa~ theme.nologo] - \setbeamertemplate{headline}[TUDa~ theme.nologo] + \setbeamertemplate{frametitle}[TUDa.nologo] + \setbeamertemplate{headline}[TUDa.nologo] } } -\TUDa_setup_frame: +\ptxcd_setup_frame: \newcommand*{\setupTUDaFrame}[1]{ - \keys_set:nn {TUDa/beamer/outer} {#1} - \TUDa_setup_frame: + \keys_set:nn {ptxcd/beamer/outer} {#1} + \ptxcd_setup_frame: } -\ExplSyntaxOff \mode diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty new file mode 100644 index 0000000000..745b113ed7 --- /dev/null +++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty @@ -0,0 +1,308 @@ +%% This is file `beamerthemeTUDa-mecheng.sty' version 3.00 (2020/09/08), +%% it is part of +%% TUDa-CI -- Corporate Design for TU Darmstadt +%% ---------------------------------------------------------------------------- +%% +%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> +%% +%% ============================================================================ +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2008/05/04 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainers of this work are +%% Marei Peischl <tuda-ci@peitex.de> +%% Markus Lazanowski <latex@ce.tu-darmstadt.de> +%% +%% The development respository can be found at +%% https://github.com/tudace/tuda_latex_templates +%% Please use the issue tracker for feedback! +%% +%% ============================================================================ +%% +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\RequirePackage{expl3} +\ProvidesExplPackage{beamerthemeTUDa-mecheng}{\filedate}{\fileversion}{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<beamer> + + +% Setup Arrow +\RequirePackage{pgf} + +\cs_new:Nn \__ptxcd_mecheng_arrow:N { + \begin{pgfpicture} + \pgfsetcolor{TUDa-Arrow} + \pgfsetrectcap + \pgfsetlinewidth{2\c_ptxcd_smallrule_dim} + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{174}{.05#1}} + \pgfpathlineto{\pgfpointpolar{186}{.05#1}} + \pgfpathclose + \pgfusepath{fill} + \pgfpathmoveto{\pgfpoint{-.04#1}{0}} + \pgfpathlineto{\pgfpoint{-#1}{0}} + \pgfusepath{stroke} + \end{pgfpicture} +} + +\NewDocumentCommand{\MechEngArrow}{sm}{ + \IfBooleanT{#1}{\begingroup\colorlet{TUDa-Arrow}{.}} + \dim_set:Nn \l_tmpa_dim {#2}\__ptxcd_mecheng_arrow:N \l_tmpa_dim + \IfBooleanT{#1}{\endgroup} +} + +%adjustments for colortheme +\ExplSyntaxOff +\setbeamercolor*{Primary1}{fg=TUDa-Primary1, bg=TUDa-Primary2} +\setbeamercolor*{Primary2}{fg=TUDa-Primary2, bg=TUDa-Primary1} + +\setbeamercolor*{footer info}{fg=black!50} +\setbeamercolor*{department in head/foot}{parent=footer info} +\setbeamercolor*{institute in head/foot}{parent=footer info} +\setbeamercolor*{title in head/foot}{parent=footer info} +\setbeamercolor*{author in head/foot}{parent=footer info} +\setbeamercolor*{date in head/foot}{parent=footer info} +\setbeamercolor{footline}{use=Primary2,fg=Primary2.fg} +\setbeamercolor*{title}{parent=normal~text} + +\setbeamercolor*{departmentlogo}{parent=normal text} +\setbeamercolor*{logo}{parent=normal text} + +\ExplSyntaxOn + +%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 + } + \hbox_set:Nn \l__ptxcd_titlehead_box { + \parbox{\__ptxcd_beamer_linewidth:}{% + \begin{beamercolorbox}[ + wd=\linewidth, + ]{title} + \raggedright + \usebeamerfont{title} + \hbox_set:Nn \l__ptxcd_frametitle_box { + \parbox[c]{\dimexpr\linewidth-\box_wd:N \g__ptxcd_logo_box-1em\relax}{ + \raggedright{} + \inserttitle + \par + } + } + \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} + \ifx\insertsubtitle\@empty + \else + \par\vspace{\c_ptxcd_largerule_dim} + \parbox[t]{\dimexpr\linewidth- \box_wd:N \g__ptxcd_logo_box\relax}{ + \usebeamerfont{subtitle}\insertsubtitle + } + \fi + \bool_if:NT \g_ptxcd_authorontitle_bool { + \par + \parbox[t]{\dimexpr\linewidth-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 + \par\skip_vertical:n {\textheight-\box_ht:N\l__ptxcd_titlehead_box-\box_dp:N \l__ptxcd_titlehead_box+.5\c_ptxcd_smallrule_dim} + \begin{beamercolorbox}[ + rightskip=.07\linewidth,%place image left of arrow tip + ht=\c_ptxcd_smallrule_dim,%dp=1mm, + wd=\dimexpr\textwidth]{footline} + \setbeamertemplate{departmentlogo}[TUDa-mecheng][width=\dimexpr2\linewidth/11\relax] + \insertdepartmentlogo + \hfill + \bool_if:NF \g_ptxcd_authorontitle_bool { + \begingroup + \usebeamerfont{footline} + \bool_set_false:N \l_ptxcd_tmpa_bool + \clist_map_variable:nNn {department, institute, author,date} \l_tmpa_tl { + \tl_if_empty:cF {beamer@short\l_tmpa_tl} { + \bool_if:NTF \l_ptxcd_tmpa_bool + {\space|\space} + {\bool_set_true:N \l_ptxcd_tmpa_bool} + \use:c {insert\l_tmpa_tl} + } + } + \endgroup + \quad + } + \insertlogo + \par\nointerlineskip\skip_vertical:n {2\c_ptxcd_smallrule_dim} + \MechEngArrow*{\linewidth} + \end{beamercolorbox} +} + + +\defbeamertemplate{background}{TUDa-mecheng-title}{ + \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\paperheight} + \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth} + \let\height\paperheight + \let\width\paperwidth + \inserttitlegraphic +} + + +\renewcommand*{\maketitle}{ + \begingroup + \setbeamertemplate{background}[TUDa-mecheng-title] + \ifbeamer@inframe\titlepage\else\frame[plain]{\titlepage}\fi + \endgroup +} + +\newcommand*{\insertdepartmentlogo}{\usebeamertemplate*{departmentlogo}} + +\defbeamertemplate*{departmentlogo}{TUDa-mecheng}[1][height=1.7\baselineskip]{ + \str_set:Nx \l_tmpa_str {\str_range:Nnn \beamer@thc@fg {1} {-4}} + \file_if_exist:nTF {\g_ptxcd_departmentlogo_tl-\l_tmpa_str.pdf} { + \includegraphics[#1]{\g_ptxcd_departmentlogo_tl-\l_tmpa_str} + } { + \includegraphics[#1]{\g_ptxcd_departmentlogo_tl} + } +} + +\defbeamertemplate*{footline}{TUDa-mecheng} +{ + \begin{beamercolorbox}[ + wd=\linewidth, + leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin, + ]{footline} + \MechEngArrow*{\linewidth} + \par\skip_vertical:n {.5\g__ptxcd_beamer_logosep_dim} + \makebox[\linewidth][s]{ + \insertdepartmentlogo + \hfill + \bool_set_false:N \l_ptxcd_tmpa_bool + \clist_map_variable:nNn {department, institute, author,title} \l_tmpa_tl { + \tl_if_empty:cF {beamer@short\l_tmpa_tl} { + \bool_if:NTF \l_ptxcd_tmpa_bool + {\space|\space} + {\bool_set_true:N \l_ptxcd_tmpa_bool} + \usebeamercolor[fg]{\l_tmpa_tl\space in\space head/foot}\usebeamerfont{\l_tmpa_tl\space in\space head/foot} + \use:c {insertshort\l_tmpa_tl} + } + }\quad + \tl_if_empty:cF {beamer@shortdate} { + \usebeamercolor{date~ in~ head/foot}\usebeamerfont{date~ in~ head/foot} + \insertshortdate\quad + } + \usebeamerfont{framenumber} + \makebox[.05\linewidth][l]{ + \quad\llap{\insertframenumber} + } + } + \skip_vertical:n {\g__ptxcd_beamer_logosep_dim} + \end{beamercolorbox} +} + +\defbeamertemplate{frametitle}{TUDa-mecheng.logo}{% + \nointerlineskip% + \begin{beamercolorbox}[ + 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} + \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} + \hfill% + \raisebox{\dimexpr-.5\height+.5\depth} + {\box_use:N \g__ptxcd_logo_box} + \end{beamercolorbox}% + \nointerlineskip + \begin{beamercolorbox}[ + sep=\g__ptxcd_beamer_logosep_dim, + wd=\__ptxcd_beamer_linewidth:, + rightskip=-\g__ptxcd_beamer_logosep_dim, + leftskip=\dimexpr-\g__ptxcd_beamer_logosep_dim\relax, + ht=\c_ptxcd_smallrule_dim. + dp=0 + ]{smallrule} + \end{beamercolorbox} +} + +\cs_set:Nn \__ptxcd_reset_framebgcolor: { + \setbeamercolor{normal~text}{fg=black,bg=} + \usebeamercolor[fg]{normal~text} + \setbeamercolor{footline}{use=Primary2,fg=Primary2.fg} + \setbeamercolor{footer~info}{fg=black!50} + \cs_gset_eq:cN {beamer@thcbg@normal~text} \__ptxcd_save_background_canvas: + \cs_undefine:N \__ptxcd_save_background_canvas: + \cs_if_exist:NT \__ptxcd_save_department_textaccentcolor: + {\cs_set_eq:cN {\string\color@textaccentcolor} \__ptxcd_save_department_textaccentcolor:} + \cs_undefine:N \__ptxcd_save_department_textaccentcolor: + \__ptxcd_setup_frametitle_color: +} + +\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}} + }{ + \exp_args:Nnx \setbeamercolor{frametitle}{use=\l_tmpa_tl,fg=\l_tmpa_tl.fg,bg=} + \exp_args:Nnx \setbeamercolor{normal~text}{use=\l_tmpa_tl,fg=\l_tmpa_tl.fg,bg=\l_tmpa_tl.bg} + \exp_args:Nnx \setbeamercolor{footer~info}{use=\l_tmpa_tl,fg=\l_tmpa_tl.fg} + \exp_args:Nnx \setbeamercolor{footline}{use=\l_tmpa_tl,fg=\l_tmpa_tl.fg} + \cs_set_eq:Nc \__ptxcd_save_department_textaccentcolor: {\string\color@textaccentcolor} + \colorlet{textaccentcolor}{TUDa-\l_tmpa_tl} + }{ + \cs_if_exist:cTF {\string\color@#1} + {\setbeamercolor{normal~text}{bg=#1}} + {\setbeamercolor{normal~text}{bg=TUDa-#1}} + } + \usebeamercolor[fg]{normal~text} +} + +\setbeamertemplate{headline}[TUDa.simple] + +%font adjustments +\setbeamerfont{subtitle}{size=\normalsize,series=\mdseries} + +\mode<all> + +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty index c3c4cf8052..9f61b08382 100644 --- a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty +++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty @@ -1,4 +1,4 @@ -%% This is file `beamerthemeTUDa.sty' version 2.11 (2020/06/12), +%% This is file `beamerthemeTUDa.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{beamerthemeTUDa} [\filedate\space\fileversion\space beamer theme using the Corporate Design of TU Darmstadt] @@ -39,16 +39,16 @@ \ExplSyntaxOn -\keys_define:nn {TUDa/beamer} { +\keys_define:nn {ptxcd/beamer} { accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors}, - colortitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa}, - colorbacktitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa}, - colorframetitle .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa}, - colorback .code:n = \PassOptionsToPackage{accentcolor=#1}{beamercolorthemeTUDa}, + 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} } -\ProcessKeysOptions{TUDa/beamer} +\ProcessKeysOptions{ptxcd/beamer} \ExplSyntaxOff @@ -56,9 +56,8 @@ \usecolortheme{TUDa} \useoutertheme{TUDa} \useinnertheme{TUDa} -% \setbeamertemplate{navigation symbols}{} -%\setbeamersize{text margin left=1em,text margin right=1em} + \mode<all> diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo index d91a49f15c..96dcf95d8d 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a0paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a0paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a0paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a0paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{125pt}{165pt}} - \cs_set:Nn \TUDa_subtitle_fontsize: {{42pt}{55pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{28pt}{35pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a0paper.clo}{\filedate}{\fileversion}{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_subtitle_fontsize: {{42pt}{55pt}} + \cs_set:Nn \ptxcd_titleinfo_fontsize: {{28pt}{35pt}} } -\cs_set:Nn \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {30pt}} - \dim_gset:Nn \g_TUDa_margin_dim {30mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo index d42ccca4c7..9671c338ad 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a1paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a1paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a1paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a0paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{86pt}{120pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{35pt}{42pt}} - \cs_set:Nn \TUDa_titlethanks_fontsize: {{22pt}{26pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a1paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper} +\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 \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {25pt}} - \dim_gset:Nn \g_TUDa_margin_dim {30mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo index 524c7be21d..649804ee10 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a2paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a2paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a2paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a0paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{65pt}{82pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{22pt}{28pt}} - \cs_set:Nn \TUDa_titlethanks_fontsize: {{14pt}{20pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a2paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper} +\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 \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {25pt}} - \dim_gset:Nn \g_TUDa_margin_dim {30mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo index 2ea4782a79..7eb16621da 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a3paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a3paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a3paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a3paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{47pt}{61pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{16pt}{20pt}} - \cs_set:Nn \TUDa_titlethanks_fontsize: {{12pt}{16pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a3paper.clo}{\filedate}{\fileversion}{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 \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {17pt}} - \dim_gset:Nn \g_TUDa_margin_dim {15mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo index 351d8ec4fd..00f4d4e110 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a4paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a4paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a4paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a4paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{36pt}{47pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{12pt}{14pt}} - \cs_set:Nn \TUDa_titlethanks_fontsize: {{10pt}{11.5pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a4paper.clo}{\filedate}{\fileversion}{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 \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {14pt}} - \dim_gset:Nn \g_TUDa_margin_dim {15mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo index 800de12c62..608441280b 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo +++ b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo @@ -1,4 +1,4 @@ -%% This is file `tuda-a5paper.clo' version 2.11 (2020/06/12), +%% This is file `tuda-a5paper.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,16 +26,16 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\ProvidesExplFile{tuda-a5paper.clo}{\filedate}{\fileversion}{tuda-ci size adjustments for a5paper} -\cs_set:Nn \TUDa_setup_title_sizes: { - \cs_set:Nn \TUDa_title_fontsize: {{22pt}{28pt}} - \cs_set:Nn \TUDa_titleinfo_fontsize: {{10pt}{11.5pt}} - \cs_set:Nn \TUDa_titlethanks_fontsize: {{10pt}{11.5pt}} +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\ProvidesExplFile{tuda-a5paper.clo}{\filedate}{\fileversion}{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 \TUDa_setup_base_sizes: { - \tl_if_empty:NT \g_TUDa_fontsize_tl {\tl_gset:Nn \g_TUDa_fontsize_tl {10pt}} - \dim_gset:Nn \g_TUDa_margin_dim {12mm} +\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} } \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty index d1d928d5cc..cf6400471b 100644 --- a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty +++ b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty @@ -1,4 +1,4 @@ -%% This is file `tuda-pgfplots.sty' version 2.11 (2020/06/12), +%% This is file `tuda-pgfplots.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} % 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] diff --git a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls index 32a4d6b633..f7ba16e972 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls @@ -1,4 +1,4 @@ -%% This is file `tudabeamer.cls' version 2.11 (2020/06/12), +%% This is file `tudabeamer.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{tudabeamer} [\filedate\space\fileversion\space] @@ -35,54 +35,72 @@ \RequirePackage{l3keys2e} \RequirePackage{URspecialopts} -\Define@specialopt@Module[TUDa/beamer] +\Define@specialopt@Module[ptxcd/beamer] \PassOptionsToClass{10pt}{beamer} -\Module@DefineSpecialPassKey[TUDa/beamer]{color}<tudacolors> +\Module@DefineSpecialPassKey[ptxcd/beamer]{color}<tudacolors> \ExplSyntaxOn -\keys_define:nn {TUDa/beamer} { +\str_new:N \g_ptxcd_department_str +\keys_define:nn {ptxcd/beamer} { accentcolor .code:n = \PassOptionsToPackage{accentcolor=#1}{tudacolors}, colorframetitle .code:n = \PassOptionsToPackage{\l_keys_key_tl=#1}{beamercolorthemeTUDa} \PassOptionsToPackage{\l_keys_key_tl=#1}{beamerouterthemeTUDa}, colorframetitle .default:n = true, logo .code:n = \PassOptionsToPackage{logo=#1}{beamerouterthemeTUDa}, - pdfa .bool_gset:N = \g_TUDa@pdfa_bool, + 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, + mecheng .meta:n = {department=mecheng}, + departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl, + departmentlogofile .initial:n =, } \clist_map_inline:nn {colortitle, colorbacktitle, colorback} { - \Module@DeclarePassOption[TUDa/beamer]{#1}{beamercolorthemeTUDa} + \Module@DeclarePassOption[ptxcd/beamer]{#1}{beamercolorthemeTUDa} +} + +\clist_map_inline:nn {centerframetitle, logo, headsepline} { + \Module@DeclarePassOption[ptxcd/beamer]{#1}{beamerouterthemeTUDa} } -\Module@DeclarePassOption[TUDa/beamer]{centerframetitle}{beamerouterthemeTUDa} -\Module@DeclarePassOption[TUDa/beamer]{authorontitle}{beamerinnerthemeTUDa} +\Module@DeclarePassOption[ptxcd/beamer]{authorontitle}{beamerinnerthemeTUDa} \ExplSyntaxOff -\Module@DeclarePassOption[TUDa/beamer]{logo}{beamerouterthemeTUDa} + \PassOptionsToPackage{pdfpagelabels=false,plainpages=false}{hyperref} \PassOptionsToClass{t}{beamer} -\Module@Process@SpecialOptions[TUDa/beamer] +\Module@Process@SpecialOptions[ptxcd/beamer] \DeclareOption*{% \PassOptionsToClass{\CurrentOption}{beamer} } -\ProcessKeysOptions{TUDa/beamer} +\ProcessKeysOptions{ptxcd/beamer} \ProcessOptions* \ExplSyntaxOn -\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} +\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} -\bool_if:NT \g_TUDa@pdfa_bool { +\bool_if:NT \g_ptxcd_pdfa_bool { \RequirePackage{scrlfile} \PreventPackageFromLoading{hyperref} \def\hypersetup#1{} @@ -93,28 +111,18 @@ \LoadClass{beamer} \ExplSyntaxOn -\bool_if:NT \g_TUDa@pdfa_bool { +\bool_if:NT \g_ptxcd_pdfa_bool { \UnPreventPackageFromLoading{hyperref} \PassOptionsToPackage{a-2b}{pdfx} \RequirePackage{pdfx} } -\ExplSyntaxOff - \hypersetup{hidelinks, unicode} -% Load the TUD theme -\AtEndOfClass{% - \usetheme{TUDa}% - \@input{\jobname.len}% - \@starttoc{len}% - \let\accentfont\normalfont% -} - %\department command -\def\department{\@dblarg\TUDa@beamer@department} +\def\department{\@dblarg\ptxcd_beamer_department} -\long\def\TUDa@beamer@department[#1]#2{% +\long\def\ptxcd_beamer_department[#1]#2{% \def\beamer@temp{#2}% \ifx\beamer@temp\@empty \def\insertdepartment{} @@ -131,42 +139,39 @@ \beamer@insertshort{\beamer@shortdepartment}% }} %end of \department command -% - -\ExplSyntaxOn -\if_bool:N \g_TUDa@pdfa_bool -\iow_new:N \TUDa@xmpdata_stream -\iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata} -\tl_new:N \g_TUDa@xmp_title -\tl_new:N \g_TUDa@xmp_author +\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 \TUDa_pass_TitleData: { +\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_TUDa_pass_TitleData_bool { - \tl_gset:Nx \g_TUDa@xmp_title {\insertshorttitle} - \tl_gset:Nx \g_TUDa@xmp_author {\insertshortauthor} - \iow_now:Nx \TUDa@xmpdata_stream + \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_TUDa@xmp_title} + \exp_not:N \Title{\tl_to_str:V \g_ptxcd_xmp_title} ^^J - \exp_not:N \Author{\tl_to_str:V \g_TUDa@xmp_author} + \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_TUDa_MetaData_prop {Creator} {\prop_gput:Nnn \g_TUDa_MetaData_prop {Creator} {LaTeX~ using~ the~ TUDa-CI~ Bundle}} - \prop_map_function:NN \g_TUDa_MetaData_prop \TUDa_write_xmp_line:nn + \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 \TUDa_write_xmp_line:nn { +\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 { @@ -178,32 +183,42 @@ \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} } \cs_if_exist:cTF {\l_tmpa_tl}{ - \iow_now:Nx \TUDa@xmpdata_stream { + \iow_now:Nx \ptxcd_xmpdata_stream { \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} } }{ - \msg_error:nnn {TUDapub} {unknown-metadata} {#1} + \msg_error:nnn{tudapub} {unknown-metadata} {#1} } } -\bool_new:N \g_TUDa_pass_TitleData_bool -\bool_gset_true:N \g_TUDa_pass_TitleData_bool -\prop_new:N \g_TUDa_MetaData_prop +\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_TUDa_pass_TitleData_bool - \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#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} { +\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} +\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}% +\@input{\jobname.len}% +\@starttoc{len}% +\let\accentfont\normalfont% +\file_if_exist:nT {beamerthemeTUDa-\g_ptxcd_department_str.sty} {\usetheme{TUDa-\g_ptxcd_department_str}} + \ExplSyntaxOff \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.def b/macros/latex/contrib/tuda-ci/tex/tudacolors.def index 3fa655b7b1..b54b0455c4 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudacolors.def +++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.def @@ -1,4 +1,4 @@ -%% This is file `tudacolors.def' version 2.11 (2020/06/12), +%% This is file `tudacolors.def' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \ProvidesFile{tudacolors.def} [\filedate\space\fileversion\space Color definitions for tuda-ci] diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty index 2b604e9d56..87094ee3c1 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty @@ -1,4 +1,4 @@ -%% This is file `tudacolors.sty' version 2.11 (2020/06/12), +%% This is file `tudacolors.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,84 +26,107 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudacolors}{\filedate}{\fileversion}{Color definition for TU Darmstadt's tuda-ci bundle} \RequirePackage{l3keys2e} -\keys_define:nn {TUDa/colors} { - accent .tl_gset:N = \g_TUDa_color_accent_tl, +\str_if_exist:NF \g_ptxcd_department_str { + \str_new:N \g_ptxcd_department_str + \str_gset:Nn \g_ptxcd_department_str {default} +} + +\keys_define:nn {ptxcd/colors} { + accent .tl_gset:N = \g_ptxcd_color_accent_tl, accent .initial:n = 0b, - textaccent .tl_gset:N = \g_TUDa_color_textaccent_tl, - textaccent .initial:n = \g_TUDa_color_accent_tl, - identbar .tl_gset:N = \g_TUDa_color_identbar_tl, - identbar .initial:n = \g_TUDa_color_accent_tl, + 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 .meta:n = {accent=#1, textaccent=#1, identbar=#1}, text .choice:, - text/preferblack .code:n = \bool_gset_false:N \g_TUDa_color_whitetext_bool, - text/preferwhite .code:n = \bool_gset_true:N \g_TUDa_color_whitetext_bool, + text/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 .initial:V = \g_ptxcd_department_str, + mecheng .meta:n = {department=mecheng}, } -\ProcessKeysOptions{TUDa/colors} +\ProcessKeysOptions{ptxcd/colors} \RequirePackage{xcolor} \input{tudacolors.def} +\str_if_eq:VnT \g_ptxcd_department_str {mecheng} { + \colorlet{TUDa-Primary1}{TUDa-6b} + \colorlet{TUDa-Primary2}{TUDa-2d} + \colorlet{TUDa-Secondary1}{TUDa-9a} + \colorlet{TUDa-Secondary2}{TUDa-8a} + \colorlet{TUDa-Secondary3}{TUDa-6a} + \colorlet{TUDa-Secondary4}{TUDa-3a} + \colorlet{TUDa-Secondary5}{TUDa-4a} + \colorlet{TUDa-Secondary6}{TUDa-5a} + \colorlet{TUDa-Arrow}{TUDa-Primary2} +} + \clist_map_inline:nn {accent, textaccent, identbar} { - \cs_if_exist:cF {\string\color@\tl_use:c {g_TUDa_color_#1_tl}} { - \cs_if_exist:cT {\string\color@TUDa-\tl_use:c {g_TUDa_color_#1_tl}} { - \tl_gset:cx {g_TUDa_color_#1_tl} {TUDa-\tl_use:c {g_TUDa_color_#1_tl}} + \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}} }} } -\clist_const:Nn \c_TUDa_color_forbid_textaccent_clist {TUDa-0a,TUDa-5a,TUDa-6a,TUDa-6b,TUDa-7a} -\clist_const:Nn \c_TUDa_color_allow_blacktext_clist {TUDa-0a,TUDa-0b,TUDa-0c,TUDa-1a,TUDa-2a,TUDa-3a,TUDa-4a,TUDa-4b,TUDa-4c,TUDa-5a,TUDa-5b,TUDa-5c,TUDa-6a,TUDa-6b,TUDa-6c,TUDa-7a,TUDa-7b,TUDa-7c,TUDa-8a,TUDa-8b,TUDa-8c,TUDa-9a,TUDa-9b,TUDa-10a} -\clist_const:Nn \c_TUDa_color_allow_whitetext_clist {TUDa-0b,TUDa-0c,TUDa-0d,black,TUDa-1a,TUDa-1b,TUDa-1c,TUDa-1d,TUDa-2a,TUDa-2b,TUDa-2c,TUDa-2d,TUDa-3a,TUDa-3b,TUDa-3c,TUDa-3d,TUDa-4b,TUDa-4c,TUDa-4d,TUDa-5b,TUDa-5c,TUDa-5d,TUDa-6c,TUDa-6d,TUDa-7b,TUDa-7c,TUDa-7d,TUDa-8a,TUDa-8b,TUDa-8c,TUDa-8d,TUDa-9a,TUDa-9b,TUDa-9c,TUDa-9d,TUDa-10a,TUDa-10b,TUDa-10c,TUDa-10d,TUDa-11a,TUDa-11b,TUDa-11c,TUDa-11d} +\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} {undefined-color} {The~ color~ #1~ you~ selected~ is~ not~ defined.} {See~ the~ tuda-ci~ manual~ for~ a~ list~ of~ available~ colors.} +\msg_new:nnnn{tudacolors} {unselectable-color} {The~ color~ you~ selected~ (#1)~ must~ not~ be~ choosen~ for~ #2.} {See~ the~ Corporate~ Design~ Guidelines~ for~ further~ information.} %select accentcolor -\exp_args:Nnx \colorlet{accentcolor}{\g_TUDa_color_accent_tl} -\bool_if:NTF \g_TUDa_color_whitetext_bool { - \clist_if_in:NVTF \c_TUDa_color_allow_whitetext_clist \g_TUDa_color_accent_tl { +\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_TUDa_color_accent_tl {TUDa} {\msg_warning:nnxx {tudacolors} {unselectable-color} {white} {textonaccentcolor}} + \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {\msg_warning:nnxx{tudacolors} {unselectable-color} {white} {textonaccentcolor}} } } { - \clist_if_in:NVTF \c_TUDa_color_allow_blacktext_clist \g_TUDa_color_accent_tl { + \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_TUDa_color_accent_tl {TUDa} {msg_warning:nnxx {tudacolors} {unselectable-color} {black} {textonaccentcolor}} + \tl_if_in:NnT \g_ptxcd_color_accent_tl {TUDa} {msg_warning:nnxx{tudacolors} {unselectable-color} {black} {textonaccentcolor}} } } -\colorlet{identbarcolor}{\g_TUDa_color_identbar_tl} +\colorlet{identbarcolor}{\g_ptxcd_color_identbar_tl} -\exp_args:NNx \clist_if_in:NnTF \c_TUDa_color_forbid_textaccent_clist {\g_TUDa_color_textaccent_tl} { - \msg_warning:nnxx {tudacolors} {unselectable-color} {\g_TUDa_color_textaccent_tl} {textaccentcolor} +\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_TUDa_color_textaccent_tl} + \colorlet{textaccentcolor}{\g_ptxcd_color_textaccent_tl} } +\colorlet{InfoBox}{white} \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls index 6c27255e47..7f7be57b7f 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls @@ -1,4 +1,4 @@ -%% This is file `tudaexercise.cls' version 2.11 (2020/06/12), +%% This is file `tudaexercise.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,114 +26,39 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudaexercise} - {\filedate}{\fileversion}{Exercise sheets and exams using TU Darmstadt's Coporate Desing (TUDa-CI)} + {\filedate}{\fileversion}{Exercise sheets and exams using TU Darmstadt's Corporate Desing (TUDa-CI)} \RequirePackage{l3keys2e} -\tl_new:N \g_TUDa_thesis_options_tl +\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_TUDa_clsopts_prop -\prop_new:N \g_TUDa_unknown_clsopts_prop -\prop_gput:Nnn \g_TUDa_clsopts_prop {captions} {nooneline} -\prop_gput:Nnn \g_TUDa_clsopts_prop {parskip} {half-} +\int_new:N \g_ptxcd_ruledheaders_int +\int_new:N \g_ptxcd_paper_int -\int_new:N \g_TUDa_ruledheaders_int -\int_new:N \g_TUDa_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 \g_ptxcd_smalltitle_bool +\str_new:N \g_ptxcd_department_str %Message Declaration for option processing -\msg_new:nnn {TUDaExercise} {titlepage-option-disabled} { +\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". } -\bool_new:N \g_TUDa_geometry_bool -\bool_new:N \g_TUDa_custommargins_bool -\bool_new:N \l_TUDa_ex_solution_bool - -\RequirePackage{environ} - -\def\solution{\TUDa_ex_solutionheader:} -\def\endsolution{} - -\cs_new:Nn \TUDa_setup_solution: { - \bool_if:NTF \l_TUDa_ex_solution_bool { - \def\solution{\TUDa_ex_solutionheader:} - \def\endsolution{} - }{ - \RenewEnviron{solution}{ - \if_false: - \BODY - \fi: - } - } -} - - -\bool_new:N \l_TUDa_ex_subtask_fallback_bool -\keys_define:nn {TUDa/subtask} { - credit .tl_set:N = \l_TUDa_ex_credit_tl, - credit .initial:n =, - points .int_set:N = \l_TUDa_ex_points_int, - points .initial:n = 0, - title .tl_set:N = \l_TUDa_ex_title_tl, - title .initial:n =, - unknown .code:n = \bool_set_true:N \l_TUDa_ex_subtask_fallback_bool \tl_clear:N \l_TUDa_ex_credit_tl \int_zero:N \l_TUDa_ex_points_int, -} - -\keys_define:nn {TUDa/exercise} { - solution .code:n = { - \bool_set_eq:Nc \l_TUDa_ex_solution_bool {c_#1_bool} - \TUDa_setup_solution: - }, - solution .initial:n = false, - solution .default:n = true, - compat .bool_gset:N = \g_TUDa_ex_compatibility_bool, - compatilibity .meta:n = {compat=#1}, - compatibility .default:n = true, - compat .initial:n = false, - credit .tl_set:N = \l_TUDa_ex_credit_tl, - credit .initial:n =, - points .int_set:N = \l_TUDa_ex_points_int, - points .initial:n = 0, -} - -\keys_define:nn {TUDa/exercise/headline} { - headline .code:n = { - \if@twoside - \keys_set:nn {TUDa/exercise/headline} {odd=#1,even=#1} - \else - \keys_set:nn {TUDa/exercise/headline} {oneside=#1} - \fi - }, -} - -\clist_map_inline:nn {odd, even, oneside} { - \tl_new:c {g_TUDa_ex_headline_#1_tl} - \keys_define:nn {TUDa/exercise/headline} { - #1 .choice:, - #1 / title-name-id .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} { - \g_TUDa_shorttitle_tl\par - \StudentName\StudentID}, - #1 / title-name .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} { - \g_TUDa_shorttitle_tl\par - \smallskip - \StudentName}, - #1 / title .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} {\g_TUDa_shorttitle_tl}, - #1 / name-id .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} {\StudentName\StudentID}, - #1 / name .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} {\StudentName}, - #1 / unknown .code:n = \tl_gset:cn {g_TUDa_ex_headline_#1_tl} {##1} - } -} - -\bool_new:N \g_TUDa_smalltitle_bool - -\keys_define:nn {TUDa/pub} { +\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}}, @@ -142,58 +67,77 @@ color .initial:n = 0b, custommargins .choice:, custommargins / true .code:n ={ - \bool_gset_true:N \g_TUDa_custommargins_bool - \bool_gset_false:N \g_TUDa_geometry_bool + \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_TUDa_custommargins_bool - \bool_gset_true:N \g_TUDa_geometry_bool + \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_TUDa_custommargins_bool - \bool_gset_true:N \g_TUDa_geometry_bool + \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_TUDa_clsopts_prop {fontsize} {#1}, + fontsize .code:n = \prop_gput:Nnn \g_ptxcd_clsopts_prop {fontsize} {#1}, fontsize .initial:n = {10pt}, - unknown .code:n = {\prop_gput:NVn \g_TUDa_unknown_clsopts_prop \l_keys_key_tl {#1}}, BCOR .code:n = \PassOptionsToPackage{bindingoffset=#1}{geometry}, bindingoffset .meta:n = {BCOR=#1}, - captions .code:n = {\prop_gput:Nnx \g_TUDa_clsopts_prop {captions} { - \use:n {\prop_item:Nn \g_TUDa_clsopts_prop {captions}}, #1} + 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}}, + titlepage .code:n = {\msg_warning:nnn {tudapub} {titlepage-option-disabled} {#1}}, paper .choices:nn = {a0,a1,a2,a3,a4,a5,a6}{ - \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int + \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules} \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea} \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry} }, paper .initial:n = a4, - logofile .tl_gset:N = \g_TUDa_logofile_tl, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, logofile .initial:n = tuda_logo, - solution .meta:nn = {TUDa/exercise}{solution=#1}, - compat .meta:nn = {TUDa/exercise}{compat=#1}, - compatibility .meta:nn = {TUDa/exercise}{compat=#1}, + compat .bool_gset:N = \g_ptxcd_ex_compatibility_bool, + compat .initial:n = false, + compatilibity .meta:n = {compat=#1}, compatibility .default:n = true, - headontitle .bool_gset:N = \g_TUDa_headontitle_bool, + 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_TUDa_colorback_bool, + 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_TUDa_smalltitle_bool, - title / small .code:n = \bool_gset_true:N \g_TUDa_smalltitle_bool, + 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, + 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}}, } +\ProcessKeysOptions{ptxcd/exercise} -\ProcessKeysOptions{TUDa/pub} - -\prop_map_inline:Nn \g_TUDa_clsopts_prop { +\prop_map_inline:Nn \g_ptxcd_clsopts_prop { \tl_if_empty:nTF {#2} {\PassOptionsToClass {#1} {scrartcl}} { @@ -201,9 +145,76 @@ } } +\RequirePackage{environ} + +\def\solution{\ptxcd_ex_solutionheader:} +\def\endsolution{} + +\cs_new:Nn \ptxcd_setup_solution: { + \bool_if:NTF \l_ptxcd_ex_solution_bool { + \def\solution{\ptxcd_ex_solutionheader:} + \def\endsolution{} + }{ + \RenewEnviron{solution}{ + \if_false: + \BODY + \fi: + } + } +} + + +\bool_new:N \l_ptxcd_ex_subtask_fallback_bool + +\keys_define:nn {ptxcd/task}{ + points .int_set:N = \l_ptxcd_ex_points_int, + points .initial:n = 0, + credit .tl_set:N = \l_ptxcd_ex_credit_tl, + credit .initial:n =, + solution .meta:nn ={ptxcd/exercise}{solution=#1}, +} + +\keys_define:nn {ptxcd/subtask} { + credit .tl_set:N = \l_ptxcd_ex_credit_tl, + credit .initial:n =, + points .int_set:N = \l_ptxcd_ex_points_int, + points .initial:n = 0, + 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_credit_tl \int_zero:N \l_ptxcd_ex_points_int, +} + +\keys_define:nn {ptxcd/exercise/headline} { + headline .code:n = { + \if@twoside + \keys_set:nn {ptxcd/exercise/headline} {odd=#1,even=#1} + \else + \keys_set:nn {ptxcd/exercise/headline} {oneside=#1} + \fi + }, +} + +\clist_map_inline:nn {odd, even, oneside} { + \tl_new:c {g_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} + } +} + %Load tudasize clo file if available -\file_if_exist:nT {tudasize\prop_item:Nn \g_TUDa_clsopts_prop {fontsize}.clo} +\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo} {\providecommand*{\@fontsizefilebase}{tudasize}} \LoadClass{scrartcl} @@ -214,7 +225,7 @@ \RequirePackage[draft=false]{scrlayer-scrpage} \KOMAoptions {twoside = false} -\prop_map_inline:Nn \g_TUDa_unknown_clsopts_prop { +\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}} @@ -225,7 +236,7 @@ \renewcommand*\sectionlinesformat[4]{% \parbox{\linewidth}{ - \rule[5\g_TUDa_titlerule_dim]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip + \rule[5\g_ptxcd_titlerule_dim]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip \@hangfrom{% \hskip #2#3}{ \tl_if_eq:nnT {#1} {task} { @@ -234,70 +245,70 @@ } #4 \tl_if_in:nnT {#1} {task} { - \tl_if_empty:NTF \l_TUDa_ex_credit_tl - {\pointformat{\l_TUDa_ex_points_int}} - {\creditformat{\l_TUDa_ex_credit_tl}} + \tl_if_empty:NTF \l_ptxcd_ex_credit_tl + {\pointformat{\l_ptxcd_ex_points_int}} + {\creditformat{\l_ptxcd_ex_credit_tl}} } \rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par}\nointerlineskip - \skip_vertical:n {\TUDa_titlerule_sep: -\dp\strutbox} - \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}} + \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox} + \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}} }} \usepackage{tudafonts} -\dim_new:N \g_TUDa_innerMargin_dim -\dim_new:N \g_TUDa_outerMargin_dim -\dim_new:N \g_TUDa_bottomMargin_dim -\dim_new:N \g_TUDa_topMargin_dim +\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_TUDa_paper_int<=5} + \int_compare:nTF {4<=\g_ptxcd_paper_int<=5} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {20mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {15mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=3} + \int_compare:nT {1<=\g_ptxcd_paper_int<=3} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {35mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {30mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=6} + \int_compare:nT {\g_ptxcd_paper_int<=6} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {16mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {12mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=7} + \int_compare:nT {\g_ptxcd_paper_int<=7} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {15mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {10mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_columnSep_dim -\dim_gset:Nn \g_TUDa_columnSep_dim {10pt} +\dim_new:N \g_ptxcd_columnSep_dim +\dim_gset:Nn \g_ptxcd_columnSep_dim {10pt} -\dim_new:N \g_TUDa_headheight_dim -\dim_new:N \g_TUDa_headwidth_dim +\dim_new:N \g_ptxcd_headheight_dim +\dim_new:N \g_ptxcd_headwidth_dim -\dim_gset:Nn \g_TUDa_headheight_dim {\c_TUDa_largerule_dim +\c_TUDa_rulesep_dim +\c_TUDa_smallrule_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_TUDa_geometry_bool { - \RequirePackage[top=\g_TUDa_topMargin_dim, inner=\g_TUDa_innerMargin_dim, outer=\dim_eval:n {\g_TUDa_outerMargin_dim}, bottom=\g_TUDa_bottomMargin_dim, columnsep= \g_TUDa_columnSep_dim, includehead, includefoot, headheight=\g_TUDa_headheight_dim +\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} }{ \KOMAoptions{headinclude, footinclude, headwidth=text,footwidth=text} @@ -307,78 +318,70 @@ %Ende Randeinstellungen klassisch \newcommand*{\institution}[1]{ - \def\TUDa@institution{#1} + \def\ptxcd_institution{#1} } -\gdef\TUDa@datename{Datum} -\gdef\TUDa@dateseparator{:~} +\gdef\ptxcd_datename{Datum} +\gdef\ptxcd_dateseparator{:~} \setkomafont{disposition}{\sffamily\bfseries} - - -\dim_new:N \g_TUDa_titlerule_dim -\dim_gset:Nn \g_TUDa_titlerule_dim {.5\c_TUDa_smallrule_dim} - -\cs_new:Nn \TUDa_titlerule_sep: {\the\dp\strutbox} +\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox} \RequirePackage{tudacolors} \RequirePackage{environ} -%TODO: mode -> light head. - \setkomafont{pageheadfoot}{\sffamily\small} \setkomafont{pagenumber}{} \addtokomafont{captionlabel}{\sffamily} \addtokomafont{caption}{\sffamily} -\box_new:N \g_TUDa_ex_headline_odd_box -\box_new:N \g_TUDa_ex_headline_even_box -\box_new:N \g_TUDa_ex_headline_oneside_box +\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 \TUDa_preamble_ConfigureHeadline:n { - \tl_if_empty:nF {#1} {\keys_set:nn {TUDa/exercise/headline} {#1}} +\cs_new:Nn \ptxcd_preamble_ConfigureHeadline:n { + \tl_if_empty:nF {#1} {\keys_set:nn {ptxcd/exercise/headline} {#1}} } -\cs_new:Nn \TUDa_ConfigureHeadline:n { - \TUDa_preamble_ConfigureHeadline:n {#1} - \TUDa_update_headline_boxes: - \TUDa_ex_adjust_headheight: +\cs_new:Nn \ptxcd_ConfigureHeadline:n { + \ptxcd_preamble_ConfigureHeadline:n {#1} + \ptxcd_update_headline_boxes: + \ptxcd_ex_adjust_headheight: } -\let\ConfigureHeadline\TUDa_preamble_ConfigureHeadline:n - - +\let\ConfigureHeadline\ptxcd_preamble_ConfigureHeadline:n -\bool_if:NT \g_TUDa_ex_compatibility_bool { -\cs_new:Npn \TUDa_ex_env_to_tl_aux:w #1 \q_stop { \tl_gset:Nn \g_TUDa_ex_headline_oneside_tl {#1} } -\NewEnviron{examheader}{ - \tl_gset:No \g_TUDa_ex_headline_oneside_tl {\BODY} - \tl_gset:No \g_TUDa_ex_headline_odd_tl {\BODY} - \tl_gset:No \g_TUDa_ex_headline_even_tl {\BODY} - \TUDa_ConfigureHeadline:n {} -} - - \newcommand*{\examheaderdefault}{\par\StudentName\StudentID} +\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} } -\cs_new:Nn \TUDa_update_headline_boxes: { +\cs_new:Nn \ptxcd_update_headline_boxes: { \clist_map_inline:nn {even, odd, oneside} { - \tl_if_empty:cF {g_TUDa_ex_headline_##1_tl} { - \vbox_gset:cn {g_TUDa_ex_headline_##1_box} { + \tl_if_empty:cF {g_ptxcd_ex_headline_##1_tl} { + \vbox_gset:cn {g_ptxcd_ex_headline_##1_box} { \begin{minipage}[b]{\textwidth} \usekomafont{pagehead} \raggedright - \leavevmode\rule{\z@}{\dimexpr\ht\strutbox+\c_TUDa_rulesep_dim} + \leavevmode\rule{\z@}{\dimexpr\ht\strutbox+\c_ptxcd_rulesep_dim} \ignorespaces - \use:c {g_TUDa_ex_headline_##1_tl}\ignorespaces\strut + \use:c {g_ptxcd_ex_headline_##1_tl}\ignorespaces\strut \par\vspace{\z@} \end{minipage} } @@ -387,105 +390,108 @@ } -\cs_new:Nn \TUDa_ex_adjust_headheight: { +\cs_new:Nn \ptxcd_ex_adjust_headheight: { \if@twoside \dim_set:Nn \l_tmpa_dim { \dim_max:nn - {\box_ht:N \g_TUDa_ex_headline_odd_box+\box_dp:N \g_TUDa_ex_headline_odd_box} - {\box_ht:N \g_TUDa_ex_headline_even_box+\box_dp:N \g_TUDa_ex_headline_even_box} + {\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_TUDa_ex_headline_oneside_box - + \box_dp:N \g_TUDa_ex_headline_oneside_box + \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 \TUDa@headline_box +\c_TUDa_rulesep_dim} - \KOMAoptions{headinclude, headheight=\l_tmpa_dim,headsepline = .5\c_TUDa_smallrule_dim} + \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_TUDa_ex_headline_even_box}} - \cohead{\box_use:c {g_TUDa_ex_headline_odd_box}} + \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_TUDa_ex_headline_oneside_box}} + \chead{\box_use:c {g_ptxcd_ex_headline_oneside_box}} \fi \global\setlength{\headheight}{\l_tmpa_dim} } } -\newpairofpagestyles{TUDa.ex}{ - \KOMAoptions{plainfootsepline} +\newpairofpagestyles{TUDa.exercise}{ + \KOMAoptions{plainfootsepline,headtopline,plainheadtopline} \KOMAoptions { headwidth=text, footwidth=text } \setkomafont{pagehead}{} -\box_if_exist:NF \TUDa@headline_box { - \TUDa@makeheadrule[color=identbarcolor, width=\sls@headwidth]{TUDa@headline} -} + \box_if_exist:NF \ptxcd_headrule_box { + \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule} + } \ModifyLayer[ background, - height=\box_dp:N \TUDa@headline_box, + height=\box_dp:N \ptxcd_headrule_box, align=tl, - voffset=\g_TUDa_topMargin_dim, - contents=\raisebox{\depth}{\box_use:N \TUDa@headline_box}, - ]{plain.TUDa.ex.head.above.line} + 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 \TUDa@headline_box, + height=\box_dp:N \ptxcd_headrule_box, align=tl, - voffset=\g_TUDa_topMargin_dim, - contents=\raisebox{\depth}{\box_use:N \TUDa@headline_box}, - ]{TUDa.ex.head.above.line} + voffset=\g_ptxcd_topMargin_dim, + contents=\raisebox{\depth}{\box_use:N \ptxcd_headrule_box}, + ]{TUDa.exercise.head.above.line} \ofoot[\pagemark]{\pagemark} } -\pagestyle{TUDa.ex} +\DeclarePageStyleAlias{TUDa}{TUDa.exercise} +\DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.exercise} +\renewcommand{\titlepagestyle}{plain.TUDa} +\pagestyle{TUDa} %Titelseite -\tl_new:N \g_TUDa_titleimage_code_tl -\tl_gset_eq:NN \g_TUDa_titleimage_code_tl \c_empty_tl -\newcommand{\titleimage}[1]{\tl_gset:Nn \g_TUDa_titleimage_code_tl {#1}} +\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_TUDa_title_box -\skip_new:N \g_TUDa_title_fill_skip +\box_new:N \g_ptxcd_title_box +\skip_new:N \g_ptxcd_title_fill_skip -\renewcommand{\titlepagestyle}{plain.TUDa.ex} -\seq_new:N \g_TUDa_author_seq + +\seq_new:N \g_ptxcd_author_seq \renewcommand*\author[1]{ - \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#1} + \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1} } -\msg_new:nnn {TUDaPub} {unknown-language} { +\msg_new:nnn{tudapub} {unknown-language} { You~selected~an~unknown~language~#1.\\ The~Variable~#2~does~not~have~a~predefined~value.\\ Ensure~to~redefine~#2~to~match~your~language.\\ Otherwise~the~ngerman~vaue~#3~will~be~used. } -\cs_new:Nn \TUDa_define_captionFallback:Nn { +\cs_new:Nn \ptxcd_define_captionFallback:Nn { \providecommand*#1{ - \msg_warning:nnxxx {TUDaPub} {unknown-language} + \msg_warning:nnxxx{tudapub} {unknown-language} {\languagename} {\exp_not:N #1} {#2} \def#1{#2} } } \renewcommand*{\@author}{ - \seq_use:Nnnn \g_TUDa_author_seq {~\authorandname{}~} {,~} {~\&~} + \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~} } -\tl_new:N \g_TUDa_shorttitle_tl +\tl_new:N \g_ptxcd_shorttitle_tl \RenewDocumentCommand{\title}{om}{ \IfNoValueTF{#1}{ - \tl_gset:Nn \g_TUDa_shorttitle_tl {#2} + \tl_gset:Nn \g_ptxcd_shorttitle_tl {#2} }{ - \tl_gset:Nn \g_TUDa_shorttitle_tl {#1} + \tl_gset:Nn \g_ptxcd_shorttitle_tl {#1} } \def\@title{#2} } @@ -497,43 +503,38 @@ \subsubtitle{} -\newcommand*{\TUDa@title@footnote}[2][1]{ +\newcommand*{\ptxcd_title@footnote}[2][1]{ \textsuperscript{\@fnsymbol{#1}}#2 } -\renewcommand*{\titlepagestyle}{plain.TUDa.ex} \renewcommand*{\@maketitle}{% \global\@topnum=\z@ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative \vspace*{-\dim_eval:n { \headheight - -\c_TUDa_largerule_dim -\c_TUDa_rulesep_dim + -\c_ptxcd_largerule_dim -\c_ptxcd_rulesep_dim +\headsep +\ht\strutbox +\p@ }} \par \nointerlineskip - \raisebox{\dim_eval:n { - -.5\c_TUDa_logoheight_dim - }}[0pt][\dim_eval:n {\bool_if:NTF \g_TUDa_smalltitle_bool {.25} {.5}\c_TUDa_logoheight_dim}]{ - \bool_if:NT \g_TUDa_colorback_bool {\color{accentcolor}\rule{\linewidth}{.5\c_TUDa_logoheight_dim}} - } - \par\nointerlineskip \begingroup \setlength{\fboxsep}{\z@} - \bool_if:NT \g_TUDa_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\linewidth}{ + \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-2.2\c_TUDa_logoheight_dim-1ex} - \bool_if:NT \g_TUDa_colorback_bool {\begin{addmargin}{3mm}} + \begin{minipage}[t]{\dimexpr\linewidth-2.2\c_ptxcd_logoheight_dim-1ex} + \bool_if:NT \g_ptxcd_colorback_bool {\begin{addmargin}{3mm}} \raggedright - \bool_if:NT \g_TUDa_colorback_bool {\color{textonaccentcolor}} + \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_TUDa_smalltitle_bool {\LARGE} {\huge} {\@title\par}}% + {\usekomafont{title}\bool_if:NTF \g_ptxcd_smalltitle_bool {\LARGE} {\huge} {\@title\par}}% \vskip 1em - \bool_if:NF \g_TUDa_ex_compatibility_bool + \bool_if:NF \g_ptxcd_ex_compatibility_bool { {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% \gdef\@subtitle{} @@ -541,61 +542,58 @@ } {\ifx\@author\@empty\else\usekomafont{author}\@author\par\fi}% \vskip .5em - \bool_if:NTF \g_TUDa_colorback_bool {\end{addmargin}} {\par} + \bool_if:NTF \g_ptxcd_colorback_bool {\end{addmargin}} {\par} \end{minipage}} - \tl_if_empty:NF \g_TUDa_logofile_tl { + \tl_if_empty:NF \g_ptxcd_logofile_tl { \hfill\raisebox{\dim_eval:n { - \bool_if:NTF \g_TUDa_colorback_bool + \bool_if:NTF \g_ptxcd_colorback_bool {-\height} - {-.9\c_TUDa_logoheight_dim} + {-.9\c_ptxcd_logoheight_dim} }} [0pt] [\dim_eval:n { - \bool_if:NTF \g_TUDa_smalltitle_bool - {\bool_if:NTF \g_TUDa_colorback_bool {1.15}{1}} - {\bool_if:NTF \g_TUDa_colorback_bool {1.5}{1.3} - }\c_TUDa_logoheight_dim}] - {\makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}} + \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[2.2\c_ptxcd_logoheight_dim][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}} } \par\medskip }} \par \nointerlineskip - \rule{\linewidth}{\g_TUDa_titlerule_dim} + \rule{\linewidth}{\g_ptxcd_titlerule_dim} % subtitle fields if not compat - \exp_args:Nf \tl_if_empty:nF {\g_TUDa_ex_sheetnum_tl\@date\g_TUDa_ex_term_tl\use:c {@subsubtitle}\@subtitle}{ + \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_TUDa_colorback_bool {\colorbox{accentcolor}}{ + \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{ \parbox{\linewidth}{ \begin{minipage}{\linewidth} - \bool_if:NT \g_TUDa_colorback_bool { + \bool_if:NT \g_ptxcd_colorback_bool { \color{textonaccentcolor} \begin{addmargin}{3mm} } \null\par - \def\TUDa@nextsep{} - \clist_map_inline:nn {@subtitle, @subsubtitle, g_TUDa_ex_term_tl, @date} { - \tl_if_empty:cF {##1} {\TUDa@nextsep\use:c {##1}\def\TUDa@nextsep{\\}} + \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 \@subtitle {} - % \tl_if_empty:NF \g_TUDa_ex_term_tl {\TUDa@nextsep\g_TUDa_ex_term_tl\def\TUDa@nextsep{\\}} - % \tl_if_empty:NF \@date {\TUDa@nextsep\@date\def\TUDa@nextsep{\\}} - \tl_if_empty:NF \g_TUDa_ex_sheetnum_tl {\TUDa@nextsep\sheetname\sheetsep\g_TUDa_ex_sheetnum_tl} - \bool_if:NT \g_TUDa_colorback_bool {\end{addmargin}} + \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_TUDa_titlerule_dim} + \rule{\linewidth}{\g_ptxcd_titlerule_dim} } \par - \bool_if:NT \g_TUDa_headontitle_bool { + \bool_if:NT \g_ptxcd_headontitle_bool { \if@twoside - \box_use:N \g_TUDa_ex_headline_odd_box + \box_use:N \g_ptxcd_ex_headline_odd_box \else - \box_use:N \g_TUDa_ex_headline_oneside_box + \box_use:N \g_ptxcd_ex_headline_oneside_box \fi \par - \rule{\linewidth}{\g_TUDa_titlerule_dim} + \rule{\linewidth}{\g_ptxcd_titlerule_dim} \par } \endgroup @@ -611,15 +609,13 @@ \newkomafont{term}{\usekomafont{date}} \date{} -\tl_new:N \g_TUDa_ex_sheetnum_tl -\newcommand*{\sheetnumber}[1]{\tl_gset:Nn \g_TUDa_ex_sheetnum_tl {#1}} +\tl_new:N \g_ptxcd_ex_sheetnum_tl +\newcommand*{\sheetnumber}[1]{\tl_gset:Nn \g_ptxcd_ex_sheetnum_tl {#1}} \sheetnumber{} -\tl_new:N \g_TUDa_ex_term_tl -\newcommand*{\term}[1]{\tl_gset:Nn \g_TUDa_ex_term_tl {#1}} +\tl_new:N \g_ptxcd_ex_term_tl +\newcommand*{\term}[1]{\tl_gset:Nn \g_ptxcd_ex_term_tl {#1}} \term{} -\TUDa@makeheadrule[color=identbarcolor, width=\textwidth]{TUDa@title_headline} - %Logos \RequirePackage{graphicx} @@ -666,27 +662,26 @@ %Has to be initialized after captionnames have been defined \AtBeginDocument{ - \TUDa_update_headline_boxes: - \TUDa_ex_adjust_headheight: - \global\let\ConfigureHeadline\TUDa_ConfigureHeadline:n + \ptxcd_update_headline_boxes: + \ptxcd_ex_adjust_headheight: + \global\let\ConfigureHeadline\ptxcd_ConfigureHeadline:n } %task environment -%TODO: discussion: allow sectioning \DeclareSectionCommand[% -style=section,% -level=1,% -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=1,% + 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_TUDa_ex_sheetnum_tl\tl_if_empty:NF \g_TUDa_ex_sheetnum_tl{.}\arabic{task}} +\renewcommand*{\thetask}{\g_ptxcd_ex_sheetnum_tl\tl_if_empty:NF \g_ptxcd_ex_sheetnum_tl{.}\arabic{task}} \renewcommand*{\taskformat}{\taskname\tasksep\thetask{}} \let\@task\task @@ -694,23 +689,25 @@ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsection@numwidth {2.3em},% \NewDocumentEnvironment{task}{om}{ \begingroup - \IfNoValueF{#1}{\keys_set:nn {TUDa/exercise}{#1}} + \IfNoValueF{#1}{\keys_set:nn {ptxcd/task}{#1}} \@task{#2} \endgroup }{} +\cs_set_eq:cN {task*} \task +\cs_set_eq:cN {endtask*} \endtask % subtasks \DeclareSectionCommand[% -style=section,% -level=2,% -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=2,% + 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} \renewcommand*{\thesubtask}{\alph{subtask})} @@ -722,15 +719,22 @@ counterwithin=task,% \NewDocumentEnvironment{subtask}{o}{ \tl_if_in:nnT {#1} {=} { - \keys_set:nn {TUDa/subtask} {#1} + \keys_set:nn {ptxcd/subtask} {#1} } - \bool_if:NTF \l_TUDa_ex_subtask_fallback_bool { + \bool_if:NTF \l_ptxcd_ex_subtask_fallback_bool { \@subtask{\IfNoValueF{#1}{#1}} }{ - \@subtask{\l_TUDa_ex_title_tl} + \@subtask{\l_ptxcd_ex_title_tl} } }{} +\NewDocumentEnvironment{subtask*}{om}{ + \begingroup + \IfNoValueF{#1}{\keys_set:nn {ptxcd/subtask}{#1}} + \@subtask{#2} + \endgroup +}{} + %Solution mechanism \DeclareSectionCommand[% @@ -747,33 +751,33 @@ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},% \setkomafont{@solution}{\normalfont} -\cs_new:Nn \TUDa_ex_solutionheader: { +\cs_new:Nn \ptxcd_ex_solutionheader: { \@solution*{\solutionname\solutionsep} } -\box_new:N \g_TUDa_NumberForm_box -\hbox_gset:Nn \g_TUDa_NumberForm_box { +\box_new:N \g_ptxcd_NumberForm_box +\hbox_gset:Nn \g_ptxcd_NumberForm_box { \rule{\fboxrule}{1ex} \rule{1em}{\fboxrule} \rule{\fboxrule}{1ex} \, } -\newcommand*\TUDa@StudentID[1][7]{ - \StudentIDname\StudentIDsep\prg_replicate:nn {#1} {\box_use:N \g_TUDa_NumberForm_box} +\newcommand*\ptxcd_StudentID[1][7]{ + \StudentIDname\StudentIDsep\prg_replicate:nn {#1} {\box_use:N \g_ptxcd_NumberForm_box} } -\let\StudentID\TUDa@StudentID +\let\StudentID\ptxcd_StudentID -\newcommand*\TUDa@StudentName{ +\newcommand*\ptxcd_StudentName{ \StudentNamename\StudentNamesep\hrulefill\qquad } -\let\StudentName\TUDa@StudentName +\let\StudentName\ptxcd_StudentName -\let\ShortTitle\g_TUDa_shorttitle_tl +\let\ShortTitle\g_ptxcd_shorttitle_tl % Compatibility Features -\bool_if:NT \g_TUDa_ex_compatibility_bool { +\bool_if:NT \g_ptxcd_ex_compatibility_bool { \cs_set_eq:NN \c@subsection \c@task \cs_set_eq:NN \subsection \task \cs_set_eq:NN \c@subsubsection \c@subtask @@ -782,5 +786,9 @@ tocnumwidth=\cs_if_exist_use:NF \scr@tso@subsubsection@numwidth {2.3em},% \cs_set_eq:NN \thesubtask \thesubsection } +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} + +\ptxcd_makeheadrule[color=identbarcolor, width=\textwidth]{ptxcd_headrule} + \endinput %End of class tudaexercise.cls diff --git a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty index cf9ec3e5d9..c2baab0e0e 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty @@ -1,4 +1,4 @@ -%% This is file `tudafonts.sty' version 2.11 (2020/06/12), +%% This is file `tudafonts.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,12 +26,12 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudafonts} [\filedate\space\fileversion\space - font loading for TUDa-CI, TU Darmstadt's Corporate Design] + font loading for TUDa-CI, TU Darmstadt's Corporate Design] \expandafter\newif\csname if@TUDa@T1\endcsname @@ -42,30 +42,33 @@ \RequirePackage{anyfontsize} \ifPDFTeX - \csname @TUDa@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 @TUDa@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@TUDa@T1\endcsname - \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} @@ -77,11 +80,6 @@ For correct font setup either install it manually or update you distribution} } - -\ifPDFTeX - \RequirePackage[T1]{fontenc} -\fi - \let\accentfont\robotoslab \DeclareTextFontCommand{\textaccent}{\accentfont} diff --git a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls index ad49fdd38d..2b64756059 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls @@ -1,4 +1,4 @@ -%% This is file `tudaleaflet.cls' version 2.11 (2020/06/12), +%% This is file `tudaleaflet.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,45 +26,56 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} -\def\filedate{2020/02/02} -\def\fileversion{} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudaleaflet}{\filedate}{\fileversion}{Leaflets using the Corporate Design of TU Darmstadt} \RequirePackage{l3keys2e} -\tl_new:N \g_TUDa_sponsor_pos_tl -\keys_define:nn {TUDa/leaflet} { - logofile .tl_gset:N = \g_TUDa_logofile_tl, + +\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_TUDa_colorback_bool, + colorback .bool_gset:N = \g_ptxcd_colorback_bool, colorback .initial:n = true, colorback .default:n = true, - colorbacktitle .bool_gset:N = \g_TUDa_colorbacktitle_bool, + colorbacktitle .bool_gset:N = \g_ptxcd_colorbacktitle_bool, colorbacktitle .initial:n = false, colorbacktitle .default:n = true, - colorbacksubtitle .bool_set:N = \g_TUDa_colorbacksubtitle_bool, + 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_TUDa_sponsor_pos_tl \l_keys_choice_tl}, + 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, + mecheng .meta:n = {department=mecheng}, + departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl, + departmentlogofile .initial:n =, } \DeclareOption*{\PassOptionsToClass{\CurrentOption}{leaflet}} -\ProcessKeysOptions{TUDa/leaflet} +\ProcessKeysOptions{ptxcd/leaflet} \ProcessOptions\relax -\bool_if:NT \g_TUDa_colorbacksubtitle_bool { - \bool_if:NF \g_TUDa_colorbacktitle_bool { - \msg_new:nnnn {TUDa/leaflet} {incompatible-options} {You~cannot~use~the~setting~#1~at~the~same~time~as~#2.} {See~TUDaLeaflet~documentation~for~further~information.} - \msg_error:nn {TUDa/leaflet} {incompatible-options} {colorbacksubtitle=true} {colorbacktitle=false} +\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} } } @@ -82,17 +93,10 @@ \setlength{\footheight}{2mm} \setmargins{10mm}{\dimexpr10mm+\headheight\relax}{10mm}{10mm}%Hardcoded, according to the guideline -\TUDa@makeheadrule[color=identbarcolor]{TUDa_headrule} -\box_new:N \TUDa_footrule_box -\hbox_gset:Nn \TUDa_footrule_box {\rule{\textwidth}{.5\c_TUDa_smallrule_dim}} - -\dim_new:N \g_TUDa_titlerule_dim -\dim_gset:Nn \g_TUDa_titlerule_dim {.5\c_TUDa_smallrule_dim} - \DeclareNewLayer[ head, mode=picture, - contents=\putUL{\box_use:N \TUDa_headrule_box} + contents=\putUL{\box_use:N \ptxcd_headrule_box} ]{TUDa.flyer.headline} \DeclareNewLayer[ @@ -100,7 +104,7 @@ mode=picture, height=\z@, voffset=\paperheight-14mm, - contents=\smash{\box_use:N \TUDa_footrule_box} + contents=\smash{\box_use:N \ptxcd_footrule_box} ]{TUDa.flyer.footline} \DeclareNewPageStyleByLayers{TUDa.flyer}{ @@ -111,27 +115,27 @@ % Title specific additions to pagestyle \DeclareNewLayer[textarea,mode=picture, -addheight=\headheight-\box_dp:N \TUDa_headrule_box+\dp\strutbox, +addheight=\headheight-\box_dp:N \ptxcd_headrule_box+\dp\strutbox, contents={ - \bool_if:NT \g_TUDa_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}} - \tl_if_empty:NTF \g_TUDa_titleimage_code_tl - {\bool_if:NT \g_TUDa_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}} + \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_TUDa_titleimage_code_tl + \g_ptxcd_titleimage_code_tl }}}} - \put(\dim_to_decimal_in_unit:nn {\layerwidth-2.2\c_TUDa_logoheight_dim + \put(\dim_to_decimal_in_unit:nn {\layerwidth-2.2\c_ptxcd_logoheight_dim } {\unitlength}, - \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_TUDa_title_info_box - .5\c_TUDa_logoheight_dim} {\unitlength}){ - \rlap{\box_use:N \g_TUDa_title_info_box} + \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_TUDa_colorbacktitle_bool { + \bool_if:NT \g_ptxcd_colorbacktitle_bool { \color{identbarcolor}\rule{\layerwidth}{\layerheight} } } @@ -144,21 +148,21 @@ contents={ TUDa.flyer.footline, } -\cs_new:Nn \TUDa_Setup_Title_box: { - \hbox_gset:Nn \g_TUDa_title_info_box +\cs_new:Nn \ptxcd_Setup_Title_box: { + \hbox_gset:Nn \g_ptxcd_title_info_box { - \parbox{\dimexpr2.5\c_TUDa_logoheight_dim}{ - \seq_use:Nn \g_TUDa_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_TUDa_largerule_dim+\c_TUDa_rulesep_dim}}} + \parbox{\dimexpr2.5\c_ptxcd_logoheight_dim}{ + \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[\TUDa_titlerule_sep:]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip + \rule[\ptxcd_titlerule_sep:]{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip #1\strut\rule[-\dp\strutbox]{0pt}{\dp\strutbox}\par\nointerlineskip - \skip_vertical:n {\TUDa_titlerule_sep: -.5\dp\strutbox} - \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}} + \skip_vertical:n {\ptxcd_titlerule_sep: -.5\dp\strutbox} + \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}} } } @@ -166,27 +170,27 @@ contents={ \newcommand*{\raggedtitle}{\raggedright} \renewcommand*{\maketitle}{ \def\and{,~ } - \hbox_gset:Nn \g_TUDa_sponsor_box { - \def\height{\dimexpr.8\c_TUDa_logoheight_dim\relax} + \hbox_gset:Nn \g_ptxcd_sponsor_box { + \def\height{\dimexpr.8\c_ptxcd_logoheight_dim\relax} \parbox[b]{\textwidth}{% - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip - \vspace{.1\c_TUDa_logoheight_dim} - \seq_use:Nn \g_TUDa_sponsors_seq {\hfill}\par - \addvspace{.1\c_TUDa_logoheight_dim} + \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_TUDa_logoheight_dim-\c_TUDa_rulesep_dim}} -% \rule{\linewidth}{\g_TUDa_titlerule_dim} + \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_TUDa_title_box { + \hbox_gset:Nn \g_ptxcd_title_box { \parbox[t]{\linewidth}{ \begin{minipage}[b]{\linewidth} - \bool_if:NT \g_TUDa_colorbacktitle_bool {\color{textonaccentcolor}} + \bool_if:NT \g_ptxcd_colorbacktitle_bool {\color{textonaccentcolor}} \begin{addmargin}{3mm} \raggedtitle \Huge @@ -198,13 +202,13 @@ contents={ \end{addmargin} \end{minipage}% \par\nointerlineskip - \bool_if:NTF \g_TUDa_colorbacksubtitle_bool - {\textcolor{white}{\rule{\linewidth}{\c_TUDa_rulesep_dim}}} - {\rule{\linewidth}{\g_TUDa_titlerule_dim}} + \bool_if:NTF \g_ptxcd_colorbacksubtitle_bool + {\textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}} + {\rule{\linewidth}{\g_ptxcd_titlerule_dim}} \par - \vspace{\c_TUDa_rulesep_dim} + \vspace{\c_ptxcd_rulesep_dim} \begin{addmargin}{3mm} - \bool_if:NT \g_TUDa_colorbacksubtitle_bool {\color{textonaccentcolor}} + \bool_if:NT \g_ptxcd_colorbacksubtitle_bool {\color{textonaccentcolor}} \raggedtitle \usekomafont{disposition} {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% @@ -216,18 +220,18 @@ contents={ }% {\usekomafont{date}{\@date\par}}% \end{addmargin}\nointerlineskip - \vspace{\c_TUDa_rulesep_dim} - \bool_if:NT \g_TUDa_colorbacktitle_bool + \vspace{\c_ptxcd_rulesep_dim} + \bool_if:NT \g_ptxcd_colorbacktitle_bool { - \textcolor{white}{\rule{\linewidth}{\c_TUDa_rulesep_dim}}\par\nointerlineskip + \textcolor{white}{\rule{\linewidth}{\c_ptxcd_rulesep_dim}}\par\nointerlineskip } - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par } } - \TUDa_adjust_titlepage_style: + \ptxcd_adjust_titlepage_style: \par - \vspace*{\dimexpr.5\c_TUDa_logoheight_dim-\topskip} - \box_use:N \g_TUDa_title_box + \vspace*{\dimexpr.5\c_ptxcd_logoheight_dim-\topskip} + \box_use:N \g_ptxcd_title_box \par \vfill\null \if@twoside @@ -245,51 +249,51 @@ contents={ } -\cs_set:Nn \TUDa_adjust_titlepage_style: { - \dim_set:Nn \l_tmpa_dim {1\c_TUDa_logoheight_dim}%\fp_to_dim:n {2.8\baselineskip}} - \dim_compare:nT {\box_ht:N \g_TUDa_title_box < \l_tmpa_dim} { - \skip_set:Nn \g_TUDa_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_TUDa_title_box}} +\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_TUDa_title_box - +.5\c_TUDa_logoheight_dim - +\box_dp:N \g_TUDa_title_box - +\g_TUDa_title_fill_skip + +\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,%clone=title.TUDa.image, + \DeclareNewLayer[clone=TUDa.flyer.footline, mode=picture, align=bl, - height=\box_ht:N \g_TUDa_sponsor_box + \box_dp:N \g_TUDa_sponsor_box, + 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_TUDa_sponsor_box} + contents=\raisebox{\depth}{\box_use:N \g_ptxcd_sponsor_box} ] {title.TUDa.sponsor} - \exp_args:Nx \tl_if_eq:nnT {\g_TUDa_sponsor_pos_tl} {title} { + \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_TUDa_sponsor_box -\box_dp:N \g_TUDa_sponsor_box-\dp\strutbox + 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 \TUDa_headrule_box-\box_dp:N \TUDa_headrule_box }}, + addvoffset={-\dim_eval:n {\headheight -\box_ht:N \ptxcd_headrule_box-\box_dp:N \ptxcd_headrule_box }}, height={ - \bool_if:NT \g_TUDa_colorbacksubtitle_bool {\box_dp:N \g_TUDa_title_box} - +\box_ht:N \g_TUDa_title_box+\g_TUDa_title_fill_skip+.5\c_TUDa_logoheight_dim+ - \headheight -\box_ht:N \TUDa_headrule_box-\box_dp:N \TUDa_headrule_box + \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 - \TUDa_Setup_Title_box: + \ptxcd_Setup_Title_box: \par - \vspace*{\skip_use:N \g_TUDa_title_fill_skip} + \vspace*{\skip_use:N \g_ptxcd_title_fill_skip} \setlength{\fboxsep}{\z@} } % @@ -326,88 +330,86 @@ contents={ {\usekomafont{disposition}\usekomafont{subsubsection}\sectfont}} \clist_map_inline:nn {section, subsection, subsubsection} { - \cs_set_eq:cc {TUDa_save_#1} {#1} + \cs_set_eq:cc {ptxcd_save_#1} {#1} \exp_args:Nc \RenewDocumentCommand{#1}{sO{##3}m}{ \IfBooleanTF{##1}{ - \use:c {TUDa_save_#1}*{\sectionlinesformat{##3}} + \use:c {ptxcd_save_#1}*{\sectionlinesformat{##3}} }{ - \use:c {TUDa_save_#1}[##2]{\sectionlinesformat{##3}} + \use:c {ptxcd_save_#1}[##2]{\sectionlinesformat{##3}} } } } -\cs_new:Nn \TUDa_titlerule_sep: {\the\dp\strutbox} +\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox} \def\subtitle#1{\def\@subtitle{#1}} \subtitle{} -\seq_new:N \g_TUDa_sponsors_seq -\def\AddSponsor{\seq_gput_right:Nn \g_TUDa_sponsors_seq} +\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_TUDa_sponsor_box +\box_new:N \g_ptxcd_sponsor_box \newcommand*{\footergraphics}[1]{ \begingroup - \let\height\g_TUDa_footheight_dim - \hbox_gset:Nn \g_TUDa_footergraphics_box {#1} + \let\height\g_ptxcd_footheight_dim + \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1} \endgroup } -\tl_new:N \g_TUDa_titleimage_code_tl -\tl_gset_eq:NN \g_TUDa_titleimage_code_tl \c_empty_tl -\newcommand{\titleimage}[1]{\tl_gset:Nn \g_TUDa_titleimage_code_tl {#1}} +\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_TUDa_title_box -\skip_new:N \g_TUDa_title_fill_skip +\box_new:N \g_ptxcd_title_box +\skip_new:N \g_ptxcd_title_fill_skip -\seq_new:N \g_TUDa_title_info_seq -\box_new:N \g_TUDa_title_info_box +\seq_new:N \g_ptxcd_title_info_seq +\box_new:N \g_ptxcd_title_info_box -\colorlet{TUDa@InfoBoxColor}{white} - -\cs_new:Nn \TUDa_make_title_info_box:n { +\cs_new:Nn \ptxcd_make_title_info_box:n { \setlength{\fboxsep}{1.5mm}% - \colorbox{TUDa@InfoBoxColor}{ - \makebox[\dim_eval:n {2.2\c_TUDa_logoheight_dim-\fboxsep}][r]{ - \parbox{2\c_TUDa_logoheight_dim}{ + \colorbox{InfoBox}{ + \makebox[\dim_eval:n {2.2\c_ptxcd_logoheight_dim-\fboxsep}][r]{ + \parbox{2\c_ptxcd_logoheight_dim}{ \usekomafont{institution} \raggedright% #1 }}} } -\cs_new:Nn \TUDa_make_title_logo_box:n { +\cs_new:Nn \ptxcd_make_title_logo_box:n { \setlength{\fboxsep}{\z@} - \parbox{2.2\c_TUDa_logoheight_dim}{ - \colorbox{TUDa@InfoBoxColor}{ + \parbox{2.2\c_ptxcd_logoheight_dim}{ + \colorbox{InfoBox}{ \rlap{ - \makebox[2.5\c_TUDa_logoheight_dim][r]{ - \colorbox{TUDa@InfoBoxColor}{#1\hspace{.3\c_TUDa_logoheight_dim}} + \makebox[2.5\c_ptxcd_logoheight_dim][r]{ + \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}} } } } } } -\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_TUDa_title_info_seq {\TUDa_make_title_info_box:n {#1}}} +\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_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n {#2} + \seq_gput_right:Nn \g_ptxcd_title_info_seq { + \ptxcd_make_title_logo_box:n {#2} } }{ - \seq_gput_right:Nn \g_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n { + \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_TUDa_logoheight_dim]{#2} + \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2} } - \dim_set:Nn \l_tmpa_dim {2\c_TUDa_logoheight_dim/3} + \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} @@ -416,24 +418,29 @@ contents={ } } -\addTitleBoxLogo*{\makebox[\linewidth][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}} +\addTitleBoxLogo*{\makebox[\linewidth][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}} \date{} \let\insertSponsors\relax -\str_case:Vn \g_TUDa_sponsor_pos_tl { +\str_case:Vn \g_ptxcd_sponsor_pos_tl { {lastfoot}{ \AtEndDocument{ \par\vspace*{\fill} \leavevmode\raisebox{\dimexpr\depth-\baselineskip}[0pt][0pt]{ - \box_use:N \g_TUDa_sponsor_box + \box_use:N \g_ptxcd_sponsor_box } } } {manual} { - \renewcommand*{\insertSponsors}{\par\vfill\leavevmode\box_use:N \g_TUDa_sponsor_box\par\nobreak\nointerlineskip\rule{\linewidth}{\g_TUDa_titlerule_dim} + \renewcommand*{\insertSponsors}{\par\vfill\leavevmode\box_use:N \g_ptxcd_sponsor_box\par\nobreak\nointerlineskip\rule{\linewidth}{\g_ptxcd_titlerule_dim} } } } -\endinput
\ No newline at end of file +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} + +\ptxcd_makeheadrule[color=identbarcolor]{ptxcd_headrule} +\ptxcd_makefootrule{ptxcd_footrule} + +\endinput diff --git a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls index 692b271239..3d92b60f21 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls @@ -1,4 +1,4 @@ -%% This is file `tudaletter.cls' version 2.11 (2020/06/12), +%% This is file `tudaletter.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudaletter} @@ -35,48 +35,69 @@ \RequirePackage{l3keys2e} -\keys_define:nn {TUDaLetter} { - logo .bool_gset:N = \g_TUDaletter_logo_bool, +\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_TUDaletter_premium_bool, + 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_TUDa_firstpagenumber_bool, + firstpagenumber .bool_gset:N = \g__ptxcd_firstpagenumber_bool, firstpagenumber .initial:n = true, - raggedright .bool_gset:N = \g_TUDa_raggedright_bool, - pdfa .bool_gset:N = \g_TUDa@pdfa_bool, + raggedright .bool_gset:N = \g__ptxcd_letter_raggedright_bool, + pdfa .bool_gset:N = \g_ptxcd_pdfa_bool, pdfa .initial:n = true, - logofile .tl_gset:N = \g_TUDa_logofile_tl, + 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, + 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, } -\ProcessKeysOptions{TUDaLetter} +\ProcessKeysOptions{ptxcd/letter} -\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} +\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} \newcommand*{\@fontsizefilebase}{tudalettersize} -\PassOptionsToClass{fontsize=10pt, refline=nodate, parskip=full-,addrfield=topaligned}{scrlttr2} -\LoadClass{scrlttr2} +\PassOptionsToClass{fontsize=10pt,parskip=full-}{scrletter} +\PassOptionsToPackage{refline=nodate,addrfield=topaligned,firstfoot=false,pagenumber=botright}{scrletter} +\LoadClass{scrletter} % Load the TUDa-colorscheme \RequirePackage{tudacolors} -\bool_if:NTF \g_TUDaletter_premium_bool -{ \def\TUDa@premiumcolor{accentcolor} - \def\TUDa@use@premiumcolor{\color{accentcolor}} - \def\TUDa@use@premiumcolor@text{\color{textaccentcolor}} +\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}} }{ - \def\TUDa@premiumcolor{black} - \let\TUDa@use@premiumcolor\relax - \let\TUDa@use@premiumcolor@text\relax + \cs_new:Nn \ptxcd_premiumcolor: {black} + \let\ptxcd_use_premiumcolor:\relax + \let\ptxcd_use_premiumcolor_text:\relax } - - \RequirePackage{tudafonts} \RequirePackage{graphicx} \RequirePackage{afterpage} @@ -85,77 +106,85 @@ %%%%%Briefbogen %% Spacing: -\dim_const:Nn \c_TuDa_HeadMargin_dim {12.5mm} -\dim_const:Nn \c_TuDa_LeftMargin_dim {24.0mm} -\dim_const:Nn \c_TuDa_RightMargin_dim {\c_TuDa_HeadMargin_dim} -\dim_const:Nn \c_TuDa_BottomMargin_dim {\c_TuDa_LeftMargin_dim} -\dim_const:Nn \c_TuDa_Linewidth_dim {\paperwidth-\c_TuDa_LeftMargin_dim-\c_TuDa_RightMargin_dim} +\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_BottomMargin_dim {20mm} +\dim_const:Nn \c_ptxcd_Linewidth_dim {\paperwidth-\c_ptxcd_LeftMargin_dim-\c_ptxcd_RightMargin_dim} -\RequirePackage[heightrounded]{geometry} +\RequirePackage{geometry} \geometry{ twoside=false, - left=\c_TuDa_LeftMargin_dim, - right=\c_TuDa_RightMargin_dim, - bottom=20mm, - footskip=3mm, + left=\c_ptxcd_LeftMargin_dim, + right=\c_ptxcd_RightMargin_dim, + bottom=\c_ptxcd_BottomMargin_dim, + footskip=7mm, } -\dim_const:Nn \c_TUDa_textwidth_dim {\textwidth} +\dim_const:Nn \c_ptxcd_textwidth_dim {\textwidth} -\bool_if:NTF \g_TUDaletter_logo_bool { +\bool_if:NTF \g__ptxcd_letter_logo_bool { \geometry{top=64mm} } { \geometry{top=30mm} } -\@setplength{firstheadhpos}{\c_TuDa_HeadMargin_dim} -\@setplength{firstheadvpos}{\c_TuDa_HeadMargin_dim} -\@setplength{firstheadwidth}{\dim_eval:n {\paperwidth - 2\c_TuDa_HeadMargin_dim}} +\@setplength{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_TuDa_LeftMargin_dim} +\@setplength{toaddrhpos}{\c_ptxcd_LeftMargin_dim} \@setplength{toaddrvpos}{50mm} \@setplength{backaddrheight}{4mm} \@setplength{toaddrindent}{0mm} -\@setplength{refhpos}{\c_TuDa_LeftMargin_dim} +\@setplength{refhpos}{\c_ptxcd_LeftMargin_dim} \@setplength{refvpos}{106mm} \@setplength{subjectaftervskip}{2\baselineskip} -\@setplength{lochpos}{\c_TuDa_HeadMargin_dim} +\@setplength{lochpos}{\c_ptxcd_HeadMargin_dim} \@setplength{locvpos}{\dimexpr\useplength{refvpos}+\useplength{subjectaftervskip}+1.4\baselineskip\relax} \@setplength{refaftervskip}{0pt} \@setplength{subjectbeforevskip}{0pt} -\@setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_TuDa_RightMargin_dim\relax} -\@setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_TuDa_BottomMargin_dim\relax} - - - -\dim_const:Nn \c_TuDa_firstpage_extraindent_dim {-\paperwidth+120mm +\c_TuDa_LeftMargin_dim +\c_TuDa_RightMargin_dim} - +\@setplength{locwidth}{\dimexpr\paperwidth-154,5mm -\c_ptxcd_HeadMargin_dim\relax} +\@setplength{locheight}{\dimexpr\paperheight-\useplength{locvpos}-\c_ptxcd_BottomMargin_dim\relax} \RequirePackage[paper=a4]{tudarules} - -\TUDa@makeheadrule[width=\useplength{firstheadwidth}, color=\TUDa@premiumcolor]{TuDa@LetterheadRule} -\TUDa@makefootrule[width=\useplength{firstheadwidth}]{TuDa@LetterfootRule} +\bool_if:NTF \g__ptxcd_letter_headrule_bool { + \ptxcd_makeheadrule[width=\useplength{firstheadwidth},color=identbarcolor]{ptxcd_LetterheadRule} +} { + \box_new:N \ptxcd_LetterheadRule_box + \def\ptxcd_LetterheadRule{} +} +\ptxcd_makefootrule[width=\useplength{firstheadwidth}]{ptxcd_LetterfootRule} \box_new:N \g_TUDaLetter_firsthead_box \hbox_gset:Nn \g_TUDaLetter_firsthead_box { - \parbox{\useplength{firstheadwidth}}{ + \parbox[t]{\useplength{firstheadwidth}}{ \raggedleft - \smash{\TuDa@LetterheadRule}\par - \vspace{.5\c_TUDa_logoheight_dim} - \makebox[2.2\c_TUDa_logoheight_dim][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}} + \smash{\ptxcd_LetterheadRule} + \par + \vspace{.5\c_ptxcd_logoheight_dim} + \makebox[2.2\c_ptxcd_logoheight_dim][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}} } } +\box_gset_dp:Nn \g_TUDaLetter_firsthead_box {\c_zero_dim} \setkomavar{firsthead}{ \box_use:N \g_TUDaLetter_firsthead_box } @@ -167,21 +196,25 @@ \newkomavar{frominstitution} \newkomavar{frominstitution-en} -\newkomafont{TUDa_location}{\accentfont\normalcolor} +\newkomafont{ptxcd_location}{\accentfont\normalcolor} \setkomafont{fromname}{\small} -\newkomafont{TUDa_frominst}{\small\TUDa@use@premiumcolor@text} +\newkomafont{ptxcd_frominst}{\small\ptxcd_use_premiumcolor_text: } \setkomafont{fromaddress}{\footnotesize} \setkomafont{refname}{} \setkomafont{refvalue}{} +\setkomafont{pageheadfoot}{\footnotesize} \newcommand{\TUD@locfield}{% - \usekomafont{TUDa_location}\usekomafont{fromaddress} + \usekomafont{ptxcd_location}\usekomafont{fromaddress} \setparsizes{\z@}{\z@}{\z@ plus 1fil} \par@updaterelative \begingroup - \usekomafont{TUDa_frominst} + \int_compare:nT {0 < \@pageat <3} { + \ptxcd_letterpagemark:\\[\baselineskip] + } + \usekomafont{ptxcd_frominst} \Ifkomavarempty{frominstitution}{}{% {\usekomavar[\raggedright]{frominstitution}} \\[\baselineskip]}% @@ -206,7 +239,7 @@ \vspace{2\baselineskip} \fi \Ifkomavarempty*{date}{}{\usekomavar*{date}\\\usekomavar{date}} - \seq_use:Nn \g_TUDa_reffields_seq {} + \seq_use:Nn \g__ptxcd_reffields_seq {} \Ifkomavarempty{frombank}{}{\vfill% \Ifkomavarempty*{frombank}{Bankverbindung}{\usekomavar*{frombank}}\\\usekomavar{frombank} } @@ -214,14 +247,14 @@ \setkomavar{location}{\parbox[t][.45\paperheight][t]{\useplength{locwidth}}{\TUD@locfield}} -\tl_const:Nn \TUDa@reffield_separator_tl {\\} +\tl_const:Nn \ptxcd_reffield_separator_tl {\\} -\cs_new:Nn \TUDa@set@reffield:n { +\cs_new:Nn \ptxcd_set_reffield:n { \Ifkomavarempty{#1}{}{% \if@tempswa\\[\baselineskip]\fi \parbox[t]{\linewidth}{\noindent\raggedright \usekomafont{refname} - \usekomavar*{#1}\TUDa@reffield_separator_tl + \usekomavar*{#1}\ptxcd_reffield_separator_tl \usekomafont{refvalue} \usekomavar{#1} }% @@ -231,14 +264,16 @@ -\seq_new:N \g_TUDa_reffields_seq +\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_TUDa_reffields_seq + \seq_gclear:N \g__ptxcd_reffields_seq \renewcommand*{\@set@reffield}[1]{ \typeout{Field: ##1}% \str_if_eq:nnT {##1}{datemarkerfield}{% @@ -247,8 +282,8 @@ \setkomavar{date}{}% } \Ifkomavarempty{##1}{}{% - \seq_gput_right:Nn \g_TUDa_reffields_seq {% - \TUDa@set@reffield:n {##1} + \seq_gput_right:Nn \g__ptxcd_reffields_seq {% + \ptxcd_set_reffield:n {##1} }% }% } @@ -257,7 +292,7 @@ \removereffields \@gen@firsthead \@mkboth{\scr@fromname@var}{\scr@subject@var}% - \thispagestyle{empty}\noindent + \thispagestyle{letter.first}\noindent \Ifkomavarempty{toname}{\setkomavar{toname}{\mbox{}}}{} \@foldmarks\@firstheadfootfield\@addrfield\@locfield \ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi @@ -266,47 +301,43 @@ \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}% + \addtolength{\@tempdima}{-\parskip}% + \ifdim \@tempdima>\z@\vskip\@tempdima\fi}% \ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\fi \setcounter{equation}{0}% \@afterheading% \@nobreaktrue \@afterindentfalse - \everypar{% - \if@nobreak - \@nobreakfalse\clubpenalty\@M - \if@afterindent - \else{\setbox\z@\lastbox} + \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 - \else - \clubpenalty \@clubpenalty - \fi - %TODO: ifdum < 2 \baselineskip - \ifnum\thepage=1% - \TUD@page@free=-\pagegoal% - \advance\TUD@page@free\pagetotal% - \dim_compare:nTF {-\TUD@page@free>2\baselineskip} - { - \bool_if:NF \g_TUDaletter_logo_bool { - \advance\TUD@page@free-.3\baselineskip - } - \divide\TUD@page@free\baselineskip% - \c@TUD@page@free@lines=\TUD@page@free% - \int_compare:nT {\value{TUD@page@free@lines}<0} { - \hangafter=\value{TUD@page@free@lines}\hangindent=\c_TuDa_firstpage_extraindent_dim% + \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% } - } { - \dim_compare:nT {-\TUD@page@free>\baselineskip} { - \hangafter=-2\hangindent=\c_TuDa_firstpage_extraindent_dim% } - } - \fi% - }% - \global\setlength{\linewidth}{\dim_eval:n {\c_TuDa_Linewidth_dim + \c_TuDa_firstpage_extraindent_dim}} - \afterpage{ - \global\setlength{\linewidth}{\c_TuDa_Linewidth_dim} - \widowpenalty=10000 + \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 + } } } @@ -314,27 +345,26 @@ \raggedbottom% } -\setkomafont{backaddress}{\accentfont\tiny\TUDa@use@premiumcolor@text\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}} -\setkomafont{pagenumber}{\tiny} +\setkomafont{backaddress}{\accentfont\tiny\ptxcd_use_premiumcolor_text:\raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}{\rule{\z@}{4mm}}} \raggedbottom -\int_new:N \l_TUDa_letter_lastpage_int -\newcommand*{\TUDa@letterpagemark}{ +\int_new:N \l_ptxcd_letter_lastpage_int +\cs_new:Nn \ptxcd_letterpagemark: { %get lastpage for this letter if not already done \int_compare:nTF {\value{page} = 1} { - \bool_if:NTF \g_TUDa_firstpagenumber_bool + \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_TUDa_letter\thisletter _lastpage_int} { + \int_if_exist:cF {c_ptxcd_letter\thisletter _lastpage_int} { \expandafter\ifx\csname r@\thisletter.lastpage\endcsname\relax %warning -> rerun latex - \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} {0} + \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} {0} \else - \int_const:cn {c_TUDa_letter\thisletter _lastpage_int} { + \int_const:cn {c_ptxcd_letter\thisletter _lastpage_int} { \cs_if_exist:NTF \hypersetup {\exp_args:NNc \expandafter \@secondoffive { r@\thisletter.lastpage}} {\exp_args:NNc \expandafter \use_ii:nn { r@\thisletter.lastpage}} @@ -343,92 +373,84 @@ } \usekomafont{pagenumber}\pagename\nobreakspace\thepage \int_compare:nT { - \int_use:c {c_TUDa_letter\thisletter _lastpage_int} + \int_use:c {c_ptxcd_letter\thisletter _lastpage_int} > 1 - } {/\int_to_arabic:n{\int_use:c {c_TUDa_letter\thisletter _lastpage_int}}} + } {/\int_to_arabic:n{\int_use:c {c_ptxcd_letter\thisletter _lastpage_int}}} } } -\setkomavar{nextfoot}{ - \parbox{\useplength{firstfootwidth}}{\usekomafont{pagefoot} - \raggedleft\TuDa@LetterfootRule\par\TUDa@letterpagemark} -} -\setkomavar{firstfoot}{ - \usekomavar{nextfoot} +\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 } -%pagestyle -\RequirePackage{scrlayer} - -\bool_if:NTF \g_TUDaletter_logo_bool { - \DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstheadhpos}, - voffset=\useplength{firstheadvpos}, - width=\box_wd:N \g_TUDaLetter_firsthead_box, - height=\box_ht:N \g_TUDaLetter_firsthead_box, - contents={\box_use:N \g_TUDaLetter_firsthead_box} - ]{letter.head} -}{ - \DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstheadhpos}, - voffset=\useplength{firstheadvpos}, - %TODO: replace leiste logo=? - width=\box_wd:N \TuDa@LetterheadRule_box, - height=\box_ht:N \TuDa@LetterheadRule_box, - contents=\TuDa@LetterheadRule - ]{letter.head} +\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}} + } } -\DeclareNewLayer[ - background, - align=tl, - hoffset=\useplength{firstfoothpos}, - voffset=\useplength{firstfootvpos}, - width=\useplength{firstfootwidth}, - height=\baselineskip, - contents={\raisebox{\ht\strutbox}{\parbox[t]{\layerwidth}{\usekomavar{nextfoot}}}} -]{letter.foot} - -\RequirePackage{tikz} -\DeclareNewPageStyleByLayers{TUDaletter}{ - letter.head, letter.foot.rule, letter.foot +\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}}% } -\DeclarePageStyleAlias{letter}{TUDaletter} -\DeclarePageStyleAlias{plain.letter}{TUDaletter} +\DeclarePageStyleByLayers{TUDaLetter.first}{TUDaLetter.foot.even,TUDaLetter.foot.odd,TUDaLetter.foot.oneside,TUDaLetter.foot.above.line} +\pagestyle{TUDaLetter} -\pagestyle{plain.letter} +\DeclarePageStyleAlias{letter.first}{TUDaLetter.first} +\def\letterpagestyle{TUDaLetter} %pdfa -\if_bool:N \g_TUDa@pdfa_bool +\if_bool:N \g_ptxcd_pdfa_bool \PassOptionsToPackage{a-2b}{pdfx} \RequirePackage{pdfx} %%hyperref \hypersetup{hidelinks, unicode} -\iow_new:N \TUDa@xmpdata_stream -\tl_new:N \g_TUDa@xmp_title -\tl_new:N \g_TUDa@xmp_author +\iow_new:N \ptxcd_xmpdata_stream +\tl_new:N \g_ptxcd_xmp_title +\tl_new:N \g_ptxcd_xmp_author -\cs_new:Nn \TUDa_pass_TitleData: { - \prop_if_empty:NF \g_TUDa_MetaData_prop { - \iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata} +\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_TUDa_MetaData_prop \TUDa_write_xmp_line:nn + \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn \endgroup - \iow_close:N \TUDa@xmpdata_stream + \iow_close:N \ptxcd_xmpdata_stream } } -\cs_new:Nn \TUDa_write_xmp_line:nn { +\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 { @@ -440,24 +462,24 @@ \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} } \cs_if_exist:cTF {\l_tmpa_tl}{ - \iow_now:Nx \TUDa@xmpdata_stream { + \iow_now:Nx \ptxcd_xmpdata_stream { \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} } }{ - \msg_error:nnn {TUDapub} {unknown-metadata} {#1} + \msg_error:nnn{tudaletter} {unknown-metadata} {#1} } } -\bool_new:N \g_TUDa_pass_TitleData_bool -\bool_gset_true:N \g_TUDa_pass_TitleData_bool -\prop_new:N \g_TUDa_MetaData_prop +\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_TUDa_pass_TitleData_bool - \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#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} { +\msg_new:nnnn{tudaletter} {unknown-metadata} { You~ used~ the~ #1~ metadata~ entry.\\ I~ don't~ know~ how~ to~ handle~ that.\\ It~ will~ be~ ignored. @@ -486,11 +508,12 @@ \newkomavar{fromfunction} -\bool_if:NT \g_TUDa_raggedright_bool {\AtBeginLetter{\RaggedRight}} +\bool_if:NT \g__ptxcd_letter_raggedright_bool {\AtBeginLetter{\RaggedRight}} %backwards compatibility for KOMA-Script \cs_if_exist:NF \Ifkomavarempty{ \let\Ifkomavarempty\ifkomavarempty } +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} \endinput diff --git a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo index 6c58267307..831defc19a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo +++ b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo @@ -1,4 +1,4 @@ -%% This is file `tudalettersize10pt.clo' version 2.11 (2020/06/12), +%% This is file `tudalettersize10pt.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} %% This is file `tudalettersize10pt.clo' version 1.0 (2018/12/12), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt diff --git a/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg new file mode 100644 index 0000000000..d3bf8ed08a --- /dev/null +++ b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg @@ -0,0 +1,263 @@ +%% This is file `tudamecheng.cfg' version 3.00 (2020/09/08), +%% it is part of +%% TUDa-CI -- Corporate Design for TU Darmstadt +%% ---------------------------------------------------------------------------- +%% +%% Copyright (C) 2018--2020 by Marei Peischl <marei@peitex.de> +%% +%% ============================================================================ +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2008/05/04 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainers of this work are +%% Marei Peischl <tuda-ci@peitex.de> +%% Markus Lazanowski <latex@ce.tu-darmstadt.de> +%% +%% The development respository can be found at +%% https://github.com/tudace/tuda_latex_templates +%% Please use the issue tracker for feedback! +%% +%% ============================================================================ +%% +\def\fileversion{3.00} +\def\filedate{2020/09/08} +\RequirePackage{expl3} +\ProvidesExplFile{tudamecheng.cfg} +{\filedate}{\fileversion}{Special Features the department of mechanical engineering of Darmstadt's Corporate Design (tuda-ci)} + +\RequirePackage{pgf} + +\cs_new:Nn \ptxcd_mecheng_arrow:N { + \begin{pgfpicture} + \pgfsetbaseline{0} + \pgfsetcolor{TUDa-Arrow} + \pgfsetrectcap + \str_if_eq:VnTF \c__ptxcd_base_str {leaflet} + {\pgfsetlinewidth{2\g_ptxcd_titlerule_dim}} + {\pgfsetlinewidth{2\c_ptxcd_smallrule_dim}} + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{174}{.05#1}} + \pgfpathlineto{\pgfpointpolar{186}{.05#1}} + \pgfpathclose + \pgfusepath{fill} + \pgfpathmoveto{\pgfpoint{-.04#1}{0}} + \pgfpathlineto{\pgfpoint{-#1}{0}} + \pgfusepath{stroke} + \end{pgfpicture} +} + +\NewDocumentCommand{\MechEngArrow}{sm}{ + \IfBooleanT{#1}{\begingroup\colorlet{TUDa-Arrow}{.}} + \dim_set:Nn \l_tmpa_dim {#2}\ptxcd_mecheng_arrow:N \l_tmpa_dim + \IfBooleanT{#1}{\endgroup} +} + +\box_new:N \g_ptxcd_footline_box +\hbox_gset:Nn \g_ptxcd_footline_box {\MechEngArrow{\textwidth}} + + +\RenewDocumentCommand{\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}{\MechEngArrow{\l_ptxcd_headrule_width_dim}} + } + \IfBooleanF{#1} {\cs_new:cpn {#3} {\box_use:c {#3_box}}} +} + + +\str_if_eq:VnT \c__ptxcd_base_str {pub} { + \cs_set:Nn \ptxcd_setup_sponsor_box: { + \hbox_gset:Nn \g_ptxcd_sponsor_box { + \def\height{\dimexpr.8\c_ptxcd_logoheight_dim\relax} + \parbox[t]{\textwidth}{ + \bool_if:nF {\seq_if_empty_p:N \g_ptxcd_sponsors_seq && \tl_if_empty_p:N \@sponsors} { + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\nointerlineskip + \vspace{\dimexpr.1\c_ptxcd_logoheight_dim-\c_ptxcd_smallrule_dim} + } + \seq_use:Nn \g_ptxcd_sponsors_seq {\hfill} + \ifhmode + \par + \nointerlineskip + \addvspace{.1\c_ptxcd_logoheight_dim} + \fi + \ifx\@sponsors\@empty + \else + \@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} + } + } + } + + \renewcommand*{\sectionformat}{\color{TUDa-Primary2}\thesection\autodot\enskip} + + \if@titlepage + \titlehead{\rule{0pt}{\c_ptxcd_logoheight_dim}} + \fi +} + +\str_case:VnT \c__ptxcd_base_str { + {pub} {} + {exercise} {} +} { + + \addtokomafont{footsepline}{\color{accentcolor}} + + \newpairofpagestyles[TUDa.\c__ptxcd_base_str]{TUDa.mecheng}{ + \KOMAoptions{plainfootsepline,footsepline=5pt} + \ptxcd_makeheadrule[color=TUDa-Primary1, width=\sls@headwidth]{ptxcd_headrule} + + \ModifyLayer[ + contents=\smash{\ptxcd_headrule} + ]{TUDa.mecheng.head.above.line} + \ModifyLayer[ + contents=\smash{\ptxcd_headrule} + ]{plain.TUDa.mecheng.head.above.line} + + + \ModifyLayer[ + contents={ + \dim_compare:nF {\box_wd:N \g_ptxcd_footline_box=\layerwidth} { + \hbox_gset:Nn \g_ptxcd_footline_box {\MechEngArrow{\layerwidth}} + } + \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} { + \hbox_gset:Nn \g_ptxcd_footline_box {\MechEngArrow{\layerwidth}} + } + \smash{\box_use:N \g_ptxcd_footline_box} + } + ]{plain.TUDa.mecheng.foot.above.line} + + \clearpairofpagestyles + \cfoot[\pagemark]{\pagemark} + \tl_if_empty:NF \g_ptxcd_departmentlogo_tl { + \lefoot[{\raisebox{-\height}[0pt][0pt]{\includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}}}]{\raisebox{-\height}[0pt][0pt]{\includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}}} + \lofoot[{\raisebox{-\height}[0pt][0pt]{\includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}}}]{\raisebox{-\height}[0pt][0pt]{\includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}}} + } + } + \DeclarePageStyleAlias{TUDa}{TUDa.mecheng} + \DeclarePageStyleAlias{plain.TUDa}{plain.TUDa.mecheng} + \pagestyle{TUDa} +} + + +\str_if_eq:VnT \c__ptxcd_base_str {sciposter} { + \cs_set: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=south~west,inner~sep=\z@] (footerarrow) at ([yshift=\g_ptxcd_footheight_dim]bottomleft) {\MechEngArrow{\contentwidth}}; + \node[anchor=north~west,inner~sep=\z@] (departmentlogo) at ([yshift=\g_ptxcd_footheight_dim]bottomleft) + {\includegraphics[width=\dimexpr2\linewidth/7]{\g_ptxcd_departmentlogo_tl}}; + \node[anchor=south~west,inner~sep=\z@] (infofooter) at (footerarrow.north~west) { + \parbox{\contentwidth}{ + \accentfont\small\g_ptxcd_poster_foot_tl + \par\medskip + \let\footnotetext\ptxcd_title@footnote + \g_ptxcd_thanks_tl} + }; + } +} + +\str_if_eq:VnT \c__ptxcd_base_str {poster} { + \ModifyLayer[ + clone=TUDa.poster.qrcode, + align=bl, + hoffset=\g_ptxcd_margin_dim, + width=\paperwidth-2\g_ptxcd_margin_dim, + height=\g_ptxcd_footheight_dim, + contents={ + \usekomafont{pagefoot} + \bool_if:NTF \g_ptxcd_poster_foot_bool { + \put(0,\LenToUnit{\g_ptxcd_qrcode_dim+\g_ptxcd_footheight_dim}){\rlap{\rule{\dimexpr\paperwidth-2\g_ptxcd_margin_dim}{.5\c_ptxcd_smallrule_dim}}} + \put(0,\LenToUnit{\g_ptxcd_qrcode_dim+.5\g_ptxcd_footheight_dim}) { + \parbox[c][\g_ptxcd_footheight_dim][c]{\layerwidth}{\strut\g_ptxcd_poster_foot_tl\strut}} + \put(0,\LenToUnit{1.2\g_ptxcd_qrcode_dim}){\rlap{\ptxcd_makefootrule*[width=\dimexpr\paperwidth-2\g_ptxcd_margin_dim, color=identbarcolor]{TUDa@footrule}}} + \putLL{ + \includegraphics[width=\dimexpr2\linewidth/7]{\g_ptxcd_departmentlogo_tl} + } + }{ + \put(0,\LenToUnit{1.2\g_ptxcd_qrcode_dim}){\rlap{\ptxcd_makefootrule*[width=\dimexpr\paperwidth-2\g_ptxcd_margin_dim, color=identbarcolor]{TUDa@footrule}}} + \putLL{ + \includegraphics[width=\dimexpr2\linewidth/7]{\g_ptxcd_departmentlogo_tl} + } + } + } + ]{TUDa.poster.footer} + + \dim_set:Nn \g_ptxcd_footheight_dim {\dim_max:nn {2\g_ptxcd_footheight_dim} {1.5\baselineskip}} + \geometry{bottom=\dim_eval:n {\g_ptxcd_footheight_dim+\footskip+\g_ptxcd_margin_dim}} +} + +\str_if_eq:VnT \c__ptxcd_base_str {letter} { + \setkomavar{nextfoot}{ + \raisebox{-\height}[0pt][0pt]{ + \parbox{\useplength{firstfootwidth}}{ + \usekomafont{pagefoot} + \includegraphics[width=1.4\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl}\\ + \MechEngArrow{\l_ptxcd_headrule_width_dim} + } + } + } + + \setkomavar{nexthead}{} + \newpairofpagestyles[TUDaLetter]{TUDaLetter.mecheng}{ + \KOMAoptions{footsepline=false,pagenumber=topright} + \clearpairofpagestyles + \lehead{\usekomavar{nexthead}}% + \lohead{\usekomavar{nexthead}}% + \lefoot{\usekomavar{nextfoot}}% + \lofoot{\usekomavar{nextfoot}}% + \rehead[\pagemark]{\pagemark} + \rohead[\pagemark]{\pagemark} + } + + \DeclarePageStyleByLayers{TUDaLetter.mecheng.first}{TUDaLetter.mecheng.foot.even,TUDaLetter.mecheng.foot.odd,TUDaLetter.mecheng.foot.oneside,TUDaLetter.mecheng.foot.above.line} + \DeclarePageStyleAlias{letter.first}{TUDaLetter.mecheng.first} + + \def\letterpagestyle{TUDaLetter.mecheng} + \geometry{bottom=\dimexpr\c_ptxcd_BottomMargin_dim+10mm} +} + +\str_if_eq:VnT \c__ptxcd_base_str {leaflet} { + \ModifyLayer[ + contents={\raisebox{-\height}[0pt][0pt]{\parbox{\layerwidth}{ + \leavevmode\box_use:N \ptxcd_footrule_box\\[\c_ptxcd_rulesep_dim] + \includegraphics[width=\c_ptxcd_logoheight_dim]{\g_ptxcd_departmentlogo_tl} + }}} + ]{TUDa.flyer.footline} +} + +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls index 403abef8e7..81581aa1bf 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls @@ -1,4 +1,4 @@ -%% This is file `tudaposter.cls' version 2.11 (2020/06/12), +%% This is file `tudaposter.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,52 +26,55 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudaposter}{\filedate}{\fileversion}{Poster Layouts for the Corporate Design of TU Darmstadt} \RequirePackage{l3keys2e} -\bool_new:N \g_TUDa_logo@inhead_bool -\dim_new:N \g_TUDa_margin_dim -\int_new:N \g_TUDa_paper_int -\int_new:N \g_TUDa_postertype_int +\bool_new:N \g_ptxcd_logo_inhead_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 -\keys_define:nn {TUDa/poster} { +\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_TUDa_logo@inhead_bool}, - logo / body .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool}, - logo / top .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool}, - logo / bottom .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool}, + logo / 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_TUDa_poster_foot_bool, + footer .bool_gset:N = \g_ptxcd_poster_foot_bool, footer .default:n = true, footer .initial:n = false, - footheight .dim_gset:N = \g_TUDa_footheight_dim, + footheight .dim_gset:N = \g_ptxcd_footheight_dim, paper .choices:nn = {a0,a1,a2,a3,a4}{ - \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int + \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules} - \tl_gset_eq:NN \g_TUDa_paper_tl \l_keys_choice_tl + \tl_gset_eq:NN \g_ptxcd_paper_tl \l_keys_choice_tl }, fontsize .choice:, - fontsize / auto .code:n = \tl_gclear:N \g_TUDa_fontsize_tl, - fontsize / unknown .code:n = {\@defaultunits\@tempdima#1pt\relax\@nnil \tl_gset:Nx \g_TUDa_fontsize_tl {\the\@tempdima}}, + fontsize / 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_TUDa_logofile_tl, + logofile .tl_gset:N = \g_ptxcd_logofile_tl, logofile .initial:n = tuda_logo, type .choice:, type / default .code:n = { - \int_gset:Nn \g_TUDa_postertype_int {1} + \int_gset:Nn \g_ptxcd_postertype_int {1} }, type / announcement .code:n = { - \int_gset:Nn \g_TUDa_postertype_int {2} - \keys_set:nn {TUDa/poster}{ + \int_gset:Nn \g_ptxcd_postertype_int {2} + \keys_set:nn {ptxcd/poster}{ marginpar=true, indenttext=false,%allow overwrite - check default logo=head, @@ -80,25 +83,36 @@ } }, type .initial:n = default, - indenttext .bool_gset:N = \g_TUDa_indenttext_bool, + indenttext .bool_gset:N = \g_ptxcd_indenttext_bool, indenttext .initial:n = false, indenttext .default:n = true, - marginpar .bool_gset:N = \g_TUDa_marginpar_bool, + 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_TUDa_smalltitle_bool, - title / small .code:n = \bool_gset_true:N \g_TUDa_smalltitle_bool, + 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, - colorsubtitle .bool_gset:N = \g_TUDa_colorsubtitle_bool, + 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, + mecheng .meta:n = {department=mecheng}, + departmentlogofile .tl_gset:N = \g_ptxcd_departmentlogo_tl, + departmentlogofile .initial:n =, } - -\ProcessKeysOptions{TUDa/poster} +\ProcessKeysOptions{ptxcd/poster} \ExplSyntaxOff \LoadClass[parskip=half-]{scrartcl} @@ -106,32 +120,34 @@ \RequirePackage{scrlayer-notecolumn} \ExplSyntaxOn -\tl_if_empty:NT \g_TUDa_paper_tl {\keys_set:nn {TUDa/poster} {paper=a0}} +\tl_if_empty:NT \g_ptxcd_paper_tl {\keys_set:nn {ptxcd/poster} {paper=a0}} -\bool_if:NTF \g_TUDa_smalltitle_bool { - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_title_sizes: - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_base_sizes: +\bool_if:NTF \g_ptxcd_smalltitle_bool { + \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo} + \ptxcd_setup_title_sizes: + \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo} + \ptxcd_setup_base_sizes: }{ - \int_gdecr:N \g_TUDa_paper_int - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_title_sizes: - \TUDa_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}{\color{textonaccentcolor}\expandafter\fontsize\TUDa_title_fontsize:\selectfont} -\setkomafont{subtitle}{\expandafter\fontsize\TUDa_titleinfo_fontsize:\selectfont} -\newkomafont{titleinfo}{\expandafter\fontsize\TUDa_titleinfo_fontsize:\selectfont} +\setkomafont{title}{ + \bool_if:NT \g_ptxcd_colorback_bool + {\color{textonaccentcolor}}\expandafter\fontsize\ptxcd_title_fontsize:\selectfont} +\setkomafont{subtitle}{\expandafter\fontsize\ptxcd_titleinfo_fontsize:\selectfont} +\newkomafont{titleinfo}{\expandafter\fontsize\ptxcd_titleinfo_fontsize:\selectfont} \ExplSyntaxOff -\KOMAoptions{fontsize=\csname g_TUDa_fontsize_tl\endcsname} +\KOMAoptions{fontsize=\csname g_ptxcd_fontsize_tl\endcsname} \ExplSyntaxOn \RequirePackage{tudafonts} \renewcommand*{\familydefault}{\sfdefault} -\RequirePackage[paper=\g_TUDa_paper_tl,mode=tikz]{tudarules} +\RequirePackage[paper=\g_ptxcd_paper_tl,mode=tikz]{tudarules} \RequirePackage{tudacolors} \RequirePackage{qrcode} @@ -141,14 +157,12 @@ \newlength{\contentwidth} -\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_TUDa_margin_dim} +\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_ptxcd_margin_dim} -\TUDa@makeheadrule[width=\contentwidth, color=identbarcolor]{TUDa@posterrule} - -\TUDa@makefootrule[width=\contentwidth, color=identbarcolor]{TUDa@smallrule} +\ptxcd_makeheadrule[width=\contentwidth, color=identbarcolor]{ptxcd_headrule} %%%%%%%%%%%%%%%%%%%%%% -\int_case:nn {\g_TUDa_postertype_int} +\int_case:nn {\g_ptxcd_postertype_int} { {1} {} {2} { @@ -158,140 +172,130 @@ %%%%%%%%%%%%%%%%%%%%%% %marginpar option -\dim_new:N \g_TUDa_marginpar_dim +\dim_new:N \g_ptxcd_marginpar_dim %%%%%%%%%%%%%%%%%%%%%% -\dim_new:N \g_TUDa_titleindent_dim +\dim_new:N \g_ptxcd_titleindent_dim \begingroup -\expandafter\fontsize\TUDa_title_fontsize:\selectfont - \dim_gset:Nn \g_TUDa_titleindent_dim {.5ex} +\expandafter\fontsize\ptxcd_title_fontsize:\selectfont + \dim_gset:Nn \g_ptxcd_titleindent_dim {.5ex} \endgroup -\dim_new:N \g_TUDa_columnSep_dim -\dim_gset:Nn \g_TUDa_columnSep_dim {1em} +\dim_new:N \g_ptxcd_columnSep_dim +\dim_gset:Nn \g_ptxcd_columnSep_dim {1em} \RequirePackage{geometry} \geometry{ - margin= \g_TUDa_margin_dim, + margin= \g_ptxcd_margin_dim, hmargin = \dim_eval:n { - \g_TUDa_margin_dim + - \bool_if:NTF \g_TUDa_indenttext_bool - {\g_TUDa_titleindent_dim} {0pt} + \g_ptxcd_margin_dim + + \bool_if:NTF \g_ptxcd_indenttext_bool + {\g_ptxcd_titleindent_dim} {0pt} }, top=\dim_eval:n { - \box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box - + .5\c_TUDa_logoheight_dim - +\g_TUDa_margin_dim} + \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_TUDa_marginpar_bool { - \dim_gset:Nn \g_TUDa_marginpar_dim {2.2\c_TUDa_logoheight_dim} +\bool_if:NTF \g_ptxcd_marginpar_bool { + \dim_gset:Nn \g_ptxcd_marginpar_dim {2.2\c_ptxcd_logoheight_dim} \geometry{ - includemp, marginpar=\g_TUDa_marginpar_dim, marginparsep=\g_TUDa_columnSep_dim, + includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim, right = \dim_eval:n { - \g_TUDa_margin_dim + - \bool_if:nTF {\g_TUDa_indenttext_bool && !\g_TUDa_marginpar_bool} - {\g_TUDa_titleindent_dim} {0pt} + \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_TUDa_marginpar_dim + \dim_gzero:N \g_ptxcd_marginpar_dim \geometry{ nomarginpar, right = \dim_eval:n { - \bool_if:NT \g_TUDa_indenttext_bool - {\g_TUDa_titleindent_dim} - + \g_TUDa_margin_dim + \bool_if:NT \g_ptxcd_indenttext_bool + {\g_ptxcd_titleindent_dim} + + \g_ptxcd_margin_dim }, } \KOMAoptions{mpinclude=false} } -\bool_if:NT \g_TUDa_poster_foot_bool { - \dim_compare:nT {\g_TUDa_footheight_dim = 0pt} { - \dim_set:Nn \g_TUDa_footheight_dim +\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_TUDa_footheight_dim+\footskip+\g_TUDa_margin_dim}} + \geometry{bottom=\dim_eval:n {\g_ptxcd_footheight_dim+\footskip+\g_ptxcd_margin_dim}} } %%%%%%%%%%%%%%%%%%%%%% -\dim_new:N \g_TUDa_qrcode_dim -\dim_gset:Nn \g_TUDa_qrcode_dim {.7\c_TUDa_logoheight_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_TUDa_qrcode_dim, - height=\g_TUDa_qrcode_dim, - hoffset=\paperwidth-\g_TUDa_margin_dim, - voffset=\paperheight-\g_TUDa_margin_dim, + 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_TUDa_poster_qrcode_tl { - \let\width\g_TUDa_qrcode_dim - \let\height\g_TUDa_qrcode_dim - \g_TUDa_poster_qrcode_tl + \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} -\bool_if:NTF \g_TUDa_poster_foot_bool { - \DeclareNewLayer[ + +\DeclareNewLayer[ clone=TUDa.poster.qrcode, align=bl, - hoffset=\g_TUDa_margin_dim, - width=\paperwidth-2\g_TUDa_margin_dim, - height=\g_TUDa_footheight_dim, + hoffset=\g_ptxcd_margin_dim, + width=\paperwidth-2\g_ptxcd_margin_dim, + height=\g_ptxcd_footheight_dim, contents={ - \putUL{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}} - \put(0,0) { - \parbox[b][\g_TUDa_footheight_dim][c]{\layerwidth}{\strut\g_TUDa_poster_foot_tl\strut}} - \putLL{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}} + \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[ - clone=TUDa.poster.qrcode, - align=bl, - hoffset=\g_TUDa_margin_dim, - width=\paperwidth-2\g_TUDa_margin_dim, - height=0pt, - contents={\smash{\rule{\layerwidth}{.5\c_TUDa_smallrule_dim}}} - ]{TUDa.poster.footer} -} +]{TUDa.poster.footer} \DeclareNewLayer[ background,mode=picture, - width=\paperwidth-2\g_TUDa_margin_dim, - hoffset=\g_TUDa_margin_dim, - voffset=\g_TUDa_margin_dim+\box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box, - contents={\color{accentcolor}\rule{\layerwidth}{\layerheight}} + 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_TUDa_margin_dim, - width=2.2\c_TUDa_logoheight_dim, + hoffset=\paperwidth-\g_ptxcd_margin_dim, + width=2.2\c_ptxcd_logoheight_dim, height=.5\textheight, - contents={\box_use:N \g_TUDa_title_info_box} + contents={\box_use:N \g_ptxcd_title_info_box} ]{TUDa.poster.logo} \DeclareNewLayer[ clone=TUDa.poster.background, -% textarea, align=tl, - voffset=\g_TUDa_margin_dim, - height=\box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box, + voffset=\g_ptxcd_margin_dim, + height=\box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box, mode=picture, - contents={ - \box_use:N \TUDa@posterrule_box - } + contents={\box_use:N \ptxcd_headrule_box} ]{TUDa.poster.rule} \DeclareNewLayer[ @@ -303,8 +307,8 @@ \pagestyle{TUDa.poster} -\dim_new:N \g_TUDa_titlegraphic_max_height_dim -\dim_new:N \g_TUDa_titleback_dim +\dim_new:N \g_ptxcd_titlegraphic_max_height_dim +\dim_new:N \g_ptxcd_titleback_dim \newcommand*{\titleinfo}[1]{\def\@titleinfo{#1}} \titleinfo{} @@ -312,88 +316,90 @@ \renewcommand*{\maketitle}{ \begingroup \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \bool_if:NT \g_TUDa_marginpar_bool - {\setlength{\linewidth}{\dim_eval:n {\textwidth+\g_TUDa_marginpar_dim + \marginparsep}}} - \vbox_gset:Nn \g_TUDa_title_box + \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_TUDa_smalltitle_bool {\raisebox{ - \dim_max:nn {0pt} {1.5\c_TUDa_logoheight_dim - \height} + \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_TUDa_logo@inhead_bool {.75}\linewidth} + \begin{minipage}[b]{\bool_if:NT \g_ptxcd_logo_inhead_bool {.75}\linewidth} \leavevmode\par\nointerlineskip - \bool_if:NF \g_TUDa_indenttext_bool {\begin{addmargin}{\g_TUDa_titleindent_dim }} + \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_TUDa_indenttext_bool {\nointerlineskip\leavevmode}{\end{addmargin}} + \bool_if:NTF \g_ptxcd_indenttext_bool {\nointerlineskip\leavevmode}{\end{addmargin}} \end{minipage} } \par\nointerlineskip \exp_args:Nf \tl_if_empty:nF {\@subtitle\@titleinfo} { - \bool_if:NT \g_TUDa_indenttext_bool {\hspace*{-\g_TUDa_titleindent_dim}}\TUDa@smallrule\par + \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim}} + \rule{\linewidth}{\g_ptxcd_titlerule_dim} + \par \nointerlineskip - \vspace{\c_TUDa_rulesep_dim} - \bool_if:NTF \g_TUDa_indenttext_bool {\begingroup}{\begin{addmargin}{\g_TUDa_titleindent_dim }} - \bool_if:NT \g_TUDa_colorsubtitle_bool {\color{textonaccentcolor}} + \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}} \tl_if_empty:NF \@subtitle {{\usekomafont{subtitle}\strut\@subtitle\strut\par}} \tl_if_empty:NF \@titleinfo {{\usekomafont{titleinfo}\@titleinfo\par}} \nointerlineskip - \bool_if:NTF \g_TUDa_indenttext_bool {\endgroup} {\end{addmargin}} - \vspace{\c_TUDa_rulesep_dim} + \bool_if:NTF \g_ptxcd_indenttext_bool {\endgroup} {\end{addmargin}} + \vspace{\c_ptxcd_rulesep_dim} \par\nointerlineskip - \bool_if:NT \g_TUDa_indenttext_bool {\hspace*{-\g_TUDa_titleindent_dim} + \bool_if:NT \g_ptxcd_indenttext_bool {\hspace*{-\g_ptxcd_titleindent_dim} } } \nointerlineskip - \TUDa@smallrule + \rule{\linewidth}{\g_ptxcd_titlerule_dim} } } \endgroup - \TUDa_Setup_Title_box: - \dim_gset:Nn \g_TUDa_titleback_dim { - \bool_if:NT \g_TUDa_colorsubtitle_bool {\box_dp:N \g_TUDa_title_box}+ - \box_ht:N \g_TUDa_title_box+.5\c_TUDa_logoheight_dim + \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_TUDa_titleback_dim + height=\g_ptxcd_titleback_dim ]{TUDa.poster.background} - \bool_if:NF \g_TUDa_logo@inhead_bool { + \bool_if:NF \g_ptxcd_logo_inhead_bool { \ModifyLayer[ - addvoffset=\g_TUDa_titleback_dim+\c_TUDa_smallrule_dim + addvoffset=\g_ptxcd_titleback_dim+\c_ptxcd_smallrule_dim ]{TUDa.poster.logo} } - \bool_if:NT \g_TUDa_logo@inhead_bool { - \dim_compare:nT {\box_ht:N \g_TUDa_title_info_box+ \box_dp:N \g_TUDa_title_info_box > \box_ht:N \g_TUDa_title_box} - {\msg_warning:nn {TUDaPoster} {infobox-too-high}} + \bool_if:NT \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}} } - \leavevmode\box_use:N \g_TUDa_title_box\par - \dim_set:Nn \g_TUDa_titlegraphic_max_height_dim {\textheight-\pagetotal} - \global\def\contentheight{\g_TUDa_titlegraphic_max_height_dim} + \leavevmode\box_use:N \g_ptxcd_title_box\par + \dim_set:Nn \g_ptxcd_titlegraphic_max_height_dim {\textheight-\pagetotal} + \global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim} \tl_if_empty:NF \@titlegraphic{ - \vbox_gset:Nn \g_TUDa_titlegraphic_box {\parbox[t]{\dim_eval:n {\paperwidth-2\g_TUDa_margin_dim}}{\@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_TUDa_titlegraphic_box + \box_use:N \g_ptxcd_titlegraphic_box } \DeclareLayer[ clone=TUDa.poster.marginpar, - height=\bool_if:NF \l_TUDa_marginpar_overlap_bool {-\box_ht:N \g_TUDa_titlegraphic_box-\box_dp:N \g_TUDa_titlegraphic_box} - +\textheight-\box_ht:N \g_TUDa_title_box-\box_dp:N \g_TUDa_title_box-.5\c_TUDa_logoheight_dim, - addvoffset=\bool_if:NF \l_TUDa_marginpar_overlap_bool {+\box_ht:N\g_TUDa_titlegraphic_box+\box_dp:N \g_TUDa_titlegraphic_box} - +\box_ht:N \g_TUDa_title_box+\box_dp:N \g_TUDa_title_box+.5\c_TUDa_logoheight_dim, + 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_TUDa_poster_qrcode_tl { - \ModifyLayer[addwidth=-\g_TUDa_qrcode_dim-\c_TUDa_rulesep_dim]{TUDa.poster.footer} + \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} @@ -406,44 +412,39 @@ \let\@titleinfo\@empty } -\global\def\contentwidth{\linewidth} -\global\def\contentheight{\g_TUDa_titlegraphic_max_height_dim} - \def\@titlegraphic{} \newcommand{\titlegraphic}[1]{ \def\@titlegraphic{#1} } -\box_new:N \g_TUDa_titlegraphic_box +\box_new:N \g_ptxcd_titlegraphic_box -\seq_new:N \g_TUDa_title_info_seq +\seq_new:N \g_ptxcd_title_info_seq -\seq_gput_right:Nn \g_TUDa_title_info_seq { - \rlap{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}} +\seq_gput_right:Nn \g_ptxcd_title_info_seq { + \rlap{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}} } -\box_new:N \g_TUDa_title_info_box -\box_new:N \g_TUDa_title_box - -\colorlet{TUDa@InfoBoxColor}{white} +\box_new:N \g_ptxcd_title_info_box +\box_new:N \g_ptxcd_title_box -\cs_new:Nn \TUDa_make_title_info_box:n { +\cs_new:Nn \ptxcd_make_title_info_box:n { \usekomafont{titleinfo} \setlength{\fboxsep}{.2\baselineskip} - \colorbox{TUDa@InfoBoxColor}{\hspace*{\dimexpr.2\c_TUDa_logoheight_dim-\fboxsep}% - \parbox{2\c_TUDa_logoheight_dim}{ + \colorbox{InfoBox}{\hspace*{\dimexpr.2\c_ptxcd_logoheight_dim-\fboxsep}% + \parbox{2\c_ptxcd_logoheight_dim}{ \raggedright #1 }} } -\cs_new:Nn \TUDa_make_title_logo_box:n { +\cs_new:Nn \ptxcd_make_title_logo_box:n { \setlength{\fboxsep}{\z@}% - \parbox{2.2\c_TUDa_logoheight_dim}{ - \colorbox{TUDa@InfoBoxColor}{ + \parbox{2.2\c_ptxcd_logoheight_dim}{ + \colorbox{InfoBox}{ \rlap{ - \makebox[2.5\c_TUDa_logoheight_dim][r]{ - \colorbox{TUDa@InfoBoxColor}{#1\hspace{.3\c_TUDa_logoheight_dim}} + \makebox[2.5\c_ptxcd_logoheight_dim][r]{ + \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}} } } } @@ -451,20 +452,20 @@ } -\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_TUDa_title_info_seq {\TUDa_make_title_info_box:n {#1}}} +\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_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n {#2} + \seq_gput_right:Nn \g_ptxcd_title_info_seq { + \ptxcd_make_title_logo_box:n {#2} } }{ - \seq_gput_right:Nn \g_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n { + \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_TUDa_logoheight_dim]{#2} + \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2} } - \dim_set:Nn \l_tmpa_dim {2\c_TUDa_logoheight_dim/3} + \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} @@ -473,44 +474,44 @@ } } -\cs_new:Nn \TUDa_Setup_Title_box: { - \hbox_gset:Nn \g_TUDa_title_info_box - {\parbox{2.2\c_TUDa_logoheight_dim}{ - \seq_use:Nn \g_TUDa_title_info_seq {\par\nointerlineskip\skip_vertical:n +\cs_new:Nn \ptxcd_Setup_Title_box: { + \hbox_gset:Nn \g_ptxcd_title_info_box + {\parbox{2.2\c_ptxcd_logoheight_dim}{ + \seq_use:Nn \g_ptxcd_title_info_seq {\par\nointerlineskip\skip_vertical:n { - \box_ht:N \TUDa@posterrule_box + \box_dp:N \TUDa@posterrule_box + \box_ht:N \ptxcd_headrule_box + \box_dp:N \ptxcd_headrule_box } } }} } -\tl_new:N \g_TUDa_poster_foot_tl +\tl_new:N \g_ptxcd_poster_foot_tl \newcommand{\footer}[1]{ - \tl_gset:Nn \g_TUDa_poster_foot_tl {#1} + \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1} } -\tl_new:N \g_TUDa_poster_qrcode_tl +\tl_new:N \g_ptxcd_poster_qrcode_tl \newcommand*{\footerqrcode}[1]{ - \tl_gset:Nn \g_TUDa_poster_qrcode_tl - {\raisebox{\depth}{\qrcode[height={\g_TUDa_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_TUDa_poster_qrcode_tl {#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} { +\msg_new:nnn{tudaposter} {infobox-too-high} { The~height~of~your~Infobox~exeeds~the~space~reserved~in~the~title~block.\\ You~should~probably~switch~to~logo=bottom~or~reduce~the~number/size~of~InfoBoxes. } -\keys_define:nn {TUDa/poster/marginparopts}{ - valign .tl_set:N = \l_TUDa_marginpar_valign_tl, +\keys_define:nn {ptxcd/poster/marginparopts}{ + valign .tl_set:N = \l_ptxcd_marginpar_valign_tl, valign .initial:n = t, - overlap .bool_set:N = \l_TUDa_marginpar_overlap_bool, + overlap .bool_set:N = \l_ptxcd_marginpar_overlap_bool, overlap .initial:n = false, overlap .default:n = true } @@ -521,16 +522,16 @@ \newcommand*{\infofont}{\accentfont\normalcolor\footnotesize} \DeclareTextFontCommand{\infotext}{\infofont} -\int_new:N \g_TUDa_marginpar_int +\int_new:N \g_ptxcd_marginpar_int \NewDocumentCommand{\SetMarginpar}{o+m}{ - \bool_if:NF \g_TUDa_marginpar_bool {\msg_warning:nn {TUDa/Poster} {marginpar-disabled}} - \IfNoValueF{#1}{\keys_set:nn {TUDa/poster/marginparopts} {#1}} - \ModifyLayer[addvoffset={-\ht\strutbox},contents={\parbox[t][\layerheight][\l_TUDa_marginpar_valign_tl]{\layerwidth}{#2}}]{TUDa.poster.marginpar} + \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 {TUDa/Poster} {marginpar-disabled} { +\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. } { @@ -538,4 +539,10 @@ See~the~TUDa-CI~documentation~for~further~information. } +\global\def\contentwidth{\linewidth} +\global\def\contentheight{\g_ptxcd_titlegraphic_max_height_dim} + +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} + + \endinput diff --git a/macros/latex/contrib/tuda-ci/tex/tudapub.cls b/macros/latex/contrib/tuda-ci/tex/tudapub.cls index 700fbd0c6a..f42c037891 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudapub.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudapub.cls @@ -1,4 +1,4 @@ -%% This is file `tudapub.cls' version 2.11 (2020/06/12), +%% This is file `tudapub.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,168 +26,189 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{tudapub} - {\filedate}{\fileversion}{Publications using TU Darmstadt's Coporate Design (TUDa-CI)} + {\filedate}{\fileversion}{Publications using TU Darmstadt's Corporate Design (TUDa-CI)} \RequirePackage{l3keys2e} \RequirePackage{URspecialopts} -\Define@specialopt@Module[TUDa/special] +\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 -\tl_new:N \g_TUDa_pub_class_tl -\tl_new:N \g_TUDa_thesis_options_tl +\prop_new:N \g_ptxcd_clsopts_prop +\prop_new:N \g_ptxcd_unknown_clsopts_prop +\prop_gput:Nnn \g_ptxcd_clsopts_prop {titlepage} {firstiscover} +\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline} -\prop_new:N \g_TUDa_clsopts_prop -\prop_new:N \g_TUDa_unknown_clsopts_prop -\prop_gput:Nnn \g_TUDa_clsopts_prop {titlepage} {firstiscover} -\prop_gput:Nnn \g_TUDa_clsopts_prop {captions} {nooneline} - -\int_new:N \g_TUDa_ruledheaders_int -\int_new:N \g_TUDa_paper_int -\msg_new:nnnn {TUDa} {compatibility-only} { +\int_new:N \g_ptxcd_ruledheaders_int +\int_new:N \g_ptxcd_paper_int +\msg_new:nnnn {tudapub} {compatibility-only} { You~used~the~outdated~#1~option.\\ This~only~exists~due~to~compatibility~reasons. }{ Please~look~at~tuda-ci~documentation~for~further~information~and~avoid~using~outdated~options. } -\bool_new:N \g_TUDa_geometry_bool -\bool_new:N \g_TUDa_custommargins_bool +\bool_new:N \g_ptxcd_geometry_bool +\bool_new:N \g_ptxcd_custommargins_bool -\keys_define:nn {TUDa/pub} { +\keys_define:nn {ptxcd/pub} { %twoside -> geometry + class class .choice:, class/report .meta:n = {class=scrreprt}, - class/scrreprt .code:n = \tl_gset:Nn \g_TUDa_pub_class_tl {scrreprt}, + class/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_TUDa_pub_class_tl {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_TUDa_pub_class_tl {scrbook}, + class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook}, class .initial:n = scrartcl,%MAYBE add custom values color .meta:n = {accentcolor=#1}, accentcolor .code:n = {\PassOptionsToPackage{accentcolor=#1}{tudacolors}}, textaccentcolor .code:n = {\PassOptionsToPackage{textaccentcolor=#1}{tudacolors}}, identbarcolor .code:n = {\PassOptionsToPackage{identbarcolor=#1}{tudacolors}}, - marginpar .tl_gset:N = \g_TUDa_marginpar_tl, + marginpar .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_TUDa_custommargins_bool - \bool_gset_false:N \g_TUDa_geometry_bool + \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_TUDa_custommargins_bool - \bool_gset_true:N \g_TUDa_geometry_bool + \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_TUDa_custommargins_bool - \bool_gset_true:N \g_TUDa_geometry_bool + \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_TUDa_clsopts_prop {fontsize} {#1}, + 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_TUDa_ruledheaders_int {\l_keys_choice_int} + \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_TUDa_pubType_tl \l_keys_choice_tl}, - type / intern .code:n = {\keys_set:nn {TUDa/pub} {titlepage=false, pdfa=false, IMRAD=false}}, + 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_TUDa_unknown_clsopts_prop \l_keys_key_tl {#1}}, + 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_TUDa_headline_bool, - headline / false .code:n = \bool_gset_false:N \g_TUDa_headline_bool, - headline / automark .code:n = {\bool_gset_true:N \g_TUDa_headline_bool \PassOptionsToPackage{automark}{scrlayer-scrpage}}, + 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_TUDa_colorback_bool, + colorback .bool_gset:N = \g_ptxcd_colorback_bool, colorback .initial:n = true, - colortitleback .code:n = \msg_warning:nnx {TUDa} {compatibility-only} {\l_keys_key_tl}\keys_set:nn {TUDa/pub} {logo=head,colorback=false}, - pdfa .bool_gset:N = \g_TUDa@pdfa_bool, + colortitleback .code:n = \msg_warning:nnx {tudapub} {compatibility-only} {\l_keys_key_tl} + \keys_set:nn {ptxcd/pub} {logo=head,colorback=false}, + pdfa .bool_gset:N = \g_ptxcd_pdfa_bool, pdfa .initial:n = true, - twocolumn .bool_gset:N = \g_TUDa_twocolumn_bool, + 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_TUDa_clsopts_prop {captions} { - \use:n {\prop_item:Nn \g_TUDa_clsopts_prop {captions}}, #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_TUDa_unknown_clsopts_prop {abstract} {#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_TUDa_logo@inhead_bool}, - logo / body .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool}, - logo / top .code:n = {\bool_gset_true:N \g_TUDa_logo@inhead_bool}, - logo / bottom .code:n = {\bool_gset_false:N \g_TUDa_logo@inhead_bool}, + logo / 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 = {body}, paper .choices:nn = {a0,a1,a2,a3,a4,a5,a6}{ - \int_gset_eq:NN \g_TUDa_paper_int \l_keys_choice_int + \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules} \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea} \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry} }, paper .initial:n = a4, - IMRAD .bool_gset:N = \g_TUDa_IMRAD_bool, + IMRAD .bool_gset:N = \g_ptxcd_IMRAD_bool, IMRAD .initial:n = true, IMRAD .default:n = true, - instbox .code:n = {\tl_gput_right:Nn \g_TUDa_thesis_options_tl {,instbox=#1}}, - noinstbox .code:n = {\tl_gput_right:Nn \g_TUDa_thesis_options_tl {,noinstbox=#1}}, - logofile .tl_gset:N = \g_TUDa_logofile_tl, + 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_TUDa_smalltitle_bool, - title / small .code:n = \bool_gset_true:N \g_TUDa_smalltitle_bool, + 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, + 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 -\Module@DefineSpecialKey[TUDa/special]{thesis}{ - \keys_set:nn {TUDa/pub}{type=thesis} - \tl_gput_right:No \g_TUDa_thesis_options_tl {#1} +\Module@DefineSpecialKey[ptxcd/pub]{thesis}{ + \keys_set:nn {ptxcd/pub}{type=thesis} + \tl_gput_right:No \g_ptxcd_thesis_options_tl {#1} } -\Module@Process@SpecialOptions[TUDa/special] +\Module@Process@SpecialOptions[ptxcd/pub] -\ProcessKeysOptions{TUDa/pub} +\ProcessKeysOptions{ptxcd/pub} %Option adjustments required for valid PDF/A -\bool_if:NT \g_TUDa@pdfa_bool { +\bool_if:NT \g_ptxcd_pdfa_bool { \PassOptionsToPackage{RGB}{xcolor} \PassOptionsToPackage{T1}{tudafonts} } -\prop_gput:Nnx \g_TUDa_clsopts_prop {twocolumn} {\bool_if:NTF \g_TUDa_twocolumn_bool {true} {false}} +\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_map_inline:Nn \g_TUDa_clsopts_prop { +\prop_gput:Nnx \g_ptxcd_clsopts_prop {twocolumn} { + \bool_if:NTF \g_ptxcd_twocolumn_bool {true} {false} +} + +\prop_map_inline:Nn \g_ptxcd_clsopts_prop { \tl_if_empty:nTF {#2} - {\PassOptionsToClass {#1} {\g_TUDa_pub_class_tl}} + {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}} { - \clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_TUDa_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_TUDa_clsopts_prop {fontsize}.clo} +\file_if_exist:nT {tudasize\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}.clo} {\providecommand*{\@fontsizefilebase}{tudasize}} -%\PassOptionsToPackage{DIV=7}{typearea} +\LoadClass{\g_ptxcd_pub_class_tl} -\LoadClass{\g_TUDa_pub_class_tl} -\prop_map_inline:Nn \g_TUDa_unknown_clsopts_prop { - \cs_if_exist:cT {KV@KOMA.\g_TUDa_pub_class_tl.cls@#1} { +\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}} @@ -195,37 +216,37 @@ } %ruled headers -\int_compare:nT {\g_TUDa_ruledheaders_int>=3} { +\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_TUDa_titlerule_dim}}} + \smash{\raisebox{\depth}{\rule[\dp\strutbox]{\linewidth}{\g_ptxcd_titlerule_dim}}} } } } -\int_compare:nT {\g_TUDa_ruledheaders_int =4 }{ +\int_compare:nT {\g_ptxcd_ruledheaders_int =4 }{ \renewcommand*\sectionlinesformat[4]{% \tl_if_eq:nnTF {#1} {section} { \parbox{\linewidth}{ - \rule[5\g_TUDa_titlerule_dim]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip + \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 {\TUDa_titlerule_sep: -\dp\strutbox} - \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}}} + \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox} + \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}}} }{ \@hangfrom{\hskip #2#3}{#4} } } } -\int_compare:nT {\g_TUDa_ruledheaders_int>4} { +\int_compare:nT {\g_ptxcd_ruledheaders_int>4} { \renewcommand*\sectionlinesformat[4]{% \parbox{\linewidth}{ - \rule[5\g_TUDa_titlerule_dim]{\linewidth}{\g_TUDa_titlerule_dim}\par\nointerlineskip + \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 {\TUDa_titlerule_sep: -\dp\strutbox} - \smash{\rule{\linewidth}{\g_TUDa_titlerule_dim}} + \skip_vertical:n {\ptxcd_titlerule_sep: -\dp\strutbox} + \smash{\rule{\linewidth}{\g_ptxcd_titlerule_dim}} }} } @@ -234,144 +255,141 @@ %,~ subsection,~ - - -%\newcommand{\chapterlineswithprefixformat}[3]{% -% #2#3% -%} -% -%ngerman,article,dr=phil,type=drfinal,colorback,accentcolor=TUDa-9c, fontsize=9pt,twoside=true - \usepackage{tudafonts} %Margin & titlefontsize setup setup -\bool_new:N \g_TUDa_marginpar_bool +\bool_new:N \g_ptxcd_marginpar_bool -\dim_new:N \g_TUDa_marginpar_dim -\dim_new:N \g_TUDa_innerMargin_dim -\dim_new:N \g_TUDa_outerMargin_dim -\dim_new:N \g_TUDa_bottomMargin_dim -\dim_new:N \g_TUDa_topMargin_dim +\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_TUDa_paper_int<=5} + \int_compare:nTF {4<=\g_ptxcd_paper_int<=5} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {20mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {15mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=3} + \int_compare:nT {1<=\g_ptxcd_paper_int<=3} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {35mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {30mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=6} + \int_compare:nT {\g_ptxcd_paper_int<=6} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {16mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {12mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_paper_int<=7} + \int_compare:nT {\g_ptxcd_paper_int<=7} { - \dim_gset:Nn \g_TUDa_bottomMargin_dim {15mm} - \dim_gset:Nn \g_TUDa_outerMargin_dim {10mm} - \dim_gset_eq:NN \g_TUDa_innerMargin_dim \g_TUDa_outerMargin_dim - \dim_gset_eq:NN \g_TUDa_topMargin_dim \g_TUDa_outerMargin_dim + \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_TUDa_columnSep_dim -\dim_gset:Nn \g_TUDa_columnSep_dim {10pt} +\dim_new:N \g_ptxcd_columnSep_dim +\dim_gset:Nn \g_ptxcd_columnSep_dim {10pt} %coverpage -\edef\coverpageleftmargin{\dim_eval:n {\g_TUDa_outerMargin_dim}} -\renewcommand*{\coverpagetopmargin}{\g_TUDa_outerMargin_dim} -\edef\coverpagerightmargin{\dim_eval:n {\g_TUDa_outerMargin_dim}} -\renewcommand*{\coverpagebottommargin}{\g_TUDa_outerMargin_dim} - -\str_case:onTF {\g_TUDa_marginpar_tl} { - {true} {\bool_gset_true:N \g_TUDa_marginpar_bool} - {false} {\bool_gset_false:N \g_TUDa_marginpar_bool} - {auto} {\bool_gset_true:N \g_TUDa_marginpar_bool} +\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} } { - \bool_if:NT \g_TUDa_marginpar_bool { - \msg_new:nnnn {TUDa} {marginpar-auto} {Setting~up~marginpar~consistent~with~layout~guidelines.} {To~turn~this~off~use~marginpar=false~option.} - \msg_info:nn {TUDa} {marginpar-auto} - \dim_gset:Nn \g_TUDa_marginpar_dim {(\paperwidth - \g_TUDa_innerMargin_dim -\g_TUDa_outerMargin_dim - 4 \g_TUDa_columnSep_dim)/5} + \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 {TUDa} {marginpar-no-key} {I~did~not~find~a~text~key~for~marginpar~setup~will~use~the~value~#1~as~width.} - \msg_info:nnx {TUDa} {marginpar-no-key} {\g_TUDa_marginpar_tl} - \bool_gset_true:N \g_TUDa_marginpar_bool - \dim_gset:Nn \g_TUDa_marginpar_dim {\g_TUDa_marginpar_tl} + \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_TUDa_headheight_dim -\dim_new:N \g_TUDa_headwidth_dim +\dim_new:N \g_ptxcd_headheight_dim +\dim_new:N \g_ptxcd_headwidth_dim -\bool_if:NTF \g_TUDa_headline_bool - {\dim_gset:Nn \g_TUDa_headheight_dim {20pt +\c_TUDa_largerule_dim +\c_TUDa_rulesep_dim +\c_TUDa_smallrule_dim}} - {\dim_gset:Nn \g_TUDa_headheight_dim {1.25\baselineskip +\c_TUDa_largerule_dim +\c_TUDa_rulesep_dim +\c_TUDa_smallrule_dim}} +\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 %Has to be loaded here due to headwidth options \usepackage[draft=false]{scrlayer-scrpage} -\bool_if:NTF \g_TUDa_geometry_bool { +\bool_if:NTF \g_ptxcd_geometry_bool { \RequirePackage{geometry} \geometry{ - top=\g_TUDa_topMargin_dim, - inner=\g_TUDa_innerMargin_dim, - outer=\dim_eval:n {\g_TUDa_outerMargin_dim}, - bottom=\g_TUDa_bottomMargin_dim, - columnsep= \g_TUDa_columnSep_dim, + 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_TUDa_headheight_dim + headheight=\g_ptxcd_headheight_dim } - \savegeometry{TUDa@nomarginpar} - \geometry{includemp, marginpar=\g_TUDa_marginpar_dim, marginparsep=\g_TUDa_columnSep_dim} + \savegeometry{TUDa-nomarginpar} + \geometry{includemp, marginpar=\g_ptxcd_marginpar_dim, marginparsep=\g_ptxcd_columnSep_dim} \KOMAoptions{mpinclude} - \savegeometry{TUDa@marginpar} + \savegeometry{TUDa-marginpar} - \bool_if:NTF \g_TUDa_custommargins_bool { - \AtBeginDocument{\savegeometry{TUDa@default}} - \tl_const:Nn \c_TUDa_default_geometry_tl {TUDa@default} + \bool_if:NTF \g_ptxcd_custommargins_bool { + \AtBeginDocument{\savegeometry{TUDa-default}} + \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-default} }{ - \bool_if:NTF \g_TUDa_marginpar_bool { - \tl_const:Nn \c_TUDa_default_geometry_tl {TUDa@marginpar} + \bool_if:NTF \g_ptxcd_marginpar_bool { + \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-marginpar} } { - \tl_const:Nn \c_TUDa_default_geometry_tl {TUDa@nomarginpar} + \tl_const:Nn \c_ptxcd_default_geometry_tl {TUDa-nomarginpar} + } + \AtBeginDocument{ + \loadgeometry{\c_ptxcd_default_geometry_tl} + \bool_if:NT \g_ptxcd_BCOR_titlepage_bool {\xdef\coverpageleftmargin{\the\dimexpr\coverpageleftmargin+\the\ta@bcor}} } - \AtBeginDocument{\loadgeometry{\c_TUDa_default_geometry_tl}} } - \dim_gset:Nn \g_TUDa_headwidth_dim {\paperwidth-\g_TUDa_innerMargin_dim-\g_TUDa_outerMargin_dim-\Gm@bindingoffset} + \dim_gset:Nn \g_ptxcd_headwidth_dim {\paperwidth-\g_ptxcd_innerMargin_dim-\g_ptxcd_outerMargin_dim-\Gm@bindingoffset} - \cs_set:Nn \TUDa_disable_marginpar: {\loadgeometry{TUDa@nomarginpar}} - \cs_set:Nn \TUDa_restore_typearea: {\loadgeometry{\c_TUDa_default_geometry_tl}} + \cs_set:Nn \ptxcd_disable_marginpar: {\loadgeometry{TUDa-nomarginpar}} + \cs_set:Nn \ptxcd_restore_typearea: {\loadgeometry{\c_ptxcd_default_geometry_tl}} }{ - \let\TUDa_disable_marginpar:\relax - \def\TUDa_restore_typearea:{ + \let\ptxcd_disable_marginpar:\relax + \def\ptxcd_restore_typearea:{ \KOMAoptions{headinclude, footinclude} - \bool_if:NTF \g_TUDa_marginpar_bool {\KOMAoptions{headwidth=textwithmarginpar,footwidth=textwithmarginpar}} + \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 } - \TUDa_restore_typearea: + \ptxcd_restore_typearea: } @@ -383,25 +401,13 @@ \newcommand*{\institution}[1]{ - \def\TUDa@institution{#1} + \def\ptxcd_institution{#1} } -\gdef\TUDa@datename{Datum} -\gdef\TUDa@dateseparator{:~} - - - - - - - +\gdef\ptxcd_datename{Datum} +\gdef\ptxcd_dateseparator{:~} -\dim_new:N \g_TUDa_titlerule_dim -\dim_gset:Nn \g_TUDa_titlerule_dim {.5\c_TUDa_smallrule_dim} - -%\dim_new:N \g_TUDa_titlerule_sep_dim -%\dim_set:Nn \g_TUDa_titlerule_sep_dim {1ex} -\cs_new:Nn \TUDa_titlerule_sep: {\the\dp\strutbox} +\cs_new:Nn \ptxcd_titlerule_sep: {\the\dp\strutbox} \usepackage{tudacolors} @@ -412,13 +418,13 @@ \addtokomafont{caption}{\sffamily} -\KOMAoptions{footsepline=.5\c_TUDa_smallrule_dim} -\bool_if:NT \g_TUDa_headline_bool {\KOMAoptions{headsepline=.5\c_TUDa_smallrule_dim}} +\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 \AtBeginDocument{ -\KOMAoptions{headlines=1.5} -\bool_if:NTF \g_TUDa_marginpar_bool +\bool_if:NTF \g_ptxcd_marginpar_bool { \KOMAoptions { headwidth=textwithmarginpar, @@ -430,22 +436,22 @@ footwidth=text } } -\box_if_exist:NF \TUDa@headline_box { - \TUDa@makeheadrule[color=identbarcolor, width=\sls@headwidth]{TUDa@headline} +\box_if_exist:NF \ptxcd_headrule_box { + \ptxcd_makeheadrule[color=identbarcolor, width=\sls@headwidth]{ptxcd_headrule} } } \newpairofpagestyles[scrheadings]{TUDa.headings}{ - \KOMAoptions{headsepline, headlines=1.25, footlines=1.25} + \KOMAoptions{headsepline, headlines=1.25} \setkomafont{pagehead}{} \chead{} \ohead{\headmark} } -\newpairofpagestyles{TUDa}{ +\newpairofpagestyles{TUDa.pub}{ \KOMAoptions{plainfootsepline} - \bool_if:NTF \g_TUDa_marginpar_bool + \bool_if:NTF \g_ptxcd_marginpar_bool { \KOMAoptions { headwidth=textwithmarginpar, @@ -457,31 +463,37 @@ footwidth=text } } - -\setkomafont{pagehead}{\Large\bfseries} \RedeclareLayer[ clone=scrheadings.head.above.line, background, contents={ - \dim_compare:nF {\box_wd:N \TUDa@headline_box=\layerwidth} { - \TUDa@makeheadrule*[color=identbarcolor, width=\layerwidth]{TUDa@headline} + \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} { + \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule} } - \smash{\TUDa@headline} + \smash{\ptxcd_headrule} } - ]{TUDa.head.above.line} + ]{TUDa.pub.head.above.line} \RedeclareLayer[ clone=plain.scrheadings.head.above.line, background, contents={ - \dim_compare:nF {\box_wd:N \TUDa@headline_box=\layerwidth} { - \TUDa@makeheadrule*[color=identbarcolor, width=\layerwidth]{TUDa@headline} + \dim_compare:nF {\box_wd:N \ptxcd_headrule_box=\layerwidth} { + \ptxcd_makeheadrule[color=identbarcolor, width=\layerwidth]{ptxcd_headrule} } - \smash{\TUDa@headline} + \smash{\ptxcd_headrule} } - ]{plain.TUDa.head.above.line} - \bool_if:NT \g_TUDa_headline_bool { + ]{plain.TUDa.pub.head.above.line} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.even} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.odd} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{TUDa.pub.foot.oneside} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.even} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.odd} + \ModifyLayer[addvoffset=\c_ptxcd_rulesep_dim]{plain.TUDa.pub.foot.oneside} + \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.head.\l_tmpa_tl} + \ModifyLayer[pretocontents={\rule[-6pt]{0pt}{\layerheight}}]{TUDa.pub.head.\l_tmpa_tl} } \lehead{\headmark} \lohead{\headmark} @@ -489,7 +501,12 @@ \ofoot[\pagemark]{\pagemark} } -\cs_new:Nn \TUDa_sls@leftmargin: {% +\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} @@ -500,41 +517,41 @@ \else \oddsidemargin \fi - \bool_if:NT \g_TUDa_twocolumn_bool { + \bool_if:NT \g_ptxcd_twocolumn_bool { -\marginparwidth-\marginparsep } +1in\relax } -\pagestyle{TUDa} + %Titelseite -\tl_new:N \g_TUDa_titleimage_code_tl -\tl_gset_eq:NN \g_TUDa_titleimage_code_tl \c_empty_tl -\newcommand{\titleimage}[1]{\tl_gset:Nn \g_TUDa_titleimage_code_tl {#1}} +\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 -\box_new:N \g_TUDa_title_box -\skip_new:N \g_TUDa_title_fill_skip -\renewcommand{\titlepagestyle}{TUDa} -\seq_new:N \g_TUDa_author_seq +\seq_new:N \g_ptxcd_author_seq \renewcommand*\author[1]{ - \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#1} + \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1} } -\msg_new:nnn {TUDaPub} {unknown-language} { +\msg_new:nnn{tudapub} {unknown-language} { You~selected~an~unknown~language~#1.\\ The~Variable~#2~does~not~have~a~predefined~value.\\ Ensure~to~redefine~#2~to~match~your~language.\\ Otherwise~the~ngerman~vaue~#3~will~be~used. } -\cs_new:Nn \TUDa_define_captionFallback:Nn { +\cs_new:Nn \ptxcd_define_captionFallback:Nn { \providecommand*#1{ - \msg_warning:nnxxx {TUDaPub} {unknown-language} + \msg_warning:nnxxx{tudapub} {unknown-language} {\languagename} {\exp_not:N #1} {#2} \def#1{#2} } @@ -543,129 +560,125 @@ \renewcommand*{\@author}{ \begingroup \hyphenpenalty=100000 - \seq_use:Nnnn \g_TUDa_author_seq {~\authorandname{}~} {,~} {~\&~} + \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~} \endgroup } -\msg_new:nnn {TUDaPub} {infobox-too-high} { +\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 \TUDa_adjust_titlepage_style: { - \dim_set:Nn \l_tmpa_dim {\fp_to_dim:n {\expandafter \use_ii:nn\TUDa_title_fontsize: *2.8}} - \dim_compare:nT {\box_ht:N \g_TUDa_title_box < \l_tmpa_dim} { - \skip_set:Nn \g_TUDa_title_fill_skip {\dim_eval:n {\l_tmpa_dim - \box_ht:N \g_TUDa_title_box}} +\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 \TUDa@headline_box+\box_dp:N \TUDa@headline_box-\g_TUDa_titlerule_dim - +\box_ht:N \g_TUDa_title_box+.5\c_TUDa_logoheight_dim+\g_TUDa_title_fill_skip+ - \box_dp:N \g_TUDa_title_box + \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_TUDa_logo@inhead_bool { + \bool_if:NT \g_ptxcd_logo@inhead_bool { \ModifyLayer[ - addvoffset=\dim_eval:n {\box_ht:N \TUDa@headline_box+\box_dp:N \TUDa@headline_box-\g_TUDa_titlerule_dim}, - height={\box_ht:N \g_TUDa_title_box+ \g_TUDa_title_fill_skip+.5\c_TUDa_logoheight_dim} + 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 + } ]{title.TUDa.background} \AddLayersToPageStyle{title.TUDa}{title.TUDa.background} } - - - - \thispagestyle{title.TUDa} - \vspace*{\dim_eval:n { -\topskip - -\g_TUDa_titlerule_dim - +\box_ht:N \TUDa@headline_box - +\box_dp:N \TUDa@headline_box - +.5\c_TUDa_logoheight_dim + -\g_ptxcd_titlerule_dim + +\box_ht:N \ptxcd_headrule_box + +\box_dp:N \ptxcd_headrule_box + +.5\c_ptxcd_logoheight_dim }} \nointerlineskip - \TUDa_Setup_Title_box: + \ptxcd_setup_title_box: - \bool_if:NT \g_TUDa_logo@inhead_bool { - \dim_compare:nT {\box_ht:N \g_TUDa_title_info_box+ \box_dp:N \g_TUDa_title_info_box > \box_ht:N \g_TUDa_title_box} - {\msg_warning:nn {TUDaPub} {infobox-too-high}} + \bool_if:NT \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{tudapub} {infobox-too-high}} \makebox[\linewidth][r]{\smash{ \raisebox{-\height}{ - \makebox[2.2\c_TUDa_logoheight_dim][l]{ + \makebox[2.2\c_ptxcd_logoheight_dim][l]{ % } - \box_use:N \g_TUDa_title_info_box + \box_use:N \g_ptxcd_title_info_box }} }} } \par - \vspace*{\skip_use:N \g_TUDa_title_fill_skip} + \vspace*{\skip_use:N \g_ptxcd_title_fill_skip} \setlength{\fboxsep}{\z@} } \newkomafont{institution}{\sffamily} +\newkomafont{titleinfo}{\sffamily} \setkomafont{subtitle}{\bfseries} \setkomafont{subject}{} \setkomafont{publishers}{} \setkomafont{author}{} \setkomafont{date}{} -\bool_if:NF \g_TUDa_smalltitle_bool { - \int_gdecr:N \g_TUDa_paper_int +\bool_if:NF \g_ptxcd_smalltitle_bool { + \int_gdecr:N \g_ptxcd_paper_int } -\file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} -\TUDa_setup_title_sizes: +\file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo} +\ptxcd_setup_title_sizes: -\seq_new:N \g_TUDa_title_info_seq -\box_new:N \g_TUDa_title_info_box +\seq_new:N \g_ptxcd_title_info_seq +\box_new:N \g_ptxcd_title_info_box -\colorlet{TUDa@InfoBoxColor}{white} - -\cs_new:Nn \TUDa_make_title_info_box:n { +\cs_new:Nn \ptxcd_make_title_info_box:n { \setlength{\fboxsep}{1.5mm}% - \colorbox{TUDa@InfoBoxColor}{ - \makebox[\dim_eval:n {2.2\c_TUDa_logoheight_dim-\fboxsep}][r]{ - \parbox{2\c_TUDa_logoheight_dim}{ - \expandafter\fontsize\TUDa_titlethanks_fontsize:\selectfont\usekomafont{institution}% + \colorbox{InfoBox}{ + \makebox[\dim_eval:n {2.2\c_ptxcd_logoheight_dim-\fboxsep}][r]{ + \parbox{2\c_ptxcd_logoheight_dim}{ + \expandafter\fontsize\ptxcd_titlethanks_fontsize:\selectfont\usekomafont{institution}% \raggedright% #1 }}} } -\cs_new:Nn \TUDa_make_title_logo_box:n { +\cs_new:Nn \ptxcd_make_title_logo_box:n { \setlength{\fboxsep}{\z@}% - \parbox{2.2\c_TUDa_logoheight_dim}{ - \colorbox{TUDa@InfoBoxColor}{ + \parbox{2.2\c_ptxcd_logoheight_dim}{ + \colorbox{InfoBox}{ \rlap{ - \makebox[2.5\c_TUDa_logoheight_dim][r]{ - \colorbox{TUDa@InfoBoxColor}{#1\hspace{.3\c_TUDa_logoheight_dim}} + \makebox[2.5\c_ptxcd_logoheight_dim][r]{ + \colorbox{InfoBox}{#1\hspace{.3\c_ptxcd_logoheight_dim}} } } } } } -\newcommand{\addTitleBox}[1]{\seq_gput_right:Nn \g_TUDa_title_info_seq {\TUDa_make_title_info_box:n {#1}}} +\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_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n {#2} + \seq_gput_right:Nn \g_ptxcd_title_info_seq { + \ptxcd_make_title_logo_box:n {#2} } }{ - \seq_gput_right:Nn \g_TUDa_title_info_seq { - \TUDa_make_title_logo_box:n { + \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_TUDa_logoheight_dim]{#2} + \includegraphics[width=1.5\c_ptxcd_logoheight_dim]{#2} } - \dim_set:Nn \l_tmpa_dim {2\c_TUDa_logoheight_dim/3} + \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} @@ -674,25 +687,26 @@ } } -\addTitleBoxLogo*{\makebox[\linewidth][l]{\includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}} +\addTitleBoxLogo*{\makebox[\linewidth][l]{\includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}} \DeclareNewLayer[textarea,background,mode=picture, contents={ - \tl_if_empty:NTF \g_TUDa_titleimage_code_tl - {\bool_if:NT \g_TUDa_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}}} - {\putUL{\color{identbarcolor}\raisebox{-\height}{\parbox[t]{\textwidth}{ - \let\width\layerwidth - \let\height\layerheight - \g_TUDa_titleimage_code_tl + \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} + \let\width\layerwidth + \let\height\layerheight + \raisebox{-\height}{\parbox[t]{\textwidth}{ + \leavevmode\ignorespaces + \g_ptxcd_titleimage_code_tl }}}} - \bool_if:NF \g_TUDa_logo@inhead_bool { - \put(\dim_to_decimal_in_unit:nn {\layerwidth-2.2\c_TUDa_logoheight_dim + \bool_if:NF \g_ptxcd_logo@inhead_bool { + \put(\dim_to_decimal_in_unit:nn {\layerwidth-2.2\c_ptxcd_logoheight_dim } {\unitlength}, - \dim_to_decimal_in_unit:nn {\layerheight-\box_ht:N \g_TUDa_title_info_box - .5\c_TUDa_logoheight_dim} {\unitlength}){ - \rlap{\box_use:N \g_TUDa_title_info_box} + \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} } } - \put(0,0){\rule{\linewidth}{\g_TUDa_titlerule_dim}} } ]{title.TUDa.image} @@ -701,28 +715,41 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} ]{title.TUDa.background} \DeclareNewLayer[ - mode=picture, - align=tl, + clone=plain.TUDa.pub.head.above.line, hoffset=\coverpageleftmargin, - voffset=\coverpagetopmargin, width=\paperwidth-\coverpageleftmargin-\coverpagerightmargin, - contents={ -% \box_if_exist:NF \TUDa@title_headline_box -% {} - \dim_compare:nF {\box_wd:N \TUDa@title_headline_box=\layerwidth} { - \TUDa@makeheadrule*[color=identbarcolor, width=\layerwidth]{TUDa@title_headline} - } - \putUL{\TUDa@title_headline} - } ]{title.TUDa.rule} -\TUDa@makeheadrule[color=identbarcolor, width=\textwidth]{TUDa@title_headline} -\cs_new:Nn \TUDa_Setup_Title_box: { - \hbox_gset:Nn \g_TUDa_title_info_box + +\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{\dimexpr2.5\c_TUDa_logoheight_dim}{ - \seq_use:Nn \g_TUDa_title_info_seq {\par\nointerlineskip\vspace{\dim_eval:n {\c_TUDa_largerule_dim+\c_TUDa_rulesep_dim}}} + \parbox{\dimexpr2.5\c_ptxcd_logoheight_dim}{ + \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 { + \def\height{\dimexpr.8\c_ptxcd_logoheight_dim\relax} + \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} + } } } } @@ -732,9 +759,9 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} %Logos \RequirePackage{graphicx} -\if_bool:N \g_TUDa@pdfa_bool +\if_bool:N \g_ptxcd_pdfa_bool - \msg_new:nnn {TUDaPub} {prefer-lualatex} { + \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. @@ -745,30 +772,30 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \RequirePackage{pdfx} \sys_if_engine_pdftex:T { - \msg_warning:nnn {TUDaPub} {prefer-lualatex} {PDFTeX} + \msg_warning:nnn{tudapub} {prefer-lualatex} {PDFTeX} } \sys_if_engine_pdftex:T { - \msg_warning:nnn {TUDaPub} {prefer-lualatex} {XeTeX} + \msg_warning:nnn{tudapub} {prefer-lualatex} {XeTeX} } \@ifpackagelater{pdfx}{2018/12/01}{ }{ - \msg_new:nnnn {TUDaPub} {outdated-pdfx} { + \msg_new:nnnn{tudapub} {outdated-pdfx} { Your~Version~of~the~PDFx-package~is~too~old~to~support~all~methods~required~by~tudapubs~pdfa-mode.\\ Either~update~your~TeX-distribution~or~switch~to~pdfa=false. - }{See~DEMO-TUDaPub~for~further~information.} - \msg_error:nn {TUDaPub} {outdated-pdfx} + }{See~DEMO-tudapub~for~further~information.} + \msg_error:nn{tudapub} {outdated-pdfx} } %%hyperref \hypersetup{hidelinks, unicode} - \iow_new:N \TUDa@xmpdata_stream - \tl_new:N \g_TUDa@xmp_title_tl - \tl_new:N \g_TUDa@xmp_author_tl + \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} @@ -776,29 +803,29 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \cs_if_exist:NF \tl_to_str:V {\cs_generate_variant:Nn \tl_to_str:N {V}} - \cs_new:Nn \TUDa_pass_TitleData: { - \iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata} + \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_TUDa@xmp_title_tl {\@title} - \prop_gput_if_new:Nnx \g_TUDa_MetaData_prop {title} {\tl_to_str:V \g_TUDa@xmp_title_tl} - \prop_if_in:NnF \g_TUDa_MetaData_prop {author} { - \tl_gset:Nx \g_TUDa@xmp_author_tl {\seq_use:Nn \g_TUDa_author_seq {\exp_not:N \sep}} - \tl_gset:Nx \g_TUDa@xmp_author_tl {\g_TUDa@xmp_author_tl} - \prop_gput:Nnx \g_TUDa_MetaData_prop {author} {\tl_to_str:V \g_TUDa@xmp_author_tl} + \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_TUDa_MetaData_prop {publisher}{TU~Darmstadt} - \prop_gput_if_new:Nnn \g_TUDa_MetaData_prop {creator}{LaTeX~using~TUDa-CI} + \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_TUDa_MetaData_prop \TUDa_write_xmp_line:nn + \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn \endgroup - \iow_close:N \TUDa@xmpdata_stream + \iow_close:N \ptxcd_xmpdata_stream } - \cs_new:Nn \TUDa_write_xmp_line:nn { + \cs_new:Nn \ptxcd_write_xmp_line:nn { \begingroup \cs_set:Npn \sep {\exp_not:N \sep} %Fallback test for older kernels @@ -812,58 +839,58 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} } \cs_if_exist:cTF {\l_tmpa_tl}{ - \iow_now:Nx \TUDa@xmpdata_stream { + \iow_now:Nx \ptxcd_xmpdata_stream { \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} } }{ - \msg_error:nnn {TUDaPub} {unknown-metadata} {#1} + \msg_error:nnn{tudapub} {unknown-metadata} {#1} } \endgroup } -\prop_new:N \g_TUDa_MetaData_prop +\prop_new:N \g_ptxcd_MetaData_prop \newcommand*{\Metadata}[1]{ - \keyval_parse:NNn \use_none:n \TUDa_set_metadata_prop:nn + \keyval_parse:NNn \use_none:n \ptxcd_set_metadata_prop:nn {#1} } - \cs_set:Nn \TUDa_set_metadata_prop:nn { - \exp_args:NNf \prop_gput:Nnn \g_TUDa_MetaData_prop {\tl_lower_case:n{#1}} {#2} + \cs_set:Nn \ptxcd_set_metadata_prop:nn { + \exp_args:NNf \prop_gput:Nnn \g_ptxcd_MetaData_prop {\tl_lower_case:n{#1}} {#2} } - \msg_new:nnnn {TUDaPub} {unknown-metadata} { + \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} + \msg_new:nnn{tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.} + \msg_info:nn{tudapub} {no-pdfa} %%hyperref \RequirePackage[hidelinks, unicode]{hyperref} \newcommand{\Metadata}[1]{\ClassError{tudapub}{You~cannot~use~\string\Metadata\ ~with~pdfa=false.}{}} \fi: -\csname if@TUDa@T1\endcsname -\ifLuaTeX -\RequirePackage[utf8]{luainputenc} -\fi -\fi +\box_new:N \g_ptxcd_sponsor_box +\seq_new:N \g_ptxcd_sponsors_seq +\def\AddSponsor{\seq_gput_right:Nn \g_ptxcd_sponsors_seq} +\def\sponsors#1{\def\@sponsors{#1}} +\sponsors{} -\exp_args:NV \tl_if_eq:nnTF {\g_TUDa_pubType_tl} {thesis} { +\str_if_eq:VnTF \g_ptxcd_pubType_tl {thesis} { \input{tudathesis.cfg} } { -\msg_new:nnnn {TUDa/pub} {only-thesis} {You~tried~to~use~\use:c { #1}.~This~macro~is~only~available~for~publications~of~type~thesis}{See~tuda-ci~documentation~for~further~information} +\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 {TUDa/pub} {only-thesis} {#1} + \msg_error:nnn {tudapub} {only-thesis} {#1} } } -\newcommand*{\TUDa@title@footnote}[2][1]{ +\newcommand*{\ptxcd_title@footnote}[2][1]{ \textsuperscript{\@fnsymbol{#1}}#2 } @@ -871,9 +898,9 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} % Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info] \renewcommand*{\maketitle}[1][1]{ \def\and{,~ } - \cs_if_exist_use:N \TUDa_pass_TitleData: + \cs_if_exist_use:N \ptxcd_pass_TitleData: \if@titlepage - \TUDa_disable_marginpar: + \ptxcd_disable_marginpar: \begin{titlepage} \setcounter{page}{% #1% @@ -909,24 +936,34 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \let\titlepage@restore\relax \fi \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \hbox_gset:Nn \g_TUDa_title_box { + \ptxcd_setup_sponsor_box: + \hbox_gset:Nn \g_ptxcd_title_box { \parbox[t]{\linewidth}{ - \begin{minipage}[b]{\bool_if:NT \g_TUDa_logo@inhead_bool {.75}\linewidth} - \bool_if:NT \g_TUDa_logo@inhead_bool {\color{textonaccentcolor}} - \begin{addmargin}{3mm} + \begin{minipage}[b]{\bool_if:NT \g_ptxcd_logo@inhead_bool {.75}\linewidth} + \bool_if:NT \g_ptxcd_logo@inhead_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 - \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}} \leavevmode\usekomafont{title}% - \expandafter\fontsize\TUDa_title_fontsize: + \expandafter\fontsize\ptxcd_title_fontsize: \selectfont - \@title\strut\par - \vskip0pt + \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}% \par\nointerlineskip - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim} \begin{addmargin}{3mm} - \expandafter\fontsize\TUDa_titleinfo_fontsize: + \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} @@ -936,29 +973,31 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \@author \par }% - {\usekomafont{date}{\@date\par}}% - {\usekomafont{publishers}{\@publishers \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\TUDa_titlethanks_fontsize:\selectfont\par - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par - \begin{addmargin}{3mm} - \let\footnotetext\TUDa@title@footnote - \@thanks - \end{addmargin} - \par\vspace{-\dp\strutbox} - \let\@thanks\@empty - } - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par} - + \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} + \let\@thanks\@empty + } + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par} } - - \TUDa_adjust_titlepage_style: - - - \nointerlineskip\box_use:N \g_TUDa_title_box + \ptxcd_adjust_titlepage_style: + \thispagestyle{title.TUDa} + \nointerlineskip\box_use:N \g_ptxcd_title_box \par - \vfill\null + \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 @@ -992,8 +1031,8 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \setcounter{footnote}{0}% \global\let\and\relax \cleardoublepage - \TUDa_restore_typearea: - \aftergroup\TUDa_restore_typearea: + \ptxcd_restore_typearea: + \aftergroup\ptxcd_restore_typearea: \else \par \@tempcnta=% @@ -1022,26 +1061,40 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \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 + \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 \@thanks\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} + \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:} + \fontsize{1.1\l_tmpa_dim}{1.1\l_tmpa_dim} + \selectfont + #1{\Huge #2} + } } \renewcommand*{\@maketitle}{% @@ -1051,28 +1104,22 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \headheight +\headsep +\topskip - -\box_ht:N\TUDa@headline_box - -\box_dp:N \TUDa@headline_box -% -\dp\strutbox + -\box_ht:N\ptxcd_headrule_box + -\box_dp:N \ptxcd_headrule_box }} \par \nointerlineskip \begingroup \usekomafont{disposition} - \hsize=\g_TUDa_headwidth_dim - \raisebox{\dim_eval:n { - -.5\c_TUDa_logoheight_dim - }}[0pt][.5\c_TUDa_logoheight_dim]{ - \bool_if:NT \g_TUDa_colorback_bool {\color{accentcolor}\rule{\g_TUDa_headwidth_dim}{.5\c_TUDa_logoheight_dim}} - } - \par\nointerlineskip + \hsize=\g_ptxcd_headwidth_dim \setlength{\fboxsep}{\z@} - \bool_if:NT \g_TUDa_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\g_TUDa_headwidth_dim}{ + \bool_if:NT \g_ptxcd_colorback_bool {\colorbox{accentcolor}}{\parbox[t]{\g_ptxcd_headwidth_dim}{ + \rule{\z@}{.5\c_ptxcd_logoheight_dim}\par\nointerlineskip \raisebox{-\height}{% - \begin{minipage}[t]{\dimexpr\linewidth-2.2\c_TUDa_logoheight_dim-1ex} - \bool_if:NT \g_TUDa_colorback_bool {\begin{addmargin}{.5\c_TUDa_largerule_dim}} + \begin{minipage}[t]{\dimexpr\linewidth-2.2\c_ptxcd_logoheight_dim-1ex} + \bool_if:NT \g_ptxcd_colorback_bool {\begin{addmargin}{.5\c_ptxcd_largerule_dim}} \raggedright - \bool_if:NT \g_TUDa_colorback_bool {\color{textonaccentcolor}} + \bool_if:NT \g_ptxcd_colorback_bool {\color{textonaccentcolor}} \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}} \leavevmode {\Huge\usekomafont{title}{ @@ -1080,49 +1127,49 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \@title \par }}% \vskip 1em - \bool_if:NTF \g_TUDa_colorback_bool {\end{addmargin}} {\par} - \vspace{\dim_eval:n {\c_TUDa_largerule_dim+\c_TUDa_rulesep_dim}} + \bool_if:NTF \g_ptxcd_colorback_bool {\end{addmargin}} {\par} + \vspace{\dim_eval:n {\c_ptxcd_largerule_dim+\c_ptxcd_rulesep_dim}} \end{minipage} } \hfill \raisebox{-\height}{ - \TUDa_Setup_Title_box: - \makebox[2.2\c_TUDa_logoheight_dim][l]{ - \box_use:N \g_TUDa_title_info_box + \ptxcd_setup_title_box: + \makebox[2.2\c_ptxcd_logoheight_dim][l]{ + \box_use:N \g_ptxcd_title_info_box } } - \dim_compare:nNnTF {\box_ht:N \g_TUDa_title_info_box + \box_ht:N \g_TUDa_title_info_box} > {1.1\c_TUDa_logoheight_dim} - {\vspace{\c_TUDa_largerule_dim}} - {\vspace{.5\c_TUDa_logoheight_dim}} + \dim_compare:nNnTF {\box_ht:N \g_ptxcd_title_info_box + \box_ht:N \g_ptxcd_title_info_box} > {1.1\c_ptxcd_logoheight_dim} + {\vspace{\c_ptxcd_largerule_dim}} + {\vspace{.5\c_ptxcd_logoheight_dim}} \par }} \par \nointerlineskip - \rule{\g_TUDa_headwidth_dim}{\g_TUDa_titlerule_dim} - \begin{addmargin}{.5\c_TUDa_largerule_dim} + \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_TUDa_rulesep_dim} + \vspace{\c_ptxcd_rulesep_dim} \end{addmargin} \tl_if_empty:NF \@thanks { \par\nointerlineskip - \rule{\g_TUDa_headwidth_dim}{\g_TUDa_titlerule_dim} - \expandafter\fontsize\TUDa_titlethanks_fontsize:\selectfont - \begin{addmargin}{.5\c_TUDa_largerule_dim} - \let\footnotetext\TUDa@title@footnote + \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 \@thanks - \vspace{\c_TUDa_rulesep_dim} + \vspace{\c_ptxcd_rulesep_dim} \end{addmargin} \par \let\@thanks\@empty } \par\nointerlineskip - \rule{\g_TUDa_headwidth_dim}{\g_TUDa_titlerule_dim} + \rule{\g_ptxcd_headwidth_dim}{\g_ptxcd_titlerule_dim} \par \endgroup - \vskip .5\c_TUDa_logoheight_dim + \vskip .5\c_ptxcd_logoheight_dim }% %%Abstract anpassungen mit Sprache @@ -1154,17 +1201,17 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} %Anpassungen marginpar -\cs_set_eq:NN\TUDa_orig@marginpar:\marginpar +\cs_set_eq:NN\ptxcd_orig@marginpar:\marginpar \newkomafont{marginpar}{\accentfont\color{textaccentcolor}} \RenewDocumentCommand{\marginpar}{om}{ \IfNoValueTF{#1}{ - \TUDa_orig@marginpar:{\leavevmode\usekomafont{marginpar}#2} + \ptxcd_orig@marginpar:{\leavevmode\usekomafont{marginpar}#2} }{ - \TUDa_orig@marginpar:[\leavevmode\usekomafont{marginpar}#1]{\leavevmode\usekomafont{marginpar}#2} + \ptxcd_orig@marginpar:[\leavevmode\usekomafont{marginpar}#1]{\leavevmode\usekomafont{marginpar}#2} } } -\TUDa_define_captionFallback:Nn \authorandname {and} +\ptxcd_define_captionFallback:Nn \authorandname {and} \defcaptionname{ngerman, german}{\authorandname}{und} \defcaptionname{english, USenglish, american, UKenglish, british}{\authorandname}{and} @@ -1186,37 +1233,37 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} %IMRAD:Introduction \seq_if_exist:NTF \seq_const_from_clist:Nn { - \seq_const_from_clist:Nn \c_TUDa_IMRAD_seq {introduction, methods, results, discussion} + \seq_const_from_clist:Nn \c_ptxcd_IMRAD_seq {introduction, methods, results, discussion} } { - \seq_new:N \c_TUDa_IMRAD_seq - \seq_gset_from_clist:Nn \c_TUDa_IMRAD_seq {introduction, methods, results, discussion} + \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_TUDa_IMRAD_seq {#1} + \seq_if_in:NnTF \c_ptxcd_IMRAD_seq {#1} {\label{IMRAD:#1}} - {\msg_error:nnnn {TUDaPub}{undefined-IMRADlabel}{#1}{\seq_use:Nn \c_TUDa_IMRAD_seq {,}}} + {\msg_error:nnnn {tudapub} {undefined-IMRADlabel}{#1}{\seq_use:Nn \c_ptxcd_IMRAD_seq {,}}} } -\bool_if:NT \g_TUDa_IMRAD_bool { +\bool_if:NT \g_ptxcd_IMRAD_bool { \AtEndDocument{ - \seq_map_inline:Nn \c_TUDa_IMRAD_seq { + \seq_map_inline:Nn \c_ptxcd_IMRAD_seq { \cs_if_exist:cF {r@IMRAD:#1} { - \msg_warning:nnn {TUDaPub}{missing-IMRADlabel} {#1} + \msg_warning:nnn {tudapub} {missing-IMRADlabel} {#1} } } } } -\msg_new:nnn {TUDaPub}{undefined-IMRADlabel} { +\msg_new:nnn {tudapub} {undefined-IMRADlabel} { You~tried~to~set~an~IMRAD~label~with~key~#1.\\ This~label~type~is~not~declared.\\ Possible~labels~are:~#2 } -\msg_new:nnn {TUDaPub} {missing-IMRADlabel} { +\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. } @@ -1226,5 +1273,6 @@ contents={\color{identbarcolor}\rule{\layerwidth}{\layerheight}} \let\Iftocfeature\iftocfeature } +\file_if_exist_input:n {tuda\g_ptxcd_department_str.cfg} \endinput %End of class tudapub.cls diff --git a/macros/latex/contrib/tuda-ci/tex/tudarules.sty b/macros/latex/contrib/tuda-ci/tex/tudarules.sty index 57b31b919d..464e43bd6a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudarules.sty +++ b/macros/latex/contrib/tuda-ci/tex/tudarules.sty @@ -1,4 +1,4 @@ -%% This is file `tudarules.sty' version 2.11 (2020/06/12), +%% This is file `tudarules.sty' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudarules}{\filedate}{\fileversion}{Creation of colored bars for tuda-ci bundle} @@ -35,112 +35,131 @@ \RequirePackage{l3keys2e} -\seq_if_exist:NF \l_TUDa_tmpa_seq {\seq_new:N \l_TUDa_tmpa_seq} -\tl_if_exist:NF \l_TUDa_tmpa_tk {\tl_new:N \l_TUDa_tmpa_tl} +\str_if_exist:NF \g_ptxcd_department_str { + \str_new:N \g_ptxcd_department_str + \str_gset:Nn \g_ptxcd_department_str {default} +} + +\bool_new:N \g_ptxcd_simple_rules_bool +\dim_new:N \g_ptxcd_titlerule_dim + +\seq_if_exist:NF \l_ptxcd_tmpa_seq {\seq_new:N \l_ptxcd_tmpa_seq} +\tl_if_exist:NF \l_ptxcd_tmpa_tk {\tl_new:N \l_ptxcd_tmpa_tl} -\cs_new:Nn \TUDa_rules_set_values:n { - \seq_set_split:Nnn \l_TUDa_tmpa_seq {|} {#1} +\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_TUDa_tmpa_tl {c_TUDa_ + \tl_set:Nn \l_ptxcd_tmpa_tl {c_ptxcd_ \clist_item:nn {largerule, rulesep, smallrule, logoheight} {##1} _dim} - \dim_if_exist:cF {\l_TUDa_tmpa_tl} {\dim_new:c {\l_TUDa_tmpa_tl}} - \dim_gset:cn {\l_TUDa_tmpa_tl} {\seq_item:Nn \l_TUDa_tmpa_seq {##1}} + \dim_if_exist:cF {\l_ptxcd_tmpa_tl} {\dim_new:c {\l_ptxcd_tmpa_tl}} + \dim_gset: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 {TUDa/rules} { - color .tl_gset:N = \g_TUDa_rules_color_tl, +\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 = { \TUDa_rules_set_values:n { 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm}}, - paper/a6 .code:n = { \TUDa_rules_set_values:n { 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm}}, - paper/a5 .code:n = { \TUDa_rules_set_values:n { 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm}}, - paper/a4 .code:n = { \TUDa_rules_set_values:n { 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm}}, - paper/a3 .code:n = { \TUDa_rules_set_values:n { 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm}}, - paper/a2 .code:n = { \TUDa_rules_set_values:n { 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm}}, - paper/a1 .code:n = { \TUDa_rules_set_values:n { 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm}}, - paper/a0 .code:n = { \TUDa_rules_set_values:n { 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm}}, - paper/slide .code:n = { \TUDa_rules_set_values:n { 2mm | .7mm | .6pt | 11 mm | .3pt| 7.5mm | 10mm}}, + paper/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_TUDarules_default_color_tl, + color .tl_gset:N = \g_ptxcd_rules_default_color_tl, color .initial:n = black, - mode .tl_gset:N = \g_TUDarules_default_mode_tl, - mode .initial:n = box + 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}, + mecheng .meta:n = {department=mecheng}, } -\ProcessKeysOptions{TUDa/rules} +\ProcessKeysOptions{ptxcd/rules} \RequirePackage{tudacolors} \RequirePackage{xparse} %Switch between TikZ and box mode -\bool_new:N \g_TUDa_rule_TikZmode_bool +\bool_new:N \g_ptxcd_rule_TikZmode_bool -\keys_define:nn {TUDa/rules} { - width .dim_gset:N = \l_TUDa_headrule_width_dim, - color .tl_gset:N = \l_TUDa_headrule_color_tl, +\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_TUDa_rule_TikZmode_bool, - mode / tikz .code:n = \bool_gset_true:N \g_TUDa_rule_TikZmode_bool, - mode / TikZ .code:n = \bool_gset_true:N \g_TUDa_rule_TikZmode_bool, + 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, +} + + +\str_case:Vn \g_ptxcd_department_str { + {mecheng} {\bool_gset_true:N \g_ptxcd_simple_rules_bool} } -\NewDocumentCommand{\TUDa@makeheadrule}{som}{ - \keys_set:nn {TUDa/rules} { +\NewDocumentCommand{\ptxcd_makeheadrule}{som}{ + \keys_set:nn {ptxcd/rules} { %TODO maybe package options for default width=\textwidth, } - \exp_args:Nnx \keys_set:nn {TUDa/rules} { - mode= \g_TUDarules_default_mode_tl, - color= \g_TUDarules_default_color_tl + \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 {TUDa/rules}{#2}} - \box_if_exist:cF {#3_box} {\box_new:c {#3_box}} - \bool_if:NTF \g_TUDa_rule_TikZmode_bool { - \hbox_gset:cn {#3_box} { - \begin{tikzpicture} - \fill[\l_TUDa_headrule_color_tl](0,\c_TUDa_rulesep_dim)rectangle++(\l_TUDa_headrule_width_dim,\c_TUDa_largerule_dim); - \fill(0,0)rectangle(\l_TUDa_headrule_width_dim,-\c_TUDa_smallrule_dim); - \end{tikzpicture} - } + \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}} + } }{ - \hbox_gset:cn {#3_box} { - \parbox[t]{\l_TUDa_headrule_width_dim}{ - \setlength{\baselineskip}{\z@} - \null\par\nointerlineskip - \textcolor{\l_TUDa_headrule_color_tl}{\rule{\linewidth}{\c_TUDa_largerule_dim}} - \vspace{\c_TUDa_rulesep_dim}\par\nointerlineskip - \rule{\linewidth}{\c_TUDa_smallrule_dim} + \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} + } } } } - \IfBooleanTF {#1} - \cs_set:cpn \cs_new:cpn {#3} {\box_use:c {#3_box}} + \IfBooleanF {#1} {\cs_set:cpn {#3} {\box_use:c {#3_box}}} } -\NewDocumentCommand{\TUDa@makefootrule}{om}{ - \keys_set:nn {TUDa/rules} { +\NewDocumentCommand{\ptxcd_makefootrule}{som}{ + \keys_set:nn {ptxcd/rules} { width= \textwidth } - \IfNoValueF {#1} {\keys_set:nn {TUDa/rules}{#1}} - \box_new:c {#2_box} - \hbox_gset:cn {#2_box} { - \raisebox{-\height}{\rule{\l_TUDa_headrule_width_dim}{.5\c_TUDa_smallrule_dim}} + \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}} } - \cs_new:cpn {#2} {\box_use:c {#2_box}} + \IfBooleanF{#1} {\cs_new:cpn {#3} {\box_use:c {#3_box}}} } - -%DL | 3.5mm | 1.4mm | 1.2pt | 17 mm | 0.6pt| 10mm | 14mm | -%A6 | 3 mm | 1.4mm | 1.2pt | 16.5mm | 0.6pt| 10mm | 15mm | -%A5 | 3.3mm | 1.4mm | 1.2pt | 19 mm | 0.6pt| 12mm | 16mm | -%A4 | 4 mm | 1.4mm | 1.2pt | 22 mm | 0.6pt| 15mm | 20mm | -%A3 | 4.5mm | 1.4mm | 1.2pt | 24.5mm | 0.6pt| 15mm | 20mm | -%A2 | 8 mm | 2.5mm | 2.2pt | 44.5mm | 1.1pt| 30mm | 35mm | -%A1 | 10 mm | 3.0mm | 2.8pt | 55.5mm | 1.4pt| 30mm | 35mm | -%A0 | 16 mm | 5.2mm | 4.8pt | 80 mm | 2.4pt| 30mm | 35mm | -%punched a4 = inner, bottom=20mm top outer =15mm \endinput diff --git a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls index e5c121fbec..4308a4603a 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls @@ -1,4 +1,4 @@ -%% This is file `tudasciposter.cls' version 2.11 (2020/06/12), +%% This is file `tudasciposter.cls' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,83 +26,99 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{tudasciposter}{\filedate}{\fileversion}{Scientific Poster Layout for TU Darmstadt} \RequirePackage{l3keys2e} -\prop_new:N \g_TUDa_clsopts_prop -\tl_new:N \g_TUDa_boxstyle_tl -\int_new:N \g_TUDa_paper_int +\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 {TUDa/poster} { +\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{indentbar =#1}{tudacolors}}, + identbarcolor .code:n = {\PassOptionsToPackage{identbar =#1}{tudacolors}}, titletext .code:n = {\PassOptionsToPackage{text =#1}{tudacolors}}, - footer .bool_gset:N = \g_TUDa_poster_foot_bool, + footer .bool_gset:N = \g_ptxcd_poster_foot_bool, footer .default:n = true, footer .initial:n = true, - thanks .tl_gset:N = \g_TUDa_footnote_label_tl, + thanks .tl_gset:N = \g_ptxcd_footnote_label_tl, thanks .initial:n = arabic*, - pdfa .bool_gset:N = \g_TUDa@pdfa_bool, + pdfa .bool_gset:N = \g_ptxcd_pdfa_bool, pdfa .initial:n = false, boxstyle .choice:, - boxstyle / official .code:n = \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa}, - boxstyle / colored .code:n= \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa-colored}, - boxstyle / boxed .code:n= \tl_gset:Nn \g_TUDa_boxstyle_tl {TUDa-boxed}, + boxstyle / 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_TUDa_clsopts_prop \l_keys_key_tl {#1}}, + 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_TUDa_paper_int \l_keys_choice_int + \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int \PassOptionsToPackage{paper=\l_keys_choice_tl}{tudarules} \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry} }, paper .initial:n = a0, - fontsize .tl_gset:N = \g_TUDa_fontsize_tl, - logofile .tl_gset:N = \g_TUDa_logofile_tl, + 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_TUDa_smalltitle_bool, - title / small .code:n = \bool_gset_true:N \g_TUDa_smalltitle_bool, + 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, + 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, } -\ProcessKeysOptions{TUDa/poster} +\ProcessKeysOptions{ptxcd/poster} -\dim_new:N \g_TUDa_margin_dim -\bool_if:NTF \g_TUDa_smalltitle_bool { - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_title_sizes: - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_base_sizes: +\dim_new:N \g_ptxcd_margin_dim +\bool_if:NTF \g_ptxcd_smalltitle_bool { + \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo} + \ptxcd_setup_title_sizes: + \file_input:n {tuda-a\int_use:N \g_ptxcd_paper_int paper.clo} + \ptxcd_setup_base_sizes: }{ - \int_gdecr:N \g_TUDa_paper_int - \file_input:n {tuda-a\int_use:N \g_TUDa_paper_int paper.clo} - \TUDa_setup_title_sizes: - \TUDa_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_TUDa_clsopts_prop {fontsize} \g_TUDa_fontsize_tl +\prop_gput:NnV \g_ptxcd_clsopts_prop {fontsize} \g_ptxcd_fontsize_tl -\prop_map_inline:Nn \g_TUDa_clsopts_prop { +\prop_map_inline:Nn \g_ptxcd_clsopts_prop { \tl_if_empty:nTF {#2} {\exp_args:NnV\PassOptionsToClass{#1}\l_tmpa_tl} {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}} } -\bool_if:NT \g_TUDa@pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} +\bool_if:NT \g_ptxcd_pdfa_bool {\PassOptionsToPackage{RGB}{xcolor}} \ExplSyntaxOff \PassOptionsToPackage{DIV=10}{typearea} @@ -124,7 +140,7 @@ \setkomafont{title}{ \color{titlefgcolor} - \expandafter\fontsize\TUDa_title_fontsize:\selectfont + \expandafter\fontsize\ptxcd_title_fontsize:\selectfont \bfseries } @@ -139,106 +155,106 @@ \RequirePackage{tudacolors} \RequirePackage{qrcode} -\dim_const:Nn \c_TUDa_headrule_ht_dim {\c_TUDa_rulesep_dim +\c_TUDa_largerule_dim + \c_TUDa_smallrule_dim} +\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_TUDa_tmpa_box -\box_new:N \g_TUDa_titlegraphic_box -\box_new:N \g_TUDa_title_box -\box_new:N \g_TUDa_author_box -\box_new:N \g_TUDa_credit_box - -\TUDa@makeheadrule[ - width=\paperwidth-2\g_TUDa_margin_dim, +\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 + +\ptxcd_makeheadrule[ + width=\paperwidth-2\g_ptxcd_margin_dim, color=identbarcolor - ]{TUDa@posterrule} + ]{ptxcd_headrule} -\tl_new:N \g_TUDa_thanks_tl -\newcommand*{\TUDa@title@footnote}[2][1]{ +\tl_new:N \g_ptxcd_thanks_tl +\newcommand*{\ptxcd_title@footnote}[2][1]{ \begingroup - \TUDa_def_footnotelabel: + \ptxcd_def_footnotelabel: \footnotemark[#1]\,#2\quad \endgroup } -\tl_greplace_all:Nnn \g_TUDa_footnote_label_tl {*} {{footnote}} +\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_TUDa_footnote_label_tl {#1} {\use:c {#1}} + \tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {#1} {\use:c {#1}} } -\cs_set:Nn \TUDa_def_footnotelabel: { - \renewcommand*{\thefootnote}{\g_TUDa_footnote_label_tl} +\cs_set:Nn \ptxcd_def_footnotelabel: { + \renewcommand*{\thefootnote}{\g_ptxcd_footnote_label_tl} } \pagestyle{empty} \renewcommand*{\title}[1]{\gdef \@title {#1}} -\dim_new:N \g_TUDa_footheight_dim -\dim_gset:Nn \g_TUDa_footheight_dim {0.06\paperwidth}% +\dim_new:N \g_ptxcd_footheight_dim +\dim_gset:Nn \g_ptxcd_footheight_dim {0.06\paperwidth}% -\box_new:N \g_TUDa_footergraphics_box +\box_new:N \g_ptxcd_footergraphics_box \newcommand*{\footergraphics}[1]{ \begingroup - \let\height\g_TUDa_footheight_dim - \hbox_gset:Nn \g_TUDa_footergraphics_box {#1} + \let\height\g_ptxcd_footheight_dim + \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1} \endgroup } -\tl_new:N \g_TUDa_poster_foot_tl +\tl_new:N \g_ptxcd_poster_foot_tl \newcommand{\footer}[1]{ - \tl_gset:Nn \g_TUDa_poster_foot_tl {#1} + \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1} } -\tl_new:N \g_TUDa_poster_qrcode_tl +\tl_new:N \g_ptxcd_poster_qrcode_tl \newcommand*{\footerqrcode}[1]{ - \tl_gset:Nn \g_TUDa_poster_qrcode_tl {#1} + \tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#1} } %%%%%%%%%%%%%%%%%%% % Begin of PDF/A mode %%%%%%%%%%%%%%%%%%% %PDFA -\if_bool:N \g_TUDa@pdfa_bool +\if_bool:N \g_ptxcd_pdfa_bool \PassOptionsToPackage{a-2b}{pdfx} \RequirePackage{pdfx} %%hyperref \hypersetup{hidelinks, unicode, hyperfootnotes=false} -\iow_new:N \TUDa@xmpdata_stream -\iow_open:Nn \TUDa@xmpdata_stream {\jobname.xmpdata} -\tl_new:N \g_TUDa@xmp_title -\tl_new:N \g_TUDa@xmp_author +\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 \TUDa_pass_TitleData: { +\cs_new:Nn \ptxcd_pass_TitleData: { \begingroup \def\newline{} \def\\{} \let\thanks\use_none:n \cs_set:Npn \and {\sep} - \bool_if:NTF \g_TUDa_pass_TitleData_bool { - \tl_gset:Nx \g_TUDa@xmp_title {\@title} + \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_TUDa_author_seq { + \seq_map_inline:Nn \g_ptxcd_author_seq { \seq_put_right:Nx \l_tmpa_seq {##1} } - \tl_gset:Nx \g_TUDa@xmp_author {\seq_use:Nn \l_tmpa_seq {\sep}} - \iow_now:Nx \TUDa@xmpdata_stream + \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_TUDa@xmp_title} + \exp_not:N \Title{\tl_to_str:V \g_ptxcd_xmp_title} ^^J - \exp_not:N \Author{\tl_to_str:V \g_TUDa@xmp_author} + \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_TUDa_MetaData_prop \TUDa_write_xmp_line:nn + \prop_map_function:NN \g_ptxcd_MetaData_prop \ptxcd_write_xmp_line:nn \endgroup } \endgroup } -\cs_new:Nn \TUDa_write_xmp_line:nn { +\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 { @@ -250,32 +266,32 @@ \tl_set:Nx \l_tmpa_tl {\tl_mixed_case:n {#1}} } \cs_if_exist:cTF {\l_tmpa_tl}{ - \iow_now:Nx \TUDa@xmpdata_stream { + \iow_now:Nx \ptxcd_xmpdata_stream { \c_backslash_str \l_tmpa_tl {\exp_not:n {#2}} } }{ - \msg_error:nnn {TUDapub} {unknown-metadata} {#1} + \msg_error:nnn{tudapub} {unknown-metadata} {#1} } } -\bool_new:N \g_TUDa_pass_TitleData_bool -\bool_gset_true:N \g_TUDa_pass_TitleData_bool -\prop_new:N \g_TUDa_MetaData_prop +\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_TUDa_pass_TitleData_bool - \prop_gset_from_keyval:Nn \g_TUDa_MetaData_prop {#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} { +\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} +\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: @@ -286,13 +302,13 @@ %redefine \author to manage \and and \thanks -\seq_new:N \g_TUDa_author_seq +\seq_new:N \g_ptxcd_author_seq \renewcommand*\author[1]{ - \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#1} + \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1} } -\msg_new:nnn {TUDaSciPoster} {unknown-language} { +\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.\\ @@ -300,7 +316,7 @@ } \providecommand*\authorandname{ - \msg_warning:nnxxx {TUDaSciPoster} {unknown-language} + \msg_warning:nnxxx{tudasciposter} {unknown-language} {\languagename} {\exp_not:N \authorandname} {und} und } @@ -310,7 +326,7 @@ \renewcommand*{\@author}{ - \seq_use:Nnnn \g_TUDa_author_seq {~\authorandname{}~} {,~} {~\&~} + \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~} } \newcommand\titlegraphic[1]{\def\@titlegraphic{#1}} @@ -336,7 +352,7 @@ } \newlength{\contentwidth} -\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_TUDa_margin_dim\relax} +\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_ptxcd_margin_dim\relax} \newlength{\contentheight} @@ -345,86 +361,92 @@ { spread, parbox=false, - bottom=\dim_eval:n {\g_TUDa_margin_dim - \bool_if:NT \g_TUDa_poster_foot_bool {+\g_TUDa_footheight_dim + 3\c_TUDa_rulesep_dim} + 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_TUDa_margin_dim, - right=\g_TUDa_margin_dim, - before= {\TUDa@poster_setup_title_box:}, + left=\g_ptxcd_margin_dim, + right=\g_ptxcd_margin_dim, + before= {\ptxcd_poster_setup_title_box:}, top= \dim_eval:n { - \g_TUDa_margin_dim - +\box_ht:N \TUDa@posterrule_box - +\box_dp:N \TUDa@posterrule_box -+ \g_TUDa_titleblock_dim - +4\c_TUDa_rulesep_dim - +\box_ht:N \g_TUDa_author_box - +\box_dp:N \g_TUDa_author_box + \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_TUDa_margin_dim, yshift=-\g_TUDa_margin_dim]current~page.north~ west); - \coordinate(topright) at ([xshift=-\g_TUDa_margin_dim, yshift=-\g_TUDa_margin_dim]current~page.north~ east); - \coordinate(bottomleft) at ([xshift=\g_TUDa_margin_dim, yshift=\g_TUDa_margin_dim]current~page.south~ west); - \coordinate(bottomright) at ([xshift=-\g_TUDa_margin_dim, yshift=\g_TUDa_margin_dim]current~page.south~ east); + \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){\TUDa@posterrule}; + \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); - \fill[identbarcolor] - (identbar.south~east)rectangle([yshift=-\g_TUDa_titleblock_dim]identbar.south~west) coordinate(bottomlefttitleblock); - \node[anchor=north~east,inner~sep=0pt,minimum~width=2.5\c_TUDa_logoheight_dim](TUDalogo) at ([xshift=.3\c_TUDa_logoheight_dim,yshift=-.5\c_TUDa_logoheight_dim]identbar.south~east){ - \includegraphics[height=\c_TUDa_logoheight_dim]{\g_TUDa_logofile_tl}}; + \node[anchor=north~east,inner~sep=0pt,minimum~width=2.5\c_ptxcd_logoheight_dim](TUDalogo) at ([xshift=.3\c_ptxcd_logoheight_dim,yshift=-.5\c_ptxcd_logoheight_dim]identbar.south~east){ + \includegraphics[height=\c_ptxcd_logoheight_dim]{\g_ptxcd_logofile_tl}}; - \node[inner~sep=0pt,text~width=2.2\c_TUDa_logoheight_dim,align=right,anchor=north~west,](titlegraphic) at ([yshift=-\c_TUDa_rulesep_dim]TUDalogo.south~west){\box_use:N \g_TUDa_titlegraphic_box}; + \node[inner~sep=0pt,text~width=2.2\c_ptxcd_logoheight_dim,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=3\c_TUDa_rulesep_dim,yshift=-.5\c_TUDa_logoheight_dim]identbar.south~west) {\box_use:N \g_TUDa_title_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}; - \draw[line~ width=.5\c_TUDa_smallrule_dim](bottomlefttitleblock)--++(\contentwidth,0); + \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_TUDa_rulesep_dim] (author) at ([xshift=3\c_TUDa_rulesep_dim]bottomlefttitleblock) {\box_use:N \g_TUDa_author_box}; + \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_TUDa_smallrule_dim](author.south-|identbar.west)--++(\contentwidth,0); + \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:} + }} +} - \bool_if:NT \g_TUDa_poster_foot_bool { +\cs_new:Nn \__ptxcd_typeset_footer: { \coordinate(lastpos) at (bottomright); - \tl_if_empty:NF \g_TUDa_poster_qrcode_tl - { - \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos) - { - \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_TUDa_footheight_dim]}\g_TUDa_poster_qrcode_tl - }; - \coordinate (lastpos) at (qrcode.south~west); - } - \box_if_empty:NF \g_TUDa_footergraphics_box { - \node[anchor=south~east, inner~sep=\z@] at (lastpos) { - \accentfont - \box_use:N \g_TUDa_footergraphics_box - }; - } - \node[anchor=north~ west, inner~ sep=\z@] (infofooter) at ([yshift=\g_TUDa_footheight_dim]bottomleft) { - \parbox{\dim_eval:n {\contentwidth - -\box_wd:N \g_TUDa_footergraphics_box - \tl_if_empty:NF \g_TUDa_poster_qrcode_tl {-\g_TUDa_footheight_dim-\c_TUDa_rulesep_dim} - }}{ - \rule{\linewidth}{.5\c_TUDa_smallrule_dim}\\ - \accentfont\small\g_TUDa_poster_foot_tl - \par\medskip - \let\footnotetext\TUDa@title@footnote - \g_TUDa_thanks_tl} - }; - - -} - }} + \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} + }; } % Background Colors \colorlet{backgroundcolor}{white} \colorlet{framecolor}{white} % Title Colors -\colorlet{titlefgcolor}{textonaccentcolor} +\bool_if:NTF \g_ptxcd_colorback_bool + {\colorlet{titlefgcolor}{textonaccentcolor}} + {\colorlet{titlefgcolor}{black}} \colorlet{titlebgcolor}{accentcolor} % Block Colors \colorlet{blocktitlebgcolor}{accentcolor} @@ -437,38 +459,39 @@ \colorlet{innerblockbodybgcolor}{textonaccentcolor} \colorlet{innerblockbodyfgcolor}{black} -\dim_new:N \g_TUDa_titleblock_dim +\dim_new:N \g_ptxcd_titleblock_dim +\dim_new:N \g_ptxcd_titleindent_dim -\cs_new:Nn \TUDa@poster_setup_title_box: { - \hbox_gset:Nn \g_TUDa_title_box { +\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_TUDa_author_box { - \parbox{\dimexpr\contentwidth-6\c_TUDa_rulesep_dim\relax}{ - \TUDa_def_footnotelabel: + \hbox_gset:Nn \g_ptxcd_author_box { + \parbox{\dimexpr\contentwidth-6\c_ptxcd_rulesep_dim\relax}{ + \ptxcd_def_footnotelabel: {\usekomafont{author}\@author\\}%\\[.2\titleinnersep] - \tl_gset:No \g_TUDa_thanks_tl {\@thanks} + \tl_gset:No \g_ptxcd_thanks_tl {\@thanks} \@institute } } \tl_if_empty:NF \@titlegraphic { - \hbox_gset:Nn \g_TUDa_titlegraphic_box { - \parbox{2.2\c_TUDa_logoheight_dim}{ + \hbox_gset:Nn \g_ptxcd_titlegraphic_box { + \parbox{2.2\c_ptxcd_logoheight_dim}{ \raggedleft \@titlegraphic } } } - \dim_gset:Nn \g_TUDa_titleblock_dim { + \dim_gset:Nn \g_ptxcd_titleblock_dim { \dim_max:nn {\dim_max:nn - {2\c_TUDa_logoheight_dim} - {\box_ht:N \g_TUDa_titlegraphic_box +\box_dp:N \g_TUDa_titlegraphic_box+1.8\c_TUDa_logoheight_dim} + {2\c_ptxcd_logoheight_dim} + {\box_ht:N \g_ptxcd_titlegraphic_box +\box_dp:N \g_ptxcd_titlegraphic_box+1.8\c_ptxcd_logoheight_dim} } - {\box_ht:N \g_TUDa_title_box+ \box_dp:N \g_TUDa_title_box+.8\c_TUDa_logoheight_dim} + {\box_ht:N \g_ptxcd_title_box+ \box_dp:N \g_ptxcd_title_box+.8\c_ptxcd_logoheight_dim} } } @@ -483,15 +506,15 @@ coltext=black, colback=white, size=minimal, - boxrule=.5\c_TUDa_smallrule_dim, + boxrule=.5\c_ptxcd_smallrule_dim, leftrule=\z@, rightrule=\z@, fonttitle=\usekomafont{disposition}\usekomafont{section}, before~title={\strut}, - toptitle=.5\c_TUDa_rulesep_dim, - bottomtitle=.5\c_TUDa_rulesep_dim, - top=\c_TUDa_rulesep_dim, - bottom=\c_TUDa_rulesep_dim, + 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); @@ -511,8 +534,8 @@ TUDa-colored/.style = { TUDa, - left=.5\c_TUDa_rulesep_dim, - right=.5\c_TUDa_rulesep_dim, + left=.5\c_ptxcd_rulesep_dim, + right=.5\c_ptxcd_rulesep_dim, colbacktitle=blocktitlebgcolor, coltitle=blocktitlefgcolor, colback=blockbodybgcolor, @@ -537,8 +560,8 @@ coltitle=blocktitlefgcolor, colback=blockbodybgcolor, coltext=blockbodyfgcolor, - boxsep=\c_TUDa_rulesep_dim, - boxrule=.5\c_TUDa_smallrule_dim, + boxsep=\c_ptxcd_rulesep_dim, + boxrule=.5\c_ptxcd_smallrule_dim, titlerule=\z@, arc=1ex, auto~outer~arc, @@ -559,15 +582,16 @@ } %Select default box styles according to style option -\tcbposterset{boxes ={\g_TUDa_boxstyle_tl}, poster={spacing=5cm}} +\tcbposterset{boxes ={\g_ptxcd_boxstyle_tl}, poster={spacing=5cm}} \tcbset{ - every~ box~ on~ layer~ 3/.style={reset,\g_TUDa_boxstyle_tl -inner}, - every~ box~ on~ layer~ 4/.style={reset,\g_TUDa_boxstyle_tl -inner}, + 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 {tuda\g_ptxcd_department_str.cfg} \endinput %end of tudasciposter.cls diff --git a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo index 32653895d5..320499f748 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo +++ b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo @@ -1,4 +1,4 @@ -%% This is file `tudasize9pt.clo' version 2.11 (2020/06/12), +%% This is file `tudasize9pt.clo' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,8 +26,8 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} %% This is file `tudasize9pt.clo' version 1.0 (2018/12/12), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt diff --git a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg index 8cb5f2209c..cd4b4c647c 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg +++ b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg @@ -1,4 +1,4 @@ -%% This is file `tudathesis.cfg' version 2.11 (2020/06/12), +%% This is file `tudathesis.cfg' version 3.00 (2020/09/08), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -26,270 +26,268 @@ %% %% ============================================================================ %% -\def\fileversion{2.11} -\def\filedate{2020/06/12} +\def\fileversion{3.00} +\def\filedate{2020/09/08} \RequirePackage{expl3} \ProvidesExplFile{tudathesis.cfg} -{\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Coporate Design (tuda-ci)} +{\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Corporate Design (tuda-ci)} \RequirePackage{l3keys2e} -\tl_new:N \g_TUDa_thesis_drtext_tl -\clist_if_exist:NF \g_TUDa_Required_title_data_clist {\clist_new:N \g_TUDa_Required_title_data_clist} +\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} -\cs_new:Nn \TUDa_declare_caption:Nnnn { - \TUDa_define_captionFallback:Nn #1 {#2} +\cs_new:Nn \ptxcd_declare_caption:Nnnn { + \ptxcd_define_captionFallback:Nn #1 {#2} \defcaptionname{ngerman, german}{#1}{#2} \defcaptionname{english}{#1}{#3} \defcaptionname{british}{#1}{#4} } -\cs_new:Nn \TUDa_declare_caption:Nnn { - \TUDa_declare_caption:Nnnn #1 {#2} {#3} {#3} +\cs_new:Nn \ptxcd_declare_caption:Nnn { + \ptxcd_declare_caption:Nnnn #1 {#2} {#3} {#3} } %Declare macros for department -\cs_new:Nn \TUDa_select_department:n { +\cs_new:Nn \ptxcd_select_department:n { \str_case:nnTF {#1} { - {arch} {\TUDa_declare_caption:Nnn \TUDa@department {Architektur} {Architecture}} - {bauing} {\TUDa_declare_caption:Nnn \TUDa@department {Bau-~und~Umweltingenieurwissenschaften}{Civil~and~Environmental~Engineering}} - {bio} {\TUDa_declare_caption:Nnn \TUDa@department {Biologie}{Biology}} - {chem} {\TUDa_declare_caption:Nnn \TUDa@department {Chemie}{Chemistry}} - {etit} {\TUDa_declare_caption:Nnn \TUDa@department {Elektrotechnik~und~Informationstechnik}{Electrical~Engineering~and~Information~Technology}} - {gugw} {\TUDa_declare_caption:Nnn \TUDa@department {Gesellschafts-~und~Geschichtswissenschaften}{History~and~Social~Sciences}} - {humanw} {\TUDa_declare_caption:Nnn \TUDa@department {Humanwissenschaften}{Human~Sciences}} - {inf} {\TUDa_declare_caption:Nnn \TUDa@department {Informatik}{Computer~Science}} - {mb} {\TUDa_declare_caption:Nnn \TUDa@department {Maschinenbau}{Mechanical~Engineering}} - {matgeo} {\TUDa_declare_caption:Nnn \TUDa@department {Material-~und~Geowissenschaften}{Materials~and~Earth~Sciences}} - {math} {\TUDa_declare_caption:Nnn \TUDa@department {Mathematik}{Mathematics}} - {phys} {\TUDa_declare_caption:Nnn \TUDa@department {Physik}{Physics}} - {wi} {\TUDa_declare_caption:Nnn \TUDa@department {Rechts-~und~Wirtschaftswissenschaften}{Law~and~Economics}} + {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}} } { - \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department} - \TUDa_declare_caption:Nnn \TUDa_in_department {im~ \departmentname}{in~the~\departmentname{}~ of} - \TUDa_declare_caption:Nnn \departmentfullname {\departmentname{}~ \TUDa@department} { \TUDa@department{}~ \text_titlecase:n{\departmentname}} + \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department} + \ptxcd_declare_caption:Nnn \ptxcd_departmentprefix {im~ \departmentname}{in~the~\departmentname{}~ of} + \ptxcd_declare_caption:Nnn \departmentfullname {\departmentname{}~ \ptxcd_department} { \ptxcd_department{}~ \text_titlecase:n{\departmentname}} } - {\bool_if:NTF \g_TUDa_dr_bool + {\bool_if:NTF \g_ptxcd_dr_bool { - \msg_warning:nnn {tudapub/tudathesis} {unrecognized-department} {#1} - \gdef\TUDa@department{#1} - \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department} + \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1} + \gdef\ptxcd_department{#1} + \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department} } - {\TUDa_select_studyfield:n {#1}} + {\ptxcd_select_studyfield:n {#1}} } } -\cs_new:Nn \TUDa_select_studyfield:n { +\cs_new:Nn \ptxcd_select_studyfield:n { \str_case:nnTF {#1} { - {ce}{\TUDa_declare_caption:Nnn \TUDa@department {Computational\nobreakspace Engineering}{Computational\nobreakspace Engineering}} - {ese}{\TUDa_declare_caption:Nnn \TUDa@department {Energy~Science~and~Engineering}{Energy~Science~and~Engineering}} - {ist}{\TUDa_declare_caption:Nnn \TUDa@department {Information~Systems~Technology}{Information~Systems~Technology}} - {mech}{\TUDa_declare_caption:Nnn \TUDa@department {Mechanik}{Mechanics}} - {metro}{\TUDa_declare_caption:Nnn \TUDa@department {Mechatronik}{Mechatronics}} + {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}} } { - \TUDa_declare_caption:Nnn \departmentname {Studienbereich} {field~of~study} - \TUDa_declare_caption:Nnn \departmentfullname {\departmentname{}~ \TUDa@department} {\departmentname{}:~\TUDa@department} - \TUDa_declare_caption:Nnn \TUDa_in_department {im~ \departmentname}{in~the~\departmentname} - \TUDa_declare_caption:Nnn \TUDa@in_department {\TUDa_in_department{}~\TUDa@department} {\TUDa_in_department{}~``\TUDa@department''} + \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/tudathesis} {unrecognized-department} {#1} - \gdef\TUDa@department{#1} - \TUDa_declare_caption:Nnn \departmentname {Fachbereich} {department} + \msg_warning:nnn{tudapub/thesis} {unrecognized-department} {#1} + \gdef\ptxcd_department{#1} + \ptxcd_declare_caption:Nnn \departmentname {Fachbereich} {department} } } -\cs_new:Nn \TUDa_insert_studentID:n { - (\TUDa@studentIDname :\nobreakspace#1) +\cs_new:Nn \ptxcd_insert_studentID:n { + (\ptxcd_studentIDname :\nobreakspace#1) } -\TUDa_declare_caption:Nnn \TUDa@byname {von} {by} -\TUDa_declare_caption:Nnn \TUDa@fromname {aus} {from} -\TUDa_declare_caption:Nnn \TUDa_in_department {im~ \departmentname}{in~the~\departmentname{}~ of} -\TUDa_declare_caption:Nnn \TUDa@reviewname {Gutachten}{review} -\TUDa_declare_caption:Nnnn \TUDa@examdatename {Tag~ der~ Prüfung}{Date~ of~ thesis~ defense}{Date~ of~ thesis~ defence} -\TUDa_declare_caption:Nnn \TUDa@submissiondatename {Tag~ der~ Einreichung}{Date~ of~ submission} -\TUDa_declare_caption:Nnn \TUDa@studentIDname {Matrikelnummer} {Student\nobreakspace ID} +\ptxcd_declare_caption:Nnn \ptxcd_byname {von} {by} +\ptxcd_declare_caption:Nnn \ptxcd_fromname {aus} {from} +\ptxcd_declare_caption:Nnn \ptxcd_departmentprefix {im~ \departmentname}{in~the~\departmentname{}~ of} +\ptxcd_declare_caption:Nnn \ptxcd_reviewname {Gutachten}{review} +\ptxcd_declare_caption:Nnnn \ptxcd_examdatename {Tag~ der~ Prüfung}{Date~ of~ thesis~ defense}{Date~ of~ thesis~ defence} +\ptxcd_declare_caption:Nnn \ptxcd_submissiondatename {Tag~ der~ Einreichung}{Date~ of~ submission} +\ptxcd_declare_caption:Nnn \ptxcd_studentIDname {Matrikelnummer} {Student\nobreakspace ID} %Fallback content for box if not overwritten -\newcommand*\TUDa@box_department {\cs_if_exist_use:NF \departmentfullname {\TUDa@department}} -\newcommand*\TUDa@in_department {} +\newcommand*\ptxcd_box_department {\cs_if_exist_use:NF \departmentfullname {\ptxcd_department}} +\newcommand*\ptxcd_in_department {} +\newcommand*{\ptxcd_thesisStatus}{} -\providecommand*{\TUDa@thesisStatus}{} - -\keys_define:nn {TUDa/thesis} { +\keys_define:nn {ptxcd/thesis} { dr .choice:, - dr/rernat .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)}, - dr/ing .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)}, - dr/phil .code:n = \tl_gset:Nn \g_TUDa_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)}, + 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.)}, type .choice:, - type/sta .code:n = {\def\TUDa@thesisType{Studienarbeit} - \clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, date} - \bool_gset_false:N \g_TUDa_dr_bool + type/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\TUDa@thesisType{Diplomarbeit}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate, reviewer, department}}, +% 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 = {\TUDa_declare_caption:Nnn \TUDa@thesisType{Bachelorarbeit}{bachelor~ thesis} \clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_TUDa_dr_bool}, - type/pp .code:n = {\def\TUDa@thesisType{Project-Proposal}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, date, department}\bool_gset_false:N \g_TUDa_dr_bool}, + type/bachelor .code:n = {\ptxcd_declare_caption:Nnn \ptxcd_thesisType{Bachelorarbeit}{bachelor~ thesis} \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 = {\def\ptxcd_thesisType{Project-Proposal}\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 = \TUDa_declare_caption:Nnn \TUDa@thesisType{Masterarbeit}{master~ thesis} \clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate, department, reviewer}\bool_gset_false:N \g_TUDa_dr_bool, - type/dr .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType{Dissertation}{doctoral~ thesis}\TUDa_declare_caption:Nnn\TUDa@thesisStatus{vorgelegte}{submitted}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate , birthplace, department, reviewer}\bool_gset_true:N \g_TUDa_dr_bool, - type/drfinal .code:n = \TUDa_declare_caption:Nnn \TUDa@thesisType {Dissertation}{doctoral~ thesis}\TUDa_declare_caption:Nnn\TUDa@thesisStatus{genehmigte}{accepted}\clist_gset:Nn \g_TUDa_Required_title_data_clist {title, author, submissiondate,examdate, birthplace, department, reviewer}\bool_gset_true:N \g_TUDa_dr_bool, - type/unknown .code:n = \def\TUDa@thesisType{#1}\clist_gset:Nn \g_TUDa_Required_title_data_clist {}\bool_gset_false:N \g_TUDa_dr_bool, - ignore-missing-data .bool_gset:N = \g_TUDa_missing_data_warning_bool, + type/master .code:n = \ptxcd_declare_caption:Nnn \ptxcd_thesisType{Masterarbeit}{master~ thesis} \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}\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}\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 {}\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_TUDa_department_choice_tl, - status .code:n = \tl_if_head_is_group:nTF {#1} {\TUDa_declare_caption:Nnn\TUDa@thesisStatus #1 {}} {\TUDa_declare_caption:Nnn\TUDa@thesisStatus{#1}{#1}}, + 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_TUDa_ignore_title_language_bool, + ignore-title-language .bool_gset:N = \g_ptxcd_ignore_title_language_bool, ignore-title-language .initial:n ={false}, - noinstbox .bool_gset:N = \g_TUDa_manual_info_box_bool, - instbox .bool_gset_inverse:N = \g_TUDa_manual_info_box_bool, + 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 } -\prop_map_inline:Nn \g_TUDa_unknown_clsopts_prop { - \keys_if_exist:nnT {TUDa/thesis} {#1} { - \keys_set:nn {TUDa/thesis} {#1=#2} +\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop { + \keys_if_exist:nnT {ptxcd/thesis} {#1} { + \keys_set:nn {ptxcd/thesis} {#1=#2} } } -\tl_if_empty:NF \g_TUDa_thesis_options_tl {\keys_set:nV {TUDa/thesis} \g_TUDa_thesis_options_tl} +\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_TUDa_thesis_drtext_tl {#1}} -\tl_new:N \g_TUDa_titleintro_tl -\cs_new:Npn \titleintro #1 {\tl_gset:Nn \g_TUDa_titleintro_tl {#1}} -\tl_new:N \g_TUDa_titleaddendum_tl -\cs_new:Npn \titleaddendum #1 {\tl_gset:Nn \g_TUDa_titleaddendum_tl {#1}} +\cs_new:Npn \drtext #1 {\tl_gset:Nn \g_ptxcd_thesis_drtext_tl {#1}} +\tl_new:N \g_ptxcd_titleintro_tl +\cs_new:Npn \titleintro #1 {\tl_gset:Nn \g_ptxcd_titleintro_tl {#1}} +\tl_new:N \g_ptxcd_titleaddendum_tl +\cs_new:Npn \titleaddendum #1 {\tl_gset:Nn \g_ptxcd_titleaddendum_tl {#1}} -\msg_new:nnnn {TUDapub/thesis} {required-data-missing} {You~did~not~provide~#1~data~for~the~title.~Either~provide~it~or~change~your~publication~type.} {See~ the~ TUDa-CI~ documentation~ for~ further~ information~ and~ workarounds.} +\msg_new:nnnn{tudapub/thesis} {required-data-missing} {You~did~not~provide~#1~data~for~the~title.~Either~provide~it~or~change~your~publication~type.} {See~ the~ TUDa-CI~ documentation~ for~ further~ information~ and~ workarounds.} -\cs_new:Nn \TUDa_missing_title_data:n { - \bool_if:NTF \g_TUDa_missing_data_warning_bool +\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} + \msg_error:nnn{tudapub/thesis} {required-data-missing} {#1} } -\cs_new:Nn \TUDa_check_title_data:Nn { - \clist_if_in:NnT \g_TUDa_Required_title_data_clist {#2} { +\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_TUDa_missing_data_warning_bool + \bool_if:NTF \g_ptxcd_missing_data_warning_bool {\msg_warning:nnn} - {\msg_error:nnn} {TUDapub/thesis} {required-data-missing} {#2} + {\msg_error:nnn} {tudapub/thesis} {required-data-missing} {#2} } } } -\cs_generate_variant:Nn \TUDa_check_title_data:Nn {cn} +\cs_generate_variant:Nn \ptxcd_check_title_data:Nn {cn} \renewcommand*\author[2][]{ - \seq_gset_split:Nnn \g_TUDa_author_seq {\and} {#2} + \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#2} \tl_if_empty:nTF {#1} - {\def\TUDa@signature{#2}} - {\def\TUDa@signature{#1}} + {\def\ptxcd_signature{#2}} + {\def\ptxcd_signature{#1}} } \newcommand*{\studentID}[1]{ - \gdef\TUDa@studentID{#1} + \gdef\ptxcd_studentID{#1} } -\gdef\TUDa@institution{} -\gdef\TUDa@institute{} -\gdef\TUDa@department{} -\gdef\TUDa@studentID{} +\gdef\ptxcd_institution{} +\gdef\ptxcd_institute{} +\gdef\ptxcd_department{} +\gdef\ptxcd_studentID{} \NewDocumentCommand{\department}{som}{% -\IfBooleanTF{#1}{ - \tl_gset:Nn \TUDa@department {#3} - \tl_gset:Nn \TUDa@in_department{#3} - \IfNoValueTF {\tl_gset:Nn \TUDa@box_department {#3}} {\tl_gset:Nn \TUDa@box_department{#2}} - \clist_remove_all:Nn \g_TUDa_Required_title_data_clist {department} -}{ - \tl_gset:Nn \g_TUDa_department_choice_tl {#3} - \IfNoValueF {#2} {\tl_gset:Nn \TUDa_in_department {#1}} - } + \IfBooleanTF{#1}{ + \tl_gset:Nn \ptxcd_department {#3} + \tl_gset:Nn \ptxcd_in_department{#3} + \IfNoValueTF {\tl_gset:Nn \ptxcd_box_department {#3}} {\tl_gset:Nn \ptxcd_box_department{#2}} + \clist_remove_all:Nn \g_ptxcd_Required_title_data_clist {department} + }{ + \tl_gset:Nn \g_ptxcd_department_choice_tl {#3} + \IfNoValueF {#2} {\tl_gset:Nn \ptxcd_departmentprefix {#2}} + } } \newcommand*{\institute}[1]{ - \gdef\TUDa@institute{#1} + \gdef\ptxcd_institute{#1} } -\gdef\TUDa@group{} +\gdef\ptxcd_group{} \newcommand*{\group}[1]{% - \gdef\TUDa@group{#1} + \gdef\ptxcd_group{#1} } -\gdef\TUDa@birthplace{} +\gdef\ptxcd_birthplace{} \newcommand*{\birthplace}[1]{% - \bool_if:NTF \g_TUDa_dr_bool - {\gdef\TUDa@birthplace{#1}} - {\msg_info:nnn {tudapub/tudathesis} {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_TUDa_dr_bool {~ --~ D~17}} +\publishers{Darmstadt\bool_if:NT \g_ptxcd_dr_bool {~ --~ D~17}} -\seq_new:N \g_TUDa_reviewer_seq +\seq_new:N \g_ptxcd_reviewer_seq \newcommand*{\reviewer}[1]{ - \seq_gset_split:Nnn \g_TUDa_reviewer_seq {\and} {#1} + \seq_gset_split:Nnn \g_ptxcd_reviewer_seq {\and} {#1} \tl_if_empty:nTF {#1} {\let\@reviewer\@empty}{} } -\gdef\TUDa@thesis@reviewer{ - \clist_if_in:NnT \g_TUDa_Required_title_data_clist {reviewer} { - \seq_if_empty:NT \g_TUDa_reviewer_seq {\TUDa_missing_title_data:n {reviewer}} +\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_TUDa_reviewer_seq + \seq_map_inline:Nn \g_ptxcd_reviewer_seq { \int_incr:N \l_tmpb_int - \int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\TUDa@reviewname}:~\exp_not:n {##1}\\ + \int_to_arabic:n {\l_tmpb_int}.~\text_titlecase:n{\ptxcd_reviewname}:~\exp_not:n {##1}\\ } } -\gdef\TUDa@examdate{} +\gdef\ptxcd_examdate{} \newcommand*{\examdate}[1]{ - \bool_if:NTF \g_TUDa_dr_bool - {\gdef\TUDa@examdate{#1}} - {\msg_info:nnn {tudapub/tudathesis} {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\TUDa@submissiondate{} - +\gdef\ptxcd_submissiondate{} \newcommand*{\submissiondate}[1]{ - \gdef\TUDa@submissiondate{#1} + \gdef\ptxcd_submissiondate{#1} } -\gdef\TUDa@submissiondate{} \gdef\@date{} -\newcommand*{\TUDa@thesis@dates}[1][,~]{ +\cs_new:Nn \ptxcd_thesis_print_dates:n { \bool_set_false:N \l_tmpa_bool \tl_if_empty:NF \@date { - \TUDa@datename\tl_if_empty:NF \TUDa@datename {\TUDa@dateseparator}\@date + \ptxcd_datename\tl_if_empty:NF \ptxcd_datename {\ptxcd_dateseparator}\@date \bool_set_true:N \l_tmpa_bool } - \tl_if_empty:NF \TUDa@submissiondate { - \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\TUDa@submissiondatename\TUDa@dateseparator\TUDa@submissiondate + \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 \TUDa@examdate { - \bool_if:NTF \l_tmpa_bool {#1} {\bool_set_true:N \l_tmpa_bool}\TUDa@examdatename\TUDa@dateseparator\TUDa@examdate + \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 } } -\keys_define:nn {TUDa/thesis} { - urn .tl_gset:N =\g_TUDa_thesis_urn_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_TUDa_thesis_tuprints_tl, + printid .tl_gset:N = \g_ptxcd_thesis_tuprints_tl, printid .initial:V = \c_empty_tl, - license .tl_gset:N = \g_TUDa_license_info_tl, + doi .tl_gset:N = \g_ptxcd_thesis_doi_tl, + license .tl_gset:N = \g_ptxcd_license_info_tl, license .initial:n = {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/} @@ -298,27 +296,29 @@ \newcommand{\tuprints}[1]{% \tl_if_in:nnTF {#1} {=} - {\keys_set:nn {TUDa/thesis} {#1}} - {\keys_set:nn {TUDa/thesis} {printid=#1}} + {\keys_set:nn {ptxcd/thesis} {#1}} + {\keys_set:nn {ptxcd/thesis} {printid=#1}} \lowertitleback{ \urlstyle{same} Bitte~zitieren~Sie~dieses~Dokument~als: - \tl_if_empty:NF \g_TUDa_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_TUDa_thesis_urn_tl} - \\URL:~\url{http://tuprints.ulb.tu-darmstadt.de/\g_TUDa_thesis_tuprints_tl}\par\vspace{\baselineskip} + \tl_if_empty:NF \g_ptxcd_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_ptxcd_thesis_urn_tl}\\ + URL:~\url{http://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}} + \par\vspace{\baselineskip} Dieses~Dokument~wird~bereitgestellt~von~tuprints,\\ E-Publishing-Service~der~TU~Darmstadt\\ \url{http://tuprints.ulb.tu-darmstadt.de}\\ \url{tuprints@ulb.tu-darmstadt.de}\\[2\baselineskip] - \tl_if_empty:NF \g_TUDa_license_info_tl {\\[2\baselineskip]\g_TUDa_license_info_tl} + \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 \TUDa@thesisStatus {\TUDa@thesisStatus{}~}\TUDa@thesisType}~ - \tl_if_empty:NF \TUDa@in_department {\TUDa@in_department{}~} - \seq_if_empty:NF \g_TUDa_author_seq {\TUDa@byname\nobreakspace\@author} - \tl_if_empty:NF \TUDa@birthplace {\space\TUDa@fromname\space\TUDa@birthplace} - \tl_if_empty:NF \TUDa@studentID {\space\TUDa_insert_studentID:n {\TUDa@studentID}} + \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 \ptxcd_studentID {\space\ptxcd_insert_studentID:n {\ptxcd_studentID}} } \uppertitleback{ @@ -326,12 +326,12 @@ \@title\par\@subtitle \par\vspace*{\baselineskip} %ignore birthplace on english subject - \let\TUDa@birthplace\@empty + \let\ptxcd_birthplace\@empty \@subject - \TUDa@thesis@reviewer - \exp_args:Nx \tl_if_empty:nF {\@date\TUDa@submissiondate}{ + \ptxcd_thesis_print_reviewer: + \exp_args:Nx \tl_if_empty:nF {\@date\ptxcd_submissiondate}{ \par\vspace*{\baselineskip} - \TUDa@thesis@dates[\\] + \ptxcd_thesis_print_dates:n {\\} } \tl_if_empty:NF \@publishers { \par\vspace*{\baselineskip} @@ -359,34 +359,37 @@ \renewcommand{\titlepagestyle}{title.TUDa} -\box_new:N \g_TUDa_thesis_institution_box +\box_new:N \g_ptxcd_thesis_institution_box +% The following macro is an adapted version of the corresponding KOMA-Script macro +% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info] \renewcommand*{\maketitle}[1][1]{ - \bool_if:NF \g_TUDa_ignore_title_language_bool { - \bool_set_false:N \l_tmpa_bool - \clist_map_inline:nn {english, british, ngerman, german} { - \iflanguage{##1} - {\bool_set_true:N \l_tmpa_bool - \clist_map_break:}{} - } - \bool_if:NF \l_tmpa_bool { - \msg_error:nnx {tudapub/tudathesis} {unsupported-title-language} {\languagename} - } + \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 \TUDa_select_department:n \g_TUDa_department_choice_tl + \exp_args:NV \ptxcd_select_department:n \g_ptxcd_department_choice_tl \clist_map_inline:nn {author, date} { - \TUDa_check_title_data:cn {@##1} {##1} + \ptxcd_check_title_data:cn {@##1} {##1} } \clist_map_inline:nn {examdate, birthplace, group, department, institution} { - \TUDa_check_title_data:cn {TUDa@##1} {##1} + \ptxcd_check_title_data:cn {TUDa@##1} {##1} } - \cs_if_exist_use:N \TUDa_pass_TitleData: - \TUDa_disable_marginpar: + \cs_if_exist_use:N \ptxcd_pass_TitleData: + \ptxcd_disable_marginpar: \cleardoublepage \begin{titlepage} \setcounter{page}{% #1% }% + \def\thefootnote{\fnsymbol{footnote}} \if@titlepageiscoverpage \edef\titlepage@restore{% \noexpand\endgroup @@ -417,71 +420,87 @@ \let\titlepage@restore\relax \fi \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \hbox_gset:Nn \g_TUDa_title_box { + \ptxcd_setup_sponsor_box: + \hbox_gset:Nn \g_ptxcd_title_box { \parbox[t]{\linewidth}{ - \begin{minipage}[b]{\bool_if:NT \g_TUDa_logo@inhead_bool {.75}\linewidth} - \begin{addmargin}{3mm} - \raggedright - \tl_if_empty:NF \@titlehead {\usekomafont{titlehead}{\@titlehead\par}} - \usekomafont{title} - \expandafter\fontsize\TUDa_title_fontsize: - \selectfont - \@title\strut\par - \vskip0pt - \end{addmargin} - \end{minipage}\par\nointerlineskip - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par + \begin{minipage}[b]{\bool_if:NT \g_ptxcd_logo@inhead_bool {.75}\linewidth} + \bool_if:NT \g_ptxcd_logo@inhead_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}% + \par\nointerlineskip + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par\vspace{\c_ptxcd_rulesep_dim} \begin{addmargin}{3mm} + \usekomafont{titleinfo} \raggedright - \expandafter\fontsize\TUDa_titleinfo_fontsize: + \expandafter\fontsize\ptxcd_titleinfo_fontsize: \selectfont {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% \usekomafont{subject} - \bool_if:NT \g_TUDa_dr_bool {\selectlanguage{ngerman}} - \tl_if_empty:NF \g_TUDa_titleintro_tl {\g_TUDa_titleintro_tl\par} - \tl_if_empty:NF \g_TUDa_thesis_drtext_tl {\g_TUDa_thesis_drtext_tl\par} + \bool_if:NT \g_ptxcd_dr_bool {\selectlanguage{ngerman}} + \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}{\TUDa@thesis@dates\par}}% - \TUDa@thesis@reviewer\par + {\usekomafont{date}{\ptxcd_thesis_print_dates:n {,~}\par}}% + \ptxcd_thesis_print_reviewer:\par {\usekomafont{publishers}{\@publishers \par}}% - \tl_if_empty:NF \g_TUDa_titleaddendum_tl {\g_TUDa_titleaddendum_tl\par} - \end{addmargin}%\vspace{\dim_eval:n {-2\ht\strutbox -\dp\strutbox}}%\baselineskip} - \rule{\linewidth}{\g_TUDa_titlerule_dim}\par}} - \bool_if:NF \g_TUDa_manual_info_box_bool { - \exp_args:Nf \tl_if_empty:nF {\TUDa@institution\TUDa@department\TUDa@institute\TUDa@group} { - \addTitleBox{ - \tl_if_empty:NF \TUDa@institution {\TUDa@institution\par} - \tl_if_empty:NF \TUDa@box_department {\TUDa@box_department\par} - \tl_if_empty:NF \TUDa@institute {\TUDa@institute\par} - \tl_if_empty:NF \TUDa@group {\TUDa@group} - }} + \tl_if_empty:NF \g_ptxcd_titleaddendum_tl {\g_ptxcd_titleaddendum_tl\par} + \end{addmargin} + \rule{\linewidth}{\g_ptxcd_titlerule_dim}\par}} + \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{ + \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} + }} } - - \TUDa_adjust_titlepage_style: - - \nointerlineskip\box_use:N \g_TUDa_title_box - \par + \ptxcd_adjust_titlepage_style: + \thispagestyle{title.TUDa} + \nointerlineskip\box_use:N \g_ptxcd_title_box + \par + \vfill \@thanks\let\@thanks\@empty - \vfill\null + \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 + \@tempswatrue \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax - \else - \ifx\@uppertitleback\@empty + \else + \ifx\@uppertitleback\@empty \ifx\@lowertitleback\@empty - \@tempswafalse - \fi + \@tempswafalse \fi \fi + \fi \else - \exp_args:Nf \tl_if_empty:nTF {\g_TUDa_thesis_urn_tl\g_TUDa_thesis_tuprints_tl} - {\@tempswafalse} - {\@tempswatrue} + \exp_args:Nf \tl_if_empty:nTF {\g_ptxcd_thesis_urn_tl\g_ptxcd_thesis_tuprints_tl} + {\@tempswafalse} + {\@tempswatrue} \fi \if@tempswa \next@tpage @@ -507,15 +526,16 @@ \setcounter{footnote}{0}% \global\let\and\relax \cleardoublepage - \TUDa_restore_typearea: - \aftergroup\TUDa_restore_typearea: + \ptxcd_restore_typearea: + \aftergroup\ptxcd_restore_typearea: } +\newcommand*{\@ThesisType}{\ptxcd_thesisType} \ExplSyntaxOff \NewDocumentCommand{\affidavit}{s}{ \clearpage \begin{otherlanguage}{ngerman} -\csname bool_if:cTF\endcsname {g_TUDa_dr_bool} { +\csname bool_if:cTF\endcsname {g_ptxcd_dr_bool} { \section*{Erklärungen laut Promotionsordnung} \subsection*{\S{}8 Abs. 1 lit. c PromO} Ich versichere hiermit, dass die elektronische Version meiner Dissertation mit der schriftlichen Version übereinstimmt. @@ -530,7 +550,7 @@ Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient. \bigskip }{ \section*{Erklärung zur Abschlussarbeit\\gemäß \S{}22~Abs.~7 und \S{}23~Abs.~7~APB der TU~Darmstadt} -Hiermit versichere ich, \@author, die vorliegende \TUDa@thesisType{} ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. +Hiermit versichere ich, \@author, die vorliegende \@ThesisType{} ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen. \par Mir ist bekannt, dass im Fall eines Plagiats (\S{}38~Abs.~2~APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden. \par @@ -546,53 +566,52 @@ Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektr \IfBooleanF{#1}{\clearpage} } +\ExplSyntaxOn + \NewDocumentEnvironment{affidavit*}{om}{ -\IfNoValueF {#1} {\begin{otherlanguage}{#1}} -\section*{#2} + \IfNoValueF {#1} {\begin{otherlanguage}{#1}} + \section*{#2} }{ -\IfNoValueF {#1} {\end{otherlanguage}} + \IfNoValueF {#1} {\end{otherlanguage}} } \newcommand*{\AffidavitSignature}[1][Darmstadt]{ -\par -\bigskip -#1, \TUDa@submissiondate\hfill\SignatureBox{\TUDa@signature}\\\strut + \par + \bigskip + #1, \ptxcd_submissiondate\hfill\SignatureBox{\ptxcd_signature}\\\strut } \newcommand*{\SignatureBox}[2][5cm]{\parbox[t]{#1}{\centering\rule{\linewidth}{.3pt}\\\makebox[0pt][c]{#2}}} - -\ExplSyntaxOn - %messages: -\msg_new:nnn {tudapub/tudathesis} {dr-field-only} { +\msg_new:nnn{tudapub/thesis} {dr-field-only} { You~submitted~#1~data~for~title~information.\\ This~field~is~only~used~for~type=dr/drfinal.\\ It~will~be~ignored. } -\msg_new:nnn {tudapub/tudathesis} {unrecognized-department} { +\msg_new:nnn{tudapub/thesis} {unrecognized-department} { I~can't~recognize~your~department~#1.\\ I~will~use~the~string~'#1'~directly.\\ Ensure~your~department~has~to~shortcut.\\ See~tudathesis~documentation~for~further~details. } -\msg_new:nnnn {tudapub/tudathesis} {unsupported-title-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. + Use~"ignore-title-language"~Option~to~ignore~this~message~at~your~own~risk. } -\bool_if:NT \g_TUDa_dr_bool { +\bool_if:NT \g_ptxcd_dr_bool { \PassOptionsToPackage{ngerman}{babel} } % Fallback mechanism for older l3 kernels \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 } \endinput |