From 6677e7d16babf1c0596fd30f9aeb6b13433725cd Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 28 Jun 2019 21:06:55 +0000
Subject: tudscr (28jun19)

git-svn-id: svn://tug.org/texlive/trunk@51500 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/tudscr/tudscrposter.cls   | 4995 ++++++++++++--------
 1 file changed, 3117 insertions(+), 1878 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls')

diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls
index c75450392a8..6b2fc0aa7fd 100644
--- a/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls
+++ b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls
@@ -12,13 +12,13 @@
 %% tudscr-layout.dtx  (with options: `class,poster,option')
 %% tudscr-title.dtx  (with options: `class,poster,option')
 %% tudscr-frontmatter.dtx  (with options: `class,poster,option')
-%% tudscr-comp.dtx  (with options: `class,poster,option')
 %% tudscr-misc.dtx  (with options: `class,poster,option')
+%% tudscr-comp.dtx  (with options: `class,poster,option')
 %% tudscr-misc.dtx  (with options: `class,poster,execute')
 %% tudscr-base.dtx  (with options: `class,poster,body')
 %% tudscr-fonts.dtx  (with options: `class,poster,body')
 %% tudscr-fields.dtx  (with options: `class,poster,body')
-%% tudscr-locale.dtx  (with options: `class,poster,body')
+%% tudscr-localization.dtx  (with options: `class,poster,body')
 %% tudscr-area.dtx  (with options: `class,poster,body')
 %% tudscr-pagestyle.dtx  (with options: `class,poster,body')
 %% tudscr-layout.dtx  (with options: `class,poster,body')
@@ -29,9 +29,9 @@
 %% 
 %% TUD-Script -- Corporate Design of Technische Universitaet Dresden
 %% 
-%%   2017/05/30 v2.05m TUD-Script
+%%   2019/06/28 v2.06 TUD-Script
 %% 
-%% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017
+%% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019
 %% 
 %% This file was generated from file(s) of the TUD-Script bundle.
 %% ----------------------------------------------------------------------------
@@ -57,7 +57,7 @@
       \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}%
       \edef\@tempa{\TUD@Version}%
       \expandafter\@tempb\@tempa\relax? ? \relax\relax%
-      \gdef\TUD@Version@KOMA{3.17}%
+      \gdef\TUD@Version@KOMA{3.25}%
     }
   \else
     \newcommand*\TUD@Version@Check[1]{%
@@ -72,13 +72,13 @@
       \fi%
     }
   \fi
-  \TUD@Version@Check{2017/05/30 v2.05m TUD-Script}
+  \TUD@Version@Check{2019/06/28 v2.06 TUD-Script}
 \endgroup
 \NeedsTeXFormat{LaTeX2e}
 \providecommand*\tudscrmail{hanisch.latex@outlook.com}
 \newcommand*\TUD@ProvidesClass[3]{%
   \ProvidesClass{#1}[%
-  2017/05/30 v2.05m TUD-Script
+  2019/06/28 v2.06 TUD-Script
     ^^J#3 (#2)%
   ]%
   \newcommand*\TUD@Class@KOMA{#2}%
@@ -88,22 +88,29 @@
   \fi%
 }
 \providecommand*\TUD@Class@Info{%
-  \typeout{+---------------------------------------------------------------}%
+  \typeout{+------------------------------------------------------------------}%
   \typeout{| Corporate Design of Technische Universitaet Dresden}%
-  \typeout{| Class: \TUD@Class@Name}%
-  \typeout{| Version: \TUD@Version}%
-  \typeout{| Author: Falk Hanisch (\tudscrmail)}%
-  \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}%
-  \typeout{+---------------------------------------------------------------}%
+  \typeout{| Class:      \TUD@Class@Name}%
+  \typeout{| Version:    \TUD@Version}%
+  \typeout{| Author:     Falk Hanisch (\tudscrmail)}%
+  \typeout{| Repository: https://github.com/tud-cd/tudscr}%
+  \typeout{| Forum:      https://latex.wcms-file3.tu-dresden.de}%
+  \typeout{+------------------------------------------------------------------}%
 }
 \TUD@ProvidesClass{tudscrposter}{scrartcl}{poster class}
 \edef\TUDScriptClassName{\TUD@Class@Name}
 \providecommand*\TUDClassName{\TUDScriptClassName}
 \@ifundefined{TUDScript}{%
   \DeclareRobustCommand\TUDScript{%
-    \ifdin{TUD-SCRIPT}{%
-      \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script}%
-    }\csname xspace\endcsname%
+    \begingroup%
+      \def\tud@res@b##1{T\kern.05em U\kern.05em D\kern.1em-\kern.1em ##1}%
+      \tud@ifdin{%
+        \edef\tud@res@a{\tud@res@b{SCRIPT}}%
+      }{%
+        \edef\tud@res@a{\noexpand\textsf{\tud@res@b{Script}}}%
+      }%
+    \expandafter\endgroup\tud@res@a%
+    \csname xspace\endcsname%
   }%
 }{}
 %%% From File: tudscr-base.dtx
@@ -117,25 +124,11 @@
     a TUD-Script class%
   }%
 ]{tudscrfonts}
-\newif\if@tud@x@fontspec@enabled
-\AfterPackage*{fontspec}{%
-  \@ifpackagelater{fontspec}{2017/01/24}{%
-    \@tud@x@fontspec@enabledtrue%
-  }{%
-    \@tud@x@fontspec@enabledfalse%
-    \ClassWarningNoLine{\TUD@Class@Name}%
-    {%
-      Version `2017/01/24' of package `fontspec' is needed,\MessageBreak
-      but only version\MessageBreak
-      `\csname ver@fontspec.sty\endcsname'\MessageBreak
-      is available, so a fallback layout is used%
-    }%
-  }%
-}
-\newif\if@tud@cdfont@din
+\newif\if@tud@cdfont@active
+\newif\if@tud@cdfont@heavy
 \newif\if@tud@cdfont@ultrabold
-\@tud@cdfont@dintrue
-\newcommand*\tud@cdfont@num{1}
+\newif\if@tud@cdfont@lining
+\@tud@cdfont@liningtrue
 \TUD@key{cdfont}[true]{%
   \TUD@set@numkey{cdfont}{@tempa}{%
     \TUD@bool@numkey,%
@@ -144,109 +137,205 @@
     {normalbold}{3},{boldnormal}{3},%
     {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},%
     {extendedbold}{4},{boldextended}{4},%
-    {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},%
-    {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},%
-    {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},%
-    {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},%
-    {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},%
-    {bar}{8},{barfont}{8},%
-    {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},%
-    {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},%
-    {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},%
-    {headlight}{8},{headfontlight}{8},{headlightfont}{8},%
-    {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},%
-    {barlight}{8},{barfontlight}{8},{barlightfont}{8},%
-    {litehead}{8},{liteheadfont}{8},{litefonthead}{8},%
-    {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},%
-    {litebar}{8},{litebarfont}{8},{litefontbar}{8},%
-    {headlite}{8},{headfontlite}{8},{headlitefont}{8},%
-    {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},%
-    {barlite}{8},{barfontlite}{8},{barlitefont}{8},%
-    {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},%
-    {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},%
-    {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},%
-    {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},%
-    {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},%
-    {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},%
-    {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},%
-    {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},%
-    {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},%
-    {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},%
-    {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},%
-    {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},%
-    {nomath}{10},{nocdmath}{10},%
-    {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},%
-    {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},%
-    {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},%
-    {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},%
-    {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},%
-    {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}%
+    {lf}{5},{lfigures}{5},{liningfigures}{5},{lining}{5},%
+    {ln}{5},{lnumbers}{5},{liningnumbers}{5},%
+    {nf}{5},{nfigures}{5},{normalfigures}{5},%
+    {nn}{5},{nnumbers}{5},{normalnumbers}{5},%
+    {osf}{6},{osfigures}{6},{oldfigures}{6},{oldstylefigures}{6},{oldstyle}{6},%
+    {osn}{6},{osnumbers}{6},{oldnumbers}{6},{oldstylenumbers}{6},%
+    {nomath}{7},{nocdmath}{7},%
+    {serifmath}{7},{serif}{7},{nosansmath}{7},{nosans}{7},%
+    {math}{8},{cdmath}{8},{sansmath}{8},{sans}{8},%
+    {upgreek}{9},{uprightgreek}{9},{uprightgreeks}{9},%
+    {slgreek}{10},{slantedgreek}{10},{slantedgreeks}{10},%
+    {itgreek}{10},{italicgreek}{10},{italicgreeks}{10},%
+    {texgreek}{11},{latexgreek}{11},{texgreeks}{11},{latexgreeks}{11},%
+    {standardgreek}{11},{standardgreeks}{11},%
+    {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},%
+    {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}%
+    ,{nohead}{14},{nocdhead}{14},{noheadfont}{14},{noheadcdfont}{14},%
+    {nocdheadfont}{14},{nobar}{14},{nobarfont}{14},%
+    {head}{15},{headfont}{15},{cdhead}{15},{headcdfont}{15},{cdheadfont}{15},%
+    {bar}{15},{barfont}{15},%
+    {lighthead}{15},{lightheadfont}{15},{lightfonthead}{15},%
+    {lightcdhead}{15},{lightheadcdfont}{15},{lightcdheadfont}{15},%
+    {lightbar}{15},{lightbarfont}{15},{lightfontbar}{15},%
+    {headlight}{15},{headfontlight}{15},{headlightfont}{15},%
+    {cdheadlight}{15},{headcdfontlight}{15},{cdheadfontlight}{15},%
+    {barlight}{15},{barfontlight}{15},{barlightfont}{15},%
+    {litehead}{15},{liteheadfont}{15},{litefonthead}{15},%
+    {litecdhead}{15},{liteheadcdfont}{15},{litecdheadfont}{15},%
+    {litebar}{15},{litebarfont}{15},{litefontbar}{15},%
+    {headlite}{15},{headfontlite}{15},{headlitefont}{15},%
+    {cdheadlite}{15},{headcdfontlite}{15},{cdheadfontlite}{15},%
+    {barlite}{15},{barfontlite}{15},{barlitefont}{15},%
+    {noheavyhead}{15},{noheavyheadfont}{15},{noheavyfonthead}{15},%
+    {noheavycdhead}{15},{noheavyheadcdfont}{15},{noheavycdheadfont}{15},%
+    {noheavybar}{15},{noheavybarfont}{15},{noheavyfontbar}{15},%
+    {headnoheavy}{15},{headfontnoheavy}{15},{headnoheavyfont}{15},%
+    {cdheadnoheavy}{15},{headcdfontnoheavy}{15},{cdheadfontnoheavy}{15},%
+    {barnoheavy}{15},{barfontnoheavy}{15},{barnoheavyfont}{15},%
+    {heavyhead}{16},{heavyheadfont}{16},{heavyfonthead}{16},%
+    {heavycdhead}{16},{heavyheadcdfont}{16},{heavycdheadfont}{16},%
+    {heavybar}{16},{heavybarfont}{16},{heavyfontbar}{16},%
+    {headheavy}{16},{headfontheavy}{16},{headheavyfont}{16},%
+    {cdheadheavy}{16},{headcdfontheavy}{16},{cdheadfontheavy}{16},%
+    {barheavy}{16},{barfontheavy}{16},{barheavyfont}{16}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \ifcase\@tempa\relax% false
-      \renewcommand*\tud@cdfont@num{0}%
-      \bool@std@lock{@tud@cdmath}{false}%
-      \TUD@SpecialOptionAtDocument{tud@font@set}%
+      \tud@cdfont@deactivate%
     \or% true
-      \renewcommand*\tud@cdfont@num{1}%
-      \bool@std@lock{@tud@cdmath}{true}%
-      \TUD@SpecialOptionAtDocument{tud@font@set}%
+      \@tud@cdfont@heavyfalse%
+      \tud@cdfont@activate%
     \or% heavy
-      \renewcommand*\tud@cdfont@num{2}%
-      \bool@std@lock{@tud@cdmath}{true}%
-      \TUD@SpecialOptionAtDocument{tud@font@set}%
+      \@tud@cdfont@heavytrue%
+      \tud@cdfont@activate%
     \or% normalbold
       \@tud@cdfont@ultraboldfalse%
-      \ifcase\tud@cdfont@num\relax% false to true
-        \renewcommand*\tud@cdfont@num{1}%
-      \fi%
-      \bool@std@lock{@tud@cdmath}{true}%
-      \TUD@SpecialOptionAtDocument{tud@font@set}%
+      \tud@cdfont@activate%
     \or% ultrabold
       \@tud@cdfont@ultraboldtrue%
-      \ifcase\tud@cdfont@num\relax% false to true
-        \renewcommand*\tud@cdfont@num{1}%
-      \fi%
-      \bool@std@lock{@tud@cdmath}{true}%
-      \TUD@SpecialOptionAtDocument{tud@font@set}%
-    \or% nodin
-      \@tud@cdfont@dinfalse%
-    \or% din
-      \@tud@cdfont@dintrue%
-    \or% nohead
-      \TUDoptions{cdhead=false}%
-    \or% head
-      \TUDoptions{cdhead=true}%
-    \or% heavyhead
-      \TUDoptions{cdhead=heavy}%
+      \tud@cdfont@activate%
+    \or% liningfigures
+      \@tud@cdfont@liningtrue%
+      \tud@cdfont@activate%
+    \or% oldstylefigures
+      \@tud@cdfont@liningfalse%
+      \tud@cdfont@activate%
     \or% nomath
       \TUDoptions{cdmath=false}%
     \or% math
       \TUDoptions{cdmath=true}%
-    \or% upgreek
+    \or% uprightgreek
       \TUDoptions{slantedgreek=false}%
-    \or% slgreek
+    \or% slantedgreek
       \TUDoptions{slantedgreek=true}%
+    \or% standardgreek
+      \TUDoptions{slantedgreek=standard}%
     \or% fontspec
       \TUDoptions{fontspec=true}%
     \or% nofontspec
       \TUDoptions{fontspec=false}%
+    \or% nohead
+      \TUDoptions{cdhead=false}%
+    \or% head
+      \TUDoptions{cdhead=true}%
+    \or% heavyhead
+      \TUDoptions{cdhead=heavy}%
     \fi%
   \else%
-    \ifdimen{#1}{%
-      \ifdim#1>\z@\relax%
-        \TUD@KOMAoptions{fontsize=#1}%
-        \csname @tud@fontsize@settrue\endcsname%
-        \ifcase\tud@cdfont@num\relax% false to true
-          \renewcommand*\tud@cdfont@num{1}%
-          \bool@std@lock{@tud@cdmath}{true}%
-          \TUD@SpecialOptionAtDocument{tud@font@set}%
-        \fi%
+    \tud@lowerstring\tud@res@a{#1}%
+    \ifdimen{\tud@res@a}{%
+      \ifdim\tud@res@a>\z@\relax%
+        \TUDoptions{fontsize=#1}%
+        \tud@cdfont@activate%
         \FamilyKeyStateProcessed%
       \fi%
     }{}%
   \fi%
 }
+\newcommand*\tud@cdfont@activate{%
+  \@tud@cdfont@activetrue%
+  \if@tud@cdfont@heavy%
+    \tud@locked@num@preset{tud@head@font@num}{2}%
+  \else%
+    \tud@locked@num@preset{tud@head@font@num}{1}%
+  \fi%
+  \TUD@SpecialOptionAtDocument{tud@font@set}%
+  \tud@locked@bool@preset{@tud@cdmath@active}{true}%
+  \TUD@SpecialOptionAtDocument{tud@math@set}%
+}
+\newcommand*\tud@cdfont@deactivate{%
+  \@tud@cdfont@activefalse%
+  \tud@locked@num@preset{tud@head@font@num}{0}%
+  \TUD@SpecialOptionAtDocument{tud@font@set}%
+  \tud@locked@bool@preset{@tud@cdmath@active}{false}%
+  \TUD@SpecialOptionAtDocument{tud@math@set}%
+}
+\newif\if@tud@cdoldfont@active
+\newif\if@tud@cdoldfont@nodin
+\TUD@key{cdoldfont}[true]{%
+  \TUD@set@numkey{cdoldfont}{@tempa}{%
+    \TUD@bool@numkey,%
+    {din}{1},{dinbold}{1},%
+    {nodin}{2},{nodinbold}{2},%
+    {onlydin}{3},{onlydinbold}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\@tempa\relax% false
+      \@tud@cdoldfont@activefalse%
+      \@tud@cdoldfont@nodintrue%
+      \if@tud@cdoldfont@active%
+        \tud@cdfont@deactivate%
+      \fi%
+    \or% true/din
+      \@tud@cdoldfont@activetrue%
+      \@tud@cdoldfont@nodinfalse%
+      \tud@cdfont@activate%
+    \or% nodin
+      \@tud@cdoldfont@activetrue%
+      \@tud@cdoldfont@nodintrue%
+      \tud@cdfont@activate%
+    \or% onlydin
+      \@tud@cdoldfont@activetrue%
+      \@tud@cdoldfont@nodinfalse%
+      \tud@cdfont@deactivate%
+    \fi%
+  \else%
+    \@tud@cdoldfont@activetrue%
+    \TUDoptions{cdfont=#1}%
+  \fi%
+}
+\AtEndOfClass%
+{%
+  \if@tud@cdoldfont@active%
+    \let\@tud@cdoldfont@activefalse\@tud@cdoldfont@activetrue%
+    \TUD@key[.comp]{cdfont}{%
+      \TUD@set@numkey{cdfont}{@tempa}{%
+        {din}{1},{dinbold}{1},%
+        {nodin}{2},{nodinbold}{2},%
+        {onlydin}{3},{onlydinbold}{3}%
+      }{#1}%
+      \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+        \TUDoptions{cdoldfont=#1}%
+      \fi%
+    }%
+  \else%
+    \TUD@key{cdoldfont}[]{%
+      \ClassError{\TUD@Class@Name}%
+      {Option `cdoldfont' not active}{%
+        Option `cdoldfont' must be activated while loading the\MessageBreak%
+        class `\TUD@Class@Name'\space%
+        but you have tried to set it up later.%
+      }%
+      \FamilyKeyStateProcessed%
+    }%
+  \fi%
+}
+\newif\if@tud@x@scr@fontsize@set
+\TUD@key{fontsize}{%
+  \TUD@set@dimenkey{fontsize}{\@tempa}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \@tud@x@scr@fontsize@settrue%
+    \TUD@KOMAoptions{fontsize=#1}%
+  \fi%
+}
+\AtEndOfClass%
+{%
+  \RelaxFamilyKey{TUD}{fontsize}%
+  \DefineFamilyMember{KOMA}%
+  \DefineFamilyKey{KOMA}{fontsize}{%
+    \@tud@x@scr@fontsize@settrue%
+    \ClassWarning{\TUD@Class@Name}%
+    {%
+      The key `fontsize=#1' should only be\MessageBreak%
+      used as class option%
+    }%
+    \TUD@SpecialOptionAtDocument{tud@font@set}%
+    \FamilyKeyStateProcessed%
+  }%
+}
 \newif\if@tud@relspacing
 \TUD@key{relspacing}[true]{%
   \TUD@set@numkey{relspacing}{@tempa}{%
@@ -263,50 +352,91 @@
     \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
   \fi%
 }
-\DefineFamilyMember{KOMA}
-\DefineFamilyKey{KOMA}{fontsize}{%
-  \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
-  \FamilyKeyStateProcessed%
+\newcommand*\tud@ttfont@num{0}
+\TUD@key{ttfont}[true]{%
+  \TUD@set@numkey{ttfont}{@tempa}{%
+    \TUD@bool@numkey,%
+    {roboto}{1},{roboto-mono}{1},{robo}{1},%
+    {lm}{2},{lmtt}{2},{lmodern}{2}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\@tempa\relax% false
+      \renewcommand*\tud@ttfont@num{0}%
+    \or% roboto
+      \renewcommand*\tud@ttfont@num{1}%
+    \or% lmodern
+      \renewcommand*\tud@ttfont@num{2}%
+    \fi%
+    \TUD@SpecialOptionAtDocument{tud@font@set}%
+  \fi%
 }
-\bool@lock{@tud@cdmath}
-\bool@std@lock{@tud@cdmath}{true}%
+\tud@locked@newbool{@tud@cdmath@active}
+\tud@locked@bool@preset{@tud@cdmath@active}{true}%
 \TUD@key{cdmath}[true]{%
   \TUD@set@numkey{cdmath}{@tempa}{%
     \TUD@bool@numkey,%
     {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},%
     {sansmath}{1},{sans}{1},%
-    {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},%
-    {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}%
+    {upgreek}{2},{uprightgreek}{2},{uprightgreeks}{2},%
+    {slgreek}{3},{slantedgreek}{3},{slantedgreeks}{3},%
+    {itgreek}{3},{italicgreek}{3},{italicgreeks}{3},%
+    {texgreek}{4},{latexgreek}{4},{texgreeks}{4},{latexgreeks}{4},%
+    {standardgreek}{4},{standardgreeks}{4}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \ifcase\@tempa\relax% false
-      \bool@set@lock{@tud@cdmath}{false}%
-      \TUD@SpecialOptionAtDocument{tud@font@math@set}%
+      \tud@locked@bool@set{@tud@cdmath@active}{false}%
+      \TUD@SpecialOptionAtDocument{tud@math@set}%
     \or% true
-      \bool@set@lock{@tud@cdmath}{true}%
-      \TUD@SpecialOptionAtDocument{tud@font@math@set}%
-    \or% upgreek
+      \tud@locked@bool@set{@tud@cdmath@active}{true}%
+      \TUD@SpecialOptionAtDocument{tud@math@set}%
+    \or% uprightgreek
       \TUDoptions{slantedgreek=false}%
-    \or% slgreek
+    \or% slantedgreek
       \TUDoptions{slantedgreek=true}%
+    \or% standardgreek
+      \TUDoptions{slantedgreek=standard}%
     \fi%
   \fi%
 }
-\bool@lock{@tud@slantedgreek}
+\newcommand*\tud@slantedgreek@num{0}
 \TUD@key{slantedgreek}[true]{%
-  \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}%
+  \TUD@set@numkey{slantedgreek}{@tempa}{%
+    \TUD@bool@numkey,%
+    {up}{0},{upright}{0},%
+    {sl}{1},{slanted}{1},{it}{1},{italic}{1},%
+    {standard}{2},{std}{2},{tex}{2},{latex}{2},{stdgrk}{2},{stdgrks}{2},%
+    {standardgreek}{2},{standardgreeks}{2},%
+    {texgreek}{2},{latexgreek}{2},{texgreeks}{2},{latexgreeks}{2}%
+  }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \bool@set@lock{@tud@slantedgreek}{#1}%
-    \TUD@SpecialOptionAtDocument{tud@font@math@set}%
+    \ifcase\@tempa\relax% upright
+      \renewcommand*\tud@slantedgreek@num{0}%
+    \or% slanted
+      \renewcommand*\tud@slantedgreek@num{1}%
+    \or% standard
+      \renewcommand*\tud@slantedgreek@num{2}%
+    \fi%
+    \TUD@SpecialOptionAtDocument{tud@math@set}%
   \fi%
 }
 \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}}
+\TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}}
+\newif\if@tud@lgrgreeks
+\TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}}
+\TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}}
+\TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}}
+\TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}}
 %%% From File: tudscr-area.dtx
-\cs@lock{tud@cdgeometry@num}{0}
+\newif\if@tud@cdgeometry@reset
+\newcommand*\tud@cdgeometry@reset[1]{%
+  \@tud@cdgeometry@resettrue%
+  \TUDoptions{cdgeometry=#1}%
+  \@tud@cdgeometry@resetfalse%
+}
+\tud@locked@newnum{tud@cdgeometry@num}{0}
 \newcommand*\tud@cdgeometry@calc@num{0}
 \TUD@key{cdgeometry}[true]{%
-  \let\@tempb\tud@cdgeometry@num%
-  \let\@tempc\tud@cdgeometry@calc@num%
   \TUD@set@numkey{cdgeometry}{@tempa}{%
     \TUD@bool@numkey,%
     {typearea}{0},%
@@ -322,36 +452,42 @@
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \ifcase\@tempa\relax% false/typearea
-      \cs@set@lock{tud@cdgeometry@num}{0}%
+      \tud@locked@num@set{tud@cdgeometry@num}{0}%
     \or% true/cd
-      \cs@set@lock{tud@cdgeometry@num}{2}%
+      \tud@locked@num@set{tud@cdgeometry@num}{2}%
     \or% symmetric
-      \cs@set@lock{tud@cdgeometry@num}{3}%
+      \tud@locked@num@set{tud@cdgeometry@num}{3}%
     \or% twoside
-      \cs@set@lock{tud@cdgeometry@num}{4}%
+      \tud@locked@num@set{tud@cdgeometry@num}{4}%
       \TUD@KOMAoptions{twoside=true}%
     \or% oneside
       \ifnum\tud@cdgeometry@num>\thr@@\relax%
-        \cs@set@lock{tud@cdgeometry@num}{3}%
+        \tud@locked@num@set{tud@cdgeometry@num}{3}%
       \fi%
       \TUD@KOMAoptions{twoside=false}%
     \or% restricted
-      \cs@std@lock{tud@cdgeometry@num}{2}%
+      \tud@locked@num@preset{tud@cdgeometry@num}{2}%
       \renewcommand*\tud@cdgeometry@calc@num{0}%
     \or% adapted
-      \cs@std@lock{tud@cdgeometry@num}{2}%
+      \tud@locked@num@preset{tud@cdgeometry@num}{2}%
       \renewcommand*\tud@cdgeometry@calc@num{1}%
     \or% calculated
-      \cs@std@lock{tud@cdgeometry@num}{2}%
+      \tud@locked@num@preset{tud@cdgeometry@num}{2}%
       \renewcommand*\tud@cdgeometry@calc@num{2}%
     \or% custom
-      \cs@set@lock{tud@cdgeometry@num}{1}%
+      \tud@locked@num@set{tud@cdgeometry@num}{1}%
     \fi%
-    \@tempswafalse%
-    \ifx\@tempb\tud@cdgeometry@num\relax\else\@tempswatrue\fi%
-    \ifx\@tempc\tud@cdgeometry@calc@num\relax\else\@tempswatrue\fi%
-    \if@tempswa%
-      \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
+    \if@atdocument%
+      \if@tud@cdgeometry@reset\else%
+        \ifcase\tud@cdgeometry@num\relax%
+          \tud@loadgeometry{current@typearea}%
+          \@tud@x@geometry@fixmarginstrue%
+        \or%
+          \tud@loadgeometry{current@custom}%
+          \@tud@x@geometry@fixmarginstrue%
+        \fi%
+        \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
+      \fi%
     \fi%
   \fi%
 }
@@ -359,7 +495,7 @@
 \TUD@key{extrabottommargin}{%
   \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}%
+    \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
   \fi%
 }
 \newcommand*\tud@dim@bleedmargin{.2in}
@@ -374,30 +510,45 @@
 }
 \DefineFamilyMember{KOMA}
 \DefineFamilyKey{KOMA}{twoside}{%
-  \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}%
+  \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
   \FamilyKeyStateProcessed%
 }
 \DefineFamilyKey{KOMA}{twocolumn}{%
-  \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}%
+  \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
   \FamilyKeyStateProcessed%
 }
-\newcommand*\tud@x@ta@warnings@off{}
-\newcommand*\tud@x@ta@warnings@on{}
-\IfFileExists{silence.sty}{%
-  \RequirePackage{silence}[2012/07/02]%
-  \WarningFilter[typearea]{typearea}{DIV for}%
-  \WarningFilter[typearea]{typearea}{Bad type area settings!}%
-  \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}%
-  \WarningFilter[typearea]{typearea}{Very low DIV value!}%
-  \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}%
-  \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}%
-  \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]}
-  \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]}
-}{}
+\newcommand*\tud@x@typearea@warnings@off[1][]{%
+  \IfArgIsEmpty{#1}{}{\let#1\@empty}%
+  \tud@cs@store{PackageWarningNoLine}%
+  \renewcommand*\PackageWarningNoLine[2]{%
+    \@tud@res@swatrue%
+    \ifstr{##1}{typearea}{%
+      \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}%
+      \ifstrstart{##2}{%
+        Maybe no optimal type area settings!%
+      }{\@tud@res@swafalse}{}%
+      \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}%
+    }{}%
+    \if@tud@res@swa%
+      \tud@cs@use{PackageWarning}{##1}{##2}%
+    \else%
+      \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}%
+    \fi%
+  }%
+}
+\newcommand*\tud@x@typearea@warnings@on{%
+  \tud@cs@restore{PackageWarningNoLine}%
+}
+\BeforePackage{typearea}{%
+  \tud@x@typearea@warnings@off%
+}
+\AfterPackage{typearea}{%
+  \tud@x@typearea@warnings@on%
+}
 %%% From File: tudscr-pagestyle.dtx
-\cs@lock{tud@head@font@num}{0}
-\cs@lock{tud@head@bar@num}{0}
-\bool@lock{@tud@head@widebar}
+\tud@locked@newnum{tud@head@font@num}{0}
+\tud@locked@newnum{tud@head@bar@num}{0}
+\tud@locked@newbool{@tud@head@widebar}
 \newif\if@tud@head@font@set
 \newif\if@tud@head@date
 \TUD@key{cdhead}[true]{%
@@ -424,23 +575,23 @@
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \ifcase\@tempa\relax% false
-      \cs@set@lock{tud@head@font@num}{0}%
+      \tud@locked@num@set{tud@head@font@num}{0}%
     \or% true
-      \cs@set@lock{tud@head@font@num}{1}%
+      \tud@locked@num@set{tud@head@font@num}{1}%
     \or% heavy
-      \cs@set@lock{tud@head@font@num}{2}%
+      \tud@locked@num@set{tud@head@font@num}{2}%
     \or% nocolor
-      \cs@set@lock{tud@head@bar@num}{0}%
+      \tud@locked@num@set{tud@head@bar@num}{0}%
     \or% litecolor
-      \cs@set@lock{tud@head@bar@num}{1}%
+      \tud@locked@num@set{tud@head@bar@num}{1}%
     \or% barcolor
-      \cs@set@lock{tud@head@bar@num}{2}%
+      \tud@locked@num@set{tud@head@bar@num}{2}%
     \or% color
-      \cs@set@lock{tud@head@bar@num}{3}%
+      \tud@locked@num@set{tud@head@bar@num}{3}%
     \or% textwidth
-      \bool@set@lock{@tud@head@widebar}{false}%
+      \tud@locked@bool@set{@tud@head@widebar}{false}%
     \or% paperwidth
-      \bool@set@lock{@tud@head@widebar}{true}%
+      \tud@locked@bool@set{@tud@head@widebar}{true}%
     \or% date
       \@tud@head@datetrue%
     \or% nodate
@@ -452,7 +603,7 @@
   \fi%
 }
 \TUD@AfterPackage@set{scrlayer-scrpage}
-\bool@lock{@tud@foot@colored}
+\tud@locked@newbool{@tud@foot@colored}
 \TUD@key{cdfoot}[true]{%
   \TUD@set@numkey{cdfoot}{@tempa}{%
     \TUD@bool@numkey,%
@@ -467,13 +618,13 @@
       \TUD@AfterPackage@do{scrlayer-scrpage}{%
         \tud@ps@restore{scrheadings}%
         \tud@ps@restore{plain.scrheadings}%
-        \tud@font@koma@unset{pageheadfoot}%
+        \tud@komafont@unset{pageheadfoot}%
       }%
     \or% true
       \TUD@AfterPackage@do{scrlayer-scrpage}{%
         \tud@ps@store{scrheadings}%
         \tud@ps@store{plain.scrheadings}%
-        \tud@font@koma@set{pageheadfoot}{\upshape}%
+        \tud@komafont@set{pageheadfoot}{\upshape}%
         \clearpairofpagestyles%
         \ofoot[\pagemark]{%
           \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi%
@@ -483,12 +634,13 @@
         \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi%
       }%
     \or% nocolor
-      \bool@set@lock{@tud@foot@colored}{false}%
+      \tud@locked@bool@set{@tud@foot@colored}{false}%
     \or% color
-      \bool@set@lock{@tud@foot@colored}{true}%
+      \tud@locked@bool@set{@tud@foot@colored}{true}%
     \fi%
   \else%
-    \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}%
+    \tud@lowerstring\tud@res@a{#1}%
+    \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}%
   \fi%
 }
 \newcommand*\tud@ps@store[1]{%
@@ -506,9 +658,9 @@
   \tud@ps@@store{#1}{even}{middle}{foot}%
 }
 \newcommand*\tud@ps@@store[4]{%
-  \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{%
+  \ifcsundef{@@tud@ps@#1@#2@#3@#4}{%
     \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}%
-  }%
+  }{}%
 }
 \newcommand*\tud@ps@restore[1]{%
   \tud@ps@@restore{#1}{odd}{left}{head}%
@@ -550,9 +702,9 @@
   \TUD@bool@numkey,%
   {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},%
   {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},%
-  {gray}{4},{grey}{4},{HKS92}{4},{cdgray}{4},{cdgrey}{4},%
+  {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},%
   {black}{5},{cdblack}{5},%
-  {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},%
+  {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},%
   {white}{7},{cdwhite}{7}%
 }
 \newif\if@tud@headlogo@option@set
@@ -606,8 +758,8 @@
   \tud@comp@resetpagestyle%
 }
 %%% From File: tudscr-layout.dtx
-\newcommand*\tud@layout@switch{}
-\edef\tud@layout@switch{%
+\newcommand*\tud@cd@switch{}
+\edef\tud@cd@switch{%
   \TUD@bool@numkey,%
   {nocolor}{1},{nocolour}{1},{monochrome}{1},{monochromatic}{1},%
   {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},%
@@ -619,110 +771,47 @@
   {color}{5},{colour}{5},%
   {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}%
 }
-\cs@lock{tud@layout@title@num}{0}
-\cs@lock{tud@layout@part@num}{0}
-\cs@lock{tud@layout@section@num}{0}
 \newcommand*\tud@cd@num{0}
 \TUD@key{cd}[true]{%
-  \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}%
+  \TUD@set@numkey{cd}{tud@cd@num}{\tud@cd@switch}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\tud@cd@num\relax% false
-      \cs@std@lock{tud@layout@title@num}{0}%
-      \cs@std@lock{tud@layout@part@num}{0}%
-      \cs@std@lock{tud@layout@section@num}{0}%
-    \or% true
-      \cs@std@lock{tud@layout@title@num}{1}%
-      \cs@std@lock{tud@layout@part@num}{1}%
-      \cs@std@lock{tud@layout@section@num}{1}%
-    \or% litecolor
-      \cs@std@lock{tud@layout@title@num}{2}%
-      \cs@std@lock{tud@layout@part@num}{2}%
-      \cs@std@lock{tud@layout@section@num}{2}%
-    \or% barcolor
-      \cs@std@lock{tud@layout@title@num}{3}%
-      \cs@std@lock{tud@layout@part@num}{3}%
-      \cs@std@lock{tud@layout@section@num}{2}%
-    \or% bicolor
-      \cs@std@lock{tud@layout@title@num}{4}%
-      \cs@std@lock{tud@layout@part@num}{4}%
-      \cs@std@lock{tud@layout@section@num}{2}%
-    \or% color
-      \cs@std@lock{tud@layout@title@num}{5}%
-      \cs@std@lock{tud@layout@part@num}{5}%
-      \cs@std@lock{tud@layout@section@num}{2}%
-    \or% full
-      \cs@std@lock{tud@layout@title@num}{6}%
-      \cs@std@lock{tud@layout@part@num}{6}%
-      \cs@std@lock{tud@layout@section@num}{2}%
-    \fi%
-    \TUD@SpecialOptionAtDocument{tud@layout@process}%
+    \TUD@key@preset{cdtitle}{#1}%
+    \TUD@key@preset{cdpart}{#1}%
+    \TUD@key@preset{cdsection}{#1}%
+    \TUD@SpecialOptionAtDocument{tud@cd@process}%
     \if@atdocument\else%
       \ifcase\tud@cd@num\relax% false
-        \cs@std@lock{tud@cdgeometry@num}{0}%
+        \tud@locked@num@preset{tud@cdgeometry@num}{0}%
       \else% !false
-        \cs@std@lock{tud@cdgeometry@num}{2}%
+        \tud@locked@num@preset{tud@cdgeometry@num}{2}%
       \fi%
     \fi%
   \fi%
 }
+\newcommand*\tud@cd@title@num{0}
 \TUD@key{cdtitle}[true]{%
-  \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}%
+  \TUD@set@numkey{cdtitle}{tud@cd@title@num}{\tud@cd@switch}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax% false
-      \cs@set@lock{tud@layout@title@num}{0}%
-    \or% true
-      \cs@set@lock{tud@layout@title@num}{1}%
-    \or% litecolor
-      \cs@set@lock{tud@layout@title@num}{2}%
-    \or% barcolor
-      \cs@set@lock{tud@layout@title@num}{3}%
-    \or% bicolor
-      \cs@set@lock{tud@layout@title@num}{4}%
-    \or% color
-      \cs@set@lock{tud@layout@title@num}{5}%
-    \or% full
-      \cs@set@lock{tud@layout@title@num}{6}%
-    \fi%
-    \TUD@SpecialOptionAtDocument{tud@layout@process}%
+    \TUD@SpecialOptionAtDocument{tud@cd@process}%
   \fi%
 }
+\newcommand*\tud@cd@part@num{0}
 \TUD@key{cdpart}[true]{%
-  \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}%
+  \TUD@set@numkey{cdpart}{tud@cd@part@num}{\tud@cd@switch}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax% false
-      \cs@set@lock{tud@layout@part@num}{0}%
-    \or% true
-      \cs@set@lock{tud@layout@part@num}{1}%
-    \or% litecolor
-      \cs@set@lock{tud@layout@part@num}{2}%
-    \or% barcolor
-      \cs@set@lock{tud@layout@part@num}{3}%
-    \or% bicolor
-      \cs@set@lock{tud@layout@part@num}{4}%
-    \or% color
-      \cs@set@lock{tud@layout@part@num}{5}%
-    \or% full
-      \cs@set@lock{tud@layout@part@num}{6}%
-    \fi%
-    \TUD@SpecialOptionAtDocument{tud@layout@process}%
+    \TUD@SpecialOptionAtDocument{tud@cd@process}%
   \fi%
 }
+\newcommand*\tud@cd@section@num{0}
 \TUD@key{cdsection}[true]{%
-  \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}%
+  \TUD@set@numkey{cdsection}{tud@cd@section@num}{\tud@cd@switch}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax% false
-      \cs@set@lock{tud@layout@section@num}{0}%
-    \or% true
-      \cs@set@lock{tud@layout@section@num}{1}%
-    \else% *color
-      \cs@set@lock{tud@layout@section@num}{2}%
-    \fi%
-    \TUD@SpecialOptionAtDocument{tud@layout@process}%
+    \TUD@SpecialOptionAtDocument{tud@cd@process}%
   \fi%
 }
 \newcommand*\tud@pagecolor{}%
-\TUD@key{backgroundcolor}[true]{%
-  \TUD@set@numkey{backgroundcolor}{@tempa}{%
+\TUD@key{backcolor}[true]{%
+  \TUD@set@numkey{backcolor}{@tempa}{%
     \TUD@bool@numkey,%
     {nocolor}{0},{nocolour}{0},{none}{0},%
     {color}{1},{colour}{1},{cdcolor}{1},{cdcolour}{1}%
@@ -742,6 +831,8 @@
     \normalcolor%
   \fi%
 }
+\TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}}
+\TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}}
 \AfterPackage{xcolor}{%
   \CheckCommand*\normalcolor{\let\current@color\default@color\set@color}%
   \apptocmd{\normalcolor}{%
@@ -752,19 +843,28 @@
     \normalcolor%
   }%
 }
+\newif\if@tud@heavyheadings
+\TUD@key{headings}{%
+  \TUD@set@numkey{headings}{@tempa}{%
+    {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},%
+    {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},%
+    {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},%
+    {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},%
+    {extendedbold}{1},{boldextended}{1}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ifcase\@tempa\relax% light
+      \@tud@heavyheadingsfalse%
+    \or% heavy
+      \@tud@heavyheadingstrue%
+    \fi%
+  \fi%
+}
 \DefineFamilyMember{KOMA}
 \DefineFamilyKey{KOMA}{headings}{%
   \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
   \FamilyKeyStateProcessed%
 }
-\DefineFamilyKey{KOMA}{open}{%
-  \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
-  \FamilyKeyStateProcessed%
-}
-\DefineFamilyKey{KOMA}{chapterprefix}{%
-  \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
-  \FamilyKeyStateProcessed%
-}
 %%% From File: tudscr-title.dtx
 \DefineFamilyMember{KOMA}
 \DefineFamilyKey{KOMA}{titlepage}[true]{%
@@ -810,18 +910,99 @@
 \DefineFamilyKey{KOMA}{abstract}[true]{%
   \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}%
 }
+%%% From File: tudscr-misc.dtx
+\newif\if@tud@bookmarks
+\TUD@key{tudbookmarks}[true]{%
+  \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}%
+}
+\newcommand*\tud@x@scr@checkoptions{%
+  \expandafter\tud@x@scr@pt\CurrentOption pt\@nil%
+  \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}%
+}
+\newcommand*\tud@x@scr@pt{}
+\def\tud@x@scr@pt #1pt#2\@nil{%
+  \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}%
+}
+\newcommand*\tud@atdocument@hook{}
+\let\tud@atdocument@hook\relax
+\newcommand*\TUD@SpecialOptionAtDocument[1]{}
+\AfterEndPreamble{%
+  \renewcommand*\TUD@SpecialOptionAtDocument[1]{%
+    \ifx\tud@atdocument@hook\relax%
+      \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}%
+      \AtEndOfFamilyOptions*{%
+        \tud@atdocument@hook%
+        \tud@atdocument@process%
+      }%
+    \fi%
+    \gappto\tud@atdocument@hook{\global\booltrue{@#1}}%
+  }%
+}
 %%% From File: tudscr-comp.dtx
 \newcommand*\TUD@deprecated@key[2]{%
   \ClassWarning{\TUD@Class@Name}%
   {%
-    The option key `#1' is deprecated\MessageBreak%
-    It's recommended to use `#2'\MessageBreak%
+    The key `#1' is deprecated. It's\MessageBreak%
+    recommended to use `#2'\MessageBreak%
     instead%
   }%
   \TUDoptions{#2}%
 }
+\newcommand*\TUD@deprecated@cs[2]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \endgroup%
+      \noexpand\AfterEndPreamble{%
+        \noexpand\TUD@deprecated@@cs{#1}{#2}%
+      }%
+    }%
+  \tud@res@a%
+}
+\newcommand*\TUD@deprecated@@cs[2]{%
+  \ifcsundef{#1}{%
+    \begingroup%
+      \def\tud@res@a{%
+        The command `\@backslashchar#1' is deprecated.\MessageBreak%
+      }%
+      \def\tud@res@b##1@##2\@nil{%
+        \IfArgIsEmpty{##2}{%
+          \appto\tud@res@a{%
+            You should use `\@backslashchar#2' instead%
+          }%
+        }{%
+          \appto\tud@res@a{%
+            You should not use this command. It is substituted\MessageBreak%
+            with `\@backslashchar#2' internally%
+          }%
+        }%
+      }%
+      \tud@res@b#2@\@nil%
+      \edef\tud@res@c{%
+        \endgroup%
+        \noexpand\newrobustcmd\csname #1\endcsname{%
+          \noexpand\ClassWarning{\noexpand\TUD@Class@Name}%
+          {\tud@res@a}%
+          \noexpand\csletcs{#1}{#2}%
+          \noexpand\csuse{#2}%
+        }%
+      }%
+    \tud@res@c%
+  }{}%
+}
+\newcommand*\TUD@deprecated@lengthcs[2][]{%
+  \ifdim\csuse{#2}<\maxdimen\relax%
+    \ClassWarning{\TUD@Class@Name}{%
+      Using the length `\@backslashchar#2' is deprecated.\MessageBreak%
+      You should use option `#2' instead%
+    }%
+    \csxdef{tud@dim@#2}{\the\csuse{#2}}%
+    \expandafter\setlength\csname #2\endcsname{\maxdimen}%
+    \global\csuse{#2}=\csuse{#2}%
+    #1%
+  \fi%
+}
 \newcommand*\tud@v@comp{\tud@v@last}
-\TUD@key{tudscrver}[last]{%
+\TUD@key[.comp]{tudscrver}[last]{%
   \tud@v@get\@tempa{#1}%
   \ifcsundef{tud@v@\@tempa}{%
     \ClassWarningNoLine{\TUD@Class@Name}%
@@ -830,23 +1011,25 @@
       this value is not supported. Because of this, the\MessageBreak%
       value for `tudscrver' was set to `first'%
     }%
-    \def\tud@v@comp{0}%
+    \renewcommand*\tud@v@comp{0}%
   }{%
     \ClassInfoNoLine{\TUD@Class@Name}%
     {%
-      Switching compatibility level to `\@tempa'%
+      Switching compatibility level to `v\@tempa'%
     }%
     \edef\tud@v@comp{\csuse{tud@v@\@tempa}}%
   }%
   \FamilyKeyStateProcessed%
 }
+\TUD@key{tudscrver}{\FamilyKeyStateProcessed}%
 \AtEndOfClass%
 {%
+  \RelaxFamilyKey[.comp]{TUD}{tudscrver}%
   \TUD@key{tudscrver}[]{%
     \ClassError{\TUD@Class@Name}%
     {Option `tudscrver' too late}{%
       Option `tudscrver' can only be set while loading the\MessageBreak%
-      class `\TUD@Class@Name'
+      class `\TUD@Class@Name'\space%
       but you have tried to set it up later.%
     }%
     \FamilyKeyStateProcessed%
@@ -865,7 +1048,7 @@
       KOMA-Script v\TUD@Version@KOMA is required%
     }{%
       \TUD@Version\space must at least be used with\MessageBreak%
-      KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion is used.%
+      KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion was found.%
     }%
   }%
 }
@@ -875,7 +1058,6 @@
 \csdef{tud@v@2.01a}{0}
 \csdef{tud@v@2.01b}{0}
 \csdef{tud@v@2.02}{0}
-\csdef{tud@v@2.02}{0}
 \csdef{tud@v@2.03}{1}
 \csdef{tud@v@2.03a}{1}
 \csdef{tud@v@2.04}{2}
@@ -897,7 +1079,8 @@
 \csdef{tud@v@2.05k}{3}
 \csdef{tud@v@2.05l}{3}
 \csdef{tud@v@2.05m}{3}
-\csdef{tud@v@last}{3}
+\csdef{tud@v@2.06}{4}
+\csdef{tud@v@last}{4}
 \newcommand*\tud@v@get[2]{%
   \begingroup%
     \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}%
@@ -930,48 +1113,16 @@
     }%
   \tud@reserved%
 }
-\TUD@key{fontspec}[true]{%
-  \ClassWarningNoLine{\TUD@Class@Name}%
-  {%
-    The option key `fontspec' is deprecated\MessageBreak%
-    You should load the package `fontspec' manually%
-  }%
-  \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}%
-}
-\AtEndOfClass%
-{%
-  \TUD@key{fontspec}[]%
-  {%
-    \ClassError{\TUD@Class@Name}%
-      {Option `fontspec' too late}{%
-      Option `fontspec' can only be set while loading the\MessageBreak%
-      class `\TUD@Class@Name'
-      but you have tried to set it up later.%
-    }%
-    \FamilyKeyStateProcessed%
-  }%
-  \if@tud@x@fontspec@enabled%
-    \RequirePackage{fontspec}[2017/01/24]%
-  \fi%
-}
 \TUD@key{cdfonts}[true]{%
   \TUD@set@ifkey{cdfonts}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \if@tempswa%
-      \TUD@deprecated@key{cdfonts=#1}{cdfont=true}%
-    \else%
-      \TUD@deprecated@key{cdfonts=#1}{cdfont=false}%
-    \fi%
+    \TUD@deprecated@key{cdfonts=#1}{cdfont=#1}%
   \fi%
 }
 \TUD@key{tudfonts}[true]{%
   \TUD@set@ifkey{tudfonts}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \if@tempswa%
-      \TUD@deprecated@key{tudfonts=#1}{cdfont=true}%
-    \else%
-      \TUD@deprecated@key{tudfonts=#1}{cdfont=false}%
-    \fi%
+    \TUD@deprecated@key{tudfonts=#1}{cdfont=#1}%
   \fi%
 }
 \TUD@key{heavyfont}[true]{%
@@ -984,53 +1135,53 @@
     \fi%
   \fi%
 }
-\TUD@key{din}[true]{%
-  \TUD@set@ifkey{din}{@tempswa}{#1}%
+\TUD@key{sansmath}[true]{%
+  \TUD@set@ifkey{sansmath}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \if@tempswa%
-      \TUD@deprecated@key{din}{cdfont=din}%
+      \TUD@deprecated@key{sansmath}{cdmath=true}%
     \else%
-      \TUD@deprecated@key{din=#1}{cdfont=nodin}%
+      \TUD@deprecated@key{sansmath=#1}{cdmath=false}%
     \fi%
   \fi%
 }
-\TUD@key{nodin}[true]{%
-  \TUD@set@ifkey{nodin}{@tempswa}{#1}%
+\TUD@key{serifmath}[true]{%
+  \TUD@set@ifkey{serifmath}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \if@tempswa%
-      \TUD@deprecated@key{nodin}{cdfont=nodin}%
+      \TUD@deprecated@key{serifmath}{cdmath=false}%
     \else%
-      \TUD@deprecated@key{nodin=#1}{cdfont=din}%
+      \TUD@deprecated@key{serifmath=#1}{cdmath=true}%
     \fi%
   \fi%
 }
-\TUD@key{noDIN}[true]{%
-  \TUD@set@ifkey{noDIN}{@tempswa}{#1}%
+\TUD@key{din}[true]{%
+  \TUD@set@ifkey{din}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \if@tempswa%
-      \TUD@deprecated@key{noDIN}{cdfont=nodin}%
+      \TUD@deprecated@key{din}{cdoldfont=din}%
     \else%
-      \TUD@deprecated@key{noDIN=#1}{cdfont=din}%
+      \TUD@deprecated@key{din=#1}{cdoldfont=nodin}%
     \fi%
   \fi%
 }
-\TUD@key{sansmath}[true]{%
-  \TUD@set@ifkey{sansmath}{@tempswa}{#1}%
+\TUD@key{nodin}[true]{%
+  \TUD@set@ifkey{nodin}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \if@tempswa%
-      \TUD@deprecated@key{sansmath}{cdmath=true}%
+      \TUD@deprecated@key{nodin}{cdoldfont=nodin}%
     \else%
-      \TUD@deprecated@key{sansmath=#1}{cdmath=false}%
+      \TUD@deprecated@key{nodin=#1}{cdoldfont=din}%
     \fi%
   \fi%
 }
-\TUD@key{serifmath}[true]{%
-  \TUD@set@ifkey{serifmath}{@tempswa}{#1}%
+\TUD@key{noDIN}[true]{%
+  \TUD@set@ifkey{noDIN}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \if@tempswa%
-      \TUD@deprecated@key{serifmath}{cdmath=false}%
+      \TUD@deprecated@key{noDIN}{cdoldfont=nodin}%
     \else%
-      \TUD@deprecated@key{serifmath=#1}{cdmath=true}%
+      \TUD@deprecated@key{noDIN=#1}{cdoldfont=din}%
     \fi%
   \fi%
 }
@@ -1101,116 +1252,69 @@
   \fi%
 }
 \TUD@key{colour}[true]{\TUDoptions{color=#1}}
-%%% From File: tudscr-misc.dtx
-\newif\if@tud@x@scr@paper@set
-\TUD@key{paper}{%
-  \tud@lowerstring{\@tempa}{#1}%
-  \def\@tempb##1##2\@nil{%
-    \@tempswafalse%
-    \if ##1a\@tempswatrue%
-      \else\if ##1b\@tempswatrue%
-        \else\if ##1c\@tempswatrue%
-          \else\if ##1d\@tempswatrue%
-    \fi\fi\fi\fi%
-    \if@tempswa%
-      \ifnumber{##2}{}{\@tempswafalse}%
-    \fi%
-  }%
-  \expandafter\@tempb\@tempa\@nil%
-  \if@tempswa\else%
-    \def\@tempb##1:##2:##3\@nil{%
-      \edef\@tempc{##1}%
-      \ifx\@tempc\@empty\@tempswafalse\else%
-        \edef\@tempc{##2}%
-        \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi%
-      \fi%
+\newif\if@tud@x@fontspec@requested
+\TUD@key{fontspec}[true]{%
+  \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \ClassWarningNoLine{\TUD@Class@Name}%
+    {%
+      The key `fontspec' is deprecated.\MessageBreak%
+      You should load the package `fontspec' manually%
     }%
-    \expandafter\@tempb\@tempa::\@nil%
-  \fi%
-  \@tud@x@scr@paper@setfalse%
-  \if@tempswa%
-    \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}%
-    \FamilyKeyStateProcessed%
-  \else%
-    \FamilyKeyStateUnknownValue%
   \fi%
 }
-\newif\if@tud@fontsize@set
-\TUD@key{fontsize}{%
-  \@tud@fontsize@settrue%
-  \PassOptionsToClass{fontsize=#1}{\TUD@Class@KOMA}%
-  \FamilyKeyStateProcessed%
-}
-\AtEndOfClass{%
-  \RelaxFamilyKey{TUD}{paper}%
-  \RelaxFamilyKey{TUD}{fontsize}%
-  \ifboolexpr{bool {@tud@x@scr@paper@set} or bool {@landscape}}{%
-    \if@tud@fontsize@set\else%
-      \ClassWarningNoLine{\TUD@Class@Name}{%
-        You've set a paper size, which is different from\MessageBreak%
-        default (paper=a4, paper=portrait). Therefore you\MessageBreak%
-        should additionally specify an explicit font size.\MessageBreak%
-        See the manual for further information%
-      }%
-    \fi%
-  }{}%
-}
-\newif\if@tud@bookmarks
-\TUD@ifkey{tudbookmarks}{@tud@bookmarks}
-\newif\if@tud@symbolheadings
-\TUD@key{footnotes}{%
-  \TUD@set@numkey{footnotes}{@tempa}{%
-    {nosymbolheadings}{0},{numberheadings}{0},%
-    {symbolheadings}{1}%
-  }{#1}%
-  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax% nosymbolheadings
-      \@tud@symbolheadingsfalse%
-    \or% symbolheadings
-      \@tud@symbolheadingstrue%
-    \fi%
+\AtEndOfClass%
+{%
+  \TUD@key{fontspec}[]%
+  {%
+    \ClassError{\TUD@Class@Name}%
+      {Option `fontspec' too late}{%
+      Option `fontspec' can only be set while loading the\MessageBreak%
+      class `\TUD@Class@Name'\space%
+      but you have tried to set it up later.%
+    }%
+    \FamilyKeyStateProcessed%
+  }%
+  \if@tud@x@fontspec@requested%
+    \RequirePackage{fontspec}[2017/01/24]%
   \fi%
 }
-\AtEndOfClass{%
-  \newcounter{symbolheadings}
-}
 %%% From File: tudscr-misc.dtx
-\newcommand*\TUD@SpecialOptionAtDocument[1]{}
-\newcommand*\tud@x@scr@paper{%
-  \expandafter\tud@x@scr@@paper\CurrentOption paper\tud@x@scr@@paper%
-}
-\newcommand*\tud@x@scr@@paper{}
-\def\tud@x@scr@@paper #1#2paper#3\tud@x@scr@@paper{%
-  \@tempswafalse%
-  \ifstr{#3}{paper}{\ifnumber{#2}{%
-    \ifstr{#1}{a}{\@tempswatrue}{%
-    \ifstr{#1}{b}{\@tempswatrue}{%
-    \ifstr{#1}{c}{\@tempswatrue}{%
-    \ifstr{#1}{d}{\@tempswatrue}{%
-    }}}}%
-  }{}}{}%
-  \if@tempswa\TUDExecuteOptions{#3=#1#2}\fi%
-  \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}%
-}
-\DeclareOption*{\tud@x@scr@paper}
+\DeclareOption*{}
+\FamilyProcessOptions[.comp]{TUD}\relax
+\tud@if@v@lower{2.05}{%
+  \TUD@key@preset{relspacing}{false}%
+}{%
+  \TUD@key@preset{relspacing}{true}%
+}
+\tud@if@v@lower{2.06}{%
+  \TUD@key@preset{cdoldfont}{ultrabold}%
+  \TUD@key@preset{ttfont}{lmodern}%
+  \TUD@key@preset{headings}{light}%
+}{%
+  \TUD@key@preset{cdfont}{ultrabold}%
+  \TUD@key@preset{ttfont}{roboto}%
+  \TUD@key@preset{headings}{heavy}%
+}
+\DeclareOption*{\tud@x@scr@checkoptions}
 \TUDExecuteOptions{%
-  cd=bicolor,relspacing=true,tudbookmarks=false,cdfont=ultrabold%
+  cd=bicolor,tudbookmarks=false%
 }
 \TUDProcessOptions\relax
-\LoadClass{\TUD@Class@KOMA}[2015/04/23]
+\LoadClass{\TUD@Class@KOMA}[2018/03/30]
 %%% From File: tudscr-base.dtx
 \RequirePackage{environ}[2013/04/01]
-\cs@lock{tud@x@multicol@num}{1}
+\newcommand*\tud@x@multicol@num{1}
 \newcommand*\tud@x@multicol@check{%
   \ifnum\tud@x@multicol@num>\@ne\relax%
     \ClassWarning{\TUD@Class@Name}{%
       The option `columns=\tud@x@multicol@num' is only\MessageBreak%
       supported, when package `multicol' is loaded%
     }%
-    \cs@set@lock{tud@x@multicol@num}{1}%
+    \renewcommand*\tud@x@multicol@num{1}%
   \fi%
 }
-\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}}
+\AfterPackage{multicol}{\let\tud@x@multicol@check\relax}
 \AtEndPreamble{%
   \@ifpackageloaded{graphicx}{}{%
     \@ifpackageloaded{graphics}{%
@@ -1224,109 +1328,238 @@
   \RequirePackage{tudscrcolor}[\TUD@Version]%
 }
 %%% From File: tudscr-fonts.dtx
-\newcommand*\tud@univers{lun}
-\newif\if@tud@univers
-\newif\if@tud@universmath
-\newcommand*\tud@dinbold{0m6}
-\newif\if@tud@dinbold
-\newif\if@tud@dinboldmath
-\newcommand*\tud@font@check{%
-  \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}%
-  \def\@tempb##1{%
-    \if@tud@cdmath%
-      \tud@font@math@missing@wrn{##1}%
+\newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax}
+\newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax}
+\newif\if@tud@x@fontspec@enabled
+\PassOptionsToPackage{no-math}{fontspec}
+\AfterPackage*{fontspec}{%
+  \@ifpackagelater{fontspec}{2017/01/24}{%
+    \@tud@x@fontspec@enabledtrue%
+    \@tud@res@swafalse%
+    \@ifpackagewith{fontspec}{no-math}{}{\@tud@res@swatrue}%
+    \@ifpackagewith{fontspec}{math}{\@tud@res@swatrue}{}%
+    \if@tud@res@swa%
+      \appto\tud@cdmath@wrn{%
+        \ClassWarningNoLine{\TUD@Class@Name}%
+        {%
+          It's recommended to load package `fontspec'\MessageBreak%
+          with option `no-math', if you want to use the\MessageBreak%
+          corporate design fonts in math mode%
+        }%
+      }%
     \fi%
+  }{%
+    \@tud@x@fontspec@enabledfalse%
+    \ClassWarningNoLine{\TUD@Class@Name}%
+    {%
+      Version `2017/01/24' of package `fontspec' is needed,\MessageBreak%
+      but only version\MessageBreak%
+      `\csname ver@fontspec.sty\endcsname'\MessageBreak%
+      is available, so a fallback layout is used%
+    }%
   }%
-  \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}%
-  \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN-Bold}}%
-  \if@tud@cdmath%
-    \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{%
-      \bool@set@lock{@tud@cdmath}{false}%
+}
+\AfterPackage*{unicode-math}{%
+  \appto\tud@cdmath@wrn{%
+    \ClassWarningNoLine{\TUD@Class@Name}%
+    {%
+      The usage of package `unicode-math' will\MessageBreak%
+      most likely cause erroneous outputs in math mode\MessageBreak%
+      with corporate design fonts%
     }%
+  }%
+}
+\TUD@RecommendPackage{mweights}[2017/03/30]%
+\newif\if@tud@x@mweights@enabled
+\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
+\newif\if@tud@cdfont@fam@exist
+\newif\if@tud@cdfont@db@exist
+\newcommand*\tud@cdfont@fam{opensans-TLF}
+\newcommand*\tud@cdfont@fam@lf{opensans-TLF}
+\newcommand*\tud@cdfont@fam@osf{opensans-TOsF}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@cdfont@fam{lun}
+  \renewcommand*\tud@cdfont@fam@lf{lun}
+  \renewcommand*\tud@cdfont@fam@osf{lun}
+  \newcommand*\tud@cdfont@db{0m6}
+\fi
+\newcommand*\tud@ttfont@fam{tudtt}
+\newcommand*\tud@ttfont@rb{tudtt}
+\newcommand*\tud@ttfont@lm{lmtt}
+\newif\if@tud@ttfont@rb@exist
+\IfFileExists{roboto-mono.sty}{%
+  \@tud@ttfont@rb@existtrue%
+}{%
+  \TUD@key@preset{ttfont}{lmodern}%
+}
+\newcommand*\tud@cdfont@check{%
+  \if@tud@cdoldfont@active%
+    \tud@cdfont@@check{Univers}{%
+      Light,,Bold,Black,%
+      LightOblique,Oblique,BoldOblique,BlackOblique%
+    }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}%
+    \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}%
+    \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}%
+    \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}%
+  \else%
+    \@ifpackageloaded{opensans}{%
+      \ClassWarningNoLine{\TUD@Class@Name}%
+      {%
+        You should not load package `opensans'\MessageBreak%
+        manually but just use option `cdfont=true'%
+      }%
+    }{}%
+    \if@tud@cdfont@active%
+      \TUD@CheckPackage{opensans}{2019/06/20}%
+      \TUD@CheckPackage{iwona}{2005/10/03}%
+    \fi%
+    \tud@cdfont@@check{OpenSans}{%
+      Light,Regular,SemiBold,Bold,ExtraBold,%
+      LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic%
+    }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}%
   \fi%
