diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls | 6571 |
1 files changed, 4025 insertions, 2546 deletions
diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls index 99323dda2fc..44716c040ad 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls @@ -5,23 +5,25 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `class,article') -%% tudscr-base.dtx (with options: `load') -%% tudscr-fonts.dtx (with options: `class,option') +%% tudscr-base.dtx (with options: `class,article,load') +%% tudscr-fonts.dtx (with options: `class,article,option') +%% tudscr-area.dtx (with options: `class,article,option') %% tudscr-pagestyle.dtx (with options: `class,article,option') %% tudscr-layout.dtx (with options: `class,article,option') -%% tudscr-frontmatter.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-misc.dtx (with options: `class,execute') -%% tudscr-base.dtx (with options: `class,body') -%% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-fields.dtx (with options: `class,body') +%% 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-area.dtx (with options: `class,article,body') %% tudscr-pagestyle.dtx (with options: `class,article,body') %% tudscr-layout.dtx (with options: `class,article,body') -%% tudscr-frontmatter.dtx (with options: `class,article,body') %% tudscr-title.dtx (with options: `class,article,body') +%% tudscr-frontmatter.dtx (with options: `class,article,body') %% tudscr-comp.dtx (with options: `class,article,body') %% tudscr-misc.dtx (with options: `class,article,body') %% @@ -53,160 +55,153 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \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}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \newcommand*\TUD@ProvidesClass[3]{% - \newcommand*\TUDClassName@KOMA{#2}% - \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script ^^J#3 (#2)% ]% - \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% } -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The 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{+---------------------------------------------------------------}% } -\NeedsTeXFormat{LaTeX2e} \TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% ]{tudscrfonts} -\newif\if@tud@univers -\newif\if@tud@dinbold -\newcommand*\tud@univers{lun} -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% - \ClassWarning{\TUDClassName}% - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -\AtEndOfClass% -{% - \TUD@key{fontspec}[]% - {% - \ClassError{\TUDClassName}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - class `\TUDClassName' - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@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@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -\newcommand*\tud@cdfont{1} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% - {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% - {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% - {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% - {bar}{6},{barfont}{6},% - {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% - {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% - {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% - {headlight}{6},{headfontlight}{6},{headlightfont}{6},% - {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% - {barlight}{6},{barfontlight}{6},{barlightfont}{6},% - {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% - {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% - {litebar}{6},{litebarfont}{6},{litefontbar}{6},% - {headlite}{6},{headfontlite}{6},{headlitefont}{6},% - {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% - {barlite}{6},{barfontlite}{6},{barlitefont}{6},% - {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% - {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% - {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% - {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% - {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% - {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% - {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% - {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% - {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% - {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% - {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% - {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {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}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% \or% nohead \TUDoptions{cdhead=false}% \or% head @@ -227,16 +222,38 @@ \TUDoptions{fontspec=false}% \fi% \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \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}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } \bool@lock{@tud@cdmath} @@ -251,10 +268,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -267,28 +284,111 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +%%% From File: tudscr-area.dtx +\cs@lock{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@numkey@bool,% + {typearea}{0},% + {cd}{1},{tud}{1},{asymmetric}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3},% + {oneside}{4},% + {restricted}{5},% + {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},% + {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},% + {custom}{8},{user}{8},{package}{8}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false/typearea + \cs@set@lock{tud@cdgeometry@num}{0}% + \or% true/cd + \cs@set@lock{tud@cdgeometry@num}{2}% + \or% symmetric + \cs@set@lock{tud@cdgeometry@num}{3}% + \or% twoside + \cs@set@lock{tud@cdgeometry@num}{4}% + \TUD@KOMAoptions{twoside=true}% + \or% oneside + \ifnum\tud@cdgeometry@num>\thr@@\relax% + \cs@set@lock{tud@cdgeometry@num}{3}% + \fi% + \TUD@KOMAoptions{twoside=false}% + \or% restricted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{0}% + \or% adapted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{1}% + \or% calculated + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{2}% + \or% custom + \cs@set@lock{tud@cdgeometry@num}{1}% + \fi% + \@tempswafalse% + \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi% + \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi% + \if@tempswa% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% + \fi% +} +\newcommand*\tud@dim@extrabottommargin{\z@} +\TUD@key{extrabottommargin}{% + \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \fi% +} +\newcommand*\tud@dim@bleedmargin{.2in} +\TUD@key{bleedmargin}{% + \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% + \@tempa#1\@nil% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{twoside}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{twocolumn}{% + \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]} +}{} %%% From File: tudscr-pagestyle.dtx \newcommand*\tud@ps@list{} -\newcommand*\tud@iftudps[3]{% +\newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } \newif\if@tud@ddc@internal -\newcommand*\tud@clearpage@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{\clearpage}{}% - \fi\fi% -} -\newcommand*\tud@pagestyle@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi\fi% -} +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -302,10 +402,10 @@ \newif\if@tud@headlogo@option@set \newif\if@tud@footlogo@option@set \newif\if@tud@ddc@auto -\newcommand*\tud@ddc{0} +\newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal% \@tud@ddc@autofalse% @@ -319,12 +419,12 @@ \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@head{0} +\newcommand*\tud@ddc@head@num{0} \TUD@key{ddchead}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -333,12 +433,12 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@foot{0} +\newcommand*\tud@ddc@foot@num{0} \TUD@key{ddcfoot}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -347,43 +447,32 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head% - \let\@tempb\tud@ddc@foot% - \if@tud@ddc@auto% - \ifdefvoid{\@headlogo}{% - \let\@tempa\tud@ddc% - \let\@tempb\z@% - }{% - \let\@tempa\z@% - \let\@tempb\tud@ddc% - }% - \fi% - \tud@ifverlower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% - \fi% - }{}% + \tud@comp@resetpagestyle% } -\newlength\tud@dim@extrabottommargin -\TUD@key{extrabottommargin}{% - \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@geometry@process\fi% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% + \fi% + \global\@tud@footlogo@option@settrue% \fi% } -\cs@lock{tud@head@font}{0} -\cs@lock{tud@head@bar}{0} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} \bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% @@ -394,32 +483,42 @@ {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% - {paperwidth}{8},{wide}{8},{widehead}{8}% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font}{0}% + \cs@set@lock{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font}{1}% + \cs@set@lock{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font}{2}% + \cs@set@lock{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar}{0}% + \cs@set@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% \fi% \fi% } -\TUD@AfterPackage@Set{scrlayer-scrpage} -\newif\if@tud@foot@colored +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -431,13 +530,13 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% \or% true - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% @@ -450,71 +549,54 @@ \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% \or% nocolor - \@tud@foot@coloredfalse% + \bool@set@lock{@tud@foot@colored}{false}% \or% color - \@tud@foot@coloredtrue% + \bool@set@lock{@tud@foot@colored}{true}% \fi% \else% - \TUDoptions{extrabottommargin=#1}% + \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } \newcommand*\tud@ps@store[1]{% - \tud@@ps@store{#1}{odd}{left}{head}% - \tud@@ps@store{#1}{odd}{right}{head}% - \tud@@ps@store{#1}{odd}{middle}{head}% - \tud@@ps@store{#1}{even}{left}{head}% - \tud@@ps@store{#1}{even}{right}{head}% - \tud@@ps@store{#1}{even}{middle}{head}% - \tud@@ps@store{#1}{odd}{left}{foot}% - \tud@@ps@store{#1}{odd}{right}{foot}% - \tud@@ps@store{#1}{odd}{middle}{foot}% - \tud@@ps@store{#1}{even}{left}{foot}% - \tud@@ps@store{#1}{even}{right}{foot}% - \tud@@ps@store{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@store[4]{% + \tud@ps@@store{#1}{odd}{left}{head}% + \tud@ps@@store{#1}{odd}{right}{head}% + \tud@ps@@store{#1}{odd}{middle}{head}% + \tud@ps@@store{#1}{even}{left}{head}% + \tud@ps@@store{#1}{even}{right}{head}% + \tud@ps@@store{#1}{even}{middle}{head}% + \tud@ps@@store{#1}{odd}{left}{foot}% + \tud@ps@@store{#1}{odd}{right}{foot}% + \tud@ps@@store{#1}{odd}{middle}{foot}% + \tud@ps@@store{#1}{even}{left}{foot}% + \tud@ps@@store{#1}{even}{right}{foot}% + \tud@ps@@store{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@store[4]{% \ifcsdef{@@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}% - \tud@@ps@restore{#1}{odd}{right}{head}% - \tud@@ps@restore{#1}{odd}{middle}{head}% - \tud@@ps@restore{#1}{even}{left}{head}% - \tud@@ps@restore{#1}{even}{right}{head}% - \tud@@ps@restore{#1}{even}{middle}{head}% - \tud@@ps@restore{#1}{odd}{left}{foot}% - \tud@@ps@restore{#1}{odd}{right}{foot}% - \tud@@ps@restore{#1}{odd}{middle}{foot}% - \tud@@ps@restore{#1}{even}{left}{foot}% - \tud@@ps@restore{#1}{even}{right}{foot}% - \tud@@ps@restore{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@restore[4]{% + \tud@ps@@restore{#1}{odd}{left}{head}% + \tud@ps@@restore{#1}{odd}{right}{head}% + \tud@ps@@restore{#1}{odd}{middle}{head}% + \tud@ps@@restore{#1}{even}{left}{head}% + \tud@ps@@restore{#1}{even}{right}{head}% + \tud@ps@@restore{#1}{even}{middle}{head}% + \tud@ps@@restore{#1}{odd}{left}{foot}% + \tud@ps@@restore{#1}{odd}{right}{foot}% + \tud@ps@@restore{#1}{odd}{middle}{foot}% + \tud@ps@@restore{#1}{even}{left}{foot}% + \tud@ps@@restore{#1}{even}{right}{foot}% + \tud@ps@@restore{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@restore[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% }{}% } -\newcommand*\tud@geometry{0} -\TUD@key@lock{cdgeometry}[true]{% - \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% - \TUD@numkey@bool,% - {typearea}{0},% - {cd}{1},{tud}{1},{asymmetric}{1},% - {symmetric}{2},{centred}{2},{centered}{2},% - {normal}{2},{standard}{2},{std}{2},% - {twoside}{3},{balanced}{3}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\recalctypearea\fi% - \fi% -} %%% From File: tudscr-layout.dtx -\cs@lock{tud@layout@cover}{0} -\cs@lock{tud@layout@title}{0} -\cs@lock{tud@layout@part}{0} \newcommand*\tud@layout@switch{} \edef\tud@layout@switch{% \TUD@numkey@bool,% @@ -528,46 +610,56 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\newcommand*\tud@cd{0} +\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}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% false - \cs@std@lock{tud@layout@cover}{0}% - \cs@std@lock{tud@layout@title}{0}% - \cs@std@lock{tud@layout@part}{0}% + \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}{1}% - \cs@std@lock{tud@layout@title}{1}% - \cs@std@lock{tud@layout@part}{1}% + \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}{1}% - \cs@std@lock{tud@layout@title}{2}% - \cs@std@lock{tud@layout@part}{2}% + \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}{1}% - \cs@std@lock{tud@layout@title}{3}% - \cs@std@lock{tud@layout@part}{3}% + \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}{1}% - \cs@std@lock{tud@layout@title}{4}% - \cs@std@lock{tud@layout@part}{4}% + \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}{1}% - \cs@std@lock{tud@layout@title}{5}% - \cs@std@lock{tud@layout@part}{5}% + \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}{1}% - \cs@std@lock{tud@layout@title}{6}% - \cs@std@lock{tud@layout@part}{6}% + \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}% \fi% - \if@atdocument% - \tud@layout@process% - \else% - \ifcase\tud@cd\relax% false - \TUD@std@numkey@lock{cdgeometry}{false}% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \if@atdocument\else% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@cdgeometry@num}{0}% \else% !false - \TUD@std@numkey@lock{cdgeometry}{true}% + \cs@std@lock{tud@cdgeometry@num}{2}% \fi% \fi% \fi% @@ -576,93 +668,115 @@ \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover}{0}% + \cs@set@lock{tud@layout@cover@num}{0}% \or% true - \cs@set@lock{tud@layout@cover}{1}% + \cs@set@lock{tud@layout@cover@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@cover}{2}% + \cs@set@lock{tud@layout@cover@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@cover}{3}% + \cs@set@lock{tud@layout@cover@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@cover}{4}% + \cs@set@lock{tud@layout@cover@num}{4}% \or% color - \cs@set@lock{tud@layout@cover}{5}% + \cs@set@lock{tud@layout@cover@num}{5}% \or% full - \cs@set@lock{tud@layout@cover}{6}% + \cs@set@lock{tud@layout@cover@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@title}{0}% + \cs@set@lock{tud@layout@title@num}{0}% \or% true - \cs@set@lock{tud@layout@title}{1}% + \cs@set@lock{tud@layout@title@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@title}{2}% + \cs@set@lock{tud@layout@title@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@title}{3}% + \cs@set@lock{tud@layout@title@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@title}{4}% + \cs@set@lock{tud@layout@title@num}{4}% \or% color - \cs@set@lock{tud@layout@title}{5}% + \cs@set@lock{tud@layout@title@num}{5}% \or% full - \cs@set@lock{tud@layout@title}{6}% + \cs@set@lock{tud@layout@title@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@part}{0}% + \cs@set@lock{tud@layout@part@num}{0}% \or% true - \cs@set@lock{tud@layout@part}{1}% + \cs@set@lock{tud@layout@part@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@part}{2}% + \cs@set@lock{tud@layout@part@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@part}{3}% + \cs@set@lock{tud@layout@part@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@part}{4}% + \cs@set@lock{tud@layout@part@num}{4}% \or% color - \cs@set@lock{tud@layout@part}{5}% + \cs@set@lock{tud@layout@part@num}{5}% \or% full - \cs@set@lock{tud@layout@part}{6}% + \cs@set@lock{tud@layout@part@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% +\TUD@key{cdsection}[true]{% + \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@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}% + \fi% } -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#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@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{\relax}% +} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% !false - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% + \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@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}% +} +%%% From File: tudscr-title.dtx +\newif\if@tud@subjectthesis +\TUD@key@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -681,8 +795,8 @@ {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } -\newcommand*\tud@abstract@level{0} -\cs@lock{tud@abstract@toc}{0} +\newcommand*\tud@abstract@level@num{0} +\cs@lock{tud@abstract@toc@num}{0} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -693,14 +807,14 @@ \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@abstract@level{0}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{0}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% true - \def\tud@abstract@level{1}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{1}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% section - \def\tud@abstract@level{2}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{2}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% chapter \or% single \@tud@abstract@multifalse% @@ -715,35 +829,39 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc}{0}% + \cs@set@lock{tud@abstract@toc@num}{0}% \or% totoc - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc}{3}% + \cs@set@lock{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{2}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc}{4}% + \cs@set@lock{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@abstract@toc=\z@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num=\z@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \fi% - \ifnum\tud@abstract@toc<\thr@@\relax% + \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc}{% - \the\numexpr\tud@abstract@toc+2\relax% + \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -\newcommand*\tud@declaration@level{1} -\cs@lock{tud@declaration@toc}{0} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{abstract}[true]{% + \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% +} +\newcommand*\tud@declaration@level@num{1} +\cs@lock{tud@declaration@toc@num}{0} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -754,14 +872,14 @@ \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@declaration@level{0}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{0}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% true - \def\tud@declaration@level{1}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{1}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% section - \def\tud@declaration@level{2}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{2}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% chapter \or% single \@tud@declaration@multifalse% @@ -776,55 +894,74 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc}{0}% + \cs@set@lock{tud@declaration@toc@num}{0}% \or% totoc - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc}{3}% + \cs@set@lock{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{2}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc}{4}% + \cs@set@lock{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@declaration@toc=\z@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num=\z@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \fi% - \ifnum\tud@declaration@toc<\thr@@\relax% + \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc}{% - \the\numexpr\tud@declaration@toc+2\relax% + \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% -} %%% From File: tudscr-comp.dtx -\newcommand*\TUD@deprecated@key[2]{% - \ClassWarning{\TUDClassName}% +\newcommand*\TUD@key@deprecated[2]{% + \ClassWarning{\TUD@Class@Name}% {% - The option key `#1' is deprecated.\MessageBreak% + The option key `#1' is deprecated\MessageBreak% It's recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } +\TUD@key{fontspec}[true]{% + \ClassWarning{\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}[2014/06/21]% + \fi% +} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% \fi% \fi% } @@ -832,9 +969,9 @@ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -842,9 +979,9 @@ \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{heavyfont}{cdfont=heavy}% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% \else% - \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -852,9 +989,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@key@deprecated{din}{cdfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% \fi% \fi% } @@ -862,9 +999,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@key@deprecated{nodin}{cdfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% \fi% \fi% } @@ -872,9 +1009,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% \fi% \fi% } @@ -882,9 +1019,9 @@ \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% + \TUD@key@deprecated{sansmath}{cdmath=true}% \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% \fi% \fi% } @@ -892,28 +1029,28 @@ \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% + \TUD@key@deprecated{serifmath}{cdmath=false}% \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} +\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \TUD@key@deprecated{barfont=#1}{cdhead=false}% \or% true - \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \TUD@key@deprecated{barfont=#1}{cdhead=true}% \or% heavy - \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% + \TUD@key@deprecated{barfont=#1}{cdhead=heavy}% \fi% \fi% } @@ -921,9 +1058,9 @@ \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{widehead}{cdhead=paperwidth}% + \TUD@key@deprecated{widehead}{cdhead=paperwidth}% \else% - \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% + \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}% \fi% \fi% } @@ -931,9 +1068,9 @@ \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfoot}{cdfoot=true}% + \TUD@key@deprecated{tudfoot}{cdfoot=true}% \else% - \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% + \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -952,84 +1089,172 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{color=#1}{cd=true}% + \TUD@key@deprecated{color=#1}{cd=true}% \or% true - \TUD@deprecated@key{color=#1}{cd=color}% + \TUD@key@deprecated{color=#1}{cd=color}% \or% litecolor - \TUD@deprecated@key{color=#1}{cd=pale}% + \TUD@key@deprecated{color=#1}{cd=pale}% \or% bicolor - \TUD@deprecated@key{color=#1}{cd=bicolor}% + \TUD@key@deprecated{color=#1}{cd=bicolor}% \or% full - \TUD@deprecated@key{color=#1}{cd=fullcolor}% + \TUD@key@deprecated{color=#1}{cd=fullcolor}% \fi% \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} \newcommand*\tud@v@comp{\tud@v@last} \TUD@key{tudscrver}[last]{% - \ifcsvoid{tud@v@#1}{% - \def\tud@v@comp{0}% - \ClassWarningNoLine{\TUDClassName}% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% + \ClassWarningNoLine{\TUD@Class@Name}% {% - You have set option `tudscrver' to `#1', but\MessageBreak% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \FamilyKeyStateProcessed% + \def\tud@v@comp{0}% }{% - \ClassInfoNoLine{\TUDClassName}% + \ClassInfoNoLine{\TUD@Class@Name}% {% - Switching compatibility level to `#1'% + Switching compatibility level to `\@tempa'% }% - \edef\tud@v@comp{\@nameuse{tud@v@#1}}% - \FamilyKeyStateProcessed% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% + \FamilyKeyStateProcessed% } \AtEndOfClass% {% \TUD@key{tudscrver}[]{% - \ClassError{\TUDClassName}% + \ClassError{\TUD@Class@Name}% {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\TUDClassName' + class `\TUD@Class@Name' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.17}{% - \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\TUDClassName}{% + \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% + \ClassError{\TUD@Class@Name}{% KOMA-Script compatibility level too low% }{% - \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script compatibility option `version=v3.12'.% + \TUD@Version\space must be used at least with\MessageBreak% + KOMA-Script compatibility option `version=3.12'.% }% \fi% }{% - \ClassError{\TUDClassName}{% - KOMA-Script v3.17 is required% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% - at least. You're using \KOMAScriptVersion% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion% }% }% } -\@namedef{tud@v@first}{0} -\@namedef{tud@v@2.02}{0} -\@namedef{tud@v@v2.02}{0} -\@namedef{tud@v@2.03}{1} -\@namedef{tud@v@v2.03}{1} -\@namedef{tud@v@2.04}{2} -\@namedef{tud@v@v2.04}{2} -\@namedef{tud@v@last}{2} -\newcommand*\tud@ifverlower[1]{% - \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% - \expandafter\@firstoftwo% +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\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} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% +} +%%% 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% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \@tud@x@scr@paper@setfalse% + \if@tempswa% + \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% + \FamilyKeyStateProcessed% \else% - \expandafter\@secondoftwo% + \FamilyKeyStateUnknownValue% \fi% } -%%% From File: tudscr-misc.dtx +\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}{% @@ -1044,182 +1269,319 @@ \fi% \fi% } -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +\AtEndOfClass{% + \newcounter{symbolheadings} +} %%% From File: tudscr-misc.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} -\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} +\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} +\TUDExecuteOptions{% + cd=true,relspacing=true,tudbookmarks=true% +} \TUDProcessOptions\relax -\LoadClass{\TUDClassName@KOMA}[2015/04/23] +\LoadClass{\TUD@Class@KOMA}[2015/04/23] %%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\TUDClassName}{% - The package `graphics' was superseded by `graphicx',\MessageBreak% - which is automatically loaded% + \ClassWarningNoLine{\TUD@Class@Name}{% + Package `graphics' was superseded by `graphicx',\MessageBreak% + which now will be loaded automatically% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% - \RequirePackage{tudscrcolor}[\TUDVersion]% -} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\cs@lock{tud@multicols}{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>\@ne\relax% - \ClassWarning{\TUDClassName}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \cs@set@lock{tud@multicols}{1}% - \fi% - }% + \RequirePackage{tudscrcolor}[\TUD@Version]% +} +\cs@lock{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}% + \fi% } +\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} %%% From File: tudscr-fonts.dtx -\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*\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@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \ClassInfoNoLine{\TUDClassName}% - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} - \ClassWarningNoLine{\TUDClassName}% - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } -\newcommand*\tud@font@init{% - \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@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% +\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% + \ClassWarning{\TUD@Class@Name}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' fonts not found}% + \fi% \fi% - }% - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% + \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% + \bool@std@lock{@tud@cdmath}{false}% + \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}% + \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% + \bool@std@lock{@tud@cdmath}{true}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% \else% - \newrobustcmd*\dinbn{\@dinbn}% + \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}% \fi% - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error - }% - \ExplSyntaxOff -\fi% -\newcommand*\tud@font@init@nfss{% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% + \tud@layout@process% + \global\@tud@head@font@settrue% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% @@ -1230,39 +1592,87 @@ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% + \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 Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% \fi% \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \newrobustcmd*\dinbn{\sectfont}% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@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@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \ClassWarning{\TUD@Class@Name}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } \newcommand*\cdfont[1]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% } -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% +\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}}{% @@ -1278,33 +1688,34 @@ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + \ClassWarning{\TUD@Class@Name}% + {The font `#1' is unknown}% }}}}}}}}}}}}}}% } -\newcommand*\tud@trimfontname[2]{% +\newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% + \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% } -\newcommand*\tud@@trimfontname[2]{% +\newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% @@ -1312,20 +1723,42 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% +\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@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% - \ClassWarningNoLine{\TUDClassName}% - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% + \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% + }% }% - }% - \fi\fi\fi% - \if@tud@univers% + }{}% + \fi\fi% + \if@tud@universmath% \DeclareMathVersion{univers}% \DeclareMathVersion{universbold}% \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1336,8 +1769,10 @@ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{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}% @@ -1346,6 +1781,8 @@ \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}{}% @@ -1359,15 +1796,19 @@ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% }{}% \fi% - \if@tud@dinbold% + \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% @@ -1386,192 +1827,41 @@ \tud@font@greek@loop\tud@font@greek@init% \tud@font@math@set% }% - \sbox\z@{\dinbn$ $}% + \sbox\z@{\tud@dinbn$ $}% \undef\tud@font@math@init% } -\AtEndPreamble% -{% - \tud@font@check% - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% - \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% - \tud@font@init% - \tud@font@set[nomath]% - \AtBeginDocument{\tud@font@math@init}% -} \newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% + \ifcsundef{up#1}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% - }% - \ifcsdef{var#1}{}{% + }{}% + \ifcsundef{var#1}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% - }% + }{}% } -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% - \fi% - \ifcase\tud@cdfont\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@mweights% - \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% - \bool@std@lock{@tud@cdmath}{false}% - \cs@std@lock{tud@head@font}{0}% - \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}% - \if@tud@mweights% - \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% - \bool@std@lock{@tud@cdmath}{true}% - \cs@std@lock{tud@head@font}{\tud@cdfont}% - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% - \else% heavy - \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% - ]% - \fi% - \else% - \if@tud@univers% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true - \renewcommand*\bfdefault{m}% - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \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 - \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \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% +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \fi% - \if@tud@mweights% - \edef\rmdef@ult{\rmdefault}% - \edef\sfdef@ult{\sfdefault}% - \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% - \fi% - \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% - \normalfont\selectfont% - \tud@layout@process% -} -\newcommand*\tud@font@skip@set{% - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% -} -\newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% -} -\newcommand*\tud@font@math@set{% - \if@tud@univers% + \if@tud@universmath% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% @@ -1606,70 +1896,37 @@ } \newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} -\newcommand*\tud@head@font@bold{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@set{% - \ifdef{\@raggedtwoe@everyselectfont}{% - \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% - \selectfont% - }{}% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{bx}{n}{\tud@head@font@size}% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% - \@tempswafalse% - \ifcase\tud@head@font\relax% false - \ifnum\tud@cdfont>\z@\relax% true/heavy - \ClassWarning{\TUDClassName}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% - }% - \@tempswatrue% - \fi% - \else% true/heavy - \@tempswatrue% - \fi% - \if@tempswa% true/heavy - \if@tud@fontspec% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversRegular}{m}{n}{\tud@head@font@size}% - \fi% - \else% - \if@tud@univers% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@font@size}% - \fi% - \fi% - \fi% +\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{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% \fi% + \tud@font@check% + \tud@font@set% + \tud@font@init% + \AtBeginDocument{\tud@font@math@init}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% } \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1679,37 +1936,73 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } %%% From File: tudscr-fields.dtx -\RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} +\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}} +\newcommand*\department[2][]{\tud@head@text@field{department}{#2}} +\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}} +\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\tud@head@text@field[2]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \global\@tud@head@text@settrue% +} \newcommand*\@@title{} +\robustify\@title \renewcommand*\title[1]{% \gdef\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% \protected@xdef\@@title{\trim@spaces{#1}}% \endgroup% } +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}% + \let\@tempb\tud@split@author@list% + \robustify\and% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \protected@edef\@@author{#1}% + \tud@replace\@@author{ \relax }{}% + \tud@replace\@@author{\relax }{}% + \tud@replace\@@author{ \relax}{}% + \tud@replace\@@author{\relax}{}% + \tud@replace\@@author{ \and }{\and}% + \tud@replace\@@author{ \and}{\and}% + \tud@replace\@@author{\and }{\and}% + \protected@xdef\@@author{\trim@spaces{\@@author}}% + \endgroup% +} \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\providecommand*\publisher[1]{\publishers{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} \newcommand*\tud@thanks{} -\newcommand*\tud@thesis[2]{% +\newcommand*\tud@thesis@do[2]{% \begingroup% \global\let\tud@thanks\relax% \def\thanks##1{\gdef\tud@thanks{##1}}% @@ -1721,47 +2014,51 @@ \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \global\let\@tempa\@tempa% \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% -} -\newcommand*\tud@@thesis[2]{% + \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \csdef{@#1}{#2}% + }}}}}}}}}}}}}}}% +} +\newcommand*\tud@thesis@@do[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUD@Class@Name}{% + Field `thesis' is overwritten by `subject'% + }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{true}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{false}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% \else% \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% \fi% - \gdef\@@thesis{#2}% + \protected@xdef\@@thesis{\trim@spaces{#2}}% } -\renewcommand*\subject[1]{\tud@thesis{subject}{#1}} +\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} \newcommand*\@graduation{} -\newcommand*\@graduationabbr{} +\newcommand*\@@graduation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}% + \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[2][]{\gdef\@professor{#2}} +\newcommand*\professor[1]{\gdef\@professor{#1}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1774,41 +2071,31 @@ \newcommand*\advisor[1]{\gdef\@advisor{#1}} \newcommand*\@matriculationnumber{} \newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}% + \gdef\@matriculationnumber{#1}\ignorespaces% } \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} -\providecommand*\publisher[1]{\publishers{#1}} -\newlength\tud@signatureskip -\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newlength\tud@len@signatureskip +\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \renewcommand*\tud@split@author[2]{% - \tud@multiple@fields@store{@author}{##1}% - \ignorespaces##1% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{##2}{\hfil}% - }% - \tud@multiple@split{@author}% - \hfil% + \let\and\hfil% + \@@author\hfil% \endgroup% } \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\newcommand*\printdate[1]{#1} -\BeforePackage{isodate}{\undef\printdate} -\newcommand*\tud@printdate[2]{% +\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\newcommand*\tud@x@isodate@printdate[2]{% \ifx\today#2\relax% \gdef#1{#2}% \else% @@ -1817,43 +2104,77 @@ {\gdef#1{\printdate{#2}}}% \fi% } -\newcommand*\tud@datecheck{% +\newcommand*\tud@date@check{% \ifdefvoid{\@duedate}{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% Since a thesis is a self-contained work, an end\MessageBreak% date should be specified by the author.\MessageBreak% Nevertheless, today's date is used% }% }{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% It's substituted by the given due date% }% \global\let\@date\@duedate% }% - \global\let\tud@datecheck\relax% -} -\newcommand*\@datemore{} -\renewcommand*\date[2][]{% - \gdef\@datemore{\trim@spaces{#1}}% - \tud@printdate{\@date}{#2}% - \global\let\tud@datecheck\relax% + \global\let\tud@date@check\relax% +} +\renewcommand*\date{% + \kernel@ifstar{% + \TUD@parameter@set{date}{pre=\noexpand\@place{,}}% + \tud@date@set% + }{\tud@date@set}% +} +\newcommand*\tud@date@set[2][]{% + \TUD@parameter@set{date}{#1}% + \tud@x@isodate@printdate{\@date}{#2}% + \global\let\tud@date@check\relax% +} +\newcommand*\tud@date@pre{} +\newcommand*\tud@date@app{} +\TUD@parameter@family{date}{% + \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@let{pre}{before}% + \TUD@parameter@let{prefix}{before}% + \TUD@parameter@def{after}{\def\tud@date@app{#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@handler@value{after}% +} +\newcommand*\tud@date@print{% + \ifx\@date\@empty\else% + \ifx\tud@date@pre\@empty\else% + \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace% + \fi% + \@date% + \ifx\tud@date@app\@empty\else% + \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}% + \fi% + \fi% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} -\newcommand*\tud@multiple@@split{}% +\newrobustcmd*\dateofbirth[1]{% + \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% +} +\newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + \@latex@warning@no@line% + }{% + \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% - \expandafter\csname tud@split#1\endcsname{##1}{##2}% + \expandafter\csname tud@split#1@do\endcsname{##1}{##2}% }% \begingroup% \let\and\relax% + \def\newline{}% + \def\\{}% \edef\@tempa{\csname#1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% @@ -1867,13 +2188,10 @@ \@tempb% } \newcommand*\tud@multiple@fields@store[2]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% - \fi% - }% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -1881,45 +2199,68 @@ \endgroup% } \newcommand*\tud@multiple@fields@restore[1]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{% + \ifcsdef{@##1}{% + \tud@cmd@restore{@##1}% + \global\csletcs{@##1}{@##1}% + }{}% + }% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{% - \tud@cmd@restore{@\@tempb}% - \global\csletcs{@\@tempb}{@\@tempb}% - }{}% - \fi% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% +} +\newcommand*\tud@multiple@fields@preset[3]{% + \def\@tempa##1{% + \edef\@tempc{\csuse{##1}}% + \ifstr{#2}{*}{% + \csdef{@##1}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% + \ifin@% + \ifcsvoid{@##1}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% } -\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,matriculationyear,enrolmentyear,% + authormore,course,discipline,% + matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\TUDClassName' only supports the\MessageBreak% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% You can send your definitions to \tudscrmail\space in\MessageBreak% - order to implement support for additional languages. + order to implement support for additional languages.% }% }% } \tud@locale@define{\graduationtext} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} \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} @@ -1930,62 +2271,87 @@ \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} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} \newcommand*\tud@locale@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } \tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\supervisorname}{Betreuer}% -\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - Erstgutachter% - \else% - Gutachter% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Gutachter% + \else% + Erstgutachter% + \fi% + }{Gutachter}% +}% \tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{Fachreferent}% +\tud@locale@german{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Fachreferenten% + \else% + Erster Fachreferent% + \fi% + }{Fachreferent}% +}% \tud@locale@german{\advisorothername}{}% +\tud@locale@german{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Betreuer% + \else% + Erstbetreuer% + \fi% + }{Betreuer}% +}% +\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Betreuende Hochschullehrer% - \else% - Betreuender Hochschullehrer% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Betreuende Hochschullehrer% + \else% + Erster betreuender Hochschullehrer% + \fi% + }{Betreuender Hochschullehrer}% +}% \tud@locale@german{\professorothername}{}% \tud@locale@german{\datetext}{Eingereicht am}% \tud@locale@german{\dateofbirthtext}{Geboren am}% @@ -1995,28 +2361,29 @@ \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}{% Hiermit versichere ich, dass ich die vorliegende \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es - wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel und - Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} \"ubernommenen - Zitate habe ich als solche kenntlich gemacht. + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. + Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. \ifx\@supporter\@empty% - Es waren keine weiteren Personen an der geistigen Herstellung der - vorliegenden Arbeit beteiligt. + Es waren keine weiteren Personen an der geistigen Herstellung + der vorliegenden Arbeit beteiligt. \else% - W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden - Personen unterst\"utzt:% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von + folgenden Personen unterst\"utzt:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Weitere Personen waren an der geistigen Herstellung der - vorliegenden Arbeit nicht beteiligt. + \noindent Weitere Personen waren an der geistigen Herstellung + der vorliegenden Arbeit nicht beteiligt. \fi% 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}{% Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi @@ -2028,18 +2395,22 @@ durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen - Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des - Pr\"ufungsausschusses zug\"anglich zu machen.% -} + 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{\studentresearchname}{Studienarbeit}% +\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}% @@ -2050,39 +2421,45 @@ }% } \tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\supervisorname}{Supervisor}% -\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - First referee% - \else% - Referee% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Referees% + \else% + First referee% + \fi% + }{Referee}% +}% \tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{Advisor}% +\tud@locale@english{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Advisors% + \else% + First advisor% + \fi% + }{Advisor}% +}% \tud@locale@english{\advisorothername}{}% +\tud@locale@english{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Supervisors% + \else% + First supervisor% + \fi% + }{Supervisor}% +}% +\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Supervising professors% - \else% - Supervising professor% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Supervising professors% + \else% + First supervising professor% + \fi% + }{Supervising professor}% +}% \tud@locale@english{\professorothername}{}% \tud@locale@english{\datetext}{Submitted on}% \tud@locale@english{\dateofbirthtext}{Born on}% @@ -2092,6 +2469,7 @@ \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}{% I hereby certify that I have authored this @@ -2102,40 +2480,44 @@ indicated in this thesis have been used. I have marked both literal and accordingly adopted quotations as such. \ifx\@supporter\@empty% - They were no additional persons involved in the spiritual - preparation of the present thesis. + There were no additional persons involved in the + intellectual preparation of the present thesis. \else% - During the preparation of this thesis I was only supported - by the following persons:% + During the preparation of this thesis I was only + supported by the following persons:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Additional persons were not involved in the spiritual - preparation of the present thesis. + \noindent Additional persons were not involved in the + intellectual preparation of the present thesis. \fi% 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}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \emph{\@company}\fi. Publications, duplications and - inspections---even in part---are prohibited without explicit + , disclosed by \emph{\@company}\fi. Publications, duplications + and inspections---even in part---are prohibited without explicit permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at 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}% @@ -2150,205 +2532,1255 @@ \tud@locale@english{\@commaswap}{\,}% \tud@locale@english{\@dotswap}{.}% } -%%% From File: tudscr-pagestyle.dtx -\newlength\tud@dim@widemargin -\newlength\tud@dim@slimmargin -\newlength\tud@dim@both -\newlength\tud@dim@topmargin -\newlength\tud@dim@barheight -\newlength\tud@dim@headsep -\newlength\tud@dim@footsep -\newlength\tud@dim@logox -\newlength\tud@dim@logoy -\newlength\tud@dim@logowidth -\newlength\tud@dim@line -\newlength\tud@dim@heavyline -\newlength\tud@dim@thinline -\newlength\tud@dim@headdiff -\newlength\tud@dim@headingsvskip -\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} -\newcommand*\tud@head@font@size{} -\newcommand*\tud@geometry@set{% - \ifdim\paperheight<148.1mm\relax% - \setlength\tud@dim@widemargin{15mm}% - \setlength\tud@dim@heavyline{0.5pt}% - \setlength\tud@dim@thinline{0.25pt}% - \def\tud@head@font@size{4.5}% - \else\ifdim\paperheight<297.1mm\relax% - \setlength\tud@dim@widemargin{30mm}% - \setlength\tud@dim@heavyline{1pt}% - \setlength\tud@dim@thinline{0.5pt}% - \def\tud@head@font@size{9}% - \else\ifdim\paperheight<420.1mm\relax% - \setlength\tud@dim@widemargin{42.426407mm}% - \setlength\tud@dim@heavyline{1.414214pt}% - \setlength\tud@dim@thinline{0.707107pt}% - \def\tud@head@font@size{12.727922}% - \else\ifdim\paperheight<594.1mm\relax% - \setlength\tud@dim@widemargin{60mm}% - \setlength\tud@dim@heavyline{2pt}% - \setlength\tud@dim@thinline{1pt}% - \def\tud@head@font@size{18}% - \else\ifdim\paperheight<841.1mm\relax% - \setlength\tud@dim@widemargin{84.852814mm}% - \setlength\tud@dim@heavyline{2.828427pt}% - \setlength\tud@dim@thinline{1.414214pt}% - \def\tud@head@font@size{25.455844}% +%%% From File: tudscr-area.dtx +\newlength\tud@len@widemargin +\newlength\tud@len@slimmargin +\newlength\tud@len@both +\newlength\tud@len@topmargin +\newlength\tud@len@barheight +\newlength\tud@len@headsep +\newlength\tud@len@footsep +\newlength\tud@len@logox +\newlength\tud@len@logoy +\newlength\tud@len@logowidth +\newlength\tud@len@line +\newlength\tud@len@heavyline +\newlength\tud@len@thinline +\newlength\tud@len@areaheadvskip +\newlength\tud@len@areadiff +\newlength\tud@len@areavskip +\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\newif\if@tud@cdgeometry@adjust +\newlength\tud@len@layoutheight +\newlength\tud@len@layoutwidth +\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@dim@widemargin{120mm}% - \setlength\tud@dim@heavyline{4pt}% - \setlength\tud@dim@thinline{2pt}% - \def\tud@head@font@size{36}% - \fi\fi\fi\fi\fi% - \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}% - \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}% - \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}% - \setlength\tud@dim@footsep{% - \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% + \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \tud@if@v@lower{2.05}{% + \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% + }{% + \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }% + \@tud@cdgeometry@adjustfalse% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \ifnum\@tempa>\z@\relax% + \ifnum\@tempa<8\relax% + \def\@tempa{3}% + \fi% + \fi% + \fi% + \ifcase\@tempa\relax% <=A7/B7 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + small paper height. It is recommended to increase\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{0.5pt}% + \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}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \or% <=A6/B6 + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@thinline{0.25pt}% + \renewcommand*\tud@head@fontsize{4.5}% + \or% <=A5/B5 + \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted + \@tud@cdgeometry@adjusttrue% + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \else% + \setlength\tud@len@widemargin{21.213203mm}% + \setlength\tud@len@heavyline{0.707107pt}% + \setlength\tud@len@thinline{0.353553pt}% + \renewcommand*\tud@head@fontsize{6.363961}% + \fi% + \or% <=A4/B4 + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \or% <=A3/B3 + \setlength\tud@len@widemargin{42.426407mm}% + \setlength\tud@len@heavyline{1.414214pt}% + \setlength\tud@len@thinline{0.707107pt}% + \renewcommand*\tud@head@fontsize{12.727922}% + \or% <=A2/B2 + \setlength\tud@len@widemargin{60mm}% + \setlength\tud@len@heavyline{2pt}% + \setlength\tud@len@thinline{1pt}% + \renewcommand*\tud@head@fontsize{18}% + \or% <=A1/B1 + \setlength\tud@len@widemargin{84.852814mm}% + \setlength\tud@len@heavyline{2.828427pt}% + \setlength\tud@len@thinline{1.414214pt}% + \renewcommand*\tud@head@fontsize{25.455844}% + \or% <=A0/B0 + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@thinline{2pt}% + \renewcommand*\tud@head@fontsize{36}% + \else% >A0/B0 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + huge paper height. It is recommended to reduce\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{4pt}% + \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}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% + \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}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \global\@tud@head@font@settrue% + \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% + \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% + \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% + \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% + \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% + \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% + \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% + \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% + \setlength\tud@len@footsep{% + \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% + }% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% + \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \fi% } -\newcommand*\tud@ifsacrop{% - \ifcsdef{ifsa@crop}{% - \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% - }{% - \@secondoftwo% +\newif\if@tud@x@crop@center +\AfterPackage{crop}{% + \CheckCommand*\CROP@center{% + \voffset\stockheight + \advance\voffset-\paperheight + \voffset.5\voffset + \hoffset\stockwidth + \advance\hoffset-\paperwidth + \hoffset.5\hoffset + }% + \pretocmd{\CROP@center}{% + \@tud@x@crop@centertrue% + }{}{\tud@patch@wrn{CROP@center}} +} +\newif\if@tud@x@standalone@crop +\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} +\newcommand*\tud@cdgeometry@process{} +\newcommand*\tud@cdgeometry@@process{} +\if@tud@x@standalone@crop + \PreventPackageFromLoading{geometry}% +\else + \RequirePackage{geometry}[2010/09/12]% +\fi +\AfterPackage*{geometry}{% + \CheckCommand*\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@ + }% + \expandafter\CheckCommand% + \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}% + }% + \CheckCommand*\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% + \CheckCommand\geometry[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process% + }% + \CheckCommand\newgeometry[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}% + }% + \CheckCommand\restoregeometry{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout% + }% + \CheckCommand*\savegeometry[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}% + }% + \CheckCommand*\loadgeometry[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@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% + \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}% + \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% + \fi% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% + \TUD@parameter@family{geometry}{% + \TUD@parameter@def{paper}{\tud@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@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{layoutheight}{% + \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + }% + \TUD@parameter@def{layoutsize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{layout}{##1:##1}% + }{% + \tud@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \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}% + }% + } + \newcommand*\tud@area@def[2]{% + \tud@lowerstring{\@tempa}{#2}% + \def\@tempb##1paper##2\@nil{% + \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + }% + \expandafter\@tempb\@tempa paper\@nil% + \@tempswafalse% + \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \if@tempswa\else% + \ifx\@tempa\@empty\relax\else% + \def\@tempb##1##2\@nil{% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \@tempswafalse% + \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \@tempswatrue% + \def\@tempa{##1:##2}% + }% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \if@tempswa\else% + \def\tud@reserved##1:##2:##3:##4\@nil{% + \if@tempswa\else% + \ifstr{\@tempa}{##1}{% + \@tempswatrue% + \def\@tempa{##2##4:##3##4}% + }{}% + \fi% + }% + \tud@reserved b0j:1030:1456:mm\@nil% + \tud@reserved b1j:728:1030:mm\@nil% + \tud@reserved b2j:515:728:mm\@nil% + \tud@reserved b3j:364:515:mm\@nil% + \tud@reserved b4j:257:364:mm\@nil% + \tud@reserved b5j:182:257:mm\@nil% + \tud@reserved b6j:128:182:mm\@nil% + \tud@reserved ansia:8.5:11:in\@nil% + \tud@reserved ansib:11:17:in\@nil% + \tud@reserved ansic:17:22:in\@nil% + \tud@reserved ansid:22:34:in\@nil% + \tud@reserved ansie:34:44:in\@nil% + \tud@reserved screen:225:180:mm\@nil% + \fi% + \fi% + \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]{% + \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}% + }% + \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}% + \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% + \begingroup% + \setlength\paperwidth{\Gm@layoutwidth}% + \setlength\paperheight{\Gm@layoutheight}% + \tud@area@set{layout}% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% + }% + }% + \tud@reserved% + \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}% + \else% + \tud@loadgeometry{init@typearea}% + \fi% + \tud@AfterChangingArea% + }% + \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{% + \csuse{@ta@usegeometryfalse}% + \tud@cdgeometry@set% + \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \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,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \edef\tud@cdgeometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \tud@cdgeometry@fincl,% + footskip=\the\footskip% + }% + \else% custom + \ifGm@pass\else% + \edef\tud@cdgeometry@hmargin{% + left=\Gm@lmargin,% + right=\Gm@rmargin,% + \ifGm@includemp% + includemp=true,% + \else% + includemp=false,% + \fi% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\Gm@bindingoffset% + }% + \edef\tud@cdgeometry@vmargin{% + \ifGm@includehead% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \ifGm@includefoot% + includefoot=true,% + \else% + includefoot=false,% + \fi% + footskip=\the\footskip% + }% + \fi% + \fi% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\topmargin-\headheight-\headsep-1in\relax% + }% + \ifdim\tud@len@areadiff<\z@\relax% + \addtolength\tud@len@headsep{-\tud@len@areadiff}% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@len@areadiff}% + \fi% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep,% + textheight=\the\dimexpr\textheight-\@tempdima\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@ddcdiff{% + \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% + +\footheight-1.25\baselineskip\relax% + }% + \edef\tud@cdgeometry@ddcmargin{% + textheight=\the\dimexpr\textheight-\tud@len@areadiff% + -\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + }% + }{}% + \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')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \setlength\@tempdima{\tud@len@widemargin}% + \if@reversemargin% + \setlength\@tempdimc{\tud@len@widemargin}% + \else% + \setlength\@tempdimc{\tud@len@slimmargin}% + \fi% + \or% symmetric + \setlength\@tempdima{.5\tud@len@both}% + \setlength\@tempdimc{.5\tud@len@both}% + \or% twoside + \if@twoside% + \setlength\@tempdima{.4\tud@len@both}% + \else% + \setlength\@tempdima{.5\tud@len@both}% + \fi% + \setlength\@tempdimc{.5\tud@len@both}% + \if@twoside% + \if@reversemargin% + \setlength\@tempdimc{.4\tud@len@both}% + \else% + \setlength\@tempdimc{.6\tud@len@both}% + \fi% + \fi% + \fi% + \addtolength\@tempdimc{-\headsep}% + \setlength\@tempdimb{% + \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% + }% + \if@mincl% + \addtolength\@tempdimb{-\@tempdimc}% + \fi% + \edef\tud@cdgeometry@hmargin{% + left=\the\@tempdima,% + textwidth=\the\@tempdimb,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\@tempdimc,% + marginparsep=\the\dimexpr.5\headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \if@twoside% + \ifcase\tud@cdgeometry@num\relax\or\or% true + \appto\tud@cdgeometry@hmargin{,asymmetric}% + \else% symmetric/twoside + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@if@v@lower{2.03}{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\dimexpr.5\tud@len@both\relax,% + headheight=\the\headheight,% + headsep=\the\tud@len@headsep,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }% + }{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\tud@len@slimmargin,% + headheight=\the\headheight,% + headsep=\the\headsep,% + bottom=\the\dimexpr\tud@len@widemargin% + +\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + }% + }% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep% + }% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\tud@len@slimmargin\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -.5\tud@len@both\relax% + }% + \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \edef\tud@cdgeometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff+\tud@len@headsep+\footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip+\tud@len@ddcdiff\relax,% + }% + }{}% + \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% + }{}% + \tud@cdgeometry@@@process% + }% + \newcommand*\tud@cdgeometry@@@process{% + \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% + \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% + \tud@if@v@lower{2.03}{% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin,% + \tud@cdgeometry@ddcmargin,% + ignorehead,ignorefoot% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudareaddc}% + }{}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudarea}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{stdarea}% + \if@atdocument% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% + }% + \fi% + }% + \newcommand*\tud@cdgeometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@cdgeometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@cdgeometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% }% } -\tud@ifsacrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% -}{% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\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}% + }% + }% + \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% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@len@areavskip=\tud@len@areavskip% + }{}% } -\tud@cmd@store{pagestyle} -\cslet{ps@tudheadings}{\ps@headings}% -\cslet{ps@plain.tudheadings}{\ps@plain}% -\cslet{ps@empty.tudheadings}{\ps@empty}% -\providecommand*\currentpagestyle{plain} -\providecommand*\BeforeSelectAnyPageStyle[1]{} -\providecommand*\GetRealPageStyle[1]{#1} -\BeforePackage{scrlayer-scrpage}{% - \tud@cmd@restore{pagestyle}% - \csundef{ps@tudheadings}% - \csundef{ps@plain.tudheadings}% - \csundef{ps@empty.tudheadings}% - \undef\currentpagestyle% - \undef\BeforeSelectAnyPageStyle% - \undef\GetRealPageStyle% +\newcommand*\tud@AfterChangingArea{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% } -\let\tud@pagestyle\pagestyle -\apptocmd{\tud@pagestyle}{% - \edef\currentpagestyle{#1}% -}{}{\tud@patch@wrn{pagestyle}}% -\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} -\AtEndPreamble{% - \@ifpackageloaded{scrlayer-scrpage}{}{% - \let\pagestyle\tud@pagestyle% - \undef\tud@pagestyle% +\newcommand*\tud@cdgeometry@init{% + \AtEndPreamble{% + \if@tud@x@standalone@crop% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% + \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}% + }% + \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% + \endgroup% + \tud@reserved{custom}% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \ifundef{\AfterRestoreareas}{}{% + \AfterRestoreareas{\tud@AfterChangingArea}% + }% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% + \tud@cdgeometry@process% + \fi + \let\tud@cdgeometry@init\relax% }% } +\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\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]{}% +} +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@if@v@lower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@if@tudheadings{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \enlargethispage{-\tud@len@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +%%% From File: tudscr-pagestyle.dtx +\if@tud@x@standalone@crop + \PreventPackageFromLoading{scrlayer-scrpage}% +\else + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\fi \AfterPackage{scrlayer-scrpage}{% \DeclareNewLayer[% background,headsep,% - voffset=\tud@dim@logoy,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% contents={% \tud@mainlogo@set% \tud@headlogo@option@set% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% \tud@mainlogo@use\hfill\tud@headlogo@use% },% ]{tudheadings.head.content}% \DeclareNewLayer[% background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% contents={% - \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% + \rule{\layerwidth}{\layerheight}% \fi% },% ]{tudheadings.head.back}% \DeclareNewLayer[% background,% - voffset=\tud@dim@topmargin,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \color{HKS41!60}% - \rule{\layerwidth}{\tud@dim@barheight}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% \fi% },% ]{tudheadings.head.bar}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% ]{tudheadings.head.text}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.upperline}% + ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.lowerline}% + ]{tudheadings.head.lowline}% \DeclareNewLayer[% background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.upperwideline}% + ]{tudheadings.head.uplinewide}% \DeclareNewLayer[% background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.lowerwideline}% + ]{tudheadings.head.lowlinewide}% + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% \DeclareNewLayer[% background,foot,% - hoffset=0pt,% - width=\paperwidth,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% addvoffset=-\dp\strutbox,% - height=\dimexpr\paperheight-\layeryoffset\relax,% contents={% \if@tud@foot@colored% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% @@ -2363,14 +3795,14 @@ \fi% },% ]{tudheadings.foot.back}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% @@ -2381,14 +3813,14 @@ }% \ifx\@tempc\relax\else% \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifcase\@tempb\relax% \tud@ddc@foot@num=false \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% }% }% - \else% \tud@ddc@foot!=false + \else% \tud@ddc@foot@num!=false \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% @@ -2398,23 +3830,35 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% contents={% - \tud@footlogoheight@set% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% - \tud@footlogo@option@set% - \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% - \hspace*{-\layerwidth}% - \tud@footlogo@cmd@use% - \hspace*{-\layerwidth}% - \hfill\tud@footlogo@ddc@use{\@tempdima}% },% ]{tudheadings.foot.content}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% ]{tudheadings.foot.content}% }{}% \DeclareNewLayer[% @@ -2427,10 +3871,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -2440,7 +3885,6 @@ scrheadings.foot.above.line,% scrheadings.foot.below.line% }% - \listadd\tud@ps@list{tudheadings}% \DeclareNewPageStyleAlias{tud}{tudheadings}% \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% @@ -2451,10 +3895,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -2464,7 +3909,6 @@ plain.scrheadings.foot.above.line,% plain.scrheadings.foot.below.line% }% - \listadd\tud@ps@list{plain.tudheadings}% \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% @@ -2477,23 +3921,28 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last% }% - \listadd\tud@ps@list{empty.tudheadings}% \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \newcommand*\tud@pagecolor{}% \DeclareNewLayer[% - background,page,% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -2503,8 +3952,11 @@ ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `fancyhdr' must not be used with a\MessageBreak% TUD-KOMA-Script class. You should make use of the\MessageBreak% capabilities of package `scrlayer-scrpage' instead% @@ -2522,203 +3974,305 @@ \newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax% cdhead=nocolor - \def\tud@head@logocolor{black}% - \def\tud@head@fontcolor{}% - \def\tud@foot@logocolor{black}% - \def\tud@foot@fontcolor{}% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% \or% cdhead=litecolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% \or% cdhead=barcolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{white}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% + }% \fi% - \or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% + \else% cdhead=*color \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% \fi% }{% \ifstr{\tud@pagecolor}{HKS41}{% - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \def\tud@foot@logocolor{white}% + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% \if@tud@foot@colored% - \def\tud@foot@fontcolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \def\tud@foot@fontcolor{HKS41!30}% + \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% \bool@std@lock{@tud@head@widebar}{true}% }{% - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \ifcase\tud@head@bar\relax\or\or\or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% \fi% \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% \bool@std@lock{@tud@head@widebar}{true}% }% }% - \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \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@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% +} +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + \tud@cdgeometry@init% +} \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% - \xdef\@specialstyle{\GetRealPageStyle{#1}} + \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@head@text{} -\newcommand*\tud@head@text@first{} -\newcommand*\tud@head@text@second{} +\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{} \newcommand*\tud@head@text@buffer{} -\newcommand*\tud@head@rule[1]{% - \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@dim@line}% -} -\newcommand*\tud@head@text@add[3][, ]{% - \protected@edef\tud@head@text{#3}% - \ifx\tud@head@text\@empty% - \def\tud@head@text@delimiter{}% - \else% - \edef\tud@head@text@delimiter{\tud@head@text@buffer}% +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% \def\tud@head@text@buffer{#1}% - \fi% - \if@tempswa\else% - \def\@tempa{% - \tud@head@text@first% - \tud@head@text@delimiter% - #2% - \tud@head@text% + \edef\@tempa{% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% }% \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% - \@tempswatrue% - \def\tud@head@text@delimiter{}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% \else% - \protected@edef\tud@head@text@first{\@tempa}% + \edef\tud@head@text@line{\expandonce\@tempa}% \fi% - \fi% - \if@tempswa% - \protected@edef\tud@head@text@second{% - \tud@head@text@second% - \tud@head@text@delimiter% - #2% - \tud@head@text% + }% +} +\newif\if@tud@head@text@set +\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{}% + \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}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% + }% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% + }% }% \fi% } \newcommand*\tud@head@text@box{% \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUD@Class@Name}{No `\string\faculty' given}% \faculty{}% \fi% - \tud@head@font@set% - \@tempswafalse% - \def\tud@head@text@first{}% - \def\tud@head@text@second{}% - \def\tud@head@text@buffer{}% - \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}% - \tud@head@text@add{\tud@head@font@light}{\@chair}% - \settowidth\@tempdima{\tud@head@text@second}% - \ifdim\@tempdima>\textwidth\relax% - \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% - \hfuzz=\@tempdima% - \fi% - \vbox{% - \linespread{0}\selectfont\offinterlineskip% - \tud@color{\tud@head@fontcolor}% - \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color + \def\@tempb{\tud@color{\tud@head@fontcolor}}% + \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempa##1{% + \settowidth\@tempdima{##1}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% - \ifx\tud@head@text@second\@empty% - \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% - \else% - \newline\tud@head@text@write{\tud@head@text@second}% - \ifx\@extraheadline\@empty\else% - \newline\vbox{\tud@head@font@light\@extraheadline}% - \fi% - \fi% }% -} -\newcommand*\tud@head@text@write[1]{% - \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% - \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% -} -\newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\TUDClassName}{% - The given entries for the headline\MessageBreak% - (faculty, institute etc.) are #1\MessageBreak% - too wide for the textwidth% + \vbox{% + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% }% \global\let\tud@head@text@wrn\@gobble% } +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% +} +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% +} \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@logo@#1\endcsname% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% - \global\expandafter\sbox\csname tud@logo@#1\endcsname% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% } \newcommand*\tud@uselayerbox[1]{% - \expandafter\usebox\csname tud@logo@#1\endcsname% + \expandafter\usebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@vlayerbox[3]{% \begingroup% \setbox\z@\vbox{#2}% \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima% + The maximum height is exceeded by \the\@tempdima\MessageBreak% }% \fi% \endgroup% \vbox to #1{#2}% } +\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% + }% + }{}% +} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% + }{% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% + }% + \fi% + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} \tud@newlayerbox{main@black} \tud@newlayerbox{main@HKS41} \tud@newlayerbox{main@white} -\newlength\tud@mainlogoheight +\newlength\tud@len@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} \newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% - \global\tud@mainlogoheight=\tud@mainlogoheight% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The selected page layout means that the\MessageBreak% logo of TUD extends beyond the printing area.\MessageBreak% The inner margin is smaller than BCOR\MessageBreak% @@ -2730,13 +4284,14 @@ \fi% }% \tud@headlogo@set% - \tud@footlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -2744,28 +4299,28 @@ \tud@newlayerbox{head@HKS41} \tud@newlayerbox{head@white} \tud@newlayerbox{head@option} -\newcommand*\@headlogo{} -\newcommand*\@@headlogo{} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} \newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@headlogo{#2}% - \def\@@headlogo{#1}% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#1}% \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \gdef\tud@headlogo@wrn{% - \ClassWarning{\TUDClassName}{% - The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% }% \global\let\tud@headlogo@wrn\relax% }% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } \newcommand*\tud@headlogo@set{% \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -2777,39 +4332,44 @@ \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% \includegraphics[% - keepaspectratio,totalheight=\tud@mainlogoheight,##2% - ]{\trim@spaces{##1}}% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% }% }% \tud@savelayerbox{head@option}{}% \tud@ddc@check% - \ifcase\@tempa\relax% \tud@ddc@head=false - \ifdefvoid{\@headlogo}{}{% - \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% + }% \@tempb% }% - \or\or% \tud@ddc@head=color + \or\or% \tud@ddc@head@num=color \@tempc{DDC-03}{}% - \or% \tud@ddc@head=colorblack + \or% \tud@ddc@head@num=colorblack \@tempc{DDC-09}{}% - \or% \tud@ddc@head=gray + \or% \tud@ddc@head@num=gray \@tempc{DDC-21}{}% - \or% \tud@ddc@head=black + \or% \tud@ddc@head@num=black \@tempc{DDC-24}{}% - \or% \tud@ddc@head=blue + \or% \tud@ddc@head@num=blue \@tempc{DDC-27}{}% - \or% \tud@ddc@head=white + \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% \global\@tud@headlogo@option@setfalse% \fi% } \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@mainlogoheight}{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% - \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true \tud@uselayerbox{head@\tud@head@logocolor}% \else% \tud@uselayerbox{head@option}% @@ -2817,9 +4377,9 @@ }% \vss% }{% - The given `\string\headlogo{\@headlogo}' is too large.% - } - \ifdefvoid{\@headlogo}{}{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% \tud@ddc@check% \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% }% @@ -2828,95 +4388,89 @@ \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} -\newlength\footlogoheight -\newlength\tud@footlogoheight -\newcommand*\tud@footlogoheight@set{% - \ifdim\footlogoheight=\z@\relax% - \tud@ifverlower{2.03}{% - \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% }{% - \setlength\tud@footlogoheight{\tud@mainlogoheight}% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% }% - \else% - \ifdim\footlogoheight=\tud@footlogoheight\relax\else% - \setlength\tud@footlogoheight{\footlogoheight}% - \global\@tud@footlogo@option@settrue% - \fi% - \fi% - \global\tud@footlogoheight=\tud@footlogoheight% + }{}% } \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@footlogoheight@set% \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% + \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% }% } -\newcommand*\tud@footlogo@set{% - \tud@footlogo@ddc@set{black}{DDC-22}% - \tud@footlogo@ddc@set{HKS41}{DDC-25}% - \tud@footlogo@ddc@set{white}{DDC-28}% - \tud@footlogo@option@set% -} \newcommand*\tud@footlogo@option@set{% \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% \tud@ddc@check% - \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color \tud@footlogo@ddc@set{option}{DDC-01}% - \or% \tud@ddc@foot=colorblack + \or% \tud@ddc@foot@num=colorblack \tud@footlogo@ddc@set{option}{DDC-07}% - \or% \tud@ddc@foot=gray + \or% \tud@ddc@foot@num=gray \tud@footlogo@ddc@set{option}{DDC-19}% - \or% \tud@ddc@foot=black + \or% \tud@ddc@foot@num=black \tud@footlogo@ddc@set{option}{DDC-22}% - \or% \tud@ddc@foot=blue + \or% \tud@ddc@foot@num=blue \tud@footlogo@ddc@set{option}{DDC-25}% - \or% \tud@ddc@foot=white + \or% \tud@ddc@foot@num=white \tud@footlogo@ddc@set{option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% \fi% } -\newcommand*\tud@footlogo@ddc@use[1]{% - \tud@vlayerbox{#1}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% \tud@ddc@foot=true - \tud@uselayerbox{foot@\tud@foot@logocolor}% - \else% - \tud@uselayerbox{foot@option}% - \fi% +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + 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% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% }% - \vss\vss% - }{% - The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% - high. You should reduce this length.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% - }% + \usebox\z@\hspace*{-\wd\z@}% + \fi% } \tud@newlayerbox{foot@cmd} \newcommand*\footlogosep{\hfill} -\newcommand*\@footlogo{} -\newcommand*\@@footlogo{} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} \newcommand*\footlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@footlogo{#2}% - \def\@@footlogo{#1}% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% \global\@tud@footlogo@cmd@settrue% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } \newif\if@tud@footlogo@cmd@set \newcommand*\tud@footlogo@cmd@set[2]{% \if@tud@footlogo@cmd@set% - \tud@footlogoheight@set% \tud@savelayerbox{foot@cmd}{% \hbox to #2{% \let\@tempa\relax% - \@for\@tempb:=\@footlogo\do{% + \@for\@tempb:=\tud@footlogo@filenames\do{% \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% \@tempa% \ifx\@tempb\@empty\else% @@ -2946,553 +4500,238 @@ \let\@tempc\relax% \DeclareListParser{\@tempc}{:}% \@tempc{#1}% - \preto\@@footlogo{% - keepaspectratio,totalheight=\tud@footlogoheight,% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% + }% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% }% - \appto\@@footlogo{\@tempb}% - \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } -\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% -\newkomafont{tudheadings}{% - \sffamily% - \tud@color{\tud@foot@fontcolor}% +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% } -\newcommand*\tud@footcontent@font{} +\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} +\newcommand*\tud@footcontent@fontface{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{} +\newcommand*\tud@footcontent@right{\@nil} \newcommand*\footcontent{% - \@ifstar{% - \@tempswafalse% - \@footcontent% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% }{% - \@tempswatrue% - \@footcontent% - }% -} -\newcommand*\@footcontent[2][]{% - \kernel@ifnextchar[%] - {\@@footcontent{#1}{#2}}% - {\@@footcontent{#1}{#2}[\@nnil]}% -} -\newcommand*\@@footcontent{} -\def\@@footcontent#1#2[#3]{% - \if@tempswa% - \def\tud@footcontent@font{% + \renewcommand*\tud@footcontent@fontface{% \usekomafont{tudheadings}% - \tud@divide\@tempa{\tud@head@font@size}{\f@size}% - \linespread{\@tempa}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% \selectfont% - \tud@head@font@light% - #1% }% - \else% - \def\tud@footcontent@font{#1}% + \tud@footcontent@do% + }% +} +\newcommand*\tud@footcontent@do[2][]{% + \kernel@ifnextchar[%] + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% +} +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% + \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% \fi% - \def\tud@footcontent@left{#2}% - \def\tud@footcontent@right{#3}% } \newcommand*\tud@footcontent@use[2]{% - \tud@ddc@check% - \ifcase\@tempb% - \setlength\@tempdimc{\z@}% - \else% - \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% - \fi% - \tud@vlayerbox{#1}{% - \vss% - \hbox to #2{% - \tud@footcontent@font% - \expandafter\ifx\tud@footcontent@right\@nnil\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% - }% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% \fi% - \hss% - }% - \vss\vss% - }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content or\MessageBreak% - lower the fontsize via the optional argument.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% \fi% - }% -} -\AtEndPreamble{% - \@ifpackageloaded{geometry}{}{% - \def\tud@geometry@process{\tud@geometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{geometry}% -}{% - \RequirePackage{geometry}[2010/09/12]% - \newcommand*\tud@geometry@hmargin{}% - \newcommand*\tud@geometry@vmargin{}% - \newcommand*\tud@geometry@tudmargin{}% - \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% - \newcommand*\tud@newgeometry[1]{% - \if@atdocument% - \edef\@tempa{#1}% - \expandafter\newgeometry\expandafter{#1}% + \else% + \@tempswatrue% + \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% \else% - \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% - \expandafter\geometry\expandafter{\@tempa}% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% \fi% - }% - \newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% false - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% - \fi% - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr\oddsidemargin+1in% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \edef\tud@geometry@vmargin{% - \if@hincl% - includehead=true,% - top=\the\dimexpr\tud@ta@topmargin+1in\relax,% + \tud@vlayerbox{#1}{% + \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% - includehead=false,% - top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - \fi% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - textheight=\the\tud@ta@textheight,% - \tud@geometry@fincl,% - footskip=\the\tud@ta@footskip% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \setlength\@tempdima{\z@}% - \else% - \setlength\@tempdima{\tud@ta@headdiff}% - \fi% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,% - ignorehead% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \edef\tud@geometry@ddcmargin{% - textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\TUDClassName}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% - \else% true/symmetric/twoside - \ifcase\tud@geometry\or% true - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\tud@dim@widemargin,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside asymmetric,\fi% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - marginparwidth=\the\dimexpr\tud@dim@widemargin% - -\tud@ta@headsep\relax,% - \else% - reversemarginpar=false,% - marginparwidth=\the\dimexpr\tud@dim@slimmargin% - -\tud@ta@headsep\relax,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% symmetric - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr.5\tud@dim@both\relax,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% twoside - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - \if@twoside% - left=\the\dimexpr.4\tud@dim@both\relax,% - twoside,% - \else% - left=\the\dimexpr.5\tud@dim@both\relax,% - \fi% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr.4\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \if@twoside% - marginparwidth=\the\dimexpr.6\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \fi% - \tud@ifverlower{2.03}{% - \edef\tud@geometry@vmargin{% - top=\the\dimexpr.5\tud@dim@both\relax,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }{% - \edef\tud@geometry@vmargin{% - top=\the\tud@dim@slimmargin,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - ignorehead% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% - }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \edef\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% - }% - }{}% - \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \tud@ifverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% - \tud@geometry@@process% - }% - \newcommand*\tud@geometry@@process{% - \edef\Gm@restore@org{\Gm@restore}% - \tud@ifverlower{2.03}{% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot% - }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudareaddc}% - }{}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin% - }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudarea}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin% - }% - \tud@newgeometry{\@tempa}% - \savegeometry{typearea}% - }% - \newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead=true% - \else% - includehead=false% - \fi% - }% - \newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot=true% - \else% - includefoot=false% - \fi% - }% - \newcommand*\tud@geometry@mpincl{% - \if@mincl% - includemp=true% - \else% - includemp=false% - \fi% - }% -} -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \tud@iftudps{#1}{% - \tud@ifverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% }% - \else% \tud@ddc@foot!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% + \hss% }% - \setlength\tud@dim@headdiff{\z@}% - \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% - \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + \vss\vss% }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% \fi% - \tud@font@koma@unset{pagefoot}% - \tud@font@koma@unset{pagenumber}% }% - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% -} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\tud@ifverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \tud@iftudps{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% - }% - }{}% - }% -}{} -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@AfterChangingArea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% - }{% - \setlength\tud@ta@footheight{\ta@fh}% - }% - \setlength\tud@ta@footskip{\footskip}% - \tud@geometry@process% - \global\@tud@mainlogo@settrue% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% + \else% + \hbox to #2{}% + \fi% } -\AtEndPreamble{% - \tud@ifsacrop{}{% - \AfterCalculatingTypearea{\tud@AfterChangingArea}% - \AfterSettingArea{\tud@AfterChangingArea}% - \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% - \recalctypearea% - }% +\newcommand*\tud@ps@parameters[1]{% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% } -\newcommand*\tud@ps{tudheadings} -\newcommand*\tud@ps@select{% - \expandafter\pagestyle\expandafter{\tud@ps}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% +\newcommand*\tud@envir@ps{tudheadings} +\newcommand*\tud@envir@selectps{% + \expandafter\pagestyle\expandafter{\tud@envir@ps}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% \renewcommand*\indexpagestyle{empty.tudheadings}% }{}% } -\newcommand*\tud@currentpagestyle{} +\newcommand*\tud@currentpagestyle@value{} \newcommand*\tud@currentpagestyle@set{% - \ifdefvoid{\tud@currentpagestyle}{% - \xdef\tud@currentpagestyle{\currentpagestyle}% + \ifdefvoid{\tud@currentpagestyle@value}{% + \xdef\tud@currentpagestyle@value{\currentpagestyle}% }{}% } \newcommand*\tud@currentpagestyle@reset{% - \ifdefvoid{\tud@currentpagestyle}{}{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% + \ifdefvoid{\tud@currentpagestyle@value}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% + \let\tud@currentpagestyle@value\relax% }% } \NewEnviron{tudpage}[1][]{% \tud@currentpagestyle@set% \clearpage% - \def\tud@ps{tudheadings}% + \def\tud@envir@ps{tudheadings}% \TUD@parameter@set{tudpage}{#1}% - \tud@ps@select% - \tud@multicols@check% - \ifnum\tud@multicols>\@ne\relax% - \begin{multicols}{\tud@multicols}% + \tud@envir@selectps% + \tud@x@multicol@check% + \ifnum\tud@x@multicol@num>\@ne\relax% + \begin{multicols}{\tud@x@multicol@num}% \fi% \BODY% - \ifnum\tud@multicols>\@ne\relax% + \ifnum\tud@x@multicol@num>\@ne\relax% \end{multicols}% \fi% }[% \aftergroup\tud@currentpagestyle@reset% \clearpage% ] -\newcommand*\TUD@parameter@define@ps[1]{% - \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% - \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% - \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% - \TUD@parameter@define{headlogo}{\headlogo{#1}}% - \TUD@parameter@define{footlogo}{\footlogo{#1}}% - \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% - \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% - \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% - \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% - \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% - \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% - \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% - \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% - \TUD@parameter@let{logo}{headlogo}% -} -\TUD@parameter{tudpage}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{% - \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% +\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{pagestyle}{% + \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% \TUD@parameter@error{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% }% }% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@default{}% } %%% 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% + }% + }% + \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempb\do{% + \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}}{}}}}% + }% +} +\AtEndPreamble{\tud@x@scr@headings@set} +\newcommand*\tud@x@scr@headings@reset{% + \tud@layout@process% + \tud@x@scr@headings@set[% + \ifcase\tud@layout@part@num\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@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}% + \fi% + ]% +} +\newcommand*\tud@title@fontcolor{} \newcommand*\tud@part@fontcolor{} -\newlength\pageheadingsvskip -\newlength\headingsvskip +\newcommand*\tud@section@fontcolor{} +\providecommand*\raggedtitle{\tud@raggedright} \newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% false - \bool@std@lock{@tud@cover@cdgeometry}{false}% + \ifcase\tud@layout@cover@num\relax% false + \bool@std@lock{@tud@cdgeometry@cover}{false}% \else% !false - \bool@std@lock{@tud@cover@cdgeometry}{true}% + \bool@std@lock{@tud@cdgeometry@cover}{true}% \fi% - \ifcase\tud@layout@title\relax% false - \tud@cmd@restore{maketitle}% - \tud@cmd@restore{@maketitle}% + \ifcase\tud@layout@title@num\relax% false \tud@cmd@restore{titlepagestyle}% \tud@font@koma@unset{titlehead}% \tud@font@koma@unset{title}% @@ -3502,34 +4741,36 @@ \tud@font@koma@unset{date}% \tud@font@koma@unset{publishers}% \else% !false - \tud@cmd@store{maketitle}% - \tud@cmd@store{@maketitle}% \tud@cmd@store{titlepagestyle}% + \renewcommand*\titlepagestyle{plain.tudheadings}% \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% \tud@font@koma@set{title}{% + \raggedtitle% \usekomafont{disposition}% - \tud@font@heading% - \tud@font@heading@size% + \tud@sec@fontface% + \tud@sec@fontsize% \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subtitle}{% - \tud@font@heading% + \raggedtitle% + \ifstr{\mddefault}{l}{% + \tud@sec@fontface[\fontseries{m}]% + }{% + \tud@sec@fontface[\fontseries{bx}]% + }% \usesizeofkomafont{section}% \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subject}{% - \fontfamily{\sfdefault}% - \fontseries{\bfdefault}% - \selectfont% + \sffamily% + \bfseries% \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}}% - \let\maketitle\tud@maketitle% - \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% false + \ifcase\tud@layout@part@num\relax% false \tud@cmd@restore{partheadstartvskip}% \ifcsdef{scr@v@3.18}{% \tud@cmd@restore{scr@@startpart}% @@ -3538,38 +4779,65 @@ }% \tud@sectioning@reset[addpart]{part}% \tud@font@koma@unset{partnumber}% + \tud@cmd@restore{raggedpart}% \else% !false \tud@cmd@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@sectioning@set[addpart]{part}{% - \tud@font@heading% + \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% \tud@font@koma@set{partnumber}{% - \tud@font@heading% + \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% - \let\partheadstartvskip\tud@partheadstartvskip% - \ifcsdef{scr@v@3.18}{% - \let\scr@@startpart\tud@@startpart% - }{% - \let\@part\tud@@part% - }% + \tud@cmd@store{raggedpart}% + \renewcommand*\raggedpart{\tud@raggedright}% \fi% - \ifcase\tud@layout@part\relax% false + \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}% \else% !false - \tud@sectioning@set[addsec]{section}{\tud@font@heading}% - \tud@sectioning@set{subsection}{\tud@font@heading}% - \tud@sectioning@set{subsubsection}{\tud@font@heading}% - \tud@sectioning@set{minisec}{\tud@font@heading}% + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@layout@section@num\relax\or\else% *color + \renewcommand*\tud@section@fontcolor{HKS41}% + \fi% + \tud@sectioning@set[addsec]{section}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsubsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{minisec}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{paragraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subparagraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@cmd@store{raggedsection}% + \renewcommand*\raggedsection{\tud@raggedright}% \fi% } \newcommand*\tud@layout@specialpage@set[1]{% @@ -3584,29 +4852,35 @@ \let\footnoterule\relax% } \newcommand*\tud@partheadstartvskip{} -\let\tud@partheadstartvskip\partheadstartvskip% +\let\tud@partheadstartvskip\partheadstartvskip \pretocmd{\tud@partheadstartvskip}{% - \def\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part\relax\or\else% *color - \def\tud@part@fontcolor{HKS41}% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part@num\relax\or\else% *color + \renewcommand*\tud@part@fontcolor{HKS41}% \fi% }{}{\tud@patch@wrn{tud@partheadstartvskip}} -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} \if@tempswa \newcommand*\tud@@startpart{}% \let\tud@@startpart\scr@@startpart% - \patchcmd{\tud@@startpart}% - {\usekomafont{#1prefix}{\@nameuse{#1format}}}% - {\usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}}% - {}{\tud@patch@wrn{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}}% + \fi% \else \newcommand*\tud@@part{}% - \let\tud@@part\@part - \patchcmd{\tud@@part}% - {\size@partnumber{\partformat}}% - {\size@partnumber{\tud@makeuppercase{\partformat}}}% - {}{\tud@patch@wrn{@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{} @@ -3665,7 +4939,7 @@ \ifblank{#1}{}{\tud@cmd@restore{#1}}% \tud@font@koma@unset{#2}% } -\robustify{\footnote}% +\robustify{\footnote} \newcommand*\tud@sectioning@uppercase[1]{% \begingroup% \if@tud@symbolheadings% @@ -3675,419 +4949,148 @@ \tud@makeuppercase{#1}% \endgroup% } -%%% From File: tudscr-frontmatter.dtx -\newcommand*\tud@fm@check[2]{% - \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section - \ifboolexpr{% - bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% - }{% - \sbox\z@{\vbox{#2}}% - \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% - \ClassWarning{\TUDClassName}{% - The given content within the `#1'\MessageBreak% - environment is too large, so it wasn't possible\MessageBreak% - to center the body vertically. Setting the option\MessageBreak% - `#1=nofill' would be a solution. You\MessageBreak% - could also use multiple `#1' environments% - }% - \boolfalse{@tud@#1@fil}% - \fi% - }{}% - }{% chapter - }% - \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% - \tud@fm@toc{#1}{#2}% - \fi% - \global\let\tud@fm@set\tud@fm@first% - #2% -} -\newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} -\newcommand*\tud@fm@toc[2]{% - \ifbool{@tud@#1@multi}{% - \begingroup% - \let\tud@fm@@@toc\@empty% - \renewcommand*\tud@fm@head[2]{% - \protected@edef\@tempa{##2}% - \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% - \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% - }% - \let\clearpage\relax% - \sbox\z@{\vbox{#2}}% - \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% - }% - }% - \@tempa% - }{% - \ClassWarning{\TUDClassName}{% - It isn't possible to use `#1=single'\MessageBreak% - with `#1=tocmultiple'% - }% - \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc}{% - \the\numexpr\@nameuse{tud@#1@toc}-2\relax% - }% - }% - \@tempa% - }% -} -\newcommand\tud@fm@set[1]{} -\newcommand\tud@fm@first[1]{% - \global\let\tud@fm@set\tud@fm@next% - \if@twocolumn\else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \null\vfil% - \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section - \vspace{\dimexpr-\parskip-\baselineskip\relax}% - {\usekomafont{section}{\vspace{-\baselineskip}}}% - \fi% - }{}% - \fi% - \fi% +%%% From File: tudscr-title.dtx +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% } -\newcommand\tud@fm@next[1]{% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@multi}{% - \ifbool{@tud@#1@fil}{\vfil}{}% - }{% - \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% - }% - \else% - \ifnum\@nameuse{tud@#1@level}=\z@% - \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% - \fi% - \fi% - \fi% +\newkomafont{titlepage}{% + \usekomafont{subject}% + \mdseries% + \large% } -\newcommand*\tud@fm@body@start[3]{% +\robustify{\thanks} +\robustify{\footnotemark} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% \begingroup% - \TUD@parameter@set{#1}{#2}% - \tud@fm@set{#1}% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true - \fi\fi% - \ifnum\tud@multicols>\@ne\relax% - \setlength\multicolsep{\z@}% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% - \else% - \tud@fm@head{#1}{#3}% - \fi% -} -\newcommand*\tud@fm@body@end[1]{% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \else% - \par% - \fi% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true - \fi\fi% + \let\\\newline% + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% } -\newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% false - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% +\newcommand*\tud@title@delimiter{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}} +\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}}% + \if@tud@cover\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% + \ifx\@dateofbirth\@empty\else% + \if@titlepage% + \tud@newline@title% + \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% + \fi% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@title@wrn{dateofbirth}% \fi% - }% - \or% true - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% - }% - \begingroup% - \noindent\centering% - \normalfont\sectfont\nobreak#2% - \@endparpenalty\@M% - \endgraf% - \endgroup% - \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% - \@afterheading% - \or% section - \section*{#2}% - \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% - \fi% - \ifbool{@tud@#1@markboth}{% - \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% - }{}% - \ifnum\@nameuse{tud@#1@toc}>\z@\relax% - \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% - \ifnumodd{\csname tud@#1@toc\endcsname}{% - \addsectiontocentry{}{#2}% - }{% - \addsubsectiontocentry{}{#2}% - }% \fi% - \fi% -} -\newcommand*\tud@fm@pagestyle[2]{% - \if@titlepage% - \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% - You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined.% + \def\@tempc##1{% + \ifstr{\csuse{@##1}}{}{}{% + \if@titlepage% + \tud@newline@title% + \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \csuse{@##1}% + \else% + \tud@title@wrn{##1}% + \fi% }% }% - \else% - \ClassWarning{\TUDClassName}{% - The key `pagestyle' can only be used with\MessageBreak% - activated option `titlepage'% - }% - \fi% -} -\newcommand*\tud@quoting{quotation} -\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\csundef{abstract} -\csundef{endabstract} -\NewEnviron{abstract}[1][]{% - \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{abstract}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% - \fi% - \renewcommand*\nextabstract[1][]{% - \tud@fm@body@end{abstract}% - \tud@fm@body@start{abstract}{##1}{\abstractname}% - }% - \tud@fm@check{abstract}{% - \tud@fm@body@start{abstract}{#1}{\abstractname}% - \BODY% - \tud@fm@body@end{abstract}% - }% -}[% - \if@titlepage% - \if@tud@abstract@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% - \fi% -] -\TUD@parameter{abstract}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@abstract@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@abstract@markbothfalse% - }{% - \@tud@abstract@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% - }% - }% - \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% - \TUD@parameter@let{option}{abstract}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% -} -\newcommand*\nextabstract[1][]{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% - The command `\string\nextabstract' can only be used within\MessageBreak% - the environment `abstract'.% - }% -} -\newif\if@tud@declarations -\NewEnviron{declarations}[1][]{% - \@tud@declarationstrue% - \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{declaration}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% - \fi% - \tud@fm@check{declaration}{\BODY}% -}[% - \if@titlepage% - \if@tud@declaration@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \@tempc{course}% + \@tempc{discipline}% + \@tempc{matriculationnumber}% + \@tempc{matriculationyear}% \fi% -] -\TUD@parameter{declaration}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@declaration@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@declaration@markbothfalse% - }{% - \@tud@declaration@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% - }% - }% - \TUD@parameter@define{company}{\def\@company{#1}}% - \TUD@parameter@define{supporter}{\def\@supporter{#1}}% - \TUD@parameter@define{place}{\def\@place{#1}}% - \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}% - \TUD@parameter@let{confirmationclosing}{closing}% - \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% - \TUD@parameter@let{option}{declaration}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% -} -\newcommand*\declaration[1][]{% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \tud@fm@blocking% - \end{declarations}% - }% -} -\newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% - \tud@fm@body@start{declaration}{#1}{#2} - #3% - \tud@fm@body@end{declaration}% - }{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% - The command `\string\nextdeclaration' can only be used\MessageBreak% - within the environment `declarations'.% - }% - }% -} -\newcommand*\confirmation[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{supporter=##1}% - }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \end{declarations}% - }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% - }% -} -\newcommand*\tud@fm@confirmation[1][]{% - \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% - \tud@fm@body@end{declaration}% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 2ex}% } -\newcommand*\blocking[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{company=##1}% - }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@blocking% - \end{declarations}% - }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% +\newcommand*\tud@title@wrn[1]{% + \ClassWarning{\TUD@Class@Name}{% + `\@backslashchar#1' has to be used with\MessageBreak% + activated titlepage option% }% } -\newcommand*\tud@fm@blocking[1][]{% - \tud@fm@body@start{declaration}{#1}{\blockingname}% - \blockingtext% - \tud@fm@body@end{declaration}% -} -%%% From File: tudscr-title.dtx -\newkomafont{thesis}{\usekomafont{title}\LARGE} -\newkomafont{titlepage}{% - \usekomafont{subject}% - \fontseries{\mddefault}% - \selectfont% - \large% +\newcommand*\tud@thesis@tosubject{% + \if@tud@subjectthesis\ifx\@thesis\@empty\else% + \ifx\@subject\@empty\else% + \ClassWarning{\TUD@Class@Name}{% + The option `subjectthesis' was activated, so\MessageBreak% + the field `subject' will be overwritten with the\MessageBreak% + given thesis% + }% + \fi% + \let\@subject\@thesis% + \fi\fi% } -\newcommand*\tud@title@fontcolor{} -\newcommand*\tud@titlepagenumber{}% -\let\tud@titlepagenumber\relax% +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% false - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \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]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% \else% !false \if@titlepage% - \tud@maketitlepage% + \tud@make@titlepage% \else% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\else% *color - \def\tud@title@fontcolor{HKS41}% - \fi% - \let\@maketitle\tud@@maketitle% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \if@twocolumn% - \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}% - \else% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \fi% + \tud@make@titlehead% \fi% \fi% \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% } -\TUD@parameter{title}{% - \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \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@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}% -}% -\robustify{\thanks}% -\robustify{\footnotemark}% -\newcommand*\tud@titleback{}% -\newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\or% litecolor - \def\tud@title@fontcolor{HKS41}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +\newcommand*\tud@titleback{} +\newcommand*\tud@make@titlepage{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% bicolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% color - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \or% full - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% \tud@layout@specialpage@set{title}% - \ifx\tud@titlepagenumber\relax\else% - \setcounter{page}{\tud@titlepagenumber}% + \ifx\tud@title@pagenumber\relax\else% + \setcounter{page}{\tud@title@pagenumber}% \fi% \if@tud@cover\else% \let\footnotesize\small% @@ -4096,10 +5099,10 @@ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark% \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -4119,9 +5122,9 @@ \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% @@ -4138,20 +5141,11 @@ \noindent\@extratitle\next@tdpage% \fi% \fi% - \if@tud@bookmarks% - \if@tud@cover% - \tudbookmark[1]{\coverpagename}{cover}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \else% - \tudbookmark[1]{\titlepagename}{title}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \fi% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\pageheadingsvskip}% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% @@ -4164,7 +5158,7 @@ }}% \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4173,20 +5167,20 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \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% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + {\usekomafont{date}{\tud@date@print\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -4200,7 +5194,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% + \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -4215,18 +5209,20 @@ \vskip 2ex\@plus.5fill% \fi% \if@tud@cover\else% - \tud@title@names{supervisor}% \tud@title@names{referee}% \tud@title@names{advisor}% + \tud@title@names{supervisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% {\usekomafont{date}{\@defensedate\par}}% \fi% \fi% @@ -4259,27 +5255,27 @@ \fi% \fi% \def\@tempa{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% true - \cs@std@lock{tud@head@bar}{0}% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@title@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -4304,22 +5300,6 @@ \fi% \fi% \end{titlepage}% - \if@tud@cover\else% - \setcounter{footnote}{0}% - \global\let\and\relax% - \fi% -} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% - \begingroup% - \def\thanks##1{\gdef\@tempa{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% } \newcommand*\tud@title@names[1]{% \letcs\@tempa{@#1}% @@ -4327,28 +5307,65 @@ \def\and{% \ifcsvoid{#1othername}{\par}{% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% }% \let\and\par% }% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% - {\usekomafont{author}{\@nameuse{@#1}\par}}% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% + \fi% +} +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% \fi% + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% } -\newcommand*\@titledelim{:\nobreakspace} -\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} -\newcommand*\tud@@maketitle{% +\newcommand*\tud@make@@titlehead{% \global\@topnum=\z@% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\headingsvskip}% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% \sbox\z@{\vbox{% @@ -4359,7 +5376,7 @@ \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4368,16 +5385,18 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% - \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4387,138 +5406,80 @@ {\centering\usekomafont{dedication}{\@dedication\par}}% \fi% \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi% - \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% + \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi% + \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@newline{} -\newcommand*\tud@split@author@title[2]{% - \tud@multiple@fields@store{@author}{#1}% - \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% - {\usekomafont{author}{\ignorespaces#1}}% - \if@tud@cover\else% - \ifx\@authormore\@empty\else% - \tud@newline% - \@authormore% - \fi% - \ifx\@dateofbirth\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\dateofbirthtext}{}% - {}{\dateofbirthtext\@titledelim}\@dateofbirth% - \ifx\@placeofbirth\@empty\else% - \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% - \fi% - \else% - \tud@title@wrn{dateofbirth}% - \fi% - \fi% - \ifx\@matriculationnumber\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationnumbername}{}% - {}{\matriculationnumbername\@titledelim}% - \@matriculationnumber% - \else% - \tud@title@wrn{matriculationnumber}% - \fi% - \fi% - \ifx\@matriculationyear\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationyearname}{}% - {}{\matriculationyearname\@titledelim}% - \@matriculationyear% - \else% - \tud@title@wrn{matriculationyear}% - \fi% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% \fi% - \fi% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \endgroup% } \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \maketitle[#1]% + \tud@maketitle[#1]% \onecolumn{#2}\twocolumn% \else% - \tud@title@twocolumn{\maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% \fi% \else% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% } -\newsavebox\tud@title@twocolumn@box +\newsavebox\tud@title@box \newcommand\tud@title@twocolumn[1]{% \onecolumn% \begingroup% \let\clearpage\relax% \let\newpage\relax% - \global\setbox\tud@title@twocolumn@box\vbox{% + \global\setbox\tud@title@box\vbox{% \vspace*{.9\baselineskip}#1\bigskip% }% \endgroup% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% \@tempswatrue% \fi% }{}% - \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax% - \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% \splittopskip\topskip% \splitmaxdepth\maxdepth% - \vsplit\tud@title@twocolumn@box to \@tempdima% + \vsplit\tud@title@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{\@tempswafalse}{}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% \else% - \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \setbox\tud@title@box\vbox{#1\bigskip}% \fi% - \twocolumn[\unvbox\tud@title@twocolumn@box]% - \tud@ifverlower{2.03}{% + \twocolumn[\unvbox\tud@title@box]% + \tud@if@v@lower{2.03}{% \if@tempswa% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } -\newcommand*\tud@letsubjectthesis{% - \if@tud@subjectthesis\ifx\@thesis\@empty\else% - \ifx\@subject\@empty\else% - \ClassWarning{\TUDClassName}{% - The option `subjectthesis' was activated.\MessageBreak% - The field `subject' will be overwritten with the\MessageBreak% - given thesis% - }% - \fi% - \let\@subject\@thesis% - \fi\fi% -} -\newcommand*\tud@title@wrn[1]{% - \ClassWarning{\TUDClassName}{% - `\@backslashchar#1' has to be used with\MessageBreak% - activated titlepage option% - }% -} \newif\if@tud@cover \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -4533,26 +5494,26 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title\tud@layout@cover% + \let\tud@layout@title@num\tud@layout@cover@num% \tud@layout@process% - \if@tud@cover@cdgeometry% - \let\coverpagetopmargin\tud@dim@slimmargin% - \let\coverpagebottommargin\tud@dim@widemargin% - \let\coverpageleftmargin\tud@dim@widemargin% - \let\coverpagerightmargin\tud@dim@slimmargin% - \tud@ifverlower{2.03}{% - \def\coverpagetopmargin{.5\tud@dim@both}% - \def\coverpagebottommargin{.5\tud@dim@both}% + \if@tud@cdgeometry@cover% + \let\coverpagetopmargin\tud@len@slimmargin% + \let\coverpagebottommargin\tud@len@widemargin% + \let\coverpageleftmargin\tud@len@widemargin% + \let\coverpagerightmargin\tud@len@slimmargin% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagebottommargin{.5\tud@len@both}% }{}% \fi% - \ifcase\tud@layout@cover\relax% false + \ifcase\tud@layout@cover@num\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% \let\@lowertitleback\@empty% \let\@dedication\@empty% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% \else% !false \@tud@covertrue% \@titlepagetrue% @@ -4566,32 +5527,32 @@ \begingroup% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \tud@ifverlower{2.03}{% - \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% + \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@cover@cdgeometry% + \if@tud@cdgeometry@cover% \def\coverpagetopmargin{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% }% \else% - \topmargin=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep-1in\relax% + \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@dim@widemargin% - \tud@ifverlower{2.03}{% - \def\coverpagebottommargin{.5\tud@dim@both}% + \let\coverpagebottommargin\tud@len@widemargin% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% }{}% \fi% \fi% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \@colht=\textheight% @@ -4600,72 +5561,527 @@ \columnwidth=\textwidth% \hsize=\columnwidth% \linewidth=\hsize% - \tud@dim@headdiff=\z@% - \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% + \tud@len@areavskip=\z@% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% \tud@maketitle% \clearpage% - \csname titlepage@restore\endcsname% + \titlepage@restore% \fi% \endgroup% } -\bool@lock{@tud@cover@cdgeometry} -\TUD@parameter{cover}{% - \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}% +\bool@lock{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% - \TUD@parameter@define{cdgeometry}[true]{% + \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}% + }% + }% + }% + }% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@check[2]{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + The given content within the `#1'\MessageBreak% + environment is too large, so it wasn't possible\MessageBreak% + to center the body vertically. Setting the option\MessageBreak% + `#1=nofill' would be a solution. You\MessageBreak% + could also use multiple `#1' environments% + }% + \boolfalse{@tud@#1@fil}% + \fi% + }{}% + }{% chapter + }% + \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `#1=single'\MessageBreak% + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc@num}{% + \the\numexpr\csuse{tud@#1@toc@num}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \if@twocolumn\else% + \if@titlepage% + \ifbool{@tud@#1@fil}{\null\vfil}{}% + \fi% + \fi% + \global\let\tud@fm@set\tud@fm@next% +} +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% + \else% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\vfil\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\csuse{tud@#1@level@num}=\z@\relax% + \ifundef{\main@language}{}{\vspace*{-\baselineskip}}% + \fi% + \fi% + \fi% +} +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \begin{\tud@quoting}% + \fi% + \fi\fi% + \ifnum\tud@x@multicol@num>\@ne\relax% + \vspace{-\multicolsep}% + \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% + \vspace{-\multicolsep}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \end{\tud@quoting}\par% + \fi% + \fi\fi% + \endgroup% +} +\newcommand*\tud@fm@head[2]{% + \ifcase\csuse{tud@#1@level@num}\relax% false + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% + \begingroup% + \noindent\centering% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \endgraf% + \endgroup% + \nopagebreak% + \vskip\dimexpr\medskipamount-\parskip\relax% + \@afterheading% + \or% section + \section*{#2}% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% + \fi% + \ifbool{@tud@#1@markboth}{% + \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% + }{}% + \ifcase\csuse{tud@#1@toc@num}\relax\or% totoc + \addsectiontocentry{}{#2}% + \or% totocleveldown + \addsubsectiontocentry{}{#2}% + \fi% +} +\newcommand*\tud@fm@pagestyle[2]{% + \if@titlepage% + \ifcsundef{ps@#2}{% + \ClassError{\TUD@Class@Name}{`#2' is no valid pagestyle}{% + You tried to use `#2' as a pagestyle for the\MessageBreak% + `#1' environment, but it was never defined.% + }% + }{\def\tud@envir@ps{#2}}% + \else% + \ClassWarning{\TUD@Class@Name}{% + The key `pagestyle' can only be used with\MessageBreak% + activated option `titlepage'% + }% + \fi% +} +\newcommand*\tud@quoting{quotation} +\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} +\csundef{abstract} +\csundef{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% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% + }% + \fi% + \clearpage% + \tud@envir@selectps% + \fi% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% +}[% + \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@abstract@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\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{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% + \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% - \bool@set@lock{@tud@cover@cdgeometry}{true}% + \@tud@abstract@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% - \bool@set@lock{@tud@cover@cdgeometry}{false}% + \@tud@abstract@markbothfalse% }{% - \TUD@parameter@error{cdgeometry}{true,false}% + \@tud@abstract@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% }% }% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{% - \ifxnumber{#1}{% - \TUD@parameter@set{cover}{pagenumber=#1}% + \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@let{option}{abstract}% + \TUD@parameter@handler@default{}% +} +\newcommand*\nextabstract[1][]{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% +} +\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% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% + }% + \fi% + \clearpage% + \tud@envir@selectps% + \fi% + \def\and{, }% + \let\thanks\@gobble% + \tud@fm@check{declaration}{\BODY}% +}[% + \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@declaration@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\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{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% + \TUD@parameter@def{markboth}[true]{% + \ifstrbool{#1}{% + \@tud@declaration@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% - \TUD@parameter@set{cover}{cdgeometry=#1}% + \@tud@declaration@markbothfalse% + }{% + \@tud@declaration@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% }% }% + \TUD@parameter@def{company}{\def\@company{#1}}% + \TUD@parameter@def{supporter}{\def\@supporter{#1}}% + \TUD@parameter@def{place}{\def\@place{#1}}% + \TUD@parameter@def{closing}{\def\@confirmationclosing{#1}}% + \TUD@parameter@let{confirmationclosing}{closing}% + \TUD@parameter@def{declaration}{\TUDoption{declaration}{#1}}% + \TUD@parameter@let{option}{declaration}% + \TUD@parameter@handler@default{}% +} +\newcommand*\tud@fm@supporter{} +\newcommand*\declaration{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@declaration% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@declaration% + }% +} +\newcommand*\tud@fm@declaration[1][]{% + \ifbool{@tud@declarations}{% + \begingroup% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + \tud@fm@blocking[#1]% + \endgroup% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \tud@fm@blocking% + \end{declarations}% + }% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2}% + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% + }% + }% +} +\newcommand*\confirmation{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@confirmation% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@confirmation% + }% +} +\newcommand*\tud@fm@confirmation[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{supporter}% + \undef\KV@declaration@company% + \ifbool{@tud@declarations}{% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% +} +\newcommand*\blocking[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{company}% + \undef\KV@declaration@supporter% + \undef\KV@declaration@closing% + \undef\KV@declaration@confirmationclosing% + \ifbool{@tud@declarations}{% + \tud@fm@blocking[#1]% + }{% + \begin{declarations}[#1]% + \tud@fm@blocking% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% } %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% +\newcommand*\TUD@cmd@deprecated[2]{% \AtBeginDocument{% - \ifcsdef{#1}{}{% + \ifcsundef{#1}{% \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\TUDClassName}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + The command `\@backslashchar#1' is deprecated\MessageBreak% It's recommended to use `\@backslashchar#2' instead% }% \csletcs{#1}{#2}% - \@nameuse{#2}% + \csuse{#2}% }% - }% + }{}% }% } -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} +\newcommand*\TUD@len@deprecated[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 +\setlength\pageheadingsvskip{\maxdimen} +\newlength\headingsvskip +\setlength\headingsvskip{\maxdimen} +\TUD@cmd@deprecated{professorship}{chair} +\TUD@cmd@deprecated{studentid}{matriculationnumber} +\TUD@cmd@deprecated{matriculationid}{matriculationnumber} +\TUD@cmd@deprecated{enrolmentyear}{matriculationyear} +\TUD@cmd@deprecated{birthplace}{placeofbirth} +\TUD@cmd@deprecated{submissiondate}{date} +\TUD@cmd@deprecated{oralexaminationdate}{defensedate} +\TUD@cmd@deprecated{birthday}{dateofbirth} +\TUD@cmd@deprecated{location}{place} +\TUD@cmd@deprecated{logofile}{headlogo} +\TUD@cmd@deprecated{logofilename}{headlogo} \AfterPackage{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% + \TUD@cmd@deprecated{startdate}{issuedate}% + \TUD@cmd@deprecated{finaldate}{duedate}% + \TUD@cmd@deprecated{maturitydate}{duedate}% +} +\AtEndOfClass% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% } %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}% +\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% + \fi% +} \newcommand*\tudbookmark[1][]{\@gobbletwo} -\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% \renewcommand*\tudbookmark[3][]{% \relax% @@ -4674,7 +6090,7 @@ \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% \fi% }% - \renewcommand*\tud@footnote@unhyper{% + \renewcommand*\tud@x@hyperref@realfootnotes{% \let\Hy@saved@footnotemark\@footnotemark% \let\Hy@saved@footnotetext\@footnotetext% \let\@footnotemark\H@@footnotemark% @@ -4682,26 +6098,89 @@ }% \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } -\pretocmd{\maketitle}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \tudbookmark[1]{\titlepagename}{title}% -}{}{\tud@patch@wrn{maketitle}} -\pretocmd{\tableofcontents}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +\apptocmd{\titlepage}{% + \tud@x@bookmark@startatroot% + \if@tud@cover% + \tudbookmark[% + 1% + ]{\coverpagename}{cover}% + \else% + \tudbookmark[% + 1% + ]{\titlepagename}{title}% \fi% - \tudbookmark[1]{\contentsname}{toc}% -}{}{\tud@patch@wrn{tableofcontents}} +}{}{\tud@patch@wrn{titlepage}} +\pretocmd{\tud@make@titlehead}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@make@titlehead}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cmd@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cmd@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} \BeforePackage{tocloft}{% - \ClassWarning{\TUDClassName}{% - It is not recommended to use package `tocloft'.\MessageBreak% - Loading the package will certainly lead to problems\MessageBreak% - with table of contents and any list of floats. You\MessageBreak% - should use the appropriate options of KOMA-Script% + \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% +} +\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}} \endinput %% %% End of file `tudscrartcl.cls'. |