diff options
author | Karl Berry <karl@freefriends.org> | 2019-06-28 21:06:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-06-28 21:06:55 +0000 |
commit | 6677e7d16babf1c0596fd30f9aeb6b13433725cd (patch) | |
tree | 84163738e611a8ebcbbed7102f3efa9238211476 /Master/texmf-dist/tex/latex/tudscr | |
parent | 2a2ad17b85ef254d44022ec0fbcadb62cc90f431 (diff) |
tudscr (28jun19)
git-svn-id: svn://tug.org/texlive/trunk@51500 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tudscr')
17 files changed, 17110 insertions, 10860 deletions
diff --git a/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty index bae038f4b44..048a9c8a0b4 100644 --- a/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty @@ -4,17 +4,20 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,fontsfix') -%% tudscr-comp.dtx (with options: `package,fontsfix,identify') -%% tudscr-base.dtx (with options: `package,fontsfix') -%% tudscr-comp.dtx (with options: `package,fontsfix,option') -%% tudscr-comp.dtx (with options: `package,fontsfix,body') +%% tudscr-version.dtx (with options: `package,fixfonts') +%% tudscr-comp.dtx (with options: `package,fixfonts,identify') +%% tudscr-base.dtx (with options: `package,fixfonts,load') +%% tudscr-layout.dtx (with options: `package,fixfonts,option') +%% tudscr-misc.dtx (with options: `package,fixfonts,execute') +%% tudscr-layout.dtx (with options: `package,fixfonts,body') +%% tudscr-comp.dtx (with options: `package,fixfonts,body') +%% tudscr-misc.dtx (with options: `package,fixfonts,body') %% %% 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. %% ---------------------------------------------------------------------------- @@ -40,7 +43,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]{% @@ -55,62 +58,132 @@ \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} \@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-comp.dtx \ProvidesPackage{fix-tudscrfonts}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package for font fixes (compatibility for old tud(scr) classes)% ] %%% From File: tudscr-base.dtx -\RequirePackage{scrlfile}[2013/12/19] -\RequirePackage{etoolbox}[2011/01/03] -\newcommand*\tud@cmd@store[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% +\RequirePackage{tudscrbase}[\TUD@Version] +%%% From File: tudscr-layout.dtx +\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% +} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} +\TUDExecuteOptions{% + headings=heavy% +} +\TUDProcessOptions\relax +%%% From File: tudscr-layout.dtx +\AfterPackage*{tudscrfonts}{% +\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% } -\newcommand*\tud@cmd@check[1]{% - \ifcsdef{#1}{}{% - \PackageError{% - fix-tudscrfonts% - }{`\@backslashchar#1' is not defined}{% - The command `\@backslashchar#1' was never defined\MessageBreak% - Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required.% +\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{% } -\BeforePackage{tudscrbase}{% - \undef\tud@cmd@store% - \undef\tud@cmd@check% } %%% From File: tudscr-comp.dtx -\PassOptionsToPackage{relspacing=false,cdfont=ultrabold}{tudscrfonts} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} -\ProcessOptions\relax \AtEndPreamble{% - \tud@fontsfix@maybe@err% + \tud@fixfonts@class@check% \RequirePackage{tudscrfonts}[\TUD@Version]% } \ifx\usepackage\RequirePackage - \newcommand*\tud@fontsfix@maybe@err{% + \newcommand*\tud@fixfonts@class@check{% \PackageError{fix-tudscrfonts}{Package too late}{% You must load `fix-tudscrfonts' with\MessageBreak% `\string\RequirePackage' before any document class.% }% }% \else - \newcommand*\tud@fontsfix@maybe@err{% + \newcommand*\tud@fixfonts@class@check{% \PackageError{fix-tudscrfonts}{Unsupported class found}{% You have to use `fix-tudscrfonts' only\MessageBreak% with supported classes. These are: `tudbook',\MessageBreak% @@ -121,50 +194,48 @@ }% }% \fi -%%% From File: tudscr-comp.dtx -\newcommand*\tud@fontsfix@AdaptClass[2]{% +\newcommand*\tud@fixfonts@class@adapt[2]{% \BeforeClass{#1}{% - \let\tud@fontsfix@maybe@err\relax% - \tud@cmd@store{DeclareFixedFont}% + \let\tud@fixfonts@class@check\relax% + \tud@cs@store{DeclareFixedFont}% \renewcommand*\DeclareFixedFont[6]{}% - \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{sldefault}% - \tud@cmd@store{scdefault}% - \tud@cmd@store{updefault}% - \tud@cmd@store{rmfamily}% - \tud@cmd@store{sffamily}% - \tud@cmd@store{ttfamily}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \tud@cmd@store{normalfont}% + \tud@cs@store{rmdefault}% + \tud@cs@store{sfdefault}% + \tud@cs@store{ttdefault}% + \tud@cs@store{bfdefault}% + \tud@cs@store{mddefault}% + \tud@cs@store{itdefault}% + \tud@cs@store{sldefault}% + \tud@cs@store{scdefault}% + \tud@cs@store{updefault}% + \tud@cs@store{rmfamily}% + \tud@cs@store{sffamily}% + \tud@cs@store{ttfamily}% + \tud@cs@store{familydefault}% + \tud@cs@store{seriesdefault}% + \tud@cs@store{shapedefault}% + \tud@cs@store{normalfont}% \let\normalfont\relax% \PassOptionsToClass{serifmath}{#1}% }% \AfterClass{#1}{% - \RequirePackage{tudscrbase}[\TUD@Version]% - \tud@cmd@restore{DeclareFixedFont}% - \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{sldefault}% - \tud@cmd@restore{scdefault}% - \tud@cmd@restore{updefault}% - \tud@cmd@restore{rmfamily}% - \tud@cmd@restore{sffamily}% - \tud@cmd@restore{ttfamily}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \tud@cmd@restore{normalfont}% + \tud@cs@restore{DeclareFixedFont}% + \tud@cs@restore{rmdefault}% + \tud@cs@restore{sfdefault}% + \tud@cs@restore{ttdefault}% + \tud@cs@restore{bfdefault}% + \tud@cs@restore{mddefault}% + \tud@cs@restore{itdefault}% + \tud@cs@restore{sldefault}% + \tud@cs@restore{scdefault}% + \tud@cs@restore{updefault}% + \tud@cs@restore{rmfamily}% + \tud@cs@restore{sffamily}% + \tud@cs@restore{ttfamily}% + \tud@cs@restore{familydefault}% + \tud@cs@restore{seriesdefault}% + \tud@cs@restore{shapedefault}% + \tud@cs@restore{normalfont}% #2% \AfterPackage*{tudscrfonts}{% \def\dinBold{\dinbn}% @@ -184,67 +255,36 @@ \newcommand*\univBoldXV{}% \newcommand*\univLightHead{}% \newcommand*\univBoldHead{}% - \providecommand*\tud@head@fntsz{9}% - \if@tud@univers% - \if@tud@x@fontspec@enabled% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {UniversLight}{m}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {UniversLightOblique}{m}{n}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {UniversBold}{m}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {UniversLight}{m}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {UniversLightOblique}{m}{n}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {UniversBold}{m}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {UniversLight}{m}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {UniversLightOblique}{m}{n}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {UniversBold}{m}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {UniversLight}{m}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {UniversLightOblique}{m}{n}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {UniversBold}{m}{n}{15}% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@fntsz}% - \else% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {\tud@univers}{l}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {\tud@univers}{l}{sl}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {\tud@univers}{b}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {\tud@univers}{l}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {\tud@univers}{l}{sl}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {\tud@univers}{b}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {\tud@univers}{l}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {\tud@univers}{l}{sl}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {\tud@univers}{b}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {\tud@univers}{l}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {\tud@univers}{l}{sl}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {\tud@univers}{b}{n}{15}% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fntsz}% - \fi% + \providecommand*\tud@head@fontsize{9}% + \if@tud@cdfont@fam@exist% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{sl}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{15}% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}% \else% \DeclareFixedFont{\univLightVII}{\encodingdefault}% {\sfdefault}{\mddefault}{\updefault}{7}% @@ -271,55 +311,55 @@ \DeclareFixedFont{\univBoldXV}{\encodingdefault}% {\sfdefault}{\bfdefault}{\updefault}{15}% \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fntsz}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fntsz}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% \fi% }% }% }% } -\tud@fontsfix@AdaptClass{tudletter}{} -\tud@fontsfix@AdaptClass{tudfax}{} -\tud@fontsfix@AdaptClass{tudform}{} -\tud@fontsfix@AdaptClass{tudhaus}{} -\tud@fontsfix@AdaptClass{tudposter}{} -\tud@fontsfix@AdaptClass{tudbeamer}{} -\tud@fontsfix@AdaptClass{tudbook}{% +\tud@fixfonts@class@adapt{tudletter}{} +\tud@fixfonts@class@adapt{tudfax}{} +\tud@fixfonts@class@adapt{tudform}{} +\tud@fixfonts@class@adapt{tudhaus}{} +\tud@fixfonts@class@adapt{tudposter}{} +\tud@fixfonts@class@adapt{tudbeamer}{} +\tud@fixfonts@class@adapt{tudbook}{% \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makechapterhead}}% \patchcmd{\@makechapterhead}{\MakeUppercase}{% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{@makechapterhead}}% \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makeschapterhead}}% \patchcmd{\@makeschapterhead}{\MakeUppercase}{% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{@makeschapterhead}}% \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Large% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{section}}% \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{% - \tud@sec@fontface[\bfseries]% + \tud@sec@fontface% \if@colortitle\color{HKS41-30}\fi% \Huge% - \tud@makeuppercase% + \tud@sec@format% }{}{\tud@patch@wrn{showtitle}}% } -\tud@fontsfix@AdaptClass{tudmathposter}{% +\tud@fixfonts@class@adapt{tudmathposter}{% \def\raggedtitle{\tud@raggedright}% \renewcommand*\raggedpart{\tud@raggedright}% \renewcommand*\raggedsection{\tud@raggedright}% - \setkomafont{title}{\tud@sec@fontface[\bfseries]\Huge}% + \setkomafont{title}{\tud@sec@fontface\Huge}% \CheckCommand\maketitle{% \if@matheanull \setlength\@tempskipa{31.194586mm-\topsep}% @@ -346,14 +386,10 @@ \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}% \renewcommand*\subtitlefont{% \unskip% - \ifstr{\mddefault}{l}{% - \tud@sec@fontface[\fontseries{m}]% - }{% - \tud@sec@fontface[\fontseries{bx}]% - }% + \tud@sec@fontface% \huge% }% - \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@makeuppercase{#1}}% + \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@sec@format{#1}}% \if@mathevorgabe% \undef\sectionfont% \undef\subsectionfont% @@ -365,32 +401,31 @@ }{}{\tud@patch@wrn{ps@tudposter}}% \pagestyle{tudposter}% } -\PreventPackageFromLoading[% +\newcommand*\tud@x@tudfonts@prevent{% \RequirePackage{amsmath}% \RequirePackage{amsfonts}% - \let\DeclareTudMathSizes\@gobblefour% \newif\if@tudfonts@nodin% -]{tudfonts} -\BeforePackage{tudscrfonts}{% - \undef\univln% - \undef\univrn% - \undef\univbn% - \undef\univxn% - \undef\univls% - \undef\univrs% - \undef\univbs% - \undef\univxs% - \undef\dinbn% - \undef\textuln% - \undef\texturn% - \undef\textubn% - \undef\textuxn% - \undef\textuls% - \undef\texturs% - \undef\textubs% - \undef\textuxs% - \undef\textdbn% + \let\DeclareTudMathSizes\@gobblefour% + \let\tud@x@tudfonts@prevent\relax% } +\PreventPackageFromLoading[\tud@x@tudfonts@prevent]{tudfonts} +%%% From File: tudscr-misc.dtx +\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 `fix-tudscrfonts.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty index e86376c568f..cc853b7ebb9 100644 --- a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty +++ b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty @@ -8,9 +8,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. %% ---------------------------------------------------------------------------- @@ -29,7 +29,7 @@ %%% From File: tudscr-mathswap.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathswap}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (swap mathematical separators)% ] diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls index 3b7302f5a8e..1c29462b43f 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls @@ -12,13 +12,13 @@ %% tudscr-layout.dtx (with options: `class,article,option') %% tudscr-title.dtx (with options: `class,article,option') %% tudscr-frontmatter.dtx (with options: `class,article,option') -%% tudscr-comp.dtx (with options: `class,article,option') %% tudscr-misc.dtx (with options: `class,article,option') +%% tudscr-comp.dtx (with options: `class,article,option') %% tudscr-misc.dtx (with options: `class,article,execute') %% tudscr-base.dtx (with options: `class,article,body') %% tudscr-fonts.dtx (with options: `class,article,body') %% tudscr-fields.dtx (with options: `class,article,body') -%% tudscr-locale.dtx (with options: `class,article,body') +%% tudscr-localization.dtx (with options: `class,article,body') %% tudscr-area.dtx (with options: `class,article,body') %% tudscr-pagestyle.dtx (with options: `class,article,body') %% tudscr-layout.dtx (with options: `class,article,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{tudscrartcl}{scrartcl}{document 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,150 +771,57 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\cs@lock{tud@layout@cover@num}{0} -\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@cover@num}{0}% - \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@cover@num}{1}% - \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@cover@num}{1}% - \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@cover@num}{1}% - \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@cover@num}{1}% - \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@cover@num}{1}% - \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@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{6}% - \cs@std@lock{tud@layout@part@num}{6}% - \cs@std@lock{tud@layout@section@num}{2}% + \TUD@key@preset{cdcover}{false}% + \else% !false + \TUD@key@preset{cdcover}{true}% \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@cover@num{0} \TUD@key{cdcover}[true]{% - \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdcover}{tud@cd@cover@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover@num}{0}% - \or% true - \cs@set@lock{tud@layout@cover@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@cover@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@cover@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@cover@num}{4}% - \or% color - \cs@set@lock{tud@layout@cover@num}{5}% - \or% full - \cs@set@lock{tud@layout@cover@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \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{}% -\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% -} \newcommand*\tud@dim@pageheadingsvskip{0pt} \TUD@key{pageheadingsvskip}{% \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% @@ -771,10 +830,36 @@ \TUD@key{headingsvskip}{% \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% } +\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% +} %%% From File: tudscr-title.dtx \newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +\TUD@key{subjectthesis}[true]{% + \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% +} +\newif\if@tud@titlesignature +\TUD@key{titlesignature}[true]{% + \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -794,7 +879,7 @@ {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level@num{0} -\cs@lock{tud@abstract@toc@num}{0} +\tud@locked@newnum{tud@abstract@toc@num}{0} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -806,13 +891,13 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@abstract@level@num{0}% - \cs@std@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@preset{tud@abstract@toc@num}{0}% \or% true \renewcommand*\tud@abstract@level@num{1}% - \cs@std@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@preset{tud@abstract@toc@num}{0}% \or% section \renewcommand*\tud@abstract@level@num{2}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% chapter \or% single \@tud@abstract@multifalse% @@ -827,26 +912,26 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@set{tud@abstract@toc@num}{0}% \or% totoc \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc@num}{3}% + \tud@locked@num@set{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{2}% + \tud@locked@num@set{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc@num}{4}% + \tud@locked@num@set{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@abstract@toc@num=\z@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \fi% \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \noexpand\tud@locked@num@set{tud@abstract@toc@num}{% \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% @@ -859,7 +944,7 @@ \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{1} -\cs@lock{tud@declaration@toc@num}{0} +\tud@locked@newnum{tud@declaration@toc@num}{0} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -871,13 +956,13 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@declaration@level@num{0}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% true \renewcommand*\tud@declaration@level@num{1}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% section \renewcommand*\tud@declaration@level@num{2}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% chapter \or% single \@tud@declaration@multifalse% @@ -892,26 +977,26 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@set{tud@declaration@toc@num}{0}% \or% totoc \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc@num}{3}% + \tud@locked@num@set{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{2}% + \tud@locked@num@set{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc@num}{4}% + \tud@locked@num@set{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@declaration@toc@num=\z@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \fi% \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \noexpand\tud@locked@num@set{tud@declaration@toc@num}{% \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% @@ -919,18 +1004,99 @@ \fi% \fi% } +%%% 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}% @@ -939,23 +1105,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% @@ -974,7 +1142,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.% }% }% } @@ -984,7 +1152,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} @@ -1006,7 +1173,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}}% @@ -1039,48 +1207,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]{% @@ -1093,53 +1229,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% } @@ -1210,116 +1346,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}{true}% + \TUD@key@preset{ttfont}{lmodern}% + \TUD@key@preset{headings}{light}% +}{% + \TUD@key@preset{cdfont}{true}% + \TUD@key@preset{ttfont}{roboto}% + \TUD@key@preset{headings}{heavy}% +} +\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% - cd=true,relspacing=true,tudbookmarks=true% + cd=true,tudbookmarks=true% } \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}{% @@ -1333,109 +1422,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}% - \fi% - }% - \@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}% +\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% + }% + }% +} +\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 @@ -1452,9 +1670,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 @@ -1464,127 +1682,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}% @@ -1594,12 +1798,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}% @@ -1628,147 +1894,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}}% - \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}}% - \fi% - \if@tud@dinbold% - \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% - \if@tud@dinboldmath% - \appto\tud@dinbn{\mathversion{dinbold}}% - \fi% - \newrobustcmd*\dinbn{\tud@dinbn}% + \fi% + \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*\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]{% + \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% + \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% + \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}% @@ -1776,22 +2203,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}% @@ -1800,232 +2250,905 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\tud@font@greek@loop[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% - }% - }% - }{}% +\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% - \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}% - }{}% + \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% - \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}% +\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% - \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}% +\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% - \csletcs{up#1}{#1}% + \aftergroup\@secondoftwo% \fi% - }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% + \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% - \csletcs{var#1}{tud@var#1}% + \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{\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@font@math@set{% - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% +\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@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% + \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% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% + \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% - \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% + }% + \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@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \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}% + }{}% + \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% + \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% - \if@tud@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% + \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% + }{}% + \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% + }{}% + }{}% + \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% + \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% + \fi% + }% +} +\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% \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@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}% + \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}% + \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}% + \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}% + \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}% + \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{} @@ -2087,11 +3210,35 @@ } \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*\@matriculationnumber{} +\newrobustcmd*\matriculationnumber[1]{% + \gdef\@matriculationnumber{#1}\ignorespaces% +} +\newcommand*\@matriculationyear{} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newcommand*\@placeofbirth{} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newcommand*\@thesis{} \newcommand*\@@thesis{} \newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} @@ -2107,8 +3254,11 @@ \let\footnote\@gobble% \tud@lowerstring{\@tempa}{#2}% \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \global\let\@tempa\@tempa% - \endgroup% + \protected@edef\@tempa{% + \endgroup% + \def\noexpand\@tempa{\@tempa}% + }% + \@tempa% \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% @@ -2134,9 +3284,9 @@ Field `thesis' is overwritten by `subject'% }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% + \TUD@key@preset{subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% + \TUD@key@preset{subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% @@ -2146,9 +3296,10 @@ \protected@xdef\@@thesis{\trim@spaces{#2}}% } \newcommand*\@graduation{} -\newcommand*\@@graduation{} +\newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% + \gdef\@graduationabbreviation{}% + \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} @@ -2163,14 +3314,6 @@ \newcommand*\referee[1]{\gdef\@referee{#1}} \newcommand*\@advisor{} \newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} -\newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} -\newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newlength\tud@len@signatureskip \setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% @@ -2188,8 +3331,15 @@ \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} -\newcommand*\tud@x@isodate@printdate[2]{% +\providecommand*\publisher[1]{\publishers{#1}} +\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% @@ -2222,38 +3372,39 @@ }{\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% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{% - \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% + \tud@printdate{\@dateofbirth}{#1}\ignorespaces% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% @@ -2267,8 +3418,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% @@ -2282,7 +3433,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}% @@ -2295,7 +3446,7 @@ \newcommand*\tud@multiple@fields@restore[1]{% \def\@tempa##1{% \ifcsdef{@##1}{% - \tud@cmd@restore{@##1}% + \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% }% @@ -2328,13 +3479,13 @@ } \newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,course,discipline,% + authormore,course,discipline,emailaddress,% matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-locale.dtx -\newcommand*\tud@locale@define[1]{% +%%% From File: tudscr-localization.dtx +\newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% @@ -2348,48 +3499,49 @@ }% }% } -\tud@locale@define{\graduationtext} -\tud@locale@define{\refereename} -\tud@locale@define{\refereeothername} -\tud@locale@define{\advisorname} -\tud@locale@define{\advisorothername} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} -\tud@locale@define{\professorname} -\tud@locale@define{\professorothername} -\tud@locale@define{\datetext} -\tud@locale@define{\dateofbirthtext} -\tud@locale@define{\placeofbirthtext} -\tud@locale@define{\defensedatetext} -\tud@locale@define{\matriculationyearname} -\tud@locale@define{\matriculationnumbername} -\tud@locale@define{\coverpagename} -\tud@locale@define{\titlepagename} -\tud@locale@define{\titlename} -\tud@locale@define{\confirmationname} -\tud@locale@define{\confirmationtext} -\tud@locale@define{\blockingname} -\tud@locale@define{\blockingtext} -\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@localization@define{\graduationtext} +\tud@localization@define{\refereename} +\tud@localization@define{\refereeothername} +\tud@localization@define{\advisorname} +\tud@localization@define{\advisorothername} +\tud@localization@define{\supervisorname} +\tud@localization@define{\supervisorothername} +\tud@localization@define{\professorname} +\tud@localization@define{\professorothername} +\tud@localization@define{\datetext} +\tud@localization@define{\dateofbirthtext} +\tud@localization@define{\placeofbirthtext} +\tud@localization@define{\defensedatetext} +\tud@localization@define{\matriculationyearname} +\tud@localization@define{\matriculationnumbername} +\tud@localization@define{\coverpagename} +\tud@localization@define{\titlepagename} +\tud@localization@define{\titlename} +\tud@localization@define{\confirmationname} +\tud@localization@define{\confirmationtext} +\tud@localization@define{\blockingname} +\tud@localization@define{\blockingtext} +\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} \newcommand*\tud@ifin@and[1]{% \begingroup% \let\and\relax% + \robustify\\% \protected@edef\@tempb{#1}% \def\@tempa##1\and##2\relax{% \IfArgIsEmpty{##2}{% @@ -2401,13 +3553,15 @@ \expandafter\@tempa\@tempb\and\relax% \endgroup } -\newcommand*\tud@locale@german{% +\newcommand*\tud@localization@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } -\tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\refereename}{% +\tud@localization@german{\graduationtext}{% + zur Erlangung des akademischen Grades% +}% +\tud@localization@german{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Gutachter% @@ -2416,8 +3570,8 @@ \fi% }{Gutachter}% }% -\tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{% +\tud@localization@german{\refereeothername}{Zweitgutachter}% +\tud@localization@german{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Fachreferenten% @@ -2426,8 +3580,8 @@ \fi% }{Fachreferent}% }% -\tud@locale@german{\advisorothername}{}% -\tud@locale@german{\supervisorname}{% +\tud@localization@german{\advisorothername}{}% +\tud@localization@german{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Betreuer% @@ -2436,8 +3590,8 @@ \fi% }{Betreuer}% }% -\tud@locale@german{\supervisorothername}{}% -\tud@locale@german{\professorname}{% +\tud@localization@german{\supervisorothername}{}% +\tud@localization@german{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Betreuende Hochschullehrer% @@ -2446,18 +3600,18 @@ \fi% }{Betreuender Hochschullehrer}% }% -\tud@locale@german{\professorothername}{}% -\tud@locale@german{\datetext}{Eingereicht am}% -\tud@locale@german{\dateofbirthtext}{Geboren am}% -\tud@locale@german{\placeofbirthtext}{in}% -\tud@locale@german{\defensedatetext}{Verteidigt am}% -\tud@locale@german{\matriculationyearname}{Immatrikulationsjahr}% -\tud@locale@german{\matriculationnumbername}{Matrikelnummer}% -\tud@locale@german{\coverpagename}{Umschlagseite}% -\tud@locale@german{\titlepagename}{Titelblatt}% -\tud@locale@german{\titlename}{Titel}% -\tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% -\tud@locale@german{\confirmationtext}{% +\tud@localization@german{\professorothername}{}% +\tud@localization@german{\datetext}{Eingereicht am}% +\tud@localization@german{\dateofbirthtext}{Geboren am}% +\tud@localization@german{\placeofbirthtext}{in}% +\tud@localization@german{\defensedatetext}{Verteidigt am}% +\tud@localization@german{\matriculationyearname}{Immatrikulationsjahr}% +\tud@localization@german{\matriculationnumbername}{Matrikelnummer}% +\tud@localization@german{\coverpagename}{Umschlagseite}% +\tud@localization@german{\titlepagename}{Titelblatt}% +\tud@localization@german{\titlename}{Titel}% +\tud@localization@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% +\tud@localization@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. @@ -2477,8 +3631,8 @@ Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% }% -\tud@locale@german{\blockingname}{Sperrvermerk}% -\tud@locale@german{\blockingtext}{% +\tud@localization@german{\blockingname}{Sperrvermerk}% +\tud@localization@german{\blockingtext}{% Diese Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else @@ -2491,30 +3645,30 @@ Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des Pr\"ufungsausschusses zug\"anglich zu machen.% }% -\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}% -\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}% +\newcommand*\tud@localization@english{% \providecaptionname{% american,australian,british,canadian,english,newzealand,UKenglish,USenglish% }% } -\tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\refereename}{% +\tud@localization@english{\graduationtext}{to achieve the academic degree}% +\tud@localization@english{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Referees% @@ -2523,8 +3677,8 @@ \fi% }{Referee}% }% -\tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{% +\tud@localization@english{\refereeothername}{Second referee}% +\tud@localization@english{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Advisors% @@ -2533,8 +3687,8 @@ \fi% }{Advisor}% }% -\tud@locale@english{\advisorothername}{}% -\tud@locale@english{\supervisorname}{% +\tud@localization@english{\advisorothername}{}% +\tud@localization@english{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Supervisors% @@ -2543,8 +3697,8 @@ \fi% }{Supervisor}% }% -\tud@locale@english{\supervisorothername}{}% -\tud@locale@english{\professorname}{% +\tud@localization@english{\supervisorothername}{}% +\tud@localization@english{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Supervising professors% @@ -2553,18 +3707,18 @@ \fi% }{Supervising professor}% }% -\tud@locale@english{\professorothername}{}% -\tud@locale@english{\datetext}{Submitted on}% -\tud@locale@english{\dateofbirthtext}{Born on}% -\tud@locale@english{\placeofbirthtext}{in}% -\tud@locale@english{\defensedatetext}{Defended on}% -\tud@locale@english{\matriculationyearname}{Matriculation year}% -\tud@locale@english{\matriculationnumbername}{Matriculation number}% -\tud@locale@english{\coverpagename}{Cover page}% -\tud@locale@english{\titlepagename}{Title page}% -\tud@locale@english{\titlename}{Title}% -\tud@locale@english{\confirmationname}{Statement of authorship}% -\tud@locale@english{\confirmationtext}{% +\tud@localization@english{\professorothername}{}% +\tud@localization@english{\datetext}{Submitted on}% +\tud@localization@english{\dateofbirthtext}{Born on}% +\tud@localization@english{\placeofbirthtext}{in}% +\tud@localization@english{\defensedatetext}{Defended on}% +\tud@localization@english{\matriculationyearname}{Matriculation year}% +\tud@localization@english{\matriculationnumbername}{Matriculation number}% +\tud@localization@english{\coverpagename}{Cover page}% +\tud@localization@english{\titlepagename}{Title page}% +\tud@localization@english{\titlename}{Title}% +\tud@localization@english{\confirmationname}{Statement of authorship}% +\tud@localization@english{\confirmationtext}{% I hereby certify that I have authored this \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi @@ -2585,8 +3739,8 @@ I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% }% -\tud@locale@english{\blockingname}{Restriction note}% -\tud@locale@english{\blockingtext}{% +\tud@localization@english{\blockingname}{Restriction note}% +\tud@localization@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else @@ -2598,32 +3752,32 @@ Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% }% -\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@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}% \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 @@ -2638,7 +3792,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} @@ -2659,21 +3813,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}% @@ -2739,8 +3894,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}% @@ -2801,8 +3956,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% @@ -2810,8 +3965,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% @@ -2831,13 +3986,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 @@ -2975,109 +4136,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@area@def{paper}{##1:##2}% + \tud@x@geometry@area@def{paper}{##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{paperwidth}{% + \tud@x@geometry@area@def{paper}{#1:\paperheight}% }% - \TUD@parameter@def{layoutheight}{% - \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + \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@area@def{layout}{##1:##1}% + \tud@x@geometry@area@def{layout}{##1:##1}% }{% - \tud@area@def{layout}{##1:##2}% + \tud@x@geometry@area@def{layout}{##1:##2}% }% }% \@tempa#1,,\@nil% }% + \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}{% + \setlength\tud@len@layouthoffset{##1}% + \setlength\tud@len@layoutvoffset{##1}% + }{% + \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}}{}% @@ -3140,150 +4341,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,% @@ -3315,8 +4489,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% @@ -3383,11 +4557,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 @@ -3502,10 +4688,9 @@ \fi% \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% \global\tud@len@areadiff=\tud@len@areadiff% + \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% - \else% - \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% \fi% \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% \tud@if@v@lower{2.03}{% @@ -3515,32 +4700,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}% @@ -3568,153 +4757,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% @@ -3779,7 +4998,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% @@ -4044,16 +5263,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% @@ -4113,6 +5335,7 @@ \fi% \fi% }{% + \tud@locked@bool@preset{@tud@head@widebar}{true}% \ifstr{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% @@ -4122,7 +5345,6 @@ \else% \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% - \bool@std@lock{@tud@head@widebar}{true}% }{% \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{HKS41}% @@ -4137,50 +5359,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@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}% - \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}% - \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{} @@ -4207,9 +5391,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}% @@ -4228,10 +5412,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{% @@ -4477,7 +5657,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% @@ -4522,8 +5702,8 @@ } \newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% - \def\@tempa{}% - \def\@tempb{}% + \let\@tempa\@empty% + \let\@tempb\@empty% \@tempswatrue% \def\do##1{% \if@tempswa% @@ -4555,19 +5735,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% }% @@ -4579,7 +5766,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% @@ -4611,25 +5800,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% }{% @@ -4646,22 +5836,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% @@ -4750,7 +5938,7 @@ ] \TUD@parameter@family{tudpage}{% \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{pagestyle}{% \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% @@ -4790,237 +5978,285 @@ \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@cover@num\relax% false - \bool@std@lock{@tud@cdgeometry@cover}{false}% +\newcommand*\tud@cd@process{% + \ifcase\tud@cd@title@num\relax% false + \tud@cs@restore{titlepagestyle}% + \tud@komafont@unset{titlehead}% + \tud@komafont@unset{title}% + \tud@komafont@unset{subtitle}% + \tud@komafont@unset{subject}% + \tud@komafont@unset{author}% + \tud@komafont@unset{date}% + \tud@komafont@unset{publishers}% \else% !false - \bool@std@lock{@tud@cdgeometry@cover}{true}% - \fi% - \ifcase\tud@layout@title@num\relax% false - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% - \else% !false - \tud@cmd@store{titlepagestyle}% + \tud@cs@store{titlepagestyle}% \renewcommand*\titlepagestyle{plain.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}% }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \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}% + \tud@komafont@set{author}{\usekomafont{subject}}% + \tud@komafont@set{publishers}{\usekomafont{author}}% + \tud@komafont@set{date}{\usekomafont{titlepage}}% + \fi% + \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% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% +\newcommand*\tud@cd@specialpage@set[1]{% + \tud@komafont@set{footnote}{% \edef\@tempa{% \noexpand\tud@color{% \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% }\@tempa% }% - \tud@cmd@store{footnoterule}% + \tud@cs@store{footnoterule}% \let\footnoterule\relax% } +\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}% + }% +} \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{thesis}{% @@ -5028,10 +6264,11 @@ \tud@thesis@fontsize% } \newkomafont{titlepage}{% - \usekomafont{subject}% + \raggedtitle% + \sffamily% \mdseries% - \large% - \tud@raggedright% + \usesizeofkomafont{subsection}% + \tud@color{\tud@title@fontcolor}% } \robustify{\thanks} \robustify{\footnotemark} @@ -5039,27 +6276,52 @@ \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% \if@titlepage% - \tud@make@titlepage% + \tud@maketitle@page% \else% - \tud@make@titlehead% + \tud@maketitle@inpage% \fi% \fi% \endgroup% \setcounter{footnote}{0}% \global\let\and\relax% } +\TUD@parameter@family{title}{% + \TUD@parameter@def{titlepage}[true]{\KOMAoption{titlepage}{#1}}% + \TUD@parameter@def{titlesignature}[true]{\TUDoption{titlesignature}{#1}}% + \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}% @@ -5067,19 +6329,10 @@ \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@titleback{} -\newcommand*\tud@make@titlepage{% +\newcommand*\tud@maketitle@page{% \renewcommand*\tud@title@fontcolor{}% - \ifcase\tud@layout@title@num\relax\or\or% litecolor + \ifcase\tud@cd@title@num\relax\or\or% litecolor \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor \renewcommand*\tud@title@fontcolor{HKS41}% @@ -5091,11 +6344,12 @@ \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% - \tud@layout@specialpage@set{title}% + \tud@cd@specialpage@set{title}% \ifx\tud@title@pagenumber\relax\else% \setcounter{page}{\tud@title@pagenumber}% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% + \addtokomafont{footnote}{\sffamily}% \let\footnotesize\small% \let\footnoterule\relax% \let\footnote\thanks% @@ -5110,6 +6364,10 @@ possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% }% + \@titlepageiscoverpagefalse% + \fi% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% \fi% \else% \if@titlepageiscoverpage% @@ -5122,65 +6380,36 @@ \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\baselineskip% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \else% \let\titlepage@restore\relax% \fi% - \noindent\@extratitle\next@tdpage% + \noindent\@extratitle% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \noindent\@frontispiece% \fi% + \next@tdpage% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \begingroup% - \usekomafont{titlepage}% - \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% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox\z@\par\fi% - \ifx\@subject\@empty\else\usebox\@ne\par\fi% - {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + {\usekomafont{titlepage}{% + \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{partnumber}{\nobreak\tud@sec@strut}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% - \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% {\usekomafont{date}{\tud@date@print\par}}% @@ -5190,28 +6419,26 @@ \else% \vskip 2ex\@plus.25fill% \if@tud@subjectthesis\else% - {\usekomafont{thesis}{\tud@title@uppercase{\@thesis}\par}}% + {\usekomafont{thesis}{\tud@title@format{\@thesis}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% + \ifx\@graduationabbreviation\@empty\else% + \nobreakspace\@graduationabbreviation% + \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% - \vskip 2ex\@plus1ex\@minus1ex% - \if@tud@subjectthesis% - {\usekomafont{subject}{\@tempc\par}}% - \else% - {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}% - \fi% + \vskip 2.5ex\@plus1ex\@minus1ex% + {\usekomafont{thesis}{\tud@title@format{\@tempc}\par}}% \vskip 3ex\@plus1ex\@minus1ex% \fi% \fi% \vskip 2ex\@plus.5fill% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \tud@title@names{referee}% \tud@title@names{advisor}% \tud@title@names{supervisor}% @@ -5230,13 +6457,19 @@ \fi% \fi% \fi% + \if@tud@titlesignature% + \let\tud@split@@author@do\tud@split@author@signature% + \vskip\tud@len@signatureskip\noindent% + \tud@ifin@and{\@@author}{}{\hfill}% + \tud@multiple@split{@@author}% + \fi% \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus.25fill% {\usekomafont{publishers}{\@publishers\par}}% \vskip\z@\@plus.25fill% \fi% - \endgroup% + }}% \let\tud@titleback\relax% \if@twoside% \@tempswatrue% @@ -5259,28 +6492,26 @@ \fi% \def\@tempa{% \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@title@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@title@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% full \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% - \if@tud@cover% + \if@tud@coverpage% \begingroup% \@tempa% \cleardoubleemptypage% @@ -5304,9 +6535,9 @@ \fi% \end{titlepage}% } -\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% @@ -5324,58 +6555,42 @@ \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+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\tud@dim@headingsvskip}% + \tud@cd@vphantom% \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% \TUDoptions{subjectthesis=true}% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \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% \vskip 2\bigskipamount% @@ -5405,20 +6620,48 @@ }% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% + }}% } -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% +\newcommand*\tud@maketitle@head{% + \setbox\z@\vbox{% + \ifx\@titlehead\@empty\else% + {\usekomafont{titlehead}{% + \begin{minipage}[t]{\textwidth}% + \@titlehead\tud@sec@strut% + \end{minipage}% + }}% + \fi% + \tud@thesis@tosubject% + \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% + \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% + \usebox\z@\par\medskip% + \fi% +} +\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*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -5452,13 +6695,20 @@ \newcommand*\tud@newline@title{} \newcommand*\tud@split@author@title[2]{% \tud@multiple@fields@store{@author}{#1}% - \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% - {\usekomafont{author}{\ignorespaces#1\unskip}}% - \if@tud@cover\else% + \renewcommand*\tud@newline@title{% + \vskip .5ex\strut% + \def\tud@newline@title{\newline\strut}% + }% + {\usekomafont{author}{\ignorespaces#1\strut\unskip}}% + \if@tud@coverpage\else% \ifx\@authormore\@empty\else% \tud@newline@title% \@authormore% \fi% + \ifx\@emailaddress\@empty\else% + \tud@newline@title% + \@emailaddress% + \fi% \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% @@ -5488,7 +6738,7 @@ \@tempc{matriculationyear}% \fi% \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@multiple@@@split{#2}{\vskip 1.5ex}% } \newcommand*\tud@title@wrn[1]{% \ClassWarning{\TUD@Class@Name}{% @@ -5496,6 +6746,17 @@ activated titlepage option% }% } +\newcommand*\tud@split@author@signature[2]{% + \tud@multiple@fields@store{@author}{#1}% + \vbox{% + \hsize=.3\textwidth% + \centering% + \rule{.3\textwidth}{.05pt}\newline% + \ignorespaces#1\strut\unskip% + }% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\hfill}% +} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -5553,7 +6814,7 @@ \fi% }{}% } -\newif\if@tud@cover +\newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -5571,102 +6832,149 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title@num\tud@layout@cover@num% - \tud@layout@process% + \let\tud@cd@title@num\tud@cd@cover@num% + \tud@cd@process% + \ifcase\tud@cd@cover@num\relax% false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{false}% + \@tud@coverpagefalse% + \else% !false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{true}% + \@tud@coverpagetrue% + \fi% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \@titlepagetrue% + \let\@extratitle\@empty% + \let\@frontispiece\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% \if@tud@cdgeometry@cover% - \let\coverpagetopmargin\tud@len@slimmargin% - \let\coverpagebottommargin\tud@len@widemargin% - \let\coverpageleftmargin\tud@len@widemargin% - \let\coverpagerightmargin\tud@len@slimmargin% + \if@tud@coverpage% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + }{% + \def\coverpagetopmargin{\tud@len@slimmargin}% + }% + \fi% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% \def\coverpagebottommargin{.5\tud@len@both}% - }{}% + }{% + \def\coverpagebottommargin{\tud@len@widemargin}% + }% + \def\coverpageleftmargin{\tud@len@widemargin}% + \def\coverpagerightmargin{\tud@len@slimmargin}% \fi% - \ifcase\tud@layout@cover@num\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@title@pagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% + \if@tud@coverpage% \edef\titlepage@restore{% \noexpand\endgroup% \noexpand\global\noexpand\@colht\the\@colht% \noexpand\global\noexpand\@colroom\the\@colroom% \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@len@footsep+\footheight\relax% - \tud@if@v@lower{2.03}{% - \footskip=\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cdgeometry@cover% - \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@len@widemargin% - \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \tud@len@areavskip=\z@% - \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% \tud@maketitle% \clearpage% \titlepage@restore% + \else% + \@titlepageiscoverpagetrue% + \tud@cover@fixmargins% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% \fi% \endgroup% } -\bool@lock{@tud@cdgeometry@cover} +\tud@locked@newbool{@tud@cdgeometry@cover} \TUD@parameter@family{cover}{% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% \TUD@parameter@def{cdgeometry}[true]{% - \ifstrbool{#1}{% - \bool@set@lock{@tud@cdgeometry@cover}{true}% - }{% - \bool@set@lock{@tud@cdgeometry@cover}{false}% - }{% - \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}% - }% - }% - }% + \TUDoption{cdgeometry}{#1}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \tud@locked@bool@set{@tud@cdgeometry@cover}{true}% + \else% + \tud@locked@bool@set{@tud@cdgeometry@cover}{false}% + \fi% }% - \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } +\renewcommand*{\coverpagetopmargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \else% + \dimexpr\topmargin+1in\relax% + \fi% +} +\renewcommand*{\coverpagebottommargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@widemargin\relax% + \else% + 2\dimexpr\coverpagetopmargin\relax% + \fi% +} +\newcommand*\tud@cover@fixmargins{% + \begingroup% + \tud@cdgeometry@assignlayout% + \tud@x@geometry@fixmargins% + \setlength\@tempdima{% + \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset + +\paperheight-\tud@len@layoutheight\relax% + }% + \edef\coverpagebottommargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% + }% + \edef\coverpagetopmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagerightmargin-\tud@len@layouthoffset + +\paperwidth-\tud@len@layoutwidth\relax% + }% + \edef\coverpagerightmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% + }% + \edef\coverpageleftmargin{\the\@tempdima}% + \edef\tud@res@a{% + \endgroup% + \def\noexpand\coverpagetopmargin{\coverpagetopmargin}% + \def\noexpand\coverpagebottommargin{\coverpagebottommargin}% + \def\noexpand\coverpageleftmargin{\coverpageleftmargin}% + \def\noexpand\coverpagerightmargin{\coverpagerightmargin}% + }% + \tud@res@a% +} +\newcommand*\tud@cover@setmargins{% + \tud@cover@fixmargins% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \textheight=\dimexpr\paperheight-\coverpagetopmargin% + -\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\baselineskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% +} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% @@ -5707,6 +7015,7 @@ }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% + \csuse{phantomsection}% \protected@edef\@tempa{% \noexpand\endgroup% \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% @@ -5722,7 +7031,7 @@ with `#1=tocmultiple'% }% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc@num}{% + \noexpand\tud@locked@num@set{tud@#1@toc@num}{% \the\numexpr\csuse{tud@#1@toc@num}-2\relax% }% }% @@ -5842,10 +7151,9 @@ } \newcommand*\tud@quoting{quotation} \AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\csundef{abstract} -\csundef{endabstract} +\undef\abstract +\undef\endabstract \NewEnviron{abstract}[1][]{% - \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@envir@ps\relax% \TUD@parameter@set{abstract}{#1}% \tud@x@multicol@check% @@ -5883,7 +7191,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{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -5910,7 +7218,6 @@ \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% - \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@envir@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@x@multicol@check% @@ -5942,7 +7249,7 @@ ] \TUD@parameter@family{declaration}{% \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{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -6048,32 +7355,6 @@ \tud@fm@body@end{declaration}% } %%% 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} \newlength\pageheadingsvskip @@ -6096,67 +7377,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}{% @@ -6183,7 +7440,10 @@ } \apptocmd{\titlepage}{% \tud@x@bookmark@startatroot% - \if@tud@cover% + \@tud@res@swafalse% + \if@tud@coverpage\@tud@res@swatrue\fi% + \if@titlepageiscoverpage\@tud@res@swatrue\fi% + \if@tud@res@swa% \tudbookmark[% 1% ]{\coverpagename}{cover}% @@ -6193,12 +7453,12 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\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[% @@ -6211,10 +7471,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% @@ -6223,41 +7483,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 `tudscrartcl.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty index 360fb9e9cf6..d275064a5cc 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty @@ -9,9 +9,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. %% ---------------------------------------------------------------------------- @@ -37,7 +37,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]{% @@ -52,73 +52,48 @@ \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} \@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 \ProvidesPackage{tudscrbase}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (basics for the bundle)% ] -\RequirePackage{scrbase}[2013/12/19] -\@ifpackagelater{scrbase}{2015/10/04}{}{% - \providecommand*\kernel@ifstar[1]{\kernel@ifnextchar*{\@firstoftwo{#1}}}% -} -\@ifpackagelater{scrbase}{2016/05/11}{}{% - \renewcommand*\test@@ifdimunt[1]{% - \@tempswafalse - \ifstr{#1}{pt}{\@tempswatrue}{% - \ifstr{#1}{pc}{\@tempswatrue}{% - \ifstr{#1}{in}{\@tempswatrue}{% - \ifstr{#1}{bp}{\@tempswatrue}{% - \ifstr{#1}{cm}{\@tempswatrue}{% - \ifstr{#1}{mm}{\@tempswatrue}{% - \ifstr{#1}{dd}{\@tempswatrue}{% - \ifstr{#1}{cc}{\@tempswatrue}{% - \ifstr{#1}{sp}{\@tempswatrue}{% - \ifstr{#1}{ex}{\@tempswatrue}{% - \ifstr{#1}{em}{\@tempswatrue}{% - \scr@ifpdfoutput{% - \ifstr{#1}{px}{\@tempswatrue}{}% - }{}% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% - }% -} +\RequirePackage{scrbase}[2018/03/30] \RequirePackage{etoolbox}[2011/01/03] +\RequirePackage{xpatch}[2012/10/02] +\RequirePackage{letltxmacro}[2016/05/16] \RequirePackage{etexcmds}[2011/02/16] \RequirePackage{kvsetkeys}[2012/04/25] +\RequirePackage{trimspaces}[2009/09/17] \newcommand*\tud@reserved{} +\newcommand*\tud@res@a{} +\newcommand*\tud@res@b{} +\newcommand*\tud@res@c{} +\newif\if@tud@res@swa +\newcount\tud@res@cnt +\newread\tud@res@read \newtoks\tud@toks@ \newcommand*\eaddto@hook[2]{% \expandafter\addto@hook\expandafter#1\expandafter{#2}% } \newcommand*\ifxblank{\ifstr{}} -\newcommand*\ifxnumber[1]{% - \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} \newcommand*\ifstrbool[4]{% \ifstr{#1}{true}{#2}{% \ifstr{#1}{on}{#2}{% @@ -134,21 +109,6 @@ }% }% } -\newcommand*\ifxlen[1]{% - \begingroup% - \protected@edef\@tempa{#1}% - \@tempswafalse% - \expandafter\ifisdimen\expandafter{\@tempa}{\@tempswatrue}{}% - \expandafter\ifisskip\expandafter{\@tempa}{\@tempswatrue}{}% - \expandafter\ifisdimexpr\expandafter{\@tempa}{\@tempswatrue}{}% - \if@tempswa\edef\@tempa{\the\@tempa}\fi% - \expandafter\ifdimen\expandafter{\@tempa}{% - \aftergroup\@firstoftwo% - }{% - \aftergroup\@secondoftwo% - }% - \endgroup -} \newcommand*\iflanguageloaded[1]{% \PackageWarning{tudscrbase}{% Whether package `babel' nor package `polyglossia' has been loaded% @@ -192,10 +152,10 @@ \@whiledim\dimexpr\@tempcnta\@tempdimc\relax<.01\maxdimen\do{% \multiply\@tempcnta by 10\relax% }% - \setlength{\@tempdimc}{% + \setlength\@tempdimc{% \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% }% - \setlength{\@tempdimc}{\dimexpr \@tempdimc/\@tempcnta\relax}% + \setlength\@tempdimc{\dimexpr \@tempdimc/\@tempcnta\relax}% \edef\@tempa{\endgroup\def\noexpand#1{\strip@pt\@tempdimc}}% \@tempa% } @@ -205,87 +165,127 @@ \expandafter\def\expandafter #1\expandafter{#1}% }% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% - \csdef{tud@font@koma@#1}{#2\nobreak}% +\newcommand*\tud@komafont@set[2]{% + \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% + \csdef{tud@komafont@#1}{#2\nobreak}% } -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% - \csdef{tud@font@koma@#1}{\relax}% +\newcommand*\tud@komafont@unset[1]{% + \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% + \csdef{tud@komafont@#1}{\relax}% } -\newcommand*\tud@font@koma@reset[1]{% - \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% +\newcommand*\tud@komafont@reset[1]{% + \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } \DefineFamily{TUD} \newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} \newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} \newcommand*\TUDoptions{\FamilyOptions{TUD}} \newcommand*\TUDoption{\FamilyOption{TUD}} -\newcommand*\TUD@key[1][.\@currname.\@currext]{% +\newcommand*\TUD@key[2][.\@currname.\@currext]{% + \providebool{@tud@key@#2@set}% \DefineFamilyMember[{#1}]{TUD}% - \DefineFamilyKey[{#1}]{TUD}% + \kernel@ifnextchar[%] + {\TUD@key@define{#1}{#2}}% + {\TUD@key@@define{#1}{#2}}% +} +\newcommand*\TUD@key@define{} +\def\TUD@key@define#1#2[#3]#4{% + \DefineFamilyKey[{#1}]{TUD}{#2}[{#3}]{% + #4% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \booltrue{@tud@key@#2@set}% + \fi% + }% +} +\newcommand*\TUD@key@@define{} +\def\TUD@key@@define#1#2#3{% + \DefineFamilyKey[{#1}]{TUD}{#2}{% + #3% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \booltrue{@tud@key@#2@set}% + \fi% + }% } -\newcommand*\TUD@ifkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyBoolKey[#1]{TUD}% +\newcommand*\TUD@key@preset[2]{% + \ifbool{@tud@key@#1@set}{}{% + \TUDoption{#1}{#2}% + \boolfalse{@tud@key@#1@set}% + }% } -\newcommand*\TUD@set@ifkey{\FamilySetBool{TUD}} -\newcommand*\TUD@numkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyNumericalKey[#1]{TUD}% +\newcommand*\TUD@set@ifkey[3]{% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% + }\tud@res@b% +} +\newcommand*\TUD@set@numkey[4]{% + \tud@lowerstring\tud@res@a{#4}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% + }\tud@res@b% } \newcommand*\TUD@bool@numkey{% {false}{0},{off}{0},{no}{0},{true}{1},{on}{1},{yes}{1}% } -\newcommand*\TUD@set@numkey{\FamilySetNumerical{TUD}} -\newcommand*\TUD@lengthkey[1][.\@currname.\@currext]{% - \DefineFamilyMember{TUD}% - \FamilyLengthKey[#1]{TUD}% -} -\newcommand*\TUD@set@lengthkey{\FamilySetLength{TUD}} \newcommand*\TUD@set@dimenkey[3]{% - \ifxlen{#3}{% - \def#2{#3}% - \FamilyKeyStateProcessed% - }{% - \TUD@unknown@keyval{#1}{#3}{dimens}% - }% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@b{% + \etex@unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% + }\tud@res@b% } \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} -\newcommand*\TUD@key@lock[2][.\@currname.\@currext]{% - \newbool{@tud@#2@locked}% - \TUD@key[{#1}]{#2}% +\newcommand*\tud@locked@newnum[2]{% + \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% + \newbool{#1@locked}% + \tud@num@set{#1}{#2}% } -\newcommand*\TUD@std@ifkey@lock[3]{% - \ifbool{@tud@#1@locked}{}{% - \TUD@set@ifkey{#1}{#2}{#3}% - \boolfalse{@tud@#1@locked}% +\newcommand*\tud@locked@num@preset[2]{% + \ifbool{#1@locked}{}{% + \tud@num@set{#1}{#2}% + \boolfalse{#1@locked}% }% } -\newcommand*\TUD@set@ifkey@lock[1]{% - \booltrue{@tud@#1@locked}% - \TUD@set@ifkey{#1}% +\newcommand*\tud@locked@num@set[2]{% + \tud@num@set{#1}{#2}% + \booltrue{#1@locked}% } -\let\TUD@std@numkey@lock\TUD@std@ifkey@lock -\newcommand*\TUD@set@numkey@lock[1]{% - \booltrue{@tud@#1@locked}% - \TUD@set@numkey{#1}% +\newcommand*\tud@num@set[2]{% + \ifcsdef{#1}{% + \ifnumber{#2}{% + \csdef{#1}{#2}% + }{% + \PackageError{tudscrbase}{% + `#2' is not a valid numerical expression% + }{% + You set the numerical expression `\@backslashchar#1'\MessageBreak% + to value `#2', which isn't numerical.% + }% + }% + }{% + \PackageError{tudscrbase}{% + `\@backslashchar#1' was never defined% + }{% + You tried using the numerical expression `\@backslashchar#1'\MessageBreak% + but you didn't define it with `\string\tud@locked@newnum'.% + }% + }% } -\newcommand*\cs@lock[2]{% - \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% - \newbool{#1@locked}% +\newcommand*\tud@locked@newbool[2][false]{% + \newbool{#2}% + \newbool{#2@locked}% + \tud@bool@set{#2}{#1}% } -\newcommand*\cs@std@lock[2]{% +\newcommand*\tud@locked@bool@preset[2]{% \ifbool{#1@locked}{}{% - \csdef{#1}{#2}% + \tud@bool@set{#1}{#2}% \boolfalse{#1@locked}% }% } -\newcommand*\cs@set@lock[2]{% - \csdef{#1}{#2}% +\newcommand*\tud@locked@bool@set[2]{% + \tud@bool@set{#1}{#2}% \booltrue{#1@locked}% } -\newcommand*\tud@setbool[2]{% +\newcommand*\tud@bool@set[2]{% \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% \PackageError{tudscrbase}{% `#2' is not a valid boolean expression% @@ -296,54 +296,53 @@ }% }% } -\newcommand*\bool@lock[2][false]{% - \newbool{#2}% - \newbool{#2@locked}% - \tud@setbool{#2}{#1}% +\newcommand*\tud@cs@letltx[2]{% + \expandafter\expandafter\expandafter\LetLtxMacro% + \expandafter\csname #1\expandafter\endcsname\csname #2\endcsname% } -\newcommand*\bool@std@lock[2]{% - \ifbool{#1@locked}{}{% - \tud@setbool{#1}{#2}% - \boolfalse{#1@locked}% +\newrobustcmd*\tud@cs@store[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{}{% + \tud@cs@letltx{@@tud@#1}{#1}% }% } -\newcommand*\bool@set@lock[2]{% - \tud@setbool{#1}{#2}% - \booltrue{#1@locked}% -} -\newcommand*\tud@cmd@store[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% -} -\newcommand*\tud@cmd@restore[1]{% - \tud@cmd@check{#1}% +\newrobustcmd*\tud@cs@restore[1]{% + \ifcsdef{#1}{}{% + \ifcsdef{@@tud@#1}{% + \cslet{#1}{\relax}% + }{}% + }% + \tud@cs@check{#1}% \ifcsdef{@@tud@#1}{% - \csletcs{#1}{@@tud@#1}% + \tud@cs@letltx{#1}{@@tud@#1}% \csundef{@@tud@#1}% }{}% } -\newcommand*\tud@cmd@reset[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{\csletcs{#1}{@@tud@#1}}{}% +\newrobustcmd*\tud@cs@reset[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + }{}% } -\newcommand*\tud@cmd@update[1]{% - \tud@cmd@check{#1}% - \ifcsdef{@@tud@#1}{\csletcs{@@tud@#1}{#1}}{}% +\newrobustcmd*\tud@cs@update[1]{% + \tud@cs@check{#1}% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }{}% } -\newcommand*\tud@cmd@use[1]{% - \tud@cmd@check{#1}% +\newrobustcmd*\tud@cs@use[1]{% + \tud@cs@check{#1}% \ifcsdef{@@tud@#1}{% \csuse{@@tud@#1}% }{% \csuse{#1}% }% } -\newcommand*\tud@cmd@check[1]{% +\newrobustcmd*\tud@cs@check[1]{% \ifcsdef{#1}{}{% - \PackageError{% - tudscrbase% - }{`\@backslashchar#1' is not defined}{% - The command `\@backslashchar#1' was never defined\MessageBreak% + \PackageError{tudscrbase}{% + `\@backslashchar#1' is not defined}{% + The command `\@backslashchar#1' was never defined.\MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% via \tudscrmail. A bugfix is urgently required.% }% @@ -412,7 +411,7 @@ argument of \string\TUD@parameter@family\space has to be\MessageBreak% a unique family name. Alternatively, you can specify\MessageBreak% the family name within the optional argument of\MessageBreak% - \@backslashchar#2. + \@backslashchar#2.% }% }{}% } @@ -428,13 +427,13 @@ \newcommand*\TUD@parameter@nokey{@nokey@} \newcommand*\TUD@parameter@set[2]{% \IfArgIsEmpty{#2}{}{% - \def\@tempb{}% + \let\@tempb\@empty% \def\@tempa##1{% \@expandtwoargs\in@{=}{##1}% \ifin@% \appto\@tempb{##1,}% \else% - \begingroup + \begingroup% \let\IeC\@firstofone% \def\"####1{####1e}% \def\ss{ss}% @@ -478,7 +477,7 @@ }% \appto\@tempa{% \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% - \ifxnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% + \ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% \ifx\tud@reserved\relax% \PackageError{tudscrbase}{% @@ -486,7 +485,7 @@ }{% If `\kv@value' is a language, you haven't loaded it.\MessageBreak% Otherwise, there's no handler for the given value.\MessageBreak% - You should specify a certian key (<key>=\kv@value). + You should specify a certian key (<key>=\kv@value).% }% \fi% }% @@ -504,6 +503,64 @@ }% } \newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} +\@onlypreamble\TUD@UnwindPackage +\newcommand*\TUD@CheckPackage[2]{% + \tud@if@packagelater@exists{#1}{#2}{}{% + \PackageWarningNoLine{tudscrbase}{% + The version `#2' of package `#1'\MessageBreak% + is urgently required. An erroneous output\MessageBreak + may occur. Please update your distribution% + }% + \IfFileExists{#1.\@pkgextension}{}{\RequirePackage{#1}[#2]}% + }% +} +\@onlypreamble\TUD@CheckPackage +\newcommand*\tud@if@packagelater@exists[2]{% + \begingroup% + \let\tud@res@a\@empty% + \def\tud@res@b[##1]{\def\tud@res@a{##1}}% + \def\ProvidesPackage##1{% + \@ifnextchar[%] + {\tud@res@b}{\tud@res@b[]}% + }% + \IfFileExists{#1.\@pkgextension}{% + \openin\tud@res@read=#1.\@pkgextension% + \@tud@res@swatrue% + \loop% + \read\tud@res@read to\tud@res@c% + \@expandtwoargs\in@{\string\ProvidesPackage}% + {\expandafter\detokenize\expandafter{\tud@res@c}}% + \ifin@% + \@tud@res@swafalse% + \tud@res@c% + \fi% + \ifeof\tud@res@read\@tud@res@swafalse\fi% + \if@tud@res@swa% + \repeat% + \closein\tud@res@read% + }{}% + \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}} + \tud@res@a% +} +\@onlypreamble\tud@if@packagelater@exists +\newcommand*\TUD@RecommendPackage[1]{% + \kernel@ifnextchar[%] + {\TUD@@RecommendPackage#1}% + {\TUD@@RecommendPackage#1[]}% +} +\@onlypreamble\TUD@RecommendPackage +\newcommand*\TUD@@RecommendPackage{} +\def\TUD@@RecommendPackage#1[#2]{% + \IfFileExists{#1.sty}{% + \RequirePackage{#1}[#2]% + }{% + \PackageWarning{tudscrbase}{% + The usage of package `#1' (#2) is\MessageBreak% + recommended but it isn't installed% + }% + }% +} +\@onlypreamble\TUD@@RecommendPackage \newcommand*\TUD@AfterPackage@set[1]{% \newbool{@tud@#1@loaded}% \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}}% @@ -524,16 +581,16 @@ }% } \newcommand*\TUD@KOMAoptions[1]{} -\ifdef{\KOMAClassName}{% - \let\TUD@KOMAoptions\KOMAoptions -}{% +\ifundef{\KOMAClassName}{% \renewcommand*\TUD@KOMAoptions[1]{% \PackageWarning{tudscrbase}{% You should load package `scrextend' right after the\MessageBreak% documentclass. Option \string\TUD@KOMAoptions{`#1'} is gobbled% }% }% - \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions} + \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions}% +}{% + \let\TUD@KOMAoptions\KOMAoptions% } \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls index b2387c068e9..c698df4c99e 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls @@ -12,13 +12,13 @@ %% tudscr-layout.dtx (with options: `class,book,option') %% tudscr-title.dtx (with options: `class,book,option') %% tudscr-frontmatter.dtx (with options: `class,book,option') -%% tudscr-comp.dtx (with options: `class,book,option') %% tudscr-misc.dtx (with options: `class,book,option') +%% tudscr-comp.dtx (with options: `class,book,option') %% tudscr-misc.dtx (with options: `class,book,execute') %% tudscr-base.dtx (with options: `class,book,body') %% tudscr-fonts.dtx (with options: `class,book,body') %% tudscr-fields.dtx (with options: `class,book,body') -%% tudscr-locale.dtx (with options: `class,book,body') +%% tudscr-localization.dtx (with options: `class,book,body') %% tudscr-area.dtx (with options: `class,book,body') %% tudscr-pagestyle.dtx (with options: `class,book,body') %% tudscr-layout.dtx (with options: `class,book,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{tudscrbook}{scrbook}{document 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,251 +771,141 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\cs@lock{tud@layout@cover@num}{0} -\cs@lock{tud@layout@title@num}{0} -\cs@lock{tud@layout@part@num}{0} -\cs@lock{tud@layout@chapter@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@cover@num}{0}% - \cs@std@lock{tud@layout@title@num}{0}% - \cs@std@lock{tud@layout@part@num}{0}% - \cs@std@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{0}% - \or% true - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{1}% - \cs@std@lock{tud@layout@part@num}{1}% - \cs@std@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{1}% - \or% litecolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{2}% - \cs@std@lock{tud@layout@part@num}{2}% - \cs@std@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% barcolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{3}% - \cs@std@lock{tud@layout@part@num}{3}% - \cs@std@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% bicolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{4}% - \cs@std@lock{tud@layout@part@num}{4}% - \cs@std@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% color - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{5}% - \cs@std@lock{tud@layout@part@num}{5}% - \cs@std@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% full - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{6}% - \cs@std@lock{tud@layout@part@num}{6}% - \cs@std@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \cs@std@lock{tud@layout@section@num}{2}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@key@preset{cdcover}{false}% + \else% !false + \TUD@key@preset{cdcover}{true}% + \fi% + \TUD@key@preset{cdtitle}{#1}% + \TUD@key@preset{cdpart}{#1}% + \TUD@key@preset{cdchapter}{#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@cover@num{0} \TUD@key{cdcover}[true]{% - \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdcover}{tud@cd@cover@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover@num}{0}% - \or% true - \cs@set@lock{tud@layout@cover@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@cover@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@cover@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@cover@num}{4}% - \or% color - \cs@set@lock{tud@layout@cover@num}{5}% - \or% full - \cs@set@lock{tud@layout@cover@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \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@chapter@num{0} \TUD@key{cdchapter}[true]{% - \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdchapter}{tud@cd@chapter@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% true - \cs@set@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% litecolor - \cs@set@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% barcolor - \cs@set@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% bicolor - \cs@set@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% color - \cs@set@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \or% full - \cs@set@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \ifnum\tud@cd@chapter@num>4\relax% color/full + \TUD@key@preset{chapterpage}{true}% + \else% + \TUD@key@preset{chapterpage}{false}% \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% } \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \TUD@SpecialOptionAtDocument{tud@layout@process}% - \fi% } \newif\if@tud@chapterpage -\TUD@key@lock{chapterpage}[true]{% - \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}% +\TUD@key{chapterpage}[true]{% + \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } +\newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} \TUD@key{cleardoublespecialpage}[true]{% - \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% + \TUD@set@numkey{cleardoublespecialpage}{@tempa}{% + \TUD@bool@numkey,% + {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {color}{3},{colour}{3},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},% + {current}{4}% + }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% - \else% + \ifcase\@tempa\relax% false \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \or% true + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% + \or% nocolor + \@tud@clearcolorfalse% + \or% color + \@tud@clearcolortrue% + \or% current + \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \fi% \else% - \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{% - \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{% - \ifstr{#1}{current}{% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% - \FamilyKeyStateProcessed% - }{% - \AfterPreamble{% - \ifcsundef{ps@#1}{% - \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% - You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined.% - }% - }{% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% - }% - }% - \FamilyKeyStateProcessed% - }}}% - \fi% -} -\newcommand*\tud@cleardoublespecialpage[2][]{% - \begingroup% - #2% - \ifboolexpr{bool {@twoside} and bool {@openright}}{% - \if@tud@clearcolor% - \def\@tempa{% - #1% - \tud@cleardoublepage% - \endgroup% + \AfterPreamble{% + \ifcsundef{ps@#1}{% + \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% + You tried to use `#1' as a pagestyle for option\MessageBreak% + `cleardoublespecialpage', but it was never defined.% }% - \else% - \def\@tempa{% - \endgroup% - #1% - \tud@cleardoublepage% - }% - \fi% - }{% - \if@tud@clearcolor\tud@clearcolor@wrn\fi% - \def\@tempa{% - \endgroup% - #1% + }{% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }% }% - \@tempa% - \@afterindentfalse\@afterheading% + \FamilyKeyStateProcessed% + \fi% } -\newif\if@tud@clearcolor -\TUD@ifkey{clearcolor}{@tud@clearcolor} -\TUD@ifkey{clearcolour}{@tud@clearcolor} \newcommand*\tud@pagecolor{}% +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +\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}% @@ -877,18 +919,14 @@ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% \FamilyKeyStateProcessed% } -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% -} -\newcommand*\tud@dim@headingsvskip{0pt} -\TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% -} %%% From File: tudscr-title.dtx \newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +\TUD@key{subjectthesis}[true]{% + \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% +} +\newif\if@tud@titlesignature +\TUD@key{titlesignature}[true]{% + \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -909,7 +947,7 @@ {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level@num{3} -\cs@lock{tud@abstract@toc@num}{1} +\tud@locked@newnum{tud@abstract@toc@num}{1} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -923,10 +961,10 @@ \or% true \or% section \renewcommand*\tud@abstract@level@num{2}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% chapter \renewcommand*\tud@abstract@level@num{3}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% single \@tud@abstract@multifalse% \or% multiple @@ -940,26 +978,26 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@set{tud@abstract@toc@num}{0}% \or% totoc \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc@num}{3}% + \tud@locked@num@set{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{2}% + \tud@locked@num@set{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc@num}{4}% + \tud@locked@num@set{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@abstract@toc@num=\z@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \fi% \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \noexpand\tud@locked@num@set{tud@abstract@toc@num}{% \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% @@ -972,7 +1010,7 @@ \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{3} -\cs@lock{tud@declaration@toc@num}{1} +\tud@locked@newnum{tud@declaration@toc@num}{1} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -984,16 +1022,16 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@declaration@level@num{0}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% true \renewcommand*\tud@declaration@level@num{1}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% section \renewcommand*\tud@declaration@level@num{2}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% chapter \renewcommand*\tud@declaration@level@num{3}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% single \@tud@declaration@multifalse% \or% multiple @@ -1007,26 +1045,26 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@set{tud@declaration@toc@num}{0}% \or% totoc \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc@num}{3}% + \tud@locked@num@set{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{2}% + \tud@locked@num@set{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc@num}{4}% + \tud@locked@num@set{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@declaration@toc@num=\z@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \fi% \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \noexpand\tud@locked@num@set{tud@declaration@toc@num}{% \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% @@ -1034,18 +1072,99 @@ \fi% \fi% } +%%% 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}% @@ -1054,23 +1173,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% @@ -1089,7 +1210,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.% }% }% } @@ -1099,7 +1220,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} @@ -1121,7 +1241,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}}% @@ -1154,48 +1275,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]{% @@ -1208,53 +1297,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% } @@ -1325,116 +1414,80 @@ \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% +\TUD@key{clearcolor}[true]{% + \TUD@set@ifkey{clearcolor}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \ifnumber{##2}{}{\@tempswafalse}% + \TUD@deprecated@key{clearcolor}{cleardoublespecialpage=color}% + \else% + \TUD@deprecated@key{clearcolor=#1}{cleardoublespecialpage=nocolor}% \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% - }% - \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}% +\TUD@key{clearcolour}[true]{\TUDoptions{clearcolor=#1}} +\newif\if@tud@x@fontspec@requested +\TUD@key{fontspec}[true]{% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% nosymbolheadings - \@tud@symbolheadingsfalse% - \or% symbolheadings - \@tud@symbolheadingstrue% - \fi% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \fi% } -\AtEndOfClass{% - \newcounter{symbolheadings}[chapter] +\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% } %%% 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% +\DeclareOption*{} +\FamilyProcessOptions[.comp]{TUD}\relax +\tud@if@v@lower{2.05}{% + \TUD@key@preset{relspacing}{false}% +}{% + \TUD@key@preset{relspacing}{true}% } -\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}% +\tud@if@v@lower{2.06}{% + \TUD@key@preset{cdoldfont}{true}% + \TUD@key@preset{ttfont}{lmodern}% + \TUD@key@preset{headings}{light}% +}{% + \TUD@key@preset{cdfont}{true}% + \TUD@key@preset{ttfont}{roboto}% + \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@paper} +\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% - cd=true,relspacing=true,tudbookmarks=true% + cd=true,tudbookmarks=true% } \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}{% @@ -1448,109 +1501,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}% - \fi% - }% - \@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}% +\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% + }% + }% +} +\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 @@ -1567,9 +1749,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 @@ -1579,127 +1761,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}% @@ -1709,12 +1877,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}% @@ -1743,147 +1973,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}}% - \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}}% - \fi% - \if@tud@dinbold% - \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% - \if@tud@dinboldmath% - \appto\tud@dinbn{\mathversion{dinbold}}% - \fi% - \newrobustcmd*\dinbn{\tud@dinbn}% + \fi% + \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*\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]{% + \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% + \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% + \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}% @@ -1891,22 +2282,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}% @@ -1915,232 +2329,905 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\tud@font@greek@loop[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% - }% - }% - }{}% +\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% - \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}% - }{}% + \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% - \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$ $}% + \tud@ttfont@@set% } -\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}% +\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% - \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}% +\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% - \csletcs{up#1}{#1}% + \aftergroup\@secondoftwo% \fi% - }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% + \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% - \csletcs{var#1}{tud@var#1}% + \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{\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@font@math@set{% - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% +\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@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% + \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% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% + \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% - \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% + }% + \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@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \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}% + }{}% + \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@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% + \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% + \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% + }{}% + \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% + }{}% + }{}% + \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% + \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% + \fi% + }% +} +\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% \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}% -} -\newrobustcmd*\ifdin{% - \ifx\f@family\tud@dinbold% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% + \AtBeginDocument{% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \tud@math@set% + }% } -\newcommand*\tud@sec@fontface[1][]{% - \if@tud@cdfont@din% - \tud@dinbn\tud@raggedright% - \else% - \sectfont#1% +\newcommand*\tud@head@font@light{} +\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}% + \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}% + \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% } -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} +\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}% + \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}% + \fi% + \fi% +} +\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}% + \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{} @@ -2202,11 +3289,35 @@ } \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*\@matriculationnumber{} +\newrobustcmd*\matriculationnumber[1]{% + \gdef\@matriculationnumber{#1}\ignorespaces% +} +\newcommand*\@matriculationyear{} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newcommand*\@placeofbirth{} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newcommand*\@thesis{} \newcommand*\@@thesis{} \newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} @@ -2222,8 +3333,11 @@ \let\footnote\@gobble% \tud@lowerstring{\@tempa}{#2}% \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \global\let\@tempa\@tempa% - \endgroup% + \protected@edef\@tempa{% + \endgroup% + \def\noexpand\@tempa{\@tempa}% + }% + \@tempa% \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% @@ -2249,9 +3363,9 @@ Field `thesis' is overwritten by `subject'% }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% + \TUD@key@preset{subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% + \TUD@key@preset{subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% @@ -2261,9 +3375,10 @@ \protected@xdef\@@thesis{\trim@spaces{#2}}% } \newcommand*\@graduation{} -\newcommand*\@@graduation{} +\newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% + \gdef\@graduationabbreviation{}% + \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} @@ -2278,14 +3393,6 @@ \newcommand*\referee[1]{\gdef\@referee{#1}} \newcommand*\@advisor{} \newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} -\newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} -\newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newlength\tud@len@signatureskip \setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% @@ -2303,8 +3410,15 @@ \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} -\newcommand*\tud@x@isodate@printdate[2]{% +\providecommand*\publisher[1]{\publishers{#1}} +\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% @@ -2337,38 +3451,39 @@ }{\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% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{% - \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% + \tud@printdate{\@dateofbirth}{#1}\ignorespaces% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% @@ -2382,8 +3497,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% @@ -2397,7 +3512,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}% @@ -2410,7 +3525,7 @@ \newcommand*\tud@multiple@fields@restore[1]{% \def\@tempa##1{% \ifcsdef{@##1}{% - \tud@cmd@restore{@##1}% + \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% }% @@ -2443,13 +3558,13 @@ } \newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,course,discipline,% + authormore,course,discipline,emailaddress,% matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-locale.dtx -\newcommand*\tud@locale@define[1]{% +%%% From File: tudscr-localization.dtx +\newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% @@ -2463,49 +3578,50 @@ }% }% } -\tud@locale@define{\graduationtext} -\tud@locale@define{\refereename} -\tud@locale@define{\refereeothername} -\tud@locale@define{\advisorname} -\tud@locale@define{\advisorothername} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} -\tud@locale@define{\professorname} -\tud@locale@define{\professorothername} -\tud@locale@define{\datetext} -\tud@locale@define{\dateofbirthtext} -\tud@locale@define{\placeofbirthtext} -\tud@locale@define{\defensedatetext} -\tud@locale@define{\matriculationyearname} -\tud@locale@define{\matriculationnumbername} -\tud@locale@define{\coverpagename} -\tud@locale@define{\titlepagename} -\tud@locale@define{\titlename} -\tud@locale@define{\abstractname} -\tud@locale@define{\confirmationname} -\tud@locale@define{\confirmationtext} -\tud@locale@define{\blockingname} -\tud@locale@define{\blockingtext} -\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@localization@define{\graduationtext} +\tud@localization@define{\refereename} +\tud@localization@define{\refereeothername} +\tud@localization@define{\advisorname} +\tud@localization@define{\advisorothername} +\tud@localization@define{\supervisorname} +\tud@localization@define{\supervisorothername} +\tud@localization@define{\professorname} +\tud@localization@define{\professorothername} +\tud@localization@define{\datetext} +\tud@localization@define{\dateofbirthtext} +\tud@localization@define{\placeofbirthtext} +\tud@localization@define{\defensedatetext} +\tud@localization@define{\matriculationyearname} +\tud@localization@define{\matriculationnumbername} +\tud@localization@define{\coverpagename} +\tud@localization@define{\titlepagename} +\tud@localization@define{\titlename} +\tud@localization@define{\abstractname} +\tud@localization@define{\confirmationname} +\tud@localization@define{\confirmationtext} +\tud@localization@define{\blockingname} +\tud@localization@define{\blockingtext} +\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} \newcommand*\tud@ifin@and[1]{% \begingroup% \let\and\relax% + \robustify\\% \protected@edef\@tempb{#1}% \def\@tempa##1\and##2\relax{% \IfArgIsEmpty{##2}{% @@ -2517,13 +3633,15 @@ \expandafter\@tempa\@tempb\and\relax% \endgroup } -\newcommand*\tud@locale@german{% +\newcommand*\tud@localization@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } -\tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\refereename}{% +\tud@localization@german{\graduationtext}{% + zur Erlangung des akademischen Grades% +}% +\tud@localization@german{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Gutachter% @@ -2532,8 +3650,8 @@ \fi% }{Gutachter}% }% -\tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{% +\tud@localization@german{\refereeothername}{Zweitgutachter}% +\tud@localization@german{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Fachreferenten% @@ -2542,8 +3660,8 @@ \fi% }{Fachreferent}% }% -\tud@locale@german{\advisorothername}{}% -\tud@locale@german{\supervisorname}{% +\tud@localization@german{\advisorothername}{}% +\tud@localization@german{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Betreuer% @@ -2552,8 +3670,8 @@ \fi% }{Betreuer}% }% -\tud@locale@german{\supervisorothername}{}% -\tud@locale@german{\professorname}{% +\tud@localization@german{\supervisorothername}{}% +\tud@localization@german{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Betreuende Hochschullehrer% @@ -2562,19 +3680,19 @@ \fi% }{Betreuender Hochschullehrer}% }% -\tud@locale@german{\professorothername}{}% -\tud@locale@german{\datetext}{Eingereicht am}% -\tud@locale@german{\dateofbirthtext}{Geboren am}% -\tud@locale@german{\placeofbirthtext}{in}% -\tud@locale@german{\defensedatetext}{Verteidigt am}% -\tud@locale@german{\matriculationyearname}{Immatrikulationsjahr}% -\tud@locale@german{\matriculationnumbername}{Matrikelnummer}% -\tud@locale@german{\coverpagename}{Umschlagseite}% -\tud@locale@german{\titlepagename}{Titelblatt}% -\tud@locale@german{\titlename}{Titel}% -\tud@locale@german{\abstractname}{Zusammenfassung}% -\tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% -\tud@locale@german{\confirmationtext}{% +\tud@localization@german{\professorothername}{}% +\tud@localization@german{\datetext}{Eingereicht am}% +\tud@localization@german{\dateofbirthtext}{Geboren am}% +\tud@localization@german{\placeofbirthtext}{in}% +\tud@localization@german{\defensedatetext}{Verteidigt am}% +\tud@localization@german{\matriculationyearname}{Immatrikulationsjahr}% +\tud@localization@german{\matriculationnumbername}{Matrikelnummer}% +\tud@localization@german{\coverpagename}{Umschlagseite}% +\tud@localization@german{\titlepagename}{Titelblatt}% +\tud@localization@german{\titlename}{Titel}% +\tud@localization@german{\abstractname}{Zusammenfassung}% +\tud@localization@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% +\tud@localization@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. @@ -2594,8 +3712,8 @@ Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% }% -\tud@locale@german{\blockingname}{Sperrvermerk}% -\tud@locale@german{\blockingtext}{% +\tud@localization@german{\blockingname}{Sperrvermerk}% +\tud@localization@german{\blockingtext}{% Diese Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else @@ -2608,30 +3726,30 @@ Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des Pr\"ufungsausschusses zug\"anglich zu machen.% }% -\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}% -\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}% +\newcommand*\tud@localization@english{% \providecaptionname{% american,australian,british,canadian,english,newzealand,UKenglish,USenglish% }% } -\tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\refereename}{% +\tud@localization@english{\graduationtext}{to achieve the academic degree}% +\tud@localization@english{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Referees% @@ -2640,8 +3758,8 @@ \fi% }{Referee}% }% -\tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{% +\tud@localization@english{\refereeothername}{Second referee}% +\tud@localization@english{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Advisors% @@ -2650,8 +3768,8 @@ \fi% }{Advisor}% }% -\tud@locale@english{\advisorothername}{}% -\tud@locale@english{\supervisorname}{% +\tud@localization@english{\advisorothername}{}% +\tud@localization@english{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Supervisors% @@ -2660,8 +3778,8 @@ \fi% }{Supervisor}% }% -\tud@locale@english{\supervisorothername}{}% -\tud@locale@english{\professorname}{% +\tud@localization@english{\supervisorothername}{}% +\tud@localization@english{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Supervising professors% @@ -2670,19 +3788,19 @@ \fi% }{Supervising professor}% }% -\tud@locale@english{\professorothername}{}% -\tud@locale@english{\datetext}{Submitted on}% -\tud@locale@english{\dateofbirthtext}{Born on}% -\tud@locale@english{\placeofbirthtext}{in}% -\tud@locale@english{\defensedatetext}{Defended on}% -\tud@locale@english{\matriculationyearname}{Matriculation year}% -\tud@locale@english{\matriculationnumbername}{Matriculation number}% -\tud@locale@english{\coverpagename}{Cover page}% -\tud@locale@english{\titlepagename}{Title page}% -\tud@locale@english{\titlename}{Title}% -\tud@locale@english{\abstractname}{Abstract}% -\tud@locale@english{\confirmationname}{Statement of authorship}% -\tud@locale@english{\confirmationtext}{% +\tud@localization@english{\professorothername}{}% +\tud@localization@english{\datetext}{Submitted on}% +\tud@localization@english{\dateofbirthtext}{Born on}% +\tud@localization@english{\placeofbirthtext}{in}% +\tud@localization@english{\defensedatetext}{Defended on}% +\tud@localization@english{\matriculationyearname}{Matriculation year}% +\tud@localization@english{\matriculationnumbername}{Matriculation number}% +\tud@localization@english{\coverpagename}{Cover page}% +\tud@localization@english{\titlepagename}{Title page}% +\tud@localization@english{\titlename}{Title}% +\tud@localization@english{\abstractname}{Abstract}% +\tud@localization@english{\confirmationname}{Statement of authorship}% +\tud@localization@english{\confirmationtext}{% I hereby certify that I have authored this \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi @@ -2703,8 +3821,8 @@ I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% }% -\tud@locale@english{\blockingname}{Restriction note}% -\tud@locale@english{\blockingtext}{% +\tud@localization@english{\blockingname}{Restriction note}% +\tud@localization@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else @@ -2716,32 +3834,32 @@ Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% }% -\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@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}% \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 @@ -2756,7 +3874,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} @@ -2777,21 +3895,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}% @@ -2857,8 +3976,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}% @@ -2919,8 +4038,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% @@ -2928,8 +4047,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% @@ -2949,13 +4068,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 @@ -3093,109 +4218,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@area@def{paper}{##1:##2}% + \tud@x@geometry@area@def{paper}{##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{paperwidth}{% + \tud@x@geometry@area@def{paper}{#1:\paperheight}% + }% + \TUD@parameter@def{paperheight}{% + \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% - \TUD@parameter@def{layoutheight}{% - \tud@area@def{layout}{\the\tud@len@layoutwidth:#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@area@def{layout}{##1:##1}% + \tud@x@geometry@area@def{layout}{##1:##1}% }{% - \tud@area@def{layout}{##1:##2}% + \tud@x@geometry@area@def{layout}{##1:##2}% }% }% \@tempa#1,,\@nil% }% + \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}{% + \setlength\tud@len@layouthoffset{##1}% + \setlength\tud@len@layoutvoffset{##1}% + }{% + \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}}{}% @@ -3258,150 +4423,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,% @@ -3433,8 +4571,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% @@ -3501,11 +4639,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 @@ -3620,10 +4770,9 @@ \fi% \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% \global\tud@len@areadiff=\tud@len@areadiff% + \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% - \else% - \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% \fi% \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% \tud@if@v@lower{2.03}{% @@ -3633,32 +4782,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}% @@ -3686,153 +4839,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% @@ -3897,7 +5080,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% @@ -4163,16 +5346,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% @@ -4232,6 +5418,7 @@ \fi% \fi% }{% + \tud@locked@bool@preset{@tud@head@widebar}{true}% \ifstr{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% @@ -4241,7 +5428,6 @@ \else% \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% - \bool@std@lock{@tud@head@widebar}{true}% }{% \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{HKS41}% @@ -4256,50 +5442,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@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}% - \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}% - \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{} @@ -4326,9 +5474,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}% @@ -4347,10 +5495,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{% @@ -4596,7 +5740,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% @@ -4641,8 +5785,8 @@ } \newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% - \def\@tempa{}% - \def\@tempb{}% + \let\@tempa\@empty% + \let\@tempb\@empty% \@tempswatrue% \def\do##1{% \if@tempswa% @@ -4674,19 +5818,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% }% @@ -4698,7 +5849,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% @@ -4730,25 +5883,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% }{% @@ -4765,22 +5919,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% @@ -4873,7 +6025,7 @@ ] \TUD@parameter@family{tudpage}{% \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{pagestyle}{% \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% @@ -4896,6 +6048,42 @@ }% ]{fancyhdr} %%% From File: tudscr-layout.dtx +\newcommand*\tud@cleardoublespecialpage[2][]{% + \begingroup% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + #2% + \ifboolexpr{bool {@twoside} and bool {@openright}}{% + \if@tud@clearcolor% + \def\@tempa{% + #1% + \tud@cleardoublepage% + \endgroup% + }% + \else% + \def\@tempa{% + \endgroup% + #1% + \tud@cleardoublepage% + }% + \fi% + }{% + \if@tud@clearcolor\tud@clearcolor@wrn\fi% + \def\@tempa{% + \endgroup% + #1% + }% + }% + \@tempa% + \@afterindentfalse\@afterheading% +} +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Option `clearcolor' is only available together with\MessageBreak% + options `twoside' and `open=right'% + }% + \global\let\tud@clearcolor@wrn\relax% +} \newcommand*\tud@x@scr@headings@current{} \newcommand*\tud@sec@fontsize{} \newcommand*\tud@thesis@fontsize{} @@ -4913,304 +6101,313 @@ \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@chapter@num\relax\else% !false - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% + \ifcase\tud@cd@chapter@num\relax\else% !false + \tud@komafont@reset{chapter}% + \tud@komafont@reset{chapterprefix}% \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@headmidvskip@normal{\par\nobreak\vspace{.5\baselineskip}} -\newcommand*\tud@headmidvskip@reverse{% - \setbox\z@\vbox{\tud@headmidvskip@normal}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +\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@chapter@fontcolor{} \newcommand*\tud@section@fontcolor{} \providecommand*\raggedtitle{\tud@raggedright} -\newkomafont{parttitle}{% - \tud@sec@fontface% - \tud@color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% -} -\newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover@num\relax% false - \bool@std@lock{@tud@cdgeometry@cover}{false}% - \else% !false - \bool@std@lock{@tud@cdgeometry@cover}{true}% - \fi% - \ifcase\tud@layout@title@num\relax% false - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% +\newcommand*\tud@cd@process{% + \ifcase\tud@cd@title@num\relax% false + \tud@cs@restore{titlepagestyle}% + \tud@komafont@unset{titlehead}% + \tud@komafont@unset{title}% + \tud@komafont@unset{subtitle}% + \tud@komafont@unset{subject}% + \tud@komafont@unset{author}% + \tud@komafont@unset{date}% + \tud@komafont@unset{publishers}% \else% !false - \tud@cmd@store{titlepagestyle}% + \tud@cs@store{titlepagestyle}% \renewcommand*\titlepagestyle{plain.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}% }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \fi% - \ifcase\tud@layout@part@num\relax% false - \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadendvskip}% - \tud@cmd@restore{partheademptypage}% - \tud@cmd@restore{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@startpart}% - \tud@cmd@restore{scr@@startspart}% - }{% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% - }% - \tud@sectioning@reset[addpart]{part}% - \tud@font@koma@unset{partnumber}% - \tud@cmd@restore{raggedpart}% + \tud@komafont@set{author}{\usekomafont{subject}}% + \tud@komafont@set{publishers}{\usekomafont{author}}% + \tud@komafont@set{date}{\usekomafont{titlepage}}% + \fi% + \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{scr@part@beforeskip}% + \tud@cs@restore{scr@part@innerskip}% + \tud@cs@restore{scr@part@afterskip}% + \tud@cs@restore{partheadstartvskip}% + \tud@cs@restore{partheadendvskip}% + \tud@cs@restore{partheademptypage}% + \tud@cs@restore{partpagestyle}% + \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@beforeskip}% + \tud@cs@store{scr@part@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% + \tud@cs@store{scr@part@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% - \tud@cmd@store{partheadendvskip}% - \let\partheadendvskip\tud@partheadendvskip% - \tud@cmd@store{partheademptypage}% - \let\partheademptypage\relax% - \tud@cmd@store{partpagestyle}% + \tud@cs@store{partheadendvskip}% + \let\partheadendvskip\relax% + \tud@cs@store{partheademptypage}% + \let\partheademptypage\tud@partheademptypage% + \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - \let\scr@@startpart\tud@@startpart% - \tud@cmd@store{scr@@startspart}% - \let\scr@@startspart\tud@@startspart% - }{% - \tud@cmd@store{@part}% - \let\@part\tud@@part% - \tud@cmd@store{@spart}% - \let\@spart\tud@@spart% - }% - \if@tud@parttitle% - \tud@sectioning@set{part}{\usekomafont{parttitle}}% - \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \else% - \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}% - }% - \fi% - \tud@cmd@store{raggedpart}% + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% + \tud@komafont@set{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@komafont@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@cs@store{raggedpart}% \renewcommand*\raggedpart{\tud@raggedright}% \fi% - \ifcase\tud@layout@chapter@num\relax% false - \tud@cmd@restore{chapterheadstartvskip}% - \tud@cmd@restore{chapterformat}% - \tud@cmd@restore{@chapter}% - \tud@cmd@restore{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@makechapterhead}% - }{% - \tud@cmd@restore{@@makechapterhead}% - }% - \tud@sectioning@reset[addchap]{chapter}% - \tud@font@koma@unset{chapterprefix}% - \tud@cmd@restore{raggedchapter}% + \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{scr@chapter@beforeskip}% + \tud@cs@restore{scr@chapter@innerskip}% + \tud@cs@restore{scr@chapter@afterskip}% + \tud@cs@restore{chapterheadstartvskip}% + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% + \tud@cs@restore{tud@chapter@before@hook}% + \tud@cs@restore{tud@chapter@after@hook}% + \tud@komafont@unset{chapter}% + \tud@komafont@unset{chapterprefix}% + \tud@cs@restore{raggedchapter}% \else% !false - \tud@cmd@store{chapterheadstartvskip}% + \tud@cs@store{scr@chapter@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \tud@cs@store{scr@chapter@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \tud@cs@store{scr@chapter@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cmd@store{chapterformat}% - \tud@cmd@store{@chapter}% - \tud@cmd@store{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@makechapterhead}% - \let\scr@@makechapterhead\tud@@makechapterhead% - }{% - \tud@cmd@store{@@makechapterhead}% - \let\@@makechapterhead\tud@@makechapterhead% - }% - \tud@sectioning@set{chapter}{% + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% + \tud@cs@store{tud@chapter@before@hook}% + \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% + \tud@cs@store{tud@chapter@after@hook}% + \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% + \tud@komafont@set{chapter}{% \tud@sec@fontface% \tud@sec@fontsize% \tud@color{\tud@chapter@fontcolor}% }% - \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% - \tud@cmd@store{raggedchapter}% + \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% + \tud@cs@store{raggedchapter}% \renewcommand*\raggedchapter{\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@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{subsection}{% + \tud@komafont@set{subsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subsubsection}{% + \tud@komafont@set{subsubsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{minisec}{% - \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{paragraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{paragraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{subparagraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subparagraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\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% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% +\newcommand*\tud@cd@specialpage@set[1]{% + \tud@komafont@set{footnote}{% \edef\@tempa{% \noexpand\tud@color{% \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% }\@tempa% }% - \tud@cmd@store{footnoterule}% + \tud@cs@store{footnoterule}% \let\footnoterule\relax% } -\newcommand*\tud@layout@specialpage@unset{% - \tud@font@koma@unset{footnote}% - \tud@cmd@restore{footnoterule}% +\newcommand*\tud@cd@specialpage@unset{% + \tud@komafont@unset{footnote}% + \tud@cs@restore{footnoterule}% } -\newcommand*\tud@partheadstartvskip{% - \renewcommand*\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part@num\relax\or\or% litecolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% barcolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% bicolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% color - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \or% full - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \fi% - \tud@layout@specialpage@set{part}% +\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% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% - \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \if@tud@parttitle% - \begingroup% - \tud@sec@fontface% - \tud@sec@fontsize% - \tud@color{\tud@part@fontcolor}% - \ifx\@@title\@empty% - \ClassWarning{\TUD@Class@Name}{% - You activated the option `parttitle' but\MessageBreak% - no title was given% - }% - \tud@makeuppercase{\strut}% - \else% - \tud@makeuppercase{\@@title}% - \fi% - \par\nobreak% - {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% - \endgroup% - \else% - \usekomafont{partnumber}{\tud@headmidvskip@reverse}% - \fi% + \usekomafont{partnumber}{\nobreak\tud@sec@strut}% + \setlength\@tempskipa{\tud@cd@innerskip}% + \par\nobreak\vskip\@tempskipa% \endgroup% } -\newcommand*\tud@partheadendvskip{% - \tud@cleardoublespecialpage{% - \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@part@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% - \or% color - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% - \or% full - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% - }% - \tud@layout@specialpage@unset% -} +\newcommand*\tud@preamble@fontcolor{} \newcommand*\tud@partpreamble{% + \@tempskipa=\glueexpr\tud@cd@afterskip\relax% + \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \vskip\@tempskipa% \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% - \tud@color{\tud@part@fontcolor}% - \vskip\dimexpr\topskip+.9\baselineskip\relax% + \let\tud@preamble@fontcolor\tud@part@fontcolor% \@afterindentfalse\@afterheading% } \newcommand*\tud@chapterpreamble{% @@ -5218,15 +6415,11 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% \if@tud@chapterpage% - \ifcase\tud@cdfont@num\relax\or% true - \TUDoptions{cdfont=true}% - \or% heavy - \TUDoptions{cdfont=heavy}% - \fi% \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% - \tud@color{\tud@chapter@fontcolor}% + \let\tud@preamble@fontcolor\tud@chapter@fontcolor% \fi% \@afterindentfalse\@afterheading% } @@ -5240,123 +6433,106 @@ }{% \def\@tempa####1@####2{% \@nameuse{tud@####1preamble}% + \tud@color{\tud@preamble@fontcolor}% \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% }% \hbox to\hsize{% \let\phantomsection\relax% - #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par\bigskip}#5\par% }% }{}{\tud@patch@wrn{set@@@@preamble}} -\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}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{% - \nobreak\tud@makeuppercase{\@nameuse{#1format}}% - }% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% - \else% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% +\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@chapter@subtitle{} +\newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}} +\newkomafont{chaptersubtitle}{% + \tud@thesis@fontsize% + \fontseries{\tud@cdfont@bf}\selectfont% + \tud@color{\tud@chapter@fontcolor}% +} +\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}% + }% +} +\newcommand*\tud@partheadstartvskip{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@cd@part@num\relax\or\or% litecolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% - \newcommand*\tud@@startspart{}% - \let\tud@@startspart\scr@@startspart% - \patchcmd{\tud@@startspart}{% - \normalfont - \sectfont\nobreak - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% + \tud@cd@specialpage@set{part}% + \tud@cd@headstartvskip% + \TUD@deprecated@lengthcs{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% +} +\newcommand*\tud@partheademptypage{% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@cd@part@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% + \or% litecolor + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% barcolor + \tud@locked@num@set{tud@head@bar@num}{2}% + \or% bicolor + \tud@locked@num@set{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - }{}{\tud@patch@wrn{scr@@startspart}}% -\else - \newcommand*\tud@@part{}% - \let\tud@@part\@part% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{@part}}% - \newcommand*\tud@@spart{}% - \let\tud@@spart\@spart% - \patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% + \clearpage% + }% + \tud@cd@specialpage@unset% +} +\newcommand*\tud@partformat{}% +\newcommand*\tud@partlineswithprefixformat[3]{% + \if@tud@parttitle% + \ifx\@@title\@empty% + \ClassWarning{\TUD@Class@Name}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \fi% - \size@part% - }{}{\tud@patch@wrn{@spart}}% -\fi + \tud@cd@vphantom% + \tud@sec@format[#1]{% + \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + }% + \setpartsubtitle{% + \setkomafont{part}{}% + \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% + }% + \else% + \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% + \let\partformat\tud@partformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% + \fi% + \tud@sec@subtitle{#1}% +} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% - \ifcase\tud@layout@chapter@num\relax\or\else% *color + \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax% - }% + \tud@cd@headstartvskip% \if@tud@chapterpage% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% @@ -5365,42 +6541,28 @@ \vspace*{\tud@dim@headingsvskip}% \fi% } -\newcommand*\tud@@makechapterhead{}% -\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} -\if@tempswa - \let\tud@@makechapterhead\scr@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \csname #1format\endcsname% - \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\csname #1format\endcsname}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{scr@@makechapterhead}}% -\else - \let\tud@@makechapterhead\@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{@@makechapterhead}}% -\fi +\newcommand*\tud@chapterformat{}% +\newcommand*\tud@chapterlineswithprefixformat[3]{% + \edef\tud@chapterformat{% + \noexpand\tud@sec@format{\expandonce\chapterformat}% + }% + \let\chapterformat\tud@chapterformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% + \tud@sec@subtitle{#1}% +} +\newcommand*\tud@chapterlinesformat[3]{% + \tud@cd@vphantom% + \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \tud@sec@subtitle{#1}% +} \newcommand*\tud@chapter@pre{% \if@tud@chapterpage% \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% - \tud@layout@specialpage@set{chapter}% + \tud@cd@specialpage@set{chapter}% \fi% } -\newcommand*\tud@head@bar@store{} -\let\tud@head@bar@store\relax \newcommand*\tud@head@bar@restore{} \let\tud@head@bar@restore\relax \newcommand*\tud@chapter@app{% @@ -5408,46 +6570,42 @@ \tud@cleardoublespecialpage{% \renewcommand*\tud@pagecolor{}% \let\tud@foot@fontcolor\tud@chapter@fontcolor% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% - \tud@layout@specialpage@unset% + \tud@cd@specialpage@unset% \if@restonecol\twocolumn\fi% \else% - \edef\tud@head@bar@store{\tud@head@bar@num}% \edef\tud@head@bar@restore{% - \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}% - \global\let\noexpand\tud@head@bar@store\relax% + \gdef\noexpand\tud@head@bar@num{\tud@head@bar@num}% \global\let\noexpand\tud@head@bar@restore\relax% }% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% @@ -5455,76 +6613,31 @@ \@afterindentfalse\@afterheading% \fi% } -\newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\TUD@Class@Name}{% - Option `clearcolor' is only available together with\MessageBreak% - options `twoside' and `open=right'% - }% - \global\let\tud@clearcolor@wrn\relax% -} -\newcommand*\tud@part{} -\newcommand*\tud@spart{} -\newcommand*\tud@chapter{} -\newcommand*\tud@schapter{} -\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}}% - }% - \ifstr{#1}{chapter}{% - \def\@tempa{,s}% - \@for\@tempb:=\@tempa\do{% - \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@pre% - }{}{\tud@patch@wrn{tud@sectioning@case}}% - \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@app% - }{}{\tud@patch@wrn{tud@sectioning@case}}% +\newcommand*\tud@chapter@before@hook{} +\newcommand*\tud@chapter@after@hook{} +\pretocmd\scr@startchapter{% + \tud@chapter@before@hook% +}{}{\tud@patch@wrn{scr@startchapter}} +\apptocmd\scr@@startchapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startchapter}} +\apptocmd\scr@@startschapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startschapter}} +\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% } -\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{thesis}{% @@ -5532,10 +6645,11 @@ \tud@thesis@fontsize% } \newkomafont{titlepage}{% - \usekomafont{subject}% + \raggedtitle% + \sffamily% \mdseries% - \large% - \tud@raggedright% + \usesizeofkomafont{subsection}% + \tud@color{\tud@title@fontcolor}% } \robustify{\thanks} \robustify{\footnotemark} @@ -5543,27 +6657,52 @@ \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% \if@titlepage% - \tud@make@titlepage% + \tud@maketitle@page% \else% - \tud@make@titlehead% + \tud@maketitle@inpage% \fi% \fi% \endgroup% \setcounter{footnote}{0}% \global\let\and\relax% } +\TUD@parameter@family{title}{% + \TUD@parameter@def{titlepage}[true]{\KOMAoption{titlepage}{#1}}% + \TUD@parameter@def{titlesignature}[true]{\TUDoption{titlesignature}{#1}}% + \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}% @@ -5571,19 +6710,10 @@ \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@titleback{} -\newcommand*\tud@make@titlepage{% +\newcommand*\tud@maketitle@page{% \renewcommand*\tud@title@fontcolor{}% - \ifcase\tud@layout@title@num\relax\or\or% litecolor + \ifcase\tud@cd@title@num\relax\or\or% litecolor \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor \renewcommand*\tud@title@fontcolor{HKS41}% @@ -5595,11 +6725,12 @@ \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% - \tud@layout@specialpage@set{title}% + \tud@cd@specialpage@set{title}% \ifx\tud@title@pagenumber\relax\else% \setcounter{page}{\tud@title@pagenumber}% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% + \addtokomafont{footnote}{\sffamily}% \let\footnotesize\small% \let\footnoterule\relax% \let\footnote\thanks% @@ -5614,6 +6745,10 @@ possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% }% + \@titlepageiscoverpagefalse% + \fi% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% \fi% \else% \if@titlepageiscoverpage% @@ -5626,65 +6761,36 @@ \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\baselineskip% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \else% \let\titlepage@restore\relax% \fi% - \noindent\@extratitle\next@tdpage% + \noindent\@extratitle% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \noindent\@frontispiece% \fi% + \next@tdpage% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \begingroup% - \usekomafont{titlepage}% - \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% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox\z@\par\fi% - \ifx\@subject\@empty\else\usebox\@ne\par\fi% - {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + {\usekomafont{titlepage}{% + \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{partnumber}{\nobreak\tud@sec@strut}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% - \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% {\usekomafont{date}{\tud@date@print\par}}% @@ -5694,28 +6800,26 @@ \else% \vskip 2ex\@plus.25fill% \if@tud@subjectthesis\else% - {\usekomafont{thesis}{\tud@title@uppercase{\@thesis}\par}}% + {\usekomafont{thesis}{\tud@title@format{\@thesis}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% + \ifx\@graduationabbreviation\@empty\else% + \nobreakspace\@graduationabbreviation% + \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% - \vskip 2ex\@plus1ex\@minus1ex% - \if@tud@subjectthesis% - {\usekomafont{subject}{\@tempc\par}}% - \else% - {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}% - \fi% + \vskip 2.5ex\@plus1ex\@minus1ex% + {\usekomafont{thesis}{\tud@title@format{\@tempc}\par}}% \vskip 3ex\@plus1ex\@minus1ex% \fi% \fi% \vskip 2ex\@plus.5fill% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \tud@title@names{referee}% \tud@title@names{advisor}% \tud@title@names{supervisor}% @@ -5734,13 +6838,19 @@ \fi% \fi% \fi% + \if@tud@titlesignature% + \let\tud@split@@author@do\tud@split@author@signature% + \vskip\tud@len@signatureskip\noindent% + \tud@ifin@and{\@@author}{}{\hfill}% + \tud@multiple@split{@@author}% + \fi% \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus.25fill% {\usekomafont{publishers}{\@publishers\par}}% \vskip\z@\@plus.25fill% \fi% - \endgroup% + }}% \let\tud@titleback\relax% \if@twoside% \@tempswatrue% @@ -5763,28 +6873,26 @@ \fi% \def\@tempa{% \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@title@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@title@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% full \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% - \if@tud@cover% + \if@tud@coverpage% \begingroup% \@tempa% \cleardoubleemptypage% @@ -5807,9 +6915,9 @@ \fi% \end{titlepage}% } -\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% @@ -5827,58 +6935,42 @@ \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+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\tud@dim@headingsvskip}% + \tud@cd@vphantom% \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% \TUDoptions{subjectthesis=true}% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \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% \vskip 2\bigskipamount% @@ -5908,20 +7000,48 @@ }% \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% + \tud@thesis@tosubject% + \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% + \vskip\dimexpr-\@tempdima-\p@-\medskipamount\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*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -5955,13 +7075,20 @@ \newcommand*\tud@newline@title{} \newcommand*\tud@split@author@title[2]{% \tud@multiple@fields@store{@author}{#1}% - \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% - {\usekomafont{author}{\ignorespaces#1\unskip}}% - \if@tud@cover\else% + \renewcommand*\tud@newline@title{% + \vskip .5ex\strut% + \def\tud@newline@title{\newline\strut}% + }% + {\usekomafont{author}{\ignorespaces#1\strut\unskip}}% + \if@tud@coverpage\else% \ifx\@authormore\@empty\else% \tud@newline@title% \@authormore% \fi% + \ifx\@emailaddress\@empty\else% + \tud@newline@title% + \@emailaddress% + \fi% \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% @@ -5991,7 +7118,7 @@ \@tempc{matriculationyear}% \fi% \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@multiple@@@split{#2}{\vskip 1.5ex}% } \newcommand*\tud@title@wrn[1]{% \ClassWarning{\TUD@Class@Name}{% @@ -5999,6 +7126,17 @@ activated titlepage option% }% } +\newcommand*\tud@split@author@signature[2]{% + \tud@multiple@fields@store{@author}{#1}% + \vbox{% + \hsize=.3\textwidth% + \centering% + \rule{.3\textwidth}{.05pt}\newline% + \ignorespaces#1\strut\unskip% + }% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\hfill}% +} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -6056,7 +7194,7 @@ \fi% }{}% } -\newif\if@tud@cover +\newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -6074,102 +7212,149 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title@num\tud@layout@cover@num% - \tud@layout@process% + \let\tud@cd@title@num\tud@cd@cover@num% + \tud@cd@process% + \ifcase\tud@cd@cover@num\relax% false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{false}% + \@tud@coverpagefalse% + \else% !false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{true}% + \@tud@coverpagetrue% + \fi% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \@titlepagetrue% + \let\@extratitle\@empty% + \let\@frontispiece\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% \if@tud@cdgeometry@cover% - \let\coverpagetopmargin\tud@len@slimmargin% - \let\coverpagebottommargin\tud@len@widemargin% - \let\coverpageleftmargin\tud@len@widemargin% - \let\coverpagerightmargin\tud@len@slimmargin% + \if@tud@coverpage% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + }{% + \def\coverpagetopmargin{\tud@len@slimmargin}% + }% + \fi% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% \def\coverpagebottommargin{.5\tud@len@both}% - }{}% + }{% + \def\coverpagebottommargin{\tud@len@widemargin}% + }% + \def\coverpageleftmargin{\tud@len@widemargin}% + \def\coverpagerightmargin{\tud@len@slimmargin}% \fi% - \ifcase\tud@layout@cover@num\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@title@pagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% + \if@tud@coverpage% \edef\titlepage@restore{% \noexpand\endgroup% \noexpand\global\noexpand\@colht\the\@colht% \noexpand\global\noexpand\@colroom\the\@colroom% \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@len@footsep+\footheight\relax% - \tud@if@v@lower{2.03}{% - \footskip=\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cdgeometry@cover% - \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@len@widemargin% - \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \tud@len@areavskip=\z@% - \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% \tud@maketitle% \clearpage% \titlepage@restore% + \else% + \@titlepageiscoverpagetrue% + \tud@cover@fixmargins% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% \fi% \endgroup% } -\bool@lock{@tud@cdgeometry@cover} +\tud@locked@newbool{@tud@cdgeometry@cover} \TUD@parameter@family{cover}{% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% \TUD@parameter@def{cdgeometry}[true]{% - \ifstrbool{#1}{% - \bool@set@lock{@tud@cdgeometry@cover}{true}% - }{% - \bool@set@lock{@tud@cdgeometry@cover}{false}% - }{% - \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}% - }% - }% - }% + \TUDoption{cdgeometry}{#1}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \tud@locked@bool@set{@tud@cdgeometry@cover}{true}% + \else% + \tud@locked@bool@set{@tud@cdgeometry@cover}{false}% + \fi% }% - \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } +\renewcommand*{\coverpagetopmargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \else% + \dimexpr\topmargin+1in\relax% + \fi% +} +\renewcommand*{\coverpagebottommargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@widemargin\relax% + \else% + 2\dimexpr\coverpagetopmargin\relax% + \fi% +} +\newcommand*\tud@cover@fixmargins{% + \begingroup% + \tud@cdgeometry@assignlayout% + \tud@x@geometry@fixmargins% + \setlength\@tempdima{% + \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset + +\paperheight-\tud@len@layoutheight\relax% + }% + \edef\coverpagebottommargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% + }% + \edef\coverpagetopmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagerightmargin-\tud@len@layouthoffset + +\paperwidth-\tud@len@layoutwidth\relax% + }% + \edef\coverpagerightmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% + }% + \edef\coverpageleftmargin{\the\@tempdima}% + \edef\tud@res@a{% + \endgroup% + \def\noexpand\coverpagetopmargin{\coverpagetopmargin}% + \def\noexpand\coverpagebottommargin{\coverpagebottommargin}% + \def\noexpand\coverpageleftmargin{\coverpageleftmargin}% + \def\noexpand\coverpagerightmargin{\coverpagerightmargin}% + }% + \tud@res@a% +} +\newcommand*\tud@cover@setmargins{% + \tud@cover@fixmargins% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \textheight=\dimexpr\paperheight-\coverpagetopmargin% + -\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\baselineskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% +} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% @@ -6212,6 +7397,7 @@ }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% + \csuse{phantomsection}% \protected@edef\@tempa{% \noexpand\endgroup% \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% @@ -6224,11 +7410,11 @@ }{% \ClassWarning{\TUD@Class@Name}{% It isn't possible to use `#1=single'\MessageBreak% - or `#1=chapter' + or `#1=chapter'\space% with `#1=tocmultiple'% }% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc@num}{% + \noexpand\tud@locked@num@set{tud@#1@toc@num}{% \the\numexpr\csuse{tud@#1@toc@num}-2\relax% }% }% @@ -6391,7 +7577,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{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -6450,7 +7636,7 @@ ] \TUD@parameter@family{declaration}{% \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{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -6556,32 +7742,6 @@ \tud@fm@body@end{declaration}% } %%% 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} \newlength\pageheadingsvskip @@ -6606,67 +7766,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}{% @@ -6693,7 +7829,10 @@ } \apptocmd{\titlepage}{% \tud@x@bookmark@startatroot% - \if@tud@cover% + \@tud@res@swafalse% + \if@tud@coverpage\@tud@res@swatrue\fi% + \if@titlepageiscoverpage\@tud@res@swatrue\fi% + \if@tud@res@swa% \tudbookmark[% 0% ]{\coverpagename}{cover}% @@ -6703,12 +7842,12 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\pretocmd{\tud@make@titlehead}{% +\pretocmd{\tud@maketitle@inpage}{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% ]{\titlename}{title}% -}{}{\tud@patch@wrn{tud@make@titlehead}} +}{}{\tud@patch@wrn{tud@maketitle@inpage}} \pretocmd{\@maketitle}{% \tud@x@bookmark@startatroot% \tudbookmark[% @@ -6721,10 +7860,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% @@ -6733,41 +7872,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% - }% +\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% } -\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% -} -\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}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% -}{}{\tud@patch@wrn{@uclcnotmath}} +\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% +} +\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 `tudscrbook.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty index 55aa55ea44e..eae446a4c59 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty @@ -9,9 +9,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. %% ---------------------------------------------------------------------------- @@ -37,7 +37,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]{% @@ -52,20 +52,26 @@ \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} \@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-color.dtx \ProvidesPackage{tudscrcolor}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (corporate design colors)% ] diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty index bc41bf5a6f6..dc03271c268 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty @@ -12,9 +12,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. %% ---------------------------------------------------------------------------- @@ -40,7 +40,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]{% @@ -55,7 +55,7 @@ \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} @@ -66,18 +66,24 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi \@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-comp.dtx \ProvidesPackage{tudscrcomp-book}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (compatibility for old tud(scr) classes)% ] @@ -114,6 +120,8 @@ } %%% From File: tudscr-misc.dtx \DeclareOption*{\TUDoptions{\CurrentOption}} +\TUDExecuteOptions{% +} \TUDProcessOptions\relax %%% From File: tudscr-comp.dtx \newcommand*\einrichtung{\faculty} @@ -161,7 +169,7 @@ \global\@tud@comp@chapterpagetrue% \tud@comp@chapterpage@wrn% } -\newcommand*\tud@comp@chapterpage@set[1][]{% +\newcommand*\tud@comp@chapterpage@set{% \if@tud@comp@chapterpage% \if@tud@chapterpage% \TUDoptions{chapterpage=false}% @@ -170,7 +178,7 @@ \fi% \fi% } -\newcommand*\tud@comp@chapterpage@unset[1][]{% +\newcommand*\tud@comp@chapterpage@unset{% \tud@comp@chapterpage@set% \global\@tud@comp@chapterpagefalse% } @@ -184,22 +192,10 @@ } \AtEndPreamble{% \if@chapter% - \pretocmd{\tud@chapter}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@chapter}}% - \apptocmd{\tud@chapter}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@chapter}}% - \pretocmd{\tud@schapter}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@schapter}}% - \apptocmd{\tud@schapter}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@schapter}}% - \pretocmd{\tud@addchap}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@addchap}}% - \apptocmd{\tud@addchap}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@addchap}}% - \pretocmd{\tud@saddchap}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@saddchap}}% - \apptocmd{\tud@saddchap}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@saddchap}}% + \pretocmd{\tud@chapter@pre}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@chapter@pre}}% + \apptocmd{\tud@chapter@app}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@chapter@app}}% \fi% } \endinput diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty index 8903b9ca9c2..3298f5038f1 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty @@ -12,9 +12,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. %% ---------------------------------------------------------------------------- @@ -40,7 +40,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]{% @@ -55,7 +55,7 @@ \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} @@ -66,18 +66,24 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi \@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-comp.dtx \ProvidesPackage{tudscrcomp-poster}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (compatibility for old tud(scr) classes)% ] @@ -86,9 +92,9 @@ \TUD@set@ifkey{bluebg}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUDoptions{backgroundcolor=true}% + \TUDoptions{backcolor=true}% \else% - \TUDoptions{backgroundcolor=false}% + \TUDoptions{backcolor=false}% \fi% \fi% } @@ -126,6 +132,8 @@ } %%% From File: tudscr-misc.dtx \DeclareOption*{\TUDoptions{\CurrentOption}} +\TUDExecuteOptions{% +} \TUDProcessOptions\relax %%% From File: tudscr-comp.dtx \newcommand*\einrichtung{\faculty} @@ -170,7 +178,7 @@ } \newcommand*\drittlogofile[1]{% \PackageWarning{tudscrcomp}{% - Nothing happened, you should use \string\footlogo\MessageBreak + Nothing happened, you should use \string\footlogo\MessageBreak% instead. Please see the documentation of \string\footlogo\MessageBreak% and option `ddc' or `ddcfoot'% }% @@ -183,8 +191,6 @@ `ddc' or `ddcfoot'% }% } -\newcounter{topsection} -\let\c@topsection\c@section \newcommand*\topsectionnumdepth{\sectionnumdepth} \newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent} \newcommand*\scr@topsection@beforeskip{\scr@section@beforeskip} @@ -195,11 +201,10 @@ \newcommand*\l@topsection{\l@section} \DeclareNewSectionCommand[% style=section,% - font={\usekomafont{section}}, + font={\usekomafont{section}},% beforeskip=\z@,% ]{topsection} -\newcounter{topsubsection} -\let\c@topsubsection\c@subsection +\let\c@topsection\c@section \newcommand*\topsubsectionnumdepth{\subsectionnumdepth} \newcommand*\scr@topsubsection@sectionindent{\scr@subsection@sectionindent} \newcommand*\scr@topsubsection@beforeskip{\scr@subsection@beforeskip} @@ -210,9 +215,10 @@ \newcommand*\l@topsubsection{\l@subsection} \DeclareNewSectionCommand[% style=section,% - font={\usekomafont{subsection}}, + font={\usekomafont{subsection}},% beforeskip=\z@,% ]{topsubsection} +\let\c@topsubsection\c@subsection \newcommand*\centersection[2][\@nil]{% \tud@comp@centersection{section}{#1}{#2}% } @@ -226,21 +232,21 @@ \tud@comp@centersection{topsubsection}{#1}{#2}% } \newcommand*\tud@comp@centersection[3]{% - \tud@cmd@store{raggedsection}% + \tud@cs@store{raggedsection}% \let\raggedsection\centering% \ifx#2\@nil\relax% \csuse{#1}{#3}% \else% \csuse{#1}[#2]{#3}% \fi% - \tud@cmd@restore{raggedsection}% + \tud@cs@restore{raggedsection}% } \newcommand\sectiontopskip{\scr@section@beforeskip} \newcommand\subsectiontopskip{\scr@subsection@beforeskip} \setcounter{secnumdepth}{\m@ne} \newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} \newcommand*\footcolumn[2]{% - \ifxnumber{#1}{% + \ifnumber{#1}{% \ifcase#1\relax% \footcontent{#2}% \or% @@ -314,20 +320,20 @@ \newcommand*\grautabelle{\@tud@comp@graytabletrue} \newenvironment{farbtabellen}{% \if@tud@comp@graytable% - \rowcolors{1}{HKS92!20}{HKS92!10} + \rowcolors{1}{HKS92!20}{HKS92!10}% \else% \rowcolors{1}{HKS41!20}{HKS41!10}% \fi% }{} \ifundef{\schnittrand}{}{% - \ifxlen{\schnittrand}{% + \ifisdimension{\schnittrand}{% \edef\@tempa{% paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% layout=\the\paperwidth:\the\paperheight,% layoutoffset=\the\dimexpr\schnittrand\relax,% showcrop% - } + }% \expandafter\geometry\expandafter{\@tempa}% }{% \PackageErrorNoLine{tudscrcomp}{% @@ -335,8 +341,8 @@ }{% The definition of `\string\schnittrand' does not expand to\MessageBreak% a valid dimension expression.% - } - } + }% + }% }% \AtEndPreamble{% \RequirePackage{amsmath}[2016/06/28]% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty index 3e213f5bb6d..51ea2c321cf 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty @@ -9,9 +9,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. %% ---------------------------------------------------------------------------- @@ -37,7 +37,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]{% @@ -52,7 +52,7 @@ \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} @@ -63,18 +63,24 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi \@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-comp.dtx \ProvidesPackage{tudscrcomp}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (compatibility for old tud(scr) classes)% ] diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls index da4040ec3f7..3e22dac627f 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls @@ -5,18 +5,18 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `class,doc') -%% tudscr-base.dtx (with options: `class,doc') +%% tudscr-base.dtx (with options: `class,doc,load') %% tudscr-doc.dtx (with options: `class,doc,option') -%% tudscr-locale.dtx (with options: `class,doc') +%% tudscr-localization.dtx (with options: `class,doc') %% tudscr-manual.dtx (with options: `class,doc') %% tudscr-doc.dtx (with options: `class,doc,body') %% tudscr-texindy.dtx (with options: `class,doc') %% %% 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. %% ---------------------------------------------------------------------------- @@ -42,7 +42,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]{% @@ -57,13 +57,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}% @@ -73,66 +73,60 @@ \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{tudscrdoc}{scrartcl}{source code documentation 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}% + \edef\tud@res@a{\noexpand\textsf{\tud@res@b{Script}}}% + \expandafter\endgroup\tud@res@a% + \csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\RequirePackage{scrlfile}[2013/12/19] -\RequirePackage{etoolbox}[2011/01/03] -\newcommand*\tud@reserved{} -\newcommand*\eaddto@hook[2]{% - \expandafter\addto@hook\expandafter#1\expandafter{#2}% -} -\BeforePackage{tudscrbase}{% - \undef\tud@reserved% - \undef\eaddto@hook% -} -\newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} -\BeforePackage{tudscrbase}{\undef\TUD@UnwindPackage} +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} %%% From File: tudscr-doc.dtx \newcommand*\scr@maketitle{}% -\PassOptionsToClass{toc=left}{scrartcl}% +\PassOptionsToClass{toc=left,fontsize=10pt}{scrartcl}% \AfterClass{scrartcl}{\let\scr@maketitle\@maketitle}% \newcommand*\sd@saved@LoadClass{} \let\sd@saved@LoadClass=\LoadClass \renewcommand*\LoadClass[2][]{% - \begingroup + \begingroup% \edef\@tempc{#2}\def\@tempb{article}% - \ifx\@tempc\@tempb - \let\LoadClass\sd@saved@LoadClass + \ifx\@tempc\@tempb% + \let\LoadClass\sd@saved@LoadClass% \def\@tempc{scrartcl}% - \fi + \fi% \edef\@tempc{% \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}% - \@tempc + \@tempc% } \newcommand*\sd@saved@PassOptionsToClass{} \let\sd@saved@PassOptionsToClass=\PassOptionsToClass \renewcommand*\PassOptionsToClass[2]{% - \begingroup + \begingroup% \edef\@tempc{#2}\def\@tempb{article}% - \ifx\@tempc\@tempb + \ifx\@tempc\@tempb% \def\@tempc{scrartcl}% - \fi + \fi% \edef\@tempc{% \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{% \@tempc}}% - \@tempc + \@tempc% } \LoadClassWithOptions{ltxdoc}[2015/03/26] \setcounter{IndexColumns}{2} @@ -144,8 +138,8 @@ \ProcessOptions\relax \newcommand*\DisableCrossrefsForced{} \let\DisableCrossrefsForced\DisableCrossrefs -%%% From File: tudscr-locale.dtx -\newcommand*\tud@locale@define[1]{% +%%% From File: tudscr-localization.dtx +\newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% @@ -159,65 +153,65 @@ }% }% } -\tud@locale@define{\tud@general@name} -\tud@locale@define{\tud@implementation@name} -\tud@locale@define{\tud@changes@name} -\tud@locale@define{\tud@todo@name} -\tud@locale@define{\tud@environment@name} -\tud@locale@define{\tud@environments@name} -\tud@locale@define{\tud@option@name} -\tud@locale@define{\tud@options@name} -\tud@locale@define{\tud@layerpagestyle@name} -\tud@locale@define{\tud@layerpagestyles@name} -\tud@locale@define{\tud@layer@name} -\tud@locale@define{\tud@layers@name} -\tud@locale@define{\tud@length@name} -\tud@locale@define{\tud@lengths@name} -\tud@locale@define{\tud@counter@name} -\tud@locale@define{\tud@counters@name} -\tud@locale@define{\tud@TUDcolor@name} -\tud@locale@define{\tud@TUDcolors@name} -\tud@locale@define{\tud@locale@name} -\tud@locale@define{\tud@locales@name} -\tud@locale@define{\tud@field@name} -\tud@locale@define{\tud@fields@name} -\tud@locale@define{\tud@KOMAfont@name} -\tud@locale@define{\tud@KOMAfonts@name} -\tud@locale@define{\tud@parameter@name} -\tud@locale@define{\tud@parameters@name} -\tud@locale@define{\tud@index@text} -\newcommand*\tud@locale@german{% +\tud@localization@define{\tud@general@name} +\tud@localization@define{\tud@implementation@name} +\tud@localization@define{\tud@changes@name} +\tud@localization@define{\tud@todo@name} +\tud@localization@define{\tud@environment@name} +\tud@localization@define{\tud@environments@name} +\tud@localization@define{\tud@option@name} +\tud@localization@define{\tud@options@name} +\tud@localization@define{\tud@layerpagestyle@name} +\tud@localization@define{\tud@layerpagestyles@name} +\tud@localization@define{\tud@layer@name} +\tud@localization@define{\tud@layers@name} +\tud@localization@define{\tud@length@name} +\tud@localization@define{\tud@lengths@name} +\tud@localization@define{\tud@counter@name} +\tud@localization@define{\tud@counters@name} +\tud@localization@define{\tud@TUDcolor@name} +\tud@localization@define{\tud@TUDcolors@name} +\tud@localization@define{\tud@localization@name} +\tud@localization@define{\tud@localizations@name} +\tud@localization@define{\tud@field@name} +\tud@localization@define{\tud@fields@name} +\tud@localization@define{\tud@KOMAfont@name} +\tud@localization@define{\tud@KOMAfonts@name} +\tud@localization@define{\tud@parameter@name} +\tud@localization@define{\tud@parameters@name} +\tud@localization@define{\tud@index@text} +\newcommand*\tud@localization@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } -\tud@locale@german{\tud@general@name}{Allgemein}% -\tud@locale@german{\tud@implementation@name}{Implementierung}% -\tud@locale@german{\tud@changes@name}{\"Anderungsliste} -\tud@locale@german{\tud@todo@name}{Liste der noch zu erledigenden Punkte} -\tud@locale@german{\tud@environment@name}{Umg.} -\tud@locale@german{\tud@environments@name}{Umgebungen} -\tud@locale@german{\tud@option@name}{Opt.} -\tud@locale@german{\tud@options@name}{Optionen} -\tud@locale@german{\tud@layerpagestyle@name}{Seitenstil} -\tud@locale@german{\tud@layerpagestyles@name}{Seitenstile} -\tud@locale@german{\tud@layer@name}{Layer} -\tud@locale@german{\tud@layers@name}{Layer (Seitenstilebenen)} -\tud@locale@german{\tud@length@name}{L\"ange} -\tud@locale@german{\tud@lengths@name}{L\"angen} -\tud@locale@german{\tud@counter@name}{Z\"ahler} -\tud@locale@german{\tud@counters@name}{Z\"ahler} -\tud@locale@german{\tud@TUDcolor@name}{Farbe} -\tud@locale@german{\tud@TUDcolors@name}{Farben} -\tud@locale@german{\tud@locale@name}{Lok.} -\tud@locale@german{\tud@locales@name}{Lokalisierungsvariablen} -\tud@locale@german{\tud@field@name}{Feld} -\tud@locale@german{\tud@fields@name}{Eingabefelder} -\tud@locale@german{\tud@KOMAfont@name}{Schriftel.} -\tud@locale@german{\tud@KOMAfonts@name}{Schriftelemente} -\tud@locale@german{\tud@parameter@name}{Param.} -\tud@locale@german{\tud@parameters@name}{Parameter} -\tud@locale@german{\tud@index@text}{% +\tud@localization@german{\tud@general@name}{Allgemein}% +\tud@localization@german{\tud@implementation@name}{Implementierung}% +\tud@localization@german{\tud@changes@name}{\"Anderungsliste} +\tud@localization@german{\tud@todo@name}{Liste der noch zu erledigenden Punkte} +\tud@localization@german{\tud@environment@name}{Umg.} +\tud@localization@german{\tud@environments@name}{Umgebungen} +\tud@localization@german{\tud@option@name}{Opt.} +\tud@localization@german{\tud@options@name}{Optionen} +\tud@localization@german{\tud@layerpagestyle@name}{Seitenstil} +\tud@localization@german{\tud@layerpagestyles@name}{Seitenstile} +\tud@localization@german{\tud@layer@name}{Layer} +\tud@localization@german{\tud@layers@name}{Layer (Seitenstilebenen)} +\tud@localization@german{\tud@length@name}{L\"ange} +\tud@localization@german{\tud@lengths@name}{L\"angen} +\tud@localization@german{\tud@counter@name}{Z\"ahler} +\tud@localization@german{\tud@counters@name}{Z\"ahler} +\tud@localization@german{\tud@TUDcolor@name}{Farbe} +\tud@localization@german{\tud@TUDcolors@name}{Farben} +\tud@localization@german{\tud@localization@name}{Lok.} +\tud@localization@german{\tud@localizations@name}{Lokalisierungsmakros} +\tud@localization@german{\tud@field@name}{Feld} +\tud@localization@german{\tud@fields@name}{Eingabefelder} +\tud@localization@german{\tud@KOMAfont@name}{Schriftel.} +\tud@localization@german{\tud@KOMAfonts@name}{Schriftelemente} +\tud@localization@german{\tud@parameter@name}{Param.} +\tud@localization@german{\tud@parameters@name}{Parameter} +\tud@localization@german{\tud@index@text}{% Kursive Zahlen entsprechen der Seite, auf welcher der korrespondierende Eintrag beschrieben wird. Unterstrichene Zahlen verweisen auf die \ifcodeline@index Codezeile der \fi Definition. @@ -227,38 +221,38 @@ wo der jeweilige Eintrag verwendet wird. \fi% } -\newcommand*\tud@locale@english{% +\newcommand*\tud@localization@english{% \providecaptionname{% american,australian,british,canadian,english,newzealand,UKenglish,USenglish% }% } -\tud@locale@english{\tud@general@name}{General}% -\tud@locale@english{\tud@implementation@name}{Implementation}% -\tud@locale@english{\tud@changes@name}{Change History} -\tud@locale@english{\tud@todo@name}{List of ToDos} -\tud@locale@english{\tud@environment@name}{env.} -\tud@locale@english{\tud@environments@name}{environments} -\tud@locale@english{\tud@option@name}{opt.} -\tud@locale@english{\tud@options@name}{options} -\tud@locale@english{\tud@layerpagestyle@name}{pagestyle} -\tud@locale@english{\tud@layerpagestyles@name}{pagestyles} -\tud@locale@english{\tud@layer@name}{layer} -\tud@locale@english{\tud@layers@name}{layers (pagestyle)} -\tud@locale@english{\tud@length@name}{length} -\tud@locale@english{\tud@lengths@name}{lengths} -\tud@locale@english{\tud@counter@name}{counter} -\tud@locale@english{\tud@counters@name}{counters} -\tud@locale@english{\tud@TUDcolor@name}{color} -\tud@locale@english{\tud@TUDcolors@name}{colors} -\tud@locale@english{\tud@locale@name}{locale} -\tud@locale@english{\tud@locales@name}{locales} -\tud@locale@english{\tud@field@name}{field} -\tud@locale@english{\tud@fields@name}{input fields} -\tud@locale@english{\tud@KOMAfont@name}{font} -\tud@locale@english{\tud@KOMAfonts@name}{font elements} -\tud@locale@english{\tud@parameter@name}{param.} -\tud@locale@english{\tud@parameters@name}{parameters} -\tud@locale@english{\tud@index@text}{% +\tud@localization@english{\tud@general@name}{General}% +\tud@localization@english{\tud@implementation@name}{Implementation}% +\tud@localization@english{\tud@changes@name}{Change History} +\tud@localization@english{\tud@todo@name}{List of ToDos} +\tud@localization@english{\tud@environment@name}{env.} +\tud@localization@english{\tud@environments@name}{environments} +\tud@localization@english{\tud@option@name}{opt.} +\tud@localization@english{\tud@options@name}{options} +\tud@localization@english{\tud@layerpagestyle@name}{pagestyle} +\tud@localization@english{\tud@layerpagestyles@name}{pagestyles} +\tud@localization@english{\tud@layer@name}{layer} +\tud@localization@english{\tud@layers@name}{layers (pagestyle)} +\tud@localization@english{\tud@length@name}{length} +\tud@localization@english{\tud@lengths@name}{lengths} +\tud@localization@english{\tud@counter@name}{counter} +\tud@localization@english{\tud@counters@name}{counters} +\tud@localization@english{\tud@TUDcolor@name}{color} +\tud@localization@english{\tud@TUDcolors@name}{colors} +\tud@localization@english{\tud@localization@name}{localization} +\tud@localization@english{\tud@localizations@name}{localizations} +\tud@localization@english{\tud@field@name}{field} +\tud@localization@english{\tud@fields@name}{input fields} +\tud@localization@english{\tud@KOMAfont@name}{font} +\tud@localization@english{\tud@KOMAfonts@name}{font elements} +\tud@localization@english{\tud@parameter@name}{param.} +\tud@localization@english{\tud@parameters@name}{parameters} +\tud@localization@english{\tud@index@text}{% Numbers written in italic refer to the page where the corresponding entry is described. Numbers underlined refer to the \ifcodeline@index code line of the \fi definition. @@ -281,6 +275,7 @@ \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% }{}% } +\RequirePackage{shellesc}[2016/06/07] \RequirePackage{pdftexcmds}[2016/05/21] \PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} \PassOptionsToPackage{open,openlevel=0}{bookmark} @@ -325,7 +320,7 @@ \providecommand*\hypersource@ref@codeline[2][]{} \providecommand*\hypersource@ref@page[2][]{} } -\TUD@UnwindPackage{trimspaces}{\providecommand*\trim@spaces[1]{#1}} +\RequirePackage{trimspaces}[2009/09/17] \newcommand*\hrfn[2]{% \href{#1}{\trim@spaces{#2}}% \footnote{% @@ -342,7 +337,7 @@ \let\bbl@info\@gobble\csname HyPsd@babel@% }{}{\tud@patch@wrn{pdfstringdef}}% } -\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\RequirePackage{csquotes}[2011/10/22] \newcommand*\tud@replace[3]{% \begingroup% \toks@{\def\@tempa##1}% @@ -390,11 +385,19 @@ \def\KOMAScript{KOMA-Script}% }% } -\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} -\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\DeclareTextFontCommand\tud@cdfont@texteb{% + \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% +} +\newrobustcmd*\OpenSans{% + \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% +} +\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} +\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} +\renewcommand*\@pnumwidth{2.1em}% +\renewcommand*\@tocrmarg{3.1em}% %%% From File: tudscr-doc.dtx \RequirePackage{dox}[2010/12/16] -\@ifpackagelater{dox}{2017/01/27}{% +\@ifpackagelater{dox}{2017/12/07}{% \ClassWarning{\TUD@Class@Name}{% Package `dox' was updated so some patches\MessageBreak% are maybe outdated% @@ -578,9 +581,9 @@ \CheckCommand*\@doxcreatespecialmainindex[3]{% \expandafter\def\csname SpecialMain#1Index\endcsname##1{% \@bsphack% - \special@index{##1\actualchar{\string\ttfamily\space##1} (#2) + \special@index{##1\actualchar{\string\ttfamily\space##1} (#2)% \encapchar main}% - \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1} + \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1}% \encapchar main}% \@esphack% }% @@ -640,7 +643,7 @@ \expandafter\def\csname Special#1Index\endcsname##1{% \@bsphack% \index{##1\actualchar{\protect\ttfamily##1} (#2)\encapchar usage}% - \index{#3:\levelchar##1\actualchar{\protect\ttfamily##1} + \index{#3:\levelchar##1\actualchar{\protect\ttfamily##1}% \encapchar usage}% \@esphack% }% @@ -663,24 +666,24 @@ }% } \def\@doxcreatemacrolikeprintname#1#2{% - \@ifundefined{Print#1Name}{% + \ifcsundef{Print#1Name}{% \expandafter\def\csname Print#1Name\endcsname##1{% \MacroFont\string##1\index@type{#2}\strut\ % }% }{}% - \@ifundefined{PrintDescribe#1}{% + \ifcsundef{PrintDescribe#1}{% \expandafter\def\csname PrintDescribe#1\endcsname##1{% \MacroFont\string##1\index@type{#2}\strut\ % }% }{}% } \def\@doxcreateprintname#1#2{% - \@ifundefined{Print#1Name}{% + \ifcsundef{Print#1Name}{% \expandafter\def\csname Print#1Name\endcsname##1{% \MacroFont##1\index@type{#2}\strut\ % }% }{}% - \@ifundefined{PrintDescribe#1}{% + \ifcsundef{PrintDescribe#1}{% \expandafter\def\csname PrintDescribe#1\endcsname##1{% \MacroFont##1\index@type{#2}\strut\ % }% @@ -728,7 +731,7 @@ \tud@reserved[macrolike]{Length}{length} \tud@reserved{Counter}{counter} \tud@reserved{Color}{TUDcolor} -\tud@reserved[macrolike]{Locale}{locale} +\tud@reserved[macrolike]{Localization}{localization} \tud@reserved[macrolike]{Field}{field} \tud@reserved{Font}{KOMAfont} \tud@reserved{Parameter}{parameter} @@ -1007,14 +1010,14 @@ }% } \ifdefined\tudxdyflag - \newcommand*\tud@write@replace{} - \newwrite\tud@write@replace - \newcommand*\tud@read@replace{} - \newread\tud@read@replace - \def\actualchar{<|1|>} - \def\quotechar{<|2|>} - \def\levelchar{<|3|>} - \begingroup + \newcommand*\tud@write@replace{}% + \newwrite\tud@write@replace% + \newcommand*\tud@read@replace{}% + \newread\tud@read@replace% + \def\actualchar{<|1|>}% + \def\quotechar{<|2|>}% + \def\levelchar{<|3|>}% + \begingroup% \endlinechar=\m@ne\relax% \def\tud@reserved#1#2{% \IfFileExists{\jobname.#1}{% @@ -1046,7 +1049,7 @@ \immediate\closeout\tud@write@replace% \ifnum\pdf@shellescape=\@ne\relax% \if@tempswa% - \immediate\write18{% + \ShellEscape{% texindy\space% -o \jobname.#2\space% -M \@currname-#2.xdy\space% @@ -1062,13 +1065,13 @@ }% \tud@reserved{idx}{ind}% \tud@reserved{glo}{gls}% - \endgroup + \endgroup% \else \ifnum\pdf@shellescape=\@ne\relax% - \immediate\write18{% + \ShellEscape{% makeindex -s gglo.ist -t \jobname.glg -o \jobname.gls \jobname.glo% }% - \immediate\write18{% + \ShellEscape{% makeindex -s gind.ist -t \jobname.ilg -o \jobname.ind \jobname.idx% }% \fi% @@ -1139,33 +1142,7 @@ \endgroup% \fi% } -\newcommand*\calculatearea{% - \setlength\topmargin{-1in}% - \setlength\headheight{0pt}% - \setlength\headsep{3em}% - \setlength\footskip{1.5\headsep}% - \setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax}% - \settowidth\MacroIndent{\rmfamily\scriptsize 0000\ }% - \begingroup% - \MacroFont\selectfont% - \settowidth\@tempdima{\space}% - \setlength\@tempdima{80\@tempdima}% - \addtolength\@tempdima{\MacroIndent}% - \edef\@tempa{% - \endgroup% - \noexpand\setlength\noexpand\textwidth{\the\@tempdima}% - }% - \@tempa% - \setlength\columnsep{1em}% - \setlength\marginparsep{1em}% - \setlength\marginparwidth{% - \dimexpr\paperwidth-\textwidth-2\marginparsep\relax% - }% - \setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}% -} -\AtEndPreamble{\calculatearea} -\AfterPackage{tudscrfonts}{% - \RequirePackage{mweights}[2013/07/21]% +\AfterPackage{mweights}{% \CheckCommand*\MacroFont{% \fontencoding\encodingdefault% \fontfamily\ttdefault% @@ -1194,18 +1171,49 @@ \fontshape\sldefault% \small% }% - \newcommand*\saved@calculatearea{}% - \let\saved@calculatearea\calculatearea% - \let\calculatearea\relax% - \appto\tud@font@set{% - \ifcase\tud@cdfont@num\relax\else% true/heavy - \def\mdseries@tt{m}% - \renewcommand*\@pnumwidth{1.7em}% - \renewcommand*\@tocrmarg{2.7em}% + \AtEndPreamble{% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + }% +} +\PassOptionsToPackage{ttfont=lmtt}{tudscrfonts} +\AfterPackage{tudscrfonts}{% + \AtEndPreamble{% + \ifnum\tud@ttfont@num>\z@\relax% + \edef\mdseries@tt{\tud@ttfont@bf}% \fi% - \saved@calculatearea% }% } +\newcommand*\tud@setarea{% + \setlength\topmargin{-1in}% + \setlength\headheight{0pt}% + \setlength\headsep{3em}% + \setlength\footskip{1.5\headsep}% + \setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax}% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \settowidth\MacroIndent{\rmfamily\scriptsize 0000\ }% + \begingroup% + \MacroFont\selectfont% + \settowidth\@tempdima{\space}% + \setlength\@tempdima{80\@tempdima}% + \addtolength\@tempdima{\MacroIndent}% + \edef\@tempa{% + \endgroup% + \noexpand\setlength\noexpand\textwidth{\the\@tempdima}% + }% + \@tempa% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% + \setlength\columnsep{1em}% + \setlength\marginparsep{1em}% + \setlength\marginparwidth{% + \dimexpr\paperwidth-\textwidth-2\marginparsep\relax% + }% + \setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}% +} +\AtBeginDocument{\tud@setarea} \newrobustcmd*\app[1]{\mbox{\textsl{\textbf{#1}}}} \newrobustcmd*\cls[1]{\mbox{\textsf{\textbf{#1}}}} \newrobustcmd*\pkg[1]{\mbox{\textsf{\textbf{#1}}}} @@ -1242,16 +1250,16 @@ }% \@ifpackageloaded{tudscrfonts}{}{% \RequirePackage{lmodern}[2009/10/30]% - \providecommand*\ifdin[2]{#2}% - \providecommand*\textuln[1]{\textsf{#1}}% - \providecommand*\texturn[1]{\textuln{#1}}% - \providecommand*\textubn[1]{\textbf{\textuln{#1}}}% - \providecommand*\textuxn[1]{\textubn{#1}}% - \providecommand*\textuls[1]{\textsl{\textuln{#1}}}% - \providecommand*\texturs[1]{\textuls{#1}}% - \providecommand*\textubs[1]{\textbf{\textuls{#1}}}% - \providecommand*\textuxs[1]{\textubs{#1}}% - \providecommand*\textdbn[1]{\textubn{#1}}% + \providecommand*\textcdln[1]{\textsf{#1}}% + \providecommand*\textcdrn[1]{\textcdln{#1}}% + \providecommand*\textcdsn[1]{\textcdln{#1}}% + \providecommand*\textcdbn[1]{\textbf{\textcdln{#1}}}% + \providecommand*\textcdxn[1]{\textcdbn{#1}}% + \providecommand*\textcdli[1]{\textsl{\textcdln{#1}}}% + \providecommand*\textcdri[1]{\textcdli{#1}}% + \providecommand*\textcdsi[1]{\textcdli{#1}}% + \providecommand*\textcdbi[1]{\textbf{\textcdli{#1}}}% + \providecommand*\textcdxi[1]{\textcdbi{#1}}% }% } %%% From File: tudscr-texindy.dtx diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty index 7334e177025..bf4626eaa72 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty @@ -8,6 +8,7 @@ %% tudscr-fonts.dtx (with options: `package,fonts,identify') %% tudscr-base.dtx (with options: `package,fonts,load') %% tudscr-fonts.dtx (with options: `package,fonts,option') +%% tudscr-misc.dtx (with options: `package,fonts,option') %% tudscr-comp.dtx (with options: `package,fonts,option') %% tudscr-misc.dtx (with options: `package,fonts,execute') %% tudscr-fonts.dtx (with options: `package,fonts,body') @@ -16,9 +17,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. %% ---------------------------------------------------------------------------- @@ -44,7 +45,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]{% @@ -59,20 +60,26 @@ \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} \@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-fonts.dtx \ProvidesPackage{tudscrfonts}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (corporate design fonts)% ] @@ -88,36 +95,22 @@ }{}% }% \if@tempswa% - \@ifpackageloaded{fix-tudscrfonts}{}{% - \PackageWarning{tudscrfonts}{% - As you loaded class `\@tempb', you should\MessageBreak% - load `fix-tudscrfonts' before the class\MessageBreak% - with `\string\RequirePackage'% - }% + \@ifpackageloaded{fix-tudscrfonts}{}{% + \PackageWarning{tudscrfonts}{% + As you loaded class `\@tempb', you should\MessageBreak% + load `fix-tudscrfonts' before the class\MessageBreak% + with `\string\RequirePackage'% }% + }% \fi% %%% From File: tudscr-base.dtx \RequirePackage{tudscrbase}[\TUD@Version] %%% From File: tudscr-fonts.dtx -\newif\if@tud@x@fontspec@enabled -\AfterPackage*{fontspec}{% - \@ifpackagelater{fontspec}{2017/01/24}{% - \@tud@x@fontspec@enabledtrue% - }{% - \@tud@x@fontspec@enabledfalse% - \PackageWarningNoLine{tudscrfonts}% - {% - 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,% @@ -126,81 +119,176 @@ {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},% - {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}% }{#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 - \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}% - \or% head - \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}% - \or% heavyhead - \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}% + \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}% \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% + \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@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% +} +\AtEndOfPackage% +{% + \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}[]{% + \PackageError{tudscrfonts}% + {Option `cdoldfont' not active}{% + Option `cdoldfont' must be activated while loading the\MessageBreak% + package `tudscrfonts'\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% + \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}% + \ifin@\else% + \edef\tud@res@a{% + \noexpand\PackageWarning{tudscrfonts}% + {% + The key `\CurrentOption' should only be\MessageBreak% + used as class option% + }% + }% + \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% + \fi + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% +} +\AtEndOfPackage% +{% + \RelaxFamilyKey{TUD}{fontsize}% + \DefineFamilyMember{KOMA}% + \DefineFamilyKey{KOMA}{fontsize}{% + \@tud@x@scr@fontsize@settrue% + \PackageWarning{tudscrfonts}% + {% + 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}{% @@ -217,56 +305,150 @@ \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-misc.dtx +\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]{% \PackageWarning{tudscrfonts}% {% - 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\PackageWarning{tudscrfonts}% + {\tud@res@a}% + \noexpand\csletcs{#1}{#2}% + \noexpand\csuse{#2}% + }% + }% + \tud@res@c% + }{}% +} \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}{% \PackageWarningNoLine{tudscrfonts}% @@ -275,23 +457,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}% }{% \PackageInfoNoLine{tudscrfonts}% {% - Switching compatibility level to `\@tempa'% + Switching compatibility level to `v\@tempa'% }% \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% \FamilyKeyStateProcessed% } +\TUD@key{tudscrver}{\FamilyKeyStateProcessed}% \AtEndOfPackage% {% + \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key{tudscrver}[]{% \PackageError{tudscrfonts}% {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - package `tudscrfonts' + package `tudscrfonts'\space% but you have tried to set it up later.% }% \FamilyKeyStateProcessed% @@ -303,7 +487,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} @@ -325,7 +508,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}}% @@ -358,48 +542,16 @@ }% \tud@reserved% } -\TUD@key{fontspec}[true]{% - \PackageWarningNoLine{tudscrfonts}% - {% - The option key `fontspec' is deprecated\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% -} -\AtEndOfPackage% -{% - \TUD@key{fontspec}[]% - {% - \PackageError{tudscrfonts}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - package `tudscrfonts' - 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]{% @@ -412,164 +564,335 @@ \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% } +\newif\if@tud@x@fontspec@requested +\TUD@key{fontspec}[true]{% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \PackageWarningNoLine{tudscrfonts}% + {% + The key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% + \fi% +} +\AtEndOfPackage% +{% + \TUD@key{fontspec}[]% + {% + \PackageError{tudscrfonts}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + package `tudscrfonts'\space% + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@requested% + \RequirePackage{fontspec}[2017/01/24]% + \fi% +} %%% From File: tudscr-misc.dtx -\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\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}{true}% + \TUD@key@preset{ttfont}{lmodern}% +}{% + \TUD@key@preset{cdfont}{true}% + \TUD@key@preset{ttfont}{roboto}% +} \DeclareOption*{\KOMAoptions{\CurrentOption}} +\TUDExecuteOptions{% +} \TUDProcessOptions\relax %%% 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{% + \PackageWarningNoLine{tudscrfonts}% + {% + 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% + \PackageWarningNoLine{tudscrfonts}% + {% + 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{% + \PackageWarningNoLine{tudscrfonts}% + {% + 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}{% + \PackageWarningNoLine{tudscrfonts}% + {% + 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% + \PackageWarning{tudscrfonts}% + {% + 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}% - \PackageWarning{tudscrfonts}{\@tempa}% + \appto\tud@res@a{A fallback layout is used}% + \edef\tud@res@c{% + \etex@unexpanded{\PackageWarning{tudscrfonts}}% + {\tud@res@a} + }% + \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\newcommand*\tud@font@math@missing@wrn[1]{% - \PackageWarning{tudscrfonts}% - {% - `#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 @@ -586,9 +909,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 @@ -606,121 +929,113 @@ }{% \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% - \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}% + \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@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}% + \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}% @@ -730,10 +1045,72 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \ifundef{\tud@font@math@init}{\tud@font@math@set}{}% \tud@font@skip@set% \normalfont\selectfont% } +\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}% @@ -762,147 +1139,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{% + \PackageWarning{tudscrfonts}% + {% + 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]{% \PackageWarning{tudscrfonts}% {% - 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% \PackageWarning{tudscrfonts}% {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% + \PackageWarning{tudscrfonts}% + {The font `#1' is unknown}% + }}}}}}}}}}}}}}% + }% +\fi \newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% @@ -910,22 +1448,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}% @@ -934,302 +1495,891 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\tud@font@greek@loop[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}{}{% - \PackageWarningNoLine{tudscrfonts}% - {% - 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% - }% - }% - }{}% +\newcommand*\tud@ttfont@set{% + \if@tud@ttfont@rb@exist\else\ifnum\tud@ttfont@num=\@ne\relax% + \PackageWarning{tudscrfonts}% + {% + The package `roboto-mono' is missing so the\MessageBreak% + typewriter font of package `lmodern' is used% + }% + \TUDoptions{ttfont=lmodern}% \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}% - }{}% + \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% - \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}% + \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% - \@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}% + \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% - \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}% +\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% - \csletcs{up#1}{#1}% + \aftergroup\@secondoftwo% \fi% - }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% + \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% - \csletcs{var#1}{tud@var#1}% + \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{\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@font@math@set{% - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% +\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@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% + \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% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% + \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% - \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% + }% + \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{% + \PackageWarningNoLine{tudscrfonts}% + {% + 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@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \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% - \if@tud@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% +} +\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}% + }{}% \else% - \tud@font@greek@loop\tud@font@greek@upright% + \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% + \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% + \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% + }{}% + \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% + }{}% + }{}% + \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{% + \PackageInfoNoLine{tudscrfonts}% + {% + You may load package `mdsymbol' in order to\MessageBreak% + get symbols matching the used math font% + }% + }% + }% + \fi% + \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% + \fi% + }% +} +\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% + \else% + \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@cdfont@check% \ifdef{\sectfont}{}{\let\sectfont\relax}% - \tud@font@init% + \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% +%%% From File: tudscr-comp.dtx +\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% } -\newcommand*\tud@sec@fontface[1][]{% - \if@tud@cdfont@din% - \tud@dinbn\tud@raggedright% - \else% - \sectfont#1% - \fi% -} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} -%%% From File: tudscr-comp.dtx -\AtEndOfPackage% -{% - \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% +\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*\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@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@math@set% + \tud@math@set% + \global\@tud@math@setfalse% + \fi% } -\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$% +\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}}}% }% - \reserved@a% -} -\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}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% -}{}{\tud@patch@wrn{@uclcnotmath}} + \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% + }{}{\tud@patch@wrn{@uclcnotmath}}% + }% +\fi +\TUD@deprecated@cs{NoCaseChange}{@firstofone} \endinput %% %% End of file `tudscrfonts.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls index 9b73159947f..e336526db3d 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls @@ -11,14 +11,14 @@ %% tudscr-misc.dtx (with options: `class,manual,inherit,execute') %% tudscr-manual.dtx (with options: `class,manual,body') %% tudscr-fields.dtx (with options: `class,manual,body') -%% tudscr-locale.dtx (with options: `class,manual,body') +%% tudscr-localization.dtx (with options: `class,manual,body') %% tudscr-texindy.dtx (with options: `class,manual') %% %% 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. %% ---------------------------------------------------------------------------- @@ -44,7 +44,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]{% @@ -59,13 +59,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@ProvidesWrapperClass[3]{% \ProvidesClass{#1}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script ^^J#3 (#2)% ]% \newcommand*\TUD@Class@Parent{#2}% @@ -73,22 +73,29 @@ \TUD@Class@Info% } \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@ProvidesWrapperClass{tudscrmanual}{tudscrreprt}{manual 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-manual.dtx @@ -117,7 +124,9 @@ \ifdef{\tudfinalflag}{% \TUDoptions{ToDo=false}% \TUD@key{ToDo}{\FamilyKeyStateProcessed}% - }{}% + }{% + \KOMAoptions{overfullrule}% + }% \ifdef{\tudprintflag}{% \ifnum\tud@cd@num>\z@\relax% \TUDoptions{cd=true}% @@ -149,17 +158,17 @@ \else% \def\@tempa not##1##2##3##4\@nil{% \ifstr{##1##2##3}{not}{% - \if\relax##4\relax\else% + \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }{% - \if\relax##1\relax\else% + \IfArgIsEmpty{##1}{}{% \listeadd\tud@todo@type@pos{##1##2##3##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }% }% \edef\@tempb{not\trim@spaces{#1}}% @@ -168,7 +177,10 @@ } %%% From File: tudscr-misc.dtx \DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}} +\TUDExecuteOptions{% +} \TUDProcessOptions\relax +\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent} \LoadClass{\TUD@Class@Parent} %%% From File: tudscr-manual.dtx \PassOptionsToPackage{log-declarations=false}{xparse} @@ -180,7 +192,7 @@ \reversemarginpar \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} -\@ifpackagelater{geometry}{2010/09/13}{% +\@ifpackagelater{geometry}{2018/04/17}{% \ClassWarning{\TUD@Class@Name}{% Package `geometry' was updated so some patches\MessageBreak% are maybe outdated% @@ -194,6 +206,7 @@ \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% }{}% } +\RequirePackage{shellesc}[2016/06/07] \RequirePackage{pdftexcmds}[2016/05/21] \newcommand*\tud@templist{} \let\tud@templist\relax @@ -251,7 +264,7 @@ } \newcommand*\tud@trace@lbl@created@add[1]{} \newcommand*\tud@trace@lbl@missing@add[1]{} -\NewDocumentCommand\tracinglabels{sO{missing}}{% +\NewDocumentCommand\tracinglabels{!s !O{missing}}{% \newcommand*\tud@trace@lbl@created@list{}% \newcommand*\tud@trace@lbl@missing@list{}% \@tempswafalse% @@ -328,7 +341,7 @@ \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}% \newcommand*\tud@manualname{tudscr}% - \NewDocumentCommand\tudhyperdef{st'm}{% + \NewDocumentCommand\tudhyperdef{s t' m}{% \@tempswafalse% \IfBooleanT{#1}{\@tempswatrue\setlength\@tempdima{3\baselineskip}}% \IfBooleanT{#2}{\@tempswatrue\setlength\@tempdima{15\baselineskip}}% @@ -383,16 +396,16 @@ } \newcommand*\tud@hyperref@a[2][]{#2} \newcommand*\tud@hyperref@b[4]{#4} - \tud@locale@german{\partautorefname}{Teil}% - \tud@locale@german{\chapterautorefname}{Kapitel}% - \tud@locale@german{\sectionautorefname}{Unterkapitel}% - \tud@locale@german{\subsectionautorefname}{Abschnitt}% - \tud@locale@german{\subsubsectionautorefname}{Unterabschnitt}% - \tud@locale@english{\partautorefname}{Part}% - \tud@locale@english{\chapterautorefname}{chapter}% - \tud@locale@english{\sectionautorefname}{section}% - \tud@locale@english{\subsectionautorefname}{subsection}% - \tud@locale@english{\subsubsectionautorefname}{subsubsection}% + \tud@localization@german{\partautorefname}{Teil}% + \tud@localization@german{\chapterautorefname}{Kapitel}% + \tud@localization@german{\sectionautorefname}{Unterkapitel}% + \tud@localization@german{\subsectionautorefname}{Abschnitt}% + \tud@localization@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@localization@english{\partautorefname}{Part}% + \tud@localization@english{\chapterautorefname}{chapter}% + \tud@localization@english{\sectionautorefname}{section}% + \tud@localization@english{\subsectionautorefname}{subsection}% + \tud@localization@english{\subsubsectionautorefname}{subsubsection}% \ProvideDocumentCommand\tudhyperdef{st'm}{\label{#3}}% \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% @@ -544,13 +557,13 @@ \newskip\tud@lastskip \pretocmd{\index}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{index}} \pretocmd{\label}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{label}} -\NewDocumentCommand\printdeclarationlist{sd()}{% +\NewDocumentCommand\printdeclarationlist{!s !d()}{% \ifx\tud@declaration@list\relax\else% \ifhmode% \vskip\medskipamount% \else% \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax% - \ifdim\@tempskipa>\z@% + \ifdim\@tempskipa>\z@\relax% \addpenalty{\@beginparpenalty}% \addvspace{\@tempskipa}% \fi% @@ -570,7 +583,7 @@ \@tud@declarefalse% \ifboolexpr{bool {@tud@preset@list} or bool {@tud@additional@list}}{% \def\@tempa##1{\small\ignorespaces##1\tabularnewline}% - \qquad% + \hskip1.2em% \if@tud@preset@list% \begin{tabular}{@{}l@{}}% \forlistloop\@tempa{\tud@preset@list}% @@ -602,7 +615,7 @@ \printdeclarationlist*% \@tud@obsoletefalse% } -\NewDocumentCommand\printchangedatlist{sO{\z@}}{% +\NewDocumentCommand\printchangedatlist{!s !O{\z@}}{% \print@changedatlist{#1}{#2}% } \newrobustcmd*\bsc{\@backslashchar} @@ -651,17 +664,17 @@ \let\tud@bdl@curr\tud@bdl@dflt \newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} \NewExpandableDocumentCommand\@Application{sm}{#2} -\NewDocumentCommand\Application{smd()d<>d||}{% +\NewDocumentCommand\Application{s m !d() !d<> !d||}{% \Markup@SetFormat{\sbsfont}% \IfValueTF{#4}{% \Process@Markup{\Application{#2}}(#3)<#4>% }{% \Process@Markup{\Application{#2}}(#3)% }% - \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#4|% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#5|% } \NewExpandableDocumentCommand\@Distribution{sm}{#2} -\NewDocumentCommand\Distribution{smod()d||}{% +\NewDocumentCommand\Distribution{s m !o !d() !d||}{% \Markup@SetFormat{\sbnfont}% \IfValueTF{#3}{% \Process@Markup{\Distribution{#2}}[~#3](#4)% @@ -671,19 +684,20 @@ \Process@Index{#1}{\Distribution{#2}}[Distribution](#4)|#5|% } \NewExpandableDocumentCommand\@Engine{sm}{#2} -\NewDocumentCommand\Engine{smd()d||}{% +\NewDocumentCommand\Engine{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\Engine{\hologo{#2}}}(#3)% \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% } +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} \NewExpandableDocumentCommand\@File{sm}{#2} -\NewDocumentCommand\File{smd()d||}{% +\NewDocumentCommand\File{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\File{#2}}(#3)% \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% } \NewExpandableDocumentCommand\@Class{sm}{#2} -\NewDocumentCommand\Class{smd()d''d||}{% +\NewDocumentCommand\Class{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Class{#2}}[Klasse]% \else% @@ -693,7 +707,7 @@ \fi% } \NewExpandableDocumentCommand\@Package{sm}{#2} -\NewDocumentCommand\Package{smd()d<>d''d||}{% +\NewDocumentCommand\Package{s m !d() !d<> !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Package{#2}}[Paket]% \else% @@ -707,7 +721,7 @@ \fi% } \NewExpandableDocumentCommand\@Option{sm}{#2} -\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{% +\NewDocumentCommand\Option{s >{\ProcessorKeyVal}m !d== !d() !d'' !d||}{% \Option@Value{#1}#2=#3=(#4)'#5'|#6|% } \NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{% @@ -721,7 +735,7 @@ \fi% } \NewExpandableDocumentCommand\@Environment{sm}{#2} -\NewDocumentCommand\Environment{smod()d''d||}{% +\NewDocumentCommand\Environment{s m !o !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Environment{#2}}[Umgebung](#4)% \else% @@ -735,27 +749,27 @@ \fi% } \NewExpandableDocumentCommand\@Macro{sm}{#2} -\NewDocumentCommand\Macro{smod()d''d||}{% +\NewDocumentCommand\Macro{s m !o !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Macro{#2}}[Befehl](#4)% \else% - \Markup@SetFormat{\ttfamily\bsc}% + \Markup@SetFormat[\bsc]{\ttfamily}% \Process@Markup{\Macro{#2}}[#3](#4)'#5'% \Process@Index{#1}{\Macro{#2}}(#4)|#6|% \fi% } \NewExpandableDocumentCommand\@Length{sm}{#2} -\NewDocumentCommand\Length{smd()d''d||}{% +\NewDocumentCommand\Length{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Length{#2}}[L\"ange](#3)% \else% - \Markup@SetFormat{\ttfamily\bsc}[L\"ange]% + \Markup@SetFormat[\bsc]{\ttfamily}[L\"ange]% \Process@Markup{\Length{#2}}(#3)'#4'% \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% \fi% } \NewExpandableDocumentCommand\@Counter{sm}{#2} -\NewDocumentCommand\Counter{smd()d''d||}{% +\NewDocumentCommand\Counter{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Counter{#2}}[Z\"ahler](#3)% \else% @@ -765,7 +779,7 @@ \fi% } \NewExpandableDocumentCommand\@Key{smm}{#2!#3} -\NewDocumentCommand\Key{sm>{\ProcessorKeyVal}md==d()d''d||}{% +\NewDocumentCommand\Key{s m >{\ProcessorKeyVal}m !d== !d() !d'' !d||}{% \Key@Value{#1}{#2}#3=#4=(#5)'#6'|#7|% } \NewDocumentCommand\Key@Value{mmmd==d==d()d''d||}{% @@ -779,17 +793,17 @@ \fi% } \NewExpandableDocumentCommand\@Term{sm}{#2} -\NewDocumentCommand\Term{smd()d''d||}{% +\NewDocumentCommand\Term{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Term{#2}}[Bezeichner](#3)% \else% - \Markup@SetFormat{\ttfamily\bsc}[Bezeichner]% + \Markup@SetFormat[\bsc]{\ttfamily}[Bezeichner]% \Process@Markup{\Term{#2}}(#3)'#4'% \Process@Index{#1}{\Term{#2}}(#3)|#5|% \fi% } \NewExpandableDocumentCommand\@PageStyle{sm}{#2} -\NewDocumentCommand\PageStyle{smd()d''d||}{% +\NewDocumentCommand\PageStyle{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\PageStyle{#2}}[Seitenstil](#3)% \else% @@ -799,7 +813,7 @@ \fi% } \NewExpandableDocumentCommand\@Font{sm}{#2} -\NewDocumentCommand\Font{smd()d''d||}{% +\NewDocumentCommand\Font{s m !d() !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Font{#2}}[Schriftelement](#3)% \else% @@ -809,7 +823,7 @@ \fi% } \NewExpandableDocumentCommand\@Color{sm}{#2} -\NewDocumentCommand\Color{smoD(){\Package{tudscrcolor}}d''d||}{% +\NewDocumentCommand\Color{s m !o !D(){\Package{tudscrcolor}} !d'' !d||}{% \if@tud@changedat% \Process@ChangedAt{\Color{#2}}[Farbe](#4)% \else% @@ -817,7 +831,7 @@ \begingroup\ttfamily{#2\IfValueT{#3}{~(#3)}}\endgroup% )% \Process@Markup{\Color{#2}}[#3](#4)'#5'% - \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#5|% + \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#6|% \fi% } \NewDocumentCommand\tud@attr@get{smm}{% @@ -852,7 +866,6 @@ }% \tud@reserved% } -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PName[1]{\PValue{\textsl{<#1>}}} \newrobustcmd*\PValueName[1]{\PName{#1}} @@ -941,6 +954,7 @@ \let\IeC\@firstofone% \def\"##1{##1e}% \def\ss{ss}% + \def\dots{...}% \let\NoCaseChange\@firstofone% } \NewDocumentCommand\tud@lbl@get@curr{% @@ -1018,6 +1032,17 @@ }% \@tempc% } +\newif\if@tud@disposition +\newcommand*\ifdisposition{% + \if@tud@disposition% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +\pretocmd{\tud@sec@format}{% + \@tud@dispositiontrue% +}{}{\tud@patch@wrn{tud@sec@format}} \newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} \NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} \NewDocumentCommand\Process@Markup{md==od()d<>d''}{% @@ -1106,7 +1131,8 @@ \let\@tempb\relax% \IfValueT{#6}{% \def\@tempb{% - \ClassWarning{tudscrmanual}{% + \ClassWarning{tudscrmanual}% + {% You've used the unknown cross-reference\MessageBreak% shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak% as well as 'none' \IfValueT{#5}{or 'url' }are valid% @@ -1128,7 +1154,8 @@ \IfValueT{#6}{% \ifstr{#6}{none}{\let\@tempa\@tempc}{% \def\@tempb{% - \ClassWarning{tudscrmanual}{% + \ClassWarning{tudscrmanual}% + {% Label #1\MessageBreak% is missing, no cross-reference created% }% @@ -1137,7 +1164,7 @@ }% \tud@trace@lbl@missing@add{#1}% }% - \ifdin{\@tempc}{\@tempa\@tempb}% + \ifdisposition{\@tempc}{\@tempa\@tempb}% \endgroup% \Markup@ClearFormat% } @@ -1162,61 +1189,63 @@ } \newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} \newcommand*\Markup@Declare{} -\newcommand*\Markup@@Declare[1]{% - \begingroup\Markup@Format{#1}\endgroup\Markup@Suffix% -} +\newcommand*\Markup@@Declare[1]{\Markup@Format{#1}\Markup@Suffix} \newcommand*\Markup@Format{} +\undef\Markup@Format \newcommand*\Markup@Suffix{} -\NewDocumentCommand\Markup@SetFormat{mod()}{% - \def\Markup@Format{\ifdin{\MakeTextUppercase}{#1}}% - \IfValueT{#2}{\def\Markup@Suffix{\suffix{#2}}}% - \IfValueT{#3}{\renewcommand*\Markup@Declare[1]{#3\Markup@Suffix}}% -} -\robustify\NoCaseChange -\NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% +\NewDocumentCommand\Markup@SetFormat{omod()}{% + \def\Markup@Format##1{% + \def\tud@res@a{#2}% + \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% + \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% }% + \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% + \IfValueT{#4}{\renewcommand*\Markup@Declare[1]{#4\Markup@Suffix}}% } -\apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% - \DeclareExpandableDocumentCommand\Key{smm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}{##3}}% - }% - \tud@nonchangecase\Term% - \tud@nonchangecase\PageStyle% - \tud@nonchangecase\Font% - \tud@nonchangecase\Color% -}{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} \newcommand*\Markup@ClearFormat{% - \let\Markup@Format\relax% + \undef\Markup@Format% \let\Markup@Declare\Markup@@Declare% \let\Markup@Suffix\relax% } \Markup@ClearFormat \newcommand*\Markup@CheckFormat{% - \ifx\Markup@Format\relax% - \ClassError{tudscrmanual}{\string\Markup@SetFormat\space unused}{% - It seems you have forgotten to use \string\Markup@SetFormat.% + \ifundef\Markup@Format{% + \ClassError{tudscrmanual}% + {\string\Markup@SetFormat\space unused}% + {It seems you have forgotten to use \string\Markup@SetFormat.}% + }{}% +} +\ifundef{\tud@x@textcase@uclcnotmath}{}{% + \NewDocumentCommand\tud@nonchangecase{m}{% + \DeclareExpandableDocumentCommand#1{sm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}}% }% - \fi% + } + \apptocmd{\tud@x@textcase@uclcnotmath}{% + \tud@nonchangecase\Application% + \tud@nonchangecase\Distribution% + \tud@nonchangecase\Engine% + \tud@nonchangecase\File% + \tud@nonchangecase\Class% + \tud@nonchangecase\Package% + \tud@nonchangecase\Option% + \tud@nonchangecase\Environment% + \tud@nonchangecase\Macro% + \tud@nonchangecase\Length% + \tud@nonchangecase\Counter% + \DeclareExpandableDocumentCommand\Key{smm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}{##3}}% + }% + \tud@nonchangecase\Term% + \tud@nonchangecase\PageStyle% + \tud@nonchangecase\Font% + \tud@nonchangecase\Color% + }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} } \PassOptionsToPackage{xindy,splitindex}{imakeidx} -\let\tud@shellescape\shellescape \RequirePackage{imakeidx}[2013/07/11] -\let\shellescape\tud@shellescape \indexsetup{% level=\addsec,% noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% @@ -1277,7 +1306,7 @@ \fi% }{}{\tud@patch@wrn{theindex}}% \fi% -\NewDocumentCommand\makexdyindex{somo}{% +\NewDocumentCommand\makexdyindex{s o m !o}{% \let\@tempb\@empty% \IfBooleanT{#1}{% \def\@tempc{\jobname-#4-declare.idx}% @@ -1417,7 +1446,8 @@ } \newrobustcmd*\cleversee{\tud@cleversee{\seename}} \newrobustcmd*\cleverseealso{% - \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}% + \ClassWarning{tudscrmanual}% + {You should use `|see' instead of `|seealso'}% \tud@cleversee{\alsoname}% } \newcommand*\tud@cleversee{} @@ -1431,7 +1461,7 @@ \endgroup% }% } -\NewDocumentCommand\seeref{sm}{% +\NewDocumentCommand\seeref{s m}{% \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% } \newcommand*\seeidx[2]{\pageref{idx:#1}} @@ -1441,7 +1471,8 @@ }{}{% \IfBooleanTF{#1}{% \IfValueT{#6}{% - \ClassWarning{tudscrmanual}{% + \ClassWarning{tudscrmanual}% + {% You've used the starred version. No index entry\MessageBreak% for #2 is created. The\MessageBreak% optional argument |#6| will be ignored% @@ -1486,7 +1517,7 @@ \index[\tud@lbl@tmp]{\tud@idx@val\tud@idx@key{}@\tud@idx@fmt}% \fi% } -\NewDocumentCommand\CrossIndex{smom}{% +\NewDocumentCommand\CrossIndex{s m o m}{% \def\@tempa##1##2##3{% \index{% \IfBooleanTF{#1}{##3@##3}{##3!"|@}% @@ -1496,7 +1527,7 @@ }% \forcsvlist{\@tempa{#3}{#4}}{#2}% } -\NewDocumentCommand\SeeRef{smm}{% +\NewDocumentCommand\SeeRef{s m m}{% \sbox\z@{% \let\tud@idx@fmt\relax% #3% @@ -1582,14 +1613,21 @@ \tud@idx@get*\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)% } \newlength\changedatskip -\NewDocumentCommand\ChangedAt{somO{\changedatskip}}{% +\NewDocumentCommand\ChangedAt{s o d() m !O{\changedatskip}}{% \IfValueTF{#2}{% - \Changed@At@CreateList[#2]{#3}% + \Changed@At@CreateList[#2](#3){#4}% }{% - \Changed@At@CreateList{#3}% + \Changed@At@CreateList(#3){#4}% + }% + \print@changedatlist{#1}{#5}% +} +\NewExpandableDocumentCommand\@ChangedAt{s o d() m}{} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \let\ChangedAt\@ChangedAt% }% - \print@changedatlist{#1}{#4}% } +\BeforeStartingTOC{\let\ChangedAt\@ChangedAt} \newcommand*\tud@changedat@list{} \let\tud@changedat@list\relax \DeclareListParser*{\forssvlist}{;} @@ -1718,9 +1756,11 @@ \expandafter\def\csname\string\item\endcsname##1~% }{% \endgroup% - \addsec[##1]{\TUDScript \NoCaseChange{##1}}% + \let\@tempb\@firstofone% + \if@tud@cdoldfont@active\def\@tempb##1{\NoCaseChange{##1}}\fi% + \addsec[##1]{\TUDScript \@tempb{##1}}% \tudhyperdef*{idx:changelog:##1}% - \def\@tempa{\indexname: \TUDScript \NoCaseChange{##1}}% + \def\@tempa{\indexname: \TUDScript \@tempb{##1}}% \@mkboth{\@tempa}{\@tempa}% }% }{}{\tud@patch@wrn{theindex}}% @@ -1754,7 +1794,7 @@ \fi% } \RequirePackage{enumitem}[2011/09/28] -\setlist{noitemsep} +\setlist{before*={\endgraf\tud@RaggedRight},partopsep=0pt,noitemsep} \newcommand*\stditem{} \newcommand*\tud@before@item[1]{% \ifdefvoid{\stditem}{% @@ -1813,8 +1853,12 @@ \stditem% }% } -\NewDocumentCommand\itemtrue{sood()}{\item@bool{#1}{true/on/yes}[#2][#3](#4)} -\NewDocumentCommand\itemfalse{sood()}{\item@bool{#1}{false/off/no}[#2][#3](#4)} +\NewDocumentCommand\itemtrue{!s !o !o !d()}{% + \item@bool{#1}{true/on/yes}[#2][#3](#4)% +} +\NewDocumentCommand\itemfalse{!s !o !o !d()}{% + \item@bool{#1}{false/off/no}[#2][#3](#4)% +} \NewDocumentCommand\item@bool{mmr[]r[]r()}{% \toks@{\item}% \IfBooleanT{#1}{\addto@hook\toks@{*}}% @@ -1869,7 +1913,7 @@ \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% } \RequirePackage{tabularx}[1999/01/07] -\NewDocumentCommand\TermTable{smg}{% +\NewDocumentCommand\TermTable{s m !g}{% \let\tud@templist\relax% \forcsvlist{\listadd\tud@templist}{#2}% \ifhmode\par\fi% @@ -1893,7 +1937,7 @@ \bottomrule% } \newcommand*\Term@@Table[1]{% - \Term{#1} & % + \Term{#1}'none' & % \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % \selectlanguage{english}\vspace*{\@tempdimc}% \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% @@ -1903,8 +1947,8 @@ \addvspace{-\topsep}% } \newenvironment{Example*}{% - \labeling{{\usekomafont{disposition}Beispiel:\nobreakspace}}% - \item[{\usekomafont{disposition}Beispiel:\nobreakspace}]% + \labeling{{\usekomafont{disposition}{Beispiel:\nobreakspace}}}% + \item[{\usekomafont{disposition}{Beispiel:\nobreakspace}}]% }{% \endlabeling% } @@ -1934,10 +1978,14 @@ activated shell escape option% }% } +\newcommand*\tud@latex@ext{} +\ifpdftex% + {\def\tud@latex@ext{pdflatex\space}}% + {\def\tud@latex@ext{lualatex\space}}% \newrobustcmd*\hypertut[2]{% \hyperref{tutorials/#1.pdf}{#1}{tutorials:#1}{\File*{#1.pdf}#2}% } -\NewDocumentCommand\Tutorial{smd||}{% +\NewDocumentCommand\Tutorial{s m !d||}{% \ifnum\pdf@shellescape=\@ne\relax% \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{% \let\@tempa\@empty% @@ -1949,20 +1997,20 @@ \immediate\write\tud@write@a{cd tutorials^^J##1}% \immediate\closeout\tud@write@a% \ifwindows% - \immediate\write18{rename tutorials.sh tutorials.bat}% - \immediate\write18{tutorials.bat}% - \immediate\write18{del tutorials.bat}% + \ShellEscape{rename tutorials.sh tutorials.bat}% + \ShellEscape{tutorials.bat}% + \ShellEscape{del tutorials.bat}% \else% - \immediate\write18{bash tutorials.sh}% - \immediate\write18{rm tutorials.sh}% + \ShellEscape{bash tutorials.sh}% + \ShellEscape{rm tutorials.sh}% \fi% }% - \@tempb{pdflatex -shell-escape "\@tempa"}% + \@tempb{\tud@latex@ext -shell-escape "\@tempa"}% \IfFileExists{tutorials/#2.bcf}{\@tempb{biber #2}}{}% \@tempb{% - pdflatex "\@tempa"^^J% - pdflatex -shell-escape "\@tempa"^^J% - pdflatex -shell-escape "\@tempa"% + \tud@latex@ext "\@tempa"^^J% + \tud@latex@ext -shell-escape "\@tempa"^^J% + \tud@latex@ext -shell-escape "\@tempa"% }% }% \fi% @@ -1980,15 +2028,15 @@ \lstinputlisting[style=tudscr]{examples/#1}% \ifnum\pdf@shellescape=\@ne\relax% \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% - \immediate\write18{% - pdflatex -output-directory examples examples/#1.tex^^J% - pdflatex -output-directory examples examples/#1.tex% + \ShellEscape{% + \tud@latex@ext -output-directory examples examples/#1.tex^^J% + \tud@latex@ext -output-directory examples examples/#1.tex% }% }% \filemodCmp{examples/#1_print.pdf}{examples/#1_print.tex}{}{% - \immediate\write18{% - pdflatex -output-directory examples examples/#1_print.tex^^J% - pdflatex -output-directory examples examples/#1_print.tex% + \ShellEscape{% + \tud@latex@ext -output-directory examples examples/#1_print.tex^^J% + \tud@latex@ext -output-directory examples examples/#1_print.tex% }% }% \fi% @@ -2015,60 +2063,94 @@ \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% } \RequirePackage{todonotes}[2012/07/25] +\AtEndPreamble{% + \ifdim\marginparwidth<2cm\relax% + \setlength\marginparwidth{2cm}% + \fi% +} \AfterPackage*{todonotes}{% - \newcommand*\tud@todo@type@color[2]{% - \define@boolkey{todonotes}{#1}[true]{% - \ifdef{\tudprintflag}{}{% - \ifbool{KV@todonotes@#1}{\setkeys{todonotes}{color=#2}}{}% - }% - }% - }% - \tud@todo@type@color{doc}{HKS41!30}% - \tud@todo@type@color{rls}{HKS44!30}% - \tud@todo@type@color{imp}{HKS57!50}% - \tud@todo@type@color{urg}{HKS07!50}% - \tud@todo@type@color{nxt}{HKS92!30}% - \undef\tud@todo@type@color% - \newcommand*\tud@todo@marginnote{}% - \NewDocumentCommand\ToDo{somo}{% + \newcommand*\tud@todo@type@use{}% + \NewDocumentCommand\ToDo{s o m !o}{% \ifbool{@tud@todo}{% \global\let\tud@currentHref\@currentHref% \begingroup% - \let\@tempa\@empty% - \def\tud@todo@marginnote{ToDo}% - \IfValueT{#4}{% - \def\tud@todo@marginnote{#4}% - \tud@v@get\@tempc{#4}% - \ifcsdef{tud@v@\@tempc}{% - \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}% - \edef\tud@todo@marginnote{v\@tempc}% + \let\tud@todo@type@use\@empty% + \IfValueTF{#2}{% + \IfArgIsEmpty{#2}{}{% + \let\tud@todo@type@use\relax% + \ifx\tud@todo@type@pos\relax% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@neg}{}{% + \listadd\tud@todo@type@use{##1}% + }% + }% + }% + \else% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@pos}{% + \listadd\tud@todo@type@use{##1}% + }{}% + }% + }% + \fi% + \forcsvlist\tud@res@a{#2}% + }% + }{}% + \ifx\tud@todo@type@use\relax\else% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + \let\tud@res@c\@empty% + \ifinlist{rls}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS44!30,}% + \def\tud@res@b{color=HKS44!30,}% + \edef\tud@res@c{v\TUDScriptVersionNumber}% }{% - \def\@tempa##1.##2##3##4\@nil{##1##2##3}% - \edef\@tempb{\expandafter\@tempa\@tempc.000\@nil}% - \ifxnumber{\@tempb}{% - \def\@tempa{nxt}% - \edef\tud@todo@marginnote{v\@tempc}% - }{\let\@tempa\@empty}% + \ifinlist{imp}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS57!50,}% + }{% + \ifinlist{doc}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS41!30,}% + }{}% + }% + \def\tud@res@c{ToDo}% + \IfValueT{#4}{% + \begingroup% + \tud@v@get\tud@res@a{#4}% + \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% + \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% + \ifnumber{\tud@res@b}{% + \edef\tud@res@c{% + \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% + }% + \ifnum\tud@res@b>\tud@res@c\relax% + \def\tud@res@b{color=HKS92!30,}% + \else% + \ifnum\tud@res@b<\tud@res@c\relax% + \def\tud@res@b{color=HKS07!50,}% + \else% + \def\tud@res@b{color=HKS41!30,}% + \fi% + \fi% + \def\tud@res@c{v\tud@res@a}% + }{% + \let\tud@res@b\@empty% + \def\tud@res@c{#4}% + }% + \edef\tud@res@c{% + \endgroup% + \def\noexpand\tud@res@b{\tud@res@b}% + \def\noexpand\tud@res@c{\tud@res@c}% + }% + \tud@res@c% + }% }% - }% - \IfValueT{#2}{\preto\@tempa{#2,}}% - \@tempswafalse% - \ifx\tud@todo@type@pos\relax\@tempswatrue\fi% - \toks@{\forcsvlist\@tempb}% - \eaddto@hook\toks@{\expandafter{\@tempa}}% - \let\@tempa\@empty% - \def\@tempb##1{% - \eappto\@tempa{##1,}% - \ifinlist{##1}{\tud@todo@type@pos}{\@tempswatrue}{}% - \ifinlist{##1}{\tud@todo@type@neg}{\@tempswafalse}{}% - }% - \the\toks@% - \if@tempswa% \ifhmode\par\fi% \let\par\relax% \vskip\medskipamount% \noindent% - \toks@\expandafter{\@tempa inline}% + \toks@\expandafter{\tud@res@b inline}% \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}% \sbox\z@{% \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}% @@ -2076,11 +2158,30 @@ \renewcommand*\marginpar[2][]{% \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% }% - \toks@\expandafter{\@tempa noline,nolist}% - \settowidth\marginparwidth{\tud@todo@marginnote}% + \toks@\expandafter{\tud@res@a noline,nolist}% + \settowidth\marginparwidth{\tud@res@c}% \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}% + \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% \aftergroup\par\aftergroup\noindent% + \listremove{\tud@todo@type@use}{rls}% + \listremove{\tud@todo@type@use}{imp}% + \listremove{\tud@todo@type@use}{doc}% + \ifx\tud@todo@type@use\@empty\else% + \begingroup% + \let\tud@res@c\@empty% + \renewcommand*{\do}[1]{% + \appto\tud@res@c{,##1}% + }% + \dolistloop{\tud@todo@type@use}% + \edef\tud@res@c{% + \endgroup% + \edef\noexpand\tud@res@c{\expandafter\@gobble\tud@res@c}% + }% + \tud@res@c% + \ClassWarning{tudscrmanual}{% + Unknown key(s) `\string\ToDo[\tud@res@c]'% + }% + \fi% \fi% \endgroup% \global\let\@currentHref\tud@currentHref% @@ -2090,11 +2191,10 @@ \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% } \TUD@UnwindPackage{todonotes}{% - \NewDocumentCommand\ToDo{somo}{}% + \NewDocumentCommand\ToDo{s o m !o}{}% \newcommand*\ListOfToDo{}% } -\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} -\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\RequirePackage{csquotes}[2011/10/22] \RequirePackage{textcomp}[2005/09/27] \RequirePackage{setspace}[2011/12/19] \setstretch{1.1} @@ -2104,11 +2204,7 @@ \RequirePackage{hologo}[2012/04/26] \RequirePackage{ragged2e}[2009/05/21] \@removefromreset{footnote}{chapter} -\ifcsdef{scr@v@3.23}{% - \renewcommand*\raggedfootnote{\tud@RaggedRight}% -}{% - \pretocmd{\@makefntext}{\tud@RaggedRight}{}{\tud@patch@wrn{@makefntext}}% -} +\renewcommand*\raggedfootnote{\tud@RaggedRight}% \RequirePackage{booktabs}[2005/04/14] \RequirePackage{caption}[2015/09/17] \RequirePackage{floatrow}[2008/08/02] @@ -2156,19 +2252,19 @@ } \newcommand*\Attention[2][\z@]{% \marginnote{% - \setlength\fboxsep{0.25em} + \setlength\fboxsep{0.25em}% \fbox{Achtung!}% }[#1]% \emph{\trim@spaces{#2}}% } -\NewDocumentCommand\Forum{st'}{% +\NewDocumentCommand\Forum{!s !t'}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \IfBooleanT{#2}{\toks@{\url}}% \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% \the\toks@\xspace% } -\NewDocumentCommand\CTAN{sog}{% +\NewDocumentCommand\CTAN{!s !o !g}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% \addto@hook\toks@{% @@ -2176,10 +2272,13 @@ }% \the\toks@\xspace% } -\NewDocumentCommand\GitHubRepo{s}{% +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \addto@hook\toks@{{https://github.com/tud-cd/tudscr/releases}}% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + \IfBooleanT{#2}{\toks@{\url}}% + \addto@hook\toks@{{https://github.com/tud-cd/tudscr/#3}}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + }% \the\toks@\xspace% } \newcommand*\Download[1]{% @@ -2189,7 +2288,7 @@ F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese Option nicht verf\"ugbar.% } -\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{% +\NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{% {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% @@ -2216,8 +2315,16 @@ \def\KOMAScript{KOMA-Script}% }% } -\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} -\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\DeclareTextFontCommand\tud@cdfont@texteb{% + \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% +} +\newrobustcmd*\OpenSans{% + \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% +} +\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} +\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} +\renewcommand*\@pnumwidth{2.1em}% +\renewcommand*\@tocrmarg{3.1em}% \newcommand*\textsbn{} \newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} \DeclareTextFontCommand\textsbn{\sbnfont} @@ -2231,9 +2338,9 @@ \newcommand*\grade[1]{\gdef\@grade{#1}} \newcommand*\@headline{} \newcommand*\@issuedate{} -\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}} +\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} \newcommand*\@duedate{} -\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}} +\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} \newcommand*\@contactperson{} \newcommand*\contactperson[1]{\gdef\@contactperson{#1}} \newcommand*\@office{} @@ -2242,79 +2349,62 @@ \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% - }% - }% -} -%%% From File: tudscr-locale.dtx -\tud@locale@define{\authorname} -\tud@locale@define{\contactname} -\tud@locale@define{\contactpersonname} -\tud@locale@define{\taskname} -\tud@locale@define{\tasktext} -\tud@locale@define{\namesname} -\tud@locale@define{\issuedatetext} -\tud@locale@define{\duedatetext} -\tud@locale@define{\chairmanname} -\tud@locale@define{\focusname} -\tud@locale@define{\objectivesname} -\tud@locale@define{\evaluationname} -\tud@locale@define{\evaluationtext} -\tud@locale@define{\contentname} -\tud@locale@define{\assessmentname} -\tud@locale@define{\gradetext} -\tud@locale@define{\noticename} -\tud@locale@german{\authorname}{Autor}% -\tud@locale@german{\contactname}{Kontakt}% -\tud@locale@german{\contactpersonname}{Ansprechpartner}% -\tud@locale@german{\taskname}{Aufgabenstellung}% -\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% -\tud@locale@german{\namesname}{Name}% -\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}% -\tud@locale@german{\duedatetext}{Einzureichen am}% -\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% -\tud@locale@german{\focusname}{Schwerpunkte der Arbeit}% -\tud@locale@german{\objectivesname}{Ziele der Arbeit}% -\tud@locale@german{\evaluationname}{Gutachten}% -\tud@locale@german{\evaluationtext}{f\"ur die}% -\tud@locale@german{\contentname}{Inhalt}% -\tud@locale@german{\assessmentname}{Bewertung}% -\tud@locale@german{\gradetext}{% +%%% From File: tudscr-localization.dtx +\tud@localization@define{\authorname} +\tud@localization@define{\contactname} +\tud@localization@define{\contactpersonname} +\tud@localization@define{\taskname} +\tud@localization@define{\tasktext} +\tud@localization@define{\namesname} +\tud@localization@define{\issuedatetext} +\tud@localization@define{\duedatetext} +\tud@localization@define{\chairmanname} +\tud@localization@define{\focusname} +\tud@localization@define{\objectivesname} +\tud@localization@define{\evaluationname} +\tud@localization@define{\evaluationtext} +\tud@localization@define{\contentname} +\tud@localization@define{\assessmentname} +\tud@localization@define{\gradetext} +\tud@localization@define{\noticename} +\tud@localization@german{\authorname}{Autor}% +\tud@localization@german{\contactname}{Kontakt}% +\tud@localization@german{\contactpersonname}{Ansprechpartner}% +\tud@localization@german{\taskname}{Aufgabenstellung}% +\tud@localization@german{\tasktext}{f\"ur die Anfertigung einer}% +\tud@localization@german{\namesname}{Name}% +\tud@localization@german{\issuedatetext}{Ausgeh\"andigt am}% +\tud@localization@german{\duedatetext}{Einzureichen am}% +\tud@localization@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% +\tud@localization@german{\focusname}{Schwerpunkte der Arbeit}% +\tud@localization@german{\objectivesname}{Ziele der Arbeit}% +\tud@localization@german{\evaluationname}{Gutachten}% +\tud@localization@german{\evaluationtext}{f\"ur die}% +\tud@localization@german{\contentname}{Inhalt}% +\tud@localization@german{\assessmentname}{Bewertung}% +\tud@localization@german{\gradetext}{% Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% }% -\tud@locale@german{\noticename}{Aushang}% -\tud@locale@english{\authorname}{Author}% -\tud@locale@english{\contactname}{Contact}% -\tud@locale@english{\contactpersonname}{Contact}% -\tud@locale@english{\taskname}{Task}% -\tud@locale@english{\tasktext}{for the preparation of a}% -\tud@locale@english{\namesname}{Name}% -\tud@locale@english{\issuedatetext}{Issued on}% -\tud@locale@english{\duedatetext}{Due date for submission}% -\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}% -\tud@locale@english{\focusname}{Focus of work}% -\tud@locale@english{\objectivesname}{Objectives of work}% -\tud@locale@english{\evaluationname}{Evaluation}% -\tud@locale@english{\evaluationtext}{for the}% -\tud@locale@english{\contentname}{Content}% -\tud@locale@english{\assessmentname}{Assessment}% -\tud@locale@english{\gradetext}{% +\tud@localization@german{\noticename}{Aushang}% +\tud@localization@english{\authorname}{Author}% +\tud@localization@english{\contactname}{Contact}% +\tud@localization@english{\contactpersonname}{Counterpart}% +\tud@localization@english{\taskname}{Task}% +\tud@localization@english{\tasktext}{for the preparation of a}% +\tud@localization@english{\namesname}{Name}% +\tud@localization@english{\issuedatetext}{Issued on}% +\tud@localization@english{\duedatetext}{Due date for submission}% +\tud@localization@english{\chairmanname}{Chairman of the Audit Committee}% +\tud@localization@english{\focusname}{Focus of work}% +\tud@localization@english{\objectivesname}{Objectives of work}% +\tud@localization@english{\evaluationname}{Evaluation}% +\tud@localization@english{\evaluationtext}{for the}% +\tud@localization@english{\contentname}{Content}% +\tud@localization@english{\assessmentname}{Assessment}% +\tud@localization@english{\gradetext}{% The thesis is evaluated with a grade of \textbf{\@grade}.% }% -\tud@locale@english{\noticename}{Notice}% +\tud@localization@english{\noticename}{Notice}% %%% From File: tudscr-texindy.dtx \begingroup \newcommand*\tud@write@xdy{} 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]{% - \@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% - }% - }% - }{}% +\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% - \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}% - }{}% + \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% - \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}% + \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% - \@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}% +\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% - \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}% +\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% - \csletcs{up#1}{#1}% + \aftergroup\@secondoftwo% \fi% - }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% + \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% - \csletcs{var#1}{tud@var#1}% + \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{\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@font@math@set{% - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% +\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@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% + \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% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% + \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% - \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% + }% + \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@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \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% - \if@tud@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% +} +\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}% + }{}% \else% - \tud@font@greek@loop\tud@font@greek@upright% + \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% + \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% + \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% + }{}% + \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% + }{}% + }{}% + \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% + \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% + \fi% + }% +} +\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% + \else% + \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@area@def{paper}{##1:##2}% + \tud@x@geometry@area@def{paper}{##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{paperwidth}{% + \tud@x@geometry@area@def{paper}{#1:\paperheight}% + }% + \TUD@parameter@def{paperheight}{% + \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% - \TUD@parameter@def{layoutheight}{% - \tud@area@def{layout}{\the\tud@len@layoutwidth:#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@area@def{layout}{##1:##1}% + \tud@x@geometry@area@def{layout}{##1:##1}% + }{% + \tud@x@geometry@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \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}{% + \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@title@uppercase[1]{% - \let\@tempa\relax% +\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@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'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls index 54a9535257a..e06c13565b4 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls @@ -12,13 +12,13 @@ %% tudscr-layout.dtx (with options: `class,report,option') %% tudscr-title.dtx (with options: `class,report,option') %% tudscr-frontmatter.dtx (with options: `class,report,option') -%% tudscr-comp.dtx (with options: `class,report,option') %% tudscr-misc.dtx (with options: `class,report,option') +%% tudscr-comp.dtx (with options: `class,report,option') %% tudscr-misc.dtx (with options: `class,report,execute') %% tudscr-base.dtx (with options: `class,report,body') %% tudscr-fonts.dtx (with options: `class,report,body') %% tudscr-fields.dtx (with options: `class,report,body') -%% tudscr-locale.dtx (with options: `class,report,body') +%% tudscr-localization.dtx (with options: `class,report,body') %% tudscr-area.dtx (with options: `class,report,body') %% tudscr-pagestyle.dtx (with options: `class,report,body') %% tudscr-layout.dtx (with options: `class,report,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{tudscrreprt}{scrreprt}{document 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,251 +771,141 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\cs@lock{tud@layout@cover@num}{0} -\cs@lock{tud@layout@title@num}{0} -\cs@lock{tud@layout@part@num}{0} -\cs@lock{tud@layout@chapter@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@cover@num}{0}% - \cs@std@lock{tud@layout@title@num}{0}% - \cs@std@lock{tud@layout@part@num}{0}% - \cs@std@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{0}% - \or% true - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{1}% - \cs@std@lock{tud@layout@part@num}{1}% - \cs@std@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{1}% - \or% litecolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{2}% - \cs@std@lock{tud@layout@part@num}{2}% - \cs@std@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% barcolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{3}% - \cs@std@lock{tud@layout@part@num}{3}% - \cs@std@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% bicolor - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{4}% - \cs@std@lock{tud@layout@part@num}{4}% - \cs@std@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% color - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{5}% - \cs@std@lock{tud@layout@part@num}{5}% - \cs@std@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \cs@std@lock{tud@layout@section@num}{2}% - \or% full - \cs@std@lock{tud@layout@cover@num}{1}% - \cs@std@lock{tud@layout@title@num}{6}% - \cs@std@lock{tud@layout@part@num}{6}% - \cs@std@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \cs@std@lock{tud@layout@section@num}{2}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@key@preset{cdcover}{false}% + \else% !false + \TUD@key@preset{cdcover}{true}% + \fi% + \TUD@key@preset{cdtitle}{#1}% + \TUD@key@preset{cdpart}{#1}% + \TUD@key@preset{cdchapter}{#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@cover@num{0} \TUD@key{cdcover}[true]{% - \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdcover}{tud@cd@cover@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover@num}{0}% - \or% true - \cs@set@lock{tud@layout@cover@num}{1}% - \or% litecolor - \cs@set@lock{tud@layout@cover@num}{2}% - \or% barcolor - \cs@set@lock{tud@layout@cover@num}{3}% - \or% bicolor - \cs@set@lock{tud@layout@cover@num}{4}% - \or% color - \cs@set@lock{tud@layout@cover@num}{5}% - \or% full - \cs@set@lock{tud@layout@cover@num}{6}% - \fi% - \TUD@SpecialOptionAtDocument{tud@layout@process}% + \TUD@SpecialOptionAtDocument{tud@cd@process}% \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@chapter@num{0} \TUD@key{cdchapter}[true]{% - \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cdchapter}{tud@cd@chapter@num}{\tud@cd@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@chapter@num}{0}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% true - \cs@set@lock{tud@layout@chapter@num}{1}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% litecolor - \cs@set@lock{tud@layout@chapter@num}{2}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% barcolor - \cs@set@lock{tud@layout@chapter@num}{3}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% bicolor - \cs@set@lock{tud@layout@chapter@num}{4}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% - \or% color - \cs@set@lock{tud@layout@chapter@num}{5}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% - \or% full - \cs@set@lock{tud@layout@chapter@num}{6}% - \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \ifnum\tud@cd@chapter@num>4\relax% color/full + \TUD@key@preset{chapterpage}{true}% + \else% + \TUD@key@preset{chapterpage}{false}% \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% } \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \TUD@SpecialOptionAtDocument{tud@layout@process}% - \fi% } \newif\if@tud@chapterpage -\TUD@key@lock{chapterpage}[true]{% - \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}% +\TUD@key{chapterpage}[true]{% + \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } +\newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} \TUD@key{cleardoublespecialpage}[true]{% - \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% + \TUD@set@numkey{cleardoublespecialpage}{@tempa}{% + \TUD@bool@numkey,% + {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {color}{3},{colour}{3},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},% + {current}{4}% + }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% - \else% + \ifcase\@tempa\relax% false \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \or% true + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% + \or% nocolor + \@tud@clearcolorfalse% + \or% color + \@tud@clearcolortrue% + \or% current + \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \fi% \else% - \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{% - \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{% - \ifstr{#1}{current}{% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% - \FamilyKeyStateProcessed% - }{% - \AfterPreamble{% - \ifcsundef{ps@#1}{% - \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% - You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined.% - }% - }{% - \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% - }% - }% - \FamilyKeyStateProcessed% - }}}% - \fi% -} -\newcommand*\tud@cleardoublespecialpage[2][]{% - \begingroup% - #2% - \ifboolexpr{bool {@twoside} and bool {@openright}}{% - \if@tud@clearcolor% - \def\@tempa{% - #1% - \tud@cleardoublepage% - \endgroup% + \AfterPreamble{% + \ifcsundef{ps@#1}{% + \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% + You tried to use `#1' as a pagestyle for option\MessageBreak% + `cleardoublespecialpage', but it was never defined.% }% - \else% - \def\@tempa{% - \endgroup% - #1% - \tud@cleardoublepage% - }% - \fi% - }{% - \if@tud@clearcolor\tud@clearcolor@wrn\fi% - \def\@tempa{% - \endgroup% - #1% + }{% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }% }% - \@tempa% - \@afterindentfalse\@afterheading% + \FamilyKeyStateProcessed% + \fi% } -\newif\if@tud@clearcolor -\TUD@ifkey{clearcolor}{@tud@clearcolor} -\TUD@ifkey{clearcolour}{@tud@clearcolor} \newcommand*\tud@pagecolor{}% +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +\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}% @@ -877,18 +919,14 @@ \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% \FamilyKeyStateProcessed% } -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% -} -\newcommand*\tud@dim@headingsvskip{0pt} -\TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% -} %%% From File: tudscr-title.dtx \newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +\TUD@key{subjectthesis}[true]{% + \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% +} +\newif\if@tud@titlesignature +\TUD@key{titlesignature}[true]{% + \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -909,7 +947,7 @@ {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level@num{0} -\cs@lock{tud@abstract@toc@num}{0} +\tud@locked@newnum{tud@abstract@toc@num}{0} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -921,16 +959,16 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@abstract@level@num{0}% - \cs@std@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@preset{tud@abstract@toc@num}{0}% \or% true \renewcommand*\tud@abstract@level@num{1}% - \cs@std@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@preset{tud@abstract@toc@num}{0}% \or% section \renewcommand*\tud@abstract@level@num{2}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% chapter \renewcommand*\tud@abstract@level@num{3}% - \cs@std@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@preset{tud@abstract@toc@num}{1}% \or% single \@tud@abstract@multifalse% \or% multiple @@ -944,26 +982,26 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc@num}{0}% + \tud@locked@num@set{tud@abstract@toc@num}{0}% \or% totoc \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc@num}{3}% + \tud@locked@num@set{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@abstract@toc@num<\thr@@\relax% - \cs@set@lock{tud@abstract@toc@num}{2}% + \tud@locked@num@set{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc@num}{4}% + \tud@locked@num@set{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@abstract@toc@num=\z@\relax% - \cs@set@lock{tud@abstract@toc@num}{1}% + \tud@locked@num@set{tud@abstract@toc@num}{1}% \fi% \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \noexpand\tud@locked@num@set{tud@abstract@toc@num}{% \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% @@ -976,7 +1014,7 @@ \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{1} -\cs@lock{tud@declaration@toc@num}{0} +\tud@locked@newnum{tud@declaration@toc@num}{0} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -988,16 +1026,16 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \renewcommand*\tud@declaration@level@num{0}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% true \renewcommand*\tud@declaration@level@num{1}% - \cs@std@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@preset{tud@declaration@toc@num}{0}% \or% section \renewcommand*\tud@declaration@level@num{2}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% chapter \renewcommand*\tud@declaration@level@num{3}% - \cs@std@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@preset{tud@declaration@toc@num}{1}% \or% single \@tud@declaration@multifalse% \or% multiple @@ -1011,26 +1049,26 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc@num}{0}% + \tud@locked@num@set{tud@declaration@toc@num}{0}% \or% totoc \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc@num}{3}% + \tud@locked@num@set{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown \ifnum\tud@declaration@toc@num<\thr@@\relax% - \cs@set@lock{tud@declaration@toc@num}{2}% + \tud@locked@num@set{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc@num}{4}% + \tud@locked@num@set{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple \ifnum\tud@declaration@toc@num=\z@\relax% - \cs@set@lock{tud@declaration@toc@num}{1}% + \tud@locked@num@set{tud@declaration@toc@num}{1}% \fi% \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \noexpand\tud@locked@num@set{tud@declaration@toc@num}{% \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% @@ -1038,18 +1076,99 @@ \fi% \fi% } +%%% 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}% @@ -1058,23 +1177,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% @@ -1093,7 +1214,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.% }% }% } @@ -1103,7 +1224,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} @@ -1125,7 +1245,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}}% @@ -1158,48 +1279,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]{% @@ -1212,53 +1301,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% } @@ -1329,116 +1418,80 @@ \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% +\TUD@key{clearcolor}[true]{% + \TUD@set@ifkey{clearcolor}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \ifnumber{##2}{}{\@tempswafalse}% + \TUD@deprecated@key{clearcolor}{cleardoublespecialpage=color}% + \else% + \TUD@deprecated@key{clearcolor=#1}{cleardoublespecialpage=nocolor}% \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% - }% - \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}% +\TUD@key{clearcolour}[true]{\TUDoptions{clearcolor=#1}} +\newif\if@tud@x@fontspec@requested +\TUD@key{fontspec}[true]{% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% nosymbolheadings - \@tud@symbolheadingsfalse% - \or% symbolheadings - \@tud@symbolheadingstrue% - \fi% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \fi% } -\AtEndOfClass{% - \newcounter{symbolheadings}[chapter] +\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% } %%% 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% +\DeclareOption*{} +\FamilyProcessOptions[.comp]{TUD}\relax +\tud@if@v@lower{2.05}{% + \TUD@key@preset{relspacing}{false}% +}{% + \TUD@key@preset{relspacing}{true}% } -\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}% +\tud@if@v@lower{2.06}{% + \TUD@key@preset{cdoldfont}{true}% + \TUD@key@preset{ttfont}{lmodern}% + \TUD@key@preset{headings}{light}% +}{% + \TUD@key@preset{cdfont}{true}% + \TUD@key@preset{ttfont}{roboto}% + \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@paper} +\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% - cd=true,relspacing=true,tudbookmarks=true% + cd=true,tudbookmarks=true% } \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}{% @@ -1452,109 +1505,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}% - \fi% - }% - \@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}% +\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% + }% + }% +} +\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 @@ -1571,9 +1753,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 @@ -1583,127 +1765,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}% @@ -1713,12 +1881,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}% @@ -1747,147 +1977,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}}% - \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}}% - \fi% - \if@tud@dinbold% - \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% - \if@tud@dinboldmath% - \appto\tud@dinbn{\mathversion{dinbold}}% - \fi% - \newrobustcmd*\dinbn{\tud@dinbn}% + \fi% + \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*\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]{% + \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% + \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% + \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}% @@ -1895,22 +2286,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}% @@ -1919,232 +2333,905 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\tud@font@greek@loop[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% - }% - }% - }{}% +\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% - \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}% - }{}% + \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% - \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$ $}% + \tud@ttfont@@set% } -\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}% +\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% - \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}% +\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% - \csletcs{up#1}{#1}% + \aftergroup\@secondoftwo% \fi% - }{}% - \ifcsundef{var#1}{% - \if@tempswa% - \csletcs{var#1}{#1}% + \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% - \csletcs{var#1}{tud@var#1}% + \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{\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@font@math@set{% - \if@atdocument% - \if@tud@cdmath% - \if@tud@universmath\else% - \tud@font@math@missing@wrn{Univers}% +\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@dinboldmath\else% - \tud@font@math@missing@wrn{DIN-Bold}% + }{}% + \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% - \ifboolexpr{bool {@tud@universmath} and bool {@tud@dinboldmath}}{}{% - \bool@set@lock{@tud@cdmath}{false}% + \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% - \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% + }% + \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@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \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}% + }{}% + \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@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% + \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% + \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% + }{}% + \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% + }{}% + }{}% + \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% + \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% + \fi% + }% +} +\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% \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}% -} -\newrobustcmd*\ifdin{% - \ifx\f@family\tud@dinbold% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% + \AtBeginDocument{% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \tud@math@set% + }% } -\newcommand*\tud@sec@fontface[1][]{% - \if@tud@cdfont@din% - \tud@dinbn\tud@raggedright% - \else% - \sectfont#1% +\newcommand*\tud@head@font@light{} +\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}% + \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}% + \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% } -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} +\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}% + \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}% + \fi% + \fi% +} +\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}% + \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{} @@ -2206,11 +3293,35 @@ } \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*\@matriculationnumber{} +\newrobustcmd*\matriculationnumber[1]{% + \gdef\@matriculationnumber{#1}\ignorespaces% +} +\newcommand*\@matriculationyear{} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newcommand*\@placeofbirth{} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newcommand*\@thesis{} \newcommand*\@@thesis{} \newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} @@ -2226,8 +3337,11 @@ \let\footnote\@gobble% \tud@lowerstring{\@tempa}{#2}% \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \global\let\@tempa\@tempa% - \endgroup% + \protected@edef\@tempa{% + \endgroup% + \def\noexpand\@tempa{\@tempa}% + }% + \@tempa% \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% @@ -2253,9 +3367,9 @@ Field `thesis' is overwritten by `subject'% }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% + \TUD@key@preset{subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% + \TUD@key@preset{subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% @@ -2265,9 +3379,10 @@ \protected@xdef\@@thesis{\trim@spaces{#2}}% } \newcommand*\@graduation{} -\newcommand*\@@graduation{} +\newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% + \gdef\@graduationabbreviation{}% + \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} @@ -2282,14 +3397,6 @@ \newcommand*\referee[1]{\gdef\@referee{#1}} \newcommand*\@advisor{} \newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} -\newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} -\newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} \newlength\tud@len@signatureskip \setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% @@ -2307,8 +3414,15 @@ \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} -\newcommand*\tud@x@isodate@printdate[2]{% +\providecommand*\publisher[1]{\publishers{#1}} +\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% @@ -2341,38 +3455,39 @@ }{\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% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{% - \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% + \tud@printdate{\@dateofbirth}{#1}\ignorespaces% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% @@ -2386,8 +3501,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% @@ -2401,7 +3516,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}% @@ -2414,7 +3529,7 @@ \newcommand*\tud@multiple@fields@restore[1]{% \def\@tempa##1{% \ifcsdef{@##1}{% - \tud@cmd@restore{@##1}% + \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% }% @@ -2447,13 +3562,13 @@ } \newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,course,discipline,% + authormore,course,discipline,emailaddress,% matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-locale.dtx -\newcommand*\tud@locale@define[1]{% +%%% From File: tudscr-localization.dtx +\newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% @@ -2467,48 +3582,49 @@ }% }% } -\tud@locale@define{\graduationtext} -\tud@locale@define{\refereename} -\tud@locale@define{\refereeothername} -\tud@locale@define{\advisorname} -\tud@locale@define{\advisorothername} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} -\tud@locale@define{\professorname} -\tud@locale@define{\professorothername} -\tud@locale@define{\datetext} -\tud@locale@define{\dateofbirthtext} -\tud@locale@define{\placeofbirthtext} -\tud@locale@define{\defensedatetext} -\tud@locale@define{\matriculationyearname} -\tud@locale@define{\matriculationnumbername} -\tud@locale@define{\coverpagename} -\tud@locale@define{\titlepagename} -\tud@locale@define{\titlename} -\tud@locale@define{\confirmationname} -\tud@locale@define{\confirmationtext} -\tud@locale@define{\blockingname} -\tud@locale@define{\blockingtext} -\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@localization@define{\graduationtext} +\tud@localization@define{\refereename} +\tud@localization@define{\refereeothername} +\tud@localization@define{\advisorname} +\tud@localization@define{\advisorothername} +\tud@localization@define{\supervisorname} +\tud@localization@define{\supervisorothername} +\tud@localization@define{\professorname} +\tud@localization@define{\professorothername} +\tud@localization@define{\datetext} +\tud@localization@define{\dateofbirthtext} +\tud@localization@define{\placeofbirthtext} +\tud@localization@define{\defensedatetext} +\tud@localization@define{\matriculationyearname} +\tud@localization@define{\matriculationnumbername} +\tud@localization@define{\coverpagename} +\tud@localization@define{\titlepagename} +\tud@localization@define{\titlename} +\tud@localization@define{\confirmationname} +\tud@localization@define{\confirmationtext} +\tud@localization@define{\blockingname} +\tud@localization@define{\blockingtext} +\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} \newcommand*\tud@ifin@and[1]{% \begingroup% \let\and\relax% + \robustify\\% \protected@edef\@tempb{#1}% \def\@tempa##1\and##2\relax{% \IfArgIsEmpty{##2}{% @@ -2520,13 +3636,15 @@ \expandafter\@tempa\@tempb\and\relax% \endgroup } -\newcommand*\tud@locale@german{% +\newcommand*\tud@localization@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } -\tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\refereename}{% +\tud@localization@german{\graduationtext}{% + zur Erlangung des akademischen Grades% +}% +\tud@localization@german{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Gutachter% @@ -2535,8 +3653,8 @@ \fi% }{Gutachter}% }% -\tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{% +\tud@localization@german{\refereeothername}{Zweitgutachter}% +\tud@localization@german{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Fachreferenten% @@ -2545,8 +3663,8 @@ \fi% }{Fachreferent}% }% -\tud@locale@german{\advisorothername}{}% -\tud@locale@german{\supervisorname}{% +\tud@localization@german{\advisorothername}{}% +\tud@localization@german{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Betreuer% @@ -2555,8 +3673,8 @@ \fi% }{Betreuer}% }% -\tud@locale@german{\supervisorothername}{}% -\tud@locale@german{\professorname}{% +\tud@localization@german{\supervisorothername}{}% +\tud@localization@german{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Betreuende Hochschullehrer% @@ -2565,18 +3683,18 @@ \fi% }{Betreuender Hochschullehrer}% }% -\tud@locale@german{\professorothername}{}% -\tud@locale@german{\datetext}{Eingereicht am}% -\tud@locale@german{\dateofbirthtext}{Geboren am}% -\tud@locale@german{\placeofbirthtext}{in}% -\tud@locale@german{\defensedatetext}{Verteidigt am}% -\tud@locale@german{\matriculationyearname}{Immatrikulationsjahr}% -\tud@locale@german{\matriculationnumbername}{Matrikelnummer}% -\tud@locale@german{\coverpagename}{Umschlagseite}% -\tud@locale@german{\titlepagename}{Titelblatt}% -\tud@locale@german{\titlename}{Titel}% -\tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% -\tud@locale@german{\confirmationtext}{% +\tud@localization@german{\professorothername}{}% +\tud@localization@german{\datetext}{Eingereicht am}% +\tud@localization@german{\dateofbirthtext}{Geboren am}% +\tud@localization@german{\placeofbirthtext}{in}% +\tud@localization@german{\defensedatetext}{Verteidigt am}% +\tud@localization@german{\matriculationyearname}{Immatrikulationsjahr}% +\tud@localization@german{\matriculationnumbername}{Matrikelnummer}% +\tud@localization@german{\coverpagename}{Umschlagseite}% +\tud@localization@german{\titlepagename}{Titelblatt}% +\tud@localization@german{\titlename}{Titel}% +\tud@localization@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% +\tud@localization@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. @@ -2596,8 +3714,8 @@ Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% }% -\tud@locale@german{\blockingname}{Sperrvermerk}% -\tud@locale@german{\blockingtext}{% +\tud@localization@german{\blockingname}{Sperrvermerk}% +\tud@localization@german{\blockingtext}{% Diese Arbeit \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else @@ -2610,30 +3728,30 @@ Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des Pr\"ufungsausschusses zug\"anglich zu machen.% }% -\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}% -\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}% +\newcommand*\tud@localization@english{% \providecaptionname{% american,australian,british,canadian,english,newzealand,UKenglish,USenglish% }% } -\tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\refereename}{% +\tud@localization@english{\graduationtext}{to achieve the academic degree}% +\tud@localization@english{\refereename}{% \tud@ifin@and{\@referee}{% \ifx\refereeothername\@empty% Referees% @@ -2642,8 +3760,8 @@ \fi% }{Referee}% }% -\tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{% +\tud@localization@english{\refereeothername}{Second referee}% +\tud@localization@english{\advisorname}{% \tud@ifin@and{\@advisor}{% \ifx\advisorothername\@empty% Advisors% @@ -2652,8 +3770,8 @@ \fi% }{Advisor}% }% -\tud@locale@english{\advisorothername}{}% -\tud@locale@english{\supervisorname}{% +\tud@localization@english{\advisorothername}{}% +\tud@localization@english{\supervisorname}{% \tud@ifin@and{\@supervisor}{% \ifx\supervisorothername\@empty% Supervisors% @@ -2662,8 +3780,8 @@ \fi% }{Supervisor}% }% -\tud@locale@english{\supervisorothername}{}% -\tud@locale@english{\professorname}{% +\tud@localization@english{\supervisorothername}{}% +\tud@localization@english{\professorname}{% \tud@ifin@and{\@professor}{% \ifx\professorothername\@empty% Supervising professors% @@ -2672,18 +3790,18 @@ \fi% }{Supervising professor}% }% -\tud@locale@english{\professorothername}{}% -\tud@locale@english{\datetext}{Submitted on}% -\tud@locale@english{\dateofbirthtext}{Born on}% -\tud@locale@english{\placeofbirthtext}{in}% -\tud@locale@english{\defensedatetext}{Defended on}% -\tud@locale@english{\matriculationyearname}{Matriculation year}% -\tud@locale@english{\matriculationnumbername}{Matriculation number}% -\tud@locale@english{\coverpagename}{Cover page}% -\tud@locale@english{\titlepagename}{Title page}% -\tud@locale@english{\titlename}{Title}% -\tud@locale@english{\confirmationname}{Statement of authorship}% -\tud@locale@english{\confirmationtext}{% +\tud@localization@english{\professorothername}{}% +\tud@localization@english{\datetext}{Submitted on}% +\tud@localization@english{\dateofbirthtext}{Born on}% +\tud@localization@english{\placeofbirthtext}{in}% +\tud@localization@english{\defensedatetext}{Defended on}% +\tud@localization@english{\matriculationyearname}{Matriculation year}% +\tud@localization@english{\matriculationnumbername}{Matriculation number}% +\tud@localization@english{\coverpagename}{Cover page}% +\tud@localization@english{\titlepagename}{Title page}% +\tud@localization@english{\titlename}{Title}% +\tud@localization@english{\confirmationname}{Statement of authorship}% +\tud@localization@english{\confirmationtext}{% I hereby certify that I have authored this \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi @@ -2704,8 +3822,8 @@ I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% }% -\tud@locale@english{\blockingname}{Restriction note}% -\tud@locale@english{\blockingtext}{% +\tud@localization@english{\blockingname}{Restriction note}% +\tud@localization@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else @@ -2717,32 +3835,32 @@ Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% }% -\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@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}% \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 @@ -2757,7 +3875,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} @@ -2778,21 +3896,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}% @@ -2858,8 +3977,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}% @@ -2920,8 +4039,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% @@ -2929,8 +4048,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% @@ -2950,13 +4069,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 @@ -3094,109 +4219,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@area@def{paper}{##1:##2}% + \tud@x@geometry@area@def{paper}{##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{paperwidth}{% + \tud@x@geometry@area@def{paper}{#1:\paperheight}% + }% + \TUD@parameter@def{paperheight}{% + \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% - \TUD@parameter@def{layoutheight}{% - \tud@area@def{layout}{\the\tud@len@layoutwidth:#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@area@def{layout}{##1:##1}% + \tud@x@geometry@area@def{layout}{##1:##1}% }{% - \tud@area@def{layout}{##1:##2}% + \tud@x@geometry@area@def{layout}{##1:##2}% }% }% \@tempa#1,,\@nil% }% + \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}{% + \setlength\tud@len@layouthoffset{##1}% + \setlength\tud@len@layoutvoffset{##1}% + }{% + \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}}{}% @@ -3259,150 +4424,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,% @@ -3434,8 +4572,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% @@ -3502,11 +4640,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 @@ -3621,10 +4771,9 @@ \fi% \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% \global\tud@len@areadiff=\tud@len@areadiff% + \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% - \else% - \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% \fi% \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% \tud@if@v@lower{2.03}{% @@ -3634,32 +4783,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}% @@ -3687,153 +4840,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% @@ -3898,7 +5081,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% @@ -4164,16 +5347,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% @@ -4233,6 +5419,7 @@ \fi% \fi% }{% + \tud@locked@bool@preset{@tud@head@widebar}{true}% \ifstr{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% @@ -4242,7 +5429,6 @@ \else% \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% - \bool@std@lock{@tud@head@widebar}{true}% }{% \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{HKS41}% @@ -4257,50 +5443,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@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}% - \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}% - \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{} @@ -4327,9 +5475,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}% @@ -4348,10 +5496,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{% @@ -4597,7 +5741,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% @@ -4642,8 +5786,8 @@ } \newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% - \def\@tempa{}% - \def\@tempb{}% + \let\@tempa\@empty% + \let\@tempb\@empty% \@tempswatrue% \def\do##1{% \if@tempswa% @@ -4675,19 +5819,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% }% @@ -4699,7 +5850,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% @@ -4731,25 +5884,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% }{% @@ -4766,22 +5920,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% @@ -4874,7 +6026,7 @@ ] \TUD@parameter@family{tudpage}{% \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{pagestyle}{% \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% @@ -4897,6 +6049,42 @@ }% ]{fancyhdr} %%% From File: tudscr-layout.dtx +\newcommand*\tud@cleardoublespecialpage[2][]{% + \begingroup% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + #2% + \ifboolexpr{bool {@twoside} and bool {@openright}}{% + \if@tud@clearcolor% + \def\@tempa{% + #1% + \tud@cleardoublepage% + \endgroup% + }% + \else% + \def\@tempa{% + \endgroup% + #1% + \tud@cleardoublepage% + }% + \fi% + }{% + \if@tud@clearcolor\tud@clearcolor@wrn\fi% + \def\@tempa{% + \endgroup% + #1% + }% + }% + \@tempa% + \@afterindentfalse\@afterheading% +} +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Option `clearcolor' is only available together with\MessageBreak% + options `twoside' and `open=right'% + }% + \global\let\tud@clearcolor@wrn\relax% +} \newcommand*\tud@x@scr@headings@current{} \newcommand*\tud@sec@fontsize{} \newcommand*\tud@thesis@fontsize{} @@ -4914,304 +6102,313 @@ \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@chapter@num\relax\else% !false - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% + \ifcase\tud@cd@chapter@num\relax\else% !false + \tud@komafont@reset{chapter}% + \tud@komafont@reset{chapterprefix}% \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@headmidvskip@normal{\par\nobreak\vspace{.5\baselineskip}} -\newcommand*\tud@headmidvskip@reverse{% - \setbox\z@\vbox{\tud@headmidvskip@normal}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +\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@chapter@fontcolor{} \newcommand*\tud@section@fontcolor{} \providecommand*\raggedtitle{\tud@raggedright} -\newkomafont{parttitle}{% - \tud@sec@fontface% - \tud@color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% -} -\newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover@num\relax% false - \bool@std@lock{@tud@cdgeometry@cover}{false}% - \else% !false - \bool@std@lock{@tud@cdgeometry@cover}{true}% - \fi% - \ifcase\tud@layout@title@num\relax% false - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% +\newcommand*\tud@cd@process{% + \ifcase\tud@cd@title@num\relax% false + \tud@cs@restore{titlepagestyle}% + \tud@komafont@unset{titlehead}% + \tud@komafont@unset{title}% + \tud@komafont@unset{subtitle}% + \tud@komafont@unset{subject}% + \tud@komafont@unset{author}% + \tud@komafont@unset{date}% + \tud@komafont@unset{publishers}% \else% !false - \tud@cmd@store{titlepagestyle}% + \tud@cs@store{titlepagestyle}% \renewcommand*\titlepagestyle{plain.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}% }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \fi% - \ifcase\tud@layout@part@num\relax% false - \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadendvskip}% - \tud@cmd@restore{partheademptypage}% - \tud@cmd@restore{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@startpart}% - \tud@cmd@restore{scr@@startspart}% - }{% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% - }% - \tud@sectioning@reset[addpart]{part}% - \tud@font@koma@unset{partnumber}% - \tud@cmd@restore{raggedpart}% + \tud@komafont@set{author}{\usekomafont{subject}}% + \tud@komafont@set{publishers}{\usekomafont{author}}% + \tud@komafont@set{date}{\usekomafont{titlepage}}% + \fi% + \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{scr@part@beforeskip}% + \tud@cs@restore{scr@part@innerskip}% + \tud@cs@restore{scr@part@afterskip}% + \tud@cs@restore{partheadstartvskip}% + \tud@cs@restore{partheadendvskip}% + \tud@cs@restore{partheademptypage}% + \tud@cs@restore{partpagestyle}% + \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@beforeskip}% + \tud@cs@store{scr@part@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% + \tud@cs@store{scr@part@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% - \tud@cmd@store{partheadendvskip}% - \let\partheadendvskip\tud@partheadendvskip% - \tud@cmd@store{partheademptypage}% - \let\partheademptypage\relax% - \tud@cmd@store{partpagestyle}% + \tud@cs@store{partheadendvskip}% + \let\partheadendvskip\relax% + \tud@cs@store{partheademptypage}% + \let\partheademptypage\tud@partheademptypage% + \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - \let\scr@@startpart\tud@@startpart% - \tud@cmd@store{scr@@startspart}% - \let\scr@@startspart\tud@@startspart% - }{% - \tud@cmd@store{@part}% - \let\@part\tud@@part% - \tud@cmd@store{@spart}% - \let\@spart\tud@@spart% - }% - \if@tud@parttitle% - \tud@sectioning@set{part}{\usekomafont{parttitle}}% - \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \else% - \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}% - }% - \fi% - \tud@cmd@store{raggedpart}% + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% + \tud@komafont@set{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@komafont@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@cs@store{raggedpart}% \renewcommand*\raggedpart{\tud@raggedright}% \fi% - \ifcase\tud@layout@chapter@num\relax% false - \tud@cmd@restore{chapterheadstartvskip}% - \tud@cmd@restore{chapterformat}% - \tud@cmd@restore{@chapter}% - \tud@cmd@restore{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@makechapterhead}% - }{% - \tud@cmd@restore{@@makechapterhead}% - }% - \tud@sectioning@reset[addchap]{chapter}% - \tud@font@koma@unset{chapterprefix}% - \tud@cmd@restore{raggedchapter}% + \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{scr@chapter@beforeskip}% + \tud@cs@restore{scr@chapter@innerskip}% + \tud@cs@restore{scr@chapter@afterskip}% + \tud@cs@restore{chapterheadstartvskip}% + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% + \tud@cs@restore{tud@chapter@before@hook}% + \tud@cs@restore{tud@chapter@after@hook}% + \tud@komafont@unset{chapter}% + \tud@komafont@unset{chapterprefix}% + \tud@cs@restore{raggedchapter}% \else% !false - \tud@cmd@store{chapterheadstartvskip}% + \tud@cs@store{scr@chapter@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \tud@cs@store{scr@chapter@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \tud@cs@store{scr@chapter@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cmd@store{chapterformat}% - \tud@cmd@store{@chapter}% - \tud@cmd@store{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@makechapterhead}% - \let\scr@@makechapterhead\tud@@makechapterhead% - }{% - \tud@cmd@store{@@makechapterhead}% - \let\@@makechapterhead\tud@@makechapterhead% - }% - \tud@sectioning@set{chapter}{% + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% + \tud@cs@store{tud@chapter@before@hook}% + \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% + \tud@cs@store{tud@chapter@after@hook}% + \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% + \tud@komafont@set{chapter}{% \tud@sec@fontface% \tud@sec@fontsize% \tud@color{\tud@chapter@fontcolor}% }% - \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% - \tud@cmd@store{raggedchapter}% + \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% + \tud@cs@store{raggedchapter}% \renewcommand*\raggedchapter{\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@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{subsection}{% + \tud@komafont@set{subsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subsubsection}{% + \tud@komafont@set{subsubsection}{% \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{minisec}{% - \tud@sec@fontface% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{paragraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{paragraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + \tud@komafont@set{subparagraph}{% + \tud@color{\tud@section@fontcolor}% }% - \tud@sectioning@set{subparagraph}{% - \ifstr{\tud@pagecolor}{HKS41}{}{\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% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% +\newcommand*\tud@cd@specialpage@set[1]{% + \tud@komafont@set{footnote}{% \edef\@tempa{% \noexpand\tud@color{% \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% }\@tempa% }% - \tud@cmd@store{footnoterule}% + \tud@cs@store{footnoterule}% \let\footnoterule\relax% } -\newcommand*\tud@layout@specialpage@unset{% - \tud@font@koma@unset{footnote}% - \tud@cmd@restore{footnoterule}% +\newcommand*\tud@cd@specialpage@unset{% + \tud@komafont@unset{footnote}% + \tud@cs@restore{footnoterule}% } -\newcommand*\tud@partheadstartvskip{% - \renewcommand*\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part@num\relax\or\or% litecolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% barcolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% bicolor - \renewcommand*\tud@part@fontcolor{HKS41}% - \or% color - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \or% full - \renewcommand*\tud@part@fontcolor{HKS41!30}% - \fi% - \tud@layout@specialpage@set{part}% +\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% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% - \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \if@tud@parttitle% - \begingroup% - \tud@sec@fontface% - \tud@sec@fontsize% - \tud@color{\tud@part@fontcolor}% - \ifx\@@title\@empty% - \ClassWarning{\TUD@Class@Name}{% - You activated the option `parttitle' but\MessageBreak% - no title was given% - }% - \tud@makeuppercase{\strut}% - \else% - \tud@makeuppercase{\@@title}% - \fi% - \par\nobreak% - {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% - \endgroup% - \else% - \usekomafont{partnumber}{\tud@headmidvskip@reverse}% - \fi% + \usekomafont{partnumber}{\nobreak\tud@sec@strut}% + \setlength\@tempskipa{\tud@cd@innerskip}% + \par\nobreak\vskip\@tempskipa% \endgroup% } -\newcommand*\tud@partheadendvskip{% - \tud@cleardoublespecialpage{% - \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@part@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar@num}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar@num}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar@num}{3}% - \or% color - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% - \or% full - \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% - }% - \tud@layout@specialpage@unset% -} +\newcommand*\tud@preamble@fontcolor{} \newcommand*\tud@partpreamble{% + \@tempskipa=\glueexpr\tud@cd@afterskip\relax% + \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \vskip\@tempskipa% \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% - \tud@color{\tud@part@fontcolor}% - \vskip\dimexpr\topskip+.9\baselineskip\relax% + \let\tud@preamble@fontcolor\tud@part@fontcolor% \@afterindentfalse\@afterheading% } \newcommand*\tud@chapterpreamble{% @@ -5219,15 +6416,11 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% + \null\vskip-\baselineskip% \if@tud@chapterpage% - \ifcase\tud@cdfont@num\relax\or% true - \TUDoptions{cdfont=true}% - \or% heavy - \TUDoptions{cdfont=heavy}% - \fi% \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% - \tud@color{\tud@chapter@fontcolor}% + \let\tud@preamble@fontcolor\tud@chapter@fontcolor% \fi% \@afterindentfalse\@afterheading% } @@ -5241,123 +6434,106 @@ }{% \def\@tempa####1@####2{% \@nameuse{tud@####1preamble}% + \tud@color{\tud@preamble@fontcolor}% \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% }% \hbox to\hsize{% \let\phantomsection\relax% - #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par\bigskip}#5\par% }% }{}{\tud@patch@wrn{set@@@@preamble}} -\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}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{% - \nobreak\tud@makeuppercase{\@nameuse{#1format}}% - }% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% - \else% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{scr@@startpart}}% +\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@chapter@subtitle{} +\newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}} +\newkomafont{chaptersubtitle}{% + \tud@thesis@fontsize% + \fontseries{\tud@cdfont@bf}\selectfont% + \tud@color{\tud@chapter@fontcolor}% +} +\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}% + }% +} +\newcommand*\tud@partheadstartvskip{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@cd@part@num\relax\or\or% litecolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% - \newcommand*\tud@@startspart{}% - \let\tud@@startspart\scr@@startspart% - \patchcmd{\tud@@startspart}{% - \normalfont - \sectfont\nobreak - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% + \tud@cd@specialpage@set{part}% + \tud@cd@headstartvskip% + \TUD@deprecated@lengthcs{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% +} +\newcommand*\tud@partheademptypage{% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@cd@part@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% + \or% litecolor + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% barcolor + \tud@locked@num@set{tud@head@bar@num}{2}% + \or% bicolor + \tud@locked@num@set{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - }{}{\tud@patch@wrn{scr@@startspart}}% -\else - \newcommand*\tud@@part{}% - \let\tud@@part\@part% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip@normal% - \fi% - }{% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal% - \fi% - }% - }{}{\tud@patch@wrn{@part}}% - \newcommand*\tud@@spart{}% - \let\tud@@spart\@spart% - \patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip@normal\nobreak% + \clearpage% + }% + \tud@cd@specialpage@unset% +} +\newcommand*\tud@partformat{}% +\newcommand*\tud@partlineswithprefixformat[3]{% + \if@tud@parttitle% + \ifx\@@title\@empty% + \ClassWarning{\TUD@Class@Name}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \fi% - \size@part% - }{}{\tud@patch@wrn{@spart}}% -\fi + \tud@cd@vphantom% + \tud@sec@format[#1]{% + \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + }% + \setpartsubtitle{% + \setkomafont{part}{}% + \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% + }% + \else% + \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% + \let\partformat\tud@partformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% + \fi% + \tud@sec@subtitle{#1}% +} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% - \ifcase\tud@layout@chapter@num\relax\or\else% *color + \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax% - }% + \tud@cd@headstartvskip% \if@tud@chapterpage% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% @@ -5366,42 +6542,28 @@ \vspace*{\tud@dim@headingsvskip}% \fi% } -\newcommand*\tud@@makechapterhead{}% -\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} -\if@tempswa - \let\tud@@makechapterhead\scr@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \csname #1format\endcsname% - \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\csname #1format\endcsname}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{scr@@makechapterhead}}% -\else - \let\tud@@makechapterhead\@@makechapterhead% - \patchcmd{\tud@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@reverse% - \vskip-\parskip% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip@normal% - }{}{\tud@patch@wrn{@@makechapterhead}}% -\fi +\newcommand*\tud@chapterformat{}% +\newcommand*\tud@chapterlineswithprefixformat[3]{% + \edef\tud@chapterformat{% + \noexpand\tud@sec@format{\expandonce\chapterformat}% + }% + \let\chapterformat\tud@chapterformat% + \IfUseNumber{}{\tud@cd@vphantom}% + #2\tud@sec@format[#1]{#3}% + \tud@sec@subtitle{#1}% +} +\newcommand*\tud@chapterlinesformat[3]{% + \tud@cd@vphantom% + \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \tud@sec@subtitle{#1}% +} \newcommand*\tud@chapter@pre{% \if@tud@chapterpage% \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% - \tud@layout@specialpage@set{chapter}% + \tud@cd@specialpage@set{chapter}% \fi% } -\newcommand*\tud@head@bar@store{} -\let\tud@head@bar@store\relax \newcommand*\tud@head@bar@restore{} \let\tud@head@bar@restore\relax \newcommand*\tud@chapter@app{% @@ -5409,46 +6571,42 @@ \tud@cleardoublespecialpage{% \renewcommand*\tud@pagecolor{}% \let\tud@foot@fontcolor\tud@chapter@fontcolor% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor \renewcommand*\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% - \tud@layout@specialpage@unset% + \tud@cd@specialpage@unset% \if@restonecol\twocolumn\fi% \else% - \edef\tud@head@bar@store{\tud@head@bar@num}% \edef\tud@head@bar@restore{% - \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}% - \global\let\noexpand\tud@head@bar@store\relax% + \gdef\noexpand\tud@head@bar@num{\tud@head@bar@num}% \global\let\noexpand\tud@head@bar@restore\relax% }% - \ifcase\tud@layout@chapter@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@chapter@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% fullcolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% @@ -5456,76 +6614,31 @@ \@afterindentfalse\@afterheading% \fi% } -\newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\TUD@Class@Name}{% - Option `clearcolor' is only available together with\MessageBreak% - options `twoside' and `open=right'% - }% - \global\let\tud@clearcolor@wrn\relax% -} -\newcommand*\tud@part{} -\newcommand*\tud@spart{} -\newcommand*\tud@chapter{} -\newcommand*\tud@schapter{} -\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}}% - }% - \ifstr{#1}{chapter}{% - \def\@tempa{,s}% - \@for\@tempb:=\@tempa\do{% - \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@pre% - }{}{\tud@patch@wrn{tud@sectioning@case}}% - \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@app% - }{}{\tud@patch@wrn{tud@sectioning@case}}% +\newcommand*\tud@chapter@before@hook{} +\newcommand*\tud@chapter@after@hook{} +\pretocmd\scr@startchapter{% + \tud@chapter@before@hook% +}{}{\tud@patch@wrn{scr@startchapter}} +\apptocmd\scr@@startchapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startchapter}} +\apptocmd\scr@@startschapter{% + \tud@chapter@after@hook% +}{}{\tud@patch@wrn{scr@@startschapter}} +\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% } -\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{thesis}{% @@ -5533,10 +6646,11 @@ \tud@thesis@fontsize% } \newkomafont{titlepage}{% - \usekomafont{subject}% + \raggedtitle% + \sffamily% \mdseries% - \large% - \tud@raggedright% + \usesizeofkomafont{subsection}% + \tud@color{\tud@title@fontcolor}% } \robustify{\thanks} \robustify{\footnotemark} @@ -5544,27 +6658,52 @@ \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% \if@titlepage% - \tud@make@titlepage% + \tud@maketitle@page% \else% - \tud@make@titlehead% + \tud@maketitle@inpage% \fi% \fi% \endgroup% \setcounter{footnote}{0}% \global\let\and\relax% } +\TUD@parameter@family{title}{% + \TUD@parameter@def{titlepage}[true]{\KOMAoption{titlepage}{#1}}% + \TUD@parameter@def{titlesignature}[true]{\TUDoption{titlesignature}{#1}}% + \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}% @@ -5572,19 +6711,10 @@ \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@titleback{} -\newcommand*\tud@make@titlepage{% +\newcommand*\tud@maketitle@page{% \renewcommand*\tud@title@fontcolor{}% - \ifcase\tud@layout@title@num\relax\or\or% litecolor + \ifcase\tud@cd@title@num\relax\or\or% litecolor \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor \renewcommand*\tud@title@fontcolor{HKS41}% @@ -5596,11 +6726,12 @@ \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% - \tud@layout@specialpage@set{title}% + \tud@cd@specialpage@set{title}% \ifx\tud@title@pagenumber\relax\else% \setcounter{page}{\tud@title@pagenumber}% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% + \addtokomafont{footnote}{\sffamily}% \let\footnotesize\small% \let\footnoterule\relax% \let\footnote\thanks% @@ -5615,6 +6746,10 @@ possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% }% + \@titlepageiscoverpagefalse% + \fi% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% \fi% \else% \if@titlepageiscoverpage% @@ -5627,65 +6762,36 @@ \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\baselineskip% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \else% \let\titlepage@restore\relax% \fi% - \noindent\@extratitle\next@tdpage% + \noindent\@extratitle% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \noindent\@frontispiece% \fi% + \next@tdpage% \fi% - \vspace*{% - \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \begingroup% - \usekomafont{titlepage}% - \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% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox\z@\par\fi% - \ifx\@subject\@empty\else\usebox\@ne\par\fi% - {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + {\usekomafont{titlepage}{% + \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{partnumber}{\nobreak\tud@sec@strut}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% - \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% {\usekomafont{date}{\tud@date@print\par}}% @@ -5695,28 +6801,26 @@ \else% \vskip 2ex\@plus.25fill% \if@tud@subjectthesis\else% - {\usekomafont{thesis}{\tud@title@uppercase{\@thesis}\par}}% + {\usekomafont{thesis}{\tud@title@format{\@thesis}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% + \ifx\@graduationabbreviation\@empty\else% + \nobreakspace\@graduationabbreviation% + \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% - \vskip 2ex\@plus1ex\@minus1ex% - \if@tud@subjectthesis% - {\usekomafont{subject}{\@tempc\par}}% - \else% - {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}% - \fi% + \vskip 2.5ex\@plus1ex\@minus1ex% + {\usekomafont{thesis}{\tud@title@format{\@tempc}\par}}% \vskip 3ex\@plus1ex\@minus1ex% \fi% \fi% \vskip 2ex\@plus.5fill% \fi% - \if@tud@cover\else% + \if@tud@coverpage\else% \tud@title@names{referee}% \tud@title@names{advisor}% \tud@title@names{supervisor}% @@ -5735,13 +6839,19 @@ \fi% \fi% \fi% + \if@tud@titlesignature% + \let\tud@split@@author@do\tud@split@author@signature% + \vskip\tud@len@signatureskip\noindent% + \tud@ifin@and{\@@author}{}{\hfill}% + \tud@multiple@split{@@author}% + \fi% \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus.25fill% {\usekomafont{publishers}{\@publishers\par}}% \vskip\z@\@plus.25fill% \fi% - \endgroup% + }}% \let\tud@titleback\relax% \if@twoside% \@tempswatrue% @@ -5764,28 +6874,26 @@ \fi% \def\@tempa{% \renewcommand*\tud@pagecolor{}% - \ifcase\tud@layout@title@num\relax\or% true - \cs@std@lock{tud@head@bar@num}{0}% + \ifcase\tud@cd@title@num\relax\or% true + \tud@locked@num@preset{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% bicolor - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \or% color \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{1}% + \tud@locked@num@set{tud@head@bar@num}{1}% \or% full \renewcommand*\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar@num}{3}% + \tud@locked@num@set{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% - \if@tud@cover% + \if@tud@coverpage% \begingroup% \@tempa% \cleardoubleemptypage% @@ -5808,9 +6916,9 @@ \fi% \end{titlepage}% } -\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% @@ -5828,58 +6936,42 @@ \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+\tud@len@areaheadvskip-\baselineskip\relax% - }% + \tud@cd@headstartvskip% \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\tud@dim@headingsvskip}% + \tud@cd@vphantom% \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% \TUDoptions{subjectthesis=true}% - \tud@thesis@tosubject% - \ifx\@subject\@empty\else% - \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% - \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% - \fi% - \vspace*{-\@tempdima}% - \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% \vskip 2\bigskipamount% @@ -5909,20 +7001,48 @@ }% \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% + \tud@thesis@tosubject% + \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% + \vskip\dimexpr-\@tempdima-\p@-\medskipamount\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*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -5956,13 +7076,20 @@ \newcommand*\tud@newline@title{} \newcommand*\tud@split@author@title[2]{% \tud@multiple@fields@store{@author}{#1}% - \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% - {\usekomafont{author}{\ignorespaces#1\unskip}}% - \if@tud@cover\else% + \renewcommand*\tud@newline@title{% + \vskip .5ex\strut% + \def\tud@newline@title{\newline\strut}% + }% + {\usekomafont{author}{\ignorespaces#1\strut\unskip}}% + \if@tud@coverpage\else% \ifx\@authormore\@empty\else% \tud@newline@title% \@authormore% \fi% + \ifx\@emailaddress\@empty\else% + \tud@newline@title% + \@emailaddress% + \fi% \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% @@ -5992,7 +7119,7 @@ \@tempc{matriculationyear}% \fi% \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@multiple@@@split{#2}{\vskip 1.5ex}% } \newcommand*\tud@title@wrn[1]{% \ClassWarning{\TUD@Class@Name}{% @@ -6000,6 +7127,17 @@ activated titlepage option% }% } +\newcommand*\tud@split@author@signature[2]{% + \tud@multiple@fields@store{@author}{#1}% + \vbox{% + \hsize=.3\textwidth% + \centering% + \rule{.3\textwidth}{.05pt}\newline% + \ignorespaces#1\strut\unskip% + }% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\hfill}% +} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -6057,7 +7195,7 @@ \fi% }{}% } -\newif\if@tud@cover +\newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -6075,102 +7213,149 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title@num\tud@layout@cover@num% - \tud@layout@process% + \let\tud@cd@title@num\tud@cd@cover@num% + \tud@cd@process% + \ifcase\tud@cd@cover@num\relax% false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{false}% + \@tud@coverpagefalse% + \else% !false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{true}% + \@tud@coverpagetrue% + \fi% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \@titlepagetrue% + \let\@extratitle\@empty% + \let\@frontispiece\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% \if@tud@cdgeometry@cover% - \let\coverpagetopmargin\tud@len@slimmargin% - \let\coverpagebottommargin\tud@len@widemargin% - \let\coverpageleftmargin\tud@len@widemargin% - \let\coverpagerightmargin\tud@len@slimmargin% + \if@tud@coverpage% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + }{% + \def\coverpagetopmargin{\tud@len@slimmargin}% + }% + \fi% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% \def\coverpagebottommargin{.5\tud@len@both}% - }{}% + }{% + \def\coverpagebottommargin{\tud@len@widemargin}% + }% + \def\coverpageleftmargin{\tud@len@widemargin}% + \def\coverpagerightmargin{\tud@len@slimmargin}% \fi% - \ifcase\tud@layout@cover@num\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@title@pagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% + \if@tud@coverpage% \edef\titlepage@restore{% \noexpand\endgroup% \noexpand\global\noexpand\@colht\the\@colht% \noexpand\global\noexpand\@colroom\the\@colroom% \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% \noexpand\let\noexpand\titlepage@restore\noexpand\relax% }% \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@len@footsep+\footheight\relax% - \tud@if@v@lower{2.03}{% - \footskip=\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cdgeometry@cover% - \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@len@widemargin% - \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% + \tud@cover@setmargins% \tud@len@areavskip=\z@% - \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% \tud@maketitle% \clearpage% \titlepage@restore% + \else% + \@titlepageiscoverpagetrue% + \tud@cover@fixmargins% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% \fi% \endgroup% } -\bool@lock{@tud@cdgeometry@cover} +\tud@locked@newbool{@tud@cdgeometry@cover} \TUD@parameter@family{cover}{% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% \TUD@parameter@def{cdgeometry}[true]{% - \ifstrbool{#1}{% - \bool@set@lock{@tud@cdgeometry@cover}{true}% - }{% - \bool@set@lock{@tud@cdgeometry@cover}{false}% - }{% - \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}% - }% - }% - }% + \TUDoption{cdgeometry}{#1}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \tud@locked@bool@set{@tud@cdgeometry@cover}{true}% + \else% + \tud@locked@bool@set{@tud@cdgeometry@cover}{false}% + \fi% }% - \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } +\renewcommand*{\coverpagetopmargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \else% + \dimexpr\topmargin+1in\relax% + \fi% +} +\renewcommand*{\coverpagebottommargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@widemargin\relax% + \else% + 2\dimexpr\coverpagetopmargin\relax% + \fi% +} +\newcommand*\tud@cover@fixmargins{% + \begingroup% + \tud@cdgeometry@assignlayout% + \tud@x@geometry@fixmargins% + \setlength\@tempdima{% + \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset + +\paperheight-\tud@len@layoutheight\relax% + }% + \edef\coverpagebottommargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% + }% + \edef\coverpagetopmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagerightmargin-\tud@len@layouthoffset + +\paperwidth-\tud@len@layoutwidth\relax% + }% + \edef\coverpagerightmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% + }% + \edef\coverpageleftmargin{\the\@tempdima}% + \edef\tud@res@a{% + \endgroup% + \def\noexpand\coverpagetopmargin{\coverpagetopmargin}% + \def\noexpand\coverpagebottommargin{\coverpagebottommargin}% + \def\noexpand\coverpageleftmargin{\coverpageleftmargin}% + \def\noexpand\coverpagerightmargin{\coverpagerightmargin}% + }% + \tud@res@a% +} +\newcommand*\tud@cover@setmargins{% + \tud@cover@fixmargins% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \textheight=\dimexpr\paperheight-\coverpagetopmargin% + -\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\baselineskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% +} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% @@ -6213,6 +7398,7 @@ }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% + \csuse{phantomsection}% \protected@edef\@tempa{% \noexpand\endgroup% \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% @@ -6225,11 +7411,11 @@ }{% \ClassWarning{\TUD@Class@Name}{% It isn't possible to use `#1=single'\MessageBreak% - or `#1=chapter' + or `#1=chapter'\space% with `#1=tocmultiple'% }% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc@num}{% + \noexpand\tud@locked@num@set{tud@#1@toc@num}{% \the\numexpr\csuse{tud@#1@toc@num}-2\relax% }% }% @@ -6353,8 +7539,8 @@ } \newcommand*\tud@quoting{quotation} \AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\csundef{abstract} -\csundef{endabstract} +\undef\abstract +\undef\endabstract \NewEnviron{abstract}[1][]{% \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@envir@ps\relax% @@ -6394,7 +7580,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{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -6453,7 +7639,7 @@ ] \TUD@parameter@family{declaration}{% \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{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% @@ -6559,32 +7745,6 @@ \tud@fm@body@end{declaration}% } %%% 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} \newlength\pageheadingsvskip @@ -6609,67 +7769,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}{% @@ -6696,7 +7832,10 @@ } \apptocmd{\titlepage}{% \tud@x@bookmark@startatroot% - \if@tud@cover% + \@tud@res@swafalse% + \if@tud@coverpage\@tud@res@swatrue\fi% + \if@titlepageiscoverpage\@tud@res@swatrue\fi% + \if@tud@res@swa% \tudbookmark[% 0% ]{\coverpagename}{cover}% @@ -6706,12 +7845,12 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\pretocmd{\tud@make@titlehead}{% +\pretocmd{\tud@maketitle@inpage}{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% ]{\titlename}{title}% -}{}{\tud@patch@wrn{tud@make@titlehead}} +}{}{\tud@patch@wrn{tud@maketitle@inpage}} \pretocmd{\@maketitle}{% \tud@x@bookmark@startatroot% \tudbookmark[% @@ -6724,10 +7863,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% @@ -6736,41 +7875,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% - }% +\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% } -\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% -} -\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}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% -}{}{\tud@patch@wrn{@uclcnotmath}} +\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% +} +\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 `tudscrreprt.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty index 0690dd3e612..c6e8d7d533a 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty @@ -7,13 +7,13 @@ %% tudscr-version.dtx (with options: `package,supervisor') %% tudscr-supervisor.dtx (with options: `package,supervisor') %% tudscr-fields.dtx (with options: `package,supervisor') -%% tudscr-locale.dtx (with options: `package,supervisor') +%% tudscr-localization.dtx (with options: `package,supervisor') %% %% 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. %% ---------------------------------------------------------------------------- @@ -39,7 +39,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]{% @@ -54,7 +54,7 @@ \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} @@ -65,18 +65,24 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi \@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-supervisor.dtx \ProvidesPackage{tudscrsupervisor}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (commands for supervisors)% ] @@ -163,7 +169,7 @@ } \newenvironment{task}[1][]{% \cleardoubleoddpage% - \def\@headline{}% + \let\@headline\@empty% \TUD@parameter@family{tudpage}{% \TUD@parameter@def{headline}{\def\@headline{##1}}% \TUD@parameter@let{heading}{headline}% @@ -232,7 +238,6 @@ } \newcommand\taskform[3][]{% \begin{task}[#1]% - \removelastskip% \ifblank{#2}{}{\minisec{\objectivesname}#2}% \ifblank{#3}{}{% \minisec{\focusname}% @@ -244,7 +249,7 @@ } \newenvironment{evaluation}[1][]{% \cleardoubleoddpage% - \def\@headline{}% + \let\@headline\@empty% \TUD@parameter@family{tudpage}{% \TUD@parameter@def{headline}{\def\@headline{##1}}% \TUD@parameter@let{heading}{headline}% @@ -266,11 +271,11 @@ }{% \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \setlength{\@tempskipa}{\smallskipamount}% + \setlength\@tempskipa{\smallskipamount}% \ifx\@grade\@empty\else% \vskip\@tempskipa\noindent% \gradetext% - \setlength{\@tempskipa}{\bigskipamount}% + \setlength\@tempskipa{\bigskipamount}% \fi% \ifx\@date\@empty\else% \vskip\@tempskipa\noindent% @@ -298,7 +303,6 @@ } \newcommand\evaluationform[5][]{% \begin{evaluation}[#1]% - \removelastskip% \ifblank{#2}{}{\minisec{\taskname}#2}% \ifblank{#3}{}{\minisec{\contentname}#3}% \ifblank{#4}{}{\minisec{\assessmentname}#4}% @@ -345,10 +349,9 @@ } \newcommand\noticeform[3][]{% \begin{notice}[#1]% - \removelastskip% \ifblank{#2}{}{% \ifx\@@title\@empty\else% - \minisec{\expandonce{\@@title}}% + \minisec{\expandonce{\@@title}}\medskip% \fi% #2% }% @@ -367,9 +370,9 @@ \newcommand*\grade[1]{\gdef\@grade{#1}} \newcommand*\@headline{} \newcommand*\@issuedate{} -\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}} +\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} \newcommand*\@duedate{} -\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}} +\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} \@ifclassloaded{tudscrposter}{\@tempswafalse}{\@tempswatrue} \if@tempswa \newcommand*\@contactperson{} @@ -380,82 +383,65 @@ \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@split@contactperson@do[2]{} -\newcommand*\tud@split@contactperson@list{office,telephone,telefax,emailaddress} +\newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax} \fi -%%% From File: tudscr-locale.dtx -\tud@locale@define{\authorname} -\tud@locale@define{\contactname} -\tud@locale@define{\contactpersonname} -\tud@locale@define{\taskname} -\tud@locale@define{\tasktext} -\tud@locale@define{\namesname} -\tud@locale@define{\issuedatetext} -\tud@locale@define{\duedatetext} -\tud@locale@define{\chairmanname} -\tud@locale@define{\focusname} -\tud@locale@define{\objectivesname} -\tud@locale@define{\evaluationname} -\tud@locale@define{\evaluationtext} -\tud@locale@define{\contentname} -\tud@locale@define{\assessmentname} -\tud@locale@define{\gradetext} -\tud@locale@define{\noticename} -\tud@locale@german{\authorname}{Autor}% -\tud@locale@german{\contactname}{Kontakt}% -\tud@locale@german{\contactpersonname}{Ansprechpartner}% -\tud@locale@german{\taskname}{Aufgabenstellung}% -\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% -\tud@locale@german{\namesname}{Name}% -\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}% -\tud@locale@german{\duedatetext}{Einzureichen am}% -\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% -\tud@locale@german{\focusname}{Schwerpunkte der Arbeit}% -\tud@locale@german{\objectivesname}{Ziele der Arbeit}% -\tud@locale@german{\evaluationname}{Gutachten}% -\tud@locale@german{\evaluationtext}{f\"ur die}% -\tud@locale@german{\contentname}{Inhalt}% -\tud@locale@german{\assessmentname}{Bewertung}% -\tud@locale@german{\gradetext}{% +%%% From File: tudscr-localization.dtx +\tud@localization@define{\authorname} +\tud@localization@define{\contactname} +\tud@localization@define{\contactpersonname} +\tud@localization@define{\taskname} +\tud@localization@define{\tasktext} +\tud@localization@define{\namesname} +\tud@localization@define{\issuedatetext} +\tud@localization@define{\duedatetext} +\tud@localization@define{\chairmanname} +\tud@localization@define{\focusname} +\tud@localization@define{\objectivesname} +\tud@localization@define{\evaluationname} +\tud@localization@define{\evaluationtext} +\tud@localization@define{\contentname} +\tud@localization@define{\assessmentname} +\tud@localization@define{\gradetext} +\tud@localization@define{\noticename} +\tud@localization@german{\authorname}{Autor}% +\tud@localization@german{\contactname}{Kontakt}% +\tud@localization@german{\contactpersonname}{Ansprechpartner}% +\tud@localization@german{\taskname}{Aufgabenstellung}% +\tud@localization@german{\tasktext}{f\"ur die Anfertigung einer}% +\tud@localization@german{\namesname}{Name}% +\tud@localization@german{\issuedatetext}{Ausgeh\"andigt am}% +\tud@localization@german{\duedatetext}{Einzureichen am}% +\tud@localization@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% +\tud@localization@german{\focusname}{Schwerpunkte der Arbeit}% +\tud@localization@german{\objectivesname}{Ziele der Arbeit}% +\tud@localization@german{\evaluationname}{Gutachten}% +\tud@localization@german{\evaluationtext}{f\"ur die}% +\tud@localization@german{\contentname}{Inhalt}% +\tud@localization@german{\assessmentname}{Bewertung}% +\tud@localization@german{\gradetext}{% Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% }% -\tud@locale@german{\noticename}{Aushang}% -\tud@locale@english{\authorname}{Author}% -\tud@locale@english{\contactname}{Contact}% -\tud@locale@english{\contactpersonname}{Contact}% -\tud@locale@english{\taskname}{Task}% -\tud@locale@english{\tasktext}{for the preparation of a}% -\tud@locale@english{\namesname}{Name}% -\tud@locale@english{\issuedatetext}{Issued on}% -\tud@locale@english{\duedatetext}{Due date for submission}% -\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}% -\tud@locale@english{\focusname}{Focus of work}% -\tud@locale@english{\objectivesname}{Objectives of work}% -\tud@locale@english{\evaluationname}{Evaluation}% -\tud@locale@english{\evaluationtext}{for the}% -\tud@locale@english{\contentname}{Content}% -\tud@locale@english{\assessmentname}{Assessment}% -\tud@locale@english{\gradetext}{% +\tud@localization@german{\noticename}{Aushang}% +\tud@localization@english{\authorname}{Author}% +\tud@localization@english{\contactname}{Contact}% +\tud@localization@english{\contactpersonname}{Counterpart}% +\tud@localization@english{\taskname}{Task}% +\tud@localization@english{\tasktext}{for the preparation of a}% +\tud@localization@english{\namesname}{Name}% +\tud@localization@english{\issuedatetext}{Issued on}% +\tud@localization@english{\duedatetext}{Due date for submission}% +\tud@localization@english{\chairmanname}{Chairman of the Audit Committee}% +\tud@localization@english{\focusname}{Focus of work}% +\tud@localization@english{\objectivesname}{Objectives of work}% +\tud@localization@english{\evaluationname}{Evaluation}% +\tud@localization@english{\evaluationtext}{for the}% +\tud@localization@english{\contentname}{Content}% +\tud@localization@english{\assessmentname}{Assessment}% +\tud@localization@english{\gradetext}{% The thesis is evaluated with a grade of \textbf{\@grade}.% }% -\tud@locale@english{\noticename}{Notice}% +\tud@localization@english{\noticename}{Notice}% \endinput %% %% End of file `tudscrsupervisor.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty index 5f89cff818c..938277760b7 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty @@ -14,9 +14,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. %% ---------------------------------------------------------------------------- @@ -42,7 +42,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]{% @@ -57,7 +57,7 @@ \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} @@ -68,18 +68,24 @@ This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% }% - \endinput + \endinput% \fi \@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-manual.dtx \ProvidesPackage{tudscrtutorial}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (internal tutorials)% ] @@ -106,7 +112,9 @@ \ifdef{\tudfinalflag}{% \TUDoptions{ToDo=false}% \TUD@key{ToDo}{\FamilyKeyStateProcessed}% - }{}% + }{% + \KOMAoptions{overfullrule}% + }% \ifdef{\tudprintflag}{% \ifnum\tud@cd@num>\z@\relax% \TUDoptions{cd=true}% @@ -128,17 +136,17 @@ \else% \def\@tempa not##1##2##3##4\@nil{% \ifstr{##1##2##3}{not}{% - \if\relax##4\relax\else% + \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }{% - \if\relax##1\relax\else% + \IfArgIsEmpty{##1}{}{% \listeadd\tud@todo@type@pos{##1##2##3##4}% \@tud@todotrue% \FamilyKeyStateProcessed% - \fi% + }% }% }% \edef\@tempb{not\trim@spaces{#1}}% @@ -148,7 +156,9 @@ %%% From File: tudscr-misc.dtx \KOMAoptions{headings=small} \TUDoptions{cdfoot=true} -\TUDExecuteOptions{ToDo=true} +\TUDExecuteOptions{% + ToDo=true% +} \TUDProcessOptions\relax %%% From File: tudscr-manual.dtx \PassOptionsToPackage{log-declarations=false}{xparse} @@ -160,12 +170,6 @@ \reversemarginpar \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} -\@ifpackagelater{geometry}{2010/09/13}{% - \ClassWarning{\TUD@Class@Name}{% - Package `geometry' was updated so some patches\MessageBreak% - are maybe outdated% - }% -}{}% \newcommand*\vTUDScript{v\TUDScriptVersionNumber} \newcommand*\vKOMAScript{v\TUD@Version@KOMA} \newcommand*\tud@english[1]{#1} @@ -174,66 +178,20 @@ \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% }{}% } +\RequirePackage{shellesc}[2016/06/07] \RequirePackage{pdftexcmds}[2016/05/21] -\newcommand*\tud@templist{} -\let\tud@templist\relax -\newcommand*\tud@list@sort[1]{% - \ifdefvoid{#1}{% - \ClassWarning{tudscrmanual}{% - The given list \string#1\space\MessageBreak% - is empty, nothing to sort here% - }% - }{% - \let\tud@reserved#1% - \let\tud@templist\relax% - \forlistloop\tud@list@@sort{\tud@reserved}% - \let\tud@reserved\relax% - \@for\@tempa:=\tud@templist\do{\listeadd\tud@reserved{\@tempa}}% - \let#1\tud@reserved% - }% -} -\newif\if@tud@list@sorted -\newcommand*\tud@list@@sort[1]{% - \ifx\tud@templist\relax% - \def\tud@templist{#1}% - \else% - \@tud@list@sortedfalse% - \let\@tempb\@empty% - \@for\@tempa:=\tud@templist\do{% - \if@tud@list@sorted% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \else% - \expandafter\ifnum\pdf@strcmp{#1}{\@tempa}<\z@\relax% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{% - #1,\@tempa% - }% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{% - \@tempb,#1,\@tempa% - }% - \fi% - \@tud@list@sortedtrue% - \else% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \fi% - \fi% - \fi% - }% - \if@tud@list@sorted\else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% - \fi% - \let\tud@templist\@tempb% - \fi% -} \RequirePackage{scrwfile}[2013/08/05] -\RequirePackage{silence}[2012/07/02] \RequirePackage{filecontents}[2011/10/08] -\WarningFilter[Tutorial]{latex}{Overwriting file}% -\WarningFilter[Tutorial]{latex}{Writing file}% +\begingroup% + \catcode`\*=11% + \catcode`\^^M\active% + \catcode`\^^L\active\let^^L\relax% + \catcode`\^^I\active% + \patchcmd{\filec@ntents}{% + \@latex@warning@no@line{Overwriting file `\@currdir#1'}% + }{}{}{\tud@patch@wrn{filec@tents}}% + \global\let\filec@ntents\filec@ntents% +\endgroup% \PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} \PassOptionsToPackage{open,openlevel=0}{bookmark} \AfterPackage*{hyperref}{% @@ -284,16 +242,16 @@ } \newcommand*\tud@hyperref@a[2][]{#2} \newcommand*\tud@hyperref@b[4]{#4} - \tud@locale@german{\partautorefname}{Teil}% - \tud@locale@german{\chapterautorefname}{Kapitel}% - \tud@locale@german{\sectionautorefname}{Unterkapitel}% - \tud@locale@german{\subsectionautorefname}{Abschnitt}% - \tud@locale@german{\subsubsectionautorefname}{Unterabschnitt}% - \tud@locale@english{\partautorefname}{Part}% - \tud@locale@english{\chapterautorefname}{chapter}% - \tud@locale@english{\sectionautorefname}{section}% - \tud@locale@english{\subsectionautorefname}{subsection}% - \tud@locale@english{\subsubsectionautorefname}{subsubsection}% + \tud@localization@german{\partautorefname}{Teil}% + \tud@localization@german{\chapterautorefname}{Kapitel}% + \tud@localization@german{\sectionautorefname}{Unterkapitel}% + \tud@localization@german{\subsectionautorefname}{Abschnitt}% + \tud@localization@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@localization@english{\partautorefname}{Part}% + \tud@localization@english{\chapterautorefname}{chapter}% + \tud@localization@english{\sectionautorefname}{section}% + \tud@localization@english{\subsectionautorefname}{subsection}% + \tud@localization@english{\subsubsectionautorefname}{subsubsection}% \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% } @@ -363,17 +321,17 @@ \let\tud@bdl@curr\tud@bdl@dflt \newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} \NewExpandableDocumentCommand\@Application{sm}{#2} -\NewDocumentCommand\Application{smd()d<>d||}{% +\NewDocumentCommand\Application{s m !d() !d<> !d||}{% \Markup@SetFormat{\sbsfont}% \IfValueTF{#4}{% \Process@Markup{\Application{#2}}(#3)<#4>% }{% \Process@Markup{\Application{#2}}(#3)% }% - \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#4|% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#5|% } \NewExpandableDocumentCommand\@Distribution{sm}{#2} -\NewDocumentCommand\Distribution{smod()d||}{% +\NewDocumentCommand\Distribution{s m !o !d() !d||}{% \Markup@SetFormat{\sbnfont}% \IfValueTF{#3}{% \Process@Markup{\Distribution{#2}}[~#3](#4)% @@ -383,25 +341,26 @@ \Process@Index{#1}{\Distribution{#2}}[Distribution](#4)|#5|% } \NewExpandableDocumentCommand\@Engine{sm}{#2} -\NewDocumentCommand\Engine{smd()d||}{% +\NewDocumentCommand\Engine{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\Engine{\hologo{#2}}}(#3)% \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% } +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} \NewExpandableDocumentCommand\@File{sm}{#2} -\NewDocumentCommand\File{smd()d||}{% +\NewDocumentCommand\File{s m !d() !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\File{#2}}(#3)% \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% } \NewExpandableDocumentCommand\@Class{sm}{#2} -\NewDocumentCommand\Class{smd()d''d||}{% +\NewDocumentCommand\Class{s m !d() !d'' !d||}{% \Markup@SetFormat{\sbnfont}% \Process@Markup{\Class{#2}}(#3)'#4'% \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|% } \NewExpandableDocumentCommand\@Package{sm}{#2} -\NewDocumentCommand\Package{smd()d<>d''d||}{% +\NewDocumentCommand\Package{s m !d() !d<> !d'' !d||}{% \Markup@SetFormat{\sbnfont}% \IfValueTF{#4}{% \Process@Markup{\Package{#2}}(#3)<#4>'#5'% @@ -411,7 +370,7 @@ \Process@Index{#1}{\Package{#2}}[Paket](#3)|#6|% } \NewExpandableDocumentCommand\@Option{sm}{#2} -\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{% +\NewDocumentCommand\Option{s >{\ProcessorKeyVal}m !d== !d() !d'' !d||}{% \Option@Value{#1}#2=#3=(#4)'#5'|#6|% } \NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{% @@ -421,7 +380,7 @@ \Process@Index{#1}{\Option{#2}}=#3=(#5)|#7|% } \NewExpandableDocumentCommand\@Environment{sm}{#2} -\NewDocumentCommand\Environment{smod()d''d||}{% +\NewDocumentCommand\Environment{s m !o !d() !d'' !d||}{% \Markup@SetFormat{\ttfamily}(% \ttfamily\bsc{}begin\textbraceleft#2\textbraceright\IfValueT{#3}{#3}% \tabularnewline\ttfamily\dots% @@ -431,19 +390,19 @@ \Process@Index{#1}{\Environment{#2}}[Umgebung](#4)|#6|% } \NewExpandableDocumentCommand\@Macro{sm}{#2} -\NewDocumentCommand\Macro{smod()d''d||}{% - \Markup@SetFormat{\ttfamily\bsc}% +\NewDocumentCommand\Macro{s m !o !d() !d'' !d||}{% + \Markup@SetFormat[\bsc]{\ttfamily}% \Process@Markup{\Macro{#2}}[#3](#4)'#5'% \Process@Index{#1}{\Macro{#2}}(#4)|#6|% } \NewExpandableDocumentCommand\@Length{sm}{#2} -\NewDocumentCommand\Length{smd()d''d||}{% - \Markup@SetFormat{\ttfamily\bsc}[L\"ange]% +\NewDocumentCommand\Length{s m !d() !d'' !d||}{% + \Markup@SetFormat[\bsc]{\ttfamily}[L\"ange]% \Process@Markup{\Length{#2}}(#3)'#4'% \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% } \NewExpandableDocumentCommand\@Counter{sm}{#2} -\NewDocumentCommand\Counter{smd()d''d||}{% +\NewDocumentCommand\Counter{s m !d() !d'' !d||}{% \Markup@SetFormat{\ttfamily}[Z\"ahler]% \Process@Markup{\Counter{#2}}(#3)'#4'% \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|% @@ -473,7 +432,6 @@ }% \tud@reserved% } -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} \newrobustcmd*\PName[1]{\PValue{\textsl{<#1>}}} \newrobustcmd*\PValueName[1]{\PName{#1}} @@ -557,6 +515,7 @@ \let\IeC\@firstofone% \def\"##1{##1e}% \def\ss{ss}% + \def\dots{...}% \let\NoCaseChange\@firstofone% } \NewDocumentCommand\tud@lbl@get@curr{% @@ -608,6 +567,17 @@ }% \@tempc% } +\newif\if@tud@disposition +\newcommand*\ifdisposition{% + \if@tud@disposition% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +\pretocmd{\tud@sec@format}{% + \@tud@dispositiontrue% +}{}{\tud@patch@wrn{tud@sec@format}} \newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} \NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} \NewDocumentCommand\Process@Markup{md==od()d<>d''}{% @@ -643,7 +613,8 @@ \ifstr{#6}{none}{\let\@tempa\@tempc}{% \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% \def\@tempb{% - \ClassWarning{tudscrmanual}{% + \PackageWarning{tudscrtutorial}% + {% You've used the unknown cross-reference\MessageBreak% shorthand '#6'. Only 'none' and 'manual'\MessageBreak% are valid% @@ -652,7 +623,7 @@ }% }% }% - \ifdin{\@tempc}{\@tempa\@tempb}% + \ifdisposition{\@tempc}{\@tempa\@tempb}% \endgroup% \Markup@ClearFormat% } @@ -673,48 +644,52 @@ } \newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} \newcommand*\Markup@Format{} +\undef\Markup@Format \newcommand*\Markup@Suffix{} -\NewDocumentCommand\Markup@SetFormat{mod()}{% - \def\Markup@Format{\ifdin{\MakeTextUppercase}{#1}}% - \IfValueT{#2}{\def\Markup@Suffix{\suffix{#2}}}% -} -\robustify\NoCaseChange -\NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% +\NewDocumentCommand\Markup@SetFormat{omod()}{% + \def\Markup@Format##1{% + \def\tud@res@a{#2}% + \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% + \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% }% + \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% } -\apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% -}{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} \newcommand*\Markup@ClearFormat{% - \let\Markup@Format\relax% + \undef\Markup@Format% \let\Markup@Declare\Markup@@Declare% \let\Markup@Suffix\relax% } \Markup@ClearFormat \newcommand*\Markup@CheckFormat{% - \ifx\Markup@Format\relax% - \ClassError{tudscrmanual}{\string\Markup@SetFormat\space unused}{% - It seems you have forgotten to use \string\Markup@SetFormat.% + \ifundef\Markup@Format{% + \PackageError{tudscrtutorial}% + {\string\Markup@SetFormat\space unused}% + {It seems you have forgotten to use \string\Markup@SetFormat.}% + }{}% +} +\ifundef{\tud@x@textcase@uclcnotmath}{}{% + \NewDocumentCommand\tud@nonchangecase{m}{% + \DeclareExpandableDocumentCommand#1{sm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}}% }% - \fi% + } + \apptocmd{\tud@x@textcase@uclcnotmath}{% + \tud@nonchangecase\Application% + \tud@nonchangecase\Distribution% + \tud@nonchangecase\Engine% + \tud@nonchangecase\File% + \tud@nonchangecase\Class% + \tud@nonchangecase\Package% + \tud@nonchangecase\Option% + \tud@nonchangecase\Environment% + \tud@nonchangecase\Macro% + \tud@nonchangecase\Length% + \tud@nonchangecase\Counter% + }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} } \PassOptionsToPackage{xindy,splitindex}{imakeidx} -\let\tud@shellescape\shellescape \RequirePackage{imakeidx}[2013/07/11] -\let\shellescape\tud@shellescape \indexsetup{% level=\subsection*,% noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% @@ -775,7 +750,7 @@ \fi% }{}{\tud@patch@wrn{theindex}}% \fi% -\NewDocumentCommand\makexdyindex{somo}{% +\NewDocumentCommand\makexdyindex{s o m !o}{% \let\@tempb\@empty% \protected@edef\@tempa{% title={#3},% @@ -878,7 +853,8 @@ } \newrobustcmd*\cleversee{\tud@cleversee{\seename}} \newrobustcmd*\cleverseealso{% - \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}% + \PackageWarning{tudscrtutorial}% + {You should use `|see' instead of `|seealso'}% \tud@cleversee{\alsoname}% } \newcommand*\tud@cleversee{} @@ -898,7 +874,8 @@ }{}{% \IfBooleanTF{#1}{% \IfValueT{#6}{% - \ClassWarning{tudscrmanual}{% + \PackageWarning{tudscrtutorial}% + {% You've used the starred version. No index entry\MessageBreak% for #2 is created. The\MessageBreak% optional argument |#6| will be ignored% @@ -974,6 +951,10 @@ activated shell escape option% }% } +\newcommand*\tud@latex@ext{} +\ifpdftex% + {\def\tud@latex@ext{pdflatex\space}}% + {\def\tud@latex@ext{lualatex\space}}% \newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}} \newcommand*\tud@tut@temp{} \edef\tud@tut@temp{\@currname-temp} @@ -1026,7 +1007,7 @@ \noindent\ignorespaces% } \newcommand\FinishTutorial[1][]{% - \immediate\write\tud@write@b{^^J\string\end{document}^^J} + \immediate\write\tud@write@b{^^J\string\end{document}^^J}% \immediate\closeout\tud@write@b% \immediate\closeout\tud@write@a% \immediate\openout\tud@write@a\jobname-example.tex\relax% @@ -1057,7 +1038,7 @@ \else% \def\@tempa{rm}% \fi% - \immediate\write18{\@tempa\space\tud@tut@temp*.*}% + \ShellEscape{\@tempa\space\tud@tut@temp*.*}% \fi% } \newcommand\Code@Preamble{} @@ -1074,12 +1055,10 @@ \let\StandaloneFile\relax \newcommand*\StandaloneDate{} \newcommand*\tud@tut@pre{% - \ActivateWarningFilters[Tutorial]% \csuse{filecontents*}{\tud@tut@temp.tex}% } \newcommand*\tud@tut@post{% \csuse{endfilecontents*}% - \DeactivateWarningFilters[Tutorial]% } \newenvironment{Preamble}{\tud@tut@pre}{% \tud@tut@post% @@ -1209,9 +1188,7 @@ \@tempa{\Code@Preamble}{}% \setlength\@tempdimc{\leftskip}% \setlength\leftskip{\leftmargin}% - \ActivateWarningFilters[Tutorial]% \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% - \DeactivateWarningFilters[Tutorial]% \global\let\Code@Hook\relax% \setlength\leftskip{\@tempdimc}% \noindent\ignorespaces% @@ -1219,12 +1196,10 @@ \newcommand*\InputCode{\input{\tud@tut@temp.tex}} \IfFileExists{\tud@tut@temp-standalone.tex}{\@tempswafalse}{\@tempswatrue} \if@tempswa% -\ActivateWarningFilters[Tutorial]% \begin{filecontents*}{\tud@tut@temp-standalone.tex} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrreprt} \usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} +\ifpdftex{\usepackage[ngerman=ngerman-x-latest]{hyphsubst}}{} \usepackage{babel} \usepackage{tudscrsupervisor} \usepackage{isodate} @@ -1235,7 +1210,6 @@ \input{\jobname.tex}% \end{document} \end{filecontents*} -\DeactivateWarningFilters[Tutorial]% \fi \newcommand*\tud@tut@pdf{% \ifnum\pdf@shellescape=\@ne\relax% @@ -1245,22 +1219,22 @@ \edef\@tempa{\expandonce\@date}% \def\@tempb{\today}% \ifx\@tempa\@tempb\relax% - \def\@tempb{}% + \let\@tempb\@empty% \else% \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}% \fi% \edef\@tempa{% - pdflatex -jobname=\tud@tut@temp\space% + \tud@latex@ext -jobname=\tud@tut@temp\space% "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}% {\tud@tut@temp-standalone.tex}"% }% - \immediate\write18{\@tempa^^J\@tempa^^J\@tempa}% + \ShellEscape{\@tempa^^J\@tempa^^J\@tempa}% \ifwindows% \def\@tempa{rename}% \else% \def\@tempa{mv}% \fi% - \immediate\write18{% + \ShellEscape{% \@tempa\space\tud@tut@temp.pdf\space% \jobname-standalone-\StandaloneFile.pdf% }% @@ -1269,7 +1243,7 @@ \fi% \global\let\StandaloneFile\relax% } -\NewDocumentCommand\IncludeStandalone{omO{1}}{% +\NewDocumentCommand\IncludeStandalone{o m !O{1}}{% \IfFileExists{\jobname-standalone-#2.pdf}{% \@tempcnta\z@% \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% @@ -1318,60 +1292,94 @@ \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% } \RequirePackage{todonotes}[2012/07/25] +\AtEndPreamble{% + \ifdim\marginparwidth<2cm\relax% + \setlength\marginparwidth{2cm}% + \fi% +} \AfterPackage*{todonotes}{% - \newcommand*\tud@todo@type@color[2]{% - \define@boolkey{todonotes}{#1}[true]{% - \ifdef{\tudprintflag}{}{% - \ifbool{KV@todonotes@#1}{\setkeys{todonotes}{color=#2}}{}% - }% - }% - }% - \tud@todo@type@color{doc}{HKS41!30}% - \tud@todo@type@color{rls}{HKS44!30}% - \tud@todo@type@color{imp}{HKS57!50}% - \tud@todo@type@color{urg}{HKS07!50}% - \tud@todo@type@color{nxt}{HKS92!30}% - \undef\tud@todo@type@color% - \newcommand*\tud@todo@marginnote{}% - \NewDocumentCommand\ToDo{somo}{% + \newcommand*\tud@todo@type@use{}% + \NewDocumentCommand\ToDo{s o m !o}{% \ifbool{@tud@todo}{% \global\let\tud@currentHref\@currentHref% \begingroup% - \let\@tempa\@empty% - \def\tud@todo@marginnote{ToDo}% - \IfValueT{#4}{% - \def\tud@todo@marginnote{#4}% - \tud@v@get\@tempc{#4}% - \ifcsdef{tud@v@\@tempc}{% - \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}% - \edef\tud@todo@marginnote{v\@tempc}% + \let\tud@todo@type@use\@empty% + \IfValueTF{#2}{% + \IfArgIsEmpty{#2}{}{% + \let\tud@todo@type@use\relax% + \ifx\tud@todo@type@pos\relax% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@neg}{}{% + \listadd\tud@todo@type@use{##1}% + }% + }% + }% + \else% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@pos}{% + \listadd\tud@todo@type@use{##1}% + }{}% + }% + }% + \fi% + \forcsvlist\tud@res@a{#2}% + }% + }{}% + \ifx\tud@todo@type@use\relax\else% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + \let\tud@res@c\@empty% + \ifinlist{rls}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS44!30,}% + \def\tud@res@b{color=HKS44!30,}% + \edef\tud@res@c{v\TUDScriptVersionNumber}% }{% - \def\@tempa##1.##2##3##4\@nil{##1##2##3}% - \edef\@tempb{\expandafter\@tempa\@tempc.000\@nil}% - \ifxnumber{\@tempb}{% - \def\@tempa{nxt}% - \edef\tud@todo@marginnote{v\@tempc}% - }{\let\@tempa\@empty}% + \ifinlist{imp}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS57!50,}% + }{% + \ifinlist{doc}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS41!30,}% + }{}% + }% + \def\tud@res@c{ToDo}% + \IfValueT{#4}{% + \begingroup% + \tud@v@get\tud@res@a{#4}% + \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% + \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% + \ifnumber{\tud@res@b}{% + \edef\tud@res@c{% + \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% + }% + \ifnum\tud@res@b>\tud@res@c\relax% + \def\tud@res@b{color=HKS92!30,}% + \else% + \ifnum\tud@res@b<\tud@res@c\relax% + \def\tud@res@b{color=HKS07!50,}% + \else% + \def\tud@res@b{color=HKS41!30,}% + \fi% + \fi% + \def\tud@res@c{v\tud@res@a}% + }{% + \let\tud@res@b\@empty% + \def\tud@res@c{#4}% + }% + \edef\tud@res@c{% + \endgroup% + \def\noexpand\tud@res@b{\tud@res@b}% + \def\noexpand\tud@res@c{\tud@res@c}% + }% + \tud@res@c% + }% }% - }% - \IfValueT{#2}{\preto\@tempa{#2,}}% - \@tempswafalse% - \ifx\tud@todo@type@pos\relax\@tempswatrue\fi% - \toks@{\forcsvlist\@tempb}% - \eaddto@hook\toks@{\expandafter{\@tempa}}% - \let\@tempa\@empty% - \def\@tempb##1{% - \eappto\@tempa{##1,}% - \ifinlist{##1}{\tud@todo@type@pos}{\@tempswatrue}{}% - \ifinlist{##1}{\tud@todo@type@neg}{\@tempswafalse}{}% - }% - \the\toks@% - \if@tempswa% \ifhmode\par\fi% \let\par\relax% \vskip\medskipamount% \noindent% - \toks@\expandafter{\@tempa inline}% + \toks@\expandafter{\tud@res@b inline}% \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}% \sbox\z@{% \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}% @@ -1379,11 +1387,30 @@ \renewcommand*\marginpar[2][]{% \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% }% - \toks@\expandafter{\@tempa noline,nolist}% - \settowidth\marginparwidth{\tud@todo@marginnote}% + \toks@\expandafter{\tud@res@a noline,nolist}% + \settowidth\marginparwidth{\tud@res@c}% \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}% + \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% \aftergroup\par\aftergroup\noindent% + \listremove{\tud@todo@type@use}{rls}% + \listremove{\tud@todo@type@use}{imp}% + \listremove{\tud@todo@type@use}{doc}% + \ifx\tud@todo@type@use\@empty\else% + \begingroup% + \let\tud@res@c\@empty% + \renewcommand*{\do}[1]{% + \appto\tud@res@c{,##1}% + }% + \dolistloop{\tud@todo@type@use}% + \edef\tud@res@c{% + \endgroup% + \edef\noexpand\tud@res@c{\expandafter\@gobble\tud@res@c}% + }% + \tud@res@c% + \ClassWarning{tudscrmanual}{% + Unknown key(s) `\string\ToDo[\tud@res@c]'% + }% + \fi% \fi% \endgroup% \global\let\@currentHref\tud@currentHref% @@ -1393,11 +1420,10 @@ \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% } \TUD@UnwindPackage{todonotes}{% - \NewDocumentCommand\ToDo{somo}{}% + \NewDocumentCommand\ToDo{s o m !o}{}% \newcommand*\ListOfToDo{}% } -\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} -\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\RequirePackage{csquotes}[2011/10/22] \RequirePackage{textcomp}[2005/09/27] \RequirePackage{setspace}[2011/12/19] \setstretch{1.1} @@ -1435,19 +1461,19 @@ } \newcommand*\Attention[2][\z@]{% \marginnote{% - \setlength\fboxsep{0.25em} + \setlength\fboxsep{0.25em}% \fbox{Achtung!}% }[#1]% \emph{\trim@spaces{#2}}% } -\NewDocumentCommand\Forum{st'}{% +\NewDocumentCommand\Forum{!s !t'}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \IfBooleanT{#2}{\toks@{\url}}% \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% \the\toks@\xspace% } -\NewDocumentCommand\CTAN{sog}{% +\NewDocumentCommand\CTAN{!s !o !g}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% \addto@hook\toks@{% @@ -1455,7 +1481,7 @@ }% \the\toks@\xspace% } -\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{% +\NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{% {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% @@ -1482,8 +1508,16 @@ \def\KOMAScript{KOMA-Script}% }% } -\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} -\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\DeclareTextFontCommand\tud@cdfont@texteb{% + \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% +} +\newrobustcmd*\OpenSans{% + \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% +} +\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} +\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} +\renewcommand*\@pnumwidth{2.1em}% +\renewcommand*\@tocrmarg{3.1em}% \newcommand*\textsbn{} \newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} \DeclareTextFontCommand\textsbn{\sbnfont} diff --git a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty index 2b479ad2142..e93f7e790b4 100644 --- a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty +++ b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty @@ -8,9 +8,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. %% ---------------------------------------------------------------------------- @@ -29,7 +29,7 @@ %%% From File: tudscr-twocolfix.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{twocolfix}[% - 2017/05/30 v2.05m TUD-Script + 2019/06/28 v2.06 TUD-Script package (twocolumn layout bugfix)% ] |