+}
+\newcommand*\tud@cdfont@@check[5][-]{%
+  \@tud@res@swatrue%
+  \def\tud@res@a##1{%
+    \@tud@res@swafalse%
+    \tud@cdfont@missing{##1}{\tud@cdfont@wrn}%
+  }%
   \if@tud@x@fontspec@enabled%
-    \def\@tempc##1##2{%
-      \IfFontExistsTF{##1}{}{%
-        ##2%
-        \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-          \tud@font@missing@wrn{##1}%
+    \def\tud@res@b##1{\IfFontExistsTF{##1}{}{\tud@res@a{##1}}}%
+    \@for\tud@res@c:={#3}\do{%
+      \expandafter\IfArgIsEmpty\expandafter{\tud@res@c}%
+        {\tud@res@b{#2}}%
+        {\tud@res@b{#2#1\tud@res@c}}%
+    }%
+  \else%
+    \def\tud@res@b##1##2{%
+      \begingroup%
+        \@tud@res@swatrue%
+        \tud@lowerstring\tud@res@b{##1##2.fd}%
+        \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}%
+        \if@tud@res@swa%
+          \tud@lowerstring\tud@res@b{##1}%
+          \edef\tud@res@b{\tud@res@b##2.fd}%
+          \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}%
         \fi%
-      }%
+        \if@tud@res@swa%
+          \edef\tud@res@b{##1##2.fd}%
+          \IfFileExists{\tud@res@b}{\@tud@res@swafalse}{}%
+        \fi%
+        \edef\tud@res@a{%
+          \endgroup%
+          \if@tud@res@swa%
+            \noexpand\tud@res@a{\tud@res@b}%
+          \fi%
+        }%
+      \tud@res@a%
     }%
-    \@tud@universtrue%
-    \@tempc{Univers Light}{\@tud@universfalse}%
-    \@tempc{Univers}{\@tud@universfalse}%
-    \@tempc{Univers Bold}{\@tud@universfalse}%
-    \@tempc{Univers Black}{\@tud@universfalse}%
-    \@tempc{Univers LightOblique}{\@tud@universfalse}%
-    \@tempc{Univers Oblique}{\@tud@universfalse}%
-    \@tempc{Univers BoldOblique}{\@tud@universfalse}%
-    \@tempc{Univers BlackOblique}{\@tud@universfalse}%
-    \@tud@dinboldtrue%
-    \@tempc{DIN-Bold}{\@tud@dinboldfalse}%
+    \@for\tud@res@c:={#4}\do{\tud@res@b{\encodingdefault}{\tud@res@c}}%
+  \fi%
+  \if@tud@res@swa%
+    \booltrue{#5}%
   \else%
-    \def\@tempc##1{%
-      \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-        \tud@font@missing@wrn{##1}%
+    \boolfalse{#5}%
+  \fi%
+}
+\newcommand*\tud@cdfont@@@check[2]{%
+  \@tud@res@swatrue%
+  \def\tud@res@a##1##2{%
+    \@tud@res@swafalse%
+    \tud@cdfont@missing[##1]{##2}{\tud@cdmath@wrn}%
+  }%
+  \def\tud@res@b##1##2{%
+    \begingroup%
+      \tud@lowerstring\tud@res@b{##1##2.fd}%
+      \edef\tud@res@a{%
+        \endgroup%
+        \noexpand\IfFileExists{\tud@res@b}{}{%
+          \noexpand\tud@res@a{##1}{\tud@res@b}%
+        }%
+      }%
+    \tud@res@a%
+  }%
+  \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}%
+  \if@tud@res@swa\else%
+    \AtBeginDocument{%
+      \if@tud@cdmath@active%
+        \ClassWarning{\TUD@Class@Name}%
+        {%
+          Some math font encodings are missing.\MessageBreak%
+          The option `cdmath=false' is executed. You should\MessageBreak%
+          either use this option by yourself or install\MessageBreak%
+          all necessary fonts with a installation script\MessageBreak%
+          listed in the manual
+        }%
       \fi%
+      \TUDoptions{cdmath=false}%
     }%
-    \expandafter\@tempa\expandafter{\encodingdefault}%
-      {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}%
-    \expandafter\@tempa\expandafter{\encodingdefault}%
-      {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN-Bold}}%
   \fi%
-  \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{%
-    \renewcommand*\tud@cdfont@num{0}%
-    \bool@std@lock{@tud@cdmath}{false}%
-  }%
-  \undef\tud@font@check%
 }
-\newcommand*\tud@font@missing@wrn[1]{%
+\newcommand*\tud@cdfont@missing[3][\encodingdefault]{%
   \begingroup%
-    \def\@tempa{%
-      `#1' font not found for `\encodingdefault' encoding.\MessageBreak%
+    \def\tud@res@a{%
+      `#2' font\MessageBreak%
+      not found for `#1' encoding.\MessageBreak%
     }%
     \if@tud@x@fontspec@enabled%
-      \appto\@tempa{%
-        It seems, you haven't installed the required\MessageBreak%
-        OTF-font on your system%
-      }%
-    \else%
-      \ifstr{TU}{\encodingdefault}{%
-        \appto\@tempa{%
-          You should load package `fontspec'\MessageBreak%
-          or %
+      \ifstr{\encodingdefault}{#1}{%
+        \appto\tud@res@a{%
+          It seems, you haven't installed the required\MessageBreak%
+          OTF-font on your system. You should provide\MessageBreak%
+          the fonts manually to your OS\MessageBreak%
+          \if@tud@cdoldfont@active\else%
+            or install package `opensans'\MessageBreak%
+          \fi%
         }%
-      }{%
-         \appto\@tempa{Please }%
+      }{}%
+    \else%
+      \if@tud@cdoldfont@active%
+        \def\tud@res@b{T1,OT1,OMS,OML}%
+      \else%
+        \def\tud@res@b{T1,OT1,T2A,T2B,T2C,X2,LGR}%
+      \fi%
+      \@tud@res@swafalse%
+      \@for\tud@res@c:=\tud@res@b\do{%
+        \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}%
       }%
-      \@tempswafalse%
-      \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}%
-      \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}%
-      \if@tempswa%
-        \appto\@tempa{%
-          use one of the installation scripts listed\MessageBreak%
-          in the TUD-Script manual%
+      \if@tud@res@swa%
+        \appto\tud@res@a{%
+          You should %
+          \if@tud@cdoldfont@active%
+            try to install the necessary fonts\MessageBreak%
+            with a installation script listed in the manual%
+          \else%
+            install package `opensans'%
+          \fi%
+          .\MessageBreak%
         }%
       \else%
-        \appto\@tempa{%
-          choose a possible encoding with\MessageBreak%
-          package `fontenc' (`OT1' or `T1')%
-        }%
+        \ifstr{\encodingdefault}{#1}{%
+          \ifstr{TU}{#1}{%
+            \appto\tud@res@a{%
+              You should either load package `fontspec'\MessageBreak%
+              or %
+            }%
+          }{%
+            \appto\tud@res@a{Please }%
+          }%
+          \appto\tud@res@a{%
+            choose a possible encoding with package\MessageBreak%
+            `fontenc' (\tud@res@b).\MessageBreak%
+          }%
+        }{}%
       \fi%
     \fi%
-    \appto\@tempa{.\MessageBreak A fallback layout is used}%
-    \ClassWarning{\TUD@Class@Name}{\@tempa}%
+    \appto\tud@res@a{A fallback layout is used}%
+    \edef\tud@res@c{%
+      \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}%
+        {\tud@res@a}
+    }%
+    \xappto#3{\expandonce\tud@res@c}%
   \endgroup%
 }
-\newcommand*\tud@font@math@missing@wrn[1]{%
-  \ClassWarning{\TUD@Class@Name}%
-  {%
-    `#1' fonts for math typesetting not found.\MessageBreak%
-    Please use one of the installation scripts listed\MessageBreak%
-    in the TUD-Script manual%
-  }%
-}
 \begingroup
 \catcode`\^=7
 \catcode30=12
@@ -1343,9 +1576,9 @@
 \newcommand*\tud@raggedright{\raggedright}
 \newcommand*\tud@RaggedRight{\raggedright}
 \AfterPackage*{ragged2e}{%
-  \ifdef{\LaTeXraggedright}{%
+  \ifundef{\LaTeXraggedright}{}{%
     \renewcommand*\tud@raggedright{\LaTeXraggedright}%
-  }{}%
+  }%
   \renewcommand*\tud@RaggedRight{\RaggedRight}%
 }
 \newif\if@tud@x@siunitx@enabled
@@ -1355,127 +1588,113 @@
 }
 \newif\if@tud@x@bm@requested
 \PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm}
-\RequirePackage{trimspaces}[2009/09/17]
-\newif\if@tud@x@mweights@enabled
-\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
-\newcommand*\tud@font@set{%
-  \if@atdocument%
-    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-      \if@tud@univers\else%
-        \tud@font@missing@wrn{Univers}%
-      \fi%
-      \if@tud@dinbold\else%
-        \tud@font@missing@wrn{DIN-Bold}%
-      \fi%
-      \ifboolexpr{bool {@tud@univers} and bool {@tud@dinbold}}{}{%
-        \renewcommand*\tud@cdfont@num{0}%
-        \bool@std@lock{@tud@cdmath}{false}%
+\newcommand*\tud@x@fontspec@init[2]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \noexpand\defaultfontfeatures[#1]{%
+        NFSSFamily=#1,%
+        Ligatures=TeX,%
+        BoldFont={},%
+        ItalicFont={},%
+        BoldItalicFont={},%
+        SmallCapsFont={},%
+        #2%
       }%
-    \fi%
-  \fi%
-  \ifcase\tud@cdfont@num\relax% false
-    \tud@cmd@restore{rmdefault}%
-    \tud@cmd@restore{sfdefault}%
-    \tud@cmd@restore{ttdefault}%
-    \tud@cmd@restore{bfdefault}%
-    \tud@cmd@restore{mddefault}%
-    \tud@cmd@restore{itdefault}%
-    \tud@cmd@restore{familydefault}%
-    \tud@cmd@restore{seriesdefault}%
-    \tud@cmd@restore{shapedefault}%
-    \if@tud@x@mweights@enabled%
-      \tud@cmd@restore{bfseries@rm}%
-      \tud@cmd@restore{bfseries@sf}%
-      \tud@cmd@restore{bfseries@tt}%
-      \tud@cmd@restore{mdseries@rm}%
-      \tud@cmd@restore{mdseries@sf}%
-      \tud@cmd@restore{mdseries@tt}%
-    \fi%
-    \ifcase\tud@cd@num\relax% false
-      \cs@std@lock{tud@head@font@num}{0}%
-    \else% !false
-      \cs@std@lock{tud@head@font@num}{1}%
-    \fi%
-  \else% true/heavy
-    \tud@cmd@store{rmdefault}%
-    \tud@cmd@store{sfdefault}%
-    \tud@cmd@store{ttdefault}%
-    \tud@cmd@store{bfdefault}%
-    \tud@cmd@store{mddefault}%
-    \tud@cmd@store{itdefault}%
-    \tud@cmd@store{familydefault}%
-    \tud@cmd@store{seriesdefault}%
-    \tud@cmd@store{shapedefault}%
+    }%
+    \edef\tud@res@b{%
+      \noexpand\newfontfamily%
+        \expandafter\noexpand\csname tud@x@fontspec@fam@#1\endcsname{#1}%
+    }%
+    \edef\tud@res@c{%
+      \endgroup\expandonce\tud@res@a\expandonce\tud@res@b%
+    }%
+  \tud@res@c%
+}
+\newcommand*\tud@x@fontspec@set[2]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname%
+    }%
+    \edef\tud@res@a{%
+      \endgroup%
+      \noexpand\DeclareRobustCommand%
+          \expandafter\noexpand\csname #1family\endcsname{%
+        \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname%
+      }%
+      \def\expandafter\noexpand\csname #1default\endcsname{\tud@cdfont@fam}%
+    }%
+  \tud@res@a%
+}
+\newcommand*\tud@font@set{%
+  \if@tud@cdfont@active%
+    \tud@cs@store{rmdefault}%
+    \tud@cs@store{sfdefault}%
+    \tud@cs@store{ttdefault}%
+    \tud@cs@store{bfdefault}%
+    \tud@cs@store{mddefault}%
+    \tud@cs@store{updefault}%
+    \tud@cs@store{sldefault}%
+    \tud@cs@store{itdefault}%
+    \tud@cs@store{familydefault}%
+    \tud@cs@store{seriesdefault}%
+    \tud@cs@store{shapedefault}%
     \if@tud@x@mweights@enabled%
-      \tud@cmd@store{bfseries@rm}%
-      \tud@cmd@store{bfseries@sf}%
-      \tud@cmd@store{bfseries@tt}%
-      \tud@cmd@store{mdseries@rm}%
-      \tud@cmd@store{mdseries@sf}%
-      \tud@cmd@store{mdseries@tt}%
-    \fi%
-    \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}%
-    \if@tud@univers%
-      \if@tud@x@fontspec@enabled%
-        \setsansfont{Univers}[\tud@x@fontspec@set@univ]%
-        \setmonofont{LMMono10-Regular}[%
-          BoldFont={},%
-          ItalicFont={},%
-          BoldItalicFont={},%
-          SmallCapsFont={},%
-          FontFace={l}{\updefault}{LMMonoLt10-Regular},%
-          FontFace={m}{\updefault}{LMMono10-Regular},%
-          FontFace={b}{\updefault}{LMMonoLt10-Bold},%
-          FontFace={bx}{\updefault}{LMMonoLt10-Bold},%
-          FontFace={eb}{\updefault}{LMMonoLt10-Bold},%
-          FontFace={l}{\sldefault}{LMMonoLt10-Oblique},%
-          FontFace={m}{\sldefault}{LMMonoSlant10-Regular},%
-          FontFace={b}{\sldefault}{LMMonoLt10-BoldOblique},%
-          FontFace={bx}{\sldefault}{LMMonoLt10-BoldOblique},%
-          FontFace={eb}{\sldefault}{LMMonoLt10-BoldOblique},%
-          NFSSFamily=\tud@univers t%
-        ]%
-      \else%
-        \renewcommand*\sfdefault{\tud@univers}%
-        \renewcommand*\ttdefault{\tud@univers t}%
-      \fi%
-      \ifnum\tud@cdfont@num=\@ne\relax% true
-        \if@tud@cdfont@ultrabold% ultrabold
-          \renewcommand*\bfdefault{b}%
-        \else% normalbold
-          \renewcommand*\bfdefault{m}%
-        \fi%
-        \renewcommand*\mddefault{l}%
-        \if@tud@x@mweights@enabled%
-          \def\bfseries@rm{m}%
-          \def\bfseries@sf{m}%
-          \def\bfseries@tt{m}%
-          \def\mdseries@rm{l}%
-          \def\mdseries@sf{l}%
-          \def\mdseries@tt{l}%
-        \fi%
-      \else% heavy
-        \if@tud@cdfont@ultrabold% ultrabold
-          \renewcommand*\bfdefault{eb}%
-        \else% normalbold
-          \renewcommand*\bfdefault{b}%
-        \fi%
-        \renewcommand*\mddefault{m}%
-        \if@tud@x@mweights@enabled%
-          \def\bfseries@rm{b}%
-          \def\bfseries@sf{b}%
-          \def\bfseries@tt{b}%
-          \def\mdseries@rm{m}%
-          \def\mdseries@sf{m}%
-          \def\mdseries@tt{m}%
-        \fi%
-      \fi%
-      \renewcommand*\rmdefault{\sfdefault}%
-      \renewcommand*\itdefault{\sldefault}%
+      \tud@cs@store{bfseries@rm}%
+      \tud@cs@store{mdseries@rm}%
+      \tud@cs@store{bfseries@sf}%
+      \tud@cs@store{mdseries@sf}%
+      \tud@cs@store{bfseries@tt}%
+      \tud@cs@store{mdseries@tt}%
     \fi%
+    \if@tud@x@fontspec@enabled%
+      \tud@cs@store{rmfamily}%
+      \tud@cs@store{sffamily}%
+      \tud@cs@store{ttfamily}%
+    \fi%
+    \renewcommand*\rmdefault{\sfdefault}%
+    \renewcommand*\updefault{n}%
+    \renewcommand*\itdefault{it}%
+    \renewcommand*\sldefault{sl}%
     \renewcommand*\familydefault{\sfdefault}%
     \renewcommand*\seriesdefault{\mddefault}%
     \renewcommand*\shapedefault{\updefault}%
+    \tud@cdfont@set%
+    \tud@ttfont@set%
+    \if@tud@x@mweights@enabled%
+      \edef\bfseries@rm{\tud@cdfont@bf}%
+      \edef\mdseries@rm{\tud@cdfont@md}%
+      \edef\bfseries@sf{\tud@cdfont@bf}%
+      \edef\mdseries@sf{\tud@cdfont@md}%
+      \edef\bfseries@tt{\tud@ttfont@bf}%
+      \edef\mdseries@tt{\tud@ttfont@md}%
+    \fi%
+    \let\bfdefault\tud@cdfont@bf%
+    \let\mddefault\tud@cdfont@md%
+  \else%
+    \tud@cs@restore{rmdefault}%
+    \tud@cs@restore{sfdefault}%
+    \tud@cs@restore{ttdefault}%
+    \tud@cs@restore{bfdefault}%
+    \tud@cs@restore{mddefault}%
+    \tud@cs@restore{updefault}%
+    \tud@cs@restore{sldefault}%
+    \tud@cs@restore{itdefault}%
+    \tud@cs@restore{familydefault}%
+    \tud@cs@restore{seriesdefault}%
+    \tud@cs@restore{shapedefault}%
+    \if@tud@x@mweights@enabled%
+      \tud@cs@restore{bfseries@rm}%
+      \tud@cs@restore{mdseries@rm}%
+      \tud@cs@restore{bfseries@sf}%
+      \tud@cs@restore{mdseries@sf}%
+      \tud@cs@restore{bfseries@tt}%
+      \tud@cs@restore{mdseries@tt}%
+    \fi%
+    \if@tud@x@fontspec@enabled%
+      \tud@cs@restore{rmfamily}%
+      \tud@cs@restore{sffamily}%
+      \tud@cs@restore{ttfamily}%
+    \fi%
   \fi%
   \if@tud@x@mweights@enabled%
     \edef\rmdef@ult{\rmdefault}%
@@ -1485,12 +1704,74 @@
     \edef\mddef@ult{\mddefault}%
     \edef\famdef@ult{\familydefault}%
   \fi%
-  \ifundef{\tud@font@math@init}{\tud@font@math@set}{}%
   \tud@font@skip@set%
   \normalfont\selectfont%
-  \tud@layout@process%
+  \tud@cd@process%
   \global\@tud@head@font@settrue%
 }
+\newcommand*\tud@cdfont@set{%
+  \if@tud@cdfont@fam@exist%
+    \if@tud@cdfont@lining%
+      \let\tud@cdfont@fam\tud@cdfont@fam@lf%
+    \else%
+      \let\tud@cdfont@fam\tud@cdfont@fam@osf%
+    \fi%
+    \if@tud@x@fontspec@enabled%
+      \tud@x@fontspec@set{sf}{\tud@cdfont@fam}%
+    \else%
+      \renewcommand*\sfdefault{\tud@cdfont@fam}%
+    \fi%
+    \tud@cdfont@@set%
+  \fi%
+  \tud@cdfont@wrn%
+}
+\newcommand*\tud@cdfont@md{m}
+\newcommand*\tud@cdfont@bf{b}
+\newcommand*\tud@cdfont@ebf{bx}
+\newcommand*\tud@cdfont@@set{%
+  \if@tud@cdfont@heavy%
+    \renewcommand*\tud@cdfont@md{m}%
+    \if@tud@cdfont@ultrabold%
+      \renewcommand*\tud@cdfont@bf{b}%
+      \renewcommand*\tud@cdfont@ebf{eb}%
+    \else%
+      \renewcommand*\tud@cdfont@bf{sb}%
+      \renewcommand*\tud@cdfont@ebf{b}%
+    \fi%
+  \else%
+    \renewcommand*\tud@cdfont@md{l}%
+    \if@tud@cdfont@ultrabold%
+      \renewcommand*\tud@cdfont@bf{sb}%
+      \renewcommand*\tud@cdfont@ebf{b}%
+    \else%
+      \renewcommand*\tud@cdfont@bf{m}%
+      \renewcommand*\tud@cdfont@ebf{sb}%
+    \fi%
+  \fi%
+}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@cdfont@@set{%
+    \if@tud@cdfont@heavy%
+      \renewcommand*\tud@cdfont@md{m}%
+      \if@tud@cdfont@ultrabold%
+        \renewcommand*\tud@cdfont@bf{eb}%
+        \renewcommand*\tud@cdfont@ebf{eb}%
+      \else%
+        \renewcommand*\tud@cdfont@bf{b}%
+        \renewcommand*\tud@cdfont@ebf{eb}%
+      \fi%
+    \else%
+      \renewcommand*\tud@cdfont@md{l}%
+      \if@tud@cdfont@ultrabold%
+        \renewcommand*\tud@cdfont@bf{b}%
+        \renewcommand*\tud@cdfont@ebf{eb}%
+      \else%
+        \renewcommand*\tud@cdfont@bf{m}%
+        \renewcommand*\tud@cdfont@ebf{b}%
+      \fi%
+    \fi%
+  }%
+\fi
 \newcommand*\tud@font@skip@set{%
   \if@tud@relspacing%
     \tud@skip@store{smallskipamount}%
@@ -1519,147 +1800,308 @@
   \tud@skip@set{belowcaptionskip}{\z@}%
   \tud@skip@set{columnsep}{1.1\baselineskip}%
 }
-\newcommand*\tud@font@init{%
-  \if@tud@x@fontspec@enabled%
-    \if@tud@univers%
-      \newcommand*\tud@x@fontspec@set@univ{%
-        Ligatures=TeX,%
-        BoldFont={},%
-        ItalicFont={},%
-        BoldItalicFont={},%
-        SmallCapsFont={},%
-        FontFace={l}{\updefault}{Univers Light},%
-        FontFace={m}{\updefault}{Univers},%
-        FontFace={b}{\updefault}{Univers Bold},%
-        FontFace={bx}{\updefault}{Univers Bold},%
-        FontFace={eb}{\updefault}{Univers Black},%
-        FontFace={l}{\sldefault}{Univers LightOblique},%
-        FontFace={m}{\sldefault}{Univers Oblique},%
-        FontFace={b}{\sldefault}{Univers BoldOblique},%
-        FontFace={bx}{\sldefault}{Univers BoldOblique},%
-        FontFace={eb}{\sldefault}{Univers BlackOblique}%
+\newcommand*\tud@cdfont@init{%
+  \if@tud@cdfont@fam@exist%
+    \if@tud@x@fontspec@enabled%
+      \def\tud@res@a{%
+        UprightFont={OpenSans-Regular},%
+        FontFace={l}{n}{OpenSans-Light},%
+        FontFace={m}{n}{OpenSans-Regular},%
+        FontFace={sb}{n}{OpenSans-SemiBold},%
+        FontFace={b}{n}{OpenSans-Bold},%
+        FontFace={bx}{n}{OpenSans-Bold},%
+        FontFace={eb}{n}{OpenSans-ExtraBold},%
+        FontFace={l}{it}{OpenSans-LightItalic},%
+        FontFace={m}{it}{OpenSans-Italic},%
+        FontFace={sb}{it}{OpenSans-SemiBoldItalic},%
+        FontFace={b}{it}{OpenSans-BoldItalic},%
+        FontFace={bx}{it}{OpenSans-BoldItalic},%
+        FontFace={eb}{it}{OpenSans-ExtraBoldItalic}%
       }%
-      \newfontfamily\tud@x@fontspec@fam@univ{Univers}[%
-        \tud@x@fontspec@set@univ,NFSSFamily=\tud@univers%
-      ]%
-    \fi%
-    \if@tud@dinbold%
-      \newcommand*\tud@x@fontspec@set@din{%
-        Ligatures=TeX,%
-        BoldFont={},%
-        ItalicFont={},%
-        BoldItalicFont={},%
-        SmallCapsFont={},%
-        FontFace={l}{\updefault}{DIN-Bold},%
-        FontFace={m}{\updefault}{DIN-Bold},%
-        FontFace={b}{\updefault}{DIN-Bold},%
-        FontFace={bx}{\updefault}{DIN-Bold},%
-        FontFace={eb}{\updefault}{DIN-Bold},%
-        FontFace={l}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},%
-        FontFace={m}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},%
-        FontFace={b}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},%
-        FontFace={bx}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15},%
-        FontFace={eb}{\sldefault}{Font=DIN-Bold,FakeSlant=0.15}%
+      \tud@x@fontspec@init{\tud@cdfont@fam@osf}{Numbers=OldStyle,\tud@res@a}%
+      \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}%
+    \else%
+      \IfFileExists{omliwona.fd}{%
+        \input{omliwona.fd}%
+        \@for\tud@res@a:={l,m,sb,b,eb}\do{%
+          \csletcs{OML/\tud@cdfont@fam@lf/\tud@res@a/it}%
+            {OML/iwona/\tud@res@a/it}%
+          \csletcs{OML/\tud@cdfont@fam@osf/\tud@res@a/it}%
+            {OML/iwona/\tud@res@a/it}%
+        }%
+      }{}%
+      \IfFileExists{omsiwona.fd}{%
+        \input{omsiwona.fd}%
+        \@for\tud@res@a:={l,m,sb,b,eb}\do{%
+          \csletcs{OMS/\tud@cdfont@fam@lf/\tud@res@a/n}%
+            {OMS/iwona/\tud@res@a/n}%
+          \csletcs{OMS/\tud@cdfont@fam@osf/\tud@res@a/n}%
+            {OMS/iwona/\tud@res@a/n}%
+        }%
+      }{}%
+      \AtBeginDocument{%
+        \ifcsundef{textrightarrow}{}{%
+          \tud@cs@store{textrightarrow}%
+          \renewrobustcmd*{\textrightarrow}{%
+            {\fontfamily{iwona}\selectfont\tud@cs@use{textrightarrow}}%
+          }%
+        }%
       }%
-      \newfontfamily\tud@x@fontspec@fam@din{DIN-Bold}[%
-        \tud@x@fontspec@set@din,NFSSFamily=\tud@dinbold%
-      ]%
     \fi%
-  \fi%
-  \if@tud@univers%
-    \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
-    \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
-    \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
-    \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
-    \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
-    \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
-    \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
-    \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
+    \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
+    \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
+    \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}}
+    \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
+    \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
+    \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}}
+    \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}}
+    \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}}
+    \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}}
+    \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}}
   \else%
-    \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}%
-    \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}%
-    \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}%
-    \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}%
-    \newrobustcmd*\univls{\tud@font@fallback{Univers LightOblique}{md}{sl}}%
-    \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}%
-    \newrobustcmd*\univbs{\tud@font@fallback{Univers BoldOblique}{bf}{sl}}%
-    \newrobustcmd*\univxs{\tud@font@fallback{Univers BlackOblique}{bf}{sl}}%
+    \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}
+    \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}
+    \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}
+    \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}
+    \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}
+    \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}
+    \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}
+    \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}
+    \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}
+    \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}
   \fi%
-  \if@tud@dinbold%
-    \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
-    \if@tud@dinboldmath%
-      \appto\tud@dinbn{\mathversion{dinbold}}%
+  \newcommand*\textcdln{}%
+  \newcommand*\textcdrn{}%
+  \newcommand*\textcdsn{}%
+  \newcommand*\textcdbn{}%
+  \newcommand*\textcdxn{}%
+  \newcommand*\textcdli{}%
+  \newcommand*\textcdri{}%
+  \newcommand*\textcdsi{}%
+  \newcommand*\textcdbi{}%
+  \newcommand*\textcdxi{}%
+  \DeclareTextFontCommand\textcdln{\cdfontln}%
+  \DeclareTextFontCommand\textcdrn{\cdfontrn}%
+  \DeclareTextFontCommand\textcdsn{\cdfontsn}%
+  \DeclareTextFontCommand\textcdbn{\cdfontbn}%
+  \DeclareTextFontCommand\textcdxn{\cdfontxn}%
+  \DeclareTextFontCommand\textcdli{\cdfontli}%
+  \DeclareTextFontCommand\textcdri{\cdfontri}%
+  \DeclareTextFontCommand\textcdsi{\cdfontsi}%
+  \DeclareTextFontCommand\textcdbi{\cdfontbi}%
+  \DeclareTextFontCommand\textcdxi{\cdfontxi}%
+}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@cdfont@init{%
+    \if@tud@cdfont@fam@exist%
+      \if@tud@x@fontspec@enabled%
+        \def\tud@res@a{%
+          UprightFont={Univers},%
+          FontFace={l}{n}{Univers-Light},%
+          FontFace={m}{n}{Univers},%
+          FontFace={b}{n}{Univers-Bold},%
+          FontFace={bx}{n}{Univers-Bold},%
+          FontFace={eb}{n}{Univers-Black},%
+          FontFace={l}{it}{Univers-LightOblique},%
+          FontFace={m}{it}{Univers-Oblique},%
+          FontFace={b}{it}{Univers-BoldOblique},%
+          FontFace={bx}{it}{Univers-BoldOblique},%
+          FontFace={eb}{it}{Univers-BlackOblique}%
+        }%
+        \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}%
+      \fi%
+      \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
+      \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
+      \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
+      \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
+      \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}}
+      \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}}
+      \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}}
+      \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}}
+    \else%
+      \tud@cdfont@fallback\univln{Univers-Light}{md}{up}
+      \tud@cdfont@fallback\univrn{Univers}{md}{up}
+      \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}
+      \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}
+      \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl}
+      \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl}
+      \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl}
+      \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl}
     \fi%
-    \newrobustcmd*\dinbn{\tud@dinbn}%
-  \else%
-    \newrobustcmd*\tud@dinbn{\sectfont}%
-    \newrobustcmd*\dinbn{\tud@font@fallback@wrn{DIN-Bold}\tud@dinbn}%
-  \fi%
-  \newcommand*\textuln{}%
-  \newcommand*\texturn{}%
-  \newcommand*\textubn{}%
-  \newcommand*\textuxn{}%
-  \newcommand*\textuls{}%
-  \newcommand*\texturs{}%
-  \newcommand*\textubs{}%
-  \newcommand*\textuxs{}%
-  \newcommand*\textdbn{}%
-  \DeclareTextFontCommand\textuln{\univln}%
-  \DeclareTextFontCommand\texturn{\univrn}%
-  \DeclareTextFontCommand\textubn{\univbn}%
-  \DeclareTextFontCommand\textuxn{\univxn}%
-  \DeclareTextFontCommand\textuls{\univls}%
-  \DeclareTextFontCommand\texturs{\univrs}%
-  \DeclareTextFontCommand\textubs{\univbs}%
-  \DeclareTextFontCommand\textuxs{\univxs}%
-  \DeclareTextFontCommand\textdbn{\dinbn}%
-  \undef\tud@font@init%
-}
-\newcommand*\tud@font@fallback[3]{%
-  \tud@font@fallback@wrn{#1}%
-  \sffamily\csuse{#2series}\csuse{#3shape}%
-}
-\newcommand*\tud@font@fallback@wrn[1]{%
+    \newcommand*\textuln{}%
+    \newcommand*\texturn{}%
+    \newcommand*\textubn{}%
+    \newcommand*\textuxn{}%
+    \newcommand*\textuls{}%
+    \newcommand*\texturs{}%
+    \newcommand*\textubs{}%
+    \newcommand*\textuxs{}%
+    \DeclareTextFontCommand\textuln{\univln}%
+    \DeclareTextFontCommand\texturn{\univrn}%
+    \DeclareTextFontCommand\textubn{\univbn}%
+    \DeclareTextFontCommand\textuxn{\univxn}%
+    \DeclareTextFontCommand\textuls{\univls}%
+    \DeclareTextFontCommand\texturs{\univrs}%
+    \DeclareTextFontCommand\textubs{\univbs}%
+    \DeclareTextFontCommand\textuxs{\univxs}%
+    \newrobustcmd*\cdfontln{\univln}%
+    \newrobustcmd*\cdfontrn{\univrn}%
+    \newrobustcmd*\cdfontsn{\univrn}%
+    \newrobustcmd*\cdfontbn{\univbn}%
+    \newrobustcmd*\cdfontxn{\univxn}%
+    \newrobustcmd*\cdfontli{\univls}%
+    \newrobustcmd*\cdfontri{\univrs}%
+    \newrobustcmd*\cdfontsi{\univrs}%
+    \newrobustcmd*\cdfontbi{\univbs}%
+    \newrobustcmd*\cdfontxi{\univxs}%
+    \newcommand*\textcdln{}%
+    \newcommand*\textcdrn{}%
+    \newcommand*\textcdsn{}%
+    \newcommand*\textcdbn{}%
+    \newcommand*\textcdxn{}%
+    \newcommand*\textcdli{}%
+    \newcommand*\textcdri{}%
+    \newcommand*\textcdsi{}%
+    \newcommand*\textcdbi{}%
+    \newcommand*\textcdxi{}%
+    \DeclareTextFontCommand\textcdln{\cdfontln}%
+    \DeclareTextFontCommand\textcdrn{\cdfontrn}%
+    \DeclareTextFontCommand\textcdsn{\cdfontsn}%
+    \DeclareTextFontCommand\textcdbn{\cdfontbn}%
+    \DeclareTextFontCommand\textcdxn{\cdfontxn}%
+    \DeclareTextFontCommand\textcdli{\cdfontli}%
+    \DeclareTextFontCommand\textcdri{\cdfontri}%
+    \DeclareTextFontCommand\textcdsi{\cdfontsi}%
+    \DeclareTextFontCommand\textcdbi{\cdfontbi}%
+    \DeclareTextFontCommand\textcdxi{\cdfontxi}%
+    \if@tud@cdfont@db@exist%
+      \if@tud@x@fontspec@enabled%
+        \def\tud@res@a{%
+          UprightFont={DIN-Bold},%
+          FontFace={l}{n}{DIN-Bold},%
+          FontFace={m}{n}{DIN-Bold},%
+          FontFace={b}{n}{DIN-Bold},%
+          FontFace={bx}{n}{DIN-Bold},%
+          FontFace={eb}{n}{DIN-Bold},%
+          FontFace={l}{it}{Font=DIN-Bold,FakeSlant=0.15},%
+          FontFace={m}{it}{Font=DIN-Bold,FakeSlant=0.15},%
+          FontFace={b}{it}{Font=DIN-Bold,FakeSlant=0.15},%
+          FontFace={bx}{it}{Font=DIN-Bold,FakeSlant=0.15},%
+          FontFace={eb}{it}{Font=DIN-Bold,FakeSlant=0.15}%
+        }%
+        \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}%
+      \fi%
+      \newrobustcmd*\tud@db{%
+        \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}%
+        \if@tud@cdmath@active\mathversion{tuddin}\fi%
+      }%
+      \newrobustcmd*\dinbn{\tud@db}%
+    \else%
+      \newrobustcmd*\tud@db{\tud@db@wrn\sectfont}%
+      \newcommand*\tud@db@wrn{%
+        \ClassWarning{\TUD@Class@Name}%
+        {%
+          Font `DIN-Bold' is not available and therefore\MessageBreak
+          can not be used for headings%
+        }%
+        \global\let\tud@db@wrn\relax%
+      }%
+      \newrobustcmd*\dinbn{\tud@cdfont@fallback@wrn{DIN-Bold}\sectfont}%
+    \fi%
+    \newcommand*\textdbn{}%
+    \DeclareTextFontCommand\textdbn{\dinbn}%
+  }%
+\fi
+\newcommand*\tud@cdfont@fallback[4]{%
+  \newrobustcmd*#1{%
+    \tud@cdfont@fallback@wrn{#2}%
+    \sffamily\csuse{#3series}\csuse{#4shape}%
+  }%
+}
+\newcommand*\tud@cdfont@fallback@wrn[1]{%
   \ClassWarning{\TUD@Class@Name}%
   {%
-    The requested font `#1' is not available, so\MessageBreak%
-    a fallback layout is used%
+    The requested font `#1'\MessageBreak%
+    is not available, a fallback layout is used%
   }%
 }
 \newcommand*\cdfont[1]{%
   \tud@cdfont@get{#1}%
   \ifx\@tempc\relax\else%
-    \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
+    \csuse{cdfont\@tempc}%
   \fi%
 }
-\providecommand*\tudfont[1]{\cdfont{#1}}
-\newcommand*\textcdfont[2]{%
+\newcommand*\textcd[2]{%
   \tud@cdfont@get{#1}%
-  \ifx\@tempc\relax\else%
-    \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
+  \ifx\@tempc\relax%
+    \textsf{#2}%
+  \else%
+    \csuse{textcd\@tempc}{#2}%
   \fi%
 }
+\if@tud@cdoldfont@active
+  \renewcommand*\cdfont[1]{%
+    \tud@cdfont@get{#1}%
+    \ifx\@tempc\relax\else%
+      \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
+    \fi%
+  }%
+  \renewcommand*\textcd[2]{%
+    \tud@cdfont@get{#1}%
+    \ifx\@tempc\relax%
+      \textsf{#2}%
+    \else%
+      \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
+    \fi%
+  }%
+\fi
 \newcommand*\tud@cdfont@get[1]{%
   \tud@cdfont@trim\@tempa{#1}%
-  \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
-  \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
-  \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
-  \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
-  \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
-  \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
-  \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
-  \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
-  \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
-  \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
-  \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
-  \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
-  \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
-  \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
+  \ifstr{\@tempa}{l}{\def\@tempc{ln}}{%
+  \ifstr{\@tempa}{}{\def\@tempc{rn}}{%
+  \ifstr{\@tempa}{r}{\def\@tempc{rn}}{%
+  \ifstr{\@tempa}{s}{\def\@tempc{sn}}{%
+  \ifstr{\@tempa}{b}{\def\@tempc{bn}}{%
+  \ifstr{\@tempa}{x}{\def\@tempc{xn}}{%
+  \ifstr{\@tempa}{li}{\def\@tempc{li}}{%
+  \ifstr{\@tempa}{il}{\def\@tempc{li}}{%
+  \ifstr{\@tempa}{i}{\def\@tempc{ri}}{%
+  \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{%
+  \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{%
+  \ifstr{\@tempa}{si}{\def\@tempc{si}}{%
+  \ifstr{\@tempa}{is}{\def\@tempc{si}}{%
+  \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{%
+  \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{%
+  \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{%
+  \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{%
     \let\@tempc\relax%
     \ClassWarning{\TUD@Class@Name}%
       {The font `#1' is unknown}%
-  }}}}}}}}}}}}}}%
-}
+  }}}}}}}}}}}}}}}}}%
+}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@cdfont@get[1]{%
+    \tud@cdfont@trim\@tempa{#1}%
+    \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
+    \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
+    \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
+    \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
+    \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
+    \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
+    \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
+    \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
+    \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
+    \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
+    \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
+    \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
+    \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
+    \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
+      \let\@tempc\relax%
+      \ClassWarning{\TUD@Class@Name}%
+      {The font `#1' is unknown}%
+    }}}}}}}}}}}}}}%
+  }%
+\fi
 \newcommand*\tud@cdfont@trim[2]{%
   \protected@edef\@tempa{\trim@spaces{#2}}%
   \tud@lowerstring{\@tempa}{\@tempa}%
@@ -1667,22 +2109,45 @@
   \tud@cdfont@@trim{-}{}%
   \tud@cdfont@@trim{_}{}%
   \tud@cdfont@@trim{~}{}%
-  \tud@cdfont@@trim{ce}{}%
-  \tud@cdfont@@trim{ff}{}%
-  \tud@cdfont@@trim{univers}{}%
-  \tud@cdfont@@trim{60}{65}%
-  \tud@cdfont@@trim{light}{45}%
-  \tud@cdfont@@trim{regular}{55}%
-  \tud@cdfont@@trim{bold}{65}%
-  \tud@cdfont@@trim{black}{75}%
-  \tud@cdfont@@trim{4545}{45}%
-  \tud@cdfont@@trim{5555}{55}%
-  \tud@cdfont@@trim{6565}{65}%
-  \tud@cdfont@@trim{7575}{75}%
-  \tud@cdfont@@trim{italic}{oblique}%
-  \tud@cdfont@@trim{slanted}{oblique}%
+  \tud@cdfont@@trim{opensans}{}%
+  \tud@cdfont@@trim{light}{l}%
+  \tud@cdfont@@trim{regular}{r}%
+  \tud@cdfont@@trim{book}{r}%
+  \tud@cdfont@@trim{semibold}{s}%
+  \tud@cdfont@@trim{demi}{s}%
+  \tud@cdfont@@trim{extrabold}{x}%
+  \tud@cdfont@@trim{black}{x}%
+  \tud@cdfont@@trim{bold}{b}%
+  \tud@cdfont@@trim{italic}{i}%
+  \tud@cdfont@@trim{oblique}{i}%
+  \tud@cdfont@@trim{slanted}{i}%
   \let#1\@tempa%
 }
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@cdfont@trim[2]{%
+    \protected@edef\@tempa{\trim@spaces{#2}}%
+    \tud@lowerstring{\@tempa}{\@tempa}%
+    \tud@cdfont@@trim{ }{}%
+    \tud@cdfont@@trim{-}{}%
+    \tud@cdfont@@trim{_}{}%
+    \tud@cdfont@@trim{~}{}%
+    \tud@cdfont@@trim{ce}{}%
+    \tud@cdfont@@trim{ff}{}%
+    \tud@cdfont@@trim{univers}{}%
+    \tud@cdfont@@trim{60}{65}%
+    \tud@cdfont@@trim{light}{45}%
+    \tud@cdfont@@trim{regular}{55}%
+    \tud@cdfont@@trim{bold}{65}%
+    \tud@cdfont@@trim{black}{75}%
+    \tud@cdfont@@trim{4545}{45}%
+    \tud@cdfont@@trim{5555}{55}%
+    \tud@cdfont@@trim{6565}{65}%
+    \tud@cdfont@@trim{7575}{75}%
+    \tud@cdfont@@trim{italic}{oblique}%
+    \tud@cdfont@@trim{slanted}{oblique}%
+    \let#1\@tempa%
+  }%
+\fi
 \newcommand*\tud@cdfont@@trim[2]{%
   \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
   \@expandtwoargs\in@{#1}{\@tempa}%
@@ -1691,240 +2156,929 @@
     \@expandtwoargs\in@{#1}{\@tempa}%
   }%
 }
-\newcommand*\tud@font@greek@loop[1]{%
+\newcommand*\tud@ttfont@set{%
+  \if@tud@ttfont@rb@exist\else\ifnum\tud@ttfont@num=\@ne\relax%
+    \ClassWarning{\TUD@Class@Name}%
+    {%
+      The package `roboto-mono' is missing so the\MessageBreak%
+      typewriter font of package `lmodern' is used%
+    }%
+    \TUDoptions{ttfont=lmodern}%
+  \fi\fi%
+  \ifcase\tud@ttfont@num\relax% false
+    \let\tud@ttfont@fam\ttdefault%
+  \or% roboto
+    \let\tud@ttfont@fam\tud@ttfont@rb%
+  \or% lmodern
+    \let\tud@ttfont@fam\tud@ttfont@lm%
+  \fi%
+  \ifcase\tud@ttfont@num\relax\else% !false
+    \if@tud@x@fontspec@enabled%
+      \ifx\ttdefault\tud@ttfont@fam\else%
+        \tud@x@fontspec@set{tt}{\tud@ttfont@fam}%
+      \fi%
+    \else%
+      \renewcommand*\ttdefault{\tud@ttfont@fam}%
+    \fi%
+  \fi%
+  \tud@ttfont@@set%
+}
+\newcommand*\tud@ttfont@md{}
+\newcommand*\tud@ttfont@bf{}
+\newcommand*\tud@ttfont@ebf{}
+\newcommand*\tud@ttfont@@set{%
+  \ifcase\tud@ttfont@num\relax%
+    \ifundef{\mdseries@tt}{%
+      \edef\tud@ttfont@md{\tud@cs@use{mddefault}}%
+    }{%
+      \edef\tud@ttfont@md{\mdseries@tt}%
+    }%
+    \ifundef{\bfseries@tt}{%
+      \edef\tud@ttfont@bf{\tud@cs@use{bfdefault}}%
+    }{%
+      \edef\tud@ttfont@bf{\bfseries@tt}%
+    }%
+    \edef\tud@ttfont@ebf{\tud@ttfont@bf}%
+  \or% roboto
+    \renewcommand*\tud@ttfont@md{\tud@cdfont@md}%
+    \renewcommand*\tud@ttfont@bf{\tud@cdfont@bf}%
+    \renewcommand*\tud@ttfont@ebf{\tud@cdfont@ebf}%
+  \else% lmodern
+    \if@tud@cdfont@heavy%
+      \renewcommand*\tud@ttfont@md{m}%
+      \renewcommand*\tud@ttfont@bf{b}%
+      \renewcommand*\tud@ttfont@ebf{b}%
+    \else%
+      \renewcommand*\tud@ttfont@md{l}%
+      \if@tud@cdfont@ultrabold%
+        \renewcommand*\tud@ttfont@bf{b}%
+        \renewcommand*\tud@ttfont@ebf{b}%
+      \else%
+        \renewcommand*\tud@ttfont@bf{m}%
+        \renewcommand*\tud@ttfont@ebf{b}%
+      \fi%
+    \fi%
+  \fi%
+}
+\newcommand*\tud@ttfont@init{%
+  \newcommand*\tud@ttfont@rb@scale{0.9}%
+  \if@tud@x@fontspec@enabled%
+    \if@tud@ttfont@rb@exist%
+      \tud@x@fontspec@init{\tud@ttfont@rb}{%
+        Scale={\tud@ttfont@rb@scale},%
+        UprightFont={RobotoMono-Regular},%
+        FontFace={l}{n}{RobotoMono-Light},%
+        FontFace={m}{n}{RobotoMono-Regular},%
+        FontFace={sb}{n}{RobotoMono-Medium},%
+        FontFace={b}{n}{RobotoMono-Bold},%
+        FontFace={bx}{n}{RobotoMono-Bold},%
+        FontFace={eb}{n}{RobotoMono-Bold},%
+        FontFace={l}{it}{RobotoMono-LightItalic},%
+        FontFace={m}{it}{RobotoMono-Italic},%
+        FontFace={sb}{it}{RobotoMono-MediumItalic},%
+        FontFace={b}{it}{RobotoMono-BoldItalic},%
+        FontFace={bx}{it}{RobotoMono-BoldItalic},%
+        FontFace={eb}{it}{RobotoMono-BoldItalic}%
+      }%
+    \fi%
+    \ifx\ttdefault\tud@ttfont@lm\else%
+      \tud@x@fontspec@init{\tud@ttfont@lm}{%
+        UprightFont={LMMono10-Regular},%
+        FontFace={l}{n}{LMMonoLt10-Regular},%
+        FontFace={m}{n}{LMMono10-Regular},%
+        FontFace={b}{n}{LMMonoLt10-Bold},%
+        FontFace={bx}{n}{LMMonoLt10-Bold},%
+        FontFace={l}{it}{LMMonoLt10-Oblique},%
+        FontFace={m}{it}{LMMonoSlant10-Regular},%
+        FontFace={b}{it}{LMMonoLt10-BoldOblique},%
+        FontFace={bx}{it}{LMMonoLt10-BoldOblique}%
+      }%
+    \fi%
+  \else%
+    \if@tud@ttfont@rb@exist%
+      \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}%
+      \begingroup%
+        \def\tud@res@c##1##2{%
+          \tud@lowerstring\tud@res@a{##1}%
+          \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}%
+          \def\tud@res@b####1####2####3{%
+            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{%
+               <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a%
+            }{}%
+            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{%
+               <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a%
+            }{}%
+            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{%
+              <->ssub*\tud@ttfont@rb/####1/it%
+            }{}%
+            \ifbool{##2}{%
+              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{%
+                 <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a%
+              }{}%
+              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{%
+                 <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a%
+              }{}%
+              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{%
+                <->ssub*\tud@ttfont@rb/####1/scit%
+              }{}%
+            }{}%
+          }%
+          \tud@res@b{l}{Light}{LightItalic}%
+          \tud@res@b{m}{Regular}{Italic}%
+          \tud@res@b{sb}{Medium}{MediumItalic}%
+          \tud@res@b{b}{Bold}{BoldItalic}%
+          \tud@res@b{bx}{Bold}{BoldItalic}%
+        }%
+        \tud@res@c{OT1}{true}%
+        \tud@res@c{T1}{true}%
+        \ifcsundef{T@LY1}{}{\tud@res@c{LY1}{true}}%
+        \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}%
+      \endgroup%
+    \fi%
+  \fi%
+}
+\newcommand*\tud@if@issymbolfont[1]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \noexpand\in@\expandafter\noexpand%
+        \csname sym#1\endcsname%
+        {\expandonce\group@list}%
+    }%
+    \tud@res@a%
+    \ifin@%
+      \aftergroup\@firstoftwo%
+    \else%
+      \aftergroup\@secondoftwo%
+    \fi%
+  \endgroup%
+}
+\@onlypreamble\tud@if@issymbolfont
+\newcommand*\tud@if@ismathalphabet[1]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \noexpand\in@\expandafter\noexpand%
+        \csname\expandafter\@gobble\string#1\space\endcsname%
+        {\expandonce\alpha@list}%
+    }%
+    \tud@res@a%
+    \ifin@%
+      \aftergroup\@firstoftwo%
+    \else%
+      \aftergroup\@secondoftwo%
+    \fi%
+  \endgroup%
+}
+\@onlypreamble\tud@if@ismathalphabet
+\newcommand*\tud@math@loop@greeks@all[1]{%
+  \tud@math@loop@greeks@uc{#1}%
+  \tud@math@loop@greeks@lc{#1}%
+}
+\newcommand*\tud@math@loop@greeks@uc[1]{%
   \@for\@tempa:={%
     Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
-  }\do{#1{\@tempa}}%
-}
-\newcommand*\tud@font@greek@declare[1]{%
-  \edef\@tempb{%
-    \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}%
-      {\noexpand\mathalpha}{operators}{\the\@tempcnta}%
-  }\@tempb%
-  \edef\@tempb{%
-    \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}%
-      {\noexpand\mathalpha}{letters}{\the\@tempcnta}%
-  }\@tempb%
-  \csletcs{tud@#1}{tud@up#1}%
-  \advance \@tempcnta by 1%
-}
-\@tempcnta=\z@\relax
-\tud@font@greek@loop\tud@font@greek@declare
-\newcommand*\mv@univers{}
-\newcommand*\mv@universbold{}
-\newcommand*\mv@dinbold{}
-\newcommand*\tud@font@math@init{%
-  \if@tud@x@fontspec@enabled\if@tud@cdmath%
-    \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{%
-      \@ifpackagewith{fontspec}{no-math}{}{%
-        \ClassWarningNoLine{\TUD@Class@Name}%
-        {%
-          It's recommended to load package `fontspec'\MessageBreak%
-          with option `no-math', if you want to use the\MessageBreak%
-          corporate design fonts in math mode%
+  }\do{\expandafter#1\expandafter{\@tempa}}%
+}
+\newcommand*\tud@math@loop@greeks@lc[1]{%
+  \@for\@tempa:={%
+    alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,%
+    mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,%
+    varepsilon,vartheta,varpi,varrho,varsigma,varphi%
+  }\do{\expandafter#1\expandafter{\@tempa}}%
+}
+\newcommand*\tud@math@declare@lgrgreeks[5]{%
+  \ifundef{\T@LGR}{\DeclareFontEncoding{LGR}{}{}}{}%
+  \tud@if@issymbolfont{tudupgrk}{%
+    \SetSymbolFont{tudupgrk}{normal}{LGR}{#1}{#2}{#4}%
+  }{%
+    \DeclareSymbolFont{tudupgrk}{LGR}{#1}{#2}{#4}%
+  }%
+  \SetSymbolFont{tudupgrk}{bold}{LGR}{#1}{#3}{#4}%
+  \tud@if@issymbolfont{tuditgrk}{%
+    \SetSymbolFont{tudupgrk}{normal}{LGR}{#1}{#2}{#5}%
+  }{%
+    \DeclareSymbolFont{tuditgrk}{LGR}{#1}{#2}{#5}%
+  }%
+  \SetSymbolFont{tuditgrk}{bold}{LGR}{#1}{#3}{#5}%
+}
+\newcommand*\tud@math@map@greeks{%
+  \tud@math@loop@greeks@all\tud@math@map@@greeks%
+  \tud@math@loop@greeks@uc\tud@math@map@@@greeks%
+  \tud@math@supplement@greeks%
+}
+\newcommand*\tud@math@map@@greeks[1]{%
+  \ifcsundef{it#1}{%
+    \@for\tud@res@a:={#1sl,sl#1,#1it}\do{%
+      \ifcsundef{\tud@res@a}{}{\csedef{it#1}{\csname\tud@res@a\endcsname}}%
+    }%
+  }{}%
+  \ifcsundef{up#1}{%
+    \ifcsundef{#1up}{}{\csedef{up#1}{\csname#1up\endcsname}}%
+  }{}%
+  \ifcsundef{other#1}{%
+    \ifcsundef{#1other}{}{\csedef{other#1}{\csname#1other\endcsname}}%
+  }{}%
+}
+\newcommand*\tud@math@map@@@greeks[1]{%
+  \ifcsundef{it#1}{%
+    \ifcsundef{var#1}{}{\csedef{it#1}{\csname var#1\endcsname}}%
+  }{}%
+  \ifcsundef{up#1}{%
+    \tud@lowerstring\tud@res@a{#1}%
+    \edef\tud@res@a{Up\tud@res@a}%
+    \ifcsundef{\tud@res@a}{}{\csedef{up#1}{\csname\tud@res@a\endcsname}}%
+  }{}%
+}
+\newcommand*\tud@math@supplement@greeks{%
+  \begingroup%
+    \newcommand*\tud@math@operators@enc{}%
+    \newcommand*\tud@math@operators@fam{}%
+    \newcommand*\tud@math@letters@enc{}%
+    \newcommand*\tud@math@letters@fam{}%
+    \def\getanddefine@fonts##1##2{%
+      \ifx\symoperators##1%
+        \expandafter\tud@res@a\string##2\@nil%
+      \else\ifx\symletters##1%
+        \expandafter\tud@res@b\string##2\@nil%
+      \fi\fi%
+    }%
+    \def\tud@res@a##1##2/##3/##4\@nil{%
+      \def\tud@math@operators@enc{##2}%
+      \def\tud@math@operators@fam{##3}%
+    }%
+    \def\tud@res@b##1##2/##3/##4\@nil{%
+      \def\tud@math@letters@enc{##2}%
+      \def\tud@math@letters@fam{##3}%
+    }%
+    \tud@cs@use{mv@normal}%
+    \let\tud@res@c\@empty%
+    \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{%
+      \def\tud@res@a##1{%
+        \ifcsundef{it##1}{%
+          \eappto\tud@res@c{%
+            \noexpand\DeclareMathSymbol{\csname it##1\endcsname}%
+              {\noexpand\mathalpha}{letters}{\the\tud@res@cnt}%
+          }%
+        }{}%
+        \advance\tud@res@cnt\@ne\relax%
+      }%
+      \tud@res@cnt=\z@\relax%
+      \tud@math@loop@greeks@all\tud@res@a%
+    }{}%
+    \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{%
+      \def\tud@res@a##1{%
+        \ifcsundef{up##1}{%
+          \eappto\tud@res@c{%
+            \noexpand\DeclareMathSymbol{\csname up##1\endcsname}%
+              {\noexpand\mathalpha}{operators}{\the\tud@res@cnt}%
+          }%
+        }{}%
+        \advance\tud@res@cnt\@ne\relax%
+      }%
+      \tud@res@cnt=\z@\relax%
+      \tud@math@loop@greeks@uc\tud@res@a%
+    }{}%
+    \let\tud@res@a\@empty%
+    \if@tud@lgrgreeks%
+      \IfFileExists{lgr\tud@cs@use{familydefault}.fd}{%
+        \def\tud@res@a{\tud@cs@use{familydefault}}%
+      }{%
+        \IfFileExists{lgr\tud@math@letters@fam.fd}{%
+          \let\tud@res@a\tud@math@letters@fam%
+        }{%
+          \IfFileExists{lgr\tud@math@operators@fam.fd}{%
+            \let\tud@res@a\tud@math@operators@fam%
+          }{}%
         }%
       }%
+    \fi%
+    \edef\tud@res@a{%
+      \endgroup%
+      \expandonce\tud@res@c%
+      \edef\noexpand\tud@res@a{\tud@res@a}%
+    }%
+  \tud@res@a%
+  \ifx\tud@res@a\@empty\else%
+    \tud@math@declare@lgrgreeks{\tud@res@a}%
+      {\tud@cs@use{mddefault}}{\tud@cs@use{bfdefault}}%
+      {\tud@cs@use{updefault}}{\tud@cs@use{itdefault}}%
+    \let\tud@res@c\@empty%
+    \def\tud@res@b##1##2{%
+      \ifcsundef{it##1}{%
+        \eappto\tud@res@c{%
+          \noexpand\DeclareMathSymbol{\csname it##1\endcsname}%
+              {\noexpand\mathalpha}{tuditgrk}{##2}%
+        }%
+      }{}%
+      \ifcsundef{up##1}{%
+        \eappto\tud@res@c{%
+          \noexpand\DeclareMathSymbol{\csname up##1\endcsname}%
+              {\noexpand\mathalpha}{tudupgrk}{##2}%
+        }%
+      }{}%
+    }%
+    \tud@res@b{Gamma}{71}%
+    \tud@res@b{Delta}{68}%
+    \tud@res@b{Theta}{74}%
+    \tud@res@b{Lambda}{76}%
+    \tud@res@b{Xi}{88}%
+    \tud@res@b{Pi}{80}%
+    \tud@res@b{Sigma}{83}%
+    \tud@res@b{Upsilon}{85}%
+    \tud@res@b{Phi}{70}%
+    \tud@res@b{Psi}{89}%
+    \tud@res@b{Omega}{87}%
+    \tud@res@b{alpha}{97}%
+    \tud@res@b{beta}{98}%
+    \tud@res@b{gamma}{103}%
+    \tud@res@b{delta}{100}%
+    \tud@res@b{epsilon}{101}%
+    \tud@res@b{zeta}{122}%
+    \tud@res@b{eta}{104}%
+    \tud@res@b{theta}{106}%
+    \tud@res@b{iota}{105}%
+    \tud@res@b{kappa}{107}%
+    \tud@res@b{lambda}{108}%
+    \tud@res@b{mu}{109}%
+    \tud@res@b{nu}{110}%
+    \tud@res@b{xi}{120}%
+    \tud@res@b{pi}{112}%
+    \tud@res@b{rho}{114}%
+    \tud@res@b{sigma}{115}%
+    \tud@res@b{tau}{116}%
+    \tud@res@b{upsilon}{117}%
+    \tud@res@b{phi}{102}%
+    \tud@res@b{chi}{113}%
+    \tud@res@b{psi}{121}%
+    \tud@res@b{omega}{119}%
+    \tud@res@c%
+  \fi%
+}
+\newcommand*\tud@math@checkslanted@greeks{%
+  \begingroup%
+    \def\tud@res@c{%
+      \tud@if@v@lower{2.06}{%
+        \TUD@key@preset{slantedgreek}{standard}%
+      }{%
+        \TUD@key@preset{slantedgreek}{true}%
+      }%
+    }%
+    \@tud@res@swafalse%
+    \ifcsdef{upalpha}{%
+      \ifx\upalpha\alpha%
+        \@tud@res@swatrue%
+      \fi%
+    }{}%
+    \if@tud@res@swa%
+      \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}%
+    \else%
+      \ifcsdef{itGamma}{%
+        \ifx\itGamma\Gamma%
+          \@tud@res@swatrue%
+        \fi%
+      }{%
+        \let\tud@res@a\relax%
+        \let\tud@res@b\relax%
+        \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}%
+        \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}%
+        \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi%
+        \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi%
+      }%
+      \if@tud@res@swa%
+        \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}%
+      \fi%
+    \fi%
+    \edef\tud@res@c{\endgroup\expandonce\tud@res@c}%
+  \tud@res@c%
+}
+\newcommand*\mv@tudnormal{}
+\newcommand*\mv@tudbold{}
+\newcommand*\mv@tuddin{}
+\AfterPackage*{mathastext}{%
+  \CheckCommand*\MTversion{\@ifstar\MTversion@s\MTversion@}%
+  \CheckCommand*\MTversion@s[1]{\mathversion{#1}\MTversion@@{#1}}%
+  \newrobustcmd*\tud@mathversion[1]{%
+    \tud@cs@use{mathversion}{#1}%
+    \if@tud@cdmath@active%
+      \ifstr{#1}{normal}{%
+        \MTversion@@{tudnormal}%
+      }{%
+        \ifstr{#1}{bold}{%
+          \MTversion@@{tudbold}%
+        }{}%
+      }%
+    \fi%
+  }%
+  \AtEndPreamble{%
+    \tud@cs@store{mathversion}%
+    \tud@cs@letltx{mathversion}{tud@mathversion}%
+  }%
+}
+\newcommand*\tud@cdmath@init{%
+  \if@tud@cdfont@fam@exist%
+    \if@tud@cdoldfont@active\else%
+      \if@tud@cdmath@active%
+        \def\tud@res@a##1{%
+          \ClassWarningNoLine{\TUD@Class@Name}%
+          {%
+            You should not load package `##1'\MessageBreak%
+            manually when option `cdmath=true' is active as\MessageBreak%
+            TUD-Script uses package `mathastext' internally\MessageBreak%
+            with a specific set of required options for the\MessageBreak%
+            math font setup%
+          }%
+        }%
+        \@ifpackageloaded{sansmath}{%
+          \tud@res@a{sansmath}%
+        }{}%
+        \@ifpackageloaded{mathastext}{%
+          \tud@res@a{mathastext}%
+        }{}%
+      \fi%
+      \PassOptionsToPackage{%
+        subdued,defaultmathsizes,nosmalldelims,%
+        defaultrm,defaultbf,defaultit,defaultsf,defaulttt,%
+        noequal,nohbar%
+      }{mathastext}%
+      \RequirePackage{mathastext}[2018/08/22]%
+      \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}%
+    \fi%
+    \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}%
+    \providecommand*\MTversion@@[1]{}%
+    \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}%
+    \if@tud@cdoldfont@active%
+      \tud@res@cnt=\z@\relax%
+      \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc%
+      \tud@math@loop@greeks@lc\tud@cdmath@declare@greek@lc%
+    \else%
+      \tud@cdmath@declare@greek@lgr%
+    \fi%
+    \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}%
+    \tud@cdmath@also@greeks%
+  \else%
+    \let\mv@tudnormal\mv@normal%
+    \let\mv@tudbold\mv@bold%
+    \if@tud@cdoldfont@active%
+      \let\mv@tuddin\mv@bold%
+    \fi%
+  \fi%
+}
+\newcommand*\tud@cdmath@@init[2]{%
+  \tud@cdfont@@set%
+  \tud@ttfont@@set%
+  \if@tud@cdoldfont@active%
+    \DeclareMathVersion{tudnormal}%
+    \DeclareMathVersion{tudbold}%
+    \DeclareMathVersion{tuddin}%
+    \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
+    \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
+    \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
+    \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
+    \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}%
+    \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}%
+    \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
+    \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
+    \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
+    \tud@if@ismathalphabet{\mathbold}{%
+      \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}%
+      \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}%
+      \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
     }{}%
-  \fi\fi%
-  \if@tud@universmath%
-    \DeclareMathVersion{univers}%
-    \DeclareMathVersion{universbold}%
-    \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}%
-    \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}%
-    \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}%
-    \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}%
-    \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}%
-    \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}%
-    \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}%
-    \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}%
-    \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}%
-    \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}%
-    \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}%
-    \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}%
-    \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}%
-    \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}%
-    \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}%
-    \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}%
-    \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}%
-    \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}%
-    \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}%
-    \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}%
-    \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}%
-    \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}%
-    \@ifpackageloaded{amsfonts}{%
-      \DeclareFontFamily{U}{\tud@univers a}{}%
-      \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}%
-      \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}%
-      \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}%
-      \DeclareFontFamily{U}{\tud@univers b}{}%
-      \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}%
-      \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}%
-      \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}%
-      \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}%
-      \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}%
+  \else%
+    \MTDeclareVersion[it]{tudnormal}{T1}{#1}{\tud@cdfont@md}{n}%
+    \MTDeclareVersion[it]{tudbold}{T1}{#1}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}%
+    \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}%
+    \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}%
+    \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}%
+    \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}%
+    \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}%
+    \tud@if@ismathalphabet{\mathbold}{%
+      \SetMathAlphabet{\mathbold}{tudnormal}{T1}{#1}{\tud@cdfont@bf}{it}%
+      \SetMathAlphabet{\mathbold}{tudbold}{T1}{#1}{\tud@cdfont@ebf}{it}%
     }{}%
   \fi%
-  \if@tud@dinboldmath%
-    \DeclareMathVersion{dinbold}%
-    \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
-    \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
-    \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}%
-    \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}%
-    \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
-    \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
-    \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
-    \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
-    \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
-    \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}%
-    \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}%
-  \fi%
-  \@ifpackageloaded{unicode-math}{%
-    \let\tud@font@math@set\relax%
-    \bool@set@lock{@tud@cdmath}{false}%
-  }{%
-    \tud@font@greek@check@slanted%
-    \tud@font@greek@loop\tud@font@greek@init%
-    \tud@font@math@set%
-  }%
-  \sbox\z@{\tud@dinbn$ $}%
-}
-\newcommand*\tud@font@greek@check@slanted{%
-  \let\@tempb\relax%
-  \let\@tempc\relax%
-  \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}%
-  \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}%
-  \@tempswafalse%
-  \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi%
-  \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi%
-  \if@tempswa%
-    \bool@std@lock{@tud@slantedgreek}{true}%
+  \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
+  \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
+  \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}%
+  \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}%
+  \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
+  \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
+  \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}%
+  \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}%
+  \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}%
+  \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}%
+  \if@tud@cdoldfont@active%
+    \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
+    \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
+    \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
+    \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}%
+    \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}%
   \fi%
-  \let\tud@font@greek@check@slanted\relax%
-}
-\BeforePackage{flexisym}{\tud@font@greek@check@slanted}
-\newcommand*\tud@font@greek@init[1]{%
-  \ifcsundef{up#1}{%
-    \if@tempswa%
-      \csletcs{up#1}{tud@up#1}%
-    \else%
-      \csletcs{up#1}{#1}%
+  \IfFileExists{ueus.fd}{%
+    \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}%
+    \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}%
+    \if@tud@cdoldfont@active%
+      \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}%
     \fi%
   }{}%
-  \ifcsundef{var#1}{%
-    \if@tempswa%
-      \csletcs{var#1}{#1}%
-    \else%
-      \csletcs{var#1}{tud@var#1}%
-    \fi%
+  \tud@if@ismathalphabet{\mathfrak}{%
+    \IfFileExists{ueuf.fd}{%
+      \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}%
+      \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}%
+      \if@tud@cdoldfont@active%
+        \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}%
+      \fi%
+    }{}%
   }{}%
-}
-\newcommand*\tud@font@math@set{%
-  \if@atdocument%
-    \if@tud@cdmath%
-      \if@tud@universmath\else%
-        \tud@font@math@missing@wrn{Univers}%
+  \AtBeginDocument{%
+    \@tud@res@swafalse%
+    \tud@if@issymbolfont{AMSa}{\@tud@res@swatrue}{}%
+    \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}%
+    \if@tud@res@swa%
+      \if@tud@cdoldfont@active%
+        \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}%
+        \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}%
+        \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}%
+        \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}%
+        \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}%
+        \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}%
+        \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}%
+        \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}%
+      \else%
+        \@ifpackageloaded{mdsymbol}{}{%
+          \appto\tud@cdmath@wrn{%
+            \ClassInfoNoLine{\TUD@Class@Name}%
+            {%
+              You may load package `mdsymbol' in order to\MessageBreak%
+              get symbols matching the used math font%
+            }%
+          }%
+        }%
       \fi%
-      \if@tud@dinboldmath\else%
-        \tud@font@math@missing@wrn{DIN-Bold}%
+    \fi%
+    \tud@if@issymbolfont{legacymaths}{%
+      \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
+      \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
+      \if@tud@cdoldfont@active%
+        \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
+      \fi%
+    }{}%
+    \if@tud@cdoldfont@active%
+      \if@tud@cdmath@active%
+        \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}%
       \fi%
-      \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{%
-        \bool@set@lock{@tud@cdmath}{false}%
-      }%
     \fi%
-  \fi%
-  \if@tud@universmath%
-    \if@tud@cdmath%
-      \tud@cmd@store{mv@normal}%
-      \tud@cmd@store{mv@bold}%
-      \let\mv@normal\mv@univers%
-      \let\mv@bold\mv@universbold%
-      \tud@font@greek@loop\tud@font@greek@set%
-    \else%
-      \tud@cmd@restore{mv@normal}%
-      \tud@cmd@restore{mv@bold}%
-      \tud@font@greek@loop\tud@font@greek@reset%
+  }%
+}
+\newcommand*\tud@cdmath@symb@list{}
+\newcommand*\tud@cdmath@declare@symb[4]{%
+  \listeadd\tud@cdmath@symb@list{#1}%
+  \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}%
+}
+\newcommand*\tud@cdmath@declare@alias[2]{%
+  \listeadd\tud@cdmath@symb@list{#1}%
+  \ifcsdef{tud@cdmath@symbol@#2}{%
+    \csedef{tud@cdmath@symbol@#1}{\csname tud@cdmath@symbol@#2\endcsname}%
+  }{}%
+}
+\newcommand*\tud@cdmath@char@list{}
+\newcommand*\tud@cdmath@declare@char[4]{%
+  \listeadd\tud@cdmath@char@list{#1}%
+  \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}%
+}
+\newcommand*\tud@DeclareMathSymbol[4]{%
+  \begingroup%
+    \edef\tud@res@a{%
+      \endgroup%
+      \noexpand\DeclareMathSymbol%
+        {\csname tud@cdmath@symbol@#1\endcsname}%
+        {\etex@unexpanded{#2}}{#3}{#4}%
+    }%
+  \tud@res@a%
+}
+\newtoks\tud@cdmath@symbols@toks
+\newcommand*\tud@cdmath@symbols@set{%
+  \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{%
+    \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list%
+    \forlistloop\tud@cdmath@symbols@set@chr\tud@cdmath@char@list%
+    \addto@hook\tud@cdmath@symbols@toks{\tud@cdmath@symbols@toks{}}%
+  }{}%
+}
+\newcommand*\tud@cdmath@symbols@set@cmd[1]{%
+  \ifcsdef{#1}{%
+    \tud@cs@store{#1}%
+    \addto@hook\tud@cdmath@symbols@toks{\tud@cs@restore{#1}}%
+  }{%
+    \addto@hook\tud@cdmath@symbols@toks{\csundef{#1}}%
+  }%
+  \ifcsdef{tud@cdmath@symbol@#1}{%
+    \tud@cs@letltx{#1}{tud@cdmath@symbol@#1}%
+  }{%
+    \csundef{#1}%
+  }%
+}
+\newcommand*\tud@cdmath@symbols@set@chr[1]{%
+  \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}%
+  \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}%
+  \begingroup%
+    \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}%
+    \def\tud@res@b##1"##2\@nil{"##2}%
+    \edef\tud@res@c{\expandafter\tud@res@b\tud@res@a\@nil}%
+    \edef\tud@res@a{%
+      \endgroup%
+      \global\mathcode`#1=\tud@res@c%
+    }%
+  \tud@res@a%
+}
+\newcommand*\tud@cdmath@symbols@reset{\the\tud@cdmath@symbols@toks}
+\newcommand*\tud@cdmath@declare@greek@uc[1]{%
+  \tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}%
+  \tud@cdmath@declare@symb{up#1}{\mathalpha}{operators}{\the\tud@res@cnt}%
+  \advance\tud@res@cnt\@ne\relax%
+}
+\newcommand*\tud@cdmath@declare@greek@lc[1]{%
+  \tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}%
+  \listeadd\tud@cdmath@symb@list{up#1}%
+  \advance\tud@res@cnt\@ne\relax%
+}
+\newcommand*\tud@cdmath@declare@greek@lgr{%
+  \tud@cdmath@declare@greek@@lgr{Gamma}{71}%
+  \tud@cdmath@declare@greek@@lgr{Delta}{68}%
+  \tud@cdmath@declare@greek@@lgr{Theta}{74}%
+  \tud@cdmath@declare@greek@@lgr{Lambda}{76}%
+  \tud@cdmath@declare@greek@@lgr{Xi}{88}%
+  \tud@cdmath@declare@greek@@lgr{Pi}{80}%
+  \tud@cdmath@declare@greek@@lgr{Sigma}{83}%
+  \tud@cdmath@declare@greek@@lgr{Upsilon}{85}%
+  \tud@cdmath@declare@greek@@lgr{Phi}{70}%
+  \tud@cdmath@declare@greek@@lgr{Psi}{89}%
+  \tud@cdmath@declare@greek@@lgr{Omega}{87}%
+  \tud@cdmath@declare@greek@@lgr{alpha}{97}%
+  \tud@cdmath@declare@greek@@lgr{beta}{98}%
+  \tud@cdmath@declare@greek@@lgr{gamma}{103}%
+  \tud@cdmath@declare@greek@@lgr{delta}{100}%
+  \tud@cdmath@declare@greek@@lgr{epsilon}{101}%
+  \tud@cdmath@declare@greek@@lgr{zeta}{122}%
+  \tud@cdmath@declare@greek@@lgr{eta}{104}%
+  \tud@cdmath@declare@greek@@lgr{theta}{106}%
+  \tud@cdmath@declare@greek@@lgr{iota}{105}%
+  \tud@cdmath@declare@greek@@lgr{kappa}{107}%
+  \tud@cdmath@declare@greek@@lgr{lambda}{108}%
+  \tud@cdmath@declare@greek@@lgr{mu}{109}%
+  \tud@cdmath@declare@greek@@lgr{nu}{110}%
+  \tud@cdmath@declare@greek@@lgr{xi}{120}%
+  \tud@cdmath@declare@greek@@lgr{pi}{112}%
+  \tud@cdmath@declare@greek@@lgr{rho}{114}%
+  \tud@cdmath@declare@greek@@lgr{sigma}{115}%
+  \tud@cdmath@declare@greek@@lgr{tau}{116}%
+  \tud@cdmath@declare@greek@@lgr{upsilon}{117}%
+  \tud@cdmath@declare@greek@@lgr{phi}{102}%
+  \tud@cdmath@declare@greek@@lgr{chi}{113}%
+  \tud@cdmath@declare@greek@@lgr{psi}{121}%
+  \tud@cdmath@declare@greek@@lgr{omega}{119}%
+  \tud@cdmath@declare@greek@@lgr{varepsilon}{101}%
+  \tud@cdmath@declare@greek@@lgr{vartheta}{106}%
+  \tud@cdmath@declare@greek@@lgr{varpi}{119}%
+  \tud@cdmath@declare@greek@@lgr{varrho}{114}%
+  \tud@cdmath@declare@greek@@lgr{varsigma}{99}%
+  \tud@cdmath@declare@greek@@lgr{varphi}{102}%
+}
+\newcommand*\tud@cdmath@declare@greek@@lgr[2]{%
+  \tud@cdmath@declare@symb{up#1}{\mathalpha}{tudupgrk}{#2}%
+  \tud@cdmath@declare@symb{it#1}{\mathalpha}{tuditgrk}{#2}%
+}
+\newcommand*\tud@cdmath@also@greeks{%
+  \tud@math@loop@greeks@all\tud@cdmath@also@@greeks%
+  \tud@math@loop@greeks@uc\tud@cdmath@also@@@greeks%
+}
+\newcommand*\tud@cdmath@also@@greeks[1]{%
+  \tud@cdmath@declare@alias{#1}{it#1}%
+  \tud@cdmath@declare@alias{other#1}{up#1}%
+  \ifcsundef{#1up}{}{%
+    \tud@cdmath@declare@alias{#1up}{up#1}%
+  }%
+  \@for\tud@res@a:={#1sl,sl#1,#1it}\do{%
+    \ifcsundef{\tud@res@a}{}{%
+      \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{it#1}%
+    }%
+  }%
+  \ifcsundef{#1other}{}{%
+    \tud@cdmath@declare@alias{#1other}{other#1}%
+  }%
+}
+\newcommand*\tud@cdmath@also@@@greeks[1]{%
+  \tud@lowerstring\tud@res@a{#1}%
+  \edef\tud@res@a{Up\tud@res@a}%
+  \ifcsundef{\tud@res@a}{}{%
+    \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}%
+  }%
+  \ifcsundef{var#1}{}{%
+    \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}%
+  }%
+}
+\newcommand*\tud@math@set{%
+  \if@tud@cdmath@active%
+    \tud@cdmath@wrn%
+    \tud@cs@store{mv@normal}%
+    \tud@cs@store{mv@bold}%
+    \let\mv@normal\mv@tudnormal%
+    \let\mv@bold\mv@tudbold%
+    \tud@cdmath@symbols@set%
+    \ifcase\tud@slantedgreek@num\relax% upright
+      \tud@math@loop@greeks@all\tud@math@upright@greeks%
+    \or% slanted
+      \tud@math@loop@greeks@all\tud@math@slanted@greeks%
+    \or% standard
+      \tud@math@loop@greeks@uc\tud@math@upright@greeks%
+      \tud@math@loop@greeks@lc\tud@math@slanted@greeks%
     \fi%
-  \fi%
-  \if@tud@slantedgreek%
-    \tud@font@greek@loop\tud@font@greek@slanted%
   \else%
-    \tud@font@greek@loop\tud@font@greek@upright%
+    \tud@cs@restore{mv@normal}%
+    \tud@cs@restore{mv@bold}%
+    \tud@cdmath@symbols@reset%
   \fi%
   \mathversion{normal}%
 }
-\newcommand*\tud@font@greek@set[1]{%
-  \tud@cmd@store{#1}%
-  \tud@cmd@store{up#1}%
-  \tud@cmd@store{var#1}%
-  \csletcs{#1}{tud@#1}%
-  \csletcs{up#1}{tud@up#1}%
-  \csletcs{var#1}{tud@var#1}%
-}
-\newcommand*\tud@font@greek@reset[1]{%
-  \tud@cmd@restore{#1}%
-  \tud@cmd@restore{up#1}%
-  \tud@cmd@restore{var#1}%
-}
-\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
-\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
+\newcommand*\tud@math@upright@greeks[1]{%
+  \ifcsundef{up#1}{}{%
+    \csletcs{#1}{up#1}%
+    \csletcs{other#1}{it#1}%
+  }%
+}
+\newcommand*\tud@math@slanted@greeks[1]{%
+  \ifcsundef{up#1}{}{%
+    \csletcs{#1}{it#1}%
+    \csletcs{other#1}{up#1}%
+  }%
+}
 \AtEndPreamble{%
   \if@tud@x@mweights@enabled%
     \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}%
-    \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
-    \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
     \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
+    \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
     \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
+    \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
     \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
   \fi%
-  \tud@font@check%
-  \tud@font@init%
+  \tud@cdfont@check%
+  \tud@cdfont@init%
+  \tud@ttfont@init%
+  \tud@cdmath@init%
+  \if@tud@x@bm@requested%
+    \UnPreventPackageFromLoading{bm}%
+    \if@tud@cdmath@active%
+      \tud@cs@store{mv@normal}%
+      \tud@cs@store{mv@bold}%
+      \let\mv@normal\mv@tudnormal%
+      \let\mv@bold\mv@tudbold%
+    \fi%
+    \RequirePackage{bm}[2017/01/16]%
+    \tud@cs@restore{mv@normal}%
+    \tud@cs@restore{mv@bold}%
+  \fi%
   \if@tud@x@siunitx@enabled%
-    \ifcase\tud@cdfont@num\relax% false
+    \if@tud@cdfont@active%
+      \if@tud@cdfont@heavy%
+        \def\tud@reserved{\TUDoptions{cdfont=heavy}}%
+      \else%
+        \def\tud@reserved{\TUDoptions{cdfont=true}}%
+      \fi%
+    \else%
       \def\tud@reserved{\TUDoptions{cdfont=false}}%
-    \or% true
-      \def\tud@reserved{\TUDoptions{cdfont=true}}%
-    \or% heavy
-      \def\tud@reserved{\TUDoptions{cdfont=heavy}}%
     \fi%
-    \expandafter\AtBeginDocument\expandafter{\tud@reserved}%
+    \expandafter\AfterEndPreamble\expandafter{\tud@reserved}%
     \TUDoptions{cdfont=false}%
   \fi%
   \tud@font@set%
-  \if@tud@x@bm@requested%
-    \tud@font@math@init%
-    \UnPreventPackageFromLoading{bm}%
-    \RequirePackage{bm}[2017/01/16]%
-  \fi%
-  \AtBeginDocument{\tud@font@math@init\let\tud@font@math@init\relax}%
+  \AtBeginDocument{%
+    \tud@math@map@greeks%
+    \tud@math@checkslanted@greeks%
+    \tud@math@set%
+  }%
 }
-\newrobustcmd*\ifdin{%
-  \ifx\f@family\tud@dinbold%
-    \expandafter\@firstoftwo%
-  \else%
-    \expandafter\@secondoftwo%
+\newcommand*\tud@head@font@light{}
+\newcommand*\tud@head@font@bold{}
+\newcommand*\tud@head@font@@bold{}
+\newcommand*\tud@head@font@set{%
+  \if@tud@cdfont@active\ifcase\tud@head@font@num\relax% false
+    \if@tud@head@font@set%
+      \ClassWarning{\TUD@Class@Name}{%
+        It isn't possible to use `cdhead=false'\MessageBreak%
+        together with `cdfont=true'%
+      }%
+    \fi%
+    \if@tud@cdfont@heavy%
+      \TUDoptions{cdhead=heavy}%
+    \else%
+      \TUDoptions{cdhead=true}%
+    \fi%
+  \fi\fi%
+  \if@tud@head@font@set%
+    \if@tud@x@mweights@enabled%
+      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+        {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}%
+      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+        {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}%
+      \protected\gdef\tud@head@font@@bold{%
+        \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}%
+      }%
+    \else%
+      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+        {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}%
+      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+        {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}%
+      \protected\gdef\tud@head@font@@bold{%
+        \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}%
+      }%
+    \fi%
+    \ifcase\tud@head@font@num\relax\else% true/heavy
+      \tud@head@cdfont@set%
+    \fi%
+    \global\@tud@head@font@setfalse%
+    \global\@tud@head@text@settrue%
   \fi%
 }
-\newcommand*\tud@sec@fontface[1][]{%
-  \if@tud@cdfont@din%
-    \tud@dinbn\tud@raggedright%
-  \else%
-    \sectfont#1%
+\newcommand*\tud@head@cdfont@set{%
+  \if@tud@cdfont@fam@exist%
+    \ifcase\tud@head@font@num\relax\or% true
+      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+        {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}%
+      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+        {\tud@cdfont@fam@lf}{sb}{n}{\tud@head@fontsize}%
+      \protected\gdef\tud@head@font@@bold{%
+        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{sb}{n}%
+      }%
+    \or% heavy
+      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+        {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}%
+      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+        {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}%
+      \protected\gdef\tud@head@font@@bold{%
+        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}%
+      }%
+    \fi%
   \fi%
 }
-\RequirePackage{textcase}[2004/10/07]
-\newcommand*\tud@makeuppercase[1]{%
-  \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
-  \protect\vphantom{\"A\"O\"U}%
-}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@head@cdfont@set{%
+    \if@tud@cdfont@fam@exist%
+      \ifcase\tud@head@font@num\relax\or% true
+        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+          {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}%
+      \or% heavy
+        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+          {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}%
+      \fi%
+      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+        {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}%
+      \protected\gdef\tud@head@font@@bold{%
+        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}%
+      }%
+    \fi%
+  }%
+\fi
 %%% From File: tudscr-fields.dtx
+\newcommand*\getfield[2][\@firstofone]{%
+  \begingroup%
+    \def\tud@res@b{#1}%
+    \ifcsdef{@@#2}{%
+      \letcs\tud@res@a{@@#2}%
+    }{%
+      \ifcsdef{@#2}{%
+        \letcs\tud@res@a{@#2}%
+      }{%
+        \let\tud@res@a\@empty%
+        \ClassWarning{\TUD@Class@Name}{%
+          The internal field `@#2' does not exist%
+        }%
+      }%
+    }%
+    \edef\tud@res@a{%
+      \endgroup%
+      \expandonce\tud@res@b{\expandonce\tud@res@a}%
+    }%
+  \tud@res@a%
+}
 \newcommand*\@faculty{}
 \newcommand*\@department{}
 \newcommand*\@institute{}
 \newcommand*\@chair{}
-\newcommand*\@@faculty{}
-\newcommand*\@@department{}
-\newcommand*\@@institute{}
-\newcommand*\@@chair{}
+\newcommand*\@facultyfoot{}
+\newcommand*\@departmentfoot{}
+\newcommand*\@institutefoot{}
+\newcommand*\@chairfoot{}
 \newcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}}
 \newcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}}
 \newcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}}
@@ -1938,14 +3092,14 @@
 \newcommand*\tud@foot@line@add[3]{%
   \tud@head@text@field{#1}{#2}%
   \ifx\@empty#3\relax%
-    \global\csletcs{@@#1}{@#1}%
+    \global\csletcs{@#1foot}{@#1}%
   \else%
-    \csgdef{@@#1}{\trim@spaces{#3}}%
+    \csgdef{@#1foot}{\trim@spaces{#3}}%
   \fi%
 }
 \newcommand*\tud@foot@line@write[1]{%
-  \protected@edef\@tempa{\csuse{@@#1}}%
-  \ifx\@tempa\@empty\else\newline\mbox{\csuse{@@#1}}\fi%
+  \protected@edef\@tempa{\csuse{@#1foot}}%
+  \ifx\@tempa\@empty\else\newline\mbox{\csuse{@#1foot}}\fi%
 }
 \newcommand*\@@title{}
 \robustify\@title
@@ -1994,14 +3148,31 @@
 }
 \newcommand*\@authormore{}
 \newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces}
+\newcommand*\@emailaddress{}
+\newrobustcmd*\emailaddress{%
+  \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}%
+}
+\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}}
+\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}}
+\AfterPackage*{hyperref}{%
+  \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{%
+    \gdef\@emailaddress{%
+      \begingroup%
+        \urlstyle{same}%
+        \hypersetup{#1}%
+        \href{mailto:#2}{\nolinkurl{#2}}%
+      \endgroup%
+    }%
+  }%
+}
 \newcommand*\@course{}
 \newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces}
 \newcommand*\@discipline{}
 \newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces}
-\providecommand*\publisher[1]{\publishers{#1}}
-\newcommand*\@@professor{}
-\newcommand*\professor[1]{\gdef\@@professor{#1}}
+\newcommand*\@professorfoot{}
+\newcommand*\professor[1]{\gdef\@professorfoot{#1}}
 \newcommand*\supervisor[1]{}
+\providecommand*\publisher[1]{\publishers{#1}}
 \newcommand*\@webpage{}
 \newrobustcmd*\webpage{%
   \kernel@ifstar{\tud@webpage@simple}{\tud@webpage@hyper}%
@@ -2019,8 +3190,14 @@
     }%
   }%
 }
-\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}}
-\newcommand*\tud@x@isodate@printdate[2]{%
+\TUD@UnwindPackage{isodate}{%
+  \@ifpackageloaded{datetime2}{%
+    \providecommand*\printdate[1]{\DTMDate{#1}}%
+  }{%
+    \providecommand*\printdate[1]{#1}%
+  }%
+}
+\newcommand*\tud@printdate[2]{%
   \ifx\today#2\relax%
     \gdef#1{#2}%
   \else%
@@ -2053,30 +3230,31 @@
   }{\tud@date@set}%
 }
 \newcommand*\tud@date@set[2][]{%
-  \TUD@parameter@set{date}{#1}%
-  \tud@x@isodate@printdate{\@date}{#2}%
+  \tud@toks@{#1}%
+  \TUD@parameter@set{date}{\the\tud@toks@}%
+  \tud@printdate{\@date}{#2}%
   \global\let\tud@date@check\relax%
 }
-\newcommand*\tud@date@pre{}
-\newcommand*\tud@date@app{}
+\newcommand*\@beforedate{}
+\newcommand*\@afterdate{}
 \TUD@parameter@family{date}{%
-  \TUD@parameter@def{before}{\def\tud@date@pre{#1}}%
+  \TUD@parameter@def{before}{\def\@beforedate{#1}}%
   \TUD@parameter@let{pre}{before}%
   \TUD@parameter@let{prefix}{before}%
-  \TUD@parameter@def{after}{\def\tud@date@app{#1}}%
+  \TUD@parameter@def{after}{\def\@afterdate{#1}}%
   \TUD@parameter@let{app}{after}%
   \TUD@parameter@let{suffix}{after}%
-  \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}%
+  \TUD@parameter@def{place}{\def\@place{#1}\def\@beforedate{#1,}}%
   \TUD@parameter@handler@value{after}%
 }
 \newcommand*\tud@date@print{%
   \ifx\@date\@empty\else%
-    \ifx\tud@date@pre\@empty\else%
-      \expandafter\trim@spaces@noexp\expandafter{\tud@date@pre}\nobreakspace%
+    \ifx\@beforedate\@empty\else%
+      \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace%
     \fi%
     \@date%
-    \ifx\tud@date@app\@empty\else%
-      \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\tud@date@app}%
+    \ifx\@afterdate\@empty\else%
+      \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}%
     \fi%
   \fi%
 }
@@ -2089,23 +3267,6 @@
 \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}}
 \newcommand*\@telefax{}
 \newrobustcmd*\telefax[1]{\gdef\@telefax{#1}}
-\newcommand*\@emailaddress{}
-\newrobustcmd*\emailaddress{%
-  \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}%
-}
-\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}}
-\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}}
-\AfterPackage*{hyperref}{%
-  \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{%
-    \gdef\@emailaddress{%
-      \begingroup%
-        \urlstyle{same}%
-        \hypersetup{#1}%
-        \href{mailto:#2}{\nolinkurl{#2}}%
-      \endgroup%
-    }%
-  }%
-}
 \newcommand*\tud@multiple@@split{}
 \newcommand*\tud@multiple@split[1]{%
   \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{%
@@ -2118,8 +3279,8 @@
   }%
   \begingroup%
     \let\and\relax%
-    \def\newline{}%
-    \def\\{}%
+    \let\newline\@empty%
+    \let\\\@empty%
     \edef\@tempa{\csname#1\endcsname\and}%
   \expandafter\endgroup%
   \expandafter\tud@multiple@@split\@tempa\relax%
@@ -2133,7 +3294,7 @@
   \@tempb%
 }
 \newcommand*\tud@multiple@fields@store[2]{%
-  \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}%
+  \def\@tempa##1{\ifcsdef{@##1}{\tud@cs@store{@##1}}{}}%
   \letcs\@tempb{tud@split#1@list}%
   \let\and\relax%
   \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}%
@@ -2146,7 +3307,7 @@
 \newcommand*\tud@multiple@fields@restore[1]{%
   \def\@tempa##1{%
     \ifcsdef{@##1}{%
-      \tud@cmd@restore{@##1}%
+      \tud@cs@restore{@##1}%
       \global\csletcs{@##1}{@##1}%
     }{}%
   }%
@@ -2179,12 +3340,12 @@
 }
 \newcommand*\tud@split@author@do[2]{}
 \newcommand*\tud@split@author@list{%
-  authormore,course,discipline,office,telephone,telefax,emailaddress%
+  authormore,course,discipline,emailaddress,office,telephone,telefax%
 }
 \newcommand*\tud@split@contactperson@do[2]{}
-\newcommand*\tud@split@contactperson@list{office,telephone,telefax,emailaddress}
-%%% From File: tudscr-locale.dtx
-\newcommand*\tud@locale@define[1]{%
+\newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax}
+%%% From File: tudscr-localization.dtx
+\newcommand*\tud@localization@define[1]{%
   \providecommand*#1{%
     \ClassError{\TUD@Class@Name}{%
       `\string#1' not defined for language `\languagename'%
@@ -2198,29 +3359,30 @@
     }%
   }%
 }
-\tud@locale@define{\coursename}
-\tud@locale@define{\disciplinename}
-\tud@locale@define{\listingname}
-\tud@locale@define{\listlistingname}
-\tud@locale@define{\dissertationname}
-\tud@locale@define{\diplomathesisname}
-\tud@locale@define{\masterthesisname}
-\tud@locale@define{\bachelorthesisname}
-\tud@locale@define{\studentthesisname}
-\tud@locale@define{\studentresearchname}
-\tud@locale@define{\projectpapername}
-\tud@locale@define{\seminarpapername}
-\tud@locale@define{\termpapername}
-\tud@locale@define{\researchname}
-\tud@locale@define{\logname}
-\tud@locale@define{\internshipname}
-\tud@locale@define{\reportname}
-\tud@locale@define{\authorname}
-\tud@locale@define{\contactname}
-\tud@locale@define{\contactpersonname}
+\tud@localization@define{\coursename}
+\tud@localization@define{\disciplinename}
+\tud@localization@define{\listingname}
+\tud@localization@define{\listlistingname}
+\tud@localization@define{\dissertationname}
+\tud@localization@define{\diplomathesisname}
+\tud@localization@define{\masterthesisname}
+\tud@localization@define{\bachelorthesisname}
+\tud@localization@define{\studentthesisname}
+\tud@localization@define{\studentresearchname}
+\tud@localization@define{\projectpapername}
+\tud@localization@define{\seminarpapername}
+\tud@localization@define{\termpapername}
+\tud@localization@define{\researchname}
+\tud@localization@define{\logname}
+\tud@localization@define{\internshipname}
+\tud@localization@define{\reportname}
+\tud@localization@define{\authorname}
+\tud@localization@define{\contactname}
+\tud@localization@define{\contactpersonname}
 \newcommand*\tud@ifin@and[1]{%
   \begingroup%
     \let\and\relax%
+    \robustify\\%
     \protected@edef\@tempb{#1}%
     \def\@tempa##1\and##2\relax{%
       \IfArgIsEmpty{##2}{%
@@ -2232,65 +3394,65 @@
     \expandafter\@tempa\@tempb\and\relax%
   \endgroup
 }
-\newcommand*\tud@locale@german{%
+\newcommand*\tud@localization@german{%
   \providecaptionname{%
     german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
   }%
 }
-\tud@locale@german{\coursename}{Studiengang}%
-\tud@locale@german{\disciplinename}{Studienrichtung}%
-\tud@locale@german{\listingname}{Quelltext}%
-\tud@locale@german{\listlistingname}{Quelltextverzeichnis}%
-\tud@locale@german{\dissertationname}{Dissertation}%
-\tud@locale@german{\diplomathesisname}{Diplomarbeit}%
-\tud@locale@german{\masterthesisname}{Master-Arbeit}%
-\tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}%
-\tud@locale@german{\studentthesisname}{Studienarbeit}%
-\tud@locale@german{\studentresearchname}{Gro\ss{}er Beleg}%
-\tud@locale@german{\projectpapername}{Projektarbeit}%
-\tud@locale@german{\seminarpapername}{Seminararbeit}%
-\tud@locale@german{\termpapername}{Hausarbeit}%
-\tud@locale@german{\researchname}{Forschungsbericht}%
-\tud@locale@german{\logname}{Protokoll}%
-\tud@locale@german{\internshipname}{Praktikumsbericht}%
-\tud@locale@german{\reportname}{Bericht}%
-\tud@locale@german{\authorname}{Autor}%
-\tud@locale@german{\contactname}{Kontakt}%
-\tud@locale@german{\contactpersonname}{Ansprechpartner}%
-\newcommand*\tud@locale@english{%
+\tud@localization@german{\coursename}{Studiengang}%
+\tud@localization@german{\disciplinename}{Studienrichtung}%
+\tud@localization@german{\listingname}{Quelltext}%
+\tud@localization@german{\listlistingname}{Quelltextverzeichnis}%
+\tud@localization@german{\dissertationname}{Dissertation}%
+\tud@localization@german{\diplomathesisname}{Diplomarbeit}%
+\tud@localization@german{\masterthesisname}{Master-Arbeit}%
+\tud@localization@german{\bachelorthesisname}{Bachelor-Arbeit}%
+\tud@localization@german{\studentthesisname}{Studienarbeit}%
+\tud@localization@german{\studentresearchname}{Gro\ss{}er Beleg}%
+\tud@localization@german{\projectpapername}{Projektarbeit}%
+\tud@localization@german{\seminarpapername}{Seminararbeit}%
+\tud@localization@german{\termpapername}{Hausarbeit}%
+\tud@localization@german{\researchname}{Forschungsbericht}%
+\tud@localization@german{\logname}{Protokoll}%
+\tud@localization@german{\internshipname}{Praktikumsbericht}%
+\tud@localization@german{\reportname}{Bericht}%
+\tud@localization@german{\authorname}{Autor}%
+\tud@localization@german{\contactname}{Kontakt}%
+\tud@localization@german{\contactpersonname}{Ansprechpartner}%
+\newcommand*\tud@localization@english{%
   \providecaptionname{%
     american,australian,british,canadian,english,newzealand,UKenglish,USenglish%
   }%
 }
-\tud@locale@english{\coursename}{Course}%
-\tud@locale@english{\disciplinename}{Discipline}%
-\tud@locale@english{\listingname}{Listing}%
-\tud@locale@english{\listlistingname}{List of Listings}%
-\tud@locale@english{\dissertationname}{Dissertation}%
-\tud@locale@english{\diplomathesisname}{Diploma Thesis}%
-\tud@locale@english{\masterthesisname}{Master Thesis}%
-\tud@locale@english{\bachelorthesisname}{Bachelor Thesis}%
-\tud@locale@english{\studentthesisname}{Student Thesis}%
-\tud@locale@english{\studentresearchname}{Student Research Project}%
-\tud@locale@english{\projectpapername}{Project Paper}%
-\tud@locale@english{\seminarpapername}{Seminar Paper}%
-\tud@locale@english{\termpapername}{Term Paper}%
-\tud@locale@english{\researchname}{Research Report}%
-\tud@locale@english{\logname}{Log}%
-\tud@locale@english{\internshipname}{Internship Report}%
-\tud@locale@english{\reportname}{Report}%
-\tud@locale@english{\authorname}{Author}%
-\tud@locale@english{\contactname}{Contact}%
-\tud@locale@english{\contactpersonname}{Contact}%
+\tud@localization@english{\coursename}{Course}%
+\tud@localization@english{\disciplinename}{Discipline}%
+\tud@localization@english{\listingname}{Listing}%
+\tud@localization@english{\listlistingname}{List of Listings}%
+\tud@localization@english{\dissertationname}{Dissertation}%
+\tud@localization@english{\diplomathesisname}{Diploma Thesis}%
+\tud@localization@english{\masterthesisname}{Master Thesis}%
+\tud@localization@english{\bachelorthesisname}{Bachelor Thesis}%
+\tud@localization@english{\studentthesisname}{Student Thesis}%
+\tud@localization@english{\studentresearchname}{Student Research Project}%
+\tud@localization@english{\projectpapername}{Project Paper}%
+\tud@localization@english{\seminarpapername}{Seminar Paper}%
+\tud@localization@english{\termpapername}{Term Paper}%
+\tud@localization@english{\researchname}{Research Report}%
+\tud@localization@english{\logname}{Log}%
+\tud@localization@english{\internshipname}{Internship Report}%
+\tud@localization@english{\reportname}{Report}%
+\tud@localization@english{\authorname}{Author}%
+\tud@localization@english{\contactname}{Contact}%
+\tud@localization@english{\contactpersonname}{Counterpart}%
 \AfterPackage{listings}{%
   \renewcommand*\lstlistingname{\listingname}%
   \renewcommand*\lstlistlistingname{\listlistingname}%
 }
 \AfterPackage{mathswap}{%
-  \tud@locale@german{\@commaswap}{,}%
-  \tud@locale@german{\@dotswap}{\,}%
-  \tud@locale@english{\@commaswap}{\,}%
-  \tud@locale@english{\@dotswap}{.}%
+  \tud@localization@german{\@commaswap}{,}%
+  \tud@localization@german{\@dotswap}{\,}%
+  \tud@localization@english{\@commaswap}{\,}%
+  \tud@localization@english{\@dotswap}{.}%
 }
 %%% From File: tudscr-area.dtx
 \newif\if@tud@x@crop@center
@@ -2305,7 +3467,7 @@
   }%
   \pretocmd{\CROP@center}{%
     \@tud@x@crop@centertrue%
-  }{}{\tud@patch@wrn{CROP@center}}
+  }{}{\tud@patch@wrn{CROP@center}}%
 }
 \newif\if@tud@x@standalone@crop
 \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop}
@@ -2326,21 +3488,22 @@
 \newlength\tud@len@areadiff
 \newlength\tud@len@areavskip
 \tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{}
+\newcommand*\tud@head@fontsize{}
 \newif\if@tud@cdgeometry@adjust
-\newlength\tud@len@layoutheight
 \newlength\tud@len@layoutwidth
+\newlength\tud@len@layoutheight
 \newlength\tud@len@layouthoffset
 \newlength\tud@len@layoutvoffset
-\newcommand*\tud@cdgeometry@set{%
-  \ifGm@layout%
-    \setlength\tud@len@layoutheight{\Gm@layoutheight}%
-    \setlength\tud@len@layoutwidth{\Gm@layoutwidth}%
-  \else%
-    \setlength\tud@len@layoutheight{\paperheight}%
+\newcommand*\tud@cdgeometry@assignlayout{%
+  \ifdim\tud@len@layoutwidth<\p@\relax%
     \setlength\tud@len@layoutwidth{\paperwidth}%
   \fi%
-  \setlength\tud@len@layouthoffset{\Gm@layouthoffset}%
-  \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}%
+  \ifdim\tud@len@layoutheight<\p@\relax%
+    \setlength\tud@len@layoutheight{\paperheight}%
+  \fi%
+}
+\newcommand*\tud@cdgeometry@set{%
+  \tud@cdgeometry@assignlayout%
   \tud@if@v@lower{2.05}{%
     \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax%
       \def\@tempa{0}%
@@ -2406,8 +3569,8 @@
     \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
     \setlength\tud@len@thinline{0.25pt}%
     \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
-    \setlength{\@tempdima}{4.5pt}%
-    \setlength{\@tempdima}{\@tempa\@tempdima}%
+    \setlength\@tempdima{4.5pt}%
+    \setlength\@tempdima{\@tempa\@tempdima}%
     \edef\tud@head@fontsize{\strip@pt\@tempdima}%
   \or% <=A6/B6
     \setlength\tud@len@widemargin{15mm}%
@@ -2468,8 +3631,8 @@
     \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
     \setlength\tud@len@thinline{2pt}%
     \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
-    \setlength{\@tempdima}{36pt}%
-    \setlength{\@tempdima}{\@tempa\@tempdima}%
+    \setlength\@tempdima{36pt}%
+    \setlength\@tempdima{\@tempa\@tempdima}%
     \edef\tud@head@fontsize{\strip@pt\@tempdima}%
   \fi%
   \ifnum\tud@cdgeometry@calc@num=\tw@\relax%
@@ -2477,8 +3640,8 @@
     \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
     \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
     \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
-    \setlength{\@tempdima}{\tud@head@fontsize pt}%
-    \setlength{\@tempdima}{\@tempa\@tempdima}%
+    \setlength\@tempdima{\tud@head@fontsize pt}%
+    \setlength\@tempdima{\@tempa\@tempdima}%
     \edef\tud@head@fontsize{\strip@pt\@tempdima}%
   \fi%
   \global\@tud@head@font@settrue%
@@ -2498,13 +3661,19 @@
     \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}%
   \fi%
 }
-\newcommand*\tud@cdgeometry@process{}
-\newcommand*\tud@cdgeometry@@process{}
+\newcommand*\tud@cdgeometry@process{%
+  \tud@cdgeometry@@process%
+  \KOMAoptions{pagesize=\@pagesizelast}%
+  \global\@tud@mainlogo@settrue%
+  \gdef\tud@currentgeometry{}%
+  \expandafter\pagestyle\expandafter{\currentpagestyle}%
+}
 \if@tud@x@standalone@crop
   \PreventPackageFromLoading{geometry}%
+  \let\tud@cdgeometry@process\relax%
 \else
   \RequirePackage{geometry}[2010/09/12]%
-\fi
+\fi%
 \AfterPackage*{geometry}{%
   \CheckCommand*\Gm@initnewgm{%
     \Gm@passfalse
@@ -2642,109 +3811,149 @@
     }{\@nameuse{Gm@restore@@#1}%
     \Gm@changelayout}%
   }%
-  \tud@cmd@store{geometry}
-  \tud@cmd@store{newgeometry}
   \newif\if@tud@x@geometry@enabled%
   \@tud@x@geometry@enabledtrue%
-  \newcommand*\tud@setgeometry[1]{%
-    \@tud@x@geometry@enabledfalse%
-    \ifGm@pass%
-      \def\@tempb{}%
-    \else%
-      \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}%
-      \ifGm@layout%
-        \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}%
-      \fi%
-    \fi%
+  \tud@cs@store{geometry}%
+  \tud@cs@store{newgeometry}%
+  \renewcommand*\geometry[1]{%
+    \tud@x@geometry@user{#1}{geometry}%
+  }%
+  \renewcommand*\newgeometry[1]{%
+    \tud@cs@store{Gm@restore@org}%
+    \tud@x@geometry@user{#1}{newgeometry}%
+    \tud@cs@restore{Gm@restore@org}%
+  }%
+  \renewcommand*\restoregeometry[1][custom]{%
+    \tud@cdgeometry@reset{#1}%
     \if@atdocument%
-      \edef\@tempa{\@tempb,#1}%
-      \tud@cmd@store{Gm@restore@org}%
-      \eappto\Gm@restore@org{%
-        \paperwidth=\the\paperwidth\relax%
-        \paperheight=\the\paperheight\relax%
-      }%
-      \def\@tempc{\tud@cmd@use{newgeometry}}%
-      \expandafter\@tempc\expandafter{\@tempa}%
-      \tud@cmd@restore{Gm@restore@org}%
-    \else%
-      \Gm@initnewgm%
-      \edef\@tempa{%
-        paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1%
-      }%
-      \def\@tempc{\tud@cmd@use{geometry}}%
-      \expandafter\@tempc\expandafter{\@tempa}%
+      \ifcase\tud@cdgeometry@num\relax% false
+        \tud@loadgeometry{init@typearea}%
+        \@tud@x@geometry@fixmarginstrue%
+      \or% custom
+        \tud@loadgeometry{init@custom}%
+        \@tud@x@geometry@fixmarginstrue%
+      \fi%
+      \tud@cdgeometry@process%
     \fi%
-    \@tud@x@geometry@enabledtrue%
   }%
-  \newcommand*\tud@savegeometry[1]{%
-    \def\Gm@restore{}%
-    \savegeometry{#1}%
-    \csepreto{Gm@restore@@#1}{%
-      \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}%
-      \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}%
-      \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset%
-      \ifGm@includemp%
-        \noexpand\Gm@includemptrue%
-      \else%
-        \noexpand\Gm@includempfalse%
-      \fi%
-      \ifGm@layout%
-        \noexpand\Gm@layouttrue%
-      \else%
-        \noexpand\Gm@layoutfalse%
+  \apptocmd{\Gm@changelayout}{%
+    \if@tud@x@geometry@enabled%
+      \if@atdocument%
+        \@tud@x@geometry@fixmarginstrue%
+        \tud@cdgeometry@reset{custom}%
+        \tud@cdgeometry@process%
       \fi%
-    }%
+    \fi%
+  }{}{\tud@patch@wrn{Gm@changelayout}}%
+  \newif\if@tud@x@geometry@fixmargins%
+  \newcommand*\tud@x@geometry@fixmargins{%
+    \ifGm@pass\else%
+      \addtolength\oddsidemargin{-\tud@len@layouthoffset}%
+      \addtolength\evensidemargin{-\tud@len@layouthoffset}%
+      \addtolength\topmargin{-\tud@len@layoutvoffset}%
+      \@tud@x@geometry@fixmarginsfalse%
+    \fi%
   }%
-  \newcommand*\tud@loadgeometry[1]{%
-    \@tud@x@geometry@enabledfalse%
-    \loadgeometry{#1}%
-    \@currsize%
-    \if@tud@x@crop@center\CROP@center\fi%
-    \@tud@x@geometry@enabledtrue%
+  \newcommand*\tud@x@geometry@paper{}%
+  \newcommand*\tud@x@geometry@layout{}%
+  \newcommand*\tud@x@geometry@parameter{}%
+  \newcommand*\tud@x@geometry@init{}%
+  \newcommand*\tud@x@geometry@user[2]{%
+    \let\tud@x@geometry@paper\@empty%
+    \let\tud@x@geometry@layout\@empty%
+    \let\tud@x@geometry@parameter\@empty%
+    \TUD@parameter@set{geometry}{#1}%
+    \ifx\tud@x@geometry@layout\@empty\else%
+      \begingroup%
+        \tud@x@geometry@area@set{layout}%
+        \edef\tud@res@a{%
+          \endgroup%
+            \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}%
+            \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}%
+        }%
+      \tud@res@a%
+    \fi%
+    \tud@x@geometry@area@set{paper}%
+    \ifstr{#2}{newgeometry}{%
+      \eappto\Gm@restore@org{%
+        \noexpand\paperwidth=\the\paperwidth\relax%
+        \noexpand\paperheight=\the\paperheight\relax%
+      }%
+      \tud@x@geometry@getlayout{\tud@res@a}%
+      \epreto{\tud@x@geometry@parameter}{\tud@res@a,}%
+      \def\tud@res@a{\tud@cs@use{newgeometry}}%
+      \expandafter\tud@res@a\expandafter{\tud@x@geometry@parameter}%
+      \edef\tud@x@geometry@init{\tud@x@geometry@parameter}%
+    }{%
+      \eappto\tud@x@geometry@init{\tud@x@geometry@parameter}%
+    }%
   }%
   \TUD@parameter@family{geometry}{%
-    \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}%
+    \TUD@parameter@def{paper}{\tud@x@geometry@area@def{paper}{#1}}%
     \TUD@parameter@let{papername}{paper}%
-    \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}%
-    \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}%
     \TUD@parameter@def{papersize}{%
       \def\@tempa##1,##2,##3\@nil{%
         \IfArgIsEmpty{##2}{%
-          \tud@area@def{paper}{##1:##1}%
+          \tud@x@geometry@area@def{paper}{##1:##1}%
+        }{%
+          \tud@x@geometry@area@def{paper}{##1:##2}%
+        }%
+      }%
+      \@tempa#1,,\@nil%
+    }%
+    \TUD@parameter@def{paperwidth}{%
+      \tud@x@geometry@area@def{paper}{#1:\paperheight}%
+    }%
+    \TUD@parameter@def{paperheight}{%
+      \tud@x@geometry@area@def{paper}{\paperwidth:#1}%
+    }%
+    \TUD@parameter@def{layout}{%
+      \ifstr{#1}{false}{%
+        \setlength\tud@len@layoutwidth{\z@}%
+        \setlength\tud@len@layoutheight{\z@}%
+        \setlength\tud@len@layouthoffset{\z@}%
+        \setlength\tud@len@layoutvoffset{\z@}%
+      }{%
+        \tud@x@geometry@area@def{layout}{#1}%
+      }%
+    }%
+    \TUD@parameter@let{layoutname}{layout}%
+    \TUD@parameter@def{layoutsize}{%
+      \def\@tempa##1,##2,##3\@nil{%
+        \IfArgIsEmpty{##2}{%
+          \tud@x@geometry@area@def{layout}{##1:##1}%
         }{%
-          \tud@area@def{paper}{##1:##2}%
+          \tud@x@geometry@area@def{layout}{##1:##2}%
         }%
       }%
       \@tempa#1,,\@nil%
     }%
-    \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}%
-    \TUD@parameter@let{layoutname}{layout}%
-    \TUD@parameter@def{layoutwidth}{%
-      \tud@area@def{layout}{#1:\the\tud@len@layoutheight}%
-    }%
-    \TUD@parameter@def{layoutheight}{%
-      \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}%
-    }%
-    \TUD@parameter@def{layoutsize}{%
+    \TUD@parameter@def{layoutwidth}{\setlength\tud@len@layoutwidth{#1}}%
+    \TUD@parameter@def{layoutheight}{\setlength\tud@len@layoutheight{#1}}%
+    \TUD@parameter@def{layoutoffset}{%
       \def\@tempa##1,##2,##3\@nil{%
         \IfArgIsEmpty{##2}{%
-          \tud@area@def{layout}{##1:##1}%
+          \setlength\tud@len@layouthoffset{##1}%
+          \setlength\tud@len@layoutvoffset{##1}%
         }{%
-          \tud@area@def{layout}{##1:##2}%
+          \setlength\tud@len@layouthoffset{##1}%
+          \setlength\tud@len@layoutvoffset{##2}%
         }%
       }%
       \@tempa#1,,\@nil%
     }%
+    \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}%
+    \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}%
     \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}%
     \TUD@parameter@handler@macro{%
       \eappto\tud@x@geometry@parameter{%
         \expandonce\kv@key=\expandonce\kv@value,%
       }%
     }{%
-      \tud@area@def{paper}{#2}%
+      \tud@x@geometry@area@def{paper}{#2}%
     }%
-  }
-  \newcommand*\tud@area@def[2]{%
+  }%
+  \newcommand*\tud@x@geometry@area@def[2]{%
     \tud@lowerstring{\@tempa}{#2}%
     \def\@tempb##1paper##2\@nil{%
       \ifstr{##2}{paper}{\def\@tempa{##1}}{}%
@@ -2807,150 +4016,123 @@
     \fi%
     \if@tempswa%
       \cseappto{tud@x@geometry@#1}{\@tempa,}%
-      \def\@tempb##1:##2:##3\@nil{%
-        \IfArgIsEmpty{##2}{}{%
-          \ifstr{#1}{paper}{%
-            \setlength\paperwidth{##1}%
-            \setlength\paperheight{##2}%
-          }{%
-            \ifstr{#1}{layout}{%
-              \setlength\tud@len@layoutwidth{##1}%
-              \setlength\tud@len@layoutheight{##2}%
-            }{}%
-          }%
-        }%
-      }%
-      \expandafter\@tempb\@tempa::\@nil%
     \else%
       \appto\tud@x@geometry@parameter{#2,}%
     \fi%
-  }
-  \newcommand*\tud@area@set[1]{%
+  }%
+  \newcommand*\tud@x@geometry@area@set[1]{%
     \letcs{\@tempa}{tud@x@geometry@#1}%
     \ifdefvoid{\@tempa}{}{%
       \def\@tempb##1:##2:##3\@nil{%
-        \tud@cmd@store{@tempa}%
-        \tud@cmd@store{@tempb}%
-        \tud@cmd@store{@tempc}%
-        \IfArgIsEmpty{##2}{%
-          \KOMAoption{paper}{##1}%
-        }{%
-          \if@landscape%
-            \KOMAoption{paper}{##2:##1}%
-          \else%
-            \KOMAoption{paper}{##1:##2}%
-          \fi%
-        }%
-        \tud@cmd@restore{@tempa}%
-        \tud@cmd@restore{@tempb}%
-        \tud@cmd@restore{@tempc}%
+        \begingroup%
+          \IfArgIsEmpty{##2}{%
+            \def\@tempb{\KOMAoption{paper}{##1}}%
+          }{%
+            \if@landscape%
+              \def\@tempb{\KOMAoption{paper}{##2:##1}}%
+            \else%
+              \def\@tempb{\KOMAoption{paper}{##1:##2}}%
+            \fi%
+          }%
+          \edef\@tempb{\endgroup\expandonce\@tempb}%
+        \@tempb%
       }%
       \def\@tempc##1{\@tempb##1::\@nil}%
       \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}%
     }%
-  }
-  \newcommand*\tud@x@geometry@init{}
-  \newcommand*\tud@x@geometry@paper{}
-  \newcommand*\tud@x@geometry@layout{}
-  \newcommand*\tud@x@geometry@parameter{}
-  \newcommand*\tud@geometry[2]{%
-    \ifGm@layout%
-      \setlength\tud@len@layoutheight{\Gm@layoutheight}%
-      \setlength\tud@len@layoutwidth{\Gm@layoutwidth}%
+  }%
+  \newcommand*\tud@x@geometry@getlayout[1]{%
+    \ifGm@pass%
+      \let#1\@empty%
     \else%
-      \setlength\tud@len@layoutheight{\paperheight}%
-      \setlength\tud@len@layoutwidth{\paperwidth}%
-    \fi%
-    \let\tud@x@geometry@paper\@empty%
-    \let\tud@x@geometry@layout\@empty%
-    \let\tud@x@geometry@parameter\@empty%
-    \TUD@parameter@set{geometry}{#1}%
-    \tud@area@set{paper}%
-    \ifstr{#2}{newgeometry}{%
-      \eappto\Gm@restore@org{%
-        \paperwidth=\the\paperwidth\relax%
-        \paperheight=\the\paperheight\relax%
-      }%
-    }{%
-      \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{%
-        paperwidth=\the\paperwidth,paperheight=\the\paperheight,%
-      }%
-    }%
-    \ifx\tud@x@geometry@layout\@empty\else%
+      \tud@cdgeometry@assignlayout%
       \begingroup%
-        \setlength\paperwidth{\Gm@layoutwidth}%
-        \setlength\paperheight{\Gm@layoutheight}%
-        \tud@area@set{layout}%
-        \edef\tud@reserved{%
+        \@tud@res@swafalse%
+        \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi%
+        \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi%
+        \edef\tud@res@a{%
           \endgroup%
-          \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{%
-            layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,%
+          \etex@unexpanded{\def#1}{%
+            layoutoffset={%
+              \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset%
+            }%
+            \if@tud@res@swa%
+              ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}%
+            \fi%
           }%
         }%
-      \tud@reserved%
+      \tud@res@a%
     \fi%
-    \def\@tempa{\tud@cmd@use{#2}}%
-    \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}%
-    \ifstr{#2}{geometry}{%
-      \ifbool{@tud@x@geometry@enabled}{%
-        \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}%
-      }{}%
-    }{}%
-  }
-  \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}}
-  \renewcommand*\newgeometry[1]{%
-    \tud@cmd@store{Gm@restore@org}%
-    \tud@geometry{#1}{newgeometry}%
-    \tud@cmd@restore{Gm@restore@org}%
-  }
-  \apptocmd{\Gm@changelayout}{%
-    \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{%
-      \tud@cdgeometry@process%
-    }{}%
-  }{}{\tud@patch@wrn{Gm@changelayout}}%
-  \renewcommand*\restoregeometry[1][]{%
-    \IfArgIsEmpty{#1}{}{%
-      \tud@cmd@store{TUD@SpecialOptionAtDocument}%
-      \let\TUD@SpecialOptionAtDocument\@gobble%
-      \TUDoption{cdgeometry}{#1}%
-      \tud@cmd@restore{TUD@SpecialOptionAtDocument}%
-    }%
-    \ifnum\tud@cdgeometry@num=\@ne\relax
-      \tud@loadgeometry{init@custom}%
+  }%
+  \newcommand*\tud@x@geometry@set[1]{%
+    \@tud@x@geometry@enabledfalse%
+    \if@atdocument%
+      \edef\@tempa{#1}%
+      \tud@cs@store{Gm@restore@org}%
+      \eappto\Gm@restore@org{%
+        \noexpand\paperwidth=\the\paperwidth\relax%
+        \noexpand\paperheight=\the\paperheight\relax%
+      }%
+      \def\@tempc{\tud@cs@use{newgeometry}}%
+      \expandafter\@tempc\expandafter{\@tempa}%
+      \tud@cs@restore{Gm@restore@org}%
     \else%
-      \tud@loadgeometry{init@typearea}%
+      \Gm@initnewgm%
+      \edef\@tempa{%
+        paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1%
+      }%
+      \def\@tempc{\tud@cs@use{geometry}}%
+      \expandafter\@tempc\expandafter{\@tempa,driver=none}%
     \fi%
-    \tud@AfterChangingArea%
+    \@tud@x@geometry@enabledtrue%
+  }%
+  \newcommand*\tud@savegeometry[1]{%
+    \let\Gm@restore\@empty%
+    \savegeometry{#1}%
+    \csepreto{Gm@restore@@#1}{%
+      \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset%
+      \ifGm@includehead%
+        \noexpand\Gm@includeheadtrue%
+      \else%
+        \noexpand\Gm@includeheadfalse%
+      \fi%
+      \ifGm@includefoot%
+        \noexpand\Gm@includefoottrue%
+      \else%
+        \noexpand\Gm@includefootfalse%
+      \fi%
+      \ifGm@includemp%
+        \noexpand\Gm@includemptrue%
+      \else%
+        \noexpand\Gm@includempfalse%
+      \fi%
+      \ifGm@layout%
+        \noexpand\Gm@layouttrue%
+      \else%
+        \noexpand\Gm@layoutfalse%
+      \fi%
+    }%
+  }%
+  \newcommand*\tud@loadgeometry[1]{%
+    \@tud@x@geometry@enabledfalse%
+    \loadgeometry{#1}%
+    \@currsize%
+    \if@tud@x@crop@center\CROP@center\fi%
+    \@tud@x@geometry@enabledtrue%
   }%
+  \newcommand*\tud@cdgeometry@layout{}%
   \newcommand*\tud@cdgeometry@hmargin{}%
   \newcommand*\tud@cdgeometry@vmargin{}%
   \newcommand*\tud@cdgeometry@tudmargin{}%
   \tud@if@v@lower{2.03}{\newcommand*\tud@cdgeometry@ddcmargin{}}{}%
-  \renewcommand*\tud@cdgeometry@process{%
-      \tud@AfterChangingArea%
-  }%
-  \renewcommand*\tud@cdgeometry@@process{%
+  \newcommand*\tud@cdgeometry@@process{%
     \csuse{@ta@usegeometryfalse}%
     \tud@cdgeometry@set%
     \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom
+      \if@tud@x@geometry@fixmargins%
+        \tud@x@geometry@fixmargins%
+      \fi%
       \ifcase\tud@cdgeometry@num\relax%
-        \ifGm@layout%
-          \tud@skip@store{paperheight}%
-          \tud@skip@store{paperwidth}%
-          \setlength\paperheight{\tud@len@layoutheight}%
-          \setlength\paperwidth{\tud@len@layoutwidth}%
-        \fi%
-        \tud@cmd@store{activateareas}%
-        \tud@cmd@store{tud@AfterChangingArea}%
-        \let\activateareas\relax%
-        \let\tud@AfterChangingArea\relax%
-        \recalctypearea%
-        \ifGm@layout%
-          \tud@skip@restore{paperheight}%
-          \tud@skip@restore{paperwidth}%
-        \fi%
-        \tud@cmd@restore{activateareas}%
-        \tud@cmd@restore{tud@AfterChangingArea}%
         \edef\tud@cdgeometry@hmargin{%
           left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,%
           textwidth=\the\textwidth,%
@@ -2982,8 +4164,8 @@
       \else% custom
         \ifGm@pass\else%
           \edef\tud@cdgeometry@hmargin{%
-            left=\Gm@lmargin,%
-            right=\Gm@rmargin,%
+            left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,%
+            textwidth=\the\textwidth,%
             \ifGm@includemp%
               includemp=true,%
             \else%
@@ -3050,11 +4232,23 @@
         }%
       }{}%
       \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else%
-        \ClassWarning{\TUD@Class@Name}{%
-          Option `extrabottommargin' is ineffective when\MessageBreak%
-          package typearea or custom layout is used\MessageBreak%
-          (`cdgeometry=false/custom')%
-        }%
+        \begingroup%
+          \edef\tud@res@a{%
+            The key `extrabottommargin' is ineffective\MessageBreak%
+            when\space%
+            \ifcase\tud@cdgeometry@num%
+              package `typearea' is used for layout with\MessageBreak%
+              `cdgeometry=typearea'%
+            \else%
+              a user-defined layout is used with\MessageBreak%
+              `cdgeometry=custom'%
+            \fi%
+          }%
+          \edef\tud@res@a{%
+            \endgroup%
+            \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{\tud@res@a}%
+          }%
+        \tud@res@a%
       \fi%
     \else%  true/symmetric/twoside
       \ifcase\tud@cdgeometry@num\relax\or\or%  true
@@ -3169,12 +4363,6 @@
     \fi%
     \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi%
     \global\tud@len@areadiff=\tud@len@areadiff%
-    \if@tud@cdgeometry@adjust%
-      \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}%
-    \else%
-      \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}%
-    \fi%
-    \global\tud@len@areaheadvskip=\tud@len@areaheadvskip%
     \tud@if@v@lower{2.03}{%
       \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi%
       \global\tud@len@ddcdiff=\tud@len@ddcdiff%
@@ -3182,32 +4370,36 @@
     \tud@cdgeometry@@@process%
   }%
   \newcommand*\tud@cdgeometry@@@process{%
-    \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}%
-    \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}%
+    \tud@x@geometry@getlayout{\tud@cdgeometry@layout}%
     \tud@if@v@lower{2.03}{%
-      \edef\@tempa{%
+      \tud@x@geometry@set{%
+        \tud@cdgeometry@layout,%
         \tud@cdgeometry@hmargin,%
         \tud@cdgeometry@vmargin,%
         \tud@cdgeometry@tudmargin,%
         \tud@cdgeometry@ddcmargin,%
         ignorehead,ignorefoot%
       }%
-      \tud@setgeometry{\@tempa}%
       \tud@savegeometry{tudareaddc}%
     }{}%
-    \edef\@tempa{%
+    \tud@x@geometry@set{%
+      \tud@cdgeometry@layout,%
       \tud@cdgeometry@hmargin,%
       \tud@cdgeometry@vmargin,%
       \tud@cdgeometry@tudmargin%
     }%
-    \tud@setgeometry{\@tempa}%
     \tud@savegeometry{tudarea}%
-    \edef\@tempa{%
+    \tud@x@geometry@set{%
+      \tud@cdgeometry@layout,%
       \tud@cdgeometry@hmargin,%
       \tud@cdgeometry@vmargin%
     }%
-    \tud@setgeometry{\@tempa}%
     \tud@savegeometry{stdarea}%
+    \ifcase\tud@cdgeometry@num\relax% false
+      \tud@savegeometry{current@typearea}%
+    \or% custom
+      \tud@savegeometry{current@custom}%
+    \fi%
     \if@atdocument%
       \ifstr{\tud@currentgeometry}{stdarea}{}{%
         \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}%
@@ -3235,153 +4427,183 @@
       includemp=false%
     \fi%
   }%
-}
-\newcommand*\tud@currentgeometry{}
-\newcommand*\tud@BeforeSelectAnyPageStyle[1]{%
-  \ifstr{#1}{\GetRealPageStyle{#1}}{%
-    \tud@if@tudheadings{#1}{%
-      \tud@if@v@lower{2.03}{%
-        \tud@ddc@check%
-        \ifcase\@tempb\relax% \tud@ddc@foot@num=false
+  \newcommand*\tud@cdgeometry@@init{%
+    \csuse{@ta@usegeometryfalse}%
+    \tud@x@geometry@getlayout{\tud@cdgeometry@layout}%
+    \tud@cs@store{tud@cdgeometry@num}%
+    \tud@cs@store{tud@dim@extrabottommargin}%
+    \def\tud@dim@extrabottommargin{\z@}%
+    \tud@cdgeometry@reset{custom}%
+    \begingroup%
+      \epreto\tud@x@geometry@init{%
+        paperwidth=\the\paperwidth,paperheight=\the\paperheight,%
+        \tud@cdgeometry@layout,%
+        \tud@cdgeometry@mpincl,%
+        \if@reversemargin%
+          reversemarginpar=true,%
+        \else%
+          reversemarginpar=false,%
+        \fi%
+        bindingoffset=\the\ta@bcor,%
+        \tud@cdgeometry@hincl,%
+        \tud@cdgeometry@fincl,%
+      }%
+      \edef\tud@res@a{%
+        \endgroup%
+        \noexpand\tud@cs@use{geometry}{\tud@x@geometry@init,driver=none}%
+        \noexpand\@tud@x@geometry@fixmarginstrue%
+      }%
+    \tud@res@a%
+    \tud@cdgeometry@@process%
+    \tud@savegeometry{init@custom}%
+    \tud@cdgeometry@reset{typearea}%
+    \tud@x@typearea@warnings@off[\tud@res@a]%
+    \tud@x@typearea@init%
+    \tud@x@typearea@warnings@on%
+    \tud@cdgeometry@@process%
+    \tud@savegeometry{init@typearea}%
+    \def\tud@res@b##1{%
+      \eappto\Gm@restore@@init@typearea{%
+        \noexpand\PackageWarningNoLine{typearea}{##1}%
+      }%
+    }%
+    \forlistloop\tud@res@b{\tud@res@a}%
+    \tud@cs@restore{tud@cdgeometry@num}%
+    \tud@cs@restore{tud@dim@extrabottommargin}%
+    \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}%
+    \ifcase\tud@cdgeometry@num\relax% typearea
+      \tud@loadgeometry{init@typearea}%
+    \or% custom
+      \tud@loadgeometry{init@custom}%
+    \fi%
+    \@tud@x@geometry@fixmarginstrue%
+    \tud@cdgeometry@process%
+    \let\tud@cdgeometry@@init\relax%
+  }%
+  \newcommand*\tud@currentgeometry{}
+  \newcommand*\tud@BeforeSelectAnyPageStyle[1]{%
+    \ifstr{#1}{\GetRealPageStyle{#1}}{%
+      \tud@if@tudheadings{#1}{%
+        \tud@if@v@lower{2.03}{%
+          \tud@ddc@check%
+          \ifcase\@tempb\relax% \tud@ddc@foot@num=false
+            \ifstr{\tud@currentgeometry}{tudarea}{}{%
+              \tud@loadgeometry{tudarea}%
+              \gdef\tud@currentgeometry{tudarea}%
+            }%
+          \else% \tud@ddc@foot@num!=false
+            \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+              \tud@loadgeometry{tudareaddc}%
+              \gdef\tud@currentgeometry{tudareaddc}%
+            }%
+          \fi%
+        }{%
           \ifstr{\tud@currentgeometry}{tudarea}{}{%
             \tud@loadgeometry{tudarea}%
             \gdef\tud@currentgeometry{tudarea}%
           }%
-        \else% \tud@ddc@foot@num!=false
-          \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
-            \tud@loadgeometry{tudareaddc}%
-            \gdef\tud@currentgeometry{tudareaddc}%
-          }%
-        \fi%
+        }%
+        \setlength\tud@len@areavskip{\z@}%
+        \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}%
+        \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}%
       }{%
-        \ifstr{\tud@currentgeometry}{tudarea}{}{%
-          \tud@loadgeometry{tudarea}%
-          \gdef\tud@currentgeometry{tudarea}%
+        \ifstr{\tud@currentgeometry}{stdarea}{}{%
+          \tud@loadgeometry{stdarea}%
+          \gdef\tud@currentgeometry{stdarea}%
         }%
-      }%
-      \setlength\tud@len@areavskip{\z@}%
-      \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}%
-      \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}%
-    }{%
-      \ifstr{\tud@currentgeometry}{stdarea}{}{%
-        \tud@loadgeometry{stdarea}%
-        \gdef\tud@currentgeometry{stdarea}%
-      }%
-      \setlength\tud@len@areavskip{\tud@len@areadiff}%
-      \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside
-        \if@hincl%
-          \addtolength\tud@len@areavskip{%
-            \dimexpr-\headheight-\tud@len@headsep\relax%
-          }%
+        \setlength\tud@len@areavskip{\tud@len@areadiff}%
+        \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside
+          \if@hincl%
+            \addtolength\tud@len@areavskip{%
+              \dimexpr-\headheight-\tud@len@headsep\relax%
+            }%
+          \fi%
         \fi%
-      \fi%
-      \tud@font@koma@unset{pagefoot}%
-      \tud@font@koma@unset{pagenumber}%
+        \tud@komafont@unset{pagenumber}%
+        \tud@komafont@unset{pagefoot}%
+      }%
+      \global\tud@len@areavskip=\tud@len@areavskip%
+    }{}%
+  }
+}
+\newcommand*\tud@x@typearea@before{%
+  \tud@skip@store{paperheight}%
+  \tud@skip@store{paperwidth}%
+  \begingroup%
+    \tud@cdgeometry@assignlayout%
+    \edef\tud@res@a{%
+      \endgroup%
+      \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}%
+      \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}%
     }%
-    \global\tud@len@areavskip=\tud@len@areavskip%
-  }{}%
+  \tud@res@a%
 }
-\newcommand*\tud@AfterChangingArea{%
-  \tud@cdgeometry@@process%
-  \KOMAoptions{pagesize=\@pagesizelast}%
-  \global\@tud@mainlogo@settrue%
-  \gdef\tud@currentgeometry{}%
-  \expandafter\pagestyle\expandafter{\currentpagestyle}%
+\newcommand*\tud@x@typearea@after{%
+  \tud@skip@restore{paperheight}%
+  \tud@skip@restore{paperwidth}%
+  \if@atdocument%
+    \tud@cdgeometry@reset{typearea}%
+    \tud@cdgeometry@process%
+  \else%
+    \TUD@key@preset{cdgeometry}{false}%
+  \fi%
 }
-\newcommand*\tud@cdgeometry@init{%
-  \AtEndPreamble{%
-    \if@tud@x@standalone@crop%
-      \pagestyle{empty}%
-      \let\tud@AfterChangingArea\relax%
-      \let\tud@cdgeometry@process\relax%
-    \else%
-      \csuse{@ta@usegeometryfalse}%
-      \def\tud@reserved##1{%
-        \tud@setgeometry{%
-          \tud@cdgeometry@mpincl,%
-          \if@reversemargin%
-            reversemarginpar=true,%
-          \else%
-            reversemarginpar=false,%
-          \fi%
-          bindingoffset=\the\ta@bcor,%
-          \tud@cdgeometry@hincl,%
-          \tud@cdgeometry@fincl,%
-          \tud@x@geometry@init,%
-          driver=none%
-        }%
-        \addtolength\oddsidemargin{-\Gm@layouthoffset}%
-        \addtolength\evensidemargin{-\Gm@layouthoffset}%
-        \addtolength\topmargin{-\Gm@layoutvoffset}%
-        \tud@savegeometry{init@##1}%
+\newcommand*\tud@x@typearea@init{\recalctypearea}%
+\xpretocmd{\typearea}{%
+  \tud@x@typearea@before%
+  \def\tud@x@typearea@init{\typearea[#1]{#2}}%
+}{}{\tud@patch@wrn{typearea}}
+\xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}}
+\xpretocmd{\areaset}{%
+  \tud@x@typearea@before%
+  \begingroup%
+    \setlength\@tempdima{#2}%
+    \setlength\@tempdimb{#3}%
+    \edef\tud@res@a{%
+      \endgroup%
+      \noexpand\def\noexpand\tud@x@typearea@init{%
+        \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}%
       }%
-      \begingroup%
-        \let\scr@grouplevel@test\@gobble%
-        \setlength\paperheight{\Gm@layoutheight}%
-        \setlength\paperwidth{\Gm@layoutwidth}%
-        \let\activateareas\relax%
-        \tud@x@ta@warnings@off%
-        \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}%
-        \def\@tempb{{0}}%
-        \ifx\@tempa\@tempb\relax%
-          \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}%
-          \@for\@tempb:=\@tempa\do{%
-            \@tempswatrue%
-            \ifx\@tempb\defaultpapersize\relax%
-              \@tempswafalse%
-            \fi%
-          }%
-          \if@tempswa%
-            \KOMAoptions{DIV=11}%
-          \fi%
-        \fi%
-        \recalctypearea%
-        \tud@x@ta@warnings@on%
-        \edef\tud@x@geometry@init{%
-          left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,%
-          textwidth=\the\textwidth,%
-          marginparwidth=\the\marginparwidth,%
-          marginparsep=\the\marginparsep,%
-          bindingoffset=\the\ta@bcor,%
-          \if@hincl%
-            top=\the\dimexpr\topmargin+1in\relax,%
-          \else%
-            top=\the\dimexpr\topmargin%
-              +\headheight+\headsep+1in\relax,%
-          \fi%
-          headheight=\the\headheight,%
-          headsep=\the\headsep,%
-          textheight=\the\textheight,%
-          footskip=\the\footskip%
-        }%
-        \tud@reserved{typearea}%
-        \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea%
+    }%
+  \tud@res@a%
+}{}{\tud@patch@wrn{areaset}}
+\xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}}
+\tud@cs@store{storeareas}
+\renewcommand*\storeareas[1]{%
+  \begingroup
+    \tud@x@geometry@fixmargins%
+    \tud@cs@use{storeareas}{#1}%
+    \edef\tud@res@a{%
       \endgroup%
-      \tud@reserved{custom}%
-      \AfterCalculatingTypearea{\tud@AfterChangingArea}%
-      \AfterSettingArea{\tud@AfterChangingArea}%
-      \ifundef{\AfterRestoreareas}{}{%
-        \AfterRestoreareas{\tud@AfterChangingArea}%
+      \etex@unexpanded{\def#1}{%
+        \expandonce#1%
+        \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}%
       }%
-      \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}%
-      \tud@cdgeometry@process%
-    \fi%
-    \let\tud@cdgeometry@init\relax%
-  }%
+    }%
+  \tud@res@a%
 }
-\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init}
+\AfterRestoreareas{\tud@cdgeometry@process}%
 \TUD@UnwindPackage{geometry}{%
-  \newif\ifGm@layout%
-  \newif\ifGm@showcrop%
-  \newif\ifGm@pass%
-  \let\Gm@layoutheight\paperheight%
-  \let\Gm@layoutwidth\paperwidth%
-  \let\Gm@layouthoffset\z@%
-  \let\Gm@layoutvoffset\z@%
-  \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}%
-  \let\tud@BeforeSelectAnyPageStyle\@gobble%
-  \providecommand*\tud@setgeometry[1]{}%
-  \providecommand*\tud@savegeometry[1]{}%
+  \newcommand*\tud@cdgeometry@@init{%
+    \tud@cdgeometry@process%
+    \let\tud@cdgeometry@@init\relax%
+  }%
+  \newcommand*\tud@cdgeometry@@process{%
+    \setlength\tud@len@layoutwidth{\paperwidth}%
+    \setlength\tud@len@layoutheight{\paperheight}%
+    \tud@cdgeometry@set%
+  }%
+  \newcommand*\tud@x@geometry@fixmargins{}%
+}
+\newcommand*\tud@cdgeometry@init{\tud@cdgeometry@@init}%
+\AfterPackage{svg-extract}{%
+  \renewcommand*\tud@cdgeometry@init{%
+    \if@svgx@standalone%
+      \@tud@x@scr@fontsize@settrue%
+    \else%
+      \tud@cdgeometry@@init%
+    \fi%
+  }%
 }
 \patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
   \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
@@ -3446,7 +4668,7 @@
     contents={%
       \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
         \color{HKS41!60}%
-        \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}%
+        \setlength\@tempdima{\dimexpr\ht\strutbox-\tud@len@barheight\relax}%
         \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi%
         \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}%
       \fi%
@@ -3711,16 +4933,19 @@
 }{}{\tud@patch@wrn{thispagestyle}}
 \newcommand*\tud@pagestyle{}
 \let\tud@pagestyle\pagestyle
+\newcommand*\currentpagestyle{plain}
 \pretocmd{\tud@pagestyle}{%
   \tud@BeforeSelectAnyPageStyle{#1}%
   \edef\currentpagestyle{#1}%
 }{}{\tud@patch@wrn{pagestyle}}
-\tud@cmd@store{pagestyle}
+\tud@cs@store{pagestyle}
 \renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}}
 \BeforePackage{scrlayer-scrpage}{%
-  \tud@cmd@restore{pagestyle}%
+  \tud@cs@restore{pagestyle}%
   \undef\tud@pagestyle%
+  \undef\currentpagestyle%
 }
+\AfterPackage!{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}}
 \TUD@UnwindPackage{scrlayer-scrpage}{%
   \ifcsundef{if@chapter}{%
     \newif\if@chapter%
@@ -3780,12 +5005,12 @@
       \fi%
     \fi%
   }{%
+    \tud@locked@bool@preset{@tud@head@widebar}{true}%
     \ifstr{\tud@pagecolor}{HKS41}{%
       \renewcommand*\tud@head@logocolor{white}%
       \renewcommand*\tud@head@fontcolor{white}%
       \renewcommand*\tud@foot@logocolor{white}%
         \renewcommand*\tud@foot@fontcolor{white}%
-      \bool@std@lock{@tud@head@widebar}{true}%
     }{%
       \renewcommand*\tud@head@logocolor{HKS41}%
       \renewcommand*\tud@head@fontcolor{HKS41}%
@@ -3800,57 +5025,12 @@
         \renewcommand*\tud@foot@logocolor{HKS41}%
         \renewcommand*\tud@foot@fontcolor{HKS41}%
       \fi%
-      \bool@std@lock{@tud@head@widebar}{true}%
     }%
   }%
   \let\tud@len@line\tud@len@thinline%
   \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}%
   \global\let\tud@foot@fontcolor\tud@foot@fontcolor%
 }
-\newcommand*\tud@head@fontsize{}
-\newcommand*\tud@head@font@light{}
-\newcommand*\tud@head@font@bold{}
-\newcommand*\tud@head@font@@bold{}
-\newcommand*\tud@head@font@set{%
-  \ifcase\tud@head@font@num\relax% false
-    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-      \if@tud@head@font@set%
-        \ClassWarning{\TUD@Class@Name}{%
-          It isn't possible to use `cdhead=false'\MessageBreak%
-          together with `cdfont=true'%
-        }%
-      \fi%
-      \TUDoptions{cdhead=true}%
-    \fi%
-  \fi%
-  \if@tud@head@font@set%
-    \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
-      {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}%
-    \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
-      {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}%
-    \protected\gdef\tud@head@font@@bold{%
-      \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}%
-    }%
-    \ifcase\tud@head@font@num\relax\else% true/heavy
-      \if@tud@univers%
-        \ifcase\tud@head@font@num\relax\or% true
-          \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
-            {\tud@univers}{l}{n}{\tud@head@fontsize}%
-        \or% heavy
-          \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
-            {\tud@univers}{m}{n}{\tud@head@fontsize}%
-        \fi%
-        \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
-          {\tud@univers}{b}{n}{\tud@head@fontsize}%
-        \protected\gdef\tud@head@font@@bold{%
-          \usefont{\encodingdefault}{\tud@univers}{b}{n}%
-        }%
-      \fi%
-    \fi%
-    \global\@tud@head@font@setfalse%
-    \global\@tud@head@text@settrue%
-  \fi%
-}
 \newcommand*\tud@head@text@line{}
 \newcommand*\tud@head@text@list{}
 \newcommand*\tud@head@text@delimiter{}
@@ -3877,9 +5057,9 @@
 \newcommand*\tud@head@text@wrn[1]{}
 \newcommand*\tud@head@text@set{%
   \if@tud@head@text@set%
-    \def\tud@head@text@line{}%
-    \def\tud@head@text@list{}%
-    \def\tud@head@text@buffer{}%
+    \let\tud@head@text@line\@empty%
+    \let\tud@head@text@list\@empty%
+    \let\tud@head@text@buffer\@empty%
     \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}%
     \tud@head@text@add{\tud@head@font@light}{\@department}%
     \tud@head@text@add{\tud@head@font@light}{\@institute}%
@@ -3898,10 +5078,6 @@
   \fi%
 }
 \newcommand*\tud@head@text@box{%
-  \ifx\@faculty\@empty%
-    \ClassWarningNoLine{\TUD@Class@Name}{No `\string\faculty' given}%
-    \faculty{}%
-  \fi%
   \def\@tempb{\tud@color{\tud@head@fontcolor}}%
   \def\@tempc{\depth+\tud@len@heavyline}%
   \def\@tempa##1{%
@@ -4147,7 +5323,7 @@
         }%
         \vss\vss%
       }{%
-        You should reduce `footlogoheight', because it is\MessageBreak
+        You should reduce `footlogoheight', because it is\MessageBreak%
         too high (\the\dimexpr\tud@dim@footlogoheight\relax).%
         \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
           \MessageBreak%
@@ -4192,8 +5368,8 @@
 }
 \newcommand*\tud@footlogo@cmd@@set[2]{%
   \begingroup%
-    \def\@tempa{}%
-    \def\@tempb{}%
+    \let\@tempa\@empty%
+    \let\@tempb\@empty%
     \@tempswatrue%
     \def\do##1{%
       \if@tempswa%
@@ -4225,19 +5401,26 @@
   \usebox\z@\hspace*{-\wd\z@}%
 }
 \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}}
+\newcommand*\tud@footcontent@usefont[1]{%
+  \usekomafont{tudheadings}{%
+    \tud@footcontent@fontsize%
+    \tud@footcontent@fontface%
+    \selectfont%
+    #1%
+  }%
+}
+\newcommand*\tud@footcontent@fontsize{}
 \newcommand*\tud@footcontent@fontface{}
 \newcommand*\tud@footcontent@left{}
 \newcommand*\tud@footcontent@right{\@nil}
 \newcommand*\footcontent{%
   \kernel@ifstar{%
-    \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}%
+    \renewcommand*\tud@footcontent@fontsize{}%
     \tud@footcontent@do%
   }{%
-    \renewcommand*\tud@footcontent@fontface{%
-      \usekomafont{tudheadings}%
+    \renewcommand*\tud@footcontent@fontsize{%
       \setlength\@tempdima{\tud@head@fontsize\p@}%
-      \fontsize{\tud@head@fontsize}{1.25\@tempdima}%
-      \selectfont%
+      \fontsize{\@tempdima}{1.25\@tempdima}%
     }%
     \tud@footcontent@do%
   }%
@@ -4249,7 +5432,9 @@
 }
 \newcommand*\tud@footcontent@@do{}
 \def\tud@footcontent@@do#1#2[#3]{%
-  \appto\tud@footcontent@fontface{#1\selectfont}%
+  \if\detokenize{*#1}\relax\else%
+    \renewcommand*\tud@footcontent@fontface{#1}%
+  \fi%
   \if\detokenize{*#2}\relax\else%
     \renewcommand*\tud@footcontent@left{#2}%
   \fi%
@@ -4352,25 +5537,26 @@
       \linespread{1}%
       \vss%
       \hbox to #2{%
-        \tud@footcontent@fontface%
-        \def\@tempa{\@nil}%
-        \ifx\@tempa\tud@footcontent@right\relax%
-          \vtop{%
-            \hsize=\dimexpr#2-\@tempdimc\relax%
-            \strut\ignorespaces\tud@footcontent@left\strut%
-          }%
-        \else%
-          \vtop{%
-            \hsize=\dimexpr(#2-\columnsep)/2\relax%
-            \strut\ignorespaces\tud@footcontent@left\strut%
-          }%
-          \hspace{\columnsep}%
-          \vtop{%
-            \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
-            \strut\ignorespaces\tud@footcontent@right\strut%
-          }%
-        \fi%
-        \hss%
+        \tud@footcontent@usefont{%
+          \def\@tempa{\@nil}%
+          \ifx\@tempa\tud@footcontent@right\relax%
+            \vtop{%
+              \hsize=\dimexpr#2-\@tempdimc\relax%
+              \strut\ignorespaces\tud@footcontent@left\strut%
+            }%
+          \else%
+            \vtop{%
+              \hsize=\dimexpr(#2-\columnsep)/2\relax%
+              \strut\ignorespaces\tud@footcontent@left\strut%
+            }%
+            \hspace{\columnsep}%
+            \vtop{%
+              \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
+              \strut\ignorespaces\tud@footcontent@right\strut%
+            }%
+          \fi%
+          \hss%
+        }%
       }%
       \vss\vss%
     }{%
@@ -4387,22 +5573,20 @@
     \hbox to #2{}%
   \fi%
 }
-\AtBeginDocument{%
-  \tud@if@v@lower{2.04}{%
-    \renewcommand*\tud@comp@clearpage{%
-      \if@tud@ddc@internal\else%
-        \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}%
-      \fi%
-    }%
-    \renewcommand*\tud@comp@resetpagestyle{%
-      \if@tud@ddc@internal\else%
-        \tud@if@tudheadings{\currentpagestyle}{%
-          \expandafter\pagestyle\expandafter{\currentpagestyle}%
-        }{}%
-      \fi%
-    }%
-  }{}%
-}
+\tud@if@v@lower{2.04}{%
+  \renewcommand*\tud@comp@clearpage{%
+    \if@tud@ddc@internal\else%
+      \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}%
+    \fi%
+  }%
+  \renewcommand*\tud@comp@resetpagestyle{%
+    \if@tud@ddc@internal\else%
+      \tud@if@tudheadings{\currentpagestyle}{%
+        \expandafter\pagestyle\expandafter{\currentpagestyle}%
+      }{}%
+    \fi%
+  }%
+}{}%
 \newcommand*\tud@ddc@check{%
   \let\@tempa\tud@ddc@head@num%
   \let\@tempb\tud@ddc@foot@num%
@@ -4457,11 +5641,13 @@
 %%% From File: tudscr-layout.dtx
 \newcommand*\tud@x@scr@headings@current{}
 \newcommand*\tud@sec@fontsize{}
+\newcommand*\tud@thesis@fontsize{}
 \newcommand*\tud@x@scr@headings@set[1][]{%
   \def\@tempa##1##2##3{%
     \ifstr{##1}{\tud@x@scr@headings@current}{}{%
       \renewcommand*\tud@x@scr@headings@current{##1}%
       \renewcommand*\tud@sec@fontsize{##2}%
+      \renewcommand*\tud@thesis@fontsize{##3}%
       #1%
     }%
   }%
@@ -4470,129 +5656,202 @@
     \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{%
     \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{%
     \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{%
-    \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}%
+    \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}%
   }%
+  \begingroup
+    \tud@sec@fontsize%
+    \@tempskipa=\glueexpr%
+      .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip%
+    \relax\relax%
+    \edef\tud@res@a{%
+      \endgroup%
+      \def\noexpand\tud@cd@afterskip{\the\@tempskipa}%
+    }%
+  \tud@res@a%
 }
 \AtEndPreamble{\tud@x@scr@headings@set}
 \newcommand*\tud@x@scr@headings@reset{%
-  \tud@layout@process%
+  \tud@cd@process%
   \tud@x@scr@headings@set[%
-    \ifcase\tud@layout@part@num\relax\else% !false
-      \tud@font@koma@reset{part}%
-      \tud@font@koma@reset{partnumber}%
+    \ifcase\tud@cd@part@num\relax\else% !false
+      \tud@komafont@reset{part}%
+      \tud@komafont@reset{partnumber}%
     \fi%
-    \ifcase\tud@layout@section@num\relax\else% !false
-      \tud@font@koma@reset{section}%
-      \tud@font@koma@reset{subsection}%
-      \tud@font@koma@reset{subsubsection}%
+    \ifcase\tud@cd@section@num\relax\else% !false
+      \tud@komafont@reset{section}%
+      \tud@komafont@reset{subsection}%
+      \tud@komafont@reset{subsubsection}%
     \fi%
   ]%
 }
+\newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}%
+\newcommand*\tud@sec@@fontface[1]{%
+  \sectfont#1%
+  \if@tud@cdfont@active\if@tud@heavyheadings%
+    \if@tud@x@mweights@enabled%
+      \edef\bfseries@rm{\tud@cdfont@ebf}%
+      \edef\bfseries@sf{\tud@cdfont@ebf}%
+      \edef\bfseries@tt{\tud@ttfont@ebf}%
+    \fi%
+    \let\bfdefault\tud@cdfont@ebf%
+    \fontseries{\tud@cdfont@ebf}%
+  \fi\fi%
+  \selectfont%
+}
+\if@tud@cdoldfont@active
+  \renewcommand*\tud@sec@fontface[1][]{%
+    \if@tud@cdoldfont@nodin%
+      \tud@sec@@fontface{#1}%
+    \else%
+      \tud@db\tud@raggedright%
+    \fi%
+  }%
+\fi
+\newcommand*\tud@sec@format[2][]{%
+  \IfArgIsEmpty{#1}{%
+    \tud@sec@strut%
+  }{%
+    \begingroup%
+      \usefontofkomafont{#1}%
+      \tud@sec@strut%
+    \endgroup%
+  }%
+  #2%
+}
+\if@tud@cdoldfont@active
+  \newcommand*\tud@sec@uppercase{\MakeUppercase}%
+  \AfterPackage*{textcase}{%
+    \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}%
+  }%
+  \renewcommand*\tud@sec@format[2][]{%
+    \@tud@res@swafalse%
+    \IfArgIsEmpty{#1}{%
+      \tud@sec@strut%
+      \tud@ifdin{\@tud@res@swatrue}{}%
+    }{%
+      \begingroup%
+        \usefontofkomafont{#1}%
+        \tud@sec@strut%
+        \tud@ifdin{\aftergroup\@tud@res@swatrue}{}%
+      \endgroup%
+    }%
+    \if@tud@res@swa%
+      \tud@sec@uppercase{#2}%
+    \else%
+      #2%
+    \fi%
+  }%
+\fi
+\newrobustcmd*\tud@sec@strut{%
+  \begingroup%
+    \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut%
+  \endgroup%
+}
 \newcommand*\tud@title@fontcolor{}
 \newcommand*\tud@part@fontcolor{}
 \newcommand*\tud@section@fontcolor{}
 \providecommand*\raggedtitle{\tud@raggedright}
-\newcommand*\tud@layout@process{%
-  \ifcase\tud@layout@title@num\relax% false
+\newcommand*\tud@cd@process{%
+  \ifcase\tud@cd@title@num\relax% false
     \renewcommand*\titlepagestyle{empty}%
-    \tud@font@koma@unset{titlehead}%
-    \tud@font@koma@unset{title}%
-    \tud@font@koma@unset{subtitle}%
-    \tud@font@koma@unset{subject}%
+    \tud@komafont@unset{titlehead}%
+    \tud@komafont@unset{title}%
+    \tud@komafont@unset{subtitle}%
+    \tud@komafont@unset{subject}%
   \else% !false
     \renewcommand*\titlepagestyle{empty.tudheadings}%
-    \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}%
-    \tud@font@koma@set{title}{%
-      \raggedtitle%
+    \tud@komafont@set{titlehead}{\usekomafont{titlepage}}%
+    \tud@komafont@set{title}{%
       \usekomafont{disposition}%
+      \raggedtitle%
       \tud@sec@fontface%
       \tud@sec@fontsize%
       \tud@color{\tud@title@fontcolor}%
     }%
-    \tud@font@koma@set{subtitle}{%
-      \raggedtitle%
-      \ifstr{\mddefault}{l}{%
-        \tud@sec@fontface[\fontseries{m}]%
-      }{%
-        \tud@sec@fontface[\fontseries{bx}]%
-      }%
-      \usesizeofkomafont{section}%
-      \tud@color{\tud@title@fontcolor}%
+    \tud@komafont@set{subtitle}{%
+      \tud@thesis@fontsize%
+      \fontseries{\tud@cdfont@bf}\selectfont%
     }%
-    \tud@font@koma@set{subject}{%
+    \tud@komafont@set{subject}{%
       \sffamily%
-      \bfseries%
+      \usesizeofkomafont{section}%
       \tud@color{\tud@title@fontcolor}%
     }%
   \fi%
-  \ifcase\tud@layout@part@num\relax% false
-    \tud@cmd@restore{partheadstartvskip}%
-    \ifcsdef{scr@v@3.18}{%
-      \tud@cmd@restore{scr@@startpart}%
-    }{%
-      \tud@cmd@restore{@part}%
-    }%
-    \tud@sectioning@reset[addpart]{part}%
-    \tud@font@koma@unset{partnumber}%
-    \tud@cmd@restore{raggedpart}%
+  \ifcase\tud@cd@part@num\relax% false
+    \tud@cs@restore{scr@part@beforeskip}%
+    \tud@cs@restore{scr@part@afterskip}%
+    \tud@cs@restore{partheadstartvskip}%
+    \tud@cs@restore{partlineswithprefixformat}%
+    \tud@komafont@unset{part}%
+    \tud@komafont@unset{partnumber}%
+    \tud@cs@restore{raggedpart}%
   \else% !false
-    \tud@cmd@store{partheadstartvskip}%
+    \tud@cs@store{scr@part@beforeskip}%
+    \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}%
+    \tud@cs@store{scr@part@afterskip}%
+    \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}%
+    \tud@cs@store{partheadstartvskip}%
     \let\partheadstartvskip\tud@partheadstartvskip%
-    \ifcsdef{scr@v@3.18}{%
-      \tud@cmd@store{scr@@startpart}%
-      \let\scr@@startpart\tud@@startpart%
-    }{%
-      \tud@cmd@store{@part}%
-      \let\@part\tud@@part%
+    \tud@cs@store{partlineswithprefixformat}%
+    \let\partlineswithprefixformat\tud@partlineswithprefixformat%
+    \tud@komafont@set{part}{%
+      \tud@sec@fontface%
+      \tud@color{\tud@part@fontcolor}%
     }%
-      \tud@sectioning@set{part}{%
-        \tud@sec@fontface%
-        \tud@color{\tud@part@fontcolor}%
-      }%
-      \tud@font@koma@set{partnumber}{%
-        \tud@sec@fontface%
-        \tud@color{\tud@part@fontcolor}%
-      }%
-    \tud@cmd@store{raggedpart}%
+    \tud@komafont@set{partnumber}{%
+      \tud@sec@fontface%
+      \tud@color{\tud@part@fontcolor}%
+    }%
+    \tud@cs@store{raggedpart}%
     \renewcommand*\raggedpart{\tud@raggedright}%
   \fi%
-  \ifcase\tud@layout@section@num\relax% false
-    \tud@sectioning@reset[addsec]{section}%
-    \tud@sectioning@reset{subsection}%
-    \tud@sectioning@reset{subsubsection}%
-    \tud@sectioning@reset{minisec}%
-    \tud@sectioning@reset{paragraph}%
-    \tud@sectioning@reset{subparagraph}%
-    \tud@cmd@restore{raggedsection}%
+  \ifcase\tud@cd@section@num\relax% false
+    \tud@cs@restore{sectionlinesformat}%
+    \tud@cs@restore{sectioncatchphraseformat}%
+    \tud@komafont@unset{section}%
+    \tud@komafont@unset{subsection}%
+    \tud@komafont@unset{subsubsection}%
+    \tud@komafont@unset{paragraph}%
+    \tud@komafont@unset{subparagraph}%
+    \tud@cs@restore{raggedsection}%
+    \tud@cs@restore{minisec}%
+    \tud@komafont@unset{minisec}%
   \else% !false
-    \renewcommand*\tud@section@fontcolor{}%
-    \ifcase\tud@layout@section@num\relax\or\else% *color
-      \renewcommand*\tud@section@fontcolor{HKS41}%
-    \fi%
-    \tud@sectioning@set{section}{%
-      \tud@sec@fontface%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
-    }%
-    \tud@sectioning@set{subsection}{%
+    \tud@cs@store{sectionlinesformat}%
+    \let\sectionlinesformat\tud@sectionlinesformat%
+    \tud@cs@store{sectioncatchphraseformat}%
+    \let\sectioncatchphraseformat\tud@sectioncatchphraseformat%
+    \tud@komafont@set{section}{%
       \tud@sec@fontface%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+      \tud@color{\tud@section@fontcolor}%
     }%
-    \tud@sectioning@set{subsubsection}{%
+    \tud@komafont@set{subsection}{%
       \tud@sec@fontface%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+      \tud@color{\tud@section@fontcolor}%
     }%
-    \tud@sectioning@set{minisec}{%
+    \tud@komafont@set{subsubsection}{%
       \tud@sec@fontface%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+      \tud@color{\tud@section@fontcolor}%
     }%
-    \tud@sectioning@set{paragraph}{%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+    \tud@komafont@set{paragraph}{%
+      \tud@color{\tud@section@fontcolor}%
     }%
-    \tud@sectioning@set{subparagraph}{%
-      \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}%
+    \tud@komafont@set{subparagraph}{%
+      \tud@color{\tud@section@fontcolor}%
     }%
-    \tud@cmd@store{raggedsection}%
+    \tud@cs@store{raggedsection}%
     \renewcommand*\raggedsection{\tud@raggedright}%
+    \tud@cs@store{minisec}%
+    \renewcommand\minisec[1]{%
+      \tud@cs@use{minisec}{\tud@sec@format{##1}}%
+    }%
+    \tud@komafont@set{minisec}{%
+      \tud@sec@fontface%
+      \ifcase\tud@cd@section@num\relax\or\else% *color
+        \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}%
+      \fi%
+    }%
   \fi%
   \ifcase\tud@cd@num\relax% false
     \pagestyle{empty}%
@@ -4600,125 +5859,95 @@
   \else% !false
     \pagestyle{empty.tudheadings}%
     \ifcase\tud@cd@num\relax\or% true
-      \cs@std@lock{tud@head@bar@num}{0}%
-      \bool@std@lock{@tud@foot@colored}{false}%
+      \tud@locked@num@preset{tud@head@bar@num}{0}%
+      \tud@locked@bool@preset{@tud@foot@colored}{false}%
       \color{black}%
     \or% litecolor
-      \cs@std@lock{tud@head@bar@num}{1}%
-      \bool@std@lock{@tud@foot@colored}{false}%
+      \tud@locked@num@preset{tud@head@bar@num}{1}%
+      \tud@locked@bool@preset{@tud@foot@colored}{false}%
       \color{HKS41}%
     \or% barcolor
-      \cs@std@lock{tud@head@bar@num}{2}%
-      \bool@std@lock{@tud@foot@colored}{false}%
+      \tud@locked@num@preset{tud@head@bar@num}{2}%
+      \tud@locked@bool@preset{@tud@foot@colored}{false}%
       \color{HKS41}%
     \else% bicolor/color/full
-      \cs@std@lock{tud@head@bar@num}{3}%
-      \bool@std@lock{@tud@foot@colored}{true}%
+      \tud@locked@num@preset{tud@head@bar@num}{3}%
+      \tud@locked@bool@preset{@tud@foot@colored}{true}%
       \color{HKS41}%
     \fi%
   \fi%
 }
-\newcommand*\tud@layout@specialpage@set[1]{%
-  \tud@font@koma@set{footnote}{%
-    \edef\@tempa{%
-      \noexpand\tud@color{%
-        \expandafter\noexpand\csname tud@#1@fontcolor\endcsname%
-      }%
-    }\@tempa%
+\newcommand*\tud@cd@beforeskip{%
+  \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax%
+}
+\newcommand*\tud@cd@innerskip{.25\baselineskip}%
+\newcommand*\tud@cd@afterskip{%
+  .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip%
+}
+\newcommand*\tud@cd@headstartvskip{%
+  \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax%
+  \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi%
+  \null\vskip-\baselineskip\vskip\@tempskipa%
+}
+\newcommand*\tud@cd@vphantom{%
+  \begingroup%
+    \usekomafont{partnumber}{\nobreak\tud@sec@strut}%
+    \setlength\@tempskipa{\tud@cd@innerskip}%
+    \par\nobreak\vskip\@tempskipa%
+  \endgroup%
+}
+\newcommand*\tud@part@subtitle{}
+\newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}}
+\newkomafont{partsubtitle}{%
+  \tud@thesis@fontsize%
+  \fontseries{\tud@cdfont@bf}\selectfont%
+  \tud@color{\tud@part@fontcolor}%
+}
+\aliaskomafont{parttitle}{partsubtitle}
+\newcommand*\tud@sec@subtitle[1]{%
+  \ifcsvoid{tud@#1@subtitle}{}{%
+    {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par%
+    \global\cslet{tud@#1@subtitle}{\@empty}%
   }%
-  \tud@cmd@store{footnoterule}%
-  \let\footnoterule\relax%
 }
 \newcommand*\tud@partheadstartvskip{}
 \let\tud@partheadstartvskip\partheadstartvskip
 \pretocmd{\tud@partheadstartvskip}{%
   \renewcommand*\tud@part@fontcolor{}% false/true
-  \ifcase\tud@layout@part@num\relax\or\else% *color
+  \ifcase\tud@cd@part@num\relax\or\else% *color
     \renewcommand*\tud@part@fontcolor{HKS41}%
   \fi%
 }{}{\tud@patch@wrn{tud@partheadstartvskip}}
-\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse}
-\if@tempswa
-  \newcommand*\tud@@startpart{}%
-  \let\tud@@startpart\scr@@startpart%
-  \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}%
-  \if@tempswa%
-    \patchcmd{\tud@@startpart}{%
-      \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}%
-    }{%
-      \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}%
-    }{}{\tud@patch@wrn{scr@@startpart}}%
-  \else%
-    \patchcmd{\tud@@startpart}{%
-      \usekomafont{#1prefix}{\@nameuse{#1format}}%
-    }{%
-      \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}%
-    }{}{\tud@patch@wrn{scr@@startpart}}%
+\newcommand*\tud@partformat{}%
+\newcommand*\tud@partlineswithprefixformat[3]{%
+    \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}%
+    \let\partformat\tud@partformat%
+    \IfUseNumber{}{\tud@cd@vphantom}%
+    #2\tud@sec@format[#1]{#3}%
+  \tud@sec@subtitle{#1}%
+}
+\At@startsection{%
+  \renewcommand*\tud@section@fontcolor{}%
+  \ifcase\tud@cd@section@num\relax\or\else% *color
+    \ifstr{\tud@pagecolor}{HKS41}{}{%
+      \renewcommand*\tud@section@fontcolor{HKS41}%
+    }%
   \fi%
-\else
-  \newcommand*\tud@@part{}%
-  \let\tud@@part\@part%
-  \patchcmd{\tud@@part}{\size@partnumber{\partformat}}{%
-    \size@partnumber{\tud@makeuppercase{\partformat}}%
-  }{}{\tud@patch@wrn{@part}}%
-\fi
-\newcommand*\tud@part{}
-\newcommand*\tud@spart{}
-\newcommand*\tud@section{}
-\newcommand*\tud@ssection{}
-\newcommand*\tud@subsection{}
-\newcommand*\tud@ssubsection{}
-\newcommand*\tud@subsubsection{}
-\newcommand*\tud@ssubsubsection{}
-\newcommand*\tud@sectioning@set[2]{%
-  \tud@cmd@store{#1}%
-  \ifstr{#1}{minisec}{%
-    \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}%
-  }{%
-    \tud@sectioning@case{#1}%
-  }%
-  \tud@font@koma@set{#1}{#2}%
-}
-\newcommand*\tud@sectioning@case[1]{%
-  \csedef{#1}{%
-    \noexpand\SecDef%
-    \expandafter\expandafter\expandafter\noexpand%
-      \expandafter\csname tud@#1\endcsname%
-    \expandafter\expandafter\expandafter\noexpand%
-      \expandafter\csname tud@s#1\endcsname%
-  }%
-  \csedef{tud@#1}[##1]##2{%
-    \expandafter\expandafter\expandafter\noexpand%
-      \expandafter\csname @@tud@#1\endcsname%
-      [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}%
-  }%
-  \csedef{tud@s#1}##1{%
-    \expandafter\expandafter\expandafter\noexpand%
-      \expandafter\csname @@tud@#1\endcsname*%
-      {\noexpand\tud@sectioning@uppercase{##1}}%
-  }%
 }
-\newcommand*\tud@sectioning@reset[2][]{%
-  \tud@cmd@restore{#2}%
-  \ifblank{#1}{}{\tud@cmd@restore{#1}}%
-  \tud@font@koma@unset{#2}%
+\newcommand*\tud@sectionlinesformat[4]{%
+  \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}%
 }
-\robustify{\footnote}
-\newcommand*\tud@sectioning@uppercase[1]{%
-  \begingroup%
-    \if@tud@symbolheadings%
-      \let\c@footnote\c@symbolheadings%
-      \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}%
-    \fi%
-    \tud@makeuppercase{#1}%
-  \endgroup%
+\newcommand*\tud@sectioncatchphraseformat[4]{%
+  \let\tud@sec@strut\relax%
+  \hskip #2#3\tud@sec@format[#1]{#4}%
 }
 %%% From File: tudscr-title.dtx
 \newkomafont{titlepage}{%
-  \usekomafont{subject}%
+  \raggedtitle%
+  \sffamily%
   \mdseries%
-  \large%
-  \tud@raggedright%
+  \usesizeofkomafont{subsection}%
+  \tud@color{\tud@title@fontcolor}%
 }
 \robustify{\thanks}
 \robustify{\footnotemark}
@@ -4726,23 +5955,46 @@
 \let\tud@title@pagenumber\relax
 \newcommand*\tud@maketitle[1][]{%
   \begingroup%
+    \cleardoublepage%
     \TUD@parameter@set{title}{#1}%
-    \ifcase\tud@layout@title@num\relax% false
-      \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi%
-      \tud@cmd@use{maketitle}[\tud@title@pagenumber]%
+    \ifcase\tud@cd@title@num\relax% false
+      \if@titlepageiscoverpage%
+        \tud@cover@fixmargins%
+      \fi%
+      \ifx\tud@title@pagenumber\relax%
+        \tud@cs@use{maketitle}%
+      \else%
+        \tud@cs@use{maketitle}[\tud@title@pagenumber]%
+      \fi%
       \tud@if@tudheadings{\currentpagestyle}{%
         \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}%
       }{}%
     \else% !false
       \if@tud@parameter@ps@font@set\else%
-        \TUDoptions{cdfont=true}%
+        \if@tud@cdfont@active\else%
+          \if@tud@cdfont@heavy%
+            \TUDoptions{cdfont=heavy}%
+          \else%
+            \TUDoptions{cdfont=true}%
+          \fi%
+        \fi%
       \fi%
-        \tud@make@titlehead%
+        \tud@maketitle@inpage%
     \fi%
   \endgroup%
   \setcounter{footnote}{0}%
   \global\let\and\relax%
 }
+\TUD@parameter@family{title}{%
+  \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}%
+  \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}%
+  \TUD@parameter@let{cd}{cdtitle}%
+  \TUD@parameter@def{cdgeometry}[true]{\TUDoption{cdgeometry}{#1}}%
+  \TUD@parameter@ps@def{#1}%
+  \TUD@parameter@handler@value{pagenumber}%
+}
+\tud@cs@store{maketitle}
+\let\maketitle\tud@maketitle
 \patchcmd{\titlepage}{\thispagestyle{empty}}{%
   \tud@if@tudheadings{\currentpagestyle}{%
     \thispagestyle{empty.tudheadings}%
@@ -4750,18 +6002,9 @@
     \thispagestyle{empty}%
   }%
 }{}{\tud@patch@wrn{titlepage}}
-\tud@cmd@store{maketitle}
-\let\maketitle\tud@maketitle
-\TUD@parameter@family{title}{%
-  \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}%
-  \TUD@parameter@let{cd}{cdtitle}%
-  \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}%
-  \TUD@parameter@ps@def{#1}%
-  \TUD@parameter@handler@value{pagenumber}%
-}
-\newcommand*\tud@make@titlehead{%
+\newcommand*\tud@maketitle@inpage{%
   \renewcommand*\tud@title@fontcolor{}%
-  \ifcase\tud@layout@title@num\relax\or\else% *color
+  \ifcase\tud@cd@title@num\relax\or\else% *color
     \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}%
   \fi%
   \par%
@@ -4779,51 +6022,38 @@
     \let\@oldmakefnmark\@makefnmark%
     \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}%
     \next@tdpage%
-    \@tempswafalse%
+    \def\tud@res@a##1{##1}%
     \if@twocolumn\ifnum\col@number>\@ne\relax%
-      \@tempswatrue%
+      \def\tud@res@a##1{\twocolumn[{##1}]}%
     \fi\fi%
-    \if@tempswa%
-      \ifx\@extratitle\@empty\else%
-        \twocolumn[\@makeextratitle]\next@tdpage%
-      \fi%
-      \twocolumn[\tud@make@@titlehead]%
+    \ifx\@extratitle\@empty%
+      \ifx\@frontispiece\@empty\else%
+        \if@twoside\null\fi%
+      \fi
     \else%
-      \ifx\@extratitle\@empty\else%
-        \@makeextratitle\next@tdpage%
-      \fi%
-      \tud@make@@titlehead%
+      \tud@res@a{\@makeextratitle}%
     \fi%
+    \next@tpage%
+    \ifx\@frontispiece\@empty\else%
+      \tud@res@a{\@makefrontispiece}%
+    \fi%
+    \next@tdpage%
+    \tud@res@a{\tud@maketitle@@inpage}%
     \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi%
     \@thanks%
   \endgroup%
 }
-\newcommand*\tud@make@@titlehead{%
+\newcommand*\tud@maketitle@@inpage{%
   \global\@topnum=\z@%
-  \vspace*{\dimexpr\tud@len@areavskip-\baselineskip\relax}%
+  \tud@cd@headstartvskip%
   \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative%
-  \begingroup%
-    \usekomafont{titlepage}%
+  {\usekomafont{titlepage}{%
     \tud@x@hyperref@realfootnotes%
-    \setlength\@tempdima{\z@}%
-    \ifx\@titlehead\@empty\else%
-      \sbox\z@{\vbox{%
-        \begin{minipage}[t]{\textwidth}%
-          {\usekomafont{titlehead}{\@titlehead\par\null}}%
-        \end{minipage}\newline\null%
-      }}%
-      \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}%
-    \fi%
-    \ifx\@subject\@empty\else%
-      \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}%
-      \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}%
-    \fi%
-    \ifx\@titlehead\@empty\else\usebox\z@\par\fi%
-    \ifx\@subject\@empty\else\usebox\@ne\par\fi%
-    {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}%
+    \tud@maketitle@head%
+    {\usekomafont{title}{\tud@title@format{\@title}\par}}%
     \ifx\@subtitle\@empty\else%
       \vskip 1ex\@plus.5ex\@minus.5ex%
-      {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}%
+      {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}%
     \fi%
     \vskip 2ex\@plus1ex\@minus1ex%
     \ifnum\col@number>\@ne\relax%
@@ -4832,20 +6062,46 @@
       }%
     \fi%
     \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}%
-  \endgroup%
+  }}%
+}
+\newcommand*\tud@maketitle@head{%
+  \setbox\z@\vbox{%
+    \ifx\@titlehead\@empty\else%
+      {\usekomafont{titlehead}{%
+        \begin{minipage}[t]{\textwidth}%
+          \@titlehead\tud@sec@strut%
+        \end{minipage}%
+      }}%
+    \fi%
+    \ifx\@subject\@empty\else%
+      \par\medskip%
+      {\usekomafont{subject}{%
+        \@subject\tud@sec@strut%
+      }}%
+    \fi%
+  }%
+  \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}%
+  \ifdim\@tempdima>\z@\relax%
+    \usebox\z@\par\medskip%
+  \fi%
 }
-\newcommand*\tud@title@uppercase[1]{%
-  \let\@tempa\relax%
+\newcommand*\tud@title@format[1]{%
   \begingroup%
     \let\\\newline%
-    \def\thanks##1{\gdef\@tempa{##1}}%
+    \let\tud@thanks\relax%
+    \def\thanks##1{\gdef\tud@thanks{##1}}%
     \let\footnote\thanks%
     \sbox\z@{#1}%
     \let\thanks\@gobble%
     \let\footnote\@gobble%
-    \tud@makeuppercase{#1}%
-  \endgroup%
-  \ifx\@tempa\relax\else\thanks\@tempa\fi%
+    \tud@sec@format{#1}%
+    \edef\tud@res@a{%
+      \endgroup%
+      \ifx\tud@thanks\relax\else%
+        \noexpand\thanks{\expandonce\tud@thanks}%
+      \fi%
+    }%
+  \tud@res@a%
 }
 \newcommand\maketitleonecolumn[2][]{%
   \if@twocolumn%
@@ -4980,8 +6236,8 @@
 }
 \newcommand*\tud@quoting{quotation}
 \AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}}
-\csundef{abstract}
-\csundef{endabstract}
+\undef\abstract
+\undef\endabstract
 \NewEnviron{abstract}[1][]{%
   \TUD@parameter@set{abstract}{#1}%
   \tud@x@multicol@check%
@@ -5001,7 +6257,7 @@
 ]
 \TUD@parameter@family{abstract}{%
   \TUD@parameter@def{language}{\selectlanguage{#1}}%
-  \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}%
+  \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}%
   \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}%
   \TUD@parameter@let{option}{abstract}%
   \TUD@parameter@handler@default{}%
@@ -5013,32 +6269,6 @@
   }%
 }
 %%% From File: tudscr-comp.dtx
-\newcommand*\TUD@deprecated@cs[2]{%
-  \AtBeginDocument{%
-    \ifcsundef{#1}{%
-      \expandafter\newrobustcmd\csname #1\endcsname{%
-        \ClassWarning{\TUD@Class@Name}{%
-          The command `\@backslashchar#1' is deprecated\MessageBreak%
-          It's recommended to use `\@backslashchar#2' instead%
-        }%
-        \csletcs{#1}{#2}%
-        \csuse{#2}%
-      }%
-    }{}%
-  }%
-}
-\newcommand*\TUD@deprecated@lengthcs[2][]{%
-  \ifdim\csuse{#2}<\maxdimen\relax%
-    \ClassWarning{\TUD@Class@Name}{%
-      Using the length `\@backslashchar#2' is deprecated.\MessageBreak%
-      You should use option `#2' instead%
-    }%
-    \csxdef{tud@dim@#2}{\the\csuse{#2}}%
-    \expandafter\setlength\csname #2\endcsname{\maxdimen}%
-    \global\csuse{#2}=\csuse{#2}%
-    #1%
-  \fi%
-}
 \newlength\footlogoheight
 \setlength\footlogoheight{\maxdimen}
 \TUD@deprecated@cs{professorship}{chair}
@@ -5050,67 +6280,43 @@
   \TUD@deprecated@cs{finaldate}{duedate}%
   \TUD@deprecated@cs{maturitydate}{duedate}%
 }
-\AtEndOfClass%
-{%
-  \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}%
-}
-%%% From File: tudscr-misc.dtx
-\newcommand*\tud@atdocument@hook{}
-\let\tud@atdocument@hook\relax
-\AtBeginDocument{%
-  \renewcommand*\TUD@SpecialOptionAtDocument[1]{%
-    \ifx\tud@atdocument@hook\relax%
-      \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}%
-      \AtEndOfFamilyOptions{%
-        \tud@atdocument@hook%
-        \tud@atdocument@process%
-      }%
-    \fi%
-    \gappto\tud@atdocument@hook{\global\booltrue{@#1}}%
-  }%
-}
-\newif\if@tud@font@set
-\newif\if@tud@font@math@set
-\newif\if@tud@font@skip@set
-\newif\if@tud@x@scr@headings@reset
-\newif\if@tud@layout@process
-\newif\if@tud@cdgeometry@process
-\newif\if@tud@cdgeometry@@process
-\newcommand*\tud@atdocument@process{%
-  \if@tud@font@set%
-    \tud@font@set%
-    \global\@tud@font@setfalse%
-    \global\@tud@font@math@setfalse%
-    \global\@tud@font@skip@setfalse%
-    \global\@tud@layout@processfalse%
-  \fi%
-  \if@tud@font@math@set%
-    \tud@font@math@set%
-    \global\@tud@font@math@setfalse%
-  \fi%
-  \if@tud@font@skip@set%
-    \tud@font@skip@set%
-    \global\@tud@font@skip@setfalse%
-  \fi%
-  \if@tud@x@scr@headings@reset%
-    \tud@x@scr@headings@reset%
-    \global\@tud@x@scr@headings@resetfalse%
-    \global\@tud@layout@processfalse%
-  \fi%
-  \if@tud@layout@process%
-    \tud@layout@process%
-    \global\@tud@layout@processfalse%
-  \fi%
-  \if@tud@cdgeometry@process%
-    \tud@cdgeometry@process%
-    \global\@tud@cdgeometry@processfalse%
-    \global\@tud@cdgeometry@@processfalse%
-  \fi%
-  \if@tud@cdgeometry@@process%
-    \tud@cdgeometry@@process%
-    \global\@tud@cdgeometry@@processfalse%
+\TUD@deprecated@cs{textcdfont}{textcd}%
+\TUD@deprecated@cs{tudfont}{cdfont}%
+\TUD@deprecated@cs{univln}{cdfontln}%
+\TUD@deprecated@cs{univrn}{cdfontrn}%
+\TUD@deprecated@cs{univbn}{cdfontsn}%
+\TUD@deprecated@cs{univxn}{cdfontbn}%
+\TUD@deprecated@cs{univls}{cdfontli}%
+\TUD@deprecated@cs{univrs}{cdfontri}%
+\TUD@deprecated@cs{univbs}{cdfontsi}%
+\TUD@deprecated@cs{univxs}{cdfontbi}%
+\TUD@deprecated@cs{textuln}{textcdln}%
+\TUD@deprecated@cs{texturn}{textcdrn}%
+\TUD@deprecated@cs{textubn}{textcdsn}%
+\TUD@deprecated@cs{textuxn}{textcdbn}%
+\TUD@deprecated@cs{textuls}{textcdli}%
+\TUD@deprecated@cs{texturs}{textcdri}%
+\TUD@deprecated@cs{textubs}{textcdsi}%
+\TUD@deprecated@cs{textuxs}{textcdbi}%
+\TUD@deprecated@cs{dinbn}{cdfontxn}%
+\TUD@deprecated@cs{textdbn}{textcdxn}%
+\TUD@deprecated@cs{ifdin}{@secondoftwo}
+\newrobustcmd*\tud@ifdin{%
+  \ifx\f@family\tud@cdfont@db%
+    \expandafter\@firstoftwo%
+  \else%
+    \expandafter\@secondoftwo%
   \fi%
 }
+\if@tud@cdoldfont@active
+  \newcommand*\ifdin{}%
+  \let\ifdin\tud@ifdin%
+\fi
+\def\tud@res@a#1{%
+  \TUD@deprecated@cs{var#1}{it#1}%
+}
+\tud@math@loop@greeks@uc\tud@res@a%
+%%% From File: tudscr-misc.dtx
 \newcommand*\tudbookmark[1][]{\@gobbletwo}
 \newcommand*\tud@x@hyperref@realfootnotes{}
 \AfterPackage{hyperref}{%
@@ -5135,12 +6341,12 @@
     \if@tud@bookmarks\bookmarksetup{startatroot}\fi%
   }%
 }
-\pretocmd{\tud@make@titlehead}{%
+\pretocmd{\tud@maketitle@inpage}{%
   \tud@x@bookmark@startatroot%
   \tudbookmark[%
   1%
   ]{\titlename}{title}%
-}{}{\tud@patch@wrn{tud@make@titlehead}}
+}{}{\tud@patch@wrn{tud@maketitle@inpage}}
 \pretocmd{\@maketitle}{%
   \tud@x@bookmark@startatroot%
   \tudbookmark[%
@@ -5153,10 +6359,10 @@
   \iftocfeature{toc}{totoc}{}{%
     \if@tud@bookmarks%
       \setuptoc{toc}{totoc}%
-      \tud@cmd@store{addtocontents}%
+      \tud@cs@store{addtocontents}%
       \def\@tempc{%
         \unsettoc{toc}{totoc}%
-        \tud@cmd@restore{addtocontents}%
+        \tud@cs@restore{addtocontents}%
       }%
       \let\addtocontents\@gobbletwo%
     \fi%
@@ -5165,41 +6371,74 @@
 \AfterTOCHead[toc]{\@tempc}
 \BeforeTOCHead[lof]{\tud@x@bookmark@startatroot}
 \BeforeTOCHead[lot]{\tud@x@bookmark@startatroot}
-\BeforePackage{tocloft}{%
-  \ClassWarningNoLine{\TUD@Class@Name}{%
-    It is absolutely not recommended to use package\MessageBreak%
-    `tocloft'. Loading the package will certainly lead\MessageBreak%
-    to problems with table of contents and any list of\MessageBreak%
-    floats. You should use the appropriate options of\MessageBreak%
-    the KOMA-Script classes%
-  }%
-}
-\CheckCommand*\@uclcnotmath[4]{%
-  \begingroup
-    #1%
-    \def\({$}\let\)\(%
-    \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}%
-    \@nonchangecase\label
-    \@nonchangecase\ref
-    \@nonchangecase\ensuremath
-    \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}%
-    \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}%
-    \def\reserved@a##1##2{\let#2\reserved@a}%
-    \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
-    \protected@edef\reserved@a{%
-      \endgroup
-      \noexpand\@skipmath#3#4$\valign$%
-    }%
-  \reserved@a%
+\AtBeginDocument{%
+  \if@tud@x@scr@fontsize@set\else%
+    \@tud@res@swafalse%
+    \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi%
+    \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi%
+    \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi%
+    \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi%
+    \if@tud@res@swa%
+      \ClassWarningNoLine{\TUD@Class@Name}{%
+        You've set a layout size, which is different from\MessageBreak%
+        default (paper=a4, paper=portrait). Therefore you\MessageBreak%
+        should additionally specify an explicit font size.\MessageBreak%
+        See the manual for further information%
+      }%
+    \fi%
+  \fi%
 }
-\newcommand*\tud@x@textcase@uclcnotmath{%
-  \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
-  \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
-  \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}%
+\newif\if@tud@font@set
+\newif\if@tud@math@set
+\newif\if@tud@font@skip@set
+\newif\if@tud@x@scr@headings@reset
+\newif\if@tud@cd@process
+\newif\if@tud@cdgeometry@process
+\newcommand*\tud@atdocument@process{%
+  \if@tud@font@set%
+    \tud@font@set%
+    \global\@tud@font@setfalse%
+    \global\@tud@font@skip@setfalse%
+    \global\@tud@cd@processfalse%
+  \fi%
+  \if@tud@font@skip@set%
+    \tud@font@skip@set%
+    \global\@tud@font@skip@setfalse%
+  \fi%
+  \if@tud@math@set%
+    \tud@math@set%
+    \global\@tud@math@setfalse%
+  \fi%
+  \if@tud@x@scr@headings@reset%
+    \tud@x@scr@headings@reset%
+    \global\@tud@x@scr@headings@resetfalse%
+    \global\@tud@cd@processfalse%
+  \fi%
+  \if@tud@cd@process%
+    \tud@cd@process%
+    \global\@tud@cd@processfalse%
+  \fi%
+  \if@tud@cdgeometry@process%
+    \tud@cdgeometry@process%
+    \global\@tud@cdgeometry@processfalse%
+  \fi%
 }
-\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
-  \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath%
-}{}{\tud@patch@wrn{@uclcnotmath}}
+\if@tud@cdoldfont@active
+  \RequirePackage{textcase}[2004/10/07]
+  \AfterPackage*{textcase}{%
+    \robustify\NoCaseChange%
+    \newcommand*\tud@x@textcase@uclcnotmath{%
+      \@nonchangecase\hologo%
+      \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
+      \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
+      \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}%
+    }%
+    \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
+      \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath%
+    }{}{\tud@patch@wrn{@uclcnotmath}}%
+  }%
+\fi
+\TUD@deprecated@cs{NoCaseChange}{@firstofone}
 \endinput
 %%
 %% End of file `tudscrposter.cls'.
-- 
cgit v1.2.3

