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