From 4553a2ccc50b634761d35616915c77e84a324089 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 30 Mar 2017 21:33:00 +0000
Subject: tudscr (30mar17)

git-svn-id: svn://tug.org/texlive/trunk@43649 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls | 333 ++++++++++++----------
 1 file changed, 190 insertions(+), 143 deletions(-)

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

diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls
index 35422e36cda..877291c0c89 100644
--- a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls
+++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls
@@ -29,7 +29,7 @@
 %% 
 %% TUD-Script -- Corporate Design of Technische Universitaet Dresden
 %% 
-%%   2017/03/27 v2.05k TUD-Script
+%%   2017/03/29 v2.05l TUD-Script
 %% 
 %% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2017
 %% 
@@ -72,13 +72,13 @@
       \fi%
     }
   \fi
-  \TUD@Version@Check{2017/03/27 v2.05k TUD-Script}
+  \TUD@Version@Check{2017/03/29 v2.05l TUD-Script}
 \endgroup
 \NeedsTeXFormat{LaTeX2e}
 \providecommand*\tudscrmail{hanisch.latex@outlook.com}
 \newcommand*\TUD@ProvidesClass[3]{%
   \ProvidesClass{#1}[%
-  2017/03/27 v2.05k TUD-Script
+  2017/03/29 v2.05l TUD-Script
     ^^J#3 (#2)%
   ]%
   \newcommand*\TUD@Class@KOMA{#2}%
@@ -118,7 +118,20 @@
   }%
 ]{tudscrfonts}
 \newif\if@tud@x@fontspec@enabled
-\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue}
+\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@ultrabold
 \@tud@cdfont@dintrue
@@ -172,24 +185,29 @@
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
     \ifcase\@tempa\relax% false
       \renewcommand*\tud@cdfont@num{0}%
+      \bool@std@lock{@tud@cdmath}{false}%
       \TUD@SpecialOptionAtDocument{tud@font@set}%
     \or% true
       \renewcommand*\tud@cdfont@num{1}%
+      \bool@std@lock{@tud@cdmath}{true}%
       \TUD@SpecialOptionAtDocument{tud@font@set}%
     \or% heavy
       \renewcommand*\tud@cdfont@num{2}%
+      \bool@std@lock{@tud@cdmath}{true}%
       \TUD@SpecialOptionAtDocument{tud@font@set}%
     \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}%
     \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%
@@ -221,6 +239,7 @@
         \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%
         \FamilyKeyStateProcessed%
@@ -250,6 +269,7 @@
   \FamilyKeyStateProcessed%
 }
 \bool@lock{@tud@cdmath}
+\bool@std@lock{@tud@cdmath}{true}%
 \TUD@key{cdmath}[true]{%
   \TUD@set@numkey{cdmath}{@tempa}{%
     \TUD@bool@numkey,%
@@ -1061,7 +1081,7 @@
         KOMA-Script compatibility level too low%
       }{%
         \TUD@Version\space must be used at least with\MessageBreak%
-        KOMA-Script compatibility option `version=3.12'.%
+        `version=3.12' KOMA-Script compatibility option.%
       }%
     \fi%
   }{%
@@ -1069,7 +1089,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. You're using \KOMAScriptVersion%
+      KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion is used.%
     }%
   }%
 }
@@ -1099,6 +1119,7 @@
 \csdef{tud@v@2.05h}{3}
 \csdef{tud@v@2.05i}{3}
 \csdef{tud@v@2.05k}{3}
+\csdef{tud@v@2.05l}{3}
 \csdef{tud@v@last}{3}
 \newcommand*\tud@v@get[2]{%
   \begingroup%
@@ -1122,7 +1143,8 @@
       \fi%
     }{%
       \def\tud@reserved{%
-        \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning!
+        \ClassWarningNoLine{\TUD@Class@Name}%
+        {%
           Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak%
           There's no defined macro `\string\tud@v@\@tempa'%
         }%
@@ -1132,7 +1154,7 @@
   \tud@reserved%
 }
 \TUD@key{fontspec}[true]{%
-  \ClassWarning{\TUD@Class@Name}%
+  \ClassWarningNoLine{\TUD@Class@Name}%
   {%
     The option key `fontspec' is deprecated\MessageBreak%
     You should load the package `fontspec' manually%
@@ -1152,7 +1174,7 @@
     \FamilyKeyStateProcessed%
   }%
   \if@tud@x@fontspec@enabled%
-    \RequirePackage{fontspec}[2014/06/21]%
+    \RequirePackage{fontspec}[2017/01/24]%
   \fi%
 }
 \TUD@key{cdfonts}[true]{%
@@ -1351,7 +1373,7 @@
         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.%
+        See the manual for further information%
       }%
     \fi%
   }{}%
@@ -1431,88 +1453,103 @@
 \newcommand*\tud@dinbold{0m6}
 \newif\if@tud@dinbold
 \newif\if@tud@dinboldmath
-\newcommand*\tud@x@fontspec@noerror{}
-\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse}
-\if@tempswa
-  \RequirePackage{expl3}[2016/05/18]
-  \ExplSyntaxOn
-  \renewcommand*\tud@x@fontspec@noerror{%
-    \__fontspec_font_suppress_not_found_error:
-    \msg_redirect_name:nnn {fontspec}{font-not-found}{none}
-  }%
-  \ExplSyntaxOff
-\fi
 \newcommand*\tud@font@check{%
   \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}%
   \def\@tempb##1{%
-    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-      \if@tud@cdmath%
-        \ClassWarningNoLine{\TUD@Class@Name}%
-        {%
-          `##1' fonts for math typesetting not found\MessageBreak%
-          Please use one of the installation scripts for the\MessageBreak%
-          tudscr-bundle mentioned in the manual%
-        }%
-      \fi%
+    \if@tud@cdmath%
+      \tud@font@math@missing@wrn{##1}%
     \fi%
   }%
   \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}%
-  \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}%
+  \@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}%
+    }%
+  \fi%
   \if@tud@x@fontspec@enabled%
     \def\@tempc##1##2{%
-      \fontspec{##1}%
-      \expandafter\ifx\the\font\nullfont%
+      \IfFontExistsTF{##1}{}{%
         ##2%
         \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-          \ClassWarningNoLine{\TUD@Class@Name}%
-          {%
-            `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
-            It seems, you haven't installed the required\MessageBreak%
-            OTF-font on your system. A fallback layout is used%
-          }%
+          \tud@font@missing@wrn{##1}%
         \fi%
-      \fi%
+      }%
     }%
-    \begingroup%
-      \tud@x@fontspec@noerror%
-      \global\@tud@universtrue%
-      \@tempc{Univers Light}{\global\@tud@universfalse}%
-      \@tempc{Univers}{\global\@tud@universfalse}%
-      \@tempc{Univers Bold}{\global\@tud@universfalse}%
-      \@tempc{Univers Black}{\global\@tud@universfalse}%
-      \@tempc{Univers Light Oblique}{\global\@tud@universfalse}%
-      \@tempc{Univers Oblique}{\global\@tud@universfalse}%
-      \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}%
-      \@tempc{Univers Black Oblique}{\global\@tud@universfalse}%
-      \global\@tud@dinboldtrue%
-      \@tempc{DIN Bold}{\global\@tud@dinboldfalse}%
-    \endgroup%
+    \@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}%
   \else%
     \def\@tempc##1{%
       \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-        \@tempswafalse%
-        \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}%
-        \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}%
-        \ClassWarningNoLine{\TUD@Class@Name}%
-        {%
-          `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
-          \if@tempswa%
-            Please use one of the installation scripts for the\MessageBreak%
-            tudscr-bundle mentioned in the manual.\MessageBreak%
-          \else%
-            Please choose a possible encoding (`OT1' or `T1').\MessageBreak%
-          \fi%
-          A fallback layout is used%
-        }%
+        \tud@font@missing@wrn{##1}%
       \fi%
     }%
     \expandafter\@tempa\expandafter{\encodingdefault}%
       {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}%
     \expandafter\@tempa\expandafter{\encodingdefault}%
-      {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
+      {\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]{%
+  \begingroup%
+    \def\@tempa{%
+      `#1' font not found for `\encodingdefault' 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 %
+        }%
+      }{%
+         \appto\@tempa{Please }%
+      }%
+      \@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%
+        }%
+      \else%
+        \appto\@tempa{%
+          choose a possible encoding with\MessageBreak%
+          package `fontenc' (`OT1' or `T1')%
+        }%
+      \fi%
+    \fi%
+    \appto\@tempa{.\MessageBreak A fallback layout is used}%
+    \ClassWarning{\TUD@Class@Name}{\@tempa}%
+  \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%
+  }%
+}
 \newcommand*\tud@raggedright{\raggedright}
 \newcommand*\tud@RaggedRight{\raggedright}
 \AfterPackage*{ragged2e}{%
@@ -1533,13 +1570,15 @@
   \if@atdocument%
     \ifnum\tud@cdfont@num>\z@\relax% true/heavy
       \if@tud@univers\else%
-        \ClassWarning{\TUD@Class@Name}%
-          {`Univers' fonts not found}%
+        \tud@font@missing@wrn{Univers}%
       \fi%
       \if@tud@dinbold\else%
-        \ClassWarning{\TUD@Class@Name}%
-          {`DIN Bold' fonts not found}%
+        \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}%
+      }%
     \fi%
   \fi%
   \ifcase\tud@cdfont@num\relax% false
@@ -1560,7 +1599,6 @@
       \tud@cmd@restore{mdseries@sf}%
       \tud@cmd@restore{mdseries@tt}%
     \fi%
-    \bool@std@lock{@tud@cdmath}{false}%
     \ifcase\tud@cd@num\relax% false
       \cs@std@lock{tud@head@font@num}{0}%
     \else% !false
@@ -1584,35 +1622,26 @@
       \tud@cmd@store{mdseries@sf}%
       \tud@cmd@store{mdseries@tt}%
     \fi%
-    \bool@std@lock{@tud@cdmath}{true}%
     \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}%
     \if@tud@univers%
       \if@tud@x@fontspec@enabled%
-        \setsansfont{Univers}[%
-          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 Light Oblique},%
-          FontFace = {m}{\sldefault}{Univers Oblique},%
-          FontFace = {b}{\sldefault}{Univers Bold Oblique},%
-          FontFace = {bx}{\sldefault}{Univers Bold Oblique},%
-          FontFace = {eb}{\sldefault}{Univers Black Oblique},%
-          NFSSFamily = \tud@univers%
-        ]%
+        \setsansfont{Univers}[\tud@x@fontspec@set@univ]%
         \setmonofont{LMMono10-Regular}[%
-          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%
+          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}%
@@ -1698,9 +1727,51 @@
   \tud@skip@set{belowcaptionskip}{\z@}%
   \tud@skip@set{columnsep}{1.1\baselineskip}%
 }
-\newcommand*\tud@dinbn{}
-\let\tud@dinbn\relax
 \newcommand*\tud@font@init{%
+  \if@tud@x@fontspec@enabled%
+    \if@tud@univers%
+      \newcommand*\tud@x@fontspec@set@univ{%
+        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}%
+      }%
+      \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{%
+        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}%
+      }%
+      \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}}%
@@ -1715,36 +1786,20 @@
     \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 Light Oblique}{md}{sl}}%
+    \newrobustcmd*\univls{\tud@font@fallback{Univers LightOblique}{md}{sl}}%
     \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}%
-    \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}%
-    \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}%
+    \newrobustcmd*\univbs{\tud@font@fallback{Univers BoldOblique}{bf}{sl}}%
+    \newrobustcmd*\univxs{\tud@font@fallback{Univers BlackOblique}{bf}{sl}}%
   \fi%
   \if@tud@dinbold%
-    \if@tud@x@fontspec@enabled%
-      \newfontface\tud@dinbn{DIN Bold}[%
-        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},%
-        NFSSFamily = \tud@dinbold%
-      ]%
-    \else%
-      \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
-    \fi%
+    \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
     \if@tud@dinboldmath%
       \appto\tud@dinbn{\mathversion{dinbold}}%
     \fi%
     \newrobustcmd*\dinbn{\tud@dinbn}%
   \else%
     \newrobustcmd*\tud@dinbn{\sectfont}%
-    \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}%
+    \newrobustcmd*\dinbn{\tud@font@fallback@wrn{DIN-Bold}\tud@dinbn}%
   \fi%
   \newcommand*\textuln{}%
   \newcommand*\texturn{}%
@@ -1767,10 +1822,10 @@
   \undef\tud@font@init%
 }
 \newcommand*\tud@font@fallback[3]{%
-  \tud@font@wrn{#1}%
+  \tud@font@fallback@wrn{#1}%
   \sffamily\csuse{#2series}\csuse{#3shape}%
 }
-\newcommand*\tud@font@wrn[1]{%
+\newcommand*\tud@font@fallback@wrn[1]{%
   \ClassWarning{\TUD@Class@Name}%
   {%
     The requested font `#1' is not available, so\MessageBreak%
@@ -1971,17 +2026,16 @@
 }
 \newcommand*\tud@font@math@set{%
   \if@atdocument%
-    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
-      \if@tud@cdmath%
-        \if@tud@universmath\else%
-          \ClassWarning{\TUD@Class@Name}%
-            {`Univers' math fonts not found}%
-        \fi%
-        \if@tud@dinboldmath\else%
-          \ClassWarning{\TUD@Class@Name}%
-            {`DIN Bold' math fonts not found}%
-        \fi%
+    \if@tud@cdmath%
+      \if@tud@universmath\else%
+        \tud@font@math@missing@wrn{Univers}%
+      \fi%
+      \if@tud@dinboldmath\else%
+        \tud@font@math@missing@wrn{DIN-Bold}%
       \fi%
+      \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{%
+        \bool@set@lock{@tud@cdmath}{false}%
+      }%
     \fi%
   \fi%
   \if@tud@universmath%
@@ -2029,8 +2083,8 @@
     \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
   \fi%
   \tud@font@check%
-  \tud@font@set%
   \tud@font@init%
+  \tud@font@set%
   \if@tud@x@bm@requested%
     \tud@font@math@init%
     \UnPreventPackageFromLoading{bm}%
@@ -4183,7 +4237,6 @@
 \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
@@ -4201,9 +4254,6 @@
       {\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
@@ -4215,9 +4265,6 @@
         \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%
@@ -6072,7 +6119,7 @@
     }{%
       \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{%
         \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{%
-          \TUD@parameter@error{cdgeometry}{true,false}%
+          \TUD@parameter@error{cdgeometry}{true, false}%
         }%
       }%
     }%
-- 
cgit v1.2.3

