From 6b200dd5c2335baa8c78037d8f1c75d1295187f4 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 30 Jul 2016 23:12:46 +0000 Subject: tudscr (26jul16) git-svn-id: svn://tug.org/texlive/trunk@41776 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/tudscr/fix-tudscrfonts.sty | 407 + Master/texmf-dist/tex/latex/tudscr/mathswap.sty | 14 +- Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls | 7565 +++++++++++------- Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty | 395 +- Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls | 8396 +++++++++++-------- Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty | 418 +- .../tex/latex/tudscr/tudscrcomp-book.sty | 214 + .../tex/latex/tudscr/tudscrcomp-poster.sty | 357 + Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty | 167 +- Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls | 963 ++- Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty | 1382 ++-- Master/texmf-dist/tex/latex/tudscr/tudscrman.cls | 1433 ---- Master/texmf-dist/tex/latex/tudscr/tudscrman.sty | 779 -- .../texmf-dist/tex/latex/tudscr/tudscrmanual.cls | 2373 ++++++ .../texmf-dist/tex/latex/tudscr/tudscrposter.cls | 5120 ++++++++++++ Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls | 8430 ++++++++++++-------- .../tex/latex/tudscr/tudscrsupervisor.sty | 327 +- .../texmf-dist/tex/latex/tudscr/tudscrtutorial.sty | 1533 ++++ Master/texmf-dist/tex/latex/tudscr/twocolfix.sty | 54 +- 19 files changed, 26747 insertions(+), 13580 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty delete mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrman.cls delete mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrman.sty create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty new file mode 100644 index 00000000000..74e46c4dad1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty @@ -0,0 +1,407 @@ +%% +%% This is file `fix-tudscrfonts.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,fontsfix') +%% tudscr-comp.dtx (with options: `package,fontsfix,identify') +%% tudscr-base.dtx (with options: `package,fontsfix') +%% tudscr-comp.dtx (with options: `package,fontsfix,option') +%% tudscr-comp.dtx (with options: `package,fontsfix,body') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-comp.dtx +\ProvidesPackage{fix-tudscrfonts}[% + 2016/07/26 v2.05 TUD-KOMA-Script + package for font fixes + (compatibility for old tud(scr) classes)% +] +%%% From File: tudscr-base.dtx +\RequirePackage{scrlfile}[2013/12/19] +\RequirePackage{etoolbox}[2011/01/03] +\newcommand*\tud@cmd@store[1]{% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% +} +\newcommand*\tud@cmd@check[1]{% + \ifcsdef{#1}{}{% + \PackageError{% + fix-tudscrfonts% + }{`\@backslashchar#1' is not defined}{% + The command `\@backslashchar#1' was never defined\MessageBreak% + Please contact the TUD-KOMA-Script maintainer\MessageBreak% + via \tudscrmail. A bugfix is urgently required.% + }% + }% +} +\BeforePackage{tudscrbase}{% + \undef\tud@cmd@store% + \undef\tud@cmd@check% +} +%%% From File: tudscr-comp.dtx +\PassOptionsToPackage{relspacing=false,cdfont=ultrabold}{tudscrfonts} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} +\ProcessOptions\relax +\AtEndPreamble{% + \tud@fontsfix@maybe@err% + \RequirePackage{tudscrfonts}[\TUD@Version]% +} +\ifx\usepackage\RequirePackage + \newcommand*\tud@fontsfix@maybe@err{% + \PackageError{fix-tudscrfonts}{Package too late}{% + You must load `fix-tudscrfonts' before\MessageBreak% + any document class with `\string\RequirePackage'% + }% + }% +\else + \newcommand*\tud@fontsfix@maybe@err{% + \PackageError{fix-tudscrfonts}{Unsupported class found}{% + You have to use `fix-tudscrfonts' only\MessageBreak% + with supported classes. These are: `tudbook',\MessageBreak% + `tudbeamer', `tudfax', `tudform', `tudhaus',\MessageBreak% + `tudletter', `tudposter' and `tudmathposter',\MessageBreak% + as well as `tudscrbookold', `tudscrreprtold'\MessageBreak% + and `tudscrartclold'. Otherwise it's adequate\MessageBreak% + to use package `tudscrfonts' as usual% + }% + }% +\fi +%%% From File: tudscr-comp.dtx +\def\dinBold{\dinbn} +\def\dinfamily{\dinbn} +\newcommand*\tud@fontsfix@AdaptClass[2]{% + \BeforeClass{#1}{% + \let\tud@fontsfix@maybe@err\relax% + \tud@cmd@store{DeclareFixedFont}% + \renewcommand*\DeclareFixedFont[6]{}% + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{sldefault}% + \tud@cmd@store{scdefault}% + \tud@cmd@store{updefault}% + \tud@cmd@store{rmfamily}% + \tud@cmd@store{sffamily}% + \tud@cmd@store{ttfamily}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \tud@cmd@store{normalfont}% + \let\normalfont\relax% + \PassOptionsToClass{serifmath}{#1}% + }% + \AfterClass{#1}{% + \RequirePackage{tudscrbase}[\TUD@Version]% + \tud@cmd@restore{DeclareFixedFont}% + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{sldefault}% + \tud@cmd@restore{scdefault}% + \tud@cmd@restore{updefault}% + \tud@cmd@restore{rmfamily}% + \tud@cmd@restore{sffamily}% + \tud@cmd@restore{ttfamily}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \tud@cmd@restore{normalfont}% + #2% + \AfterPackage*{tudscrfonts}{% + \AtBeginDocument{% + \newcommand*\univLightVII{}% + \newcommand*\univLightObliqueVII{}% + \newcommand*\univBoldVII{}% + \newcommand*\univLightIX{}% + \newcommand*\univLightObliqueIX{}% + \newcommand*\univBoldIX{}% + \newcommand*\univLightXI{}% + \newcommand*\univLightObliqueXI{}% + \newcommand*\univBoldXI{}% + \newcommand*\univLightXV{}% + \newcommand*\univLightObliqueXV{}% + \newcommand*\univBoldXV{}% + \newcommand*\univLightHead{}% + \newcommand*\univBoldHead{}% + \providecommand*\tud@head@fntsz{9}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {UniversLight}{m}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {UniversLightOblique}{m}{n}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {UniversBold}{m}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {UniversLight}{m}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {UniversLightOblique}{m}{n}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {UniversBold}{m}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {UniversLight}{m}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {UniversLightOblique}{m}{n}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {UniversBold}{m}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {UniversLight}{m}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {UniversLightOblique}{m}{n}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {UniversBold}{m}{n}{15}% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {UniversLight}{m}{n}{\tud@head@fntsz}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {UniversBold}{m}{n}{\tud@head@fntsz}% + \else% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {\tud@univers}{l}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {\tud@univers}{l}{sl}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {\tud@univers}{b}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {\tud@univers}{l}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {\tud@univers}{l}{sl}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {\tud@univers}{b}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {\tud@univers}{l}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {\tud@univers}{l}{sl}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {\tud@univers}{b}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {\tud@univers}{l}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {\tud@univers}{l}{sl}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {\tud@univers}{b}{n}{15}% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fntsz}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fntsz}% + \fi% + \else% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {\sfdefault}{\mddefault}{\sldefault}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {\sfdefault}{\mddefault}{\sldefault}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {\sfdefault}{\mddefault}{\sldefault}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {\sfdefault}{\mddefault}{\sldefault}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{15}% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fntsz}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fntsz}% + \fi% + }% + }% + }% +} +\tud@fontsfix@AdaptClass{tudletter}{} +\tud@fontsfix@AdaptClass{tudfax}{} +\tud@fontsfix@AdaptClass{tudform}{} +\tud@fontsfix@AdaptClass{tudhaus}{} +\tud@fontsfix@AdaptClass{tudposter}{} +\tud@fontsfix@AdaptClass{tudbeamer}{} +\tud@fontsfix@AdaptClass{tudbook}{% + \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{% + \tud@sec@fontface[\bfseries]% + \if@color\color{HKS41-100}\fi% + \Huge% + }{}{\tud@patch@wrn{@makechapterhead}}% + \patchcmd{\@makechapterhead}{\MakeUppercase}{% + \tud@makeuppercase% + }{}{\tud@patch@wrn{@makechapterhead}}% + \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{% + \tud@sec@fontface[\bfseries]% + \if@color\color{HKS41-100}\fi% + \Huge% + }{}{\tud@patch@wrn{@makeschapterhead}}% + \patchcmd{\@makeschapterhead}{\MakeUppercase}{% + \tud@makeuppercase% + }{}{\tud@patch@wrn{@makeschapterhead}}% + \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{% + \tud@sec@fontface[\bfseries]% + \if@color\color{HKS41-100}\fi% + \Large% + \tud@makeuppercase% + }{}{\tud@patch@wrn{section}}% + \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{% + \tud@sec@fontface[\bfseries]% + \if@colortitle\color{HKS41-30}\fi% + \Huge% + \tud@makeuppercase% + }{}{\tud@patch@wrn{showtitle}}% +} +\tud@fontsfix@AdaptClass{tudmathposter}{% + \def\raggedtitle{\tud@raggedright}% + \renewcommand*\raggedpart{\tud@raggedright}% + \renewcommand*\raggedsection{\tud@raggedright}% + \setkomafont{title}{\tud@sec@fontface[\bfseries]\Huge}% + \CheckCommand\maketitle{% + \if@matheanull + \setlength\@tempskipa{31.194586mm-\topsep}% + \else + \setlength\@tempskipa{33.02mm-\topskip}% + \fi + \vskip\@tempskipa + {% + \ifx\@title\@empty\else + \usekomafont{title}\preprocesstitle{\@title}% + \ifx\@subtitle\@empty\else\\\fi + \fi + }{ + \ifx\@subtitle\@empty\else + \subtitlefont\preprocesstitle{\@subtitle}% + \fi + \if@matheanull + \vskip 2.9948cm\relax + \else + \vskip 3.17cm\relax + \fi + }% + }% + \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}% + \renewcommand*\subtitlefont{% + \unskip% + \ifstr{\mddefault}{l}{% + \tud@sec@fontface[\fontseries{m}]% + }{% + \tud@sec@fontface[\fontseries{bx}]% + }% + \huge% + }% + \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@makeuppercase{#1}}% + \if@mathevorgabe% + \undef\sectionfont% + \undef\subsectionfont% + \fi% + \newcommand*\sectionfont{\bfseries\LARGE}% + \newcommand*\subsectionfont{\sectionfont\large}% + \patchcmd{\ps@tudposter}{\textbf{\@einrichtung}}{% + \textbf{\fontseries{b}\selectfont\@einrichtung}% + }{}{\tud@patch@wrn{ps@tudposter}}% + \pagestyle{tudposter}% +} +\PreventPackageFromLoading[% + \RequirePackage{amsmath}% + \RequirePackage{amsfonts}% + \let\DeclareTudMathSizes\@gobblefour% + \newif\if@tudfonts@nodin% +]{tudfonts} +\tud@fontsfix@AdaptClass{tudscrbookold}{\let\@setfonts\relax} +\tud@fontsfix@AdaptClass{tudscrreprtold}{\let\@setfonts\relax} +\tud@fontsfix@AdaptClass{tudscrartclold}{\let\@setfonts\relax} +\BeforePackage{tudscrfonts}{% + \undef\univln% + \undef\univrn% + \undef\univbn% + \undef\univxn% + \undef\univls% + \undef\univrs% + \undef\univbs% + \undef\univxs% + \undef\dinbn% + \undef\textuln% + \undef\texturn% + \undef\textubn% + \undef\textuxn% + \undef\textuls% + \undef\texturs% + \undef\textubs% + \undef\textuxs% + \undef\textdbn% +} +\endinput +%% +%% End of file `fix-tudscrfonts.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty index f6e8acf5b47..18788fdbfe2 100644 --- a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty +++ b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty @@ -36,7 +36,7 @@ %%% From File: tudscr-mathswap.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathswap}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (swap mathematical separators)% ] @@ -87,12 +87,12 @@ \endgroup% } \newcommand*\ms@token{} -\begingroup% - \catcode`,=\active% - \gdef,{\futurelet\ms@token\ms@smartcomma}% - \catcode`.=\active% - \gdef.{\futurelet\ms@token\ms@smartdot}% -\endgroup% +\begingroup + \catcode`,=\active + \gdef,{\futurelet\ms@token\ms@smartcomma} + \catcode`.=\active + \gdef.{\futurelet\ms@token\ms@smartdot} +\endgroup \newcommand*\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}} \newcommand*\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}} \endinput diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls index 99323dda2fc..44716c040ad 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls @@ -5,23 +5,25 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `class,article') -%% tudscr-base.dtx (with options: `load') -%% tudscr-fonts.dtx (with options: `class,option') +%% tudscr-base.dtx (with options: `class,article,load') +%% tudscr-fonts.dtx (with options: `class,article,option') +%% tudscr-area.dtx (with options: `class,article,option') %% tudscr-pagestyle.dtx (with options: `class,article,option') %% tudscr-layout.dtx (with options: `class,article,option') -%% tudscr-frontmatter.dtx (with options: `class,article,option') %% tudscr-title.dtx (with options: `class,article,option') +%% tudscr-frontmatter.dtx (with options: `class,article,option') %% tudscr-comp.dtx (with options: `class,article,option') %% tudscr-misc.dtx (with options: `class,article,option') -%% tudscr-misc.dtx (with options: `class,execute') -%% tudscr-base.dtx (with options: `class,body') -%% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-fields.dtx (with options: `class,body') +%% tudscr-misc.dtx (with options: `class,article,execute') +%% tudscr-base.dtx (with options: `class,article,body') +%% tudscr-fonts.dtx (with options: `class,article,body') +%% tudscr-fields.dtx (with options: `class,article,body') %% tudscr-locale.dtx (with options: `class,article,body') +%% tudscr-area.dtx (with options: `class,article,body') %% tudscr-pagestyle.dtx (with options: `class,article,body') %% tudscr-layout.dtx (with options: `class,article,body') -%% tudscr-frontmatter.dtx (with options: `class,article,body') %% tudscr-title.dtx (with options: `class,article,body') +%% tudscr-frontmatter.dtx (with options: `class,article,body') %% tudscr-comp.dtx (with options: `class,article,body') %% tudscr-misc.dtx (with options: `class,article,body') %% @@ -53,160 +55,153 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \newcommand*\TUD@ProvidesClass[3]{% - \newcommand*\TUDClassName@KOMA{#2}% - \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script ^^J#3 (#2)% ]% - \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% } -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% } -\NeedsTeXFormat{LaTeX2e} \TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% ]{tudscrfonts} -\newif\if@tud@univers -\newif\if@tud@dinbold -\newcommand*\tud@univers{lun} -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% - \ClassWarning{\TUDClassName}% - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -\AtEndOfClass% -{% - \TUD@key{fontspec}[]% - {% - \ClassError{\TUDClassName}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - class `\TUDClassName' - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -\newcommand*\tud@cdfont{1} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% - {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% - {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% - {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% - {bar}{6},{barfont}{6},% - {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% - {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% - {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% - {headlight}{6},{headfontlight}{6},{headlightfont}{6},% - {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% - {barlight}{6},{barfontlight}{6},{barlightfont}{6},% - {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% - {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% - {litebar}{6},{litebarfont}{6},{litefontbar}{6},% - {headlite}{6},{headfontlite}{6},{headlitefont}{6},% - {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% - {barlite}{6},{barfontlite}{6},{barlitefont}{6},% - {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% - {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% - {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% - {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% - {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% - {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% - {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% - {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% - {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% - {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% - {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% - {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% + {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% + {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% + {bar}{8},{barfont}{8},% + {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% + {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% + {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% + {headlight}{8},{headfontlight}{8},{headlightfont}{8},% + {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% + {barlight}{8},{barfontlight}{8},{barlightfont}{8},% + {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% + {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% + {litebar}{8},{litebarfont}{8},{litefontbar}{8},% + {headlite}{8},{headfontlite}{8},{headlitefont}{8},% + {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% + {barlite}{8},{barfontlite}{8},{barlitefont}{8},% + {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% + {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% + {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% + {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% + {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% + {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% + {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% + {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% + {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% + {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% + {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% + {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% \or% nohead \TUDoptions{cdhead=false}% \or% head @@ -227,16 +222,38 @@ \TUDoptions{fontspec=false}% \fi% \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } \bool@lock{@tud@cdmath} @@ -251,10 +268,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -267,28 +284,111 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +%%% From File: tudscr-area.dtx +\cs@lock{tud@cdgeometry@num}{0} +\newcommand*\tud@cdgeometry@calc@num{0} +\TUD@key{cdgeometry}[true]{% + \let\@tempb\tud@cdgeometry@num% + \let\@tempc\tud@cdgeometry@calc@num% + \TUD@set@numkey{cdgeometry}{@tempa}{% + \TUD@numkey@bool,% + {typearea}{0},% + {cd}{1},{tud}{1},{asymmetric}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3},% + {oneside}{4},% + {restricted}{5},% + {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},% + {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},% + {custom}{8},{user}{8},{package}{8}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false/typearea + \cs@set@lock{tud@cdgeometry@num}{0}% + \or% true/cd + \cs@set@lock{tud@cdgeometry@num}{2}% + \or% symmetric + \cs@set@lock{tud@cdgeometry@num}{3}% + \or% twoside + \cs@set@lock{tud@cdgeometry@num}{4}% + \TUD@KOMAoptions{twoside=true}% + \or% oneside + \ifnum\tud@cdgeometry@num>\thr@@\relax% + \cs@set@lock{tud@cdgeometry@num}{3}% + \fi% + \TUD@KOMAoptions{twoside=false}% + \or% restricted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{0}% + \or% adapted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{1}% + \or% calculated + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{2}% + \or% custom + \cs@set@lock{tud@cdgeometry@num}{1}% + \fi% + \@tempswafalse% + \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi% + \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi% + \if@tempswa% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% + \fi% +} +\newcommand*\tud@dim@extrabottommargin{\z@} +\TUD@key{extrabottommargin}{% + \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \fi% +} +\newcommand*\tud@dim@bleedmargin{.2in} +\TUD@key{bleedmargin}{% + \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% + \@tempa#1\@nil% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{twoside}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{twocolumn}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@x@ta@warnings@off{} +\newcommand*\tud@x@ta@warnings@on{} +\IfFileExists{silence.sty}{% + \RequirePackage{silence}[2012/07/02]% + \WarningFilter[typearea]{typearea}{DIV for}% + \WarningFilter[typearea]{typearea}{Bad type area settings!}% + \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}% + \WarningFilter[typearea]{typearea}{Very low DIV value!}% + \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}% + \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}% + \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]} + \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]} +}{} %%% From File: tudscr-pagestyle.dtx \newcommand*\tud@ps@list{} -\newcommand*\tud@iftudps[3]{% +\newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } \newif\if@tud@ddc@internal -\newcommand*\tud@clearpage@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{\clearpage}{}% - \fi\fi% -} -\newcommand*\tud@pagestyle@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi\fi% -} +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -302,10 +402,10 @@ \newif\if@tud@headlogo@option@set \newif\if@tud@footlogo@option@set \newif\if@tud@ddc@auto -\newcommand*\tud@ddc{0} +\newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal% \@tud@ddc@autofalse% @@ -319,12 +419,12 @@ \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@head{0} +\newcommand*\tud@ddc@head@num{0} \TUD@key{ddchead}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -333,12 +433,12 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@foot{0} +\newcommand*\tud@ddc@foot@num{0} \TUD@key{ddcfoot}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -347,43 +447,32 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head% - \let\@tempb\tud@ddc@foot% - \if@tud@ddc@auto% - \ifdefvoid{\@headlogo}{% - \let\@tempa\tud@ddc% - \let\@tempb\z@% - }{% - \let\@tempa\z@% - \let\@tempb\tud@ddc% - }% - \fi% - \tud@ifverlower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% - \fi% - }{}% + \tud@comp@resetpagestyle% } -\newlength\tud@dim@extrabottommargin -\TUD@key{extrabottommargin}{% - \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@geometry@process\fi% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% + \fi% + \global\@tud@footlogo@option@settrue% \fi% } -\cs@lock{tud@head@font}{0} -\cs@lock{tud@head@bar}{0} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} \bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% @@ -394,32 +483,42 @@ {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% - {paperwidth}{8},{wide}{8},{widehead}{8}% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font}{0}% + \cs@set@lock{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font}{1}% + \cs@set@lock{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font}{2}% + \cs@set@lock{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar}{0}% + \cs@set@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% \fi% \fi% } -\TUD@AfterPackage@Set{scrlayer-scrpage} -\newif\if@tud@foot@colored +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -431,13 +530,13 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% \or% true - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% @@ -450,71 +549,54 @@ \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% \or% nocolor - \@tud@foot@coloredfalse% + \bool@set@lock{@tud@foot@colored}{false}% \or% color - \@tud@foot@coloredtrue% + \bool@set@lock{@tud@foot@colored}{true}% \fi% \else% - \TUDoptions{extrabottommargin=#1}% + \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } \newcommand*\tud@ps@store[1]{% - \tud@@ps@store{#1}{odd}{left}{head}% - \tud@@ps@store{#1}{odd}{right}{head}% - \tud@@ps@store{#1}{odd}{middle}{head}% - \tud@@ps@store{#1}{even}{left}{head}% - \tud@@ps@store{#1}{even}{right}{head}% - \tud@@ps@store{#1}{even}{middle}{head}% - \tud@@ps@store{#1}{odd}{left}{foot}% - \tud@@ps@store{#1}{odd}{right}{foot}% - \tud@@ps@store{#1}{odd}{middle}{foot}% - \tud@@ps@store{#1}{even}{left}{foot}% - \tud@@ps@store{#1}{even}{right}{foot}% - \tud@@ps@store{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@store[4]{% + \tud@ps@@store{#1}{odd}{left}{head}% + \tud@ps@@store{#1}{odd}{right}{head}% + \tud@ps@@store{#1}{odd}{middle}{head}% + \tud@ps@@store{#1}{even}{left}{head}% + \tud@ps@@store{#1}{even}{right}{head}% + \tud@ps@@store{#1}{even}{middle}{head}% + \tud@ps@@store{#1}{odd}{left}{foot}% + \tud@ps@@store{#1}{odd}{right}{foot}% + \tud@ps@@store{#1}{odd}{middle}{foot}% + \tud@ps@@store{#1}{even}{left}{foot}% + \tud@ps@@store{#1}{even}{right}{foot}% + \tud@ps@@store{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@store[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% }% } \newcommand*\tud@ps@restore[1]{% - \tud@@ps@restore{#1}{odd}{left}{head}% - \tud@@ps@restore{#1}{odd}{right}{head}% - \tud@@ps@restore{#1}{odd}{middle}{head}% - \tud@@ps@restore{#1}{even}{left}{head}% - \tud@@ps@restore{#1}{even}{right}{head}% - \tud@@ps@restore{#1}{even}{middle}{head}% - \tud@@ps@restore{#1}{odd}{left}{foot}% - \tud@@ps@restore{#1}{odd}{right}{foot}% - \tud@@ps@restore{#1}{odd}{middle}{foot}% - \tud@@ps@restore{#1}{even}{left}{foot}% - \tud@@ps@restore{#1}{even}{right}{foot}% - \tud@@ps@restore{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@restore[4]{% + \tud@ps@@restore{#1}{odd}{left}{head}% + \tud@ps@@restore{#1}{odd}{right}{head}% + \tud@ps@@restore{#1}{odd}{middle}{head}% + \tud@ps@@restore{#1}{even}{left}{head}% + \tud@ps@@restore{#1}{even}{right}{head}% + \tud@ps@@restore{#1}{even}{middle}{head}% + \tud@ps@@restore{#1}{odd}{left}{foot}% + \tud@ps@@restore{#1}{odd}{right}{foot}% + \tud@ps@@restore{#1}{odd}{middle}{foot}% + \tud@ps@@restore{#1}{even}{left}{foot}% + \tud@ps@@restore{#1}{even}{right}{foot}% + \tud@ps@@restore{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@restore[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% }{}% } -\newcommand*\tud@geometry{0} -\TUD@key@lock{cdgeometry}[true]{% - \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% - \TUD@numkey@bool,% - {typearea}{0},% - {cd}{1},{tud}{1},{asymmetric}{1},% - {symmetric}{2},{centred}{2},{centered}{2},% - {normal}{2},{standard}{2},{std}{2},% - {twoside}{3},{balanced}{3}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\recalctypearea\fi% - \fi% -} %%% From File: tudscr-layout.dtx -\cs@lock{tud@layout@cover}{0} -\cs@lock{tud@layout@title}{0} -\cs@lock{tud@layout@part}{0} \newcommand*\tud@layout@switch{} \edef\tud@layout@switch{% \TUD@numkey@bool,% @@ -528,46 +610,56 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\newcommand*\tud@cd{0} +\cs@lock{tud@layout@cover@num}{0} +\cs@lock{tud@layout@title@num}{0} +\cs@lock{tud@layout@part@num}{0} +\cs@lock{tud@layout@section@num}{0} +\newcommand*\tud@cd@num{0} \TUD@key{cd}[true]{% - \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% false - \cs@std@lock{tud@layout@cover}{0}% - \cs@std@lock{tud@layout@title}{0}% - \cs@std@lock{tud@layout@part}{0}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@layout@cover@num}{0}% + \cs@std@lock{tud@layout@title@num}{0}% + \cs@std@lock{tud@layout@part@num}{0}% + \cs@std@lock{tud@layout@section@num}{0}% \or% true - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{1}% - \cs@std@lock{tud@layout@part}{1}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{1}% + \cs@std@lock{tud@layout@part@num}{1}% + \cs@std@lock{tud@layout@section@num}{1}% \or% litecolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{2}% - \cs@std@lock{tud@layout@part}{2}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{2}% + \cs@std@lock{tud@layout@part@num}{2}% + \cs@std@lock{tud@layout@section@num}{2}% \or% barcolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{3}% - \cs@std@lock{tud@layout@part}{3}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{3}% + \cs@std@lock{tud@layout@part@num}{3}% + \cs@std@lock{tud@layout@section@num}{2}% \or% bicolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{4}% - \cs@std@lock{tud@layout@part}{4}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{4}% + \cs@std@lock{tud@layout@part@num}{4}% + \cs@std@lock{tud@layout@section@num}{2}% \or% color - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{5}% - \cs@std@lock{tud@layout@part}{5}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{5}% + \cs@std@lock{tud@layout@part@num}{5}% + \cs@std@lock{tud@layout@section@num}{2}% \or% full - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{6}% - \cs@std@lock{tud@layout@part}{6}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{6}% + \cs@std@lock{tud@layout@part@num}{6}% + \cs@std@lock{tud@layout@section@num}{2}% \fi% - \if@atdocument% - \tud@layout@process% - \else% - \ifcase\tud@cd\relax% false - \TUD@std@numkey@lock{cdgeometry}{false}% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \if@atdocument\else% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@cdgeometry@num}{0}% \else% !false - \TUD@std@numkey@lock{cdgeometry}{true}% + \cs@std@lock{tud@cdgeometry@num}{2}% \fi% \fi% \fi% @@ -576,93 +668,115 @@ \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover}{0}% + \cs@set@lock{tud@layout@cover@num}{0}% \or% true - \cs@set@lock{tud@layout@cover}{1}% + \cs@set@lock{tud@layout@cover@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@cover}{2}% + \cs@set@lock{tud@layout@cover@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@cover}{3}% + \cs@set@lock{tud@layout@cover@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@cover}{4}% + \cs@set@lock{tud@layout@cover@num}{4}% \or% color - \cs@set@lock{tud@layout@cover}{5}% + \cs@set@lock{tud@layout@cover@num}{5}% \or% full - \cs@set@lock{tud@layout@cover}{6}% + \cs@set@lock{tud@layout@cover@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@title}{0}% + \cs@set@lock{tud@layout@title@num}{0}% \or% true - \cs@set@lock{tud@layout@title}{1}% + \cs@set@lock{tud@layout@title@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@title}{2}% + \cs@set@lock{tud@layout@title@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@title}{3}% + \cs@set@lock{tud@layout@title@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@title}{4}% + \cs@set@lock{tud@layout@title@num}{4}% \or% color - \cs@set@lock{tud@layout@title}{5}% + \cs@set@lock{tud@layout@title@num}{5}% \or% full - \cs@set@lock{tud@layout@title}{6}% + \cs@set@lock{tud@layout@title@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@part}{0}% + \cs@set@lock{tud@layout@part@num}{0}% \or% true - \cs@set@lock{tud@layout@part}{1}% + \cs@set@lock{tud@layout@part@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@part}{2}% + \cs@set@lock{tud@layout@part@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@part}{3}% + \cs@set@lock{tud@layout@part@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@part}{4}% + \cs@set@lock{tud@layout@part@num}{4}% \or% color - \cs@set@lock{tud@layout@part}{5}% + \cs@set@lock{tud@layout@part@num}{5}% \or% full - \cs@set@lock{tud@layout@part}{6}% + \cs@set@lock{tud@layout@part@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% +\TUD@key{cdsection}[true]{% + \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@section@num}{0}% + \or% true + \cs@set@lock{tud@layout@section@num}{1}% + \else% *color + \cs@set@lock{tud@layout@section@num}{2}% + \fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \fi% } -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{#2\nobreak}% } \newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{\relax}% +} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% !false - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{open}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{chapterprefix}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@pagecolor{}% +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +%%% From File: tudscr-title.dtx +\newif\if@tud@subjectthesis +\TUD@key@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -681,8 +795,8 @@ {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } -\newcommand*\tud@abstract@level{0} -\cs@lock{tud@abstract@toc}{0} +\newcommand*\tud@abstract@level@num{0} +\cs@lock{tud@abstract@toc@num}{0} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -693,14 +807,14 @@ \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@abstract@level{0}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{0}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% true - \def\tud@abstract@level{1}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{1}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% section - \def\tud@abstract@level{2}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{2}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% chapter \or% single \@tud@abstract@multifalse% @@ -715,35 +829,39 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc}{0}% + \cs@set@lock{tud@abstract@toc@num}{0}% \or% totoc - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc}{3}% + \cs@set@lock{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{2}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc}{4}% + \cs@set@lock{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@abstract@toc=\z@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num=\z@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \fi% - \ifnum\tud@abstract@toc<\thr@@\relax% + \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc}{% - \the\numexpr\tud@abstract@toc+2\relax% + \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -\newcommand*\tud@declaration@level{1} -\cs@lock{tud@declaration@toc}{0} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{abstract}[true]{% + \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% +} +\newcommand*\tud@declaration@level@num{1} +\cs@lock{tud@declaration@toc@num}{0} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -754,14 +872,14 @@ \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@declaration@level{0}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{0}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% true - \def\tud@declaration@level{1}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{1}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% section - \def\tud@declaration@level{2}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{2}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% chapter \or% single \@tud@declaration@multifalse% @@ -776,55 +894,74 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc}{0}% + \cs@set@lock{tud@declaration@toc@num}{0}% \or% totoc - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc}{3}% + \cs@set@lock{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{2}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc}{4}% + \cs@set@lock{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@declaration@toc=\z@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num=\z@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \fi% - \ifnum\tud@declaration@toc<\thr@@\relax% + \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc}{% - \the\numexpr\tud@declaration@toc+2\relax% + \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% -} %%% From File: tudscr-comp.dtx -\newcommand*\TUD@deprecated@key[2]{% - \ClassWarning{\TUDClassName}% +\newcommand*\TUD@key@deprecated[2]{% + \ClassWarning{\TUD@Class@Name}% {% - The option key `#1' is deprecated.\MessageBreak% + The option key `#1' is deprecated\MessageBreak% It's recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } +\TUD@key{fontspec}[true]{% + \ClassWarning{\TUD@Class@Name}% + {% + The option key `fontspec' is deprecated\MessageBreak% + You should load the package `fontspec' manually% + }% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% +} +\AtEndOfClass% +{% + \TUD@key{fontspec}[]% + {% + \ClassError{\TUD@Class@Name}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + class `\TUD@Class@Name' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@enabled% + \RequirePackage{fontspec}[2014/06/21]% + \fi% +} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% \fi% \fi% } @@ -832,9 +969,9 @@ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -842,9 +979,9 @@ \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{heavyfont}{cdfont=heavy}% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% \else% - \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -852,9 +989,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@key@deprecated{din}{cdfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% \fi% \fi% } @@ -862,9 +999,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@key@deprecated{nodin}{cdfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% \fi% \fi% } @@ -872,9 +1009,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% \fi% \fi% } @@ -882,9 +1019,9 @@ \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% + \TUD@key@deprecated{sansmath}{cdmath=true}% \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% \fi% \fi% } @@ -892,28 +1029,28 @@ \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% + \TUD@key@deprecated{serifmath}{cdmath=false}% \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} +\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \TUD@key@deprecated{barfont=#1}{cdhead=false}% \or% true - \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \TUD@key@deprecated{barfont=#1}{cdhead=true}% \or% heavy - \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% + \TUD@key@deprecated{barfont=#1}{cdhead=heavy}% \fi% \fi% } @@ -921,9 +1058,9 @@ \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{widehead}{cdhead=paperwidth}% + \TUD@key@deprecated{widehead}{cdhead=paperwidth}% \else% - \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% + \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}% \fi% \fi% } @@ -931,9 +1068,9 @@ \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfoot}{cdfoot=true}% + \TUD@key@deprecated{tudfoot}{cdfoot=true}% \else% - \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% + \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -952,84 +1089,172 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{color=#1}{cd=true}% + \TUD@key@deprecated{color=#1}{cd=true}% \or% true - \TUD@deprecated@key{color=#1}{cd=color}% + \TUD@key@deprecated{color=#1}{cd=color}% \or% litecolor - \TUD@deprecated@key{color=#1}{cd=pale}% + \TUD@key@deprecated{color=#1}{cd=pale}% \or% bicolor - \TUD@deprecated@key{color=#1}{cd=bicolor}% + \TUD@key@deprecated{color=#1}{cd=bicolor}% \or% full - \TUD@deprecated@key{color=#1}{cd=fullcolor}% + \TUD@key@deprecated{color=#1}{cd=fullcolor}% \fi% \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} \newcommand*\tud@v@comp{\tud@v@last} \TUD@key{tudscrver}[last]{% - \ifcsvoid{tud@v@#1}{% - \def\tud@v@comp{0}% - \ClassWarningNoLine{\TUDClassName}% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% + \ClassWarningNoLine{\TUD@Class@Name}% {% - You have set option `tudscrver' to `#1', but\MessageBreak% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \FamilyKeyStateProcessed% + \def\tud@v@comp{0}% }{% - \ClassInfoNoLine{\TUDClassName}% + \ClassInfoNoLine{\TUD@Class@Name}% {% - Switching compatibility level to `#1'% + Switching compatibility level to `\@tempa'% }% - \edef\tud@v@comp{\@nameuse{tud@v@#1}}% - \FamilyKeyStateProcessed% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% + \FamilyKeyStateProcessed% } \AtEndOfClass% {% \TUD@key{tudscrver}[]{% - \ClassError{\TUDClassName}% + \ClassError{\TUD@Class@Name}% {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\TUDClassName' + class `\TUD@Class@Name' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.17}{% - \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\TUDClassName}{% + \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% + \ClassError{\TUD@Class@Name}{% KOMA-Script compatibility level too low% }{% - \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script compatibility option `version=v3.12'.% + \TUD@Version\space must be used at least with\MessageBreak% + KOMA-Script compatibility option `version=3.12'.% }% \fi% }{% - \ClassError{\TUDClassName}{% - KOMA-Script v3.17 is required% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% - at least. You're using \KOMAScriptVersion% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion% }% }% } -\@namedef{tud@v@first}{0} -\@namedef{tud@v@2.02}{0} -\@namedef{tud@v@v2.02}{0} -\@namedef{tud@v@2.03}{1} -\@namedef{tud@v@v2.03}{1} -\@namedef{tud@v@2.04}{2} -\@namedef{tud@v@v2.04}{2} -\@namedef{tud@v@last}{2} -\newcommand*\tud@ifverlower[1]{% - \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% - \expandafter\@firstoftwo% +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\csdef{tud@v@2.01a}{0} +\csdef{tud@v@2.01b}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.03}{1} +\csdef{tud@v@2.03a}{1} +\csdef{tud@v@2.04}{2} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% +} +%%% From File: tudscr-misc.dtx +\newif\if@tud@x@scr@paper@set +\TUD@key{paper}{% + \tud@lowerstring{\@tempa}{#1}% + \def\@tempb##1##2\@nil{% + \@tempswafalse% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \ifnumber{##2}{}{\@tempswafalse}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \edef\@tempc{##1}% + \ifx\@tempc\@empty\@tempswafalse\else% + \edef\@tempc{##2}% + \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi% + \fi% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \@tud@x@scr@paper@setfalse% + \if@tempswa% + \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% + \FamilyKeyStateProcessed% \else% - \expandafter\@secondoftwo% + \FamilyKeyStateUnknownValue% \fi% } -%%% From File: tudscr-misc.dtx +\newif\if@tud@fontsize@set +\TUD@key{fontsize}{% + \@tud@fontsize@settrue% + \PassOptionsToClass{fontsize=#1}{\TUD@Class@KOMA}% + \FamilyKeyStateProcessed% +} +\AtEndOfClass{% + \RelaxFamilyKey{TUD}{paper}% + \RelaxFamilyKey{TUD}{fontsize}% + \ifboolexpr{bool {@tud@x@scr@paper@set} or bool {@landscape}}{% + \if@tud@fontsize@set\else% + \ClassWarningNoLine{\TUD@Class@Name}{% + You've set a paper size, which is different from\MessageBreak% + default (paper=a4, paper=portrait). Therefore you\MessageBreak% + should additionally specify an explicit font size.\MessageBreak% + See the manual for further information.% + }% + \fi% + }{}% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} \newif\if@tud@symbolheadings \TUD@key{footnotes}{% \TUD@set@numkey{footnotes}{@tempa}{% @@ -1044,182 +1269,319 @@ \fi% \fi% } -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +\AtEndOfClass{% + \newcounter{symbolheadings} +} %%% From File: tudscr-misc.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} -\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} +\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\newcommand*\tud@x@scr@paper{% + \expandafter\tud@x@scr@@paper\CurrentOption paper\tud@x@scr@@paper% +} +\newcommand*\tud@x@scr@@paper{} +\def\tud@x@scr@@paper #1#2paper#3\tud@x@scr@@paper{% + \@tempswafalse% + \ifstr{#3}{paper}{\ifnumber{#2}{% + \ifstr{#1}{a}{\@tempswatrue}{% + \ifstr{#1}{b}{\@tempswatrue}{% + \ifstr{#1}{c}{\@tempswatrue}{% + \ifstr{#1}{d}{\@tempswatrue}{% + }}}}% + }{}}{}% + \if@tempswa\TUDExecuteOptions{#3=#1#2}\fi% + \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% +} +\DeclareOption*{\tud@x@scr@paper} +\TUDExecuteOptions{% + cd=true,relspacing=true,tudbookmarks=true% +} \TUDProcessOptions\relax -\LoadClass{\TUDClassName@KOMA}[2015/04/23] +\LoadClass{\TUD@Class@KOMA}[2015/04/23] %%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\TUDClassName}{% - The package `graphics' was superseded by `graphicx',\MessageBreak% - which is automatically loaded% + \ClassWarningNoLine{\TUD@Class@Name}{% + Package `graphics' was superseded by `graphicx',\MessageBreak% + which now will be loaded automatically% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% - \RequirePackage{tudscrcolor}[\TUDVersion]% -} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\cs@lock{tud@multicols}{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>\@ne\relax% - \ClassWarning{\TUDClassName}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \cs@set@lock{tud@multicols}{1}% - \fi% - }% + \RequirePackage{tudscrcolor}[\TUD@Version]% +} +\cs@lock{tud@x@multicol@num}{1} +\newcommand*\tud@x@multicol@check{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \ClassWarning{\TUD@Class@Name}{% + The option `columns=\tud@x@multicol@num' is only\MessageBreak% + supported, when package `multicol' is loaded% + }% + \cs@set@lock{tud@x@multicol@num}{1}% + \fi% } +\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} %%% From File: tudscr-fonts.dtx -\newcommand*\tud@font@greek@loop[1]{% - \@for\@tempa:={% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% -} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath +\newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \ClassInfoNoLine{\TUDClassName}% - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} - \ClassWarningNoLine{\TUDClassName}% - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts for math typesetting not found\MessageBreak% Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% + }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% + \else% + \def\@tempc##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } -\newcommand*\tud@font@init{% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% - \undef\tud@font@init@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% +\RequirePackage{trimspaces}[2009/09/17] +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' fonts not found}% + \fi% \fi% - }% - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% + \fi% + \ifcase\tud@cdfont@num\relax% false + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@head@font@num}{0}% + \else% !false + \cs@std@lock{tud@head@font@num}{1}% + \fi% + \else% true/heavy + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{true}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% \else% - \newrobustcmd*\dinbn{\@dinbn}% + \renewcommand*\sfdefault{\tud@univers}% + \renewcommand*\ttdefault{\tud@univers t}% + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold + \renewcommand*\bfdefault{m}% + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold + \renewcommand*\bfdefault{b}% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% \fi% - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error - }% - \ExplSyntaxOff -\fi% -\newcommand*\tud@font@init@nfss{% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% + \tud@layout@process% + \global\@tud@head@font@settrue% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% @@ -1230,39 +1592,87 @@ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% \fi% \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \newrobustcmd*\dinbn{\sectfont}% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% + \undef\tud@font@init% +} +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \ClassWarning{\TUD@Class@Name}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } \newcommand*\cdfont[1]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% } -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% +\newcommand*\tud@cdfont@get[1]{% + \tud@cdfont@trim\@tempa{#1}% \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% @@ -1278,33 +1688,34 @@ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + \ClassWarning{\TUD@Class@Name}% + {The font `#1' is unknown}% }}}}}}}}}}}}}}% } -\newcommand*\tud@trimfontname[2]{% +\newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% \let#1\@tempa% } -\newcommand*\tud@@trimfontname[2]{% +\newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% @@ -1312,20 +1723,42 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} \newcommand*\tud@font@math@init{% - \if@tud@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% - \ClassWarningNoLine{\TUDClassName}% - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% }% - }% - \fi\fi\fi% - \if@tud@univers% + }{}% + \fi\fi% + \if@tud@universmath% \DeclareMathVersion{univers}% \DeclareMathVersion{universbold}% \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1336,8 +1769,10 @@ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1346,6 +1781,8 @@ \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% \@ifpackageloaded{amsfonts}{% \DeclareFontFamily{U}{\tud@univers a}{}% \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% @@ -1359,15 +1796,19 @@ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% }{}% \fi% - \if@tud@dinbold% + \if@tud@dinboldmath% \DeclareMathVersion{dinbold}% \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% \fi% \@ifpackageloaded{unicode-math}{% \let\tud@font@math@set\relax% @@ -1386,192 +1827,41 @@ \tud@font@greek@loop\tud@font@greek@init% \tud@font@math@set% }% - \sbox\z@{\dinbn$ $}% + \sbox\z@{\tud@dinbn$ $}% \undef\tud@font@math@init% } -\AtEndPreamble% -{% - \tud@font@check% - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% - \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% - \tud@font@init% - \tud@font@set[nomath]% - \AtBeginDocument{\tud@font@math@init}% -} \newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% + \ifcsundef{up#1}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% - }% - \ifcsdef{var#1}{}{% + }{}% + \ifcsundef{var#1}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% - }% + }{}% } -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% - \fi% - \ifcase\tud@cdfont\relax% false - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \if@tud@mweights% - \tud@cmd@restore{bfseries@rm}% - \tud@cmd@restore{bfseries@sf}% - \tud@cmd@restore{bfseries@tt}% - \tud@cmd@restore{mdseries@rm}% - \tud@cmd@restore{mdseries@sf}% - \tud@cmd@restore{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{false}% - \cs@std@lock{tud@head@font}{0}% - \else% true/heavy - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \if@tud@mweights% - \tud@cmd@store{bfseries@rm}% - \tud@cmd@store{bfseries@sf}% - \tud@cmd@store{bfseries@tt}% - \tud@cmd@store{mdseries@rm}% - \tud@cmd@store{mdseries@sf}% - \tud@cmd@store{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \cs@std@lock{tud@head@font}{\tud@cdfont}% - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% - \else% heavy - \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% - ]% - \fi% - \else% - \if@tud@univers% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true - \renewcommand*\bfdefault{m}% - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy - \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% - \fi% - \if@tud@mweights% - \edef\rmdef@ult{\rmdefault}% - \edef\sfdef@ult{\sfdefault}% - \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% \fi% - \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% - \normalfont\selectfont% - \tud@layout@process% -} -\newcommand*\tud@font@skip@set{% - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% -} -\newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% -} -\newcommand*\tud@font@math@set{% - \if@tud@univers% + \if@tud@universmath% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% @@ -1606,70 +1896,37 @@ } \newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} -\newcommand*\tud@head@font@bold{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@set{% - \ifdef{\@raggedtwoe@everyselectfont}{% - \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% - \selectfont% - }{}% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{bx}{n}{\tud@head@font@size}% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% - \@tempswafalse% - \ifcase\tud@head@font\relax% false - \ifnum\tud@cdfont>\z@\relax% true/heavy - \ClassWarning{\TUDClassName}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% - }% - \@tempswatrue% - \fi% - \else% true/heavy - \@tempswatrue% - \fi% - \if@tempswa% true/heavy - \if@tud@fontspec% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversRegular}{m}{n}{\tud@head@font@size}% - \fi% - \else% - \if@tud@univers% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@font@size}% - \fi% - \fi% - \fi% +\AtEndPreamble% +{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% \fi% + \tud@font@check% + \tud@font@set% + \tud@font@init% + \AtBeginDocument{\tud@font@math@init}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% } \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1679,37 +1936,73 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } %%% From File: tudscr-fields.dtx -\RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} +\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}} +\newcommand*\department[2][]{\tud@head@text@field{department}{#2}} +\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}} +\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\tud@head@text@field[2]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \global\@tud@head@text@settrue% +} \newcommand*\@@title{} +\robustify\@title \renewcommand*\title[1]{% \gdef\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% \protected@xdef\@@title{\trim@spaces{#1}}% \endgroup% } +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}% + \let\@tempb\tud@split@author@list% + \robustify\and% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \protected@edef\@@author{#1}% + \tud@replace\@@author{ \relax }{}% + \tud@replace\@@author{\relax }{}% + \tud@replace\@@author{ \relax}{}% + \tud@replace\@@author{\relax}{}% + \tud@replace\@@author{ \and }{\and}% + \tud@replace\@@author{ \and}{\and}% + \tud@replace\@@author{\and }{\and}% + \protected@xdef\@@author{\trim@spaces{\@@author}}% + \endgroup% +} \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\providecommand*\publisher[1]{\publishers{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} \newcommand*\tud@thanks{} -\newcommand*\tud@thesis[2]{% +\newcommand*\tud@thesis@do[2]{% \begingroup% \global\let\tud@thanks\relax% \def\thanks##1{\gdef\tud@thanks{##1}}% @@ -1721,47 +2014,51 @@ \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \global\let\@tempa\@tempa% \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% -} -\newcommand*\tud@@thesis[2]{% + \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \csdef{@#1}{#2}% + }}}}}}}}}}}}}}}% +} +\newcommand*\tud@thesis@@do[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUD@Class@Name}{% + Field `thesis' is overwritten by `subject'% + }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{true}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{false}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% \else% \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% \fi% - \gdef\@@thesis{#2}% + \protected@xdef\@@thesis{\trim@spaces{#2}}% } -\renewcommand*\subject[1]{\tud@thesis{subject}{#1}} +\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} \newcommand*\@graduation{} -\newcommand*\@graduationabbr{} +\newcommand*\@@graduation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}% + \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[2][]{\gdef\@professor{#2}} +\newcommand*\professor[1]{\gdef\@professor{#1}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1774,41 +2071,31 @@ \newcommand*\advisor[1]{\gdef\@advisor{#1}} \newcommand*\@matriculationnumber{} \newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}% + \gdef\@matriculationnumber{#1}\ignorespaces% } \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} -\providecommand*\publisher[1]{\publishers{#1}} -\newlength\tud@signatureskip -\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newlength\tud@len@signatureskip +\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \renewcommand*\tud@split@author[2]{% - \tud@multiple@fields@store{@author}{##1}% - \ignorespaces##1% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{##2}{\hfil}% - }% - \tud@multiple@split{@author}% - \hfil% + \let\and\hfil% + \@@author\hfil% \endgroup% } \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\newcommand*\printdate[1]{#1} -\BeforePackage{isodate}{\undef\printdate} -\newcommand*\tud@printdate[2]{% +\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\newcommand*\tud@x@isodate@printdate[2]{% \ifx\today#2\relax% \gdef#1{#2}% \else% @@ -1817,43 +2104,77 @@ {\gdef#1{\printdate{#2}}}% \fi% } -\newcommand*\tud@datecheck{% +\newcommand*\tud@date@check{% \ifdefvoid{\@duedate}{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% Since a thesis is a self-contained work, an end\MessageBreak% date should be specified by the author.\MessageBreak% Nevertheless, today's date is used% }% }{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% It's substituted by the given due date% }% \global\let\@date\@duedate% }% - \global\let\tud@datecheck\relax% -} -\newcommand*\@datemore{} -\renewcommand*\date[2][]{% - \gdef\@datemore{\trim@spaces{#1}}% - \tud@printdate{\@date}{#2}% - \global\let\tud@datecheck\relax% + \global\let\tud@date@check\relax% +} +\renewcommand*\date{% + \kernel@ifstar{% + \TUD@parameter@set{date}{pre=\noexpand\@place{,}}% + \tud@date@set% + }{\tud@date@set}% +} +\newcommand*\tud@date@set[2][]{% + \TUD@parameter@set{date}{#1}% + \tud@x@isodate@printdate{\@date}{#2}% + \global\let\tud@date@check\relax% +} +\newcommand*\tud@date@pre{} +\newcommand*\tud@date@app{} +\TUD@parameter@family{date}{% + \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@let{pre}{before}% + \TUD@parameter@let{prefix}{before}% + \TUD@parameter@def{after}{\def\tud@date@app{#1}}% + \TUD@parameter@let{app}{after}% + \TUD@parameter@let{suffix}{after}% + \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}% + \TUD@parameter@handler@value{after}% +} +\newcommand*\tud@date@print{% + \ifx\@date\@empty\else% + \ifx\tud@date@pre\@empty\else% + \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace% + \fi% + \@date% + \ifx\tud@date@app\@empty\else% + \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}% + \fi% + \fi% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} -\newcommand*\tud@multiple@@split{}% +\newrobustcmd*\dateofbirth[1]{% + \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% +} +\newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + \@latex@warning@no@line% + }{% + \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% - \expandafter\csname tud@split#1\endcsname{##1}{##2}% + \expandafter\csname tud@split#1@do\endcsname{##1}{##2}% }% \begingroup% \let\and\relax% + \def\newline{}% + \def\\{}% \edef\@tempa{\csname#1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% @@ -1867,13 +2188,10 @@ \@tempb% } \newcommand*\tud@multiple@fields@store[2]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% - \fi% - }% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -1881,45 +2199,68 @@ \endgroup% } \newcommand*\tud@multiple@fields@restore[1]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{% + \ifcsdef{@##1}{% + \tud@cmd@restore{@##1}% + \global\csletcs{@##1}{@##1}% + }{}% + }% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{% - \tud@cmd@restore{@\@tempb}% - \global\csletcs{@\@tempb}{@\@tempb}% - }{}% - \fi% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% +} +\newcommand*\tud@multiple@fields@preset[3]{% + \def\@tempa##1{% + \edef\@tempc{\csuse{##1}}% + \ifstr{#2}{*}{% + \csdef{@##1}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% + \ifin@% + \ifcsvoid{@##1}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% } -\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,matriculationyear,enrolmentyear,% + authormore,course,discipline,% + matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\TUDClassName' only supports the\MessageBreak% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% You can send your definitions to \tudscrmail\space in\MessageBreak% - order to implement support for additional languages. + order to implement support for additional languages.% }% }% } \tud@locale@define{\graduationtext} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} \tud@locale@define{\refereename} \tud@locale@define{\refereeothername} \tud@locale@define{\advisorname} \tud@locale@define{\advisorothername} +\tud@locale@define{\supervisorname} +\tud@locale@define{\supervisorothername} \tud@locale@define{\professorname} \tud@locale@define{\professorothername} \tud@locale@define{\datetext} @@ -1930,62 +2271,87 @@ \tud@locale@define{\matriculationnumbername} \tud@locale@define{\coverpagename} \tud@locale@define{\titlepagename} +\tud@locale@define{\titlename} \tud@locale@define{\confirmationname} \tud@locale@define{\confirmationtext} \tud@locale@define{\blockingname} \tud@locale@define{\blockingtext} +\tud@locale@define{\coursename} +\tud@locale@define{\disciplinename} \tud@locale@define{\listingname} \tud@locale@define{\listlistingname} \tud@locale@define{\dissertationname} \tud@locale@define{\diplomathesisname} \tud@locale@define{\masterthesisname} \tud@locale@define{\bachelorthesisname} +\tud@locale@define{\studentthesisname} \tud@locale@define{\studentresearchname} \tud@locale@define{\projectpapername} \tud@locale@define{\seminarpapername} +\tud@locale@define{\termpapername} \tud@locale@define{\researchname} \tud@locale@define{\logname} \tud@locale@define{\internshipname} \tud@locale@define{\reportname} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} \newcommand*\tud@locale@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } \tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\supervisorname}{Betreuer}% -\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - Erstgutachter% - \else% - Gutachter% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Gutachter% + \else% + Erstgutachter% + \fi% + }{Gutachter}% +}% \tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{Fachreferent}% +\tud@locale@german{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Fachreferenten% + \else% + Erster Fachreferent% + \fi% + }{Fachreferent}% +}% \tud@locale@german{\advisorothername}{}% +\tud@locale@german{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Betreuer% + \else% + Erstbetreuer% + \fi% + }{Betreuer}% +}% +\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Betreuende Hochschullehrer% - \else% - Betreuender Hochschullehrer% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Betreuende Hochschullehrer% + \else% + Erster betreuender Hochschullehrer% + \fi% + }{Betreuender Hochschullehrer}% +}% \tud@locale@german{\professorothername}{}% \tud@locale@german{\datetext}{Eingereicht am}% \tud@locale@german{\dateofbirthtext}{Geboren am}% @@ -1995,28 +2361,29 @@ \tud@locale@german{\matriculationnumbername}{Matrikelnummer}% \tud@locale@german{\coverpagename}{Umschlagseite}% \tud@locale@german{\titlepagename}{Titelblatt}% +\tud@locale@german{\titlename}{Titel}% \tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% \tud@locale@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es - wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel und - Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} \"ubernommenen - Zitate habe ich als solche kenntlich gemacht. + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. + Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. \ifx\@supporter\@empty% - Es waren keine weiteren Personen an der geistigen Herstellung der - vorliegenden Arbeit beteiligt. + Es waren keine weiteren Personen an der geistigen Herstellung + der vorliegenden Arbeit beteiligt. \else% - W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden - Personen unterst\"utzt:% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von + folgenden Personen unterst\"utzt:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Weitere Personen waren an der geistigen Herstellung der - vorliegenden Arbeit nicht beteiligt. + \noindent Weitere Personen waren an der geistigen Herstellung + der vorliegenden Arbeit nicht beteiligt. \fi% Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% -} +}% \tud@locale@german{\blockingname}{Sperrvermerk}% \tud@locale@german{\blockingtext}{% Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi @@ -2028,18 +2395,22 @@ durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen - Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des - Pr\"ufungsausschusses zug\"anglich zu machen.% -} + Universit\"at Dresden, den Gutachtern sowie den Mitgliedern + des Pr\"ufungsausschusses zug\"anglich zu machen.% +}% +\tud@locale@german{\coursename}{Studiengang}% +\tud@locale@german{\disciplinename}{Studienrichtung}% \tud@locale@german{\listingname}{Quelltext}% \tud@locale@german{\listlistingname}{Quelltextverzeichnis}% \tud@locale@german{\dissertationname}{Dissertation}% \tud@locale@german{\diplomathesisname}{Diplomarbeit}% \tud@locale@german{\masterthesisname}{Master-Arbeit}% \tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}% -\tud@locale@german{\studentresearchname}{Studienarbeit}% +\tud@locale@german{\studentthesisname}{Studienarbeit}% +\tud@locale@german{\studentresearchname}{Gro\ss{}er Beleg}% \tud@locale@german{\projectpapername}{Projektarbeit}% \tud@locale@german{\seminarpapername}{Seminararbeit}% +\tud@locale@german{\termpapername}{Hausarbeit}% \tud@locale@german{\researchname}{Forschungsbericht}% \tud@locale@german{\logname}{Protokoll}% \tud@locale@german{\internshipname}{Praktikumsbericht}% @@ -2050,39 +2421,45 @@ }% } \tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\supervisorname}{Supervisor}% -\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - First referee% - \else% - Referee% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Referees% + \else% + First referee% + \fi% + }{Referee}% +}% \tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{Advisor}% +\tud@locale@english{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Advisors% + \else% + First advisor% + \fi% + }{Advisor}% +}% \tud@locale@english{\advisorothername}{}% +\tud@locale@english{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Supervisors% + \else% + First supervisor% + \fi% + }{Supervisor}% +}% +\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Supervising professors% - \else% - Supervising professor% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Supervising professors% + \else% + First supervising professor% + \fi% + }{Supervising professor}% +}% \tud@locale@english{\professorothername}{}% \tud@locale@english{\datetext}{Submitted on}% \tud@locale@english{\dateofbirthtext}{Born on}% @@ -2092,6 +2469,7 @@ \tud@locale@english{\matriculationnumbername}{Matriculation number}% \tud@locale@english{\coverpagename}{Cover page}% \tud@locale@english{\titlepagename}{Title page}% +\tud@locale@english{\titlename}{Title}% \tud@locale@english{\confirmationname}{Statement of authorship}% \tud@locale@english{\confirmationtext}{% I hereby certify that I have authored this @@ -2102,40 +2480,44 @@ indicated in this thesis have been used. I have marked both literal and accordingly adopted quotations as such. \ifx\@supporter\@empty% - They were no additional persons involved in the spiritual - preparation of the present thesis. + There were no additional persons involved in the + intellectual preparation of the present thesis. \else% - During the preparation of this thesis I was only supported - by the following persons:% + During the preparation of this thesis I was only + supported by the following persons:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Additional persons were not involved in the spiritual - preparation of the present thesis. + \noindent Additional persons were not involved in the + intellectual preparation of the present thesis. \fi% I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% -} +}% \tud@locale@english{\blockingname}{Restriction note}% \tud@locale@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \emph{\@company}\fi. Publications, duplications and - inspections---even in part---are prohibited without explicit + , disclosed by \emph{\@company}\fi. Publications, duplications + and inspections---even in part---are prohibited without explicit permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% -} +}% +\tud@locale@english{\coursename}{Course}% +\tud@locale@english{\disciplinename}{Discipline}% \tud@locale@english{\listingname}{Listing}% \tud@locale@english{\listlistingname}{List of Listings}% \tud@locale@english{\dissertationname}{Dissertation}% \tud@locale@english{\diplomathesisname}{Diploma Thesis}% \tud@locale@english{\masterthesisname}{Master Thesis}% \tud@locale@english{\bachelorthesisname}{Bachelor Thesis}% +\tud@locale@english{\studentthesisname}{Student Thesis}% \tud@locale@english{\studentresearchname}{Student Research Project}% \tud@locale@english{\projectpapername}{Project Paper}% \tud@locale@english{\seminarpapername}{Seminar Paper}% +\tud@locale@english{\termpapername}{Term Paper}% \tud@locale@english{\researchname}{Research Report}% \tud@locale@english{\logname}{Log}% \tud@locale@english{\internshipname}{Internship Report}% @@ -2150,1157 +2532,943 @@ \tud@locale@english{\@commaswap}{\,}% \tud@locale@english{\@dotswap}{.}% } -%%% From File: tudscr-pagestyle.dtx -\newlength\tud@dim@widemargin -\newlength\tud@dim@slimmargin -\newlength\tud@dim@both -\newlength\tud@dim@topmargin -\newlength\tud@dim@barheight -\newlength\tud@dim@headsep -\newlength\tud@dim@footsep -\newlength\tud@dim@logox -\newlength\tud@dim@logoy -\newlength\tud@dim@logowidth -\newlength\tud@dim@line -\newlength\tud@dim@heavyline -\newlength\tud@dim@thinline -\newlength\tud@dim@headdiff -\newlength\tud@dim@headingsvskip -\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} -\newcommand*\tud@head@font@size{} -\newcommand*\tud@geometry@set{% - \ifdim\paperheight<148.1mm\relax% - \setlength\tud@dim@widemargin{15mm}% - \setlength\tud@dim@heavyline{0.5pt}% - \setlength\tud@dim@thinline{0.25pt}% - \def\tud@head@font@size{4.5}% - \else\ifdim\paperheight<297.1mm\relax% - \setlength\tud@dim@widemargin{30mm}% - \setlength\tud@dim@heavyline{1pt}% - \setlength\tud@dim@thinline{0.5pt}% - \def\tud@head@font@size{9}% - \else\ifdim\paperheight<420.1mm\relax% - \setlength\tud@dim@widemargin{42.426407mm}% - \setlength\tud@dim@heavyline{1.414214pt}% - \setlength\tud@dim@thinline{0.707107pt}% - \def\tud@head@font@size{12.727922}% - \else\ifdim\paperheight<594.1mm\relax% - \setlength\tud@dim@widemargin{60mm}% - \setlength\tud@dim@heavyline{2pt}% - \setlength\tud@dim@thinline{1pt}% - \def\tud@head@font@size{18}% - \else\ifdim\paperheight<841.1mm\relax% - \setlength\tud@dim@widemargin{84.852814mm}% - \setlength\tud@dim@heavyline{2.828427pt}% - \setlength\tud@dim@thinline{1.414214pt}% - \def\tud@head@font@size{25.455844}% +%%% From File: tudscr-area.dtx +\newlength\tud@len@widemargin +\newlength\tud@len@slimmargin +\newlength\tud@len@both +\newlength\tud@len@topmargin +\newlength\tud@len@barheight +\newlength\tud@len@headsep +\newlength\tud@len@footsep +\newlength\tud@len@logox +\newlength\tud@len@logoy +\newlength\tud@len@logowidth +\newlength\tud@len@line +\newlength\tud@len@heavyline +\newlength\tud@len@thinline +\newlength\tud@len@areaheadvskip +\newlength\tud@len@areadiff +\newlength\tud@len@areavskip +\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\newif\if@tud@cdgeometry@adjust +\newlength\tud@len@layoutheight +\newlength\tud@len@layoutwidth +\newlength\tud@len@layouthoffset +\newlength\tud@len@layoutvoffset +\newcommand*\tud@cdgeometry@set{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% \else% - \setlength\tud@dim@widemargin{120mm}% - \setlength\tud@dim@heavyline{4pt}% - \setlength\tud@dim@thinline{2pt}% - \def\tud@head@font@size{36}% - \fi\fi\fi\fi\fi% - \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}% - \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}% - \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}% - \setlength\tud@dim@footsep{% - \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% - }% -} -\newcommand*\tud@ifsacrop{% - \ifcsdef{ifsa@crop}{% - \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% + \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \tud@if@v@lower{2.05}{% + \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }{% - \@secondoftwo% + \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% -}{% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% -} -\tud@cmd@store{pagestyle} -\cslet{ps@tudheadings}{\ps@headings}% -\cslet{ps@plain.tudheadings}{\ps@plain}% -\cslet{ps@empty.tudheadings}{\ps@empty}% -\providecommand*\currentpagestyle{plain} -\providecommand*\BeforeSelectAnyPageStyle[1]{} -\providecommand*\GetRealPageStyle[1]{#1} -\BeforePackage{scrlayer-scrpage}{% - \tud@cmd@restore{pagestyle}% - \csundef{ps@tudheadings}% - \csundef{ps@plain.tudheadings}% - \csundef{ps@empty.tudheadings}% - \undef\currentpagestyle% - \undef\BeforeSelectAnyPageStyle% - \undef\GetRealPageStyle% -} -\let\tud@pagestyle\pagestyle -\apptocmd{\tud@pagestyle}{% - \edef\currentpagestyle{#1}% -}{}{\tud@patch@wrn{pagestyle}}% -\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} -\AtEndPreamble{% - \@ifpackageloaded{scrlayer-scrpage}{}{% - \let\pagestyle\tud@pagestyle% - \undef\tud@pagestyle% + \@tud@cdgeometry@adjustfalse% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \ifnum\@tempa>\z@\relax% + \ifnum\@tempa<8\relax% + \def\@tempa{3}% + \fi% + \fi% + \fi% + \ifcase\@tempa\relax% <=A7/B7 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + small paper height. It is recommended to increase\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{0.25pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{4.5pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \or% <=A6/B6 + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@thinline{0.25pt}% + \renewcommand*\tud@head@fontsize{4.5}% + \or% <=A5/B5 + \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted + \@tud@cdgeometry@adjusttrue% + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \else% + \setlength\tud@len@widemargin{21.213203mm}% + \setlength\tud@len@heavyline{0.707107pt}% + \setlength\tud@len@thinline{0.353553pt}% + \renewcommand*\tud@head@fontsize{6.363961}% + \fi% + \or% <=A4/B4 + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \or% <=A3/B3 + \setlength\tud@len@widemargin{42.426407mm}% + \setlength\tud@len@heavyline{1.414214pt}% + \setlength\tud@len@thinline{0.707107pt}% + \renewcommand*\tud@head@fontsize{12.727922}% + \or% <=A2/B2 + \setlength\tud@len@widemargin{60mm}% + \setlength\tud@len@heavyline{2pt}% + \setlength\tud@len@thinline{1pt}% + \renewcommand*\tud@head@fontsize{18}% + \or% <=A1/B1 + \setlength\tud@len@widemargin{84.852814mm}% + \setlength\tud@len@heavyline{2.828427pt}% + \setlength\tud@len@thinline{1.414214pt}% + \renewcommand*\tud@head@fontsize{25.455844}% + \or% <=A0/B0 + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@thinline{2pt}% + \renewcommand*\tud@head@fontsize{36}% + \else% >A0/B0 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + huge paper height. It is recommended to reduce\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{2pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{36pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{\tud@head@fontsize pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \global\@tud@head@font@settrue% + \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% + \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% + \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% + \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% + \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% + \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% + \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% + \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% + \setlength\tud@len@footsep{% + \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% }% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% + \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \fi% } -\AfterPackage{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \tud@mainlogo@set% - \tud@headlogo@option@set% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo@use\hfill\tud@headlogo@use% - },% - ]{tudheadings.head.content}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\tw@\relax% cdhead=color - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color - \color{HKS41!60}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% - \fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% +\newif\if@tud@x@crop@center +\AfterPackage{crop}{% + \CheckCommand*\CROP@center{% + \voffset\stockheight + \advance\voffset-\paperheight + \voffset.5\voffset + \hoffset\stockwidth + \advance\hoffset-\paperwidth + \hoffset.5\hoffset + }% + \pretocmd{\CROP@center}{% + \@tud@x@crop@centertrue% + }{}{\tud@patch@wrn{CROP@center}} +} +\newif\if@tud@x@standalone@crop +\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} +\newcommand*\tud@cdgeometry@process{} +\newcommand*\tud@cdgeometry@@process{} +\if@tud@x@standalone@crop + \PreventPackageFromLoading{geometry}% +\else + \RequirePackage{geometry}[2010/09/12]% +\fi +\AfterPackage*{geometry}{% + \CheckCommand*\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@ + }% + \expandafter\CheckCommand% + \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}% + }% + \CheckCommand*\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% + \CheckCommand\geometry[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process% + }% + \CheckCommand\newgeometry[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}% + }% + \CheckCommand\restoregeometry{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout% + }% + \CheckCommand*\savegeometry[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}% + }% + \CheckCommand*\loadgeometry[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@nameuse{Gm@restore@@#1}% + \Gm@changelayout}% + }% + \tud@cmd@store{geometry} + \tud@cmd@store{newgeometry} + \newif\if@tud@x@geometry@enabled% + \@tud@x@geometry@enabledtrue% + \newcommand*\tud@setgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \ifGm@pass% + \def\@tempb{}% + \else% + \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}% + \ifGm@layout% + \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}% \fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + \if@atdocument% + \edef\@tempa{\@tempb,#1}% + \tud@cmd@store{Gm@restore@org}% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + \def\@tempc{\tud@cmd@use{newgeometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \tud@cmd@restore{Gm@restore@org}% + \else% + \Gm@initnewgm% + \edef\@tempa{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1% + }% + \def\@tempc{\tud@cmd@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \fi% + \@tud@x@geometry@enabledtrue% + }% + \newcommand*\tud@savegeometry[1]{% + \def\Gm@restore{}% + \savegeometry{#1}% + \csepreto{Gm@restore@@#1}{% + \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}% + \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}% + \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% + \ifGm@includemp% + \noexpand\Gm@includemptrue% + \else% + \noexpand\Gm@includempfalse% \fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifGm@layout% + \noexpand\Gm@layouttrue% + \else% + \noexpand\Gm@layoutfalse% \fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - hoffset=0pt,% - width=\paperwidth,% - addvoffset=-\dp\strutbox,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \if@tud@foot@colored% - \let\@tempc\relax% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor - \def\@tempc{\color{HKS41!60}}% - \or% cdhead=color - \def\@tempc{\color{HKS41}}% - \fi% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% + \TUD@parameter@family{geometry}{% + \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}% + \TUD@parameter@let{papername}{paper}% + \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}% + \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}% + \TUD@parameter@def{papersize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{paper}{##1:##1}% }{% - \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@area@def{paper}{##1:##2}% }% - \ifx\@tempc\relax\else% - \@tempc\rule{\layerwidth}{\layerheight}% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}% + \TUD@parameter@let{layoutname}{layout}% + \TUD@parameter@def{layoutwidth}{% + \tud@area@def{layout}{#1:\the\tud@len@layoutheight}% + }% + \TUD@parameter@def{layoutheight}{% + \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + }% + \TUD@parameter@def{layoutsize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{layout}{##1:##1}% + }{% + \tud@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% + \TUD@parameter@handler@macro{% + \eappto\tud@x@geometry@parameter{% + \expandonce\kv@key=\expandonce\kv@value,% + }% + }{% + \tud@area@def{paper}{#2}% + }% + } + \newcommand*\tud@area@def[2]{% + \tud@lowerstring{\@tempa}{#2}% + \def\@tempb##1paper##2\@nil{% + \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + }% + \expandafter\@tempb\@tempa paper\@nil% + \@tempswafalse% + \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \if@tempswa\else% + \ifx\@tempa\@empty\relax\else% + \def\@tempb##1##2\@nil{% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \@tempswafalse% + \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \@tempswatrue% + \def\@tempa{##1:##2}% + }% + }% + \expandafter\@tempb\@tempa::\@nil% \fi% - \fi% - },% - ]{tudheadings.foot.back}% - \tud@ifverlower{2.03}{% - \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - contents={% - \if@tud@foot@colored% - \let\@tempc\relax% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor - \def\@tempc{\color{HKS41!60}}% - \or% cdhead=color - \def\@tempc{\color{HKS41}}% + \if@tempswa\else% + \def\tud@reserved##1:##2:##3:##4\@nil{% + \if@tempswa\else% + \ifstr{\@tempa}{##1}{% + \@tempswatrue% + \def\@tempa{##2##4:##3##4}% + }{}% \fi% - }{% - \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \ifx\@tempc\relax\else% - \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% - }% - \else% \tud@ddc@foot!=false - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - \fi% + \tud@reserved b0j:1030:1456:mm\@nil% + \tud@reserved b1j:728:1030:mm\@nil% + \tud@reserved b2j:515:728:mm\@nil% + \tud@reserved b3j:364:515:mm\@nil% + \tud@reserved b4j:257:364:mm\@nil% + \tud@reserved b5j:182:257:mm\@nil% + \tud@reserved b6j:128:182:mm\@nil% + \tud@reserved ansia:8.5:11:in\@nil% + \tud@reserved ansib:11:17:in\@nil% + \tud@reserved ansic:17:22:in\@nil% + \tud@reserved ansid:22:34:in\@nil% + \tud@reserved ansie:34:44:in\@nil% + \tud@reserved screen:225:180:mm\@nil% \fi% - },% - ]{tudheadings.foot.back}% - }{}% - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \tud@footlogoheight@set% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% - \tud@footlogo@option@set% - \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% - \tud@footcontent@use{\@tempdima}{\layerwidth}% - \hspace*{-\layerwidth}% - \tud@footlogo@cmd@use% - \hspace*{-\layerwidth}% - \hfill\tud@footlogo@ddc@use{\@tempdima}% - },% - ]{tudheadings.foot.content}% - \tud@ifverlower{2.03}{% - \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.content}% - }{}% - \DeclareNewLayer[% - background,% - ]{tudheadings.last}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% - \listadd\tud@ps@list{tudheadings}% - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \listadd\tud@ps@list{plain.tudheadings}% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last% - }% - \listadd\tud@ps@list{empty.tudheadings}% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \newcommand*\tud@pagecolor{}% - \DeclareNewLayer[% - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor}% - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% -} -\PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% - The package `fancyhdr' must not be used with a\MessageBreak% - TUD-KOMA-Script class. You should make use of the\MessageBreak% - capabilities of package `scrlayer-scrpage' instead% - }% -]{fancyhdr} -\newcommand*\tud@ps@onselect{% - \DeclarePageStyleAlias{plain}{plain.tudheadings}% - \DeclarePageStyleAlias{headings}{tudheadings}% - \def\sls@currentheadings{tudheadings}% - \def\sls@currentplain{plain.tudheadings}% -} -\newcommand*\tud@head@logocolor{black} -\newcommand*\tud@head@fontcolor{} -\newcommand*\tud@foot@logocolor{black} -\newcommand*\tud@foot@fontcolor{} -\newcommand*\tud@ps@onbackground{% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax% cdhead=nocolor - \def\tud@head@logocolor{black}% - \def\tud@head@fontcolor{}% - \def\tud@foot@logocolor{black}% - \def\tud@foot@fontcolor{}% - \or% cdhead=litecolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \or% cdhead=barcolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% \fi% \fi% - }{% - \ifstr{\tud@pagecolor}{HKS41}{% - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \def\tud@foot@logocolor{white}% - \if@tud@foot@colored% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@fontcolor{HKS41!30}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }{% - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \ifcase\tud@head@bar\relax\or\or\or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \fi% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }% - }% - \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% - \global\let\tud@foot@fontcolor\tud@foot@fontcolor% -} -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% - \xdef\@specialstyle{\GetRealPageStyle{#1}} -}{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@head@text{} -\newcommand*\tud@head@text@first{} -\newcommand*\tud@head@text@second{} -\newcommand*\tud@head@text@delimiter{} -\newcommand*\tud@head@text@buffer{} -\newcommand*\tud@head@rule[1]{% - \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@dim@line}% -} -\newcommand*\tud@head@text@add[3][, ]{% - \protected@edef\tud@head@text{#3}% - \ifx\tud@head@text\@empty% - \def\tud@head@text@delimiter{}% - \else% - \edef\tud@head@text@delimiter{\tud@head@text@buffer}% - \def\tud@head@text@buffer{#1}% - \fi% - \if@tempswa\else% - \def\@tempa{% - \tud@head@text@first% - \tud@head@text@delimiter% - #2% - \tud@head@text% - }% - \settowidth\@tempdima{\@tempa}% - \ifdim\@tempdima>\textwidth\relax% - \@tempswatrue% - \def\tud@head@text@delimiter{}% + \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% - \protected@edef\tud@head@text@first{\@tempa}% + \appto\tud@x@geometry@parameter{#2,}% \fi% - \fi% - \if@tempswa% - \protected@edef\tud@head@text@second{% - \tud@head@text@second% - \tud@head@text@delimiter% - #2% - \tud@head@text% + } + \newcommand*\tud@area@set[1]{% + \letcs{\@tempa}{tud@x@geometry@#1}% + \ifdefvoid{\@tempa}{}{% + \def\@tempb##1:##2:##3\@nil{% + \tud@cmd@store{@tempa}% + \tud@cmd@store{@tempb}% + \tud@cmd@store{@tempc}% + \IfArgIsEmpty{##2}{% + \KOMAoption{paper}{##1}% + }{% + \if@landscape% + \KOMAoption{paper}{##2:##1}% + \else% + \KOMAoption{paper}{##1:##2}% + \fi% + }% + \tud@cmd@restore{@tempa}% + \tud@cmd@restore{@tempb}% + \tud@cmd@restore{@tempc}% + }% + \def\@tempc##1{\@tempb##1::\@nil}% + \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}% }% - \fi% -} -\newcommand*\tud@head@text@box{% - \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% - \faculty{}% - \fi% - \tud@head@font@set% - \@tempswafalse% - \def\tud@head@text@first{}% - \def\tud@head@text@second{}% - \def\tud@head@text@buffer{}% - \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% - \tud@head@text@add{\tud@head@font@light}{\@department}% - \tud@head@text@add{\tud@head@font@light}{\@institute}% - \tud@head@text@add{\tud@head@font@light}{\@chair}% - \settowidth\@tempdima{\tud@head@text@second}% - \ifdim\@tempdima>\textwidth\relax% - \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% - \hfuzz=\@tempdima% - \fi% - \vbox{% - \linespread{0}\selectfont\offinterlineskip% - \tud@color{\tud@head@fontcolor}% - \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color - \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + } + \newcommand*\tud@x@geometry@init{} + \newcommand*\tud@x@geometry@paper{} + \newcommand*\tud@x@geometry@layout{} + \newcommand*\tud@x@geometry@parameter{} + \newcommand*\tud@geometry[2]{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% + \else% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \let\tud@x@geometry@paper\@empty% + \let\tud@x@geometry@layout\@empty% + \let\tud@x@geometry@parameter\@empty% + \TUD@parameter@set{geometry}{#1}% + \tud@area@set{paper}% + \ifstr{#2}{newgeometry}{% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + }{% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% }% + }% + \ifx\tud@x@geometry@layout\@empty\else% + \begingroup% + \setlength\paperwidth{\Gm@layoutwidth}% + \setlength\paperheight{\Gm@layoutheight}% + \tud@area@set{layout}% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% + }% + }% + \tud@reserved% \fi% - \ifx\tud@head@text@second\@empty% - \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% + \def\@tempa{\tud@cmd@use{#2}}% + \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}% + \ifstr{#2}{geometry}{% + \ifbool{@tud@x@geometry@enabled}{% + \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}% + }{}% + }{}% + } + \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}} + \renewcommand*\newgeometry[1]{% + \tud@cmd@store{Gm@restore@org}% + \tud@geometry{#1}{newgeometry}% + \tud@cmd@restore{Gm@restore@org}% + } + \apptocmd{\Gm@changelayout}{% + \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{% + \tud@cdgeometry@process% + }{}% + }{}{\tud@patch@wrn{Gm@changelayout}}% + \renewcommand*\restoregeometry[1][]{% + \IfArgIsEmpty{#1}{}{% + \tud@cmd@store{TUD@SpecialOptionAtDocument}% + \let\TUD@SpecialOptionAtDocument\@gobble% + \TUDoption{cdgeometry}{#1}% + \tud@cmd@restore{TUD@SpecialOptionAtDocument}% + }% + \ifnum\tud@cdgeometry@num=\@ne\relax + \tud@loadgeometry{init@custom}% \else% - \newline\tud@head@text@write{\tud@head@text@second}% - \ifx\@extraheadline\@empty\else% - \newline\vbox{\tud@head@font@light\@extraheadline}% - \fi% + \tud@loadgeometry{init@typearea}% \fi% + \tud@AfterChangingArea% }% -} -\newcommand*\tud@head@text@write[1]{% - \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% - \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% -} -\newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\TUDClassName}{% - The given entries for the headline\MessageBreak% - (faculty, institute etc.) are #1\MessageBreak% - too wide for the textwidth% + \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% }% - \global\let\tud@head@text@wrn\@gobble% -} -\newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@savelayerbox[1]{% - \global\expandafter\sbox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@uselayerbox[1]{% - \expandafter\usebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@vlayerbox[3]{% - \begingroup% - \setbox\z@\vbox{#2}% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% - \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUDClassName}{% - #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima% - }% - \fi% - \endgroup% - \vbox to #1{#2}% -} -\tud@newlayerbox{main@black} -\tud@newlayerbox{main@HKS41} -\tud@newlayerbox{main@white} -\newlength\tud@mainlogoheight -\newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set -\newcommand*\tud@mainlogo@set{% - \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% - \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% - \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% - \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% - \global\tud@mainlogoheight=\tud@mainlogoheight% - \gdef\tud@mainlogo@wrn##1{% - \ifdim##1<\ta@bcor\relax% - \ClassWarning{\TUDClassName}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% + \renewcommand*\tud@cdgeometry@@process{% + \csuse{@ta@usegeometryfalse}% + \tud@cdgeometry@set% + \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \ifcase\tud@cdgeometry@num\relax% + \ifGm@layout% + \tud@skip@store{paperheight}% + \tud@skip@store{paperwidth}% + \setlength\paperheight{\tud@len@layoutheight}% + \setlength\paperwidth{\tud@len@layoutwidth}% + \fi% + \tud@cmd@store{activateareas}% + \tud@cmd@store{tud@AfterChangingArea}% + \let\activateareas\relax% + \let\tud@AfterChangingArea\relax% + \recalctypearea% + \ifGm@layout% + \tud@skip@restore{paperheight}% + \tud@skip@restore{paperwidth}% + \fi% + \tud@cmd@restore{activateareas}% + \tud@cmd@restore{tud@AfterChangingArea}% + \edef\tud@cdgeometry@hmargin{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% }% - \global\let\tud@mainlogo@wrn\@gobble% - \fi% - }% - \tud@headlogo@set% - \tud@footlogo@set% - \global\@tud@mainlogo@setfalse% - \fi% -} -\newcommand*\tud@mainlogo@use{% - \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% - }% - \tud@uselayerbox{main@\tud@head@logocolor}% -} -\tud@newlayerbox{head@black} -\tud@newlayerbox{head@HKS41} -\tud@newlayerbox{head@white} -\tud@newlayerbox{head@option} -\newcommand*\@headlogo{} -\newcommand*\@@headlogo{} -\newcommand*\tud@headlogo@wrn{} -\newcommand*\headlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@headlogo{#2}% - \def\@@headlogo{#1}% - \global\@tud@headlogo@option@settrue% - \global\@tud@footlogo@option@settrue% - \gdef\tud@headlogo@wrn{% - \ClassWarning{\TUDClassName}{% - The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% - }% - \global\let\tud@headlogo@wrn\relax% - }% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@headlogo@set{% - \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% - }% - \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% - \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% - \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% - \tud@headlogo@option@set% -} -\newcommand*\tud@headlogo@option@set{% - \if@tud@headlogo@option@set% - \def\@tempc##1##2{% - \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@mainlogoheight,##2% - ]{\trim@spaces{##1}}% - }% - }% - \tud@savelayerbox{head@option}{}% - \tud@ddc@check% - \ifcase\@tempa\relax% \tud@ddc@head=false - \ifdefvoid{\@headlogo}{}{% - \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% - \@tempb% - }% - \or\or% \tud@ddc@head=color - \@tempc{DDC-03}{}% - \or% \tud@ddc@head=colorblack - \@tempc{DDC-09}{}% - \or% \tud@ddc@head=gray - \@tempc{DDC-21}{}% - \or% \tud@ddc@head=black - \@tempc{DDC-24}{}% - \or% \tud@ddc@head=blue - \@tempc{DDC-27}{}% - \or% \tud@ddc@head=white - \@tempc{DDC-30}{}% - \fi% - \global\@tud@headlogo@option@setfalse% - \fi% -} -\newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@mainlogoheight}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true - \tud@uselayerbox{head@\tud@head@logocolor}% - \else% - \tud@uselayerbox{head@option}% - \fi% - }% - \vss% - }{% - The given `\string\headlogo{\@headlogo}' is too large.% - } - \ifdefvoid{\@headlogo}{}{% - \tud@ddc@check% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - }% -} -\tud@newlayerbox{foot@black} -\tud@newlayerbox{foot@HKS41} -\tud@newlayerbox{foot@white} -\tud@newlayerbox{foot@option} -\newlength\footlogoheight -\newlength\tud@footlogoheight -\newcommand*\tud@footlogoheight@set{% - \ifdim\footlogoheight=\z@\relax% - \tud@ifverlower{2.03}{% - \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% - }{% - \setlength\tud@footlogoheight{\tud@mainlogoheight}% - }% - \else% - \ifdim\footlogoheight=\tud@footlogoheight\relax\else% - \setlength\tud@footlogoheight{\footlogoheight}% - \global\@tud@footlogo@option@settrue% - \fi% - \fi% - \global\tud@footlogoheight=\tud@footlogoheight% -} -\newcommand*\tud@footlogo@ddc@set[2]{% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% - }% -} -\newcommand*\tud@footlogo@set{% - \tud@footlogo@ddc@set{black}{DDC-22}% - \tud@footlogo@ddc@set{HKS41}{DDC-25}% - \tud@footlogo@ddc@set{white}{DDC-28}% - \tud@footlogo@option@set% -} -\newcommand*\tud@footlogo@option@set{% - \if@tud@footlogo@option@set% - \tud@ddc@check% - \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color - \tud@footlogo@ddc@set{option}{DDC-01}% - \or% \tud@ddc@foot=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% - \or% \tud@ddc@foot=gray - \tud@footlogo@ddc@set{option}{DDC-19}% - \or% \tud@ddc@foot=black - \tud@footlogo@ddc@set{option}{DDC-22}% - \or% \tud@ddc@foot=blue - \tud@footlogo@ddc@set{option}{DDC-25}% - \or% \tud@ddc@foot=white - \tud@footlogo@ddc@set{option}{DDC-28}% - \fi% - \global\@tud@footlogo@option@setfalse% - \fi% -} -\newcommand*\tud@footlogo@ddc@use[1]{% - \tud@vlayerbox{#1}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% \tud@ddc@foot=true - \tud@uselayerbox{foot@\tud@foot@logocolor}% - \else% - \tud@uselayerbox{foot@option}% - \fi% - }% - \vss\vss% - }{% - The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% - high. You should reduce this length.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% - }% -} -\tud@newlayerbox{foot@cmd} -\newcommand*\footlogosep{\hfill} -\newcommand*\@footlogo{} -\newcommand*\@@footlogo{} -\newcommand*\footlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@footlogo{#2}% - \def\@@footlogo{#1}% - \global\@tud@footlogo@cmd@settrue% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newif\if@tud@footlogo@cmd@set -\newcommand*\tud@footlogo@cmd@set[2]{% - \if@tud@footlogo@cmd@set% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@cmd}{% - \hbox to #2{% - \let\@tempa\relax% - \@for\@tempb:=\@footlogo\do{% - \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \edef\tud@cdgeometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% \fi% - \let\@tempa\footlogosep% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \tud@cdgeometry@fincl,% + footskip=\the\footskip% }% - \hss% + \else% custom + \ifGm@pass\else% + \edef\tud@cdgeometry@hmargin{% + left=\Gm@lmargin,% + right=\Gm@rmargin,% + \ifGm@includemp% + includemp=true,% + \else% + includemp=false,% + \fi% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\Gm@bindingoffset% + }% + \edef\tud@cdgeometry@vmargin{% + \ifGm@includehead% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \ifGm@includefoot% + includefoot=true,% + \else% + includefoot=false,% + \fi% + footskip=\the\footskip% + }% + \fi% + \fi% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\topmargin-\headheight-\headsep-1in\relax% }% - }% - \global\@tud@footlogo@cmd@setfalse% - \fi% -} -\newcommand*\tud@footlogo@cmd@@set[2]{% - \begingroup% - \def\@tempa{}% - \def\@tempb{}% - \@tempswatrue% - \def\do##1{% - \if@tempswa% - \def\@tempa{##1}% - \@tempswafalse% + \ifdim\tud@len@areadiff<\z@\relax% + \addtolength\tud@len@headsep{-\tud@len@areadiff}% + \setlength\@tempdima{\z@}% \else% - \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \setlength\@tempdima{\tud@len@areadiff}% \fi% - }% - \let\@tempc\relax% - \DeclareListParser{\@tempc}{:}% - \@tempc{#1}% - \preto\@@footlogo{% - keepaspectratio,totalheight=\tud@footlogoheight,% - }% - \appto\@@footlogo{\@tempb}% - \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% - \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% - The given `\string\footlogo{\@tempa}' is too large.% - }% - \endgroup% -} -\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% -\newkomafont{tudheadings}{% - \sffamily% - \tud@color{\tud@foot@fontcolor}% -} -\newcommand*\tud@footcontent@font{} -\newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{} -\newcommand*\footcontent{% - \@ifstar{% - \@tempswafalse% - \@footcontent% - }{% - \@tempswatrue% - \@footcontent% - }% -} -\newcommand*\@footcontent[2][]{% - \kernel@ifnextchar[%] - {\@@footcontent{#1}{#2}}% - {\@@footcontent{#1}{#2}[\@nnil]}% -} -\newcommand*\@@footcontent{} -\def\@@footcontent#1#2[#3]{% - \if@tempswa% - \def\tud@footcontent@font{% - \usekomafont{tudheadings}% - \tud@divide\@tempa{\tud@head@font@size}{\f@size}% - \linespread{\@tempa}% - \selectfont% - \tud@head@font@light% - #1% - }% - \else% - \def\tud@footcontent@font{#1}% - \fi% - \def\tud@footcontent@left{#2}% - \def\tud@footcontent@right{#3}% -} -\newcommand*\tud@footcontent@use[2]{% - \tud@ddc@check% - \ifcase\@tempb% - \setlength\@tempdimc{\z@}% - \else% - \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% - \fi% - \tud@vlayerbox{#1}{% - \vss% - \hbox to #2{% - \tud@footcontent@font% - \expandafter\ifx\tud@footcontent@right\@nnil\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep,% + textheight=\the\dimexpr\textheight-\@tempdima\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@ddcdiff{% + \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% + +\footheight-1.25\baselineskip\relax% }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% + \edef\tud@cdgeometry@ddcmargin{% + textheight=\the\dimexpr\textheight-\tud@len@areadiff% + -\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% + }{}% + \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea or custom layout is used\MessageBreak% + (`cdgeometry=false/custom')% }% \fi% - \hss% - }% - \vss\vss% - }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content or\MessageBreak% - lower the fontsize via the optional argument.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% - }% -} -\AtEndPreamble{% - \@ifpackageloaded{geometry}{}{% - \def\tud@geometry@process{\tud@geometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{geometry}% -}{% - \RequirePackage{geometry}[2010/09/12]% - \newcommand*\tud@geometry@hmargin{}% - \newcommand*\tud@geometry@vmargin{}% - \newcommand*\tud@geometry@tudmargin{}% - \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% - \newcommand*\tud@newgeometry[1]{% - \if@atdocument% - \edef\@tempa{#1}% - \expandafter\newgeometry\expandafter{#1}% - \else% - \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% - \expandafter\geometry\expandafter{\@tempa}% - \fi% - }% - \newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% false - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \setlength\@tempdima{\tud@len@widemargin}% + \if@reversemargin% + \setlength\@tempdimc{\tud@len@widemargin}% + \else% + \setlength\@tempdimc{\tud@len@slimmargin}% + \fi% + \or% symmetric + \setlength\@tempdima{.5\tud@len@both}% + \setlength\@tempdimc{.5\tud@len@both}% + \or% twoside + \if@twoside% + \setlength\@tempdima{.4\tud@len@both}% + \else% + \setlength\@tempdima{.5\tud@len@both}% + \fi% + \setlength\@tempdimc{.5\tud@len@both}% + \if@twoside% + \if@reversemargin% + \setlength\@tempdimc{.4\tud@len@both}% + \else% + \setlength\@tempdimc{.6\tud@len@both}% + \fi% + \fi% + \fi% + \addtolength\@tempdimc{-\headsep}% + \setlength\@tempdimb{% + \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \if@mincl% + \addtolength\@tempdimb{-\@tempdimc}% \fi% - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% + \edef\tud@cdgeometry@hmargin{% + left=\the\@tempdima,% + textwidth=\the\@tempdimb,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\@tempdimc,% + marginparsep=\the\dimexpr.5\headsep\relax,% \if@reversemargin% reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr\oddsidemargin+1in% - -\tud@ta@headsep\relax,% - \fi% \else% reversemarginpar=false,% \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + bindingoffset=\the\ta@bcor% }% - \edef\tud@geometry@vmargin{% - \if@hincl% - includehead=true,% - top=\the\dimexpr\tud@ta@topmargin+1in\relax,% - \else% - includehead=false,% - top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% + \if@twoside% + \ifcase\tud@cdgeometry@num\relax\or\or% true + \appto\tud@cdgeometry@hmargin{,asymmetric}% + \else% symmetric/twoside + \appto\tud@cdgeometry@hmargin{,twoside}% \fi% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - textheight=\the\tud@ta@textheight,% - \tud@geometry@fincl,% - footskip=\the\tud@ta@footskip% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \setlength\@tempdima{\z@}% - \else% - \setlength\@tempdima{\tud@ta@headdiff}% \fi% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,% - ignorehead% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \edef\tud@geometry@ddcmargin{% - textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@if@v@lower{2.03}{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\dimexpr.5\tud@len@both\relax,% + headheight=\the\headheight,% + headsep=\the\tud@len@headsep,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\TUDClassName}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% - \else% true/symmetric/twoside - \ifcase\tud@geometry\or% true - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\tud@dim@widemargin,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside asymmetric,\fi% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - marginparwidth=\the\dimexpr\tud@dim@widemargin% - -\tud@ta@headsep\relax,% - \else% - reversemarginpar=false,% - marginparwidth=\the\dimexpr\tud@dim@slimmargin% - -\tud@ta@headsep\relax,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% symmetric - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr.5\tud@dim@both\relax,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% twoside - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - \if@twoside% - left=\the\dimexpr.4\tud@dim@both\relax,% - twoside,% - \else% - left=\the\dimexpr.5\tud@dim@both\relax,% - \fi% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr.4\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \if@twoside% - marginparwidth=\the\dimexpr.6\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \fi% - \tud@ifverlower{2.03}{% - \edef\tud@geometry@vmargin{% - top=\the\dimexpr.5\tud@dim@both\relax,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }{% - \edef\tud@geometry@vmargin{% - top=\the\tud@dim@slimmargin,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% + }{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\tud@len@slimmargin,% + headheight=\the\headheight,% + headsep=\the\headsep,% + bottom=\the\dimexpr\tud@len@widemargin% + +\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% }% }% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - ignorehead% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep% }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\tud@len@slimmargin\relax% }% - \tud@ifverlower{2.03}{% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -.5\tud@len@both\relax% }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \edef\tud@geometry@ddcmargin{% + \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \edef\tud@cdgeometry@ddcmargin{% \if@fincl% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff+\tud@len@headsep+\footheight% -1.25\baselineskip\relax,% \else% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff\relax,% \fi% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip+\tud@len@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \tud@ifverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% + \global\tud@len@areadiff=\tud@len@areadiff% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% + \else% + \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \fi% + \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \tud@if@v@lower{2.03}{% + \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi% + \global\tud@len@ddcdiff=\tud@len@ddcdiff% }{}% - \tud@geometry@@process% + \tud@cdgeometry@@@process% }% - \newcommand*\tud@geometry@@process{% - \edef\Gm@restore@org{\Gm@restore}% - \tud@ifverlower{2.03}{% + \newcommand*\tud@cdgeometry@@@process{% + \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% + \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% + \tud@if@v@lower{2.03}{% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin,% + \tud@cdgeometry@ddcmargin,% ignorehead,ignorefoot% }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudareaddc}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudareaddc}% }{}% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin% }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudarea}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudarea}% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin% }% - \tud@newgeometry{\@tempa}% - \savegeometry{typearea}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{stdarea}% + \if@atdocument% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% + }% + \fi% }% - \newcommand*\tud@geometry@hincl{% + \newcommand*\tud@cdgeometry@hincl{% \if@hincl% includehead=true% \else% includehead=false% \fi% }% - \newcommand*\tud@geometry@fincl{% + \newcommand*\tud@cdgeometry@fincl{% \if@fincl% includefoot=true% \else% includefoot=false% \fi% }% - \newcommand*\tud@geometry@mpincl{% + \newcommand*\tud@cdgeometry@mpincl{% \if@mincl% includemp=true% \else% @@ -3311,48 +3479,163 @@ \newcommand*\tud@currentgeometry{} \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% \ifstr{#1}{\GetRealPageStyle{#1}}{% - \tud@iftudps{#1}{% - \tud@ifverlower{2.03}{% + \tud@if@tudheadings{#1}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifcase\@tempb\relax% \tud@ddc@foot@num=false \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% + \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% - \else% \tud@ddc@foot!=false + \else% \tud@ddc@foot@num!=false \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% + \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% + \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@dim@headdiff{\z@}% + \setlength\tud@len@areavskip{\z@}% \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@loadgeometry{stdarea}% + \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \setlength\tud@len@areavskip{\tud@len@areadiff}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + \addtolength\tud@len@areavskip{% + \dimexpr-\headheight-\tud@len@headsep\relax% }% \fi% \fi% \tud@font@koma@unset{pagefoot}% \tud@font@koma@unset{pagenumber}% }% - \global\tud@dim@headdiff=\tud@dim@headdiff% + \global\tud@len@areavskip=\tud@len@areavskip% }{}% } +\newcommand*\tud@AfterChangingArea{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\newcommand*\tud@cdgeometry@init{% + \AtEndPreamble{% + \if@tud@x@standalone@crop% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% + \let\tud@AfterChangingArea\relax% + \let\tud@cdgeometry@process\relax% + \else% + \csuse{@ta@usegeometryfalse}% + \def\tud@reserved##1{% + \tud@setgeometry{% + \tud@cdgeometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor,% + \tud@cdgeometry@hincl,% + \tud@cdgeometry@fincl,% + \tud@x@geometry@init,% + driver=none% + }% + \addtolength\oddsidemargin{-\Gm@layouthoffset}% + \addtolength\evensidemargin{-\Gm@layouthoffset}% + \addtolength\topmargin{-\Gm@layoutvoffset}% + \tud@savegeometry{init@##1}% + }% + \begingroup% + \let\scr@grouplevel@test\@gobble% + \setlength\paperheight{\Gm@layoutheight}% + \setlength\paperwidth{\Gm@layoutwidth}% + \let\activateareas\relax% + \tud@x@ta@warnings@off% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}% + \def\@tempb{{0}}% + \ifx\@tempa\@tempb\relax% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}% + \@for\@tempb:=\@tempa\do{% + \@tempswatrue% + \ifx\@tempb\defaultpapersize\relax% + \@tempswafalse% + \fi% + }% + \if@tempswa% + \KOMAoptions{DIV=11}% + \fi% + \fi% + \recalctypearea% + \tud@x@ta@warnings@on% + \edef\tud@x@geometry@init{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + bindingoffset=\the\ta@bcor,% + \if@hincl% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + footskip=\the\footskip% + }% + \tud@reserved{typearea}% + \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea% + \endgroup% + \tud@reserved{custom}% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \ifundef{\AfterRestoreareas}{}{% + \AfterRestoreareas{\tud@AfterChangingArea}% + }% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% + \tud@cdgeometry@process% + \fi + \let\tud@cdgeometry@init\relax% + }% +} +\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\TUD@UnwindPackage{geometry}{% + \newif\ifGm@layout% + \newif\ifGm@showcrop% + \newif\ifGm@pass% + \let\Gm@layoutheight\paperheight% + \let\Gm@layoutwidth\paperwidth% + \let\Gm@layouthoffset\z@% + \let\Gm@layoutvoffset\z@% + \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \providecommand*\tud@setgeometry[1]{}% + \providecommand*\tud@savegeometry[1]{}% +} \patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} @@ -3362,732 +3645,1452 @@ \patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\tud@ifverlower{2.03}{% +\tud@if@v@lower{2.03}{% \newcommand*\tud@ddc@enlargepage[1][]{% - \tud@iftudps{#1}{% + \tud@if@tudheadings{#1}{% \ifstr{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \enlargethispage{-\tud@dim@ddcdiff}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \enlargethispage{-\tud@len@ddcdiff}% \fi% }% }{}% }% }{} -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@AfterChangingArea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% - }{% - \setlength\tud@ta@footheight{\ta@fh}% - }% - \setlength\tud@ta@footskip{\footskip}% - \tud@geometry@process% - \global\@tud@mainlogo@settrue% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% -} -\AtEndPreamble{% - \tud@ifsacrop{}{% - \AfterCalculatingTypearea{\tud@AfterChangingArea}% - \AfterSettingArea{\tud@AfterChangingArea}% - \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% - \recalctypearea% - }% -} -\newcommand*\tud@ps{tudheadings} -\newcommand*\tud@ps@select{% - \expandafter\pagestyle\expandafter{\tud@ps}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% - \renewcommand*\titlepagestyle{empty}% - \renewcommand*\indexpagestyle{empty}% - }{}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% - \renewcommand*\titlepagestyle{empty.tudheadings}% - \renewcommand*\indexpagestyle{empty.tudheadings}% +%%% From File: tudscr-pagestyle.dtx +\if@tud@x@standalone@crop + \PreventPackageFromLoading{scrlayer-scrpage}% +\else + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\fi +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% + contents={% + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\layerheight}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.upline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowline}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.uplinewide}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowlinewide}% + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% + \DeclareNewLayer[% + background,foot,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% + addvoffset=-\dp\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + }% + }% + \else% \tud@ddc@foot@num!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% }{}% -} -\newcommand*\tud@currentpagestyle{} -\newcommand*\tud@currentpagestyle@set{% - \ifdefvoid{\tud@currentpagestyle}{% - \xdef\tud@currentpagestyle{\currentpagestyle}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% }{}% -} -\newcommand*\tud@currentpagestyle@reset{% - \ifdefvoid{\tud@currentpagestyle}{}{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% + \DeclareNewLayer[% + background,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% }% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% + }% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \DeclareNewLayer[% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } -\NewEnviron{tudpage}[1][]{% - \tud@currentpagestyle@set% - \clearpage% - \def\tud@ps{tudheadings}% - \TUD@parameter@set{tudpage}{#1}% - \tud@ps@select% - \tud@multicols@check% - \ifnum\tud@multicols>\@ne\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \fi% -}[% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% -] -\newcommand*\TUD@parameter@define@ps[1]{% - \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% - \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% - \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% - \TUD@parameter@define{headlogo}{\headlogo{#1}}% - \TUD@parameter@define{footlogo}{\footlogo{#1}}% - \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% - \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% - \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% - \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% - \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% - \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% - \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% - \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% - \TUD@parameter@let{logo}{headlogo}% +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} +\PreventPackageFromLoading[% + \ClassWarning{\TUD@Class@Name}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} +\newcommand*\tud@ps@onselect{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% } -\TUD@parameter{tudpage}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{% - \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% - headings, plain, empty or any tudheadings page style type% +\newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} +\newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} +\newcommand*\tud@ps@onbackground{% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% + \or% cdhead=litecolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \or% cdhead=barcolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% + \if@tud@foot@colored% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% }% - }}}% + \fi% + \else% cdhead=*color + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% + \fi% + \fi% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% }% }% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% + \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% } -%%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{} -\newlength\pageheadingsvskip -\newlength\headingsvskip -\newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% false - \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% !false - \bool@std@lock{@tud@cover@cdgeometry}{true}% - \fi% - \ifcase\tud@layout@title\relax% false - \tud@cmd@restore{maketitle}% - \tud@cmd@restore{@maketitle}% - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% - \else% !false - \tud@cmd@store{maketitle}% - \tud@cmd@store{@maketitle}% - \tud@cmd@store{titlepagestyle}% - \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% - \tud@font@koma@set{title}{% - \usekomafont{disposition}% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@title@fontcolor}% - }% - \tud@font@koma@set{subtitle}{% - \tud@font@heading% - \usesizeofkomafont{section}% - \tud@color{\tud@title@fontcolor}% - }% - \tud@font@koma@set{subject}{% - \fontfamily{\sfdefault}% - \fontseries{\bfdefault}% - \selectfont% - \tud@color{\tud@title@fontcolor}% - }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \let\maketitle\tud@maketitle% - \renewcommand*\titlepagestyle{plain.tudheadings}% - \fi% - \ifcase\tud@layout@part\relax% false - \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}% - \else% !false - \tud@cmd@store{partheadstartvskip}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - }{% - \tud@cmd@store{@part}% - }% - \tud@sectioning@set[addpart]{part}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% - }% - \tud@font@koma@set{partnumber}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% - }% - \let\partheadstartvskip\tud@partheadstartvskip% - \ifcsdef{scr@v@3.18}{% - \let\scr@@startpart\tud@@startpart% - }{% - \let\@part\tud@@part% - }% - \fi% - \ifcase\tud@layout@part\relax% false - \tud@sectioning@reset[addsec]{section}% - \tud@sectioning@reset{subsection}% - \tud@sectioning@reset{subsubsection}% - \tud@sectioning@reset{minisec}% - \else% !false - \tud@sectioning@set[addsec]{section}{\tud@font@heading}% - \tud@sectioning@set{subsection}{\tud@font@heading}% - \tud@sectioning@set{subsubsection}{\tud@font@heading}% - \tud@sectioning@set{minisec}{\tud@font@heading}% - \fi% +\newcommand*\tud@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% - \edef\@tempa{% - \noexpand\tud@color{% - \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% - }% - }\@tempa% - }% - \tud@cmd@store{footnoterule}% - \let\footnoterule\relax% +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + \tud@cdgeometry@init% } -\newcommand*\tud@partheadstartvskip{} -\let\tud@partheadstartvskip\partheadstartvskip% -\pretocmd{\tud@partheadstartvskip}{% - \def\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part\relax\or\else% *color - \def\tud@part@fontcolor{HKS41}% +\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% + \xdef\@specialstyle{\GetRealPageStyle{#1}}% +}{}{\tud@patch@wrn{thispagestyle}} +\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% -}{}{\tud@patch@wrn{tud@partheadstartvskip}} -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% -\if@tempswa - \newcommand*\tud@@startpart{}% - \let\tud@@startpart\scr@@startpart% - \patchcmd{\tud@@startpart}% - {\usekomafont{#1prefix}{\@nameuse{#1format}}}% - {\usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}}% - {}{\tud@patch@wrn{scr@@startpart}}% -\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@addpart{} -\newcommand*\tud@saddpart{} -\newcommand*\tud@section{} -\newcommand*\tud@ssection{} -\newcommand*\tud@addsec{} -\newcommand*\tud@saddsec{} -\newcommand*\tud@subsection{} -\newcommand*\tud@ssubsection{} -\newcommand*\tud@subsubsection{} -\newcommand*\tud@ssubsubsection{} -\newcommand*\tud@sectioning@set[3][]{% - \tud@cmd@store{#2}% - \ifstr{#2}{minisec}{% - \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% - }{% - \tud@sectioning@case{#2}% - \ifblank{#1}{}{% - \tud@cmd@store{#1}% - \tud@sectioning@case{#1}% + \if@tud@head@font@set% + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + }% + \ifcase\tud@head@font@num\relax\else% true/heavy + \if@tud@univers% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@univers}{b}{n}% + }% + \fi% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} +\newcommand*\tud@head@text@line{} +\newcommand*\tud@head@text@list{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% + \edef\@tempa{% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% }% + \settowidth\@tempdima{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% + \else% + \edef\tud@head@text@line{\expandonce\@tempa}% + \fi% }% - \tud@font@koma@set{#2}{#3}% } -\newcommand*\tud@sectioning@case[1]{% - \csedef{#1}{% - \noexpand\SecDef% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@#1\endcsname% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@s#1\endcsname% - }% - \csedef{tud@#1}[##1]##2{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname% - [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% - }% - \csedef{tud@s#1}##1{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname*% - {\noexpand\tud@sectioning@uppercase{##1}}% - }% - \ifstr{#1}{addsec}{% - \def\tud@addsec[##1]##2{% - \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% +\newif\if@tud@head@text@set +\newcommand*\tud@head@text@wrn[1]{} +\newcommand*\tud@head@text@set{% + \if@tud@head@text@set% + \def\tud@head@text@line{}% + \def\tud@head@text@list{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% - \def\tud@saddsec##1{% - \@@tud@addsec*{\tud@sectioning@uppercase##1}% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% + }% }% - }{}% + \fi% } -\newcommand*\tud@sectioning@reset[2][]{% - \tud@cmd@restore{#2}% - \ifblank{#1}{}{\tud@cmd@restore{#1}}% - \tud@font@koma@unset{#2}% +\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{% + \settowidth\@tempdima{##1}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + }% + \fi% + }% + \vbox{% + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% + }% + \global\let\tud@head@text@wrn\@gobble% } -\robustify{\footnote}% -\newcommand*\tud@sectioning@uppercase[1]{% +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% +} +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% +} +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@vlayerbox[3]{% \begingroup% - \if@tud@symbolheadings% - \let\c@footnote\c@symbolheadings% - \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima\MessageBreak% + }% \fi% - \tud@makeuppercase{#1}% \endgroup% + \vbox to #1{#2}% } -%%% From File: tudscr-frontmatter.dtx -\newcommand*\tud@fm@check[2]{% - \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section - \ifboolexpr{% - bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% +\AtBeginDocument{% + \tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% + }% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% + }{}% +} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% }{% - \sbox\z@{\vbox{#2}}% - \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% - \ClassWarning{\TUDClassName}{% - The given content within the `#1'\MessageBreak% - environment is too large, so it wasn't possible\MessageBreak% - to center the body vertically. Setting the option\MessageBreak% - `#1=nofill' would be a solution. You\MessageBreak% - could also use multiple `#1' environments% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% + }% + \fi% + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@len@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUD@Class@Name}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% }% - \boolfalse{@tud@#1@fil}% + \global\let\tud@mainlogo@wrn\@gobble% \fi% - }{}% - }{% chapter - }% - \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% - \tud@fm@toc{#1}{#2}% + }% + \tud@headlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% + \global\@tud@mainlogo@setfalse% \fi% - \global\let\tud@fm@set\tud@fm@first% - #2% } -\newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} -\newcommand*\tud@fm@toc[2]{% - \ifbool{@tud@#1@multi}{% - \begingroup% - \let\tud@fm@@@toc\@empty% - \renewcommand*\tud@fm@head[2]{% - \protected@edef\@tempa{##2}% - \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% - \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + }% + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} +\newcommand*\tud@headlogo@wrn{} +\newcommand*\headlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% }% - \let\clearpage\relax% - \sbox\z@{\vbox{#2}}% - \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% + \@tempb% }% - \@tempa% - }{% - \ClassWarning{\TUDClassName}{% - It isn't possible to use `#1=single'\MessageBreak% - with `#1=tocmultiple'% + \or\or% \tud@ddc@head@num=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head@num=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head@num=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head@num=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head@num=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head@num=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% + \fi% +} +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% }% - \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc}{% - \the\numexpr\@nameuse{tud@#1@toc}-2\relax% - }% + \vss% + }{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + }{% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% }% - \@tempa% + }{}% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% }% } -\newcommand\tud@fm@set[1]{} -\newcommand\tud@fm@first[1]{% - \global\let\tud@fm@set\tud@fm@next% - \if@twocolumn\else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \null\vfil% - \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section - \vspace{\dimexpr-\parskip-\baselineskip\relax}% - {\usekomafont{section}{\vspace{-\baselineskip}}}% - \fi% - }{}% +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot@num=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot@num=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot@num=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot@num=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot@num=white + \tud@footlogo@ddc@set{option}{DDC-28}% \fi% + \global\@tud@footlogo@option@setfalse% \fi% } -\newcommand\tud@fm@next[1]{% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@multi}{% - \ifbool{@tud@#1@fil}{\vfil}{}% +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% }{% - \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + You should reduce `footlogoheight', because it is\MessageBreak + too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - \else% - \ifnum\@nameuse{tud@#1@level}=\z@% - \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% - \fi% - \fi% + }% + \usebox\z@\hspace*{-\wd\z@}% \fi% } -\newcommand*\tud@fm@body@start[3]{% - \begingroup% - \TUD@parameter@set{#1}{#2}% - \tud@fm@set{#1}% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true - \fi\fi% - \ifnum\tud@multicols>\@ne\relax% - \setlength\multicolsep{\z@}% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% - \else% - \tud@fm@head{#1}{#3}% - \fi% +\tud@newlayerbox{foot@cmd} +\newcommand*\footlogosep{\hfill} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} +\newcommand*\footlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@comp@resetpagestyle% } -\newcommand*\tud@fm@body@end[1]{% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \else% - \par% - \fi% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true - \fi\fi% - \endgroup% +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\tud@footlogo@filenames\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% } -\newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% false - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% +\newcommand*\tud@footlogo@cmd@@set[2]{% + \begingroup% + \def\@tempa{}% + \def\@tempb{}% + \@tempswatrue% + \def\do##1{% + \if@tempswa% + \def\@tempa{##1}% + \@tempswafalse% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% - \or% true - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% }% - \begingroup% - \noindent\centering% - \normalfont\sectfont\nobreak#2% - \@endparpenalty\@M% - \endgraf% - \endgroup% - \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% - \@afterheading% - \or% section - \section*{#2}% - \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% + }% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% + }% + \endgroup% +} +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% +} +\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} +\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\footcontent{% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% + }{% + \renewcommand*\tud@footcontent@fontface{% + \usekomafont{tudheadings}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% + \selectfont% + }% + \tud@footcontent@do% + }% +} +\newcommand*\tud@footcontent@do[2][]{% + \kernel@ifnextchar[%] + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% +} +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% \fi% - \ifbool{@tud@#1@markboth}{% - \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% - }{}% - \ifnum\@nameuse{tud@#1@toc}>\z@\relax% - \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% - \ifnumodd{\csname tud@#1@toc\endcsname}{% - \addsectiontocentry{}{#2}% - }{% - \addsubsectiontocentry{}{#2}% - }% - \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% \fi% } -\newcommand*\tud@fm@pagestyle[2]{% - \if@titlepage% - \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% - You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined.% +\newcommand*\tud@footcontent@use[2]{% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% + \fi% + \fi% + \else% + \@tempswatrue% + \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \linespread{1}% + \vss% + \hbox to #2{% + \tud@footcontent@fontface% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \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% + }{% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% \else% - \ClassWarning{\TUDClassName}{% - The key `pagestyle' can only be used with\MessageBreak% - activated option `titlepage'% - }% + \hbox to #2{}% \fi% } -\newcommand*\tud@quoting{quotation} -\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\csundef{abstract} -\csundef{endabstract} -\NewEnviron{abstract}[1][]{% - \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{abstract}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% - \fi% - \renewcommand*\nextabstract[1][]{% - \tud@fm@body@end{abstract}% - \tud@fm@body@start{abstract}{##1}{\abstractname}% - }% - \tud@fm@check{abstract}{% - \tud@fm@body@start{abstract}{#1}{\abstractname}% - \BODY% - \tud@fm@body@end{abstract}% +\newcommand*\tud@ps@parameters[1]{% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% +} +\newcommand*\tud@envir@ps{tudheadings} +\newcommand*\tud@envir@selectps{% + \expandafter\pagestyle\expandafter{\tud@envir@ps}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \renewcommand*\titlepagestyle{empty}% + \renewcommand*\indexpagestyle{empty}% + }{}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \renewcommand*\titlepagestyle{empty.tudheadings}% + \renewcommand*\indexpagestyle{empty.tudheadings}% + }{}% +} +\newcommand*\tud@currentpagestyle@value{} +\newcommand*\tud@currentpagestyle@set{% + \ifdefvoid{\tud@currentpagestyle@value}{% + \xdef\tud@currentpagestyle@value{\currentpagestyle}% + }{}% +} +\newcommand*\tud@currentpagestyle@reset{% + \ifdefvoid{\tud@currentpagestyle@value}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% + \let\tud@currentpagestyle@value\relax% }% -}[% - \if@titlepage% - \if@tud@abstract@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% +} +\NewEnviron{tudpage}[1][]{% + \tud@currentpagestyle@set% + \clearpage% + \def\tud@envir@ps{tudheadings}% + \TUD@parameter@set{tudpage}{#1}% + \tud@envir@selectps% + \tud@x@multicol@check% + \ifnum\tud@x@multicol@num>\@ne\relax% + \begin{multicols}{\tud@x@multicol@num}% + \fi% + \BODY% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% \fi% +}[% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% ] -\TUD@parameter{abstract}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@abstract@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@abstract@markbothfalse% - }{% - \@tud@abstract@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% +\TUD@parameter@family{tudpage}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{% + \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% + \TUD@parameter@error{pagestyle}{% + headings, plain, empty or any tudheadings page style type% + }% + }}}% }% }% - \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% - \TUD@parameter@let{option}{abstract}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@default{}% } -\newcommand*\nextabstract[1][]{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% - The command `\string\nextabstract' can only be used within\MessageBreak% - the environment `abstract'.% +%%% From File: tudscr-layout.dtx +\newcommand*\tud@x@scr@headings@current{} +\newcommand*\tud@sec@fontsize{} +\newcommand*\tud@thesis@fontsize{} +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempa##1##2##3{% + \ifstr{##1}{\tud@x@scr@headings@current}{}{% + \renewcommand*\tud@x@scr@headings@current{##1}% + \renewcommand*\tud@sec@fontsize{##2}% + \renewcommand*\tud@thesis@fontsize{##3}% + #1% + }% + }% + \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempb\do{% + \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% + \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% + \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}% }% } -\newif\if@tud@declarations -\NewEnviron{declarations}[1][]{% - \@tud@declarationstrue% - \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{declaration}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% +\AtEndPreamble{\tud@x@scr@headings@set} +\newcommand*\tud@x@scr@headings@reset{% + \tud@layout@process% + \tud@x@scr@headings@set[% + \ifcase\tud@layout@part@num\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@section@num\relax\else% !false + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \fi% + ]% +} +\newcommand*\tud@title@fontcolor{} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@section@fontcolor{} +\providecommand*\raggedtitle{\tud@raggedright} +\newcommand*\tud@layout@process{% + \ifcase\tud@layout@cover@num\relax% false + \bool@std@lock{@tud@cdgeometry@cover}{false}% + \else% !false + \bool@std@lock{@tud@cdgeometry@cover}{true}% \fi% - \tud@fm@check{declaration}{\BODY}% -}[% - \if@titlepage% - \if@tud@declaration@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \ifcase\tud@layout@title@num\relax% false + \tud@cmd@restore{titlepagestyle}% + \tud@font@koma@unset{titlehead}% + \tud@font@koma@unset{title}% + \tud@font@koma@unset{subtitle}% + \tud@font@koma@unset{subject}% + \tud@font@koma@unset{author}% + \tud@font@koma@unset{date}% + \tud@font@koma@unset{publishers}% + \else% !false + \tud@cmd@store{titlepagestyle}% + \renewcommand*\titlepagestyle{plain.tudheadings}% + \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% + \tud@font@koma@set{title}{% + \raggedtitle% + \usekomafont{disposition}% + \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@font@koma@set{subject}{% + \sffamily% + \bfseries% + \tud@color{\tud@title@fontcolor}% + }% + \tud@font@koma@set{author}{\usekomafont{subject}}% + \tud@font@koma@set{date}{\usekomafont{titlepage}}% + \tud@font@koma@set{publishers}{\usekomafont{author}}% \fi% -] -\TUD@parameter{declaration}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@declaration@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% + \ifcase\tud@layout@part@num\relax% false + \tud@cmd@restore{partheadstartvskip}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% }{% - \@tud@declaration@markbothfalse% + \tud@cmd@restore{@part}% + }% + \tud@sectioning@reset[addpart]{part}% + \tud@font@koma@unset{partnumber}% + \tud@cmd@restore{raggedpart}% + \else% !false + \tud@cmd@store{partheadstartvskip}% + \let\partheadstartvskip\tud@partheadstartvskip% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \let\scr@@startpart\tud@@startpart% }{% - \@tud@declaration@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% + \tud@cmd@store{@part}% + \let\@part\tud@@part% }% - }% - \TUD@parameter@define{company}{\def\@company{#1}}% - \TUD@parameter@define{supporter}{\def\@supporter{#1}}% - \TUD@parameter@define{place}{\def\@place{#1}}% - \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}% - \TUD@parameter@let{confirmationclosing}{closing}% - \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% - \TUD@parameter@let{option}{declaration}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% + \tud@sectioning@set[addpart]{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}% + \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}% + \else% !false + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@layout@section@num\relax\or\else% *color + \renewcommand*\tud@section@fontcolor{HKS41}% + \fi% + \tud@sectioning@set[addsec]{section}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsubsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{minisec}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{paragraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subparagraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@cmd@store{raggedsection}% + \renewcommand*\raggedsection{\tud@raggedright}% + \fi% } -\newcommand*\declaration[1][]{% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \tud@fm@blocking% - \end{declarations}% +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% + \edef\@tempa{% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% + }% + }\@tempa% }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% } -\newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% - \tud@fm@body@start{declaration}{#1}{#2} - #3% - \tud@fm@body@end{declaration}% +\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 + \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}}% + \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@addpart{} +\newcommand*\tud@saddpart{} +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% }{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% - The command `\string\nextdeclaration' can only be used\MessageBreak% - within the environment `declarations'.% + \tud@sectioning@case{#2}% + \ifblank{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% }% }% + \tud@font@koma@set{#2}{#3}% } -\newcommand*\confirmation[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{supporter=##1}% +\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% }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \end{declarations}% + \csedef{tud@#1}[##1]##2{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname% + [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% + \csedef{tud@s#1}##1{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname*% + {\noexpand\tud@sectioning@uppercase{##1}}% }% + \ifstr{#1}{addsec}{% + \def\tud@addsec[##1]##2{% + \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + }% + \def\tud@saddsec##1{% + \@@tud@addsec*{\tud@sectioning@uppercase##1}% + }% + }{}% } -\newcommand*\tud@fm@confirmation[1][]{% - \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% - \tud@fm@body@end{declaration}% -} -\newcommand*\blocking[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{company=##1}% - }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@blocking% - \end{declarations}% - }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% - }% +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifblank{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@unset{#2}% } -\newcommand*\tud@fm@blocking[1][]{% - \tud@fm@body@start{declaration}{#1}{\blockingname}% - \blockingtext% - \tud@fm@body@end{declaration}% +\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% } %%% From File: tudscr-title.dtx -\newkomafont{thesis}{\usekomafont{title}\LARGE} +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% +} \newkomafont{titlepage}{% \usekomafont{subject}% - \fontseries{\mddefault}% - \selectfont% + \mdseries% \large% } -\newcommand*\tud@title@fontcolor{} -\newcommand*\tud@titlepagenumber{}% -\let\tud@titlepagenumber\relax% +\robustify{\thanks} +\robustify{\footnotemark} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% + \let\\\newline% + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% + \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% +} +\newcommand*\tud@title@delimiter{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}} +\newcommand*\tud@newline@title{} +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% + \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% + {\usekomafont{author}{\ignorespaces#1}}% + \if@tud@cover\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% + \ifx\@dateofbirth\@empty\else% + \if@titlepage% + \tud@newline@title% + \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% + \fi% + \else% + \tud@title@wrn{dateofbirth}% + \fi% + \fi% + \def\@tempc##1{% + \ifstr{\csuse{@##1}}{}{}{% + \if@titlepage% + \tud@newline@title% + \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \csuse{@##1}% + \else% + \tud@title@wrn{##1}% + \fi% + }% + }% + \@tempc{course}% + \@tempc{discipline}% + \@tempc{matriculationnumber}% + \@tempc{matriculationyear}% + \fi% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 2ex}% +} +\newcommand*\tud@title@wrn[1]{% + \ClassWarning{\TUD@Class@Name}{% + `\@backslashchar#1' has to be used with\MessageBreak% + activated titlepage option% + }% +} +\newcommand*\tud@thesis@tosubject{% + \if@tud@subjectthesis\ifx\@thesis\@empty\else% + \ifx\@subject\@empty\else% + \ClassWarning{\TUD@Class@Name}{% + The option `subjectthesis' was activated, so\MessageBreak% + the field `subject' will be overwritten with the\MessageBreak% + given thesis% + }% + \fi% + \let\@subject\@thesis% + \fi\fi% +} +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% false - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \ifcase\tud@layout@title@num\relax% false + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% \else% !false \if@titlepage% - \tud@maketitlepage% + \tud@make@titlepage% \else% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\else% *color - \def\tud@title@fontcolor{HKS41}% - \fi% - \let\@maketitle\tud@@maketitle% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \if@twocolumn% - \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}% - \else% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \fi% + \tud@make@titlehead% \fi% \fi% \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% } -\TUD@parameter{title}{% - \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +\tud@cmd@store{maketitle} +\let\maketitle\tud@maketitle +\TUD@parameter@family{title}{% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% \TUD@parameter@let{cd}{cdtitle}% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}% -}% -\robustify{\thanks}% -\robustify{\footnotemark}% -\newcommand*\tud@titleback{}% -\newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\or% litecolor - \def\tud@title@fontcolor{HKS41}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +\newcommand*\tud@titleback{} +\newcommand*\tud@make@titlepage{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% bicolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% color - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \or% full - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% \tud@layout@specialpage@set{title}% - \ifx\tud@titlepagenumber\relax\else% - \setcounter{page}{\tud@titlepagenumber}% + \ifx\tud@title@pagenumber\relax\else% + \setcounter{page}{\tud@title@pagenumber}% \fi% \if@tud@cover\else% \let\footnotesize\small% @@ -4096,10 +5099,10 @@ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark% \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -4119,9 +5122,9 @@ \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% @@ -4138,20 +5141,11 @@ \noindent\@extratitle\next@tdpage% \fi% \fi% - \if@tud@bookmarks% - \if@tud@cover% - \tudbookmark[1]{\coverpagename}{cover}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \else% - \tudbookmark[1]{\titlepagename}{title}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \fi% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\pageheadingsvskip}% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% @@ -4164,7 +5158,7 @@ }}% \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4173,20 +5167,20 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + {\usekomafont{date}{\tud@date@print\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -4200,7 +5194,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% + \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -4215,18 +5209,20 @@ \vskip 2ex\@plus.5fill% \fi% \if@tud@cover\else% - \tud@title@names{supervisor}% \tud@title@names{referee}% \tud@title@names{advisor}% + \tud@title@names{supervisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% {\usekomafont{date}{\@defensedate\par}}% \fi% \fi% @@ -4259,27 +5255,27 @@ \fi% \fi% \def\@tempa{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% true - \cs@std@lock{tud@head@bar}{0}% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@title@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -4304,22 +5300,6 @@ \fi% \fi% \end{titlepage}% - \if@tud@cover\else% - \setcounter{footnote}{0}% - \global\let\and\relax% - \fi% -} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% - \begingroup% - \def\thanks##1{\gdef\@tempa{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% } \newcommand*\tud@title@names[1]{% \letcs\@tempa{@#1}% @@ -4327,28 +5307,65 @@ \def\and{% \ifcsvoid{#1othername}{\par}{% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% }% \let\and\par% }% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% - {\usekomafont{author}{\@nameuse{@#1}\par}}% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% + \fi% +} +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% \fi% + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% } -\newcommand*\@titledelim{:\nobreakspace} -\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} -\newcommand*\tud@@maketitle{% +\newcommand*\tud@make@@titlehead{% \global\@topnum=\z@% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\headingsvskip}% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% \sbox\z@{\vbox{% @@ -4359,7 +5376,7 @@ \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4368,16 +5385,18 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% - \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4387,285 +5406,682 @@ {\centering\usekomafont{dedication}{\@dedication\par}}% \fi% \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi% - \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% + \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi% + \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@newline{} -\newcommand*\tud@split@author@title[2]{% - \tud@multiple@fields@store{@author}{#1}% - \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% - {\usekomafont{author}{\ignorespaces#1}}% - \if@tud@cover\else% - \ifx\@authormore\@empty\else% - \tud@newline% - \@authormore% - \fi% - \ifx\@dateofbirth\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\dateofbirthtext}{}% - {}{\dateofbirthtext\@titledelim}\@dateofbirth% - \ifx\@placeofbirth\@empty\else% - \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% - \fi% - \else% - \tud@title@wrn{dateofbirth}% - \fi% - \fi% - \ifx\@matriculationnumber\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationnumbername}{}% - {}{\matriculationnumbername\@titledelim}% - \@matriculationnumber% - \else% - \tud@title@wrn{matriculationnumber}% - \fi% - \fi% - \ifx\@matriculationyear\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationyearname}{}% - {}{\matriculationyearname\@titledelim}% - \@matriculationyear% - \else% - \tud@title@wrn{matriculationyear}% - \fi% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% \fi% - \fi% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \endgroup% } \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \maketitle[#1]% + \tud@maketitle[#1]% \onecolumn{#2}\twocolumn% \else% - \tud@title@twocolumn{\maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% \fi% \else% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% } -\newsavebox\tud@title@twocolumn@box +\newsavebox\tud@title@box \newcommand\tud@title@twocolumn[1]{% \onecolumn% \begingroup% \let\clearpage\relax% \let\newpage\relax% - \global\setbox\tud@title@twocolumn@box\vbox{% + \global\setbox\tud@title@box\vbox{% \vspace*{.9\baselineskip}#1\bigskip% }% \endgroup% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% \@tempswatrue% \fi% }{}% - \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax% - \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{% - \splittopskip\topskip% - \splitmaxdepth\maxdepth% - \vsplit\tud@title@twocolumn@box to \@tempdima% - \clearpage% - \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{\@tempswafalse}{}% - }% - \else% - \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@box to \@tempdima% + \clearpage% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% + }% + \else% + \setbox\tud@title@box\vbox{#1\bigskip}% + \fi% + \twocolumn[\unvbox\tud@title@box]% + \tud@if@v@lower{2.03}{% + \if@tempswa% + \ClassWarning{\TUD@Class@Name}{% + You are using a two-column title along with\MessageBreak% + the DDC-logo. Unfortunately in this case, the\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% + in both columns after the title% + }% + \fi% + }{}% +} +\newif\if@tud@cover +\newcommand*\makecover[1][]{% + \if@titlepageiscoverpage% + \ClassWarning{\TUD@Class@Name}{% + Using both option `titlepage=firstiscover' and\MessageBreak% + `\string\makecover' together isn't supported. The\MessageBreak% + option `titlepage=firstiscover' will be ignored. If you\MessageBreak% + want to create an individual cover, you have to use\MessageBreak% + `\string\extratitle' instead of `\string\makecover'.\MessageBreak% + See also the documentation of KOMA-Script% + }% + \@titlepageiscoverpagefalse% + \fi% + \clearpage% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \TUD@parameter@set{cover}{#1}% + \let\tud@layout@title@num\tud@layout@cover@num% + \tud@layout@process% + \if@tud@cdgeometry@cover% + \let\coverpagetopmargin\tud@len@slimmargin% + \let\coverpagebottommargin\tud@len@widemargin% + \let\coverpageleftmargin\tud@len@widemargin% + \let\coverpagerightmargin\tud@len@slimmargin% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \ifcase\tud@layout@cover@num\relax% false + \KOMAoptions{titlepage=firstiscover}% + \let\@extratitle\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \else% !false + \@tud@covertrue% + \@titlepagetrue% + \edef\titlepage@restore{% + \noexpand\endgroup% + \noexpand\global\noexpand\@colht\the\@colht% + \noexpand\global\noexpand\@colroom\the\@colroom% + \noexpand\global\vsize\the\vsize% + \noexpand\let\noexpand\titlepage@restore\noexpand\relax% + }% + \begingroup% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\dimexpr\tud@len@footsep+\footheight\relax% + \tud@if@v@lower{2.03}{% + \footskip=\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }{}% + \if@tud@cdgeometry@cover% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep-1in\relax% + \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% + \ifx\@tempa\coverpagebottommargin\relax% + \let\coverpagebottommargin\tud@len@widemargin% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \fi% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% + -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% + \tud@len@areavskip=\z@% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \tud@maketitle% + \clearpage% + \titlepage@restore% + \fi% + \endgroup% +} +\bool@lock{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% + \TUD@parameter@let{cd}{cdcover}% + \TUD@parameter@def{cdgeometry}[true]{% + \ifstrbool{#1}{% + \bool@set@lock{@tud@cdgeometry@cover}{true}% + }{% + \bool@set@lock{@tud@cdgeometry@cover}{false}% + }{% + \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \TUD@parameter@error{cdgeometry}{true,false}% + }% + }% + }% + }% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@check[2]{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + The given content within the `#1'\MessageBreak% + environment is too large, so it wasn't possible\MessageBreak% + to center the body vertically. Setting the option\MessageBreak% + `#1=nofill' would be a solution. You\MessageBreak% + could also use multiple `#1' environments% + }% + \boolfalse{@tud@#1@fil}% + \fi% + }{}% + }{% chapter + }% + \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `#1=single'\MessageBreak% + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc@num}{% + \the\numexpr\csuse{tud@#1@toc@num}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \if@twocolumn\else% + \if@titlepage% + \ifbool{@tud@#1@fil}{\null\vfil}{}% + \fi% + \fi% + \global\let\tud@fm@set\tud@fm@next% +} +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% + \else% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\vfil\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\csuse{tud@#1@level@num}=\z@\relax% + \ifundef{\main@language}{}{\vspace*{-\baselineskip}}% + \fi% + \fi% + \fi% +} +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \begin{\tud@quoting}% + \fi% + \fi\fi% + \ifnum\tud@x@multicol@num>\@ne\relax% + \vspace{-\multicolsep}% + \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% + \vspace{-\multicolsep}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \end{\tud@quoting}\par% + \fi% + \fi\fi% + \endgroup% +} +\newcommand*\tud@fm@head[2]{% + \ifcase\csuse{tud@#1@level@num}\relax% false + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% + \begingroup% + \noindent\centering% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \endgraf% + \endgroup% + \nopagebreak% + \vskip\dimexpr\medskipamount-\parskip\relax% + \@afterheading% + \or% section + \section*{#2}% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% + \fi% + \ifbool{@tud@#1@markboth}{% + \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% + }{}% + \ifcase\csuse{tud@#1@toc@num}\relax\or% totoc + \addsectiontocentry{}{#2}% + \or% totocleveldown + \addsubsectiontocentry{}{#2}% \fi% - \twocolumn[\unvbox\tud@title@twocolumn@box]% - \tud@ifverlower{2.03}{% - \if@tempswa% - \ClassWarning{\TUDClassName}{% - You are using a two-column title along with\MessageBreak% - the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% - in both columns after the title% +} +\newcommand*\tud@fm@pagestyle[2]{% + \if@titlepage% + \ifcsundef{ps@#2}{% + \ClassError{\TUD@Class@Name}{`#2' is no valid pagestyle}{% + You tried to use `#2' as a pagestyle for the\MessageBreak% + `#1' environment, but it was never defined.% }% - \fi% - }{}% + }{\def\tud@envir@ps{#2}}% + \else% + \ClassWarning{\TUD@Class@Name}{% + The key `pagestyle' can only be used with\MessageBreak% + activated option `titlepage'% + }% + \fi% } -\newcommand*\tud@letsubjectthesis{% - \if@tud@subjectthesis\ifx\@thesis\@empty\else% - \ifx\@subject\@empty\else% - \ClassWarning{\TUDClassName}{% - The option `subjectthesis' was activated.\MessageBreak% - The field `subject' will be overwritten with the\MessageBreak% - given thesis% +\newcommand*\tud@quoting{quotation} +\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} +\csundef{abstract} +\csundef{endabstract} +\NewEnviron{abstract}[1][]{% + \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{abstract}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% \fi% - \let\@subject\@thesis% - \fi\fi% + \clearpage% + \tud@envir@selectps% + \fi% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% +}[% + \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@abstract@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{abstract}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% + \TUD@parameter@def{markboth}[true]{% + \ifstrbool{#1}{% + \@tud@abstract@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + }{% + \@tud@abstract@markbothfalse% + }{% + \@tud@abstract@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% + }% + }% + \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@let{option}{abstract}% + \TUD@parameter@handler@default{}% } -\newcommand*\tud@title@wrn[1]{% - \ClassWarning{\TUDClassName}{% - `\@backslashchar#1' has to be used with\MessageBreak% - activated titlepage option% +\newcommand*\nextabstract[1][]{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% }% } -\newif\if@tud@cover -\newcommand*\makecover[1][]{% - \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% - Using both option `titlepage=firstiscover' and\MessageBreak% - `\string\makecover' together isn't supported. The\MessageBreak% - option `titlepage=firstiscover' will be ignored. If you\MessageBreak% - want to create an individual cover, you have to use\MessageBreak% - `\string\extratitle' instead of `\string\makecover'.\MessageBreak% - See also the documentation of KOMA-Script% - }% - \@titlepageiscoverpagefalse% - \fi% - \clearpage% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title\tud@layout@cover% - \tud@layout@process% - \if@tud@cover@cdgeometry% - \let\coverpagetopmargin\tud@dim@slimmargin% - \let\coverpagebottommargin\tud@dim@widemargin% - \let\coverpageleftmargin\tud@dim@widemargin% - \let\coverpagerightmargin\tud@dim@slimmargin% - \tud@ifverlower{2.03}{% - \def\coverpagetopmargin{.5\tud@dim@both}% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \ifcase\tud@layout@cover\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% - \edef\titlepage@restore{% - \noexpand\endgroup% - \noexpand\global\noexpand\@colht\the\@colht% - \noexpand\global\noexpand\@colroom\the\@colroom% - \noexpand\global\vsize\the\vsize% - \noexpand\let\noexpand\titlepage@restore\noexpand\relax% +\newif\if@tud@declarations +\NewEnviron{declarations}[1][]{% + \@tud@declarationstrue% + \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{declaration}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% - \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \tud@ifverlower{2.03}{% - \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cover@cdgeometry% - \def\coverpagetopmargin{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@dim@widemargin% - \tud@ifverlower{2.03}{% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% - \tud@dim@headdiff=\z@% - \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% - \tud@maketitle% - \clearpage% - \csname titlepage@restore\endcsname% \fi% - \endgroup% -} -\bool@lock{@tud@cover@cdgeometry} -\TUD@parameter{cover}{% - \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}% - \TUD@parameter@let{cd}{cdcover}% - \TUD@parameter@define{cdgeometry}[true]{% + \clearpage% + \tud@envir@selectps% + \fi% + \def\and{, }% + \let\thanks\@gobble% + \tud@fm@check{declaration}{\BODY}% +}[% + \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@declaration@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{declaration}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% + \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% - \bool@set@lock{@tud@cover@cdgeometry}{true}% + \@tud@declaration@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% - \bool@set@lock{@tud@cover@cdgeometry}{false}% + \@tud@declaration@markbothfalse% }{% - \TUD@parameter@error{cdgeometry}{true,false}% + \@tud@declaration@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% }% }% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{% - \ifxnumber{#1}{% - \TUD@parameter@set{cover}{pagenumber=#1}% - }{% - \TUD@parameter@set{cover}{cdgeometry=#1}% + \TUD@parameter@def{company}{\def\@company{#1}}% + \TUD@parameter@def{supporter}{\def\@supporter{#1}}% + \TUD@parameter@def{place}{\def\@place{#1}}% + \TUD@parameter@def{closing}{\def\@confirmationclosing{#1}}% + \TUD@parameter@let{confirmationclosing}{closing}% + \TUD@parameter@def{declaration}{\TUDoption{declaration}{#1}}% + \TUD@parameter@let{option}{declaration}% + \TUD@parameter@handler@default{}% +} +\newcommand*\tud@fm@supporter{} +\newcommand*\declaration{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@declaration% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@declaration% + }% +} +\newcommand*\tud@fm@declaration[1][]{% + \ifbool{@tud@declarations}{% + \begingroup% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + \tud@fm@blocking[#1]% + \endgroup% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \tud@fm@blocking% + \end{declarations}% + }% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2}% + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% }% }% } +\newcommand*\confirmation{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@confirmation% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@confirmation% + }% +} +\newcommand*\tud@fm@confirmation[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{supporter}% + \undef\KV@declaration@company% + \ifbool{@tud@declarations}{% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% +} +\newcommand*\blocking[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{company}% + \undef\KV@declaration@supporter% + \undef\KV@declaration@closing% + \undef\KV@declaration@confirmationclosing% + \ifbool{@tud@declarations}{% + \tud@fm@blocking[#1]% + }{% + \begin{declarations}[#1]% + \tud@fm@blocking% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% +} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% +\newcommand*\TUD@cmd@deprecated[2]{% \AtBeginDocument{% - \ifcsdef{#1}{}{% + \ifcsundef{#1}{% \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\TUDClassName}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + The command `\@backslashchar#1' is deprecated\MessageBreak% It's recommended to use `\@backslashchar#2' instead% }% \csletcs{#1}{#2}% - \@nameuse{#2}% + \csuse{#2}% }% - }% + }{}% }% } -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} +\newcommand*\TUD@len@deprecated[2][]{% + \ifdim\csuse{#2}<\maxdimen\relax% + \ClassWarning{\TUD@Class@Name}{% + Using the length `\@backslashchar#2' is deprecated.\MessageBreak% + You should use option `#2' instead% + }% + \csxdef{tud@dim@#2}{\the\csuse{#2}}% + \expandafter\setlength\csname #2\endcsname{\maxdimen}% + \global\csuse{#2}=\csuse{#2}% + #1% + \fi% +} +\newlength\footlogoheight +\setlength\footlogoheight{\maxdimen} +\newlength\pageheadingsvskip +\setlength\pageheadingsvskip{\maxdimen} +\newlength\headingsvskip +\setlength\headingsvskip{\maxdimen} +\TUD@cmd@deprecated{professorship}{chair} +\TUD@cmd@deprecated{studentid}{matriculationnumber} +\TUD@cmd@deprecated{matriculationid}{matriculationnumber} +\TUD@cmd@deprecated{enrolmentyear}{matriculationyear} +\TUD@cmd@deprecated{birthplace}{placeofbirth} +\TUD@cmd@deprecated{submissiondate}{date} +\TUD@cmd@deprecated{oralexaminationdate}{defensedate} +\TUD@cmd@deprecated{birthday}{dateofbirth} +\TUD@cmd@deprecated{location}{place} +\TUD@cmd@deprecated{logofile}{headlogo} +\TUD@cmd@deprecated{logofilename}{headlogo} \AfterPackage{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% + \TUD@cmd@deprecated{startdate}{issuedate}% + \TUD@cmd@deprecated{finaldate}{duedate}% + \TUD@cmd@deprecated{maturitydate}{duedate}% +} +\AtEndOfClass% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% } %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}% +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\AtBeginDocument{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% +} +\newif\if@tud@font@set +\newif\if@tud@font@math@set +\newif\if@tud@font@skip@set +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@layout@process +\newif\if@tud@cdgeometry@process +\newif\if@tud@cdgeometry@@process +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@math@setfalse% + \global\@tud@font@skip@setfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@font@math@set% + \tud@font@math@set% + \global\@tud@font@math@setfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@layout@process% + \tud@layout@process% + \global\@tud@layout@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \global\@tud@cdgeometry@@processfalse% + \fi% + \if@tud@cdgeometry@@process% + \tud@cdgeometry@@process% + \global\@tud@cdgeometry@@processfalse% + \fi% +} \newcommand*\tudbookmark[1][]{\@gobbletwo} -\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% \renewcommand*\tudbookmark[3][]{% \relax% @@ -4674,7 +6090,7 @@ \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% \fi% }% - \renewcommand*\tud@footnote@unhyper{% + \renewcommand*\tud@x@hyperref@realfootnotes{% \let\Hy@saved@footnotemark\@footnotemark% \let\Hy@saved@footnotetext\@footnotetext% \let\@footnotemark\H@@footnotemark% @@ -4682,26 +6098,89 @@ }% \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } -\pretocmd{\maketitle}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \tudbookmark[1]{\titlepagename}{title}% -}{}{\tud@patch@wrn{maketitle}} -\pretocmd{\tableofcontents}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +\apptocmd{\titlepage}{% + \tud@x@bookmark@startatroot% + \if@tud@cover% + \tudbookmark[% + 1% + ]{\coverpagename}{cover}% + \else% + \tudbookmark[% + 1% + ]{\titlepagename}{title}% \fi% - \tudbookmark[1]{\contentsname}{toc}% -}{}{\tud@patch@wrn{tableofcontents}} +}{}{\tud@patch@wrn{titlepage}} +\pretocmd{\tud@make@titlehead}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@make@titlehead}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cmd@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cmd@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} \BeforePackage{tocloft}{% - \ClassWarning{\TUDClassName}{% - It is not recommended to use package `tocloft'.\MessageBreak% - Loading the package will certainly lead to problems\MessageBreak% - with table of contents and any list of floats. You\MessageBreak% - should use the appropriate options of KOMA-Script% + \ClassWarningNoLine{\TUD@Class@Name}{% + It is absolutely not recommended to use package\MessageBreak% + `tocloft'. Loading the package will certainly lead\MessageBreak% + to problems with table of contents and any list of\MessageBreak% + floats. You should use the appropriate options of\MessageBreak% + the KOMA-Script classes% }% } +\CheckCommand*\@uclcnotmath[4]{% + \begingroup + #1% + \def\({$}\let\)\(% + \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% + \@nonchangecase\label + \@nonchangecase\ref + \@nonchangecase\ensuremath + \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% + \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% + \def\reserved@a##1##2{\let#2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{% + \endgroup + \noexpand\@skipmath#3#4$\valign$% + }% + \reserved@a% +} +\newcommand*\tud@x@textcase@uclcnotmath{% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +} +\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% +}{}{\tud@patch@wrn{@uclcnotmath}} \endinput %% %% End of file `tudscrartcl.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty index bcc3cf21e2b..a14fad5a2bd 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty @@ -4,8 +4,8 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package') -%% tudscr-base.dtx (with options: `package') +%% tudscr-version.dtx (with options: `package,base') +%% tudscr-base.dtx (with options: `package,base') %% %% ============================================================================ %% @@ -35,44 +35,82 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrbase}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (basics for the bundle)% ] \RequirePackage{scrbase}[2013/12/19] -\RequirePackage{kvsetkeys}[2012/04/25] +\@ifpackagelater{scrbase}{2016/05/11}{}{% + \renewcommand*\test@@ifdimunt[1]{% + \@tempswafalse + \ifstr{#1}{pt}{\@tempswatrue}{% + \ifstr{#1}{pc}{\@tempswatrue}{% + \ifstr{#1}{in}{\@tempswatrue}{% + \ifstr{#1}{bp}{\@tempswatrue}{% + \ifstr{#1}{cm}{\@tempswatrue}{% + \ifstr{#1}{mm}{\@tempswatrue}{% + \ifstr{#1}{dd}{\@tempswatrue}{% + \ifstr{#1}{cc}{\@tempswatrue}{% + \ifstr{#1}{sp}{\@tempswatrue}{% + \ifstr{#1}{ex}{\@tempswatrue}{% + \ifstr{#1}{em}{\@tempswatrue}{% + \scr@ifpdfoutput{% + \ifstr{#1}{px}{\@tempswatrue}{}% + }{}% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% + }% +} \RequirePackage{etoolbox}[2011/01/03] -\newcommand*\ifxblank{\expandafter\ifblank\expandafter} +\RequirePackage{etexcmds}[2011/02/16] +\RequirePackage{kvsetkeys}[2012/04/25] +\newcommand*\ifxblank{\ifstr{}} \newcommand*\ifxnumber[1]{% \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax% \expandafter\@firstoftwo% @@ -95,6 +133,40 @@ }% }% } +\newcommand*\ifxlen[1]{% + \begingroup% + \protected@edef\@tempa{#1}% + \@tempswafalse% + \expandafter\ifisdimen\expandafter{\@tempa}{\@tempswatrue}{}% + \expandafter\ifisskip\expandafter{\@tempa}{\@tempswatrue}{}% + \expandafter\ifisdimexpr\expandafter{\@tempa}{\@tempswatrue}{}% + \if@tempswa\edef\@tempa{\the\@tempa}\fi% + \expandafter\ifdimen\expandafter{\@tempa}{% + \aftergroup\@firstoftwo% + }{% + \aftergroup\@secondoftwo% + }% + \endgroup +} +\newcommand*\iflanguageloaded[1]{% + \PackageWarning{tudscrbase}{% + Whether package `babel' nor package `polyglossia' has been loaded% + }% + \expandafter\@secondoftwo% +} +\AfterPackage*{babel}{% + \renewcommand*\iflanguageloaded[1]{% + \@expandtwoargs\in@{,#1,}{,\bbl@loaded,}% + \ifin@% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% + }% +} +\AfterPackage*{polyglossia}{% + \renewcommand*\iflanguageloaded[1]{\ifcsdef{#1@loaded}}% +} \providecommand*\protected@expandtwoargs[3]{% \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% } @@ -132,25 +204,47 @@ \expandafter\def\expandafter #1\expandafter{#1}% }% } +\newcommand*\tud@reserved{} +\newtoks\tud@toks@ +\newcommand*\eaddto@hook[2]{% + \expandafter\addto@hook\expandafter#1\expandafter{#2}% +} +\newcommand*\tud@replace[3]{% + \begingroup% + \toks@{\def\@tempa##1}% + \eaddto@hook\toks@{\detokenize{#2}}% + \addto@hook\toks@{##2\@nil{\@tempb{##1}{##2}}}% + \the\toks@% + \def\@tempb##1##2{% + \IfArgIsEmpty{##2}{% + \appto#1{##1}% + \let\@tempc\relax% + }{% + \appto#1{##1#3}% + \def\@tempc{\@tempa##2\@nil}% + }% + \@tempc% + }% + \toks@{\@tempa}% + \edef\@tempc{\expandafter\detokenize\expandafter{#1}}% + \eaddto@hook\toks@{\@tempc}% + \eaddto@hook\toks@{\detokenize{#2}\@nil}% + \def#1{}% + \the\toks@% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#1{#1}% + }% + \tud@reserved% +} \DefineFamily{TUD} \newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} \newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} \newcommand*\TUDoptions{\FamilyOptions{TUD}} \newcommand*\TUDoption{\FamilyOption{TUD}} -\newcommand*\TUD@noworlater{\AtEndOfClass} -\AtEndOfClass{\let\TUD@noworlater\@firstofone} -\newcommand*\TUD@key[2][.\@currname.\@currext]{% +\newcommand*\TUD@key[1][.\@currname.\@currext]{% \DefineFamilyMember{TUD}% - \kernel@ifnextchar[%] - {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}% -} -\newcommand*\TUD@@key{} -\def\TUD@@key[#1]#2[#3]#4{% - \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}% -} -\newcommand*\TUD@@@key{} -\def\TUD@@@key[#1]#2#3{% - \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}% + \DefineFamilyKey[#1]{TUD}% } \newcommand*\TUD@ifkey[1][.\@currname.\@currext]{% \DefineFamilyMember{TUD}% @@ -170,14 +264,22 @@ \FamilyLengthKey[#1]{TUD}% } \newcommand*\TUD@set@lengthkey{\FamilySetLength{TUD}} +\newcommand*\TUD@set@dimenkey[3]{% + \ifxlen{#3}{% + \def#2{#3}% + \FamilyKeyStateProcessed% + }{% + \TUD@unknown@keyval{#1}{#3}{dimens}% + }% +} \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} \newcommand*\TUD@key@lock[2][.\@currname.\@currext]{% \newbool{@tud@#2@locked}% \TUD@key[{#1}]{#2}% } -\newcommand*\TUD@std@ifkey@lock[2]{% +\newcommand*\TUD@std@ifkey@lock[3]{% \ifbool{@tud@#1@locked}{}{% - \TUDoption{#1}{#2}% + \TUD@set@ifkey{#1}{#2}{#3}% \boolfalse{@tud@#1@locked}% }% } @@ -204,19 +306,30 @@ \csdef{#1}{#2}% \booltrue{#1@locked}% } +\newcommand*\tud@setbool[2]{% + \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% + \PackageError{tudscrbase}{% + `#2' is not a valid boolean expression% + }{% + You tried to set the boolean switch `\@backslashchar if#1'\MessageBreak% + to value `#2' but only `true' `on' and `yes' as well as \MessageBreak% + `false' `no' and `off' are valid values.% + }% + }% +} \newcommand*\bool@lock[2][false]{% \newbool{#2}% \newbool{#2@locked}% - \setbool{#2}{#1}% + \tud@setbool{#2}{#1}% } \newcommand*\bool@std@lock[2]{% \ifbool{#1@locked}{}{% - \setbool{#1}{#2}% + \tud@setbool{#1}{#2}% \boolfalse{#1@locked}% }% } \newcommand*\bool@set@lock[2]{% - \setbool{#1}{#2}% + \tud@setbool{#1}{#2}% \booltrue{#1@locked}% } \newcommand*\tud@cmd@store[1]{% @@ -241,119 +354,179 @@ \newcommand*\tud@cmd@use[1]{% \tud@cmd@check{#1}% \ifcsdef{@@tud@#1}{% - \@nameuse{@@tud@#1}% + \csuse{@@tud@#1}% }{% - \@nameuse{#1}% + \csuse{#1}% }% } \newcommand*\tud@cmd@check[1]{% \ifcsdef{#1}{}{% - \PackageError{tudscrbase}{% - `\@backslashchar#1' is not defined% - }{% - The command `\@backslashchar#1' was never defined.\MessageBreak% + \PackageError{% + tudscrbase% + }{`\@backslashchar#1' is not defined}{% + The command `\@backslashchar#1' was never defined\MessageBreak% Please contact the TUD-KOMA-Script maintainer\MessageBreak% via \tudscrmail. A bugfix is urgently required.% }% }% } \newcommand*\tud@skip@store[1]{% - \ifcsdef{@@tud@skip@#1}{}{% - \@tempswafalse% - \ifisskip{\csname #1\endcsname}{\@tempswatrue}{}% - \ifisdimen{\csname #1\endcsname}{\@tempswatrue}{}% - \if@tempswa% + \tud@skip@check{#1}{% + \ifcsdef{@@tud@skip@#1}{}{% \csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}% - \fi% + }% }% } \newcommand*\tud@skip@restore[1]{% - \ifcsdef{@@tud@skip@#1}{% - \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% - \csundef{@@tud@skip@#1}% - }{}% + \tud@skip@check{#1}{% + \ifcsdef{@@tud@skip@#1}{% + \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% + \csundef{@@tud@skip@#1}% + }{}% + }% +} +\newcommand*\tud@skip@reset[1]{% + \tud@skip@check{#1}{% + \ifcsdef{@@tud@skip@#1}{% + \csname#1\endcsname=\csname @@tud@skip@#1\endcsname% + }{}% + }% } \newcommand*\tud@skip@set[2]{% - \ifdef{#1}{% + \tud@skip@check{#1}{% + \expandafter\setlength\csname #1\endcsname{#2}% + }% +} +\newcommand*\tud@skip@check[1]{% + \begingroup% \@tempswafalse% - \ifisskip{#1}{\@tempswatrue}{}% - \ifisdimen{#1}{\@tempswatrue}{}% + \expandafter\ifisskip\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% + \expandafter\ifisdimen\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% \if@tempswa% - \setlength#1{#2}% + \aftergroup\@firstofone% + \else% + \aftergroup\@gobble% \fi% - }{}% + \endgroup% } \newcommand*\tud@patch@wrn[1]{% \PackageWarning{tudscrbase}{% - It wasn't possible to patch `\@backslashchar#1'.\MessageBreak% + It wasn't possible to patch `\@backslashchar#1'\MessageBreak% Please contact the TUD-KOMA-Script maintainer\MessageBreak% via \tudscrmail. Without a bugfix an\MessageBreak% erroneous output may occur% }% } -\newcommand*\TUD@parameter@family{}% -\newcommand*\TUD@parameter[2]{% - \ifxblank{#1}{}{\xdef\TUD@parameter@family{#1}}% +\newcommand*\TUD@parameter@@family{} +\newcommand*\TUD@parameter@family[2]{% + \xdef\TUD@parameter@@family{#1}% #2% - \global\let\TUD@parameter@family\relax% + \gdef\TUD@parameter@@family{}% } -\let\TUD@parameter@family\relax% -\newcommand*\TUD@parameter@checkfamily[1]{% - \ifx\TUD@parameter@family\relax% +\newcommand*\TUD@parameter@checkfamily[2]{% + \ifxblank{#1}{% \PackageError{tudscrbase}{% - No family for keys given% + No family for \@backslashchar#2 defined% }{% - You have to use \string#1\space within the\MessageBreak% - second argument of \string\TUD@parameter. The first \MessageBreak% - argument of \string\TUD@parameter\space has to be a unique family name.% + You have to use \@backslashchar#2\space within the\MessageBreak% + second argument of \string\TUD@parameter@family. The first\MessageBreak% + argument of \string\TUD@parameter@family\space has to be\MessageBreak% + a unique family name. Alternatively, you can specify\MessageBreak% + the family name within the optional argument of\MessageBreak% + \@backslashchar#2. }% - \fi% + }{}% } -\newcommand*\TUD@parameter@define[1][]{% - \ifxblank{#1}{% - \TUD@parameter@checkfamily{\TUD@parameter@define}% - \expandafter\define@key\expandafter{\TUD@parameter@family}% - }{% - \expandafter\define@key\expandafter{#1}% +\newcommand*\TUD@parameter@def[1][\TUD@parameter@@family]{% + \TUD@parameter@checkfamily{#1}{TUD@parameter@def}% + \expandafter\define@key\expandafter{#1}% +} +\newcommand*\TUD@parameter@let[3][\TUD@parameter@@family]{% + \TUD@parameter@checkfamily{#1}{TUD@parameter@let}% + \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}% + \@expandtwoargs{\csletcs}{KV@#1@#2@default}{KV@#1@#3@default}% +} +\newcommand*\TUD@parameter@nokey{@nokey@} +\newcommand*\TUD@parameter@set[2]{% + \def\@tempb{}% + \def\@tempa##1{% + \@expandtwoargs\in@{=}{##1}% + \ifin@% + \appto\@tempb{##1,}% + \else% + \begingroup + \let\IeC\@firstofone% + \def\"####1{####1e}% + \def\ss{ss}% + \protected@edef\tud@reserved{% + \endgroup% + \noexpand\protected@edef\noexpand\@tempc{KV@#1@##1}% + }% + \tud@reserved% + \ifcsdef{\@tempc}{% + \appto\@tempb{##1,}% + }{% + \protected@eappto\@tempb{\TUD@parameter@nokey=##1,}% + }% + \fi% }% + \forcsvlist\@tempa{#2}% + \@expandtwoargs\kvsetkeys{#1}{\@tempb}% } -\newcommand*\TUD@parameter@let[3][]{% - \ifxblank{#1}{% - \TUD@parameter@checkfamily{\TUD@parameter@let}% - \@expandtwoargs{\csletcs}{% - KV@\TUD@parameter@family @#2% - }{% - KV@\TUD@parameter@family @#3% - }% - \@expandtwoargs{\csletcs}{% - KV@\TUD@parameter@family @#2@default% - }{% - KV@\TUD@parameter@family @#3@default% - }% - }{% - \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}% - \@expandtwoargs{\csletcs}{KV@#1@#2@default}{KV@#1@#3@default}% +\newcommand*\TUD@parameter@handler@macro[3][\TUD@parameter@@family]{% + \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@macro}% + \expandafter\kv@set@family@handler\expandafter{#1}{% + \ifstr{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% }% } -\newcommand*\TUD@parameter@sethandler[1][]{% - \ifxblank{#1}{% - \TUD@parameter@checkfamily{\TUD@parameter@sethandler}% - \expandafter\kv@set@family@handler\expandafter{\TUD@parameter@family}% +\newcommand*\TUD@parameter@handler@value[2][\TUD@parameter@@family]{% + \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@value}% + \protected@edef\@tempa{% + \noexpand\TUD@parameter@set{#1}{#2=\noexpand\kv@value}% + }% + \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \expandafter\@tempb\expandafter{\@tempa}% +} +\newcommand*\TUD@parameter@handler@default[2][\TUD@parameter@@family]{% + \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@default}% + \ifxblank{#2}{% + \def\@tempa{\let\tud@reserved\relax}% }{% - \expandafter\kv@set@family@handler\expandafter{#1}% + \def\@tempa{\def\tud@reserved{#2=\kv@value}}% + }% + \appto\@tempa{% + \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% + \ifxnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% + \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% + \ifx\tud@reserved\relax% + \PackageError{tudscrbase}{% + Unknown default value `\kv@value'% + }{% + If `\kv@value' is a language, you haven't loaded it.\MessageBreak% + Otherwise, there's no handler for the given value.\MessageBreak% + You should specify a certian key (=\kv@value). + }% + \fi% + }% + \protected@eappto\@tempa{% + \noexpand\ifx\noexpand\tud@reserved\noexpand\relax\noexpand\else% + \noexpand\TUD@parameter@set{#1}{\noexpand\tud@reserved}% + \noexpand\fi% }% + \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \expandafter\@tempb\expandafter{\@tempa}% } -\newcommand*\TUD@parameter@set[2]{\@expandtwoargs\kvsetkeys{#1}{#2}} \newcommand*\TUD@parameter@error[2]{% \PackageError{tudscrbase}{Unsupported value for parameter `#1'}{% `#1' can only be used with values:\MessageBreak#2% }% } -\newcommand*\TUD@AfterPackage@Set[1]{% +\newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} +\newcommand*\TUD@AfterPackage@set[1]{% \newbool{@tud@#1@loaded}% - \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}} + \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}}% } -\newcommand*\TUD@AfterPackage[2]{% +\newcommand*\TUD@AfterPackage@do[2]{% \ifcsdef{if@tud@#1@loaded}{% \if@atdocument% \ifbool{@tud@#1@loaded}{#2}{}% @@ -361,13 +534,25 @@ \AfterPackage!{#1}{#2}% \fi% }{% - \PackageError{tudscrbase}{\string\TUD@AfterPackage@Set{#1} missing}{% - You have to set \string\TUD@AfterPackage@Set{#1} before\MessageBreak% - the usage of \string\TUD@AfterPackage{#1}{} is\MessageBreak% + \PackageError{tudscrbase}{\string\TUD@AfterPackage@set{#1} missing}{% + You have to set \string\TUD@AfterPackage@set{#1} before\MessageBreak% + the usage of \string\TUD@AfterPackage@do{#1}{} is\MessageBreak% possible.% }% }% } +\newcommand*\TUD@KOMAoptions[1]{} +\ifdef{\KOMAClassName}{% + \let\TUD@KOMAoptions\KOMAoptions +}{% + \renewcommand*\TUD@KOMAoptions[1]{% + \PackageWarning{tudscrbase}{% + You should load package `scrextend' right after the\MessageBreak% + documentclass. Option \string\TUD@KOMAoptions{`#1'} is gobbled% + }% + }% + \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions} +} \endinput %% %% End of file `tudscrbase.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls index 0fd03c6b4f8..c64426cb02e 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls @@ -5,23 +5,25 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `class,book') -%% tudscr-base.dtx (with options: `load') -%% tudscr-fonts.dtx (with options: `class,option') +%% tudscr-base.dtx (with options: `class,book,load') +%% tudscr-fonts.dtx (with options: `class,book,option') +%% tudscr-area.dtx (with options: `class,book,option') %% tudscr-pagestyle.dtx (with options: `class,book,option') %% tudscr-layout.dtx (with options: `class,book,option') -%% tudscr-frontmatter.dtx (with options: `class,book,option') %% tudscr-title.dtx (with options: `class,book,option') +%% tudscr-frontmatter.dtx (with options: `class,book,option') %% tudscr-comp.dtx (with options: `class,book,option') %% tudscr-misc.dtx (with options: `class,book,option') -%% tudscr-misc.dtx (with options: `class,execute') -%% tudscr-base.dtx (with options: `class,body') -%% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-fields.dtx (with options: `class,body') +%% tudscr-misc.dtx (with options: `class,book,execute') +%% tudscr-base.dtx (with options: `class,book,body') +%% tudscr-fonts.dtx (with options: `class,book,body') +%% tudscr-fields.dtx (with options: `class,book,body') %% tudscr-locale.dtx (with options: `class,book,body') +%% tudscr-area.dtx (with options: `class,book,body') %% tudscr-pagestyle.dtx (with options: `class,book,body') %% tudscr-layout.dtx (with options: `class,book,body') -%% tudscr-frontmatter.dtx (with options: `class,book,body') %% tudscr-title.dtx (with options: `class,book,body') +%% tudscr-frontmatter.dtx (with options: `class,book,body') %% tudscr-comp.dtx (with options: `class,book,body') %% tudscr-misc.dtx (with options: `class,book,body') %% @@ -53,160 +55,153 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \newcommand*\TUD@ProvidesClass[3]{% - \newcommand*\TUDClassName@KOMA{#2}% - \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script ^^J#3 (#2)% ]% - \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% } -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% } -\NeedsTeXFormat{LaTeX2e} \TUD@ProvidesClass{tudscrbook}{scrbook}{document class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% ]{tudscrfonts} -\newif\if@tud@univers -\newif\if@tud@dinbold -\newcommand*\tud@univers{lun} -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% - \ClassWarning{\TUDClassName}% - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -\AtEndOfClass% -{% - \TUD@key{fontspec}[]% - {% - \ClassError{\TUDClassName}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - class `\TUDClassName' - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -\newcommand*\tud@cdfont{1} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% - {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% - {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% - {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% - {bar}{6},{barfont}{6},% - {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% - {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% - {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% - {headlight}{6},{headfontlight}{6},{headlightfont}{6},% - {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% - {barlight}{6},{barfontlight}{6},{barlightfont}{6},% - {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% - {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% - {litebar}{6},{litebarfont}{6},{litefontbar}{6},% - {headlite}{6},{headfontlite}{6},{headlitefont}{6},% - {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% - {barlite}{6},{barfontlite}{6},{barlitefont}{6},% - {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% - {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% - {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% - {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% - {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% - {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% - {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% - {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% - {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% - {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% - {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% - {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% + {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% + {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% + {bar}{8},{barfont}{8},% + {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% + {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% + {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% + {headlight}{8},{headfontlight}{8},{headlightfont}{8},% + {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% + {barlight}{8},{barfontlight}{8},{barlightfont}{8},% + {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% + {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% + {litebar}{8},{litebarfont}{8},{litefontbar}{8},% + {headlite}{8},{headfontlite}{8},{headlitefont}{8},% + {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% + {barlite}{8},{barfontlite}{8},{barlitefont}{8},% + {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% + {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% + {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% + {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% + {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% + {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% + {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% + {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% + {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% + {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% + {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% + {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% \or% nohead \TUDoptions{cdhead=false}% \or% head @@ -227,16 +222,38 @@ \TUDoptions{fontspec=false}% \fi% \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } \bool@lock{@tud@cdmath} @@ -251,10 +268,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -267,28 +284,111 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +%%% From File: tudscr-area.dtx +\cs@lock{tud@cdgeometry@num}{0} +\newcommand*\tud@cdgeometry@calc@num{0} +\TUD@key{cdgeometry}[true]{% + \let\@tempb\tud@cdgeometry@num% + \let\@tempc\tud@cdgeometry@calc@num% + \TUD@set@numkey{cdgeometry}{@tempa}{% + \TUD@numkey@bool,% + {typearea}{0},% + {cd}{1},{tud}{1},{asymmetric}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3},% + {oneside}{4},% + {restricted}{5},% + {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},% + {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},% + {custom}{8},{user}{8},{package}{8}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false/typearea + \cs@set@lock{tud@cdgeometry@num}{0}% + \or% true/cd + \cs@set@lock{tud@cdgeometry@num}{2}% + \or% symmetric + \cs@set@lock{tud@cdgeometry@num}{3}% + \or% twoside + \cs@set@lock{tud@cdgeometry@num}{4}% + \TUD@KOMAoptions{twoside=true}% + \or% oneside + \ifnum\tud@cdgeometry@num>\thr@@\relax% + \cs@set@lock{tud@cdgeometry@num}{3}% + \fi% + \TUD@KOMAoptions{twoside=false}% + \or% restricted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{0}% + \or% adapted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{1}% + \or% calculated + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{2}% + \or% custom + \cs@set@lock{tud@cdgeometry@num}{1}% + \fi% + \@tempswafalse% + \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi% + \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi% + \if@tempswa% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% + \fi% +} +\newcommand*\tud@dim@extrabottommargin{\z@} +\TUD@key{extrabottommargin}{% + \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \fi% +} +\newcommand*\tud@dim@bleedmargin{.2in} +\TUD@key{bleedmargin}{% + \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% + \@tempa#1\@nil% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{twoside}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{twocolumn}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@x@ta@warnings@off{} +\newcommand*\tud@x@ta@warnings@on{} +\IfFileExists{silence.sty}{% + \RequirePackage{silence}[2012/07/02]% + \WarningFilter[typearea]{typearea}{DIV for}% + \WarningFilter[typearea]{typearea}{Bad type area settings!}% + \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}% + \WarningFilter[typearea]{typearea}{Very low DIV value!}% + \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}% + \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}% + \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]} + \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]} +}{} %%% From File: tudscr-pagestyle.dtx \newcommand*\tud@ps@list{} -\newcommand*\tud@iftudps[3]{% +\newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } \newif\if@tud@ddc@internal -\newcommand*\tud@clearpage@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{\clearpage}{}% - \fi\fi% -} -\newcommand*\tud@pagestyle@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi\fi% -} +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -302,10 +402,10 @@ \newif\if@tud@headlogo@option@set \newif\if@tud@footlogo@option@set \newif\if@tud@ddc@auto -\newcommand*\tud@ddc{0} +\newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal% \@tud@ddc@autofalse% @@ -319,12 +419,12 @@ \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@head{0} +\newcommand*\tud@ddc@head@num{0} \TUD@key{ddchead}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -333,12 +433,12 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@foot{0} +\newcommand*\tud@ddc@foot@num{0} \TUD@key{ddcfoot}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -347,43 +447,32 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head% - \let\@tempb\tud@ddc@foot% - \if@tud@ddc@auto% - \ifdefvoid{\@headlogo}{% - \let\@tempa\tud@ddc% - \let\@tempb\z@% - }{% - \let\@tempa\z@% - \let\@tempb\tud@ddc% - }% - \fi% - \tud@ifverlower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% - \fi% - }{}% + \tud@comp@resetpagestyle% } -\newlength\tud@dim@extrabottommargin -\TUD@key{extrabottommargin}{% - \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@geometry@process\fi% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% + \fi% + \global\@tud@footlogo@option@settrue% \fi% } -\cs@lock{tud@head@font}{0} -\cs@lock{tud@head@bar}{0} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} \bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% @@ -394,32 +483,42 @@ {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% - {paperwidth}{8},{wide}{8},{widehead}{8}% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font}{0}% + \cs@set@lock{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font}{1}% + \cs@set@lock{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font}{2}% + \cs@set@lock{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar}{0}% + \cs@set@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% \fi% \fi% } -\TUD@AfterPackage@Set{scrlayer-scrpage} -\newif\if@tud@foot@colored +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -431,13 +530,13 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% \or% true - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% @@ -450,72 +549,54 @@ \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% \or% nocolor - \@tud@foot@coloredfalse% + \bool@set@lock{@tud@foot@colored}{false}% \or% color - \@tud@foot@coloredtrue% + \bool@set@lock{@tud@foot@colored}{true}% \fi% \else% - \TUDoptions{extrabottommargin=#1}% + \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } \newcommand*\tud@ps@store[1]{% - \tud@@ps@store{#1}{odd}{left}{head}% - \tud@@ps@store{#1}{odd}{right}{head}% - \tud@@ps@store{#1}{odd}{middle}{head}% - \tud@@ps@store{#1}{even}{left}{head}% - \tud@@ps@store{#1}{even}{right}{head}% - \tud@@ps@store{#1}{even}{middle}{head}% - \tud@@ps@store{#1}{odd}{left}{foot}% - \tud@@ps@store{#1}{odd}{right}{foot}% - \tud@@ps@store{#1}{odd}{middle}{foot}% - \tud@@ps@store{#1}{even}{left}{foot}% - \tud@@ps@store{#1}{even}{right}{foot}% - \tud@@ps@store{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@store[4]{% + \tud@ps@@store{#1}{odd}{left}{head}% + \tud@ps@@store{#1}{odd}{right}{head}% + \tud@ps@@store{#1}{odd}{middle}{head}% + \tud@ps@@store{#1}{even}{left}{head}% + \tud@ps@@store{#1}{even}{right}{head}% + \tud@ps@@store{#1}{even}{middle}{head}% + \tud@ps@@store{#1}{odd}{left}{foot}% + \tud@ps@@store{#1}{odd}{right}{foot}% + \tud@ps@@store{#1}{odd}{middle}{foot}% + \tud@ps@@store{#1}{even}{left}{foot}% + \tud@ps@@store{#1}{even}{right}{foot}% + \tud@ps@@store{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@store[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% }% } \newcommand*\tud@ps@restore[1]{% - \tud@@ps@restore{#1}{odd}{left}{head}% - \tud@@ps@restore{#1}{odd}{right}{head}% - \tud@@ps@restore{#1}{odd}{middle}{head}% - \tud@@ps@restore{#1}{even}{left}{head}% - \tud@@ps@restore{#1}{even}{right}{head}% - \tud@@ps@restore{#1}{even}{middle}{head}% - \tud@@ps@restore{#1}{odd}{left}{foot}% - \tud@@ps@restore{#1}{odd}{right}{foot}% - \tud@@ps@restore{#1}{odd}{middle}{foot}% - \tud@@ps@restore{#1}{even}{left}{foot}% - \tud@@ps@restore{#1}{even}{right}{foot}% - \tud@@ps@restore{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@restore[4]{% + \tud@ps@@restore{#1}{odd}{left}{head}% + \tud@ps@@restore{#1}{odd}{right}{head}% + \tud@ps@@restore{#1}{odd}{middle}{head}% + \tud@ps@@restore{#1}{even}{left}{head}% + \tud@ps@@restore{#1}{even}{right}{head}% + \tud@ps@@restore{#1}{even}{middle}{head}% + \tud@ps@@restore{#1}{odd}{left}{foot}% + \tud@ps@@restore{#1}{odd}{right}{foot}% + \tud@ps@@restore{#1}{odd}{middle}{foot}% + \tud@ps@@restore{#1}{even}{left}{foot}% + \tud@ps@@restore{#1}{even}{right}{foot}% + \tud@ps@@restore{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@restore[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% }{}% } -\newcommand*\tud@geometry{0} -\TUD@key@lock{cdgeometry}[true]{% - \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% - \TUD@numkey@bool,% - {typearea}{0},% - {cd}{1},{tud}{1},{asymmetric}{1},% - {symmetric}{2},{centred}{2},{centered}{2},% - {normal}{2},{standard}{2},{std}{2},% - {twoside}{3},{balanced}{3}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\recalctypearea\fi% - \fi% -} %%% From File: tudscr-layout.dtx -\cs@lock{tud@layout@cover}{0} -\cs@lock{tud@layout@title}{0} -\cs@lock{tud@layout@part}{0} -\cs@lock{tud@layout@chapter}{0} \newcommand*\tud@layout@switch{} \edef\tud@layout@switch{% \TUD@numkey@bool,% @@ -529,60 +610,71 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\newcommand*\tud@cd{0} +\cs@lock{tud@layout@cover@num}{0} +\cs@lock{tud@layout@title@num}{0} +\cs@lock{tud@layout@part@num}{0} +\cs@lock{tud@layout@chapter@num}{0} +\cs@lock{tud@layout@section@num}{0} +\newcommand*\tud@cd@num{0} \TUD@key{cd}[true]{% - \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% false - \cs@std@lock{tud@layout@cover}{0}% - \cs@std@lock{tud@layout@title}{0}% - \cs@std@lock{tud@layout@part}{0}% - \cs@std@lock{tud@layout@chapter}{0}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@layout@cover@num}{0}% + \cs@std@lock{tud@layout@title@num}{0}% + \cs@std@lock{tud@layout@part@num}{0}% + \cs@std@lock{tud@layout@chapter@num}{0}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{0}% \or% true - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{1}% - \cs@std@lock{tud@layout@part}{1}% - \cs@std@lock{tud@layout@chapter}{1}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{1}% + \cs@std@lock{tud@layout@part@num}{1}% + \cs@std@lock{tud@layout@chapter@num}{1}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{1}% \or% litecolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{2}% - \cs@std@lock{tud@layout@part}{2}% - \cs@std@lock{tud@layout@chapter}{2}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{2}% + \cs@std@lock{tud@layout@part@num}{2}% + \cs@std@lock{tud@layout@chapter@num}{2}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% barcolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{3}% - \cs@std@lock{tud@layout@part}{3}% - \cs@std@lock{tud@layout@chapter}{3}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{3}% + \cs@std@lock{tud@layout@part@num}{3}% + \cs@std@lock{tud@layout@chapter@num}{3}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% bicolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{4}% - \cs@std@lock{tud@layout@part}{4}% - \cs@std@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{4}% + \cs@std@lock{tud@layout@part@num}{4}% + \cs@std@lock{tud@layout@chapter@num}{4}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% color - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{5}% - \cs@std@lock{tud@layout@part}{5}% - \cs@std@lock{tud@layout@chapter}{5}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{5}% + \cs@std@lock{tud@layout@part@num}{5}% + \cs@std@lock{tud@layout@chapter@num}{5}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \cs@std@lock{tud@layout@section@num}{2}% \or% full - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{6}% - \cs@std@lock{tud@layout@part}{6}% - \cs@std@lock{tud@layout@chapter}{6}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{6}% + \cs@std@lock{tud@layout@part@num}{6}% + \cs@std@lock{tud@layout@chapter@num}{6}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \cs@std@lock{tud@layout@section@num}{2}% \fi% - \if@atdocument% - \tud@layout@process% - \else% - \ifcase\tud@cd\relax% false - \TUD@std@numkey@lock{cdgeometry}{false}% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \if@atdocument\else% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@cdgeometry@num}{0}% \else% !false - \TUD@std@numkey@lock{cdgeometry}{true}% + \cs@std@lock{tud@cdgeometry@num}{2}% \fi% \fi% \fi% @@ -591,98 +683,111 @@ \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover}{0}% + \cs@set@lock{tud@layout@cover@num}{0}% \or% true - \cs@set@lock{tud@layout@cover}{1}% + \cs@set@lock{tud@layout@cover@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@cover}{2}% + \cs@set@lock{tud@layout@cover@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@cover}{3}% + \cs@set@lock{tud@layout@cover@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@cover}{4}% + \cs@set@lock{tud@layout@cover@num}{4}% \or% color - \cs@set@lock{tud@layout@cover}{5}% + \cs@set@lock{tud@layout@cover@num}{5}% \or% full - \cs@set@lock{tud@layout@cover}{6}% + \cs@set@lock{tud@layout@cover@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@title}{0}% + \cs@set@lock{tud@layout@title@num}{0}% \or% true - \cs@set@lock{tud@layout@title}{1}% + \cs@set@lock{tud@layout@title@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@title}{2}% + \cs@set@lock{tud@layout@title@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@title}{3}% + \cs@set@lock{tud@layout@title@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@title}{4}% + \cs@set@lock{tud@layout@title@num}{4}% \or% color - \cs@set@lock{tud@layout@title}{5}% + \cs@set@lock{tud@layout@title@num}{5}% \or% full - \cs@set@lock{tud@layout@title}{6}% + \cs@set@lock{tud@layout@title@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@part}{0}% + \cs@set@lock{tud@layout@part@num}{0}% \or% true - \cs@set@lock{tud@layout@part}{1}% + \cs@set@lock{tud@layout@part@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@part}{2}% + \cs@set@lock{tud@layout@part@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@part}{3}% + \cs@set@lock{tud@layout@part@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@part}{4}% + \cs@set@lock{tud@layout@part@num}{4}% \or% color - \cs@set@lock{tud@layout@part}{5}% + \cs@set@lock{tud@layout@part@num}{5}% \or% full - \cs@set@lock{tud@layout@part}{6}% + \cs@set@lock{tud@layout@part@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdchapter}[true]{% \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@chapter}{0}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{0}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% true - \cs@set@lock{tud@layout@chapter}{1}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{1}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% litecolor - \cs@set@lock{tud@layout@chapter}{2}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{2}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% barcolor - \cs@set@lock{tud@layout@chapter}{3}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{3}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% bicolor - \cs@set@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{4}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% color - \cs@set@lock{tud@layout@chapter}{5}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@set@lock{tud@layout@chapter@num}{5}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% \or% full - \cs@set@lock{tud@layout@chapter}{6}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@set@lock{tud@layout@chapter@num}{6}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \fi% +} +\TUD@key{cdsection}[true]{% + \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@section@num}{0}% + \or% true + \cs@set@lock{tud@layout@section@num}{1}% + \else% *color + \cs@set@lock{tud@layout@section@num}{2}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \newif\if@tud@chapterpage @@ -694,25 +799,25 @@ \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \def\tud@cleardoublepage{\cleardoubleoddpage}% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% \else% - \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% \fi% \else% \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{% \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{% \ifstr{#1}{current}{% - \def\tud@cleardoublepage{\cleardoubleoddstandardpage}% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \FamilyKeyStateProcessed% }{% \AfterPreamble{% - \ifcsdef{ps@#1}{% - \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% - }{% - \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{% + \ifcsundef{ps@#1}{% + \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% `cleardoublespecialpage', but it was never defined.% }% + }{% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }% }% \FamilyKeyStateProcessed% @@ -750,37 +855,42 @@ \TUD@ifkey{clearcolor}{@tud@clearcolor} \TUD@ifkey{clearcolour}{@tud@clearcolor} \newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{#2\nobreak}% } \newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{\relax}% +} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% !false - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \fi% - \ifcase\tud@layout@chapter\relax\else% !false - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{open}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{chapterprefix}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@pagecolor{}% +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +%%% From File: tudscr-title.dtx +\newif\if@tud@subjectthesis +\TUD@key@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -800,8 +910,8 @@ {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } -\newcommand*\tud@abstract@level{3} -\cs@lock{tud@abstract@toc}{1} +\newcommand*\tud@abstract@level@num{3} +\cs@lock{tud@abstract@toc@num}{1} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -814,11 +924,11 @@ \ifcase\@tempa\relax% false \or% true \or% section - \def\tud@abstract@level{2}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{2}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% chapter - \def\tud@abstract@level{3}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{3}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% single \@tud@abstract@multifalse% \or% multiple @@ -832,35 +942,39 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc}{0}% + \cs@set@lock{tud@abstract@toc@num}{0}% \or% totoc - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc}{3}% + \cs@set@lock{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{2}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc}{4}% + \cs@set@lock{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@abstract@toc=\z@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num=\z@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \fi% - \ifnum\tud@abstract@toc<\thr@@\relax% + \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc}{% - \the\numexpr\tud@abstract@toc+2\relax% + \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -\newcommand*\tud@declaration@level{3} -\cs@lock{tud@declaration@toc}{1} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{abstract}[true]{% + \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% +} +\newcommand*\tud@declaration@level@num{3} +\cs@lock{tud@declaration@toc@num}{1} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -871,17 +985,17 @@ \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@declaration@level{0}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{0}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% true - \def\tud@declaration@level{1}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{1}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% section - \def\tud@declaration@level{2}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{2}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% chapter - \def\tud@declaration@level{3}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{3}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% single \@tud@declaration@multifalse% \or% multiple @@ -895,55 +1009,74 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc}{0}% + \cs@set@lock{tud@declaration@toc@num}{0}% \or% totoc - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc}{3}% + \cs@set@lock{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{2}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc}{4}% + \cs@set@lock{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@declaration@toc=\z@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num=\z@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \fi% - \ifnum\tud@declaration@toc<\thr@@\relax% + \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc}{% - \the\numexpr\tud@declaration@toc+2\relax% + \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% -} %%% From File: tudscr-comp.dtx -\newcommand*\TUD@deprecated@key[2]{% - \ClassWarning{\TUDClassName}% +\newcommand*\TUD@key@deprecated[2]{% + \ClassWarning{\TUD@Class@Name}% {% - The option key `#1' is deprecated.\MessageBreak% + The option key `#1' is deprecated\MessageBreak% It's recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } +\TUD@key{fontspec}[true]{% + \ClassWarning{\TUD@Class@Name}% + {% + The option key `fontspec' is deprecated\MessageBreak% + You should load the package `fontspec' manually% + }% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% +} +\AtEndOfClass% +{% + \TUD@key{fontspec}[]% + {% + \ClassError{\TUD@Class@Name}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + class `\TUD@Class@Name' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@enabled% + \RequirePackage{fontspec}[2014/06/21]% + \fi% +} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% \fi% \fi% } @@ -951,9 +1084,9 @@ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -961,9 +1094,9 @@ \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{heavyfont}{cdfont=heavy}% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% \else% - \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -971,9 +1104,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@key@deprecated{din}{cdfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% \fi% \fi% } @@ -981,9 +1114,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@key@deprecated{nodin}{cdfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% \fi% \fi% } @@ -991,9 +1124,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% \fi% \fi% } @@ -1001,9 +1134,9 @@ \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% + \TUD@key@deprecated{sansmath}{cdmath=true}% \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% \fi% \fi% } @@ -1011,28 +1144,28 @@ \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% + \TUD@key@deprecated{serifmath}{cdmath=false}% \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} +\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \TUD@key@deprecated{barfont=#1}{cdhead=false}% \or% true - \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \TUD@key@deprecated{barfont=#1}{cdhead=true}% \or% heavy - \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% + \TUD@key@deprecated{barfont=#1}{cdhead=heavy}% \fi% \fi% } @@ -1040,9 +1173,9 @@ \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{widehead}{cdhead=paperwidth}% + \TUD@key@deprecated{widehead}{cdhead=paperwidth}% \else% - \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% + \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}% \fi% \fi% } @@ -1050,9 +1183,9 @@ \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfoot}{cdfoot=true}% + \TUD@key@deprecated{tudfoot}{cdfoot=true}% \else% - \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% + \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -1071,84 +1204,172 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{color=#1}{cd=true}% + \TUD@key@deprecated{color=#1}{cd=true}% \or% true - \TUD@deprecated@key{color=#1}{cd=color}% + \TUD@key@deprecated{color=#1}{cd=color}% \or% litecolor - \TUD@deprecated@key{color=#1}{cd=pale}% + \TUD@key@deprecated{color=#1}{cd=pale}% \or% bicolor - \TUD@deprecated@key{color=#1}{cd=bicolor}% + \TUD@key@deprecated{color=#1}{cd=bicolor}% \or% full - \TUD@deprecated@key{color=#1}{cd=fullcolor}% + \TUD@key@deprecated{color=#1}{cd=fullcolor}% \fi% \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} \newcommand*\tud@v@comp{\tud@v@last} \TUD@key{tudscrver}[last]{% - \ifcsvoid{tud@v@#1}{% - \def\tud@v@comp{0}% - \ClassWarningNoLine{\TUDClassName}% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% + \ClassWarningNoLine{\TUD@Class@Name}% {% - You have set option `tudscrver' to `#1', but\MessageBreak% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \FamilyKeyStateProcessed% + \def\tud@v@comp{0}% }{% - \ClassInfoNoLine{\TUDClassName}% + \ClassInfoNoLine{\TUD@Class@Name}% {% - Switching compatibility level to `#1'% + Switching compatibility level to `\@tempa'% }% - \edef\tud@v@comp{\@nameuse{tud@v@#1}}% - \FamilyKeyStateProcessed% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% + \FamilyKeyStateProcessed% } \AtEndOfClass% {% \TUD@key{tudscrver}[]{% - \ClassError{\TUDClassName}% + \ClassError{\TUD@Class@Name}% {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\TUDClassName' + class `\TUD@Class@Name' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.17}{% - \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\TUDClassName}{% + \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% + \ClassError{\TUD@Class@Name}{% KOMA-Script compatibility level too low% }{% - \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script compatibility option `version=v3.12'.% + \TUD@Version\space must be used at least with\MessageBreak% + KOMA-Script compatibility option `version=3.12'.% }% \fi% }{% - \ClassError{\TUDClassName}{% - KOMA-Script v3.17 is required% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% - at least. You're using \KOMAScriptVersion% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion% }% }% } -\@namedef{tud@v@first}{0} -\@namedef{tud@v@2.02}{0} -\@namedef{tud@v@v2.02}{0} -\@namedef{tud@v@2.03}{1} -\@namedef{tud@v@v2.03}{1} -\@namedef{tud@v@2.04}{2} -\@namedef{tud@v@v2.04}{2} -\@namedef{tud@v@last}{2} -\newcommand*\tud@ifverlower[1]{% - \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% - \expandafter\@firstoftwo% +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\csdef{tud@v@2.01a}{0} +\csdef{tud@v@2.01b}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.03}{1} +\csdef{tud@v@2.03a}{1} +\csdef{tud@v@2.04}{2} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% +} +%%% From File: tudscr-misc.dtx +\newif\if@tud@x@scr@paper@set +\TUD@key{paper}{% + \tud@lowerstring{\@tempa}{#1}% + \def\@tempb##1##2\@nil{% + \@tempswafalse% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \ifnumber{##2}{}{\@tempswafalse}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \edef\@tempc{##1}% + \ifx\@tempc\@empty\@tempswafalse\else% + \edef\@tempc{##2}% + \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi% + \fi% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \@tud@x@scr@paper@setfalse% + \if@tempswa% + \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% + \FamilyKeyStateProcessed% \else% - \expandafter\@secondoftwo% + \FamilyKeyStateUnknownValue% \fi% } -%%% From File: tudscr-misc.dtx +\newif\if@tud@fontsize@set +\TUD@key{fontsize}{% + \@tud@fontsize@settrue% + \PassOptionsToClass{fontsize=#1}{\TUD@Class@KOMA}% + \FamilyKeyStateProcessed% +} +\AtEndOfClass{% + \RelaxFamilyKey{TUD}{paper}% + \RelaxFamilyKey{TUD}{fontsize}% + \ifboolexpr{bool {@tud@x@scr@paper@set} or bool {@landscape}}{% + \if@tud@fontsize@set\else% + \ClassWarningNoLine{\TUD@Class@Name}{% + You've set a paper size, which is different from\MessageBreak% + default (paper=a4, paper=portrait). Therefore you\MessageBreak% + should additionally specify an explicit font size.\MessageBreak% + See the manual for further information.% + }% + \fi% + }{}% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} \newif\if@tud@symbolheadings \TUD@key{footnotes}{% \TUD@set@numkey{footnotes}{@tempa}{% @@ -1163,182 +1384,319 @@ \fi% \fi% } -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +\AtEndOfClass{% + \newcounter{symbolheadings}[chapter] +} %%% From File: tudscr-misc.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} -\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} +\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\newcommand*\tud@x@scr@paper{% + \expandafter\tud@x@scr@@paper\CurrentOption paper\tud@x@scr@@paper% +} +\newcommand*\tud@x@scr@@paper{} +\def\tud@x@scr@@paper #1#2paper#3\tud@x@scr@@paper{% + \@tempswafalse% + \ifstr{#3}{paper}{\ifnumber{#2}{% + \ifstr{#1}{a}{\@tempswatrue}{% + \ifstr{#1}{b}{\@tempswatrue}{% + \ifstr{#1}{c}{\@tempswatrue}{% + \ifstr{#1}{d}{\@tempswatrue}{% + }}}}% + }{}}{}% + \if@tempswa\TUDExecuteOptions{#3=#1#2}\fi% + \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% +} +\DeclareOption*{\tud@x@scr@paper} +\TUDExecuteOptions{% + cd=true,relspacing=true,tudbookmarks=true% +} \TUDProcessOptions\relax -\LoadClass{\TUDClassName@KOMA}[2015/04/23] +\LoadClass{\TUD@Class@KOMA}[2015/04/23] %%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\TUDClassName}{% - The package `graphics' was superseded by `graphicx',\MessageBreak% - which is automatically loaded% + \ClassWarningNoLine{\TUD@Class@Name}{% + Package `graphics' was superseded by `graphicx',\MessageBreak% + which now will be loaded automatically% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% - \RequirePackage{tudscrcolor}[\TUDVersion]% -} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\cs@lock{tud@multicols}{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>\@ne\relax% - \ClassWarning{\TUDClassName}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \cs@set@lock{tud@multicols}{1}% - \fi% - }% + \RequirePackage{tudscrcolor}[\TUD@Version]% +} +\cs@lock{tud@x@multicol@num}{1} +\newcommand*\tud@x@multicol@check{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \ClassWarning{\TUD@Class@Name}{% + The option `columns=\tud@x@multicol@num' is only\MessageBreak% + supported, when package `multicol' is loaded% + }% + \cs@set@lock{tud@x@multicol@num}{1}% + \fi% } +\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} %%% From File: tudscr-fonts.dtx -\newcommand*\tud@font@greek@loop[1]{% - \@for\@tempa:={% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% -} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath +\newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \ClassInfoNoLine{\TUDClassName}% - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} - \ClassWarningNoLine{\TUDClassName}% - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } -\newcommand*\tud@font@init{% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% - \undef\tud@font@init@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% +\RequirePackage{trimspaces}[2009/09/17] +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' fonts not found}% + \fi% \fi% - }% - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% + \fi% + \ifcase\tud@cdfont@num\relax% false + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@head@font@num}{0}% + \else% !false + \cs@std@lock{tud@head@font@num}{1}% + \fi% + \else% true/heavy + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{true}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% \else% - \newrobustcmd*\dinbn{\@dinbn}% + \renewcommand*\sfdefault{\tud@univers}% + \renewcommand*\ttdefault{\tud@univers t}% + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold + \renewcommand*\bfdefault{m}% + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold + \renewcommand*\bfdefault{b}% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% \fi% - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error - }% - \ExplSyntaxOff -\fi% -\newcommand*\tud@font@init@nfss{% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% + \tud@layout@process% + \global\@tud@head@font@settrue% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% @@ -1349,39 +1707,87 @@ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% \fi% \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \newrobustcmd*\dinbn{\sectfont}% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% + \undef\tud@font@init% +} +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \ClassWarning{\TUD@Class@Name}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } \newcommand*\cdfont[1]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% } -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% +\newcommand*\tud@cdfont@get[1]{% + \tud@cdfont@trim\@tempa{#1}% \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% @@ -1397,33 +1803,34 @@ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + \ClassWarning{\TUD@Class@Name}% + {The font `#1' is unknown}% }}}}}}}}}}}}}}% } -\newcommand*\tud@trimfontname[2]{% +\newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% \let#1\@tempa% } -\newcommand*\tud@@trimfontname[2]{% +\newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% @@ -1431,20 +1838,42 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} \newcommand*\tud@font@math@init{% - \if@tud@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% - \ClassWarningNoLine{\TUDClassName}% - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% }% - }% - \fi\fi\fi% - \if@tud@univers% + }{}% + \fi\fi% + \if@tud@universmath% \DeclareMathVersion{univers}% \DeclareMathVersion{universbold}% \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1455,8 +1884,10 @@ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1465,6 +1896,8 @@ \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% \@ifpackageloaded{amsfonts}{% \DeclareFontFamily{U}{\tud@univers a}{}% \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% @@ -1478,15 +1911,19 @@ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% }{}% \fi% - \if@tud@dinbold% + \if@tud@dinboldmath% \DeclareMathVersion{dinbold}% \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% \fi% \@ifpackageloaded{unicode-math}{% \let\tud@font@math@set\relax% @@ -1505,192 +1942,41 @@ \tud@font@greek@loop\tud@font@greek@init% \tud@font@math@set% }% - \sbox\z@{\dinbn$ $}% + \sbox\z@{\tud@dinbn$ $}% \undef\tud@font@math@init% } -\AtEndPreamble% -{% - \tud@font@check% - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% - \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% - \tud@font@init% - \tud@font@set[nomath]% - \AtBeginDocument{\tud@font@math@init}% -} \newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% + \ifcsundef{up#1}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% - }% - \ifcsdef{var#1}{}{% + }{}% + \ifcsundef{var#1}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% - }% + }{}% } -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% - \fi% - \ifcase\tud@cdfont\relax% false - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \if@tud@mweights% - \tud@cmd@restore{bfseries@rm}% - \tud@cmd@restore{bfseries@sf}% - \tud@cmd@restore{bfseries@tt}% - \tud@cmd@restore{mdseries@rm}% - \tud@cmd@restore{mdseries@sf}% - \tud@cmd@restore{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{false}% - \cs@std@lock{tud@head@font}{0}% - \else% true/heavy - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \if@tud@mweights% - \tud@cmd@store{bfseries@rm}% - \tud@cmd@store{bfseries@sf}% - \tud@cmd@store{bfseries@tt}% - \tud@cmd@store{mdseries@rm}% - \tud@cmd@store{mdseries@sf}% - \tud@cmd@store{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \cs@std@lock{tud@head@font}{\tud@cdfont}% - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% - \else% heavy - \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% - ]% - \fi% - \else% - \if@tud@univers% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true - \renewcommand*\bfdefault{m}% - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy - \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% - \fi% - \if@tud@mweights% - \edef\rmdef@ult{\rmdefault}% - \edef\sfdef@ult{\sfdefault}% - \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% \fi% - \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% - \normalfont\selectfont% - \tud@layout@process% -} -\newcommand*\tud@font@skip@set{% - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% -} -\newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% -} -\newcommand*\tud@font@math@set{% - \if@tud@univers% + \if@tud@universmath% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% @@ -1725,70 +2011,37 @@ } \newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} -\newcommand*\tud@head@font@bold{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@set{% - \ifdef{\@raggedtwoe@everyselectfont}{% - \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% - \selectfont% - }{}% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{bx}{n}{\tud@head@font@size}% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% - \@tempswafalse% - \ifcase\tud@head@font\relax% false - \ifnum\tud@cdfont>\z@\relax% true/heavy - \ClassWarning{\TUDClassName}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% - }% - \@tempswatrue% - \fi% - \else% true/heavy - \@tempswatrue% - \fi% - \if@tempswa% true/heavy - \if@tud@fontspec% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversRegular}{m}{n}{\tud@head@font@size}% - \fi% - \else% - \if@tud@univers% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@font@size}% - \fi% - \fi% - \fi% +\AtEndPreamble% +{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% \fi% + \tud@font@check% + \tud@font@set% + \tud@font@init% + \AtBeginDocument{\tud@font@math@init}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% } \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1798,37 +2051,73 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } %%% From File: tudscr-fields.dtx -\RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} +\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}} +\newcommand*\department[2][]{\tud@head@text@field{department}{#2}} +\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}} +\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\tud@head@text@field[2]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \global\@tud@head@text@settrue% +} \newcommand*\@@title{} +\robustify\@title \renewcommand*\title[1]{% \gdef\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% \protected@xdef\@@title{\trim@spaces{#1}}% \endgroup% } +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}% + \let\@tempb\tud@split@author@list% + \robustify\and% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \protected@edef\@@author{#1}% + \tud@replace\@@author{ \relax }{}% + \tud@replace\@@author{\relax }{}% + \tud@replace\@@author{ \relax}{}% + \tud@replace\@@author{\relax}{}% + \tud@replace\@@author{ \and }{\and}% + \tud@replace\@@author{ \and}{\and}% + \tud@replace\@@author{\and }{\and}% + \protected@xdef\@@author{\trim@spaces{\@@author}}% + \endgroup% +} \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\providecommand*\publisher[1]{\publishers{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} \newcommand*\tud@thanks{} -\newcommand*\tud@thesis[2]{% +\newcommand*\tud@thesis@do[2]{% \begingroup% \global\let\tud@thanks\relax% \def\thanks##1{\gdef\tud@thanks{##1}}% @@ -1840,47 +2129,51 @@ \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \global\let\@tempa\@tempa% \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% -} -\newcommand*\tud@@thesis[2]{% + \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \csdef{@#1}{#2}% + }}}}}}}}}}}}}}}% +} +\newcommand*\tud@thesis@@do[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUD@Class@Name}{% + Field `thesis' is overwritten by `subject'% + }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{true}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{false}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% \else% \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% \fi% - \gdef\@@thesis{#2}% + \protected@xdef\@@thesis{\trim@spaces{#2}}% } -\renewcommand*\subject[1]{\tud@thesis{subject}{#1}} +\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} \newcommand*\@graduation{} -\newcommand*\@graduationabbr{} +\newcommand*\@@graduation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}% + \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[2][]{\gdef\@professor{#2}} +\newcommand*\professor[1]{\gdef\@professor{#1}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1893,41 +2186,31 @@ \newcommand*\advisor[1]{\gdef\@advisor{#1}} \newcommand*\@matriculationnumber{} \newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}% + \gdef\@matriculationnumber{#1}\ignorespaces% } \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} -\providecommand*\publisher[1]{\publishers{#1}} -\newlength\tud@signatureskip -\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newlength\tud@len@signatureskip +\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \renewcommand*\tud@split@author[2]{% - \tud@multiple@fields@store{@author}{##1}% - \ignorespaces##1% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{##2}{\hfil}% - }% - \tud@multiple@split{@author}% - \hfil% + \let\and\hfil% + \@@author\hfil% \endgroup% } \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\newcommand*\printdate[1]{#1} -\BeforePackage{isodate}{\undef\printdate} -\newcommand*\tud@printdate[2]{% +\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\newcommand*\tud@x@isodate@printdate[2]{% \ifx\today#2\relax% \gdef#1{#2}% \else% @@ -1936,43 +2219,77 @@ {\gdef#1{\printdate{#2}}}% \fi% } -\newcommand*\tud@datecheck{% +\newcommand*\tud@date@check{% \ifdefvoid{\@duedate}{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% Since a thesis is a self-contained work, an end\MessageBreak% date should be specified by the author.\MessageBreak% Nevertheless, today's date is used% }% }{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% It's substituted by the given due date% }% \global\let\@date\@duedate% }% - \global\let\tud@datecheck\relax% -} -\newcommand*\@datemore{} -\renewcommand*\date[2][]{% - \gdef\@datemore{\trim@spaces{#1}}% - \tud@printdate{\@date}{#2}% - \global\let\tud@datecheck\relax% + \global\let\tud@date@check\relax% +} +\renewcommand*\date{% + \kernel@ifstar{% + \TUD@parameter@set{date}{pre=\noexpand\@place{,}}% + \tud@date@set% + }{\tud@date@set}% +} +\newcommand*\tud@date@set[2][]{% + \TUD@parameter@set{date}{#1}% + \tud@x@isodate@printdate{\@date}{#2}% + \global\let\tud@date@check\relax% +} +\newcommand*\tud@date@pre{} +\newcommand*\tud@date@app{} +\TUD@parameter@family{date}{% + \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@let{pre}{before}% + \TUD@parameter@let{prefix}{before}% + \TUD@parameter@def{after}{\def\tud@date@app{#1}}% + \TUD@parameter@let{app}{after}% + \TUD@parameter@let{suffix}{after}% + \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}% + \TUD@parameter@handler@value{after}% +} +\newcommand*\tud@date@print{% + \ifx\@date\@empty\else% + \ifx\tud@date@pre\@empty\else% + \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace% + \fi% + \@date% + \ifx\tud@date@app\@empty\else% + \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}% + \fi% + \fi% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} -\newcommand*\tud@multiple@@split{}% +\newrobustcmd*\dateofbirth[1]{% + \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% +} +\newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + \@latex@warning@no@line% + }{% + \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% - \expandafter\csname tud@split#1\endcsname{##1}{##2}% + \expandafter\csname tud@split#1@do\endcsname{##1}{##2}% }% \begingroup% \let\and\relax% + \def\newline{}% + \def\\{}% \edef\@tempa{\csname#1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% @@ -1986,13 +2303,10 @@ \@tempb% } \newcommand*\tud@multiple@fields@store[2]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% - \fi% - }% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -2000,45 +2314,68 @@ \endgroup% } \newcommand*\tud@multiple@fields@restore[1]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{% + \ifcsdef{@##1}{% + \tud@cmd@restore{@##1}% + \global\csletcs{@##1}{@##1}% + }{}% + }% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{% - \tud@cmd@restore{@\@tempb}% - \global\csletcs{@\@tempb}{@\@tempb}% - }{}% - \fi% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% +} +\newcommand*\tud@multiple@fields@preset[3]{% + \def\@tempa##1{% + \edef\@tempc{\csuse{##1}}% + \ifstr{#2}{*}{% + \csdef{@##1}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% + \ifin@% + \ifcsvoid{@##1}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% } -\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,matriculationyear,enrolmentyear,% + authormore,course,discipline,% + matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\TUDClassName' only supports the\MessageBreak% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% You can send your definitions to \tudscrmail\space in\MessageBreak% - order to implement support for additional languages. + order to implement support for additional languages.% }% }% } \tud@locale@define{\graduationtext} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} \tud@locale@define{\refereename} \tud@locale@define{\refereeothername} \tud@locale@define{\advisorname} \tud@locale@define{\advisorothername} +\tud@locale@define{\supervisorname} +\tud@locale@define{\supervisorothername} \tud@locale@define{\professorname} \tud@locale@define{\professorothername} \tud@locale@define{\datetext} @@ -2049,63 +2386,88 @@ \tud@locale@define{\matriculationnumbername} \tud@locale@define{\coverpagename} \tud@locale@define{\titlepagename} +\tud@locale@define{\titlename} \tud@locale@define{\abstractname} \tud@locale@define{\confirmationname} \tud@locale@define{\confirmationtext} \tud@locale@define{\blockingname} \tud@locale@define{\blockingtext} +\tud@locale@define{\coursename} +\tud@locale@define{\disciplinename} \tud@locale@define{\listingname} \tud@locale@define{\listlistingname} \tud@locale@define{\dissertationname} \tud@locale@define{\diplomathesisname} \tud@locale@define{\masterthesisname} \tud@locale@define{\bachelorthesisname} +\tud@locale@define{\studentthesisname} \tud@locale@define{\studentresearchname} \tud@locale@define{\projectpapername} \tud@locale@define{\seminarpapername} +\tud@locale@define{\termpapername} \tud@locale@define{\researchname} \tud@locale@define{\logname} \tud@locale@define{\internshipname} \tud@locale@define{\reportname} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} \newcommand*\tud@locale@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } \tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\supervisorname}{Betreuer}% -\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - Erstgutachter% - \else% - Gutachter% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Gutachter% + \else% + Erstgutachter% + \fi% + }{Gutachter}% +}% \tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{Fachreferent}% +\tud@locale@german{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Fachreferenten% + \else% + Erster Fachreferent% + \fi% + }{Fachreferent}% +}% \tud@locale@german{\advisorothername}{}% +\tud@locale@german{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Betreuer% + \else% + Erstbetreuer% + \fi% + }{Betreuer}% +}% +\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Betreuende Hochschullehrer% - \else% - Betreuender Hochschullehrer% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Betreuende Hochschullehrer% + \else% + Erster betreuender Hochschullehrer% + \fi% + }{Betreuender Hochschullehrer}% +}% \tud@locale@german{\professorothername}{}% \tud@locale@german{\datetext}{Eingereicht am}% \tud@locale@german{\dateofbirthtext}{Geboren am}% @@ -2115,29 +2477,30 @@ \tud@locale@german{\matriculationnumbername}{Matrikelnummer}% \tud@locale@german{\coverpagename}{Umschlagseite}% \tud@locale@german{\titlepagename}{Titelblatt}% +\tud@locale@german{\titlename}{Titel}% \tud@locale@german{\abstractname}{Zusammenfassung}% \tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% \tud@locale@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es - wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel und - Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} \"ubernommenen - Zitate habe ich als solche kenntlich gemacht. + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. + Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. \ifx\@supporter\@empty% - Es waren keine weiteren Personen an der geistigen Herstellung der - vorliegenden Arbeit beteiligt. + Es waren keine weiteren Personen an der geistigen Herstellung + der vorliegenden Arbeit beteiligt. \else% - W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden - Personen unterst\"utzt:% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von + folgenden Personen unterst\"utzt:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Weitere Personen waren an der geistigen Herstellung der - vorliegenden Arbeit nicht beteiligt. + \noindent Weitere Personen waren an der geistigen Herstellung + der vorliegenden Arbeit nicht beteiligt. \fi% Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% -} +}% \tud@locale@german{\blockingname}{Sperrvermerk}% \tud@locale@german{\blockingtext}{% Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi @@ -2149,18 +2512,22 @@ durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen - Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des - Pr\"ufungsausschusses zug\"anglich zu machen.% -} + Universit\"at Dresden, den Gutachtern sowie den Mitgliedern + des Pr\"ufungsausschusses zug\"anglich zu machen.% +}% +\tud@locale@german{\coursename}{Studiengang}% +\tud@locale@german{\disciplinename}{Studienrichtung}% \tud@locale@german{\listingname}{Quelltext}% \tud@locale@german{\listlistingname}{Quelltextverzeichnis}% \tud@locale@german{\dissertationname}{Dissertation}% \tud@locale@german{\diplomathesisname}{Diplomarbeit}% \tud@locale@german{\masterthesisname}{Master-Arbeit}% \tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}% -\tud@locale@german{\studentresearchname}{Studienarbeit}% +\tud@locale@german{\studentthesisname}{Studienarbeit}% +\tud@locale@german{\studentresearchname}{Gro\ss{}er Beleg}% \tud@locale@german{\projectpapername}{Projektarbeit}% \tud@locale@german{\seminarpapername}{Seminararbeit}% +\tud@locale@german{\termpapername}{Hausarbeit}% \tud@locale@german{\researchname}{Forschungsbericht}% \tud@locale@german{\logname}{Protokoll}% \tud@locale@german{\internshipname}{Praktikumsbericht}% @@ -2171,39 +2538,45 @@ }% } \tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\supervisorname}{Supervisor}% -\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - First referee% - \else% - Referee% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Referees% + \else% + First referee% + \fi% + }{Referee}% +}% \tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{Advisor}% +\tud@locale@english{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Advisors% + \else% + First advisor% + \fi% + }{Advisor}% +}% \tud@locale@english{\advisorothername}{}% +\tud@locale@english{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Supervisors% + \else% + First supervisor% + \fi% + }{Supervisor}% +}% +\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Supervising professors% - \else% - Supervising professor% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Supervising professors% + \else% + First supervising professor% + \fi% + }{Supervising professor}% +}% \tud@locale@english{\professorothername}{}% \tud@locale@english{\datetext}{Submitted on}% \tud@locale@english{\dateofbirthtext}{Born on}% @@ -2213,6 +2586,7 @@ \tud@locale@english{\matriculationnumbername}{Matriculation number}% \tud@locale@english{\coverpagename}{Cover page}% \tud@locale@english{\titlepagename}{Title page}% +\tud@locale@english{\titlename}{Title}% \tud@locale@english{\abstractname}{Abstract}% \tud@locale@english{\confirmationname}{Statement of authorship}% \tud@locale@english{\confirmationtext}{% @@ -2224,40 +2598,44 @@ indicated in this thesis have been used. I have marked both literal and accordingly adopted quotations as such. \ifx\@supporter\@empty% - They were no additional persons involved in the spiritual - preparation of the present thesis. + There were no additional persons involved in the + intellectual preparation of the present thesis. \else% - During the preparation of this thesis I was only supported - by the following persons:% + During the preparation of this thesis I was only + supported by the following persons:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Additional persons were not involved in the spiritual - preparation of the present thesis. + \noindent Additional persons were not involved in the + intellectual preparation of the present thesis. \fi% I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% -} +}% \tud@locale@english{\blockingname}{Restriction note}% \tud@locale@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \emph{\@company}\fi. Publications, duplications and - inspections---even in part---are prohibited without explicit + , disclosed by \emph{\@company}\fi. Publications, duplications + and inspections---even in part---are prohibited without explicit permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% -} +}% +\tud@locale@english{\coursename}{Course}% +\tud@locale@english{\disciplinename}{Discipline}% \tud@locale@english{\listingname}{Listing}% \tud@locale@english{\listlistingname}{List of Listings}% \tud@locale@english{\dissertationname}{Dissertation}% \tud@locale@english{\diplomathesisname}{Diploma Thesis}% \tud@locale@english{\masterthesisname}{Master Thesis}% \tud@locale@english{\bachelorthesisname}{Bachelor Thesis}% +\tud@locale@english{\studentthesisname}{Student Thesis}% \tud@locale@english{\studentresearchname}{Student Research Project}% \tud@locale@english{\projectpapername}{Project Paper}% \tud@locale@english{\seminarpapername}{Seminar Paper}% +\tud@locale@english{\termpapername}{Term Paper}% \tud@locale@english{\researchname}{Research Report}% \tud@locale@english{\logname}{Log}% \tud@locale@english{\internshipname}{Internship Report}% @@ -2272,1158 +2650,943 @@ \tud@locale@english{\@commaswap}{\,}% \tud@locale@english{\@dotswap}{.}% } -%%% From File: tudscr-pagestyle.dtx -\newlength\tud@dim@widemargin -\newlength\tud@dim@slimmargin -\newlength\tud@dim@both -\newlength\tud@dim@topmargin -\newlength\tud@dim@barheight -\newlength\tud@dim@headsep -\newlength\tud@dim@footsep -\newlength\tud@dim@logox -\newlength\tud@dim@logoy -\newlength\tud@dim@logowidth -\newlength\tud@dim@line -\newlength\tud@dim@heavyline -\newlength\tud@dim@thinline -\newlength\tud@dim@headdiff -\newlength\tud@dim@headingsvskip -\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} -\newcommand*\tud@head@font@size{} -\newcommand*\tud@geometry@set{% - \ifdim\paperheight<148.1mm\relax% - \setlength\tud@dim@widemargin{15mm}% - \setlength\tud@dim@heavyline{0.5pt}% - \setlength\tud@dim@thinline{0.25pt}% - \def\tud@head@font@size{4.5}% - \else\ifdim\paperheight<297.1mm\relax% - \setlength\tud@dim@widemargin{30mm}% - \setlength\tud@dim@heavyline{1pt}% - \setlength\tud@dim@thinline{0.5pt}% - \def\tud@head@font@size{9}% - \else\ifdim\paperheight<420.1mm\relax% - \setlength\tud@dim@widemargin{42.426407mm}% - \setlength\tud@dim@heavyline{1.414214pt}% - \setlength\tud@dim@thinline{0.707107pt}% - \def\tud@head@font@size{12.727922}% - \else\ifdim\paperheight<594.1mm\relax% - \setlength\tud@dim@widemargin{60mm}% - \setlength\tud@dim@heavyline{2pt}% - \setlength\tud@dim@thinline{1pt}% - \def\tud@head@font@size{18}% - \else\ifdim\paperheight<841.1mm\relax% - \setlength\tud@dim@widemargin{84.852814mm}% - \setlength\tud@dim@heavyline{2.828427pt}% - \setlength\tud@dim@thinline{1.414214pt}% - \def\tud@head@font@size{25.455844}% +%%% From File: tudscr-area.dtx +\newlength\tud@len@widemargin +\newlength\tud@len@slimmargin +\newlength\tud@len@both +\newlength\tud@len@topmargin +\newlength\tud@len@barheight +\newlength\tud@len@headsep +\newlength\tud@len@footsep +\newlength\tud@len@logox +\newlength\tud@len@logoy +\newlength\tud@len@logowidth +\newlength\tud@len@line +\newlength\tud@len@heavyline +\newlength\tud@len@thinline +\newlength\tud@len@areaheadvskip +\newlength\tud@len@areadiff +\newlength\tud@len@areavskip +\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\newif\if@tud@cdgeometry@adjust +\newlength\tud@len@layoutheight +\newlength\tud@len@layoutwidth +\newlength\tud@len@layouthoffset +\newlength\tud@len@layoutvoffset +\newcommand*\tud@cdgeometry@set{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% \else% - \setlength\tud@dim@widemargin{120mm}% - \setlength\tud@dim@heavyline{4pt}% - \setlength\tud@dim@thinline{2pt}% - \def\tud@head@font@size{36}% - \fi\fi\fi\fi\fi% - \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}% - \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}% - \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}% - \setlength\tud@dim@footsep{% - \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% - }% -} -\newcommand*\tud@ifsacrop{% - \ifcsdef{ifsa@crop}{% - \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% + \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \tud@if@v@lower{2.05}{% + \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }{% - \@secondoftwo% + \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% -}{% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% -} -\tud@cmd@store{pagestyle} -\cslet{ps@tudheadings}{\ps@headings}% -\cslet{ps@plain.tudheadings}{\ps@plain}% -\cslet{ps@empty.tudheadings}{\ps@empty}% -\providecommand*\currentpagestyle{plain} -\providecommand*\BeforeSelectAnyPageStyle[1]{} -\providecommand*\GetRealPageStyle[1]{#1} -\BeforePackage{scrlayer-scrpage}{% - \tud@cmd@restore{pagestyle}% - \csundef{ps@tudheadings}% - \csundef{ps@plain.tudheadings}% - \csundef{ps@empty.tudheadings}% - \undef\currentpagestyle% - \undef\BeforeSelectAnyPageStyle% - \undef\GetRealPageStyle% -} -\let\tud@pagestyle\pagestyle -\apptocmd{\tud@pagestyle}{% - \edef\currentpagestyle{#1}% -}{}{\tud@patch@wrn{pagestyle}}% -\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} -\AtEndPreamble{% - \@ifpackageloaded{scrlayer-scrpage}{}{% - \let\pagestyle\tud@pagestyle% - \undef\tud@pagestyle% + \@tud@cdgeometry@adjustfalse% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \ifnum\@tempa>\z@\relax% + \ifnum\@tempa<8\relax% + \def\@tempa{3}% + \fi% + \fi% + \fi% + \ifcase\@tempa\relax% <=A7/B7 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + small paper height. It is recommended to increase\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{0.25pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{4.5pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \or% <=A6/B6 + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@thinline{0.25pt}% + \renewcommand*\tud@head@fontsize{4.5}% + \or% <=A5/B5 + \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted + \@tud@cdgeometry@adjusttrue% + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \else% + \setlength\tud@len@widemargin{21.213203mm}% + \setlength\tud@len@heavyline{0.707107pt}% + \setlength\tud@len@thinline{0.353553pt}% + \renewcommand*\tud@head@fontsize{6.363961}% + \fi% + \or% <=A4/B4 + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \or% <=A3/B3 + \setlength\tud@len@widemargin{42.426407mm}% + \setlength\tud@len@heavyline{1.414214pt}% + \setlength\tud@len@thinline{0.707107pt}% + \renewcommand*\tud@head@fontsize{12.727922}% + \or% <=A2/B2 + \setlength\tud@len@widemargin{60mm}% + \setlength\tud@len@heavyline{2pt}% + \setlength\tud@len@thinline{1pt}% + \renewcommand*\tud@head@fontsize{18}% + \or% <=A1/B1 + \setlength\tud@len@widemargin{84.852814mm}% + \setlength\tud@len@heavyline{2.828427pt}% + \setlength\tud@len@thinline{1.414214pt}% + \renewcommand*\tud@head@fontsize{25.455844}% + \or% <=A0/B0 + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@thinline{2pt}% + \renewcommand*\tud@head@fontsize{36}% + \else% >A0/B0 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + huge paper height. It is recommended to reduce\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{2pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{36pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{\tud@head@fontsize pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \global\@tud@head@font@settrue% + \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% + \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% + \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% + \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% + \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% + \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% + \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% + \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% + \setlength\tud@len@footsep{% + \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% }% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% + \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \fi% } -\AfterPackage{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \tud@mainlogo@set% - \tud@headlogo@option@set% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo@use\hfill\tud@headlogo@use% - },% - ]{tudheadings.head.content}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\tw@\relax% cdhead=color - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color - \color{HKS41!60}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% - \fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% +\newif\if@tud@x@crop@center +\AfterPackage{crop}{% + \CheckCommand*\CROP@center{% + \voffset\stockheight + \advance\voffset-\paperheight + \voffset.5\voffset + \hoffset\stockwidth + \advance\hoffset-\paperwidth + \hoffset.5\hoffset + }% + \pretocmd{\CROP@center}{% + \@tud@x@crop@centertrue% + }{}{\tud@patch@wrn{CROP@center}} +} +\newif\if@tud@x@standalone@crop +\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} +\newcommand*\tud@cdgeometry@process{} +\newcommand*\tud@cdgeometry@@process{} +\if@tud@x@standalone@crop + \PreventPackageFromLoading{geometry}% +\else + \RequirePackage{geometry}[2010/09/12]% +\fi +\AfterPackage*{geometry}{% + \CheckCommand*\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@ + }% + \expandafter\CheckCommand% + \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}% + }% + \CheckCommand*\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% + \CheckCommand\geometry[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process% + }% + \CheckCommand\newgeometry[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}% + }% + \CheckCommand\restoregeometry{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout% + }% + \CheckCommand*\savegeometry[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}% + }% + \CheckCommand*\loadgeometry[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@nameuse{Gm@restore@@#1}% + \Gm@changelayout}% + }% + \tud@cmd@store{geometry} + \tud@cmd@store{newgeometry} + \newif\if@tud@x@geometry@enabled% + \@tud@x@geometry@enabledtrue% + \newcommand*\tud@setgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \ifGm@pass% + \def\@tempb{}% + \else% + \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}% + \ifGm@layout% + \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}% \fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + \if@atdocument% + \edef\@tempa{\@tempb,#1}% + \tud@cmd@store{Gm@restore@org}% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + \def\@tempc{\tud@cmd@use{newgeometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \tud@cmd@restore{Gm@restore@org}% + \else% + \Gm@initnewgm% + \edef\@tempa{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1% + }% + \def\@tempc{\tud@cmd@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \fi% + \@tud@x@geometry@enabledtrue% + }% + \newcommand*\tud@savegeometry[1]{% + \def\Gm@restore{}% + \savegeometry{#1}% + \csepreto{Gm@restore@@#1}{% + \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}% + \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}% + \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% + \ifGm@includemp% + \noexpand\Gm@includemptrue% + \else% + \noexpand\Gm@includempfalse% \fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifGm@layout% + \noexpand\Gm@layouttrue% + \else% + \noexpand\Gm@layoutfalse% \fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - hoffset=0pt,% - width=\paperwidth,% - addvoffset=-\dp\strutbox,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \if@tud@foot@colored% - \let\@tempc\relax% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor - \def\@tempc{\color{HKS41!60}}% - \or% cdhead=color - \def\@tempc{\color{HKS41}}% - \fi% - }{% - \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% + \TUD@parameter@family{geometry}{% + \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}% + \TUD@parameter@let{papername}{paper}% + \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}% + \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}% + \TUD@parameter@def{papersize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{paper}{##1:##1}% + }{% + \tud@area@def{paper}{##1:##2}% }% - \ifx\@tempc\relax\else% - \@tempc\rule{\layerwidth}{\layerheight}% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}% + \TUD@parameter@let{layoutname}{layout}% + \TUD@parameter@def{layoutwidth}{% + \tud@area@def{layout}{#1:\the\tud@len@layoutheight}% + }% + \TUD@parameter@def{layoutheight}{% + \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + }% + \TUD@parameter@def{layoutsize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{layout}{##1:##1}% + }{% + \tud@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% + \TUD@parameter@handler@macro{% + \eappto\tud@x@geometry@parameter{% + \expandonce\kv@key=\expandonce\kv@value,% + }% + }{% + \tud@area@def{paper}{#2}% + }% + } + \newcommand*\tud@area@def[2]{% + \tud@lowerstring{\@tempa}{#2}% + \def\@tempb##1paper##2\@nil{% + \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + }% + \expandafter\@tempb\@tempa paper\@nil% + \@tempswafalse% + \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \if@tempswa\else% + \ifx\@tempa\@empty\relax\else% + \def\@tempb##1##2\@nil{% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \@tempswafalse% + \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \@tempswatrue% + \def\@tempa{##1:##2}% + }% + }% + \expandafter\@tempb\@tempa::\@nil% \fi% - \fi% - },% - ]{tudheadings.foot.back}% - \tud@ifverlower{2.03}{% - \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - contents={% - \if@tud@foot@colored% - \let\@tempc\relax% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor - \def\@tempc{\color{HKS41!60}}% - \or% cdhead=color - \def\@tempc{\color{HKS41}}% + \if@tempswa\else% + \def\tud@reserved##1:##2:##3:##4\@nil{% + \if@tempswa\else% + \ifstr{\@tempa}{##1}{% + \@tempswatrue% + \def\@tempa{##2##4:##3##4}% + }{}% \fi% - }{% - \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \ifx\@tempc\relax\else% - \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% - }% - \else% \tud@ddc@foot!=false - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - \fi% + \tud@reserved b0j:1030:1456:mm\@nil% + \tud@reserved b1j:728:1030:mm\@nil% + \tud@reserved b2j:515:728:mm\@nil% + \tud@reserved b3j:364:515:mm\@nil% + \tud@reserved b4j:257:364:mm\@nil% + \tud@reserved b5j:182:257:mm\@nil% + \tud@reserved b6j:128:182:mm\@nil% + \tud@reserved ansia:8.5:11:in\@nil% + \tud@reserved ansib:11:17:in\@nil% + \tud@reserved ansic:17:22:in\@nil% + \tud@reserved ansid:22:34:in\@nil% + \tud@reserved ansie:34:44:in\@nil% + \tud@reserved screen:225:180:mm\@nil% \fi% - },% - ]{tudheadings.foot.back}% - }{}% - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \tud@footlogoheight@set% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% - \tud@footlogo@option@set% - \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% - \tud@footcontent@use{\@tempdima}{\layerwidth}% - \hspace*{-\layerwidth}% - \tud@footlogo@cmd@use% - \hspace*{-\layerwidth}% - \hfill\tud@footlogo@ddc@use{\@tempdima}% - },% - ]{tudheadings.foot.content}% - \tud@ifverlower{2.03}{% - \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.content}% - }{}% - \DeclareNewLayer[% - background,% - contents=\tud@head@bar@restore,% - ]{tudheadings.last}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% - \listadd\tud@ps@list{tudheadings}% - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \listadd\tud@ps@list{plain.tudheadings}% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last% - }% - \listadd\tud@ps@list{empty.tudheadings}% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \newcommand*\tud@pagecolor{}% - \DeclareNewLayer[% - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor}% - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% -} -\PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% - The package `fancyhdr' must not be used with a\MessageBreak% - TUD-KOMA-Script class. You should make use of the\MessageBreak% - capabilities of package `scrlayer-scrpage' instead% - }% -]{fancyhdr} -\newcommand*\tud@ps@onselect{% - \DeclarePageStyleAlias{plain}{plain.tudheadings}% - \DeclarePageStyleAlias{headings}{tudheadings}% - \def\sls@currentheadings{tudheadings}% - \def\sls@currentplain{plain.tudheadings}% -} -\newcommand*\tud@head@logocolor{black} -\newcommand*\tud@head@fontcolor{} -\newcommand*\tud@foot@logocolor{black} -\newcommand*\tud@foot@fontcolor{} -\newcommand*\tud@ps@onbackground{% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax% cdhead=nocolor - \def\tud@head@logocolor{black}% - \def\tud@head@fontcolor{}% - \def\tud@foot@logocolor{black}% - \def\tud@foot@fontcolor{}% - \or% cdhead=litecolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \or% cdhead=barcolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% \fi% \fi% - }{% - \ifstr{\tud@pagecolor}{HKS41}{% - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \def\tud@foot@logocolor{white}% - \if@tud@foot@colored% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@fontcolor{HKS41!30}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }{% - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \ifcase\tud@head@bar\relax\or\or\or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \fi% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }% - }% - \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% - \global\let\tud@foot@fontcolor\tud@foot@fontcolor% -} -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% - \xdef\@specialstyle{\GetRealPageStyle{#1}} -}{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@head@text{} -\newcommand*\tud@head@text@first{} -\newcommand*\tud@head@text@second{} -\newcommand*\tud@head@text@delimiter{} -\newcommand*\tud@head@text@buffer{} -\newcommand*\tud@head@rule[1]{% - \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@dim@line}% -} -\newcommand*\tud@head@text@add[3][, ]{% - \protected@edef\tud@head@text{#3}% - \ifx\tud@head@text\@empty% - \def\tud@head@text@delimiter{}% - \else% - \edef\tud@head@text@delimiter{\tud@head@text@buffer}% - \def\tud@head@text@buffer{#1}% - \fi% - \if@tempswa\else% - \def\@tempa{% - \tud@head@text@first% - \tud@head@text@delimiter% - #2% - \tud@head@text% - }% - \settowidth\@tempdima{\@tempa}% - \ifdim\@tempdima>\textwidth\relax% - \@tempswatrue% - \def\tud@head@text@delimiter{}% + \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% - \protected@edef\tud@head@text@first{\@tempa}% + \appto\tud@x@geometry@parameter{#2,}% \fi% - \fi% - \if@tempswa% - \protected@edef\tud@head@text@second{% - \tud@head@text@second% - \tud@head@text@delimiter% - #2% - \tud@head@text% + } + \newcommand*\tud@area@set[1]{% + \letcs{\@tempa}{tud@x@geometry@#1}% + \ifdefvoid{\@tempa}{}{% + \def\@tempb##1:##2:##3\@nil{% + \tud@cmd@store{@tempa}% + \tud@cmd@store{@tempb}% + \tud@cmd@store{@tempc}% + \IfArgIsEmpty{##2}{% + \KOMAoption{paper}{##1}% + }{% + \if@landscape% + \KOMAoption{paper}{##2:##1}% + \else% + \KOMAoption{paper}{##1:##2}% + \fi% + }% + \tud@cmd@restore{@tempa}% + \tud@cmd@restore{@tempb}% + \tud@cmd@restore{@tempc}% + }% + \def\@tempc##1{\@tempb##1::\@nil}% + \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}% }% - \fi% -} -\newcommand*\tud@head@text@box{% - \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% - \faculty{}% - \fi% - \tud@head@font@set% - \@tempswafalse% - \def\tud@head@text@first{}% - \def\tud@head@text@second{}% - \def\tud@head@text@buffer{}% - \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% - \tud@head@text@add{\tud@head@font@light}{\@department}% - \tud@head@text@add{\tud@head@font@light}{\@institute}% - \tud@head@text@add{\tud@head@font@light}{\@chair}% - \settowidth\@tempdima{\tud@head@text@second}% - \ifdim\@tempdima>\textwidth\relax% - \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% - \hfuzz=\@tempdima% - \fi% - \vbox{% - \linespread{0}\selectfont\offinterlineskip% - \tud@color{\tud@head@fontcolor}% - \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color - \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + } + \newcommand*\tud@x@geometry@init{} + \newcommand*\tud@x@geometry@paper{} + \newcommand*\tud@x@geometry@layout{} + \newcommand*\tud@x@geometry@parameter{} + \newcommand*\tud@geometry[2]{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% + \else% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \let\tud@x@geometry@paper\@empty% + \let\tud@x@geometry@layout\@empty% + \let\tud@x@geometry@parameter\@empty% + \TUD@parameter@set{geometry}{#1}% + \tud@area@set{paper}% + \ifstr{#2}{newgeometry}{% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% }% + }{% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + }% + }% + \ifx\tud@x@geometry@layout\@empty\else% + \begingroup% + \setlength\paperwidth{\Gm@layoutwidth}% + \setlength\paperheight{\Gm@layoutheight}% + \tud@area@set{layout}% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% + }% + }% + \tud@reserved% \fi% - \ifx\tud@head@text@second\@empty% - \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% + \def\@tempa{\tud@cmd@use{#2}}% + \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}% + \ifstr{#2}{geometry}{% + \ifbool{@tud@x@geometry@enabled}{% + \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}% + }{}% + }{}% + } + \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}} + \renewcommand*\newgeometry[1]{% + \tud@cmd@store{Gm@restore@org}% + \tud@geometry{#1}{newgeometry}% + \tud@cmd@restore{Gm@restore@org}% + } + \apptocmd{\Gm@changelayout}{% + \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{% + \tud@cdgeometry@process% + }{}% + }{}{\tud@patch@wrn{Gm@changelayout}}% + \renewcommand*\restoregeometry[1][]{% + \IfArgIsEmpty{#1}{}{% + \tud@cmd@store{TUD@SpecialOptionAtDocument}% + \let\TUD@SpecialOptionAtDocument\@gobble% + \TUDoption{cdgeometry}{#1}% + \tud@cmd@restore{TUD@SpecialOptionAtDocument}% + }% + \ifnum\tud@cdgeometry@num=\@ne\relax + \tud@loadgeometry{init@custom}% \else% - \newline\tud@head@text@write{\tud@head@text@second}% - \ifx\@extraheadline\@empty\else% - \newline\vbox{\tud@head@font@light\@extraheadline}% - \fi% + \tud@loadgeometry{init@typearea}% \fi% + \tud@AfterChangingArea% }% -} -\newcommand*\tud@head@text@write[1]{% - \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% - \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% -} -\newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\TUDClassName}{% - The given entries for the headline\MessageBreak% - (faculty, institute etc.) are #1\MessageBreak% - too wide for the textwidth% + \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% }% - \global\let\tud@head@text@wrn\@gobble% -} -\newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@savelayerbox[1]{% - \global\expandafter\sbox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@uselayerbox[1]{% - \expandafter\usebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@vlayerbox[3]{% - \begingroup% - \setbox\z@\vbox{#2}% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% - \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUDClassName}{% - #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima% - }% - \fi% - \endgroup% - \vbox to #1{#2}% -} -\tud@newlayerbox{main@black} -\tud@newlayerbox{main@HKS41} -\tud@newlayerbox{main@white} -\newlength\tud@mainlogoheight -\newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set -\newcommand*\tud@mainlogo@set{% - \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% - \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% - \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% - \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% - \global\tud@mainlogoheight=\tud@mainlogoheight% - \gdef\tud@mainlogo@wrn##1{% - \ifdim##1<\ta@bcor\relax% - \ClassWarning{\TUDClassName}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% + \renewcommand*\tud@cdgeometry@@process{% + \csuse{@ta@usegeometryfalse}% + \tud@cdgeometry@set% + \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \ifcase\tud@cdgeometry@num\relax% + \ifGm@layout% + \tud@skip@store{paperheight}% + \tud@skip@store{paperwidth}% + \setlength\paperheight{\tud@len@layoutheight}% + \setlength\paperwidth{\tud@len@layoutwidth}% + \fi% + \tud@cmd@store{activateareas}% + \tud@cmd@store{tud@AfterChangingArea}% + \let\activateareas\relax% + \let\tud@AfterChangingArea\relax% + \recalctypearea% + \ifGm@layout% + \tud@skip@restore{paperheight}% + \tud@skip@restore{paperwidth}% + \fi% + \tud@cmd@restore{activateareas}% + \tud@cmd@restore{tud@AfterChangingArea}% + \edef\tud@cdgeometry@hmargin{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% }% - \global\let\tud@mainlogo@wrn\@gobble% - \fi% - }% - \tud@headlogo@set% - \tud@footlogo@set% - \global\@tud@mainlogo@setfalse% - \fi% -} -\newcommand*\tud@mainlogo@use{% - \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% - }% - \tud@uselayerbox{main@\tud@head@logocolor}% -} -\tud@newlayerbox{head@black} -\tud@newlayerbox{head@HKS41} -\tud@newlayerbox{head@white} -\tud@newlayerbox{head@option} -\newcommand*\@headlogo{} -\newcommand*\@@headlogo{} -\newcommand*\tud@headlogo@wrn{} -\newcommand*\headlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@headlogo{#2}% - \def\@@headlogo{#1}% - \global\@tud@headlogo@option@settrue% - \global\@tud@footlogo@option@settrue% - \gdef\tud@headlogo@wrn{% - \ClassWarning{\TUDClassName}{% - The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% - }% - \global\let\tud@headlogo@wrn\relax% - }% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@headlogo@set{% - \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% - }% - \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% - \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% - \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% - \tud@headlogo@option@set% -} -\newcommand*\tud@headlogo@option@set{% - \if@tud@headlogo@option@set% - \def\@tempc##1##2{% - \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@mainlogoheight,##2% - ]{\trim@spaces{##1}}% - }% - }% - \tud@savelayerbox{head@option}{}% - \tud@ddc@check% - \ifcase\@tempa\relax% \tud@ddc@head=false - \ifdefvoid{\@headlogo}{}{% - \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% - \@tempb% - }% - \or\or% \tud@ddc@head=color - \@tempc{DDC-03}{}% - \or% \tud@ddc@head=colorblack - \@tempc{DDC-09}{}% - \or% \tud@ddc@head=gray - \@tempc{DDC-21}{}% - \or% \tud@ddc@head=black - \@tempc{DDC-24}{}% - \or% \tud@ddc@head=blue - \@tempc{DDC-27}{}% - \or% \tud@ddc@head=white - \@tempc{DDC-30}{}% - \fi% - \global\@tud@headlogo@option@setfalse% - \fi% -} -\newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@mainlogoheight}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true - \tud@uselayerbox{head@\tud@head@logocolor}% - \else% - \tud@uselayerbox{head@option}% - \fi% - }% - \vss% - }{% - The given `\string\headlogo{\@headlogo}' is too large.% - } - \ifdefvoid{\@headlogo}{}{% - \tud@ddc@check% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - }% -} -\tud@newlayerbox{foot@black} -\tud@newlayerbox{foot@HKS41} -\tud@newlayerbox{foot@white} -\tud@newlayerbox{foot@option} -\newlength\footlogoheight -\newlength\tud@footlogoheight -\newcommand*\tud@footlogoheight@set{% - \ifdim\footlogoheight=\z@\relax% - \tud@ifverlower{2.03}{% - \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% - }{% - \setlength\tud@footlogoheight{\tud@mainlogoheight}% - }% - \else% - \ifdim\footlogoheight=\tud@footlogoheight\relax\else% - \setlength\tud@footlogoheight{\footlogoheight}% - \global\@tud@footlogo@option@settrue% - \fi% - \fi% - \global\tud@footlogoheight=\tud@footlogoheight% -} -\newcommand*\tud@footlogo@ddc@set[2]{% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% - }% -} -\newcommand*\tud@footlogo@set{% - \tud@footlogo@ddc@set{black}{DDC-22}% - \tud@footlogo@ddc@set{HKS41}{DDC-25}% - \tud@footlogo@ddc@set{white}{DDC-28}% - \tud@footlogo@option@set% -} -\newcommand*\tud@footlogo@option@set{% - \if@tud@footlogo@option@set% - \tud@ddc@check% - \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color - \tud@footlogo@ddc@set{option}{DDC-01}% - \or% \tud@ddc@foot=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% - \or% \tud@ddc@foot=gray - \tud@footlogo@ddc@set{option}{DDC-19}% - \or% \tud@ddc@foot=black - \tud@footlogo@ddc@set{option}{DDC-22}% - \or% \tud@ddc@foot=blue - \tud@footlogo@ddc@set{option}{DDC-25}% - \or% \tud@ddc@foot=white - \tud@footlogo@ddc@set{option}{DDC-28}% - \fi% - \global\@tud@footlogo@option@setfalse% - \fi% -} -\newcommand*\tud@footlogo@ddc@use[1]{% - \tud@vlayerbox{#1}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% \tud@ddc@foot=true - \tud@uselayerbox{foot@\tud@foot@logocolor}% - \else% - \tud@uselayerbox{foot@option}% - \fi% - }% - \vss\vss% - }{% - The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% - high. You should reduce this length.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% - }% -} -\tud@newlayerbox{foot@cmd} -\newcommand*\footlogosep{\hfill} -\newcommand*\@footlogo{} -\newcommand*\@@footlogo{} -\newcommand*\footlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@footlogo{#2}% - \def\@@footlogo{#1}% - \global\@tud@footlogo@cmd@settrue% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newif\if@tud@footlogo@cmd@set -\newcommand*\tud@footlogo@cmd@set[2]{% - \if@tud@footlogo@cmd@set% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@cmd}{% - \hbox to #2{% - \let\@tempa\relax% - \@for\@tempb:=\@footlogo\do{% - \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \edef\tud@cdgeometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% \fi% - \let\@tempa\footlogosep% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \tud@cdgeometry@fincl,% + footskip=\the\footskip% }% - \hss% + \else% custom + \ifGm@pass\else% + \edef\tud@cdgeometry@hmargin{% + left=\Gm@lmargin,% + right=\Gm@rmargin,% + \ifGm@includemp% + includemp=true,% + \else% + includemp=false,% + \fi% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\Gm@bindingoffset% + }% + \edef\tud@cdgeometry@vmargin{% + \ifGm@includehead% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \ifGm@includefoot% + includefoot=true,% + \else% + includefoot=false,% + \fi% + footskip=\the\footskip% + }% + \fi% + \fi% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\topmargin-\headheight-\headsep-1in\relax% }% - }% - \global\@tud@footlogo@cmd@setfalse% - \fi% -} -\newcommand*\tud@footlogo@cmd@@set[2]{% - \begingroup% - \def\@tempa{}% - \def\@tempb{}% - \@tempswatrue% - \def\do##1{% - \if@tempswa% - \def\@tempa{##1}% - \@tempswafalse% + \ifdim\tud@len@areadiff<\z@\relax% + \addtolength\tud@len@headsep{-\tud@len@areadiff}% + \setlength\@tempdima{\z@}% \else% - \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \setlength\@tempdima{\tud@len@areadiff}% \fi% - }% - \let\@tempc\relax% - \DeclareListParser{\@tempc}{:}% - \@tempc{#1}% - \preto\@@footlogo{% - keepaspectratio,totalheight=\tud@footlogoheight,% - }% - \appto\@@footlogo{\@tempb}% - \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% - \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% - The given `\string\footlogo{\@tempa}' is too large.% - }% - \endgroup% -} -\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% -\newkomafont{tudheadings}{% - \sffamily% - \tud@color{\tud@foot@fontcolor}% -} -\newcommand*\tud@footcontent@font{} -\newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{} -\newcommand*\footcontent{% - \@ifstar{% - \@tempswafalse% - \@footcontent% - }{% - \@tempswatrue% - \@footcontent% - }% -} -\newcommand*\@footcontent[2][]{% - \kernel@ifnextchar[%] - {\@@footcontent{#1}{#2}}% - {\@@footcontent{#1}{#2}[\@nnil]}% -} -\newcommand*\@@footcontent{} -\def\@@footcontent#1#2[#3]{% - \if@tempswa% - \def\tud@footcontent@font{% - \usekomafont{tudheadings}% - \tud@divide\@tempa{\tud@head@font@size}{\f@size}% - \linespread{\@tempa}% - \selectfont% - \tud@head@font@light% - #1% - }% - \else% - \def\tud@footcontent@font{#1}% - \fi% - \def\tud@footcontent@left{#2}% - \def\tud@footcontent@right{#3}% -} -\newcommand*\tud@footcontent@use[2]{% - \tud@ddc@check% - \ifcase\@tempb% - \setlength\@tempdimc{\z@}% - \else% - \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% - \fi% - \tud@vlayerbox{#1}{% - \vss% - \hbox to #2{% - \tud@footcontent@font% - \expandafter\ifx\tud@footcontent@right\@nnil\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep,% + textheight=\the\dimexpr\textheight-\@tempdima\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@ddcdiff{% + \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% + +\footheight-1.25\baselineskip\relax% }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% + \edef\tud@cdgeometry@ddcmargin{% + textheight=\the\dimexpr\textheight-\tud@len@areadiff% + -\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% + }{}% + \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea or custom layout is used\MessageBreak% + (`cdgeometry=false/custom')% }% \fi% - \hss% - }% - \vss\vss% - }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content or\MessageBreak% - lower the fontsize via the optional argument.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% - }% -} -\AtEndPreamble{% - \@ifpackageloaded{geometry}{}{% - \def\tud@geometry@process{\tud@geometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{geometry}% -}{% - \RequirePackage{geometry}[2010/09/12]% - \newcommand*\tud@geometry@hmargin{}% - \newcommand*\tud@geometry@vmargin{}% - \newcommand*\tud@geometry@tudmargin{}% - \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% - \newcommand*\tud@newgeometry[1]{% - \if@atdocument% - \edef\@tempa{#1}% - \expandafter\newgeometry\expandafter{#1}% - \else% - \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% - \expandafter\geometry\expandafter{\@tempa}% - \fi% - }% - \newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% false - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \setlength\@tempdima{\tud@len@widemargin}% + \if@reversemargin% + \setlength\@tempdimc{\tud@len@widemargin}% + \else% + \setlength\@tempdimc{\tud@len@slimmargin}% + \fi% + \or% symmetric + \setlength\@tempdima{.5\tud@len@both}% + \setlength\@tempdimc{.5\tud@len@both}% + \or% twoside + \if@twoside% + \setlength\@tempdima{.4\tud@len@both}% + \else% + \setlength\@tempdima{.5\tud@len@both}% + \fi% + \setlength\@tempdimc{.5\tud@len@both}% + \if@twoside% + \if@reversemargin% + \setlength\@tempdimc{.4\tud@len@both}% + \else% + \setlength\@tempdimc{.6\tud@len@both}% + \fi% + \fi% + \fi% + \addtolength\@tempdimc{-\headsep}% + \setlength\@tempdimb{% + \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \if@mincl% + \addtolength\@tempdimb{-\@tempdimc}% \fi% - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% + \edef\tud@cdgeometry@hmargin{% + left=\the\@tempdima,% + textwidth=\the\@tempdimb,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\@tempdimc,% + marginparsep=\the\dimexpr.5\headsep\relax,% \if@reversemargin% reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr\oddsidemargin+1in% - -\tud@ta@headsep\relax,% - \fi% \else% reversemarginpar=false,% \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + bindingoffset=\the\ta@bcor% }% - \edef\tud@geometry@vmargin{% - \if@hincl% - includehead=true,% - top=\the\dimexpr\tud@ta@topmargin+1in\relax,% - \else% - includehead=false,% - top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% + \if@twoside% + \ifcase\tud@cdgeometry@num\relax\or\or% true + \appto\tud@cdgeometry@hmargin{,asymmetric}% + \else% symmetric/twoside + \appto\tud@cdgeometry@hmargin{,twoside}% \fi% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - textheight=\the\tud@ta@textheight,% - \tud@geometry@fincl,% - footskip=\the\tud@ta@footskip% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \setlength\@tempdima{\z@}% - \else% - \setlength\@tempdima{\tud@ta@headdiff}% \fi% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,% - ignorehead% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@if@v@lower{2.03}{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\dimexpr.5\tud@len@both\relax,% + headheight=\the\headheight,% + headsep=\the\tud@len@headsep,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% }% - \edef\tud@geometry@ddcmargin{% - textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\TUDClassName}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% - \else% true/symmetric/twoside - \ifcase\tud@geometry\or% true - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\tud@dim@widemargin,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside asymmetric,\fi% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - marginparwidth=\the\dimexpr\tud@dim@widemargin% - -\tud@ta@headsep\relax,% - \else% - reversemarginpar=false,% - marginparwidth=\the\dimexpr\tud@dim@slimmargin% - -\tud@ta@headsep\relax,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% symmetric - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr.5\tud@dim@both\relax,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% twoside - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - \if@twoside% - left=\the\dimexpr.4\tud@dim@both\relax,% - twoside,% - \else% - left=\the\dimexpr.5\tud@dim@both\relax,% - \fi% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr.4\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \if@twoside% - marginparwidth=\the\dimexpr.6\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \fi% - \tud@ifverlower{2.03}{% - \edef\tud@geometry@vmargin{% - top=\the\dimexpr.5\tud@dim@both\relax,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }{% - \edef\tud@geometry@vmargin{% - top=\the\tud@dim@slimmargin,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% + }{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\tud@len@slimmargin,% + headheight=\the\headheight,% + headsep=\the\headsep,% + bottom=\the\dimexpr\tud@len@widemargin% + +\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% }% }% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - ignorehead% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep% }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\tud@len@slimmargin\relax% }% - \tud@ifverlower{2.03}{% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -.5\tud@len@both\relax% }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \edef\tud@geometry@ddcmargin{% + \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \edef\tud@cdgeometry@ddcmargin{% \if@fincl% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff+\tud@len@headsep+\footheight% -1.25\baselineskip\relax,% \else% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff\relax,% \fi% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip+\tud@len@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \tud@ifverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% + \global\tud@len@areadiff=\tud@len@areadiff% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% + \else% + \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \fi% + \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \tud@if@v@lower{2.03}{% + \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi% + \global\tud@len@ddcdiff=\tud@len@ddcdiff% }{}% - \tud@geometry@@process% + \tud@cdgeometry@@@process% }% - \newcommand*\tud@geometry@@process{% - \edef\Gm@restore@org{\Gm@restore}% - \tud@ifverlower{2.03}{% + \newcommand*\tud@cdgeometry@@@process{% + \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% + \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% + \tud@if@v@lower{2.03}{% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin,% + \tud@cdgeometry@ddcmargin,% ignorehead,ignorefoot% }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudareaddc}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudareaddc}% }{}% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin% }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudarea}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudarea}% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin% }% - \tud@newgeometry{\@tempa}% - \savegeometry{typearea}% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{stdarea}% + \if@atdocument% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% + }% + \fi% }% - \newcommand*\tud@geometry@hincl{% + \newcommand*\tud@cdgeometry@hincl{% \if@hincl% includehead=true% \else% includehead=false% \fi% }% - \newcommand*\tud@geometry@fincl{% + \newcommand*\tud@cdgeometry@fincl{% \if@fincl% includefoot=true% \else% includefoot=false% \fi% }% - \newcommand*\tud@geometry@mpincl{% + \newcommand*\tud@cdgeometry@mpincl{% \if@mincl% includemp=true% \else% @@ -3434,48 +3597,163 @@ \newcommand*\tud@currentgeometry{} \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% \ifstr{#1}{\GetRealPageStyle{#1}}{% - \tud@iftudps{#1}{% - \tud@ifverlower{2.03}{% + \tud@if@tudheadings{#1}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifcase\@tempb\relax% \tud@ddc@foot@num=false \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% + \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% - \else% \tud@ddc@foot!=false + \else% \tud@ddc@foot@num!=false \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% + \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% + \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@dim@headdiff{\z@}% + \setlength\tud@len@areavskip{\z@}% \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@loadgeometry{stdarea}% + \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \setlength\tud@len@areavskip{\tud@len@areadiff}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + \addtolength\tud@len@areavskip{% + \dimexpr-\headheight-\tud@len@headsep\relax% }% \fi% \fi% \tud@font@koma@unset{pagefoot}% \tud@font@koma@unset{pagenumber}% }% - \global\tud@dim@headdiff=\tud@dim@headdiff% + \global\tud@len@areavskip=\tud@len@areavskip% }{}% } +\newcommand*\tud@AfterChangingArea{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\newcommand*\tud@cdgeometry@init{% + \AtEndPreamble{% + \if@tud@x@standalone@crop% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% + \let\tud@AfterChangingArea\relax% + \let\tud@cdgeometry@process\relax% + \else% + \csuse{@ta@usegeometryfalse}% + \def\tud@reserved##1{% + \tud@setgeometry{% + \tud@cdgeometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor,% + \tud@cdgeometry@hincl,% + \tud@cdgeometry@fincl,% + \tud@x@geometry@init,% + driver=none% + }% + \addtolength\oddsidemargin{-\Gm@layouthoffset}% + \addtolength\evensidemargin{-\Gm@layouthoffset}% + \addtolength\topmargin{-\Gm@layoutvoffset}% + \tud@savegeometry{init@##1}% + }% + \begingroup% + \let\scr@grouplevel@test\@gobble% + \setlength\paperheight{\Gm@layoutheight}% + \setlength\paperwidth{\Gm@layoutwidth}% + \let\activateareas\relax% + \tud@x@ta@warnings@off% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}% + \def\@tempb{{0}}% + \ifx\@tempa\@tempb\relax% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}% + \@for\@tempb:=\@tempa\do{% + \@tempswatrue% + \ifx\@tempb\defaultpapersize\relax% + \@tempswafalse% + \fi% + }% + \if@tempswa% + \KOMAoptions{DIV=11}% + \fi% + \fi% + \recalctypearea% + \tud@x@ta@warnings@on% + \edef\tud@x@geometry@init{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + bindingoffset=\the\ta@bcor,% + \if@hincl% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + footskip=\the\footskip% + }% + \tud@reserved{typearea}% + \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea% + \endgroup% + \tud@reserved{custom}% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \ifundef{\AfterRestoreareas}{}{% + \AfterRestoreareas{\tud@AfterChangingArea}% + }% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% + \tud@cdgeometry@process% + \fi + \let\tud@cdgeometry@init\relax% + }% +} +\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\TUD@UnwindPackage{geometry}{% + \newif\ifGm@layout% + \newif\ifGm@showcrop% + \newif\ifGm@pass% + \let\Gm@layoutheight\paperheight% + \let\Gm@layoutwidth\paperwidth% + \let\Gm@layouthoffset\z@% + \let\Gm@layoutvoffset\z@% + \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \providecommand*\tud@setgeometry[1]{}% + \providecommand*\tud@savegeometry[1]{}% +} \patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} @@ -3485,1118 +3763,1843 @@ \patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\tud@ifverlower{2.03}{% +\tud@if@v@lower{2.03}{% \newcommand*\tud@ddc@enlargepage[1][]{% - \tud@iftudps{#1}{% + \tud@if@tudheadings{#1}{% \ifstr{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \enlargethispage{-\tud@dim@ddcdiff}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \enlargethispage{-\tud@len@ddcdiff}% \fi% }% }{}% }% }{} -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@AfterChangingArea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% - }{% - \setlength\tud@ta@footheight{\ta@fh}% - }% - \setlength\tud@ta@footskip{\footskip}% - \tud@geometry@process% - \global\@tud@mainlogo@settrue% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% -} -\AtEndPreamble{% - \tud@ifsacrop{}{% - \AfterCalculatingTypearea{\tud@AfterChangingArea}% - \AfterSettingArea{\tud@AfterChangingArea}% - \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% - \recalctypearea% - }% -} -\newcommand*\tud@ps{tudheadings} -\newcommand*\tud@ps@select{% - \expandafter\pagestyle\expandafter{\tud@ps}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% - \renewcommand*\titlepagestyle{empty}% - \renewcommand*\partpagestyle{empty}% - \renewcommand*\chapterpagestyle{empty}% - \renewcommand*\indexpagestyle{empty}% - }{}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% - \renewcommand*\titlepagestyle{empty.tudheadings}% - \renewcommand*\partpagestyle{empty.tudheadings}% - \renewcommand*\chapterpagestyle{empty.tudheadings}% - \renewcommand*\indexpagestyle{empty.tudheadings}% +%%% From File: tudscr-pagestyle.dtx +\if@tud@x@standalone@crop + \PreventPackageFromLoading{scrlayer-scrpage}% +\else + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\fi +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% + contents={% + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\layerheight}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.upline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowline}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.uplinewide}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowlinewide}% + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% + \DeclareNewLayer[% + background,foot,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% + addvoffset=-\dp\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + }% + }% + \else% \tud@ddc@foot@num!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% }{}% -} -\newcommand*\tud@currentpagestyle{} -\newcommand*\tud@currentpagestyle@set{% - \ifdefvoid{\tud@currentpagestyle}{% - \xdef\tud@currentpagestyle{\currentpagestyle}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% }{}% -} -\newcommand*\tud@currentpagestyle@reset{% - \ifdefvoid{\tud@currentpagestyle}{}{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% - }% -} -\NewEnviron{tudpage}[1][]{% - \tud@currentpagestyle@set% - \clearpage% - \def\tud@ps{tudheadings}% - \TUD@parameter@set{tudpage}{#1}% - \tud@ps@select% - \tud@multicols@check% - \ifnum\tud@multicols>\@ne\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \fi% -}[% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% -] -\newcommand*\TUD@parameter@define@ps[1]{% - \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% - \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% - \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% - \TUD@parameter@define{headlogo}{\headlogo{#1}}% - \TUD@parameter@define{footlogo}{\footlogo{#1}}% - \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% - \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% - \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% - \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% - \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% - \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% - \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% - \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% - \TUD@parameter@let{logo}{headlogo}% -} -\TUD@parameter{tudpage}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{% - \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% - headings, plain, empty or any tudheadings page style type% - }% - }}}% - }% + \DeclareNewLayer[% + background,% + contents=\tud@head@bar@restore,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% }% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% -} -%%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{} -\newcommand*\tud@chapter@fontcolor{} -\newkomafont{parttitle}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% + }% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \DeclareNewLayer[% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } -\newlength\pageheadingsvskip -\newlength\headingsvskip -\newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}} -\newcommand*\tud@headmidvskip@neg{% - \setbox\z@\vbox{\tud@headmidvskip}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} +\PreventPackageFromLoading[% + \ClassWarning{\TUD@Class@Name}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} +\newcommand*\tud@ps@onselect{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% } -\newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% false - \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% !false - \bool@std@lock{@tud@cover@cdgeometry}{true}% +\newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} +\newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} +\newcommand*\tud@ps@onbackground{% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% + \or% cdhead=litecolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \or% cdhead=barcolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% + \if@tud@foot@colored% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% + }% + \fi% + \else% cdhead=*color + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% + \fi% + \fi% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \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@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% +} +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + \tud@cdgeometry@init% +} +\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% + \xdef\@specialstyle{\GetRealPageStyle{#1}}% +}{}{\tud@patch@wrn{thispagestyle}} +\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% - \ifcase\tud@layout@title\relax% false - \tud@cmd@restore{maketitle}% - \tud@cmd@restore{@maketitle}% - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% - \else% !false - \tud@cmd@store{maketitle}% - \tud@cmd@store{@maketitle}% - \tud@cmd@store{titlepagestyle}% - \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% - \tud@font@koma@set{title}{% - \usekomafont{disposition}% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@title@fontcolor}% + \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}% }% - \tud@font@koma@set{subtitle}{% - \tud@font@heading% - \usesizeofkomafont{section}% - \tud@color{\tud@title@fontcolor}% + \ifcase\tud@head@font@num\relax\else% true/heavy + \if@tud@univers% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@univers}{b}{n}% + }% + \fi% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} +\newcommand*\tud@head@text@line{} +\newcommand*\tud@head@text@list{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% + \edef\@tempa{% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% }% - \tud@font@koma@set{subject}{% - \fontfamily{\sfdefault}% - \fontseries{\bfdefault}% - \selectfont% - \tud@color{\tud@title@fontcolor}% + \settowidth\@tempdima{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% + \else% + \edef\tud@head@text@line{\expandonce\@tempa}% + \fi% + }% +} +\newif\if@tud@head@text@set +\newcommand*\tud@head@text@wrn[1]{} +\newcommand*\tud@head@text@set{% + \if@tud@head@text@set% + \def\tud@head@text@line{}% + \def\tud@head@text@list{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% + }% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% + }% }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \let\maketitle\tud@maketitle% - \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% false - \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadendvskip}% - \tud@cmd@restore{partheademptypage}% - \tud@cmd@restore{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@startpart}% - \tud@cmd@restore{scr@@startspart}% - }{% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% +} +\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{% + \settowidth\@tempdima{##1}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + }% + \fi% + }% + \vbox{% + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% + }% + \global\let\tud@head@text@wrn\@gobble% +} +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% +} +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% +} +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima\MessageBreak% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +\AtBeginDocument{% + \tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% }% - \tud@sectioning@reset[addpart]{part}% - \tud@font@koma@unset{partnumber}% - \else% !false - \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadendvskip}% - \tud@cmd@store{partheademptypage}% - \tud@cmd@store{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - \tud@cmd@store{scr@@startspart}% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% + }{}% +} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% }{% - \tud@cmd@store{@part}% - \tud@cmd@store{@spart}% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% + }% + \fi% + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@len@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUD@Class@Name}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% + \tud@headlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% + \global\@tud@mainlogo@setfalse% + \fi% +} +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + }% + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} +\newcommand*\tud@headlogo@wrn{} +\newcommand*\headlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% }% - \if@tud@parttitle% - \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% - \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \else% - \tud@sectioning@set[addpart]{part}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% }% - \tud@font@koma@set{partnumber}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% + }% + \@tempb% }% + \or\or% \tud@ddc@head@num=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head@num=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head@num=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head@num=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head@num=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head@num=white + \@tempc{DDC-30}{}% \fi% - \let\partheadstartvskip\tud@partheadstartvskip% - \let\partheadendvskip\tud@partheadendvskip% - \let\partheademptypage\relax% - \renewcommand*\partpagestyle{plain.tudheadings}% - \ifcsdef{scr@v@3.18}{% - \let\scr@@startpart\tud@@startpart% - \let\scr@@startspart\tud@@startspart% - }{% - \let\@part\tud@@part% - \let\@spart\tud@@spart% - }% + \global\@tud@headlogo@option@setfalse% \fi% - \ifcase\tud@layout@chapter\relax% false - \tud@cmd@restore{chapterheadstartvskip}% - \tud@cmd@restore{chapterformat}% - \tud@cmd@restore{@chapter}% - \tud@cmd@restore{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@makechapterhead}% - }{% - \tud@cmd@restore{@@makechapterhead}% - }% - \tud@sectioning@reset[addchap]{chapter}% - \tud@font@koma@unset{chapterprefix}% - \tud@sectioning@reset[addsec]{section}% - \tud@sectioning@reset{subsection}% - \tud@sectioning@reset{subsubsection}% - \tud@sectioning@reset{minisec}% - \else% !false - \tud@cmd@store{chapterheadstartvskip}% - \tud@cmd@store{chapterformat}% - \tud@cmd@store{@chapter}% - \tud@cmd@store{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@makechapterhead}% - }{% - \tud@cmd@store{@@makechapterhead}% - }% - \tud@sectioning@set[addchap]{chapter}{% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@chapter@fontcolor}% +} +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% }% - \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% - \tud@sectioning@set[addsec]{section}{\tud@font@heading}% - \tud@sectioning@set{subsection}{\tud@font@heading}% - \tud@sectioning@set{subsubsection}{\tud@font@heading}% - \tud@sectioning@set{minisec}{\tud@font@heading}% - \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \ifcsdef{scr@v@3.18}{% - \let\scr@@makechapterhead\tud@@@makechapterhead% + \vss% + }{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% }{% - \let\@@makechapterhead\tud@@@makechapterhead% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% }% + }{}% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot@num=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot@num=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot@num=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot@num=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot@num=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% \fi% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% - \edef\@tempa{% - \noexpand\tud@color{% - \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + You should reduce `footlogoheight', because it is\MessageBreak + too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - }\@tempa% - }% - \tud@cmd@store{footnoterule}% - \let\footnoterule\relax% + }% + \usebox\z@\hspace*{-\wd\z@}% + \fi% } -\newcommand*\tud@layout@specialpage@unset{% - \tud@font@koma@unset{footnote}% - \tud@cmd@restore{footnoterule}% +\tud@newlayerbox{foot@cmd} +\newcommand*\footlogosep{\hfill} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} +\newcommand*\footlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@comp@resetpagestyle% } -\newcommand*\tud@partheadstartvskip{% - \def\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part\relax\or\or% litecolor - \def\tud@part@fontcolor{HKS41}% - \or% barcolor - \def\tud@part@fontcolor{HKS41}% - \or% bicolor - \def\tud@part@fontcolor{HKS41}% - \or% color - \def\tud@part@fontcolor{HKS41!30}% - \or% full - \def\tud@part@fontcolor{HKS41!30}% +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\tud@footlogo@filenames\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% \fi% - \tud@layout@specialpage@set{part}% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \def\@tempa{}% + \def\@tempb{}% + \@tempswatrue% + \def\do##1{% + \if@tempswa% + \def\@tempa{##1}% + \@tempswafalse% + \else% + \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \fi% + }% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% + }% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% + }% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% - \vspace*{\pageheadingsvskip}% - \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \if@tud@parttitle% - \begingroup% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@part@fontcolor}% - \ifx\@@title\@empty% - \ClassWarning{\TUDClassName}{% - You activated the option `parttitle' but\MessageBreak% - no title was given% - }% - \tud@makeuppercase{\strut}% - \else% - \tud@makeuppercase{\@@title}% - \fi% - \par\nobreak% - {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% - \endgroup% - \else% - \usekomafont{partnumber}{\tud@headmidvskip@neg}% - \fi% \endgroup% } -\newcommand*\tud@partheadendvskip{% - \tud@cleardoublespecialpage{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@part\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% - \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% - }% - \tud@layout@specialpage@unset% +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% } -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% -\if@tempswa - \newcommand*\tud@@startpart{}% - \let\tud@@startpart\scr@@startpart% - \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% - \if@tempswa% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip% - \fi% - }% - }{}{\tud@patch@wrn{scr@startpart}}% +\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} +\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\footcontent{% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% + }{% + \renewcommand*\tud@footcontent@fontface{% + \usekomafont{tudheadings}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% + \selectfont% + }% + \tud@footcontent@do% + }% +} +\newcommand*\tud@footcontent@do[2][]{% + \kernel@ifnextchar[%] + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% +} +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% + \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% + \fi% +} +\newcommand*\tud@footcontent@use[2]{% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% + \fi% + \fi% \else% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% + \@tempswatrue% + \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \linespread{1}% + \vss% + \hbox to #2{% + \tud@footcontent@fontface% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% \else% - \tud@headmidvskip% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip% + \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@patch@wrn{scr@startpart}}% - \fi% - \newcommand*\tud@@startspart{}% - \let\tud@@startspart\scr@@startspart% - \patchcmd{\tud@@startspart}{% - \normalfont - \sectfont\nobreak - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip\nobreak% - \fi% - }{}{\tud@patch@wrn{scr@@startspart}}% -\else - \newcommand*\tud@@part{}% - \let\tud@@part\@part - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip% - \fi% + \vss\vss% }{% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% \fi% }% - }{}{\tud@patch@wrn{@part}}% - \newcommand*\tud@@spart{}% - \let\tud@@spart\@spart - \patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip\nobreak% - \fi% - \size@part% - }{}{\tud@patch@wrn{@spart}} -\fi -\newcommand*\tud@partpreamble{% - \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap - \KOMAoptions{titlepage=false}% - \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% - \addtokomafont{dictumtext}{\tud@color{\tud@part@fontcolor}}% - \tud@color{\tud@part@fontcolor}% - \vskip\dimexpr\topskip+.9\baselineskip\relax% - \@afterindentfalse\@afterheading% -} -\newcommand*\tud@chapterheadstartvskip{% - \def\tud@chapter@fontcolor{}% - \ifcase\tud@layout@chapter\relax\or\else% *color - \def\tud@chapter@fontcolor{HKS41}% + \else% + \hbox to #2{}% \fi% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% +} +\newcommand*\tud@ps@parameters[1]{% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% +} +\newcommand*\tud@envir@ps{tudheadings} +\newcommand*\tud@envir@selectps{% + \expandafter\pagestyle\expandafter{\tud@envir@ps}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \renewcommand*\titlepagestyle{empty}% + \renewcommand*\partpagestyle{empty}% + \renewcommand*\chapterpagestyle{empty}% + \renewcommand*\indexpagestyle{empty}% + }{}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \renewcommand*\titlepagestyle{empty.tudheadings}% + \renewcommand*\partpagestyle{empty.tudheadings}% + \renewcommand*\chapterpagestyle{empty.tudheadings}% + \renewcommand*\indexpagestyle{empty.tudheadings}% + }{}% +} +\newcommand*\tud@currentpagestyle@value{} +\newcommand*\tud@currentpagestyle@set{% + \ifdefvoid{\tud@currentpagestyle@value}{% + \xdef\tud@currentpagestyle@value{\currentpagestyle}% + }{}% +} +\newcommand*\tud@currentpagestyle@reset{% + \ifdefvoid{\tud@currentpagestyle@value}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% + \let\tud@currentpagestyle@value\relax% }% - \if@tud@chapterpage% - \vspace*{\pageheadingsvskip}% - \else% - \vspace*{\headingsvskip}% +} +\NewEnviron{tudpage}[1][]{% + \tud@currentpagestyle@set% + \clearpage% + \def\tud@envir@ps{tudheadings}% + \TUD@parameter@set{tudpage}{#1}% + \tud@envir@selectps% + \tud@x@multicol@check% + \ifnum\tud@x@multicol@num>\@ne\relax% + \begin{multicols}{\tud@x@multicol@num}% \fi% -}% -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% -\if@tempswa - \newcommand*\tud@@@makechapterhead{} - \let\tud@@@makechapterhead\scr@@makechapterhead - \patchcmd{\tud@@@makechapterhead}{% - \csname #1format\endcsname% - \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \vskip-\parskip% - \tud@makeuppercase{\csname #1format\endcsname}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{scr@@makechapterhead}}% -\else - \newcommand*\tud@@@makechapterhead{} - \let\tud@@@makechapterhead\@@makechapterhead - \patchcmd{\tud@@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \vskip-\parskip% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{@@makechapterhead}}% -\fi -\newcommand*\tud@chapterpreamble{% - \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap - \KOMAoptions{titlepage=false}% - \if@tud@chapterpage% - \ifcase\tud@cdfont\relax\or% true - \TUDoptions{cdfont=true}% - \or% heavy - \TUDoptions{cdfont=heavy}% - \fi% - \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% - \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}% - \tud@color{\tud@chapter@fontcolor}% + \BODY% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% \fi% - \@afterindentfalse\@afterheading% +}[% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% +] +\TUD@parameter@family{tudpage}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{% + \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% + \TUD@parameter@error{pagestyle}{% + headings, plain, empty or any tudheadings page style type% + }% + }}}% + }% + }% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@default{}% } -\patchcmd{\set@@@@preamble}{% - \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% -}{% - \def\@tempa####1@####2{% - \@nameuse{tud@####1preamble}% - \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% +%%% 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% + }% }% - \hbox to\hsize{% - \let\phantomsection\relax% - #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempb\do{% + \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% + \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% + \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}% }% -}{}{\tud@patch@wrn{set@@@@preamble}} -\newcommand*\tud@chapter@pre{% - \if@tud@chapterpage% - \@restonecolfalse% - \if@twocolumn\@restonecoltrue\onecolumn\fi% - \tud@layout@specialpage@set{chapter}% - \fi% } -\newcommand*\tud@head@bar@store{}% -\let\tud@head@bar@store\relax% -\newcommand*\tud@head@bar@restore{}% -\let\tud@head@bar@restore\relax% -\newcommand*\tud@chapter@app{% - \if@tud@chapterpage% - \tud@cleardoublespecialpage{% - \def\tud@pagecolor{}% - \let\tud@foot@fontcolor\tud@chapter@fontcolor% - \ifcase\tud@layout@chapter\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \def\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar}{1}% - \or% fullcolor - \def\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% +\AtEndPreamble{\tud@x@scr@headings@set} +\newcommand*\tud@x@scr@headings@reset{% + \tud@layout@process% + \tud@x@scr@headings@set[% + \ifcase\tud@layout@part@num\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@chapter@num\relax\else% !false + \tud@font@koma@reset{chapter}% + \tud@font@koma@reset{chapterprefix}% + \fi% + \ifcase\tud@layout@section@num\relax\else% !false + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \fi% + ]% +} +\newcommand*\tud@title@fontcolor{} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@chapter@fontcolor{} +\newcommand*\tud@section@fontcolor{} +\providecommand*\raggedtitle{\tud@raggedright} +\newkomafont{parttitle}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + \usesizeofkomafont{section}% +} +\newcommand*\tud@headmidvskip@normal{\par\nobreak\vspace{.5\baselineskip}} +\newcommand*\tud@headmidvskip@reverse{% + \setbox\z@\vbox{\tud@headmidvskip@normal}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +} +\newcommand*\tud@layout@process{% + \ifcase\tud@layout@cover@num\relax% false + \bool@std@lock{@tud@cdgeometry@cover}{false}% + \else% !false + \bool@std@lock{@tud@cdgeometry@cover}{true}% + \fi% + \ifcase\tud@layout@title@num\relax% false + \tud@cmd@restore{titlepagestyle}% + \tud@font@koma@unset{titlehead}% + \tud@font@koma@unset{title}% + \tud@font@koma@unset{subtitle}% + \tud@font@koma@unset{subject}% + \tud@font@koma@unset{author}% + \tud@font@koma@unset{date}% + \tud@font@koma@unset{publishers}% + \else% !false + \tud@cmd@store{titlepagestyle}% + \renewcommand*\titlepagestyle{plain.tudheadings}% + \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% + \tud@font@koma@set{title}{% + \raggedtitle% + \usekomafont{disposition}% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@title@fontcolor}% }% - \tud@layout@specialpage@unset% - \if@restonecol\twocolumn\fi% - \else% - \edef\tud@head@bar@store{\tud@head@bar}% - \edef\tud@head@bar@restore{% - \gdef\noexpand\tud@head@bar{\tud@head@bar@store}% - \global\let\noexpand\tud@head@bar@store\relax% - \global\let\noexpand\tud@head@bar@restore\relax% + \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@font@koma@set{subject}{% + \sffamily% + \bfseries% + \tud@color{\tud@title@fontcolor}% + }% + \tud@font@koma@set{author}{\usekomafont{subject}}% + \tud@font@koma@set{date}{\usekomafont{titlepage}}% + \tud@font@koma@set{publishers}{\usekomafont{author}}% + \fi% + \ifcase\tud@layout@part@num\relax% false + \tud@cmd@restore{partheadstartvskip}% + \tud@cmd@restore{partheadendvskip}% + \tud@cmd@restore{partheademptypage}% + \tud@cmd@restore{partpagestyle}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% + \tud@cmd@restore{scr@@startspart}% + }{% + \tud@cmd@restore{@part}% + \tud@cmd@restore{@spart}% + }% + \tud@sectioning@reset[addpart]{part}% + \tud@font@koma@unset{partnumber}% + \tud@cmd@restore{raggedpart}% + \else% !false + \tud@cmd@store{partheadstartvskip}% + \let\partheadstartvskip\tud@partheadstartvskip% + \tud@cmd@store{partheadendvskip}% + \let\partheadendvskip\tud@partheadendvskip% + \tud@cmd@store{partheademptypage}% + \let\partheademptypage\relax% + \tud@cmd@store{partpagestyle}% + \renewcommand*\partpagestyle{plain.tudheadings}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \let\scr@@startpart\tud@@startpart% + \tud@cmd@store{scr@@startspart}% + \let\scr@@startspart\tud@@startspart% + }{% + \tud@cmd@store{@part}% + \let\@part\tud@@part% + \tud@cmd@store{@spart}% + \let\@spart\tud@@spart% }% - \ifcase\tud@layout@chapter\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \cs@set@lock{tud@head@bar}{1}% - \or% fullcolor - \cs@set@lock{tud@head@bar}{3}% + \if@tud@parttitle% + \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% + \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% + \else% + \tud@sectioning@set[addpart]{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@font@koma@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% \fi% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% - \fi% - \if@twocolumn% - \@afterindentfalse\@afterheading% + \tud@cmd@store{raggedpart}% + \renewcommand*\raggedpart{\tud@raggedright}% \fi% -} -\newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\TUDClassName}{% - Option `clearcolor' is only available together with\MessageBreak% - options `twoside' and `open=right'% - }% - \global\let\tud@clearcolor@wrn\relax% -} -\newcommand*\tud@part{} -\newcommand*\tud@spart{} -\newcommand*\tud@addpart{} -\newcommand*\tud@saddpart{} -\newcommand*\tud@chapter{} -\newcommand*\tud@schapter{} -\newcommand*\tud@addchap{} -\newcommand*\tud@saddchap{} -\newcommand*\tud@section{} -\newcommand*\tud@ssection{} -\newcommand*\tud@addsec{} -\newcommand*\tud@saddsec{} -\newcommand*\tud@subsection{} -\newcommand*\tud@ssubsection{} -\newcommand*\tud@subsubsection{} -\newcommand*\tud@ssubsubsection{} -\newcommand*\tud@sectioning@set[3][]{% - \tud@cmd@store{#2}% - \ifstr{#2}{minisec}{% - \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% - }{% - \tud@sectioning@case{#2}% - \ifblank{#1}{}{% - \tud@cmd@store{#1}% - \tud@sectioning@case{#1}% - }% - }% - \tud@font@koma@set{#2}{#3}% -} -\newcommand*\tud@sectioning@case[1]{% - \csedef{#1}{% - \noexpand\SecDef% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@#1\endcsname% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@s#1\endcsname% - }% - \csedef{tud@#1}[##1]##2{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname% - [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% - }% - \csedef{tud@s#1}##1{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname*% - {\noexpand\tud@sectioning@uppercase{##1}}% - }% - \ifstr{#1}{addsec}{% - \def\tud@addsec[##1]##2{% - \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + \ifcase\tud@layout@chapter@num\relax% false + \tud@cmd@restore{chapterheadstartvskip}% + \tud@cmd@restore{chapterformat}% + \tud@cmd@restore{@chapter}% + \tud@cmd@restore{@schapter}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@makechapterhead}% + }{% + \tud@cmd@restore{@@makechapterhead}% }% - \def\tud@saddsec##1{% - \@@tud@addsec*{\tud@sectioning@uppercase##1}% + \tud@sectioning@reset[addchap]{chapter}% + \tud@font@koma@unset{chapterprefix}% + \tud@cmd@restore{raggedchapter}% + \else% !false + \tud@cmd@store{chapterheadstartvskip}% + \let\chapterheadstartvskip\tud@chapterheadstartvskip% + \tud@cmd@store{chapterformat}% + \tud@cmd@store{@chapter}% + \tud@cmd@store{@schapter}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@makechapterhead}% + \let\scr@@makechapterhead\tud@@makechapterhead% + }{% + \tud@cmd@store{@@makechapterhead}% + \let\@@makechapterhead\tud@@makechapterhead% }% - }{}% - \@tempswafalse% - \ifstr{#1}{chapter}{\@tempswatrue}{}% - \ifstr{#1}{addchap}{\@tempswatrue}{}% - \if@tempswa% - \def\@tempa{,s}% - \@for\@tempb:=\@tempa\do{% - \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@pre% - }{}{\tud@patch@wrn{tud@sectioning@case}}% - \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@app% - }{}{\tud@patch@wrn{tud@sectioning@case}}% + \tud@sectioning@set[addchap]{chapter}{% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@chapter@fontcolor}% }% + \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% + \tud@cmd@store{raggedchapter}% + \renewcommand*\raggedchapter{\tud@raggedright}% \fi% -} -\newcommand*\tud@sectioning@reset[2][]{% - \tud@cmd@restore{#2}% - \ifblank{#1}{}{\tud@cmd@restore{#1}}% - \tud@font@koma@unset{#2}% -} -\robustify{\footnote}% -\newcommand*\tud@sectioning@uppercase[1]{% - \begingroup% - \if@tud@symbolheadings% - \let\c@footnote\c@symbolheadings% - \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}% + \ifcase\tud@layout@section@num\relax% false + \tud@sectioning@reset[addsec]{section}% + \tud@sectioning@reset{subsection}% + \tud@sectioning@reset{subsubsection}% + \tud@sectioning@reset{minisec}% + \tud@sectioning@reset{paragraph}% + \tud@sectioning@reset{subparagraph}% + \tud@cmd@restore{raggedsection}% + \else% !false + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@layout@section@num\relax\or\else% *color + \renewcommand*\tud@section@fontcolor{HKS41}% \fi% - \tud@makeuppercase{#1}% - \endgroup% -} -%%% From File: tudscr-frontmatter.dtx -\newcommand*\tud@fm@check[2]{% - \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section - \ifboolexpr{% - bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% - }{% - \sbox\z@{\vbox{#2}}% - \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% - \ClassWarning{\TUDClassName}{% - The given content within the `#1'\MessageBreak% - environment is too large, so it wasn't possible\MessageBreak% - to center the body vertically. Setting the option\MessageBreak% - `#1=nofill' would be a solution. You\MessageBreak% - could also use multiple `#1' environments% - }% - \boolfalse{@tud@#1@fil}% - \fi% - }{}% - }{% chapter - \boolfalse{@tud@#1@multi}% - \boolfalse{@tud@#1@fil}% - }% - \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% - \tud@fm@toc{#1}{#2}% + \tud@sectioning@set[addsec]{section}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsubsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{minisec}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{paragraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subparagraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@cmd@store{raggedsection}% + \renewcommand*\raggedsection{\tud@raggedright}% \fi% - \global\let\tud@fm@set\tud@fm@first% - #2% } -\newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} -\newcommand*\tud@fm@toc[2]{% - \ifbool{@tud@#1@multi}{% - \begingroup% - \let\tud@fm@@@toc\@empty% - \renewcommand*\tud@fm@head[2]{% - \protected@edef\@tempa{##2}% - \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% - \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% - }% - \let\clearpage\relax% - \sbox\z@{\vbox{#2}}% - \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% - \noexpand\addchaptertocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }% - }% - \@tempa% - }{% - \ClassWarning{\TUDClassName}{% - It isn't possible to use `#1=single'\MessageBreak% - or `#1=chapter' - with `#1=tocmultiple'% - }% +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc}{% - \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% - }% - \@tempa% + }\@tempa% }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% } -\newcommand\tud@fm@set[1]{} -\newcommand\tud@fm@first[1]{% - \global\let\tud@fm@set\tud@fm@next% - \if@twocolumn\else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \null\vfil% - \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section - \vspace{\dimexpr-\parskip-\baselineskip\relax}% - {\usekomafont{section}{\vspace{-\baselineskip}}}% +\newcommand*\tud@layout@specialpage@unset{% + \tud@font@koma@unset{footnote}% + \tud@cmd@restore{footnoterule}% +} +\newcommand*\tud@partheadstartvskip{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part@num\relax\or\or% litecolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \fi% + \tud@layout@specialpage@set{part}% + \begingroup% + \vspace*{% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% + }% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% + \if@tud@parttitle% + \begingroup% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@part@fontcolor}% + \ifx\@@title\@empty% + \ClassWarning{\TUD@Class@Name}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% + \tud@makeuppercase{\strut}% + \else% + \tud@makeuppercase{\@@title}% \fi% - }{}% + \par\nobreak% + {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% + \endgroup% + \else% + \usekomafont{partnumber}{\tud@headmidvskip@reverse}% + \fi% + \endgroup% +} +\newcommand*\tud@partheadendvskip{% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@part@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% - \fi% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + \clearpage% + }% + \tud@layout@specialpage@unset% } -\newcommand\tud@fm@next[1]{% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% +\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% + \if@tempswa% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip@normal% + \fi% + }{% + \if@tud@parttitle\else% + \usekomafont{#1prefix}{\vphantom{\partname}}% + \tud@headmidvskip@normal% + \fi% + }% + }{}{\tud@patch@wrn{scr@@startpart}}% \else% - \if@titlepage% - \ifbool{@tud@#1@multi}{% - \ifbool{@tud@#1@fil}{\vfil}{}% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip@normal% + \fi% }{% - \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + \if@tud@parttitle\else% + \usekomafont{#1prefix}{\vphantom{\partname}}% + \tud@headmidvskip@normal% + \fi% }% - \else% - \ifnum\@nameuse{tud@#1@level}=\z@% - \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% - \fi% - \fi% + }{}{\tud@patch@wrn{scr@@startpart}}% \fi% -} -\newcommand*\tud@fm@body@start[3]{% - \begingroup% - \TUD@parameter@set{#1}{#2}% - \tud@fm@set{#1}% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true - \fi\fi% - \ifnum\tud@multicols>\@ne\relax% - \setlength\multicolsep{\z@}% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% - \else% - \tud@fm@head{#1}{#3}% - \fi% -} -\newcommand*\tud@fm@body@end[1]{% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \else% - \par% + \newcommand*\tud@@startspart{}% + \let\tud@@startspart\scr@@startspart% + \patchcmd{\tud@@startspart}{% + \normalfont + \sectfont\nobreak + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal\nobreak% \fi% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true - \fi\fi% - \endgroup% -} -\newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% false - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + }{}{\tud@patch@wrn{scr@@startspart}}% +\else + \newcommand*\tud@@part{}% + \let\tud@@part\@part% + \patchcmd{\tud@@part}{% + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \setlength{\@tempskipa}{\scr@part@innerskip}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{part}{% + \size@partnumber{\tud@makeuppercase{\partformat}}% + \if@tud@parttitle% + \enskip% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@headmidvskip@normal% + \fi% + }{% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal% \fi% }% - \or% true - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% - }% - \begingroup% - \noindent\centering% - \normalfont\sectfont\nobreak#2% - \@endparpenalty\@M% - \endgraf% - \endgroup% - \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% - \@afterheading% - \or% section - \section*{#2}% - \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% - \or% chapter - \chapter*{#2}% - \@mkdouble{\MakeMarkcase{#2}}% - \fi% - \ifbool{@tud@#1@markboth}{% - \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% - }{}% - \ifnum\@nameuse{tud@#1@toc}>\z@\relax% - \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% - \ifnumodd{\csname tud@#1@toc\endcsname}{% - \addchaptertocentry{}{#2}% - }{% - \addsectiontocentry{}{#2}% - }% + }{}{\tud@patch@wrn{@part}}% + \newcommand*\tud@@spart{}% + \let\tud@@spart\@spart% + \patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal\nobreak% \fi% + \size@part% + }{}{\tud@patch@wrn{@spart}}% +\fi +\newcommand*\tud@partpreamble{% + \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap + \renewcommand*\tud@abstract@level@num{1}% \fi% + \KOMAoptions{titlepage=false}% + \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% + \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% + \tud@color{\tud@part@fontcolor}% + \vskip\dimexpr\topskip+.9\baselineskip\relax% + \@afterindentfalse\@afterheading% } -\newcommand*\tud@fm@pagestyle[2]{% - \if@titlepage% - \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% - You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined.% - }% - }% +\newcommand*\tud@chapterheadstartvskip{% + \renewcommand*\tud@chapter@fontcolor{}% + \ifcase\tud@layout@chapter@num\relax\or\else% *color + \renewcommand*\tud@chapter@fontcolor{HKS41}% + \fi% + \vspace*{% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax% + }% + \if@tud@chapterpage% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \else% - \ClassWarning{\TUDClassName}{% - The key `pagestyle' can only be used either with\MessageBreak% - activated option `titlepage' or with chapter\MessageBreak% - headings (`#1=chapter')% - }% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \fi% } -\newcommand*\tud@quoting{quotation} -\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\NewEnviron{abstract}[1][]{% - \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{abstract}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% +\newcommand*\tud@@makechapterhead{}% +\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \let\tud@@makechapterhead\scr@@makechapterhead% + \patchcmd{\tud@@makechapterhead}{% + \csname #1format\endcsname% + \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@reverse% + \vskip-\parskip% + \tud@makeuppercase{\csname #1format\endcsname}% + \tud@headmidvskip@normal% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% +\else + \let\tud@@makechapterhead\@@makechapterhead% + \patchcmd{\tud@@makechapterhead}{% + \chapterformat + \setlength{\@tempskipa}{\scr@chapter@innerskip}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@reverse% + \vskip-\parskip% + \tud@makeuppercase{\chapterformat}% + \tud@headmidvskip@normal% + }{}{\tud@patch@wrn{@@makechapterhead}}% +\fi +\newcommand*\tud@chapterpreamble{% + \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap + \renewcommand*\tud@abstract@level@num{1}% \fi% - \renewcommand*\nextabstract[1][]{% - \tud@fm@body@end{abstract}% - \tud@fm@body@start{abstract}{##1}{\abstractname}% + \KOMAoptions{titlepage=false}% + \if@tud@chapterpage% + \ifcase\tud@cdfont@num\relax\or% true + \TUDoptions{cdfont=true}% + \or% heavy + \TUDoptions{cdfont=heavy}% + \fi% + \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% + \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% + \tud@color{\tud@chapter@fontcolor}% + \fi% + \@afterindentfalse\@afterheading% +} +\CheckCommand\set@@@@preamble[6]{% + \expandafter\gdef\csname #1@preamble\endcsname{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }% - \tud@fm@check{abstract}{% - \tud@fm@body@start{abstract}{#1}{\abstractname}% - \BODY% - \tud@fm@body@end{abstract}% +} +\patchcmd{\set@@@@preamble}{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% +}{% + \def\@tempa####1@####2{% + \@nameuse{tud@####1preamble}% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% }% -}[% - \if@titlepage% - \if@tud@abstract@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \hbox to\hsize{% + \let\phantomsection\relax% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + }% +}{}{\tud@patch@wrn{set@@@@preamble}} +\newcommand*\tud@chapter@pre{% + \if@tud@chapterpage% + \@restonecolfalse% + \if@twocolumn\@restonecoltrue\onecolumn\fi% + \tud@layout@specialpage@set{chapter}% \fi% -] -\TUD@parameter{abstract}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@abstract@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@abstract@markbothfalse% - }{% - \@tud@abstract@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% +} +\newcommand*\tud@head@bar@store{} +\let\tud@head@bar@store\relax +\newcommand*\tud@head@bar@restore{} +\let\tud@head@bar@restore\relax +\newcommand*\tud@chapter@app{% + \if@tud@chapterpage% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \let\tud@foot@fontcolor\tud@chapter@fontcolor% + \ifcase\tud@layout@chapter@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41!10}% + \cs@set@lock{tud@head@bar@num}{1}% + \or% fullcolor + \renewcommand*\tud@pagecolor{HKS41!10}% + \cs@set@lock{tud@head@bar@num}{3}% + \fi% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + \clearpage% + }% + \tud@layout@specialpage@unset% + \if@restonecol\twocolumn\fi% + \else% + \edef\tud@head@bar@store{\tud@head@bar@num}% + \edef\tud@head@bar@restore{% + \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}% + \global\let\noexpand\tud@head@bar@store\relax% + \global\let\noexpand\tud@head@bar@restore\relax% }% - }% - \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% - \TUD@parameter@let{option}{abstract}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% -} -\newcommand*\nextabstract[1][]{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% - The command `\string\nextabstract' can only be used within\MessageBreak% - the environment `abstract'.% - }% -} -\newif\if@tud@declarations -\NewEnviron{declarations}[1][]{% - \@tud@declarationstrue% - \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{declaration}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% + \ifcase\tud@layout@chapter@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \cs@set@lock{tud@head@bar@num}{1}% + \or% fullcolor + \cs@set@lock{tud@head@bar@num}{3}% + \fi% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% - \tud@fm@check{declaration}{\BODY}% -}[% - \if@titlepage% - \if@tud@declaration@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \if@twocolumn% + \@afterindentfalse\@afterheading% \fi% -] -\TUD@parameter{declaration}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@declaration@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@declaration@markbothfalse% - }{% - \@tud@declaration@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% - }% - }% - \TUD@parameter@define{company}{\def\@company{#1}}% - \TUD@parameter@define{supporter}{\def\@supporter{#1}}% - \TUD@parameter@define{place}{\def\@place{#1}}% - \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}% - \TUD@parameter@let{confirmationclosing}{closing}% - \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% - \TUD@parameter@let{option}{declaration}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } -\newcommand*\declaration[1][]{% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \tud@fm@blocking% - \end{declarations}% +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Option `clearcolor' is only available together with\MessageBreak% + options `twoside' and `open=right'% }% + \global\let\tud@clearcolor@wrn\relax% } -\newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% - \tud@fm@body@start{declaration}{#1}{#2} - #3% - \tud@fm@body@end{declaration}% +\newcommand*\tud@part{} +\newcommand*\tud@spart{} +\newcommand*\tud@addpart{} +\newcommand*\tud@saddpart{} +\newcommand*\tud@chapter{} +\newcommand*\tud@schapter{} +\newcommand*\tud@addchap{} +\newcommand*\tud@saddchap{} +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% }{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% - The command `\string\nextdeclaration' can only be used\MessageBreak% - within the environment `declarations'.% + \tud@sectioning@case{#2}% + \ifblank{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% }% }% + \tud@font@koma@set{#2}{#3}% } -\newcommand*\confirmation[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{supporter=##1}% +\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% }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \end{declarations}% + \csedef{tud@#1}[##1]##2{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname% + [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% + \csedef{tud@s#1}##1{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname*% + {\noexpand\tud@sectioning@uppercase{##1}}% }% + \ifstr{#1}{addsec}{% + \def\tud@addsec[##1]##2{% + \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + }% + \def\tud@saddsec##1{% + \@@tud@addsec*{\tud@sectioning@uppercase##1}% + }% + }{}% + \@tempswafalse% + \ifstr{#1}{chapter}{\@tempswatrue}{}% + \ifstr{#1}{addchap}{\@tempswatrue}{}% + \if@tempswa% + \def\@tempa{,s}% + \@for\@tempb:=\@tempa\do{% + \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% + \tud@chapter@pre% + }{}{\tud@patch@wrn{tud@sectioning@case}}% + \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% + \tud@chapter@app% + }{}{\tud@patch@wrn{tud@sectioning@case}}% + }% + \fi% } -\newcommand*\tud@fm@confirmation[1][]{% - \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% - \tud@fm@body@end{declaration}% -} -\newcommand*\blocking[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{company=##1}% - }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@blocking% - \end{declarations}% - }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% - }% +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifblank{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@unset{#2}% } -\newcommand*\tud@fm@blocking[1][]{% - \tud@fm@body@start{declaration}{#1}{\blockingname}% - \blockingtext% - \tud@fm@body@end{declaration}% +\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% } %%% From File: tudscr-title.dtx -\newkomafont{thesis}{\usekomafont{title}\LARGE} +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% +} \newkomafont{titlepage}{% \usekomafont{subject}% - \fontseries{\mddefault}% - \selectfont% + \mdseries% \large% } -\newcommand*\tud@title@fontcolor{} -\newcommand*\tud@titlepagenumber{}% -\let\tud@titlepagenumber\relax% +\robustify{\thanks} +\robustify{\footnotemark} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% + \let\\\newline% + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% + \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% +} +\newcommand*\tud@title@delimiter{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}} +\newcommand*\tud@newline@title{} +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% + \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% + {\usekomafont{author}{\ignorespaces#1}}% + \if@tud@cover\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% + \ifx\@dateofbirth\@empty\else% + \if@titlepage% + \tud@newline@title% + \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% + \fi% + \else% + \tud@title@wrn{dateofbirth}% + \fi% + \fi% + \def\@tempc##1{% + \ifstr{\csuse{@##1}}{}{}{% + \if@titlepage% + \tud@newline@title% + \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \csuse{@##1}% + \else% + \tud@title@wrn{##1}% + \fi% + }% + }% + \@tempc{course}% + \@tempc{discipline}% + \@tempc{matriculationnumber}% + \@tempc{matriculationyear}% + \fi% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 2ex}% +} +\newcommand*\tud@title@wrn[1]{% + \ClassWarning{\TUD@Class@Name}{% + `\@backslashchar#1' has to be used with\MessageBreak% + activated titlepage option% + }% +} +\newcommand*\tud@thesis@tosubject{% + \if@tud@subjectthesis\ifx\@thesis\@empty\else% + \ifx\@subject\@empty\else% + \ClassWarning{\TUD@Class@Name}{% + The option `subjectthesis' was activated, so\MessageBreak% + the field `subject' will be overwritten with the\MessageBreak% + given thesis% + }% + \fi% + \let\@subject\@thesis% + \fi\fi% +} +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% false - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \ifcase\tud@layout@title@num\relax% false + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% \else% !false \if@titlepage% - \tud@maketitlepage% + \tud@make@titlepage% \else% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\else% *color - \def\tud@title@fontcolor{HKS41}% - \fi% - \let\@maketitle\tud@@maketitle% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \if@twocolumn% - \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}% - \else% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \fi% + \tud@make@titlehead% \fi% \fi% \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% } -\TUD@parameter{title}{% - \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +\tud@cmd@store{maketitle} +\let\maketitle\tud@maketitle +\TUD@parameter@family{title}{% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% \TUD@parameter@let{cd}{cdtitle}% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}% -}% -\robustify{\thanks}% -\robustify{\footnotemark}% -\newcommand*\tud@titleback{}% -\newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\or% litecolor - \def\tud@title@fontcolor{HKS41}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +\newcommand*\tud@titleback{} +\newcommand*\tud@make@titlepage{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% bicolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% color - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \or% full - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% \tud@layout@specialpage@set{title}% - \ifx\tud@titlepagenumber\relax\else% - \setcounter{page}{\tud@titlepagenumber}% + \ifx\tud@title@pagenumber\relax\else% + \setcounter{page}{\tud@title@pagenumber}% \fi% \if@tud@cover\else% \let\footnotesize\small% @@ -4605,10 +5608,10 @@ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark% \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -4628,9 +5631,9 @@ \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% @@ -4647,20 +5650,11 @@ \noindent\@extratitle\next@tdpage% \fi% \fi% - \if@tud@bookmarks% - \if@tud@cover% - \tudbookmark[0]{\coverpagename}{cover}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \else% - \tudbookmark[0]{\titlepagename}{title}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \fi% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\pageheadingsvskip}% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% @@ -4673,7 +5667,7 @@ }}% \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4682,20 +5676,20 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + {\usekomafont{date}{\tud@date@print\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -4709,7 +5703,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% + \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -4724,18 +5718,20 @@ \vskip 2ex\@plus.5fill% \fi% \if@tud@cover\else% - \tud@title@names{supervisor}% \tud@title@names{referee}% \tud@title@names{advisor}% + \tud@title@names{supervisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% {\usekomafont{date}{\@defensedate\par}}% \fi% \fi% @@ -4768,27 +5764,27 @@ \fi% \fi% \def\@tempa{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% true - \cs@std@lock{tud@head@bar}{0}% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@title@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -4812,22 +5808,6 @@ \fi% \fi% \end{titlepage}% - \if@tud@cover\else% - \setcounter{footnote}{0}% - \global\let\and\relax% - \fi% -} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% - \begingroup% - \def\thanks##1{\gdef\@tempa{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% } \newcommand*\tud@title@names[1]{% \letcs\@tempa{@#1}% @@ -4835,28 +5815,65 @@ \def\and{% \ifcsvoid{#1othername}{\par}{% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% }% \let\and\par% }% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% - {\usekomafont{author}{\@nameuse{@#1}\par}}% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% + \fi% +} +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% + \fi% + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% } -\newcommand*\@titledelim{:\nobreakspace} -\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} -\newcommand*\tud@@maketitle{% +\newcommand*\tud@make@@titlehead{% \global\@topnum=\z@% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\headingsvskip}% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% \sbox\z@{\vbox{% @@ -4867,7 +5884,7 @@ \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4876,16 +5893,18 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% - \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4895,287 +5914,689 @@ {\centering\usekomafont{dedication}{\@dedication\par}}% \fi% \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi% - \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% + \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi% + \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@newline{} -\newcommand*\tud@split@author@title[2]{% - \tud@multiple@fields@store{@author}{#1}% - \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% - {\usekomafont{author}{\ignorespaces#1}}% - \if@tud@cover\else% - \ifx\@authormore\@empty\else% - \tud@newline% - \@authormore% - \fi% - \ifx\@dateofbirth\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\dateofbirthtext}{}% - {}{\dateofbirthtext\@titledelim}\@dateofbirth% - \ifx\@placeofbirth\@empty\else% - \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% - \fi% - \else% - \tud@title@wrn{dateofbirth}% - \fi% - \fi% - \ifx\@matriculationnumber\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationnumbername}{}% - {}{\matriculationnumbername\@titledelim}% - \@matriculationnumber% - \else% - \tud@title@wrn{matriculationnumber}% - \fi% - \fi% - \ifx\@matriculationyear\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationyearname}{}% - {}{\matriculationyearname\@titledelim}% - \@matriculationyear% - \else% - \tud@title@wrn{matriculationyear}% - \fi% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% \fi% - \fi% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \endgroup% } \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \maketitle[#1]% + \tud@maketitle[#1]% \onecolumn{#2}\twocolumn% \else% - \tud@title@twocolumn{\maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% \fi% \else% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% } -\newsavebox\tud@title@twocolumn@box +\newsavebox\tud@title@box \newcommand\tud@title@twocolumn[1]{% \onecolumn% \begingroup% \let\clearpage\relax% \let\newpage\relax% - \global\setbox\tud@title@twocolumn@box\vbox{% + \global\setbox\tud@title@box\vbox{% \vspace*{.9\baselineskip}#1\bigskip% }% \endgroup% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% \@tempswatrue% \fi% }{}% - \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax% - \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{% - \splittopskip\topskip% - \splitmaxdepth\maxdepth% - \vsplit\tud@title@twocolumn@box to \@tempdima% - \clearpage% - \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{\@tempswafalse}{}% - }% - \else% - \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@box to \@tempdima% + \clearpage% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% + }% + \else% + \setbox\tud@title@box\vbox{#1\bigskip}% + \fi% + \twocolumn[\unvbox\tud@title@box]% + \tud@if@v@lower{2.03}{% + \if@tempswa% + \ClassWarning{\TUD@Class@Name}{% + You are using a two-column title along with\MessageBreak% + the DDC-logo. Unfortunately in this case, the\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% + in both columns after the title% + }% + \fi% + }{}% +} +\newif\if@tud@cover +\newcommand*\makecover[1][]{% + \if@titlepageiscoverpage% + \ClassWarning{\TUD@Class@Name}{% + Using both option `titlepage=firstiscover' and\MessageBreak% + `\string\makecover' together isn't supported. The\MessageBreak% + option `titlepage=firstiscover' will be ignored. If you\MessageBreak% + want to create an individual cover, you have to use\MessageBreak% + `\string\extratitle' instead of `\string\makecover'.\MessageBreak% + See also the documentation of KOMA-Script% + }% + \@titlepageiscoverpagefalse% + \fi% + \clearpage% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \TUD@parameter@set{cover}{#1}% + \let\tud@layout@title@num\tud@layout@cover@num% + \tud@layout@process% + \if@tud@cdgeometry@cover% + \let\coverpagetopmargin\tud@len@slimmargin% + \let\coverpagebottommargin\tud@len@widemargin% + \let\coverpageleftmargin\tud@len@widemargin% + \let\coverpagerightmargin\tud@len@slimmargin% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \ifcase\tud@layout@cover@num\relax% false + \KOMAoptions{titlepage=firstiscover}% + \let\@extratitle\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \else% !false + \@tud@covertrue% + \@titlepagetrue% + \edef\titlepage@restore{% + \noexpand\endgroup% + \noexpand\global\noexpand\@colht\the\@colht% + \noexpand\global\noexpand\@colroom\the\@colroom% + \noexpand\global\vsize\the\vsize% + \noexpand\let\noexpand\titlepage@restore\noexpand\relax% + }% + \begingroup% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\dimexpr\tud@len@footsep+\footheight\relax% + \tud@if@v@lower{2.03}{% + \footskip=\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }{}% + \if@tud@cdgeometry@cover% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep-1in\relax% + \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% + \ifx\@tempa\coverpagebottommargin\relax% + \let\coverpagebottommargin\tud@len@widemargin% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \fi% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% + -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% + \tud@len@areavskip=\z@% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \tud@maketitle% + \clearpage% + \titlepage@restore% + \fi% + \endgroup% +} +\bool@lock{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% + \TUD@parameter@let{cd}{cdcover}% + \TUD@parameter@def{cdgeometry}[true]{% + \ifstrbool{#1}{% + \bool@set@lock{@tud@cdgeometry@cover}{true}% + }{% + \bool@set@lock{@tud@cdgeometry@cover}{false}% + }{% + \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \TUD@parameter@error{cdgeometry}{true,false}% + }% + }% + }% + }% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@check[2]{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + The given content within the `#1'\MessageBreak% + environment is too large, so it wasn't possible\MessageBreak% + to center the body vertically. Setting the option\MessageBreak% + `#1=nofill' would be a solution. You\MessageBreak% + could also use multiple `#1' environments% + }% + \boolfalse{@tud@#1@fil}% + \fi% + }{}% + }{% chapter + \boolfalse{@tud@#1@multi}% + \boolfalse{@tud@#1@fil}% + }% + \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `#1=single'\MessageBreak% + or `#1=chapter' + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc@num}{% + \the\numexpr\csuse{tud@#1@toc@num}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \if@twocolumn\else% + \if@titlepage% + \ifbool{@tud@#1@fil}{\null\vfil}{}% + \fi% + \fi% + \global\let\tud@fm@set\tud@fm@next% +} +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% + \else% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\vfil\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\csuse{tud@#1@level@num}=\z@\relax% + \ifundef{\main@language}{}{\vspace*{-\baselineskip}}% + \fi% + \fi% + \fi% +} +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \begin{\tud@quoting}% + \fi% + \fi\fi% + \ifnum\tud@x@multicol@num>\@ne\relax% + \vspace{-\multicolsep}% + \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% + \vspace{-\multicolsep}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \end{\tud@quoting}\par% + \fi% + \fi\fi% + \endgroup% +} +\newcommand*\tud@fm@head[2]{% + \ifcase\csuse{tud@#1@level@num}\relax% false + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% + \begingroup% + \noindent\centering% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \endgraf% + \endgroup% + \nopagebreak% + \vskip\dimexpr\medskipamount-\parskip\relax% + \@afterheading% + \or% section + \section*{#2}% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% + \or% chapter + \chapter*{#2}% + \@mkdouble{\MakeMarkcase{#2}}% + \fi% + \ifbool{@tud@#1@markboth}{% + \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% + }{}% + \ifcase\csuse{tud@#1@toc@num}\relax\or% totoc + \addchaptertocentry{}{#2}% + \or% totocleveldown + \addsectiontocentry{}{#2}% \fi% - \twocolumn[\unvbox\tud@title@twocolumn@box]% - \tud@ifverlower{2.03}{% - \if@tempswa% - \ClassWarning{\TUDClassName}{% - You are using a two-column title along with\MessageBreak% - the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% - in both columns after the title% +} +\newcommand*\tud@fm@pagestyle[2]{% + \if@titlepage% + \ifcsundef{ps@#2}{% + \ClassError{\TUD@Class@Name}{`#2' is no valid pagestyle}{% + You tried to use `#2' as a pagestyle for the\MessageBreak% + `#1' environment, but it was never defined.% }% - \fi% - }{}% + }{\def\tud@envir@ps{#2}}% + \else% + \ClassWarning{\TUD@Class@Name}{% + The key `pagestyle' can only be used either with\MessageBreak% + activated option `titlepage' or with chapter\MessageBreak% + headings (`#1=chapter')% + }% + \fi% } -\newcommand*\tud@letsubjectthesis{% - \if@tud@subjectthesis\ifx\@thesis\@empty\else% - \ifx\@subject\@empty\else% - \ClassWarning{\TUDClassName}{% - The option `subjectthesis' was activated.\MessageBreak% - The field `subject' will be overwritten with the\MessageBreak% - given thesis% +\newcommand*\tud@quoting{quotation} +\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} +\NewEnviron{abstract}[1][]{% + \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{abstract}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% \fi% - \let\@subject\@thesis% - \fi\fi% + \clearpage% + \tud@envir@selectps% + \fi% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% +}[% + \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@abstract@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{abstract}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% + \TUD@parameter@def{markboth}[true]{% + \ifstrbool{#1}{% + \@tud@abstract@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + }{% + \@tud@abstract@markbothfalse% + }{% + \@tud@abstract@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% + }% + }% + \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@let{option}{abstract}% + \TUD@parameter@handler@default{}% } -\newcommand*\tud@title@wrn[1]{% - \ClassWarning{\TUDClassName}{% - `\@backslashchar#1' has to be used with\MessageBreak% - activated titlepage option% +\newcommand*\nextabstract[1][]{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% }% } -\newif\if@tud@cover -\newcommand*\makecover[1][]{% - \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% - Using both option `titlepage=firstiscover' and\MessageBreak% - `\string\makecover' together isn't supported. The\MessageBreak% - option `titlepage=firstiscover' will be ignored. If you\MessageBreak% - want to create an individual cover, you have to use\MessageBreak% - `\string\extratitle' instead of `\string\makecover'.\MessageBreak% - See also the documentation of KOMA-Script% - }% - \@titlepageiscoverpagefalse% - \fi% - \clearpage% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title\tud@layout@cover% - \tud@layout@process% - \if@tud@cover@cdgeometry% - \let\coverpagetopmargin\tud@dim@slimmargin% - \let\coverpagebottommargin\tud@dim@widemargin% - \let\coverpageleftmargin\tud@dim@widemargin% - \let\coverpagerightmargin\tud@dim@slimmargin% - \tud@ifverlower{2.03}{% - \def\coverpagetopmargin{.5\tud@dim@both}% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \ifcase\tud@layout@cover\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% - \edef\titlepage@restore{% - \noexpand\endgroup% - \noexpand\global\noexpand\@colht\the\@colht% - \noexpand\global\noexpand\@colroom\the\@colroom% - \noexpand\global\vsize\the\vsize% - \noexpand\let\noexpand\titlepage@restore\noexpand\relax% +\newif\if@tud@declarations +\NewEnviron{declarations}[1][]{% + \@tud@declarationstrue% + \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{declaration}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% - \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \tud@ifverlower{2.03}{% - \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cover@cdgeometry% - \def\coverpagetopmargin{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@dim@widemargin% - \tud@ifverlower{2.03}{% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% - \tud@dim@headdiff=\z@% - \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% - \tud@maketitle% - \clearpage% - \csname titlepage@restore\endcsname% \fi% - \endgroup% -} -\bool@lock{@tud@cover@cdgeometry} -\TUD@parameter{cover}{% - \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}% - \TUD@parameter@let{cd}{cdcover}% - \TUD@parameter@define{cdgeometry}[true]{% + \clearpage% + \tud@envir@selectps% + \fi% + \def\and{, }% + \let\thanks\@gobble% + \tud@fm@check{declaration}{\BODY}% +}[% + \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@declaration@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{declaration}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% + \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% - \bool@set@lock{@tud@cover@cdgeometry}{true}% + \@tud@declaration@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% - \bool@set@lock{@tud@cover@cdgeometry}{false}% + \@tud@declaration@markbothfalse% }{% - \TUD@parameter@error{cdgeometry}{true,false}% + \@tud@declaration@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% }% }% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{% - \ifxnumber{#1}{% - \TUD@parameter@set{cover}{pagenumber=#1}% - }{% - \TUD@parameter@set{cover}{cdgeometry=#1}% + \TUD@parameter@def{company}{\def\@company{#1}}% + \TUD@parameter@def{supporter}{\def\@supporter{#1}}% + \TUD@parameter@def{place}{\def\@place{#1}}% + \TUD@parameter@def{closing}{\def\@confirmationclosing{#1}}% + \TUD@parameter@let{confirmationclosing}{closing}% + \TUD@parameter@def{declaration}{\TUDoption{declaration}{#1}}% + \TUD@parameter@let{option}{declaration}% + \TUD@parameter@handler@default{}% +} +\newcommand*\tud@fm@supporter{} +\newcommand*\declaration{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@declaration% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@declaration% + }% +} +\newcommand*\tud@fm@declaration[1][]{% + \ifbool{@tud@declarations}{% + \begingroup% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + \tud@fm@blocking[#1]% + \endgroup% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \tud@fm@blocking% + \end{declarations}% + }% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2}% + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% }% }% } +\newcommand*\confirmation{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@confirmation% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@confirmation% + }% +} +\newcommand*\tud@fm@confirmation[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{supporter}% + \undef\KV@declaration@company% + \ifbool{@tud@declarations}{% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% +} +\newcommand*\blocking[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{company}% + \undef\KV@declaration@supporter% + \undef\KV@declaration@closing% + \undef\KV@declaration@confirmationclosing% + \ifbool{@tud@declarations}{% + \tud@fm@blocking[#1]% + }{% + \begin{declarations}[#1]% + \tud@fm@blocking% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% +} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% +\newcommand*\TUD@cmd@deprecated[2]{% \AtBeginDocument{% - \ifcsdef{#1}{}{% + \ifcsundef{#1}{% \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\TUDClassName}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + The command `\@backslashchar#1' is deprecated\MessageBreak% It's recommended to use `\@backslashchar#2' instead% }% \csletcs{#1}{#2}% - \@nameuse{#2}% + \csuse{#2}% }% - }% + }{}% }% } -\newlength\chapterheadingvskip +\newcommand*\TUD@len@deprecated[2][]{% + \ifdim\csuse{#2}<\maxdimen\relax% + \ClassWarning{\TUD@Class@Name}{% + Using the length `\@backslashchar#2' is deprecated.\MessageBreak% + You should use option `#2' instead% + }% + \csxdef{tud@dim@#2}{\the\csuse{#2}}% + \expandafter\setlength\csname #2\endcsname{\maxdimen}% + \global\csuse{#2}=\csuse{#2}% + #1% + \fi% +} +\newlength\footlogoheight +\setlength\footlogoheight{\maxdimen} +\newlength\pageheadingsvskip +\setlength\pageheadingsvskip{\maxdimen} +\newlength\headingsvskip +\setlength\headingsvskip{\maxdimen} +\newcommand*\chapterheadingvskip{} \let\chapterheadingvskip\headingsvskip -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} +\TUD@cmd@deprecated{professorship}{chair} +\TUD@cmd@deprecated{studentid}{matriculationnumber} +\TUD@cmd@deprecated{matriculationid}{matriculationnumber} +\TUD@cmd@deprecated{enrolmentyear}{matriculationyear} +\TUD@cmd@deprecated{birthplace}{placeofbirth} +\TUD@cmd@deprecated{submissiondate}{date} +\TUD@cmd@deprecated{oralexaminationdate}{defensedate} +\TUD@cmd@deprecated{birthday}{dateofbirth} +\TUD@cmd@deprecated{location}{place} +\TUD@cmd@deprecated{logofile}{headlogo} +\TUD@cmd@deprecated{logofilename}{headlogo} \AfterPackage{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% + \TUD@cmd@deprecated{startdate}{issuedate}% + \TUD@cmd@deprecated{finaldate}{duedate}% + \TUD@cmd@deprecated{maturitydate}{duedate}% +} +\AtEndOfClass% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% } %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}[chapter]% +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\AtBeginDocument{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% +} +\newif\if@tud@font@set +\newif\if@tud@font@math@set +\newif\if@tud@font@skip@set +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@layout@process +\newif\if@tud@cdgeometry@process +\newif\if@tud@cdgeometry@@process +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@math@setfalse% + \global\@tud@font@skip@setfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@font@math@set% + \tud@font@math@set% + \global\@tud@font@math@setfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@layout@process% + \tud@layout@process% + \global\@tud@layout@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \global\@tud@cdgeometry@@processfalse% + \fi% + \if@tud@cdgeometry@@process% + \tud@cdgeometry@@process% + \global\@tud@cdgeometry@@processfalse% + \fi% +} \newcommand*\tudbookmark[1][]{\@gobbletwo} -\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% \renewcommand*\tudbookmark[3][]{% \relax% @@ -5184,7 +6605,7 @@ \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% \fi% }% - \renewcommand*\tud@footnote@unhyper{% + \renewcommand*\tud@x@hyperref@realfootnotes{% \let\Hy@saved@footnotemark\@footnotemark% \let\Hy@saved@footnotetext\@footnotetext% \let\@footnotemark\H@@footnotemark% @@ -5192,26 +6613,89 @@ }% \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } -\pretocmd{\maketitle}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \tudbookmark[0]{\titlepagename}{title}% -}{}{\tud@patch@wrn{maketitle}} -\pretocmd{\tableofcontents}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +\apptocmd{\titlepage}{% + \tud@x@bookmark@startatroot% + \if@tud@cover% + \tudbookmark[% + 0% + ]{\coverpagename}{cover}% + \else% + \tudbookmark[% + 0% + ]{\titlepagename}{title}% \fi% - \tudbookmark[0]{\contentsname}{toc}% -}{}{\tud@patch@wrn{tableofcontents}} +}{}{\tud@patch@wrn{titlepage}} +\pretocmd{\tud@make@titlehead}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 0% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@make@titlehead}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 0% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cmd@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cmd@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} \BeforePackage{tocloft}{% - \ClassWarning{\TUDClassName}{% - It is not recommended to use package `tocloft'.\MessageBreak% - Loading the package will certainly lead to problems\MessageBreak% - with table of contents and any list of floats. You\MessageBreak% - should use the appropriate options of KOMA-Script% + \ClassWarningNoLine{\TUD@Class@Name}{% + It is absolutely not recommended to use package\MessageBreak% + `tocloft'. Loading the package will certainly lead\MessageBreak% + to problems with table of contents and any list of\MessageBreak% + floats. You should use the appropriate options of\MessageBreak% + the KOMA-Script classes% }% } +\CheckCommand*\@uclcnotmath[4]{% + \begingroup + #1% + \def\({$}\let\)\(% + \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% + \@nonchangecase\label + \@nonchangecase\ref + \@nonchangecase\ensuremath + \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% + \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% + \def\reserved@a##1##2{\let#2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{% + \endgroup + \noexpand\@skipmath#3#4$\valign$% + }% + \reserved@a% +} +\newcommand*\tud@x@textcase@uclcnotmath{% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +} +\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% +}{}{\tud@patch@wrn{@uclcnotmath}} \endinput %% %% End of file `tudscrbook.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty index 2f61ec1c416..590a33efbd6 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty @@ -4,8 +4,8 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package') -%% tudscr-color.dtx (with options: `package') +%% tudscr-version.dtx (with options: `package,color') +%% tudscr-color.dtx (with options: `package,color') %% %% ============================================================================ %% @@ -35,252 +35,260 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-color.dtx -\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrcolor}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (corporate design colors)% ] -\DeclareOption{newcolors}{\let\setcdcolors@add\relax} -\DeclareOption{reduced}{\let\setcdcolors@add\relax} -\DeclareOption{oldcolors}{\let\setcdcolors@add\setcdcolors@oldcolors} -\DeclareOption{full}{\let\setcdcolors@add\setcdcolors@oldcolors} +\DeclareOption{newcolors}{\let\tud@setcolors@add\relax} +\DeclareOption{reduced}{\let\tud@setcolors@add\relax} +\DeclareOption{oldcolors}{\let\tud@setcolors@add\tud@setcolors@old} +\DeclareOption{full}{\let\tud@setcolors@add\tud@setcolors@old} \newcommand*\tud@color[1]{\ifdefvoid{#1}{}{\color{#1}}} -\newcommand*\setcdcolors@add{} \newcommand*\setcdcolors[1]{% - \def\@tempa{#1}\ifx\@tempa\@empty\else% - \selectcolormodel{\@tempa} - \fi% + \selectcolormodel{#1}% + \tud@setcolors@do% +} +\newcommand*\tud@setcolors@add{} +\newcommand*\tud@setcolors@do{% \definecolor{HKS41}{cmyk/RGB/rgb}{% 1.00,0.70,0.10,0.50/011,042,081/0.0431372549,0.16470588235,0.31764705882% - } + }% \definecolor{HKS92}{cmyk/RGB/rgb}{% 0.10,0.00,0.05,0.65/080,089,085/0.31372549019,0.34901960784,0.33333333333% - } + }% \definecolor{HKS44}{cmyk/RGB/rgb}{% 1.00,0.50,0.00,0.00/000,089,163/0,0.34901960784,0.63921568627% - } + }% \definecolor{HKS36}{cmyk/RGB/rgb}{% 0.80,0.90,0.00,0.00/081,041,127/0.31764705882,0.16078431372,0.49803921568% - } + }% \definecolor{HKS33}{cmyk/RGB/rgb}{% 0.50,1.00,0.00,0.00/129,026,120/0.50588235294,0.10196078431,0.47058823529% - } + }% \definecolor{HKS57}{cmyk/RGB/rgb}{% 1.00,0.00,0.90,0.20/000,122,071/0,0.47843137254,0.28235294117% - } + }% \definecolor{HKS65}{cmyk/RGB/rgb}{% 0.65,0.00,1.00,0.00/034,173,054/0.13333333333,0.67843137254,0.21176470588% - } + }% \definecolor{HKS07}{cmyk/RGB/rgb}{% 0.00,0.60,1.00,0.00/232,123,020/0.90980392156,0.48235294117,0.07843137254% - } - \colorlet{cddarkblue}{HKS41} - \colorlet{cdgray}{HKS92} - \colorlet{cdgrey}{HKS92} - \colorlet{cdblue}{HKS44} - \colorlet{cdindigo}{HKS36} - \colorlet{cdpurple}{HKS33} - \colorlet{cddarkgreen}{HKS57} - \colorlet{cdgreen}{HKS65} - \colorlet{cdorange}{HKS07} - \setcdcolors@add% + }% + \colorlet{cddarkblue}{HKS41}% + \colorlet{cdgray}{HKS92}% + \colorlet{cdgrey}{HKS92}% + \colorlet{cdblue}{HKS44}% + \colorlet{cdindigo}{HKS36}% + \colorlet{cdpurple}{HKS33}% + \colorlet{cddarkgreen}{HKS57}% + \colorlet{cdgreen}{HKS65}% + \colorlet{cdorange}{HKS07}% + \tud@setcolors@add% } -\newcommand*\setcdcolors@oldcolors{% - \colorlet{HKS41K100}{HKS41!100} - \colorlet{HKS41K90}{HKS41!90} - \colorlet{HKS41K80}{HKS41!80} - \colorlet{HKS41K70}{HKS41!70} - \colorlet{HKS41K60}{HKS41!60} - \colorlet{HKS41K50}{HKS41!50} - \colorlet{HKS41K40}{HKS41!40} - \colorlet{HKS41K30}{HKS41!30} - \colorlet{HKS41K20}{HKS41!20} - \colorlet{HKS41K10}{HKS41!10} - \colorlet{HKS92K100}{HKS92!100} - \colorlet{HKS92K90}{HKS92!90} - \colorlet{HKS92K80}{HKS92!80} - \colorlet{HKS92K70}{HKS92!70} - \colorlet{HKS92K60}{HKS92!60} - \colorlet{HKS92K50}{HKS92!50} - \colorlet{HKS92K40}{HKS92!40} - \colorlet{HKS92K30}{HKS92!30} - \colorlet{HKS92K20}{HKS92!20} - \colorlet{HKS92K10}{HKS92!10} - \colorlet{HKS44K100}{HKS44!100} - \colorlet{HKS44K90}{HKS44!90} - \colorlet{HKS44K80}{HKS44!80} - \colorlet{HKS44K70}{HKS44!70} - \colorlet{HKS44K60}{HKS44!60} - \colorlet{HKS44K50}{HKS44!50} - \colorlet{HKS44K40}{HKS44!40} - \colorlet{HKS44K30}{HKS44!30} - \colorlet{HKS44K20}{HKS44!20} - \colorlet{HKS44K10}{HKS44!10} - \colorlet{HKS36K10}{HKS36!10} - \colorlet{HKS36K20}{HKS36!20} - \colorlet{HKS36K30}{HKS36!30} - \colorlet{HKS36K40}{HKS36!40} - \colorlet{HKS36K50}{HKS36!50} - \colorlet{HKS36K60}{HKS36!60} - \colorlet{HKS36K70}{HKS36!70} - \colorlet{HKS36K80}{HKS36!80} - \colorlet{HKS36K90}{HKS36!90} - \colorlet{HKS36K100}{HKS36!100} - \colorlet{HKS33K10}{HKS33!10} - \colorlet{HKS33K20}{HKS33!20} - \colorlet{HKS33K30}{HKS33!30} - \colorlet{HKS33K40}{HKS33!40} - \colorlet{HKS33K50}{HKS33!50} - \colorlet{HKS33K60}{HKS33!60} - \colorlet{HKS33K70}{HKS33!70} - \colorlet{HKS33K80}{HKS33!80} - \colorlet{HKS33K90}{HKS33!90} - \colorlet{HKS33K100}{HKS33!100} - \colorlet{HKS57K10}{HKS57!10} - \colorlet{HKS57K20}{HKS57!20} - \colorlet{HKS57K30}{HKS57!30} - \colorlet{HKS57K40}{HKS57!40} - \colorlet{HKS57K50}{HKS57!50} - \colorlet{HKS57K60}{HKS57!60} - \colorlet{HKS57K70}{HKS57!70} - \colorlet{HKS57K80}{HKS57!80} - \colorlet{HKS57K90}{HKS57!90} - \colorlet{HKS57K100}{HKS57!100} - \colorlet{HKS65K10}{HKS65!10} - \colorlet{HKS65K20}{HKS65!20} - \colorlet{HKS65K30}{HKS65!30} - \colorlet{HKS65K40}{HKS65!40} - \colorlet{HKS65K50}{HKS65!50} - \colorlet{HKS65K60}{HKS65!60} - \colorlet{HKS65K70}{HKS65!70} - \colorlet{HKS65K80}{HKS65!80} - \colorlet{HKS65K90}{HKS65!90} - \colorlet{HKS65K100}{HKS65!100} - \colorlet{HKS07K10}{HKS07!10} - \colorlet{HKS07K20}{HKS07!20} - \colorlet{HKS07K30}{HKS07!30} - \colorlet{HKS07K40}{HKS07!40} - \colorlet{HKS07K50}{HKS07!50} - \colorlet{HKS07K60}{HKS07!60} - \colorlet{HKS07K70}{HKS07!70} - \colorlet{HKS07K80}{HKS07!80} - \colorlet{HKS07K90}{HKS07!90} - \colorlet{HKS07K100}{HKS07!100} - \colorlet{HKS41-100}{HKS41!100} - \colorlet{HKS41-90}{HKS41!90} - \colorlet{HKS41-80}{HKS41!80} - \colorlet{HKS41-70}{HKS41!70} - \colorlet{HKS41-60}{HKS41!60} - \colorlet{HKS41-50}{HKS41!50} - \colorlet{HKS41-40}{HKS41!40} - \colorlet{HKS41-30}{HKS41!30} - \colorlet{HKS41-20}{HKS41!20} - \colorlet{HKS41-10}{HKS41!10} - \colorlet{HKS92-100}{HKS92!100} - \colorlet{HKS92-90}{HKS92!90} - \colorlet{HKS92-80}{HKS92!80} - \colorlet{HKS92-70}{HKS92!70} - \colorlet{HKS92-60}{HKS92!60} - \colorlet{HKS92-50}{HKS92!50} - \colorlet{HKS92-40}{HKS92!40} - \colorlet{HKS92-30}{HKS92!30} - \colorlet{HKS92-20}{HKS92!20} - \colorlet{HKS92-10}{HKS92!10} - \colorlet{HKS44-100}{HKS44!100} - \colorlet{HKS44-90}{HKS44!90} - \colorlet{HKS44-80}{HKS44!80} - \colorlet{HKS44-70}{HKS44!70} - \colorlet{HKS44-60}{HKS44!60} - \colorlet{HKS44-50}{HKS44!50} - \colorlet{HKS44-40}{HKS44!40} - \colorlet{HKS44-30}{HKS44!30} - \colorlet{HKS44-20}{HKS44!20} - \colorlet{HKS44-10}{HKS44!10} - \colorlet{HKS36-10}{HKS36!10} - \colorlet{HKS36-20}{HKS36!20} - \colorlet{HKS36-30}{HKS36!30} - \colorlet{HKS36-40}{HKS36!40} - \colorlet{HKS36-50}{HKS36!50} - \colorlet{HKS36-60}{HKS36!60} - \colorlet{HKS36-70}{HKS36!70} - \colorlet{HKS36-80}{HKS36!80} - \colorlet{HKS36-90}{HKS36!90} - \colorlet{HKS36-100}{HKS36!100} - \colorlet{HKS33-10}{HKS33!10} - \colorlet{HKS33-20}{HKS33!20} - \colorlet{HKS33-30}{HKS33!30} - \colorlet{HKS33-40}{HKS33!40} - \colorlet{HKS33-50}{HKS33!50} - \colorlet{HKS33-60}{HKS33!60} - \colorlet{HKS33-70}{HKS33!70} - \colorlet{HKS33-80}{HKS33!80} - \colorlet{HKS33-90}{HKS33!90} - \colorlet{HKS33-100}{HKS33!100} - \colorlet{HKS57-10}{HKS57!10} - \colorlet{HKS57-20}{HKS57!20} - \colorlet{HKS57-30}{HKS57!30} - \colorlet{HKS57-40}{HKS57!40} - \colorlet{HKS57-50}{HKS57!50} - \colorlet{HKS57-60}{HKS57!60} - \colorlet{HKS57-70}{HKS57!70} - \colorlet{HKS57-80}{HKS57!80} - \colorlet{HKS57-90}{HKS57!90} - \colorlet{HKS57-100}{HKS57!100} - \colorlet{HKS65-10}{HKS65!10} - \colorlet{HKS65-20}{HKS65!20} - \colorlet{HKS65-30}{HKS65!30} - \colorlet{HKS65-40}{HKS65!40} - \colorlet{HKS65-50}{HKS65!50} - \colorlet{HKS65-60}{HKS65!60} - \colorlet{HKS65-70}{HKS65!70} - \colorlet{HKS65-80}{HKS65!80} - \colorlet{HKS65-90}{HKS65!90} - \colorlet{HKS65-100}{HKS65!100} - \colorlet{HKS07-10}{HKS07!10} - \colorlet{HKS07-20}{HKS07!20} - \colorlet{HKS07-30}{HKS07!30} - \colorlet{HKS07-40}{HKS07!40} - \colorlet{HKS07-50}{HKS07!50} - \colorlet{HKS07-60}{HKS07!60} - \colorlet{HKS07-70}{HKS07!70} - \colorlet{HKS07-80}{HKS07!80} - \colorlet{HKS07-90}{HKS07!90} - \colorlet{HKS07-100}{HKS07!100} +\newcommand*\tud@setcolors@old{% + \colorlet{HKS41K10}{HKS41!10}% + \colorlet{HKS41K20}{HKS41!20}% + \colorlet{HKS41K30}{HKS41!30}% + \colorlet{HKS41K40}{HKS41!40}% + \colorlet{HKS41K50}{HKS41!50}% + \colorlet{HKS41K60}{HKS41!60}% + \colorlet{HKS41K70}{HKS41!70}% + \colorlet{HKS41K80}{HKS41!80}% + \colorlet{HKS41K90}{HKS41!90}% + \colorlet{HKS41K100}{HKS41!100}% + \colorlet{HKS92K10}{HKS92!10}% + \colorlet{HKS92K20}{HKS92!20}% + \colorlet{HKS92K30}{HKS92!30}% + \colorlet{HKS92K40}{HKS92!40}% + \colorlet{HKS92K50}{HKS92!50}% + \colorlet{HKS92K60}{HKS92!60}% + \colorlet{HKS92K70}{HKS92!70}% + \colorlet{HKS92K80}{HKS92!80}% + \colorlet{HKS92K90}{HKS92!90}% + \colorlet{HKS92K100}{HKS92!100}% + \colorlet{HKS44K10}{HKS44!10}% + \colorlet{HKS44K20}{HKS44!20}% + \colorlet{HKS44K30}{HKS44!30}% + \colorlet{HKS44K40}{HKS44!40}% + \colorlet{HKS44K50}{HKS44!50}% + \colorlet{HKS44K60}{HKS44!60}% + \colorlet{HKS44K70}{HKS44!70}% + \colorlet{HKS44K80}{HKS44!80}% + \colorlet{HKS44K90}{HKS44!90}% + \colorlet{HKS44K100}{HKS44!100}% + \colorlet{HKS36K10}{HKS36!10}% + \colorlet{HKS36K20}{HKS36!20}% + \colorlet{HKS36K30}{HKS36!30}% + \colorlet{HKS36K40}{HKS36!40}% + \colorlet{HKS36K50}{HKS36!50}% + \colorlet{HKS36K60}{HKS36!60}% + \colorlet{HKS36K70}{HKS36!70}% + \colorlet{HKS36K80}{HKS36!80}% + \colorlet{HKS36K90}{HKS36!90}% + \colorlet{HKS36K100}{HKS36!100}% + \colorlet{HKS33K10}{HKS33!10}% + \colorlet{HKS33K20}{HKS33!20}% + \colorlet{HKS33K30}{HKS33!30}% + \colorlet{HKS33K40}{HKS33!40}% + \colorlet{HKS33K50}{HKS33!50}% + \colorlet{HKS33K60}{HKS33!60}% + \colorlet{HKS33K70}{HKS33!70}% + \colorlet{HKS33K80}{HKS33!80}% + \colorlet{HKS33K90}{HKS33!90}% + \colorlet{HKS33K100}{HKS33!100}% + \colorlet{HKS57K10}{HKS57!10}% + \colorlet{HKS57K20}{HKS57!20}% + \colorlet{HKS57K30}{HKS57!30}% + \colorlet{HKS57K40}{HKS57!40}% + \colorlet{HKS57K50}{HKS57!50}% + \colorlet{HKS57K60}{HKS57!60}% + \colorlet{HKS57K70}{HKS57!70}% + \colorlet{HKS57K80}{HKS57!80}% + \colorlet{HKS57K90}{HKS57!90}% + \colorlet{HKS57K100}{HKS57!100}% + \colorlet{HKS65K10}{HKS65!10}% + \colorlet{HKS65K20}{HKS65!20}% + \colorlet{HKS65K30}{HKS65!30}% + \colorlet{HKS65K40}{HKS65!40}% + \colorlet{HKS65K50}{HKS65!50}% + \colorlet{HKS65K60}{HKS65!60}% + \colorlet{HKS65K70}{HKS65!70}% + \colorlet{HKS65K80}{HKS65!80}% + \colorlet{HKS65K90}{HKS65!90}% + \colorlet{HKS65K100}{HKS65!100}% + \colorlet{HKS07K10}{HKS07!10}% + \colorlet{HKS07K20}{HKS07!20}% + \colorlet{HKS07K30}{HKS07!30}% + \colorlet{HKS07K40}{HKS07!40}% + \colorlet{HKS07K50}{HKS07!50}% + \colorlet{HKS07K60}{HKS07!60}% + \colorlet{HKS07K70}{HKS07!70}% + \colorlet{HKS07K80}{HKS07!80}% + \colorlet{HKS07K90}{HKS07!90}% + \colorlet{HKS07K100}{HKS07!100}% + \colorlet{HKS41-10}{HKS41!10}% + \colorlet{HKS41-20}{HKS41!20}% + \colorlet{HKS41-30}{HKS41!30}% + \colorlet{HKS41-40}{HKS41!40}% + \colorlet{HKS41-50}{HKS41!50}% + \colorlet{HKS41-60}{HKS41!60}% + \colorlet{HKS41-70}{HKS41!70}% + \colorlet{HKS41-80}{HKS41!80}% + \colorlet{HKS41-90}{HKS41!90}% + \colorlet{HKS41-100}{HKS41!100}% + \colorlet{HKS92-10}{HKS92!10}% + \colorlet{HKS92-20}{HKS92!20}% + \colorlet{HKS92-30}{HKS92!30}% + \colorlet{HKS92-40}{HKS92!40}% + \colorlet{HKS92-50}{HKS92!50}% + \colorlet{HKS92-60}{HKS92!60}% + \colorlet{HKS92-70}{HKS92!70}% + \colorlet{HKS92-80}{HKS92!80}% + \colorlet{HKS92-90}{HKS92!90}% + \colorlet{HKS92-100}{HKS92!100}% + \colorlet{HKS44-10}{HKS44!10}% + \colorlet{HKS44-20}{HKS44!20}% + \colorlet{HKS44-30}{HKS44!30}% + \colorlet{HKS44-40}{HKS44!40}% + \colorlet{HKS44-50}{HKS44!50}% + \colorlet{HKS44-60}{HKS44!60}% + \colorlet{HKS44-70}{HKS44!70}% + \colorlet{HKS44-80}{HKS44!80}% + \colorlet{HKS44-90}{HKS44!90}% + \colorlet{HKS44-100}{HKS44!100}% + \colorlet{HKS36-10}{HKS36!10}% + \colorlet{HKS36-20}{HKS36!20}% + \colorlet{HKS36-30}{HKS36!30}% + \colorlet{HKS36-40}{HKS36!40}% + \colorlet{HKS36-50}{HKS36!50}% + \colorlet{HKS36-60}{HKS36!60}% + \colorlet{HKS36-70}{HKS36!70}% + \colorlet{HKS36-80}{HKS36!80}% + \colorlet{HKS36-90}{HKS36!90}% + \colorlet{HKS36-100}{HKS36!100}% + \colorlet{HKS33-10}{HKS33!10}% + \colorlet{HKS33-20}{HKS33!20}% + \colorlet{HKS33-30}{HKS33!30}% + \colorlet{HKS33-40}{HKS33!40}% + \colorlet{HKS33-50}{HKS33!50}% + \colorlet{HKS33-60}{HKS33!60}% + \colorlet{HKS33-70}{HKS33!70}% + \colorlet{HKS33-80}{HKS33!80}% + \colorlet{HKS33-90}{HKS33!90}% + \colorlet{HKS33-100}{HKS33!100}% + \colorlet{HKS57-10}{HKS57!10}% + \colorlet{HKS57-20}{HKS57!20}% + \colorlet{HKS57-30}{HKS57!30}% + \colorlet{HKS57-40}{HKS57!40}% + \colorlet{HKS57-50}{HKS57!50}% + \colorlet{HKS57-60}{HKS57!60}% + \colorlet{HKS57-70}{HKS57!70}% + \colorlet{HKS57-80}{HKS57!80}% + \colorlet{HKS57-90}{HKS57!90}% + \colorlet{HKS57-100}{HKS57!100}% + \colorlet{HKS65-10}{HKS65!10}% + \colorlet{HKS65-20}{HKS65!20}% + \colorlet{HKS65-30}{HKS65!30}% + \colorlet{HKS65-40}{HKS65!40}% + \colorlet{HKS65-50}{HKS65!50}% + \colorlet{HKS65-60}{HKS65!60}% + \colorlet{HKS65-70}{HKS65!70}% + \colorlet{HKS65-80}{HKS65!80}% + \colorlet{HKS65-90}{HKS65!90}% + \colorlet{HKS65-100}{HKS65!100}% + \colorlet{HKS07-10}{HKS07!10}% + \colorlet{HKS07-20}{HKS07!20}% + \colorlet{HKS07-30}{HKS07!30}% + \colorlet{HKS07-40}{HKS07!40}% + \colorlet{HKS07-50}{HKS07!50}% + \colorlet{HKS07-60}{HKS07!60}% + \colorlet{HKS07-70}{HKS07!70}% + \colorlet{HKS07-80}{HKS07!80}% + \colorlet{HKS07-90}{HKS07!90}% + \colorlet{HKS07-100}{HKS07!100}% } \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} \ExecuteOptions{reduced} \ProcessOptions\relax \RequirePackage{xcolor}[2007/01/21] -\setcdcolors{} +\tud@setcolors@do% \endinput %% %% End of file `tudscrcolor.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty new file mode 100644 index 00000000000..dc228e9d252 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty @@ -0,0 +1,214 @@ +%% +%% This is file `tudscrcomp-book.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,comp,book') +%% tudscr-comp.dtx (with options: `package,comp,book,identify') +%% tudscr-comp.dtx (with options: `package,comp,book,option') +%% tudscr-misc.dtx (with options: `package,comp,book,execute') +%% tudscr-comp.dtx (with options: `package,comp,book,body') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\@ifundefined{TUD@Class@Name}{% + \PackageError{% + tudscrcomp-book% + }{Unsupported class found}{% + This package can only be used with a class out of the\MessageBreak% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \endinput +}{} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-comp.dtx +\ProvidesPackage{tudscrcomp-book}[% + 2016/07/26 v2.05 TUD-KOMA-Script + package + (compatibility for old tud(scr) classes)% +] +%%% From File: tudscr-comp.dtx +\TUD@key{colortitle}[true]{% + \TUD@set@ifkey{colortitle}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{cdtitle=color}% + \else% + \TUDoptions{cdtitle=true}% + \fi% + \fi% +} +\TUD@key{nocolortitle}[true]{% + \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{cdtitle=true}% + \else% + \TUDoptions{cdtitle=color}% + \fi% + \fi% +} +\TUD@key{ddcfooter}[true]{% + \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{ddcfoot=true}% + \else% + \TUDoptions{ddcfoot=false}% + \fi% + \fi% +} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\TUDoptions{\CurrentOption}} +\TUDProcessOptions\relax +%%% From File: tudscr-comp.dtx +\def\dinBold{\dinbn} +\def\dinfamily{\dinbn} +\newcommand*\einrichtung{\faculty} +\newcommand*\fachrichtung{\department} +\newcommand*\institut{\institute} +\newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} +\newcommand*\submitdate{\date} +\newcommand*\supervisorII[1]{% + \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% +} +\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} +\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} +\newcommand*\dissertation{% + \thesis{\dissertationname}% + \let\supervisorname\refereename% + \let\supervisorothername\refereeothername% +} +\AtBeginDocument{% + \ifundef{\theglossary}{% + \providecommand*\glossaryname{Glossar}% + \newenvironment{theglossary}[1][]{% + \PackageWarning{tudscrcomp}{% + Using the environment `theglossary' is not\MessageBreak% + recommended. You should rather use an appropriate\MessageBreak% + package such as glossaries% + }% + \let\bibname\glossaryname% + \bib@heading% + #1% + \list{}{% + \setlength\labelsep{\z@}% + \setlength\labelwidth{\z@}% + \setlength\itemindent{-\leftmargin}% + }% + }{\endlist}% + \newcommand\glossitem[1]{\item[] #1\par}% + }{}% +} +\newif\if@tud@comp@chapterpage +\newcommand*\chapterpage{% + \global\@tud@comp@chapterpagetrue% + \tud@comp@chapterpage@wrn% +} +\newcommand*\tud@comp@chapterpage@set[1][]{% + \if@tud@comp@chapterpage% + \if@tud@chapterpage% + \TUDoptions{chapterpage=false}% + \else% + \TUDoptions{chapterpage=true}% + \fi% + \fi% +} +\newcommand*\tud@comp@chapterpage@unset[1][]{% + \tud@comp@chapterpage@set% + \global\@tud@comp@chapterpagefalse% +} +\newcommand*\tud@comp@chapterpage@wrn{% + \PackageWarning{tudscrcomp}{% + The command \string\chapterpage\space is not\MessageBreak% + recommended. You should use the same style for\MessageBreak% + chapters throughout the document% + }% + \global\let\tud@comp@chapterpage@wrn\relax% +} +\AtEndPreamble{% + \if@chapter% + \pretocmd{\tud@chapter}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@chapter}}% + \apptocmd{\tud@chapter}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@chapter}}% + \pretocmd{\tud@schapter}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@schapter}}% + \apptocmd{\tud@schapter}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@schapter}}% + \pretocmd{\tud@addchap}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@addchap}}% + \apptocmd{\tud@addchap}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@addchap}}% + \pretocmd{\tud@saddchap}{\tud@comp@chapterpage@set}% + {}{\tud@patch@wrn{tud@saddchap}}% + \apptocmd{\tud@saddchap}{\tud@comp@chapterpage@unset}% + {}{\tud@patch@wrn{tud@saddchap}}% + \fi% +} +\endinput +%% +%% End of file `tudscrcomp-book.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty new file mode 100644 index 00000000000..aa9387b57a9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty @@ -0,0 +1,357 @@ +%% +%% This is file `tudscrcomp-poster.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,comp,poster') +%% tudscr-comp.dtx (with options: `package,comp,poster,identify') +%% tudscr-comp.dtx (with options: `package,comp,poster,option') +%% tudscr-misc.dtx (with options: `package,comp,poster,execute') +%% tudscr-comp.dtx (with options: `package,comp,poster,body') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\@ifundefined{TUD@Class@Name}{% + \PackageError{% + tudscrcomp-poster% + }{Unsupported class found}{% + This package can only be used with a class out of the\MessageBreak% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \endinput +}{} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-comp.dtx +\ProvidesPackage{tudscrcomp-poster}[% + 2016/07/26 v2.05 TUD-KOMA-Script + package + (compatibility for old tud(scr) classes)% +] +%%% From File: tudscr-comp.dtx +\TUD@key{bluebg}[true]{% + \TUD@set@ifkey{bluebg}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{backgroundcolor=true}% + \else% + \TUDoptions{backgroundcolor=false}% + \fi% + \fi% +} +\newif\if@tud@mathposterfoot +\TUD@key{tudmathposterfoot}[true]{% + \TUD@set@ifkey{tudmathposterfoot}{@tud@mathposterfoot}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@mathposterfoot% + \footcontent[\small]{% + \tud@footcontent@@left{}% + }[% + \tud@footcontent@@right{}{}% + ]% + \else% + \footcontent{% + \tud@footcontent@@left{\contactname}% + }[% + \tud@footcontent@@right{\authorname}{\contactpersonname}% + ]% + \fi% + \fi% +} +\TUD@key{cdfoot}[true]{% + \TUD@set@numkey{cdfoot}{@tempa}{% + {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{poster}{0},% + {tudmathposter}{1},{tudmathposterfoot}{1},{mathposter}{1},{tudposter}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% tudscrposter + \TUDoptions{tudmathposterfoot=false}% + \else% tudmathposter + \TUDoptions{tudmathposterfoot=true}% + \fi% + \fi% +} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\TUDoptions{\CurrentOption}} +\TUDProcessOptions\relax +%%% From File: tudscr-comp.dtx +\def\dinBold{\dinbn} +\def\dinfamily{\dinbn} +\newcommand*\einrichtung{\faculty} +\newcommand*\fachrichtung{\department} +\newcommand*\institut{\institute} +\newcommand*\professur{\chair} +\newcommand*\ps@tudposter{} +\let\ps@tudposter\ps@empty +\AfterPackage*{scrlayer-scrpage}{% + \DeclarePageStyleAlias{tudposter}{empty.tudheadings}% +} +\newrobustcmd*\telefon{\telephone} +\patchcmd{\tud@split@author@list}{telephone}{% + telephone,telefon% +}{}{\tud@patch@wrn{tud@split@author@list}} +\newrobustcmd*\fax{\telefax} +\patchcmd{\tud@split@author@list}{telefax}{% + telefax,fax% +}{}{\tud@patch@wrn{tud@split@author@list}} +\newrobustcmd*\email[1]{\emailaddress*{#1}} +\patchcmd{\tud@split@author@list}{emailaddress}{% + emailaddress,email% +}{}{\tud@patch@wrn{tud@split@author@list}} +\newcommand*\homepage[1]{\webpage*{#1}} +\newcommand*\zweitlogofile[2][]{\headlogo[#1]{#2}} +\newcommand*\zweitlogo[1]{% + \PackageWarning{tudscrcomp}{% + It isn't possible to redefine the definition for\MessageBreak% + including a logo in the header. Please see the\MessageBreak% + documentation of \string\headlogo% + }% +} +\newcommand*\institutslogofile[2][]{\footlogo[#1]{,,,,,,,#2,}} +\newcommand*\institutslogo[1]{% + \PackageWarning{tudscrcomp}{% + It isn't possible to redefine the definition for\MessageBreak% + including a logo in the footer. Please see the\MessageBreak% + documentation of \string\footlogo% + }% +} +\newcommand*\drittlogofile[1]{% + \PackageWarning{tudscrcomp}{% + Nothing happened, you should use \string\footlogo\MessageBreak + instead. Please see the documentation of \string\footlogo\MessageBreak% + and option `ddc' or `ddcfoot'% + }% +} +\newcommand*\drittlogo[1]{% + \PackageWarning{tudscrcomp}{% + It isn't possible to redefine the definition for\MessageBreak% + including a logo in the footer. Please see the\MessageBreak% + documentation of \string\footlogo\space and option\MessageBreak% + `ddc' or `ddcfoot'% + }% +} +\newcounter{topsection} +\let\c@topsection\c@section +\newcommand*\topsectionnumdepth{\sectionnumdepth} +\newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent} +\newcommand*\scr@topsection@beforeskip{\scr@section@beforeskip} +\newcommand*\scr@topsection@afterskip{\scr@section@afterskip} +\newcommand*\topsectiontocdepth{\sectiontocdepth} +\newcommand*\scr@topsection@tocindent{\scr@section@tocindent} +\newcommand*\scr@topsection@tocnumwidth{\scr@section@tocnumwidth} +\newcommand*\l@topsection{\l@section} +\DeclareNewSectionCommand[% + style=section,% + font={\usekomafont{section}}, + beforeskip=\z@,% +]{topsection} +\newcounter{topsubsection} +\let\c@topsubsection\c@subsection +\newcommand*\topsubsectionnumdepth{\subsectionnumdepth} +\newcommand*\scr@topsubsection@sectionindent{\scr@subsection@sectionindent} +\newcommand*\scr@topsubsection@beforeskip{\scr@subsection@beforeskip} +\newcommand*\scr@topsubsection@afterskip{\scr@subsection@afterskip} +\newcommand*\topsubsectiontocdepth{\subsectiontocdepth} +\newcommand*\scr@topsubsection@tocindent{\scr@subsection@tocindent} +\newcommand*\scr@topsubsection@tocnumwidth{\scr@subsection@tocnumwidth} +\newcommand*\l@topsubsection{\l@subsection} +\DeclareNewSectionCommand[% + style=section,% + font={\usekomafont{subsection}}, + beforeskip=\z@,% +]{topsubsection} +\newcommand*\centersection[2][\@nil]{% + \tud@comp@centersection{section}{#1}{#2}% +} +\newcommand*\centersubsection[2][\@nil]{% + \tud@comp@centersection{subsection}{#1}{#2}% +} +\newcommand*\topcentersection[2][\@nil]{% + \tud@comp@centersection{topsection}{#1}{#2}% +} +\newcommand*\topcentersubsection[2][\@nil]{% + \tud@comp@centersection{topsubsection}{#1}{#2}% +} +\newcommand*\tud@comp@centersection[3]{% + \tud@cmd@store{raggedsection}% + \let\raggedsection\centering% + \ifx#2\@nil\relax% + \csuse{#1}{#3}% + \else% + \csuse{#1}[#2]{#3}% + \fi% + \tud@cmd@restore{raggedsection}% +} +\newcommand\sectiontopskip{\scr@section@beforeskip} +\newcommand\subsectiontopskip{\scr@subsection@beforeskip} +\setcounter{secnumdepth}{-1} +\newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} +\newcommand*\footcolumn[2]{% + \ifxnumber{#1}{% + \ifcase#1\relax% + \footcontent{#2}% + \or% + \footcontent{#2}[*]% + \or% + \footcontent{*}[#2]% + \fi% + }{}% +} +\newcommand*\tud@comp@mathposterwidth{4.2\tud@len@widemargin} +\patchcmd{\tud@footcontent@use}{% + \hsize=\dimexpr#2-\@tempdimc\relax% +}{% + \if@tud@mathposterfoot% + \hsize=\dimexpr\tud@comp@mathposterwidth\relax% + \else% + \hsize=\dimexpr#2-\@tempdimc\relax% + \fi% +}{}{\tud@patch@wrn{tud@footcontent@use}} +\patchcmd{\tud@footcontent@use}{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% +}{% + \if@tud@mathposterfoot% + \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax% + \else% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \fi% +}{}{\tud@patch@wrn{tud@footcontent@use}} +\patchcmd{\tud@footcontent@use}{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% +}{% + \if@tud@mathposterfoot% + \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax% + \else% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \fi% +}{}{\tud@patch@wrn{tud@footcontent@use}} +\newenvironment{figurehere}{% + \def\@captype{figure}% + \renewcommand*\caption{\captionof{figure}}% + \renewcommand*\captionabove{\captionaboveof{figure}}% + \renewcommand*\captionbelow{\captionbelowof{figure}}% + \vskip\intextsep% + \vbox \bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \ignorespaces% +}{% + \egroup% + \vskip\intextsep% + \ignorespaces% +} +\newenvironment{tablehere}{% + \def\@captype{table}% + \renewcommand*\caption{\captionof{table}}% + \renewcommand*\captionabove{\captionaboveof{table}}% + \renewcommand*\captionbelow{\captionbelowof{table}}% + \vskip\intextsep% + \vbox \bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \ignorespaces% +}{% + \egroup% + \vskip\intextsep% + \ignorespaces% +} +\PassOptionsToPackage{table}{xcolor} +\newif\if@tud@comp@graytable +\newcommand*\blautabelle{\@tud@comp@graytablefalse} +\newcommand*\grautabelle{\@tud@comp@graytabletrue} +\newenvironment{farbtabellen}{% + \if@tud@comp@graytable% + \rowcolors{1}{HKS92!20}{HKS92!10} + \else% + \rowcolors{1}{HKS41!20}{HKS41!10}% + \fi% +}{} +\ifundef{\schnittrand}{}{% + \ifxlen{\schnittrand}{% + \edef\@tempa{% + paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% + paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% + layout=\the\paperwidth:\the\paperheight,% + layoutoffset=\the\dimexpr\schnittrand\relax,% + showcrop% + } + \expandafter\geometry\expandafter{\@tempa}% + }{% + \PackageErrorNoLine{tudscrcomp}{% + Wrong definition for `\string\schnittrand'% + }{% + The definition of `\string\schnittrand' does not expand to\MessageBreak% + a valid dimension expression.% + } + } +}% +\AtEndPreamble{% + \RequirePackage{amsmath}[2016/06/28]% + \RequirePackage{amsfonts}[2013/01/14]% + \RequirePackage{calc}[2014/10/28]% + \RequirePackage{textcomp}[2016/06/19]% + \RequirePackage{tabularx}[2016/02/03]% +} +\endinput +%% +%% End of file `tudscrcomp-poster.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty index 11193dea2a8..4fe7fb139f9 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty @@ -4,10 +4,8 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,comp') -%% tudscr-comp.dtx (with options: `package,identify') -%% tudscr-comp.dtx (with options: `package,option') -%% tudscr-comp.dtx (with options: `package,body') +%% tudscr-version.dtx (with options: `package,comp,base') +%% tudscr-comp.dtx (with options: `package,comp,base,identify') %% %% ============================================================================ %% @@ -37,162 +35,61 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{TUDClassName}{% +\@ifundefined{TUD@Class@Name}{% \PackageError{% tudscrcomp% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% - } + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% \endinput }{} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-comp.dtx -\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrcomp}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (compatibility for old tud(scr) classes)% ] -%%% From File: tudscr-comp.dtx -\TUD@key{colortitle}[true]{% - \TUD@set@ifkey{colortitle}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{cdtitle=color}% - \else% - \TUDoptions{cdtitle=true}% - \fi% - \fi% -} -\TUD@key{nocolortitle}[true]{% - \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{cdtitle=true}% - \else% - \TUDoptions{cdtitle=color}% - \fi% - \fi% -} -\TUD@key{ddcfooter}[true]{% - \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{ddcfoot=true}% - \else% - \TUDoptions{ddcfoot=false}% - \fi% - \fi% -} -%%% From File: tudscr-comp.dtx -\newcommand*\einrichtung{\faculty} -\newcommand*\fachrichtung{\department} -\newcommand*\institut{\institute} -\newcommand*\professur{\chair} -\newcommand*\moreauthor{\authormore} -\newcommand*\submitdate{\date} -\newcommand*\supervisorII[1]{% - \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% -} -\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} -\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} -\newcommand*\submittedon[1]{\gdef\datetext{#1}} -\newcommand*\dissertation{% - \thesis{\dissertationname}% - \let\supervisorname\refereename% - \let\supervisorothername\refereeothername% -} -\AtBeginDocument{% - \ifdef{\theglossary}{}{% - \providecommand*{\glossaryname}{Glossar} - \newenvironment{theglossary}[1][]{% - \PackageWarning{tudscrcomp}{% - Using the environment `theglossary' is not\MessageBreak% - recommended. You should rather use an appropriate\MessageBreak% - package such as glossaries% - }% - \let\bibname\glossaryname% - \bib@heading% - #1% - \list{}{% - \setlength\labelsep{\z@}% - \setlength\labelwidth{\z@}% - \setlength\itemindent{-\leftmargin}% - }% - }{\endlist} - \newcommand\glossitem[1]{\item[] #1\par}% - }% -} -\newif\if@tud@chapterpage@temp -\newcommand*\chapterpage{% - \global\@tud@chapterpage@temptrue% - \tud@chapterpage@wrn% -} -\newcommand*\tud@chapterpage@set[1][]{% - \if@tud@chapterpage@temp% - \if@tud@chapterpage% - \TUDoptions{chapterpage=false}% - \else% - \TUDoptions{chapterpage=true}% - \fi% - \fi% -} -\newcommand*\tud@chapterpage@unset[1][]{% - \tud@chapterpage@set% - \global\@tud@chapterpage@tempfalse% -} -\newcommand*\tud@chapterpage@wrn{% - \PackageWarning{tudscrcomp}{% - The command \string\chapterpage\space is not\MessageBreak% - recommended. You should use the same style for\MessageBreak% - chapters throughout the document - }% - \global\let\tud@chapterpage@wrn\relax% -} -\AtEndPreamble{% - \pretocmd{\tud@chapter}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@nchapter}}% - \apptocmd{\tud@chapter}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@nchapter}}% - \pretocmd{\tud@schapter}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@schapter}}% - \apptocmd{\tud@schapter}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@schapter}}% - \pretocmd{\tud@addchap}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@naddchap}}% - \apptocmd{\tud@addchap}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@naddchap}}% - \pretocmd{\tud@saddchap}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@saddchap}}% - \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@saddchap}}% +\PassOptionsToPackage{oldcolors}{tudscrcolor} +\@ifclassloaded{tudscrposter}{% + \RequirePackageWithOptions{tudscrcomp-poster}[\TUD@Version]% +}{% + \RequirePackageWithOptions{tudscrcomp-book}[\TUD@Version]% } \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls index 834515aff9e..c8ce821f938 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls @@ -7,6 +7,7 @@ %% tudscr-version.dtx (with options: `class,doc') %% tudscr-doc.dtx (with options: `class,doc') %% tudscr-manual.dtx (with options: `class,doc') +%% tudscr-misc.dtx (with options: `class,doc,xindy') %% %% ============================================================================ %% @@ -36,170 +37,926 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \newcommand*\TUD@ProvidesClass[3]{% - \newcommand*\TUDClassName@KOMA{#2}% - \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script ^^J#3 (#2)% ]% - \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% -} -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% } -\NeedsTeXFormat{LaTeX2e} -\TUD@ProvidesClass{tudscrdoc}{scrdoc}{% - internal source code documentation class% +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% } +\TUD@ProvidesClass{tudscrdoc}{scrartcl}{source code documentation class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-doc.dtx -\LoadClassWithOptions{scrdoc} -\setlength\marginparwidth{140pt} -\setlength\marginparsep{8pt} -\setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax} -\setlength\textwidth{% - \dimexpr\paperwidth-1in-\oddsidemargin-2\marginparsep\relax% +\RequirePackage{scrbase}[2013/12/19]% +\newcommand*\saved@maketitle{}% +\PassOptionsToClass{toc=left}{scrartcl}% +\AfterClass{scrartcl}{\let\saved@maketitle\@maketitle}% +\AfterClass{ltxdoc}{% + \let\@maketitle\saved@maketitle% + \codeline@indexfalse% +}% +\AfterPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]}% +\newcommand*\sd@saved@LoadClass{} +\let\sd@saved@LoadClass=\LoadClass +\renewcommand*\LoadClass[2][]{% + \begingroup + \edef\@tempc{#2}\def\@tempb{article}% + \ifx\@tempc\@tempb + \let\LoadClass\sd@saved@LoadClass + \def\@tempc{scrartcl}% + \fi + \edef\@tempc{% + \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}% + \@tempc } +\newcommand*\sd@saved@PassOptionsToClass{} +\let\sd@saved@PassOptionsToClass=\PassOptionsToClass +\renewcommand*\PassOptionsToClass[2]{% + \begingroup + \edef\@tempc{#2}\def\@tempb{article}% + \ifx\@tempc\@tempb + \def\@tempc{scrartcl}% + \fi + \edef\@tempc{% + \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{% + \@tempc}}% + \@tempc +} +\LoadClassWithOptions{ltxdoc} +\setcounter{IndexColumns}{2} +\DeclareOption{final}{\let\tudfinalflag\relax} +\DeclareOption{texindy}{\let\tudxdyflag\relax} +\DeclareOption{xindy}{\let\tudxdyflag\relax} +\DeclareOption{xdy}{\let\tudxdyflag\relax} +\ProcessOptions\relax \setlength\topmargin{-1in} \setlength\headheight{0pt} \setlength\headsep{30pt} -\setlength\footskip{1.25\headsep} -\setlength\textheight{\dimexpr\paperheight-2\headsep-\footskip\relax} -\AfterPackage{tudscrfonts}{\AtBeginDocument{\setlength\columnsep{10pt}}} +\setlength\footskip{1.5\headsep} +\setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax} +\setlength\marginparwidth{150pt} +\setlength\marginparsep{0pt} +\setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax} +\setlength\textwidth{% + \dimexpr\paperwidth-1in-\oddsidemargin-.5\headsep\relax% +} +\RequirePackage{tudscrbase}[\TUD@Version] \RequirePackage{dox}[2010/12/16] -\def\generalname{Allgemeines} -\title{% - \texttt{\filename}\thanks{% - Dies ist Version \fileversion\ von Datei \texttt{\filename}.% +\@ifpackagelater{dox}{2010/12/17}{% + \ClassWarning{\TUD@Class@Name}{% + Package `dox' was updated so some patches\MessageBreak% + are maybe outdated + }% +}{}% +\CheckCommand\m@cro@[2]{% + \endgroup \topsep\MacroTopsep \trivlist + \edef\saved@macroname{\string#2}% + #1 + \let\saved@indexname\saved@macroname + \else + \edef\saved@indexname{\expandafter\@gobble\string#2}% + \fi + \def\makelabel##1{\llap{##1}}% + \if@inlabel + \let\@tempa\@empty \count@\macro@cnt + \loop \ifnum\count@>\z@ + \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat + \edef\makelabel##1{\llap{\vtop to\baselineskip + {\@tempa\hbox{##1}\vss}}}% + \advance \macro@cnt \@ne + \else \macro@cnt\@ne \fi + \edef\@tempa{\noexpand\item[% + #1% + \noexpand\PrintMacroName + \else + \noexpand\PrintEnvName + \fi + {\string#2}]}% + \@tempa + \global\advance\c@CodelineNo\@ne + #1% + \SpecialMainIndex{#2}\nobreak + \DoNotIndex{#2}% + \else + \SpecialMainEnvIndex{#2}\nobreak + \fi + \global\advance\c@CodelineNo\m@ne + \ignorespaces +} +\CheckCommand*\changes@[3]{% + \protected@edef\@tempa{% + \noexpand\glossary{% + #1\levelchar + \ifx\saved@macroname\@empty + \space + \actualchar + \generalname + \else + \saved@indexname + \actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3% + }% + }% + \@tempa\endgroup\@esphack% +} +\ifdefined\tudxdyflag% + \renewcommand*\changes@[3]{% + \@tempswatrue% + \ifblank{#1}{\@tempswafalse}{}% + \ifblank{#3}{\@tempswafalse}{}% + \if@tempswa% + \protected@edef\@tempa{% + \noexpand\glossary{% + #1\levelchar% + \ifx\saved@macroname\@empty% + \generalname% + \else% + \implementationname% + \fi% + \levelchar + \ifx\saved@macroname\@empty\else% + \saved@indexname + \ifx\saved@idxtype\@empty\else% + \space\saved@idxtype + \fi% + \actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar% + \ifx\saved@idxtype\@empty\else% + \space(\saved@idxtype)% + \fi% + :\levelchar + \fi + #2 #3% + \actualchar% + #3% (#2)% + }% + }% + \else% + \let\@tempa\relax% + \fi% + \@tempa\endgroup\@esphack% + }% +\else% + \renewcommand*\changes@[3]{% + \protected@edef\@tempa{% + \noexpand\glossary{% + #1\levelchar + \ifx\saved@macroname\@empty + \quotechar! + \actualchar + \generalname + \else + \saved@indexname + \actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3% + }% + }% + \@tempa\endgroup\@esphack% + }% +\fi% +\CheckCommand*\@wrglossary[1]{% + \protected@write\@glossaryfile{}% + {\string\glossaryentry{#1}{\thepage}}% + \endgroup + \@esphack% +} +\def\filesep{?-} +\def\@wrglossary#1{% + \ifx\special@index\index% + \@tempswafalse% + \else% + \@tempswatrue% + \fi% + \ifx\saved@macroname\@empty% + \@tempswafalse% + \fi% + \if@tempswa% + \global\advance\c@CodelineNo\@ne + \protected@write\@glossaryfile{}{% + \string\glossaryentry{#1}{\filesep\number\c@CodelineNo}% + } + \global\advance\c@CodelineNo\m@ne + \else% + \protected@write\@glossaryfile{}{\string\glossaryentry{#1}{\thepage}} + \fi% + \endgroup + \@esphack% +} +\renewcommand*\generalname{Allgemein} +\newcommand*\implementationname{Implementierung} +\newcommand*\hypersourcedef[1]{} +\newcommand*\hypersource@def{} +\newcommand*\hypersourceref[1]{#1} +\newcommand*\hypersource@ref[2][]{} +\PassOptionsToPackage{hyperindex=false}{hyperref} +\AfterPackage{hyperref}{% + \renewcommand*\hypersourcedef[1]{% + \ifstr{#1}{\hypersource@def}{}{% + \Hy@raisedlink{\hyperdef{}{source:#1}{}}% + \xdef\hypersource@def{#1}% + }% + }% + \renewcommand*\hypersourceref[1]{\hypersource@ref{#1}}% + \renewcommand*\main[1]{\hypersource@ref[\underline]{#1}}% + \renewcommand*\hypersource@ref[2][\@firstofone]{% + \begingroup% + \def\@tempa##1-##2\relax{% + \IfArgIsEmpty{##2}{% + \hyperlink{page.\@tempc}{#1{\@tempc}}% + }{% + \hyperref{}{}{source:\@tempc}{#1{\@tempc}}% + }% + }% + \def\@tempb##1{% + \def\@tempc{##1}% + \expandafter\@tempa##1-\relax% + }% + \forcsvlist\@tempb{#2}% + \endgroup% + }% +} +\CheckCommand*\@doxcreatespecialmainindex[3]{% + \expandafter\def\csname SpecialMain#1Index\endcsname##1{% + \@bsphack% + \special@index{##1\actualchar{\string\ttfamily\space##1} (#2) + \encapchar main}% + \special@index{#3:\levelchar##1\actualchar{\string\ttfamily\space##1} + \encapchar main}% + \@esphack% + }% +} +\patchcmd{\@doxcreatespecialmainindex}{\actualchar}{% + \space(#2)\actualchar% +}{}{\tud@patch@wrn{@doxcreatespecialmainindex}} +\patchcmd{\@doxcreatespecialmainindex}{\@esphack}{% + \@esphack\hypersourcedef{\filesep\number\c@CodelineNo}% +}{}{\tud@patch@wrn{@doxcreatespecialmainindex}} +\CheckCommand*\@doxcreatespecialmainmacrolikeindex[3]{% + \expandafter\def\csname SpecialMain#1Index\endcsname##1{% + \@SpecialIndexHelper@##1\@nil + \@bsphack% + \special@index{\@gtempa\actualchar + \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar + \space(#2)\encapchar main}% + \special@index{#3:\levelchar\@gtempa\actualchar% + \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar + \encapchar main}% + \@esphack% + }% +} +\patchcmd{\@doxcreatespecialmainmacrolikeindex}{\actualchar}{% + \space(#2)\actualchar% +}{}{\tud@patch@wrn{@doxcreatespecialmainmacrolikeindex}} +\patchcmd{\@doxcreatespecialmainmacrolikeindex}{\@esphack}{% + \@esphack\hypersourcedef{\filesep\number\c@CodelineNo}% +}{}{\tud@patch@wrn{@doxcreatespecialmainmacrolikeindex}} +\CheckCommand*\@doxcreatespecialindex[3]{% + \expandafter\def\csname Special#1Index\endcsname##1{% + \@bsphack% + \index{##1\actualchar{\protect\ttfamily##1} (#2)\encapchar usage}% + \index{#3:\levelchar##1\actualchar{\protect\ttfamily##1} + \encapchar usage}% + \@esphack% + }% +} +\patchcmd{\@doxcreatespecialindex}{\actualchar}{% + \space(#2)\actualchar% +}{}{\tud@patch@wrn{@doxcreatespecialindex}} +\CheckCommand*\@doxcreatespecialmacrolikeindex[3]{% + \expandafter\def\csname Special#1Index\endcsname##1{% + \@SpecialIndexHelper@##1\@nil + \@bsphack% + \index{\@gtempa\actualchar + \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar + \space(#2)\encapchar usage}% + \index{#3:\levelchar\@gtempa\actualchar + \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar + \encapchar usage}% + \@esphack% + }% +} +\patchcmd{\@doxcreatespecialmacrolikeindex}{\actualchar}{% + \space(#2)\actualchar% +}{}{\tud@patch@wrn{@doxcreatespecialmacrolikeindex}} +\CheckCommand\doxitem[4][]{% + \@nameuse{dox@macrolike\dox@macrolikedefault}% + \def\dox@idxtype{#3}% + \setkeys{dox}{#1} + \@ifundefined{Print#2Name}{% + \ifdox@macrolike + \expandafter\def\csname Print#2Name\endcsname##1{% + \strut\MacroFont\string ##1\ } + \else + \expandafter\def\csname Print#2Name\endcsname##1{% + \strut\MacroFont ##1\ } + \fi}{} + \ifdox@macrolike + \def\@doxexpr{\@doxcreatespecialmainmacrolikeindex{#2}}% + \else + \def\@doxexpr{\@doxcreatespecialmainindex{#2}}% + \fi + \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% + \@ifundefined{PrintDescribe#2}{% + \ifdox@macrolike + \expandafter\def\csname PrintDescribe#2\endcsname##1{% + \strut\MacroFont\string ##1\ } + \else + \expandafter\def\csname PrintDescribe#2\endcsname##1{% + \strut\MacroFont ##1\ } + \fi}{} + \ifdox@macrolike + \def\@doxexpr{\@doxcreatespecialmacrolikeindex{#2}}% + \else + \def\@doxexpr{\@doxcreatespecialindex{#2}}% + \fi + \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% + \@doxcreatedescribe{#2} + \@doxcreateenv{#2}{#3}% +} +\CheckCommand\doxitem[4][]{% + \@nameuse{dox@macrolike\dox@macrolikedefault}% + \def\dox@idxtype{#3}% + \setkeys{dox}{#1} + \@ifundefined{Print#2Name}{% + \ifdox@macrolike + \expandafter\def\csname Print#2Name\endcsname##1{% + \strut\MacroFont\string ##1\ } + \else + \expandafter\def\csname Print#2Name\endcsname##1{% + \strut\MacroFont ##1\ } + \fi}{} + \ifdox@macrolike + \def\@doxexpr{\@doxcreatespecialmainmacrolikeindex{#2}}% + \else + \def\@doxexpr{\@doxcreatespecialmainindex{#2}}% + \fi + \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% + \@ifundefined{PrintDescribe#2}{% + \ifdox@macrolike + \expandafter\def\csname PrintDescribe#2\endcsname##1{% + \strut\MacroFont\string ##1\ } + \else + \expandafter\def\csname PrintDescribe#2\endcsname##1{% + \strut\MacroFont ##1\ } + \fi}{} + \ifdox@macrolike + \def\@doxexpr{\@doxcreatespecialmacrolikeindex{#2}}% + \else + \def\@doxexpr{\@doxcreatespecialindex{#2}}% + \fi + \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% + \@doxcreatedescribe{#2} + \@doxcreateenv{#2}{#3}% +} +\CheckCommand*\@doxcreateenv[2]{% + \expandafter\def\csname #2\endcsname{% + \@ifnextchar[%] + {\@doxenv{#1}}{\@doxenv{#1}[]}} + \expandafter\let\csname end#2\endcsname\endtrivlist% +} +\pretocmd{\@doxcreateenv}{% + \ifdox@macrolike% + \def\@doxexpr{\@doxcreatemacrolikeindexname{#1}}% + \else% + \def\@doxexpr{\@doxcreateindexname{#1}}% + \fi% + \expandafter\@doxexpr\expandafter{\dox@idxtype}% +}{}{\tud@patch@wrn{@doxcreateenv}} +\newcommand*\saved@idxtype{} +\def\@doxcreatemacrolikeindexname#1#2{% + \expandafter\def\csname Set#1IndexName\endcsname##1{% + \edef\saved@indexname{\expandafter\@gobble##1}% + \edef\saved@idxtype{#2}% + }% +} +\def\@doxcreateindexname#1#2{% + \expandafter\def\csname Set#1IndexName\endcsname##1{% + \let\saved@indexname##1% + \edef\saved@idxtype{#2}% }% } -\author{Falk Hanisch\thanks{\tudscrmail}} -\date{\filedate} -\DoNotIndex{\",\\,,\if,\@} +\CheckCommand\@@doxenv[2]{% + \endgroup% + \topsep\MacroTopsep \trivlist% + \edef\saved@macroname{\string#2}% + \def\makelabel##1{\llap{##1}}% + \if@inlabel% + \let\@tempa\@empty% + \count@\macro@cnt% + \loop\ifnum\count@>\z@% + \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne% + \repeat% + \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}% + \advance\macro@cnt\@ne% + \else% + \macro@cnt\@ne% + \fi% + \ifdox@noprint% + \item% + \else% + \edef\@tempa{% + \noexpand\item[% + \expandafter\noexpand\csname Print#1Name\endcsname{\saved@macroname}]}% + \@tempa% + \fi% + \ifdox@noindex\else% + \global\advance\c@CodelineNo\@ne% + \@nameuse{SpecialMain#1Index}{#2}\nobreak% + \global\advance\c@CodelineNo\m@ne% + \fi% + \ignorespaces% +} +\patchcmd{\@@doxenv}{\ignorespaces}{% + \csname Set#1IndexName\endcsname{\saved@macroname}\ignorespaces% +}{}{\tud@patch@wrn{@@doxenv}} +\def\SetMacroIndexName#1{% + \edef\saved@indexname{\expandafter\@gobble#1} + \let\saved@idxtype\@empty% +} +\def\SetEnvIndexName#1{% + \let\saved@indexname#1% + \edef\saved@idxtype{environment}% +} +\CheckCommand*\SpecialMainMacroIndex[1]{% + \SpecialMainIndex{#1}\nobreak% + \DoNotIndex{#1}% +} +\apptocmd{\SpecialMainMacroIndex}{% + \hypersourcedef{\filesep\number\c@CodelineNo}% +}{}{\tud@patch@wrn{SpecialMainMacroIndex}} +\doxitem[idxtype=Umgebung]{Env}{environment}{Umgebungen} \doxitem[idxtype=Option]{Option}{option}{Optionen} \doxitem[idxtype=Parameter]{Parameter}{parameter}{Parameter} -\doxitem[idxtype=Seitenstil]{Pagestyle}{pagestyle}{Seitenstile} +\doxitem[idxtype=Seitenstil]{PageStyle}{pagestyle}{Seitenstile} \doxitem[idxtype=Layer]{Layer}{layer}{Layer (Seitenstilebenen)} \doxitem[macrolike,idxtype=L\noexpand\"ange]{Length}{length}{L\noexpand\"angen} \doxitem[idxtype=Z\noexpand\"ahler]{Counter}{counter}{Z\noexpand\"ahler} \doxitem[idxtype=Farbe]{Color}{color}{Farben} \doxitem[macrolike,idxtype=Lok.]{Locale}{locale}{Lokalisierungsvariablen} \doxitem[macrolike,idxtype=Feld]{Field}{field}{Eingabefelder} -\DeclareRobustCommand*{\cls}[1]{\mbox{\textsf{\textbf{#1}}}} -\DeclareRobustCommand*{\pkg}[1]{\mbox{\textsf{\textbf{#1}}}} -\DeclareRobustCommand*{\opt}[1]{\mbox{\texttt{#1}}} -\DeclareRobustCommand*{\val}[1]{\mbox{\texttt{#1}}} -\DeclareRobustCommand*{\pgs}[1]{\mbox{\texttt{#1}}} -\DeclareRobustCommand*{\env}[1]{\mbox{\texttt{#1}}} +\doxitem[idxtype=Schriftelement]{Font}{KOMAfont}{Schriftelemente} +\ifdefined\tudxdyflag + \newcommand*\tud@write@replace{} + \newwrite\tud@write@replace + \newcommand*\tud@read@replace{} + \newread\tud@read@replace + \def\actualchar{<&1&>} + \def\quotechar{<&2&>} + \def\levelchar{<&3&>} + \begingroup + \endlinechar=-1\relax% + \def\tud@reserved#1#2{% + \immediate\openin\tud@read@replace=\jobname.#1\relax% + \immediate\openout\tud@write@replace=\jobname-xdy.#1\relax% + \@tempswafalse% + \loop\unless\ifeof\tud@read@replace% + \readline\tud@read@replace to\tud@line@replace% + \tud@replace\tud@line@replace{"}{""}% + \tud@replace\tud@line@replace{!}{"!}% + \tud@replace\tud@line@replace{:}{":}% + \tud@replace\tud@line@replace{@}{"@}% + \tud@replace\tud@line@replace{\"@}{"\@backslashchar"@}% + \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter{\actualchar}{@}% + \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter{\quotechar}{"}% + \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter{\levelchar}{!}% + \tud@replace\tud@line@replace{" @}{}% + \ifeof\tud@read@replace\else% + \immediate\write\tud@write@replace{% + \unexpanded\expandafter{\tud@line@replace}% + }% + \@tempswatrue% + \fi% + \repeat% + \immediate\closein\tud@read@replace% + \immediate\closeout\tud@write@replace% + \ifnum\pdfshellescape=\@ne\relax% + \if@tempswa% + \immediate\write18{% + texindy\space% + -o \jobname.#2\space% + -M \@currname-#2.xdy\space% + -L german-din\space% + -t \jobname-#2.xlg\space% + \jobname-xdy.#1 + }% + \else% + \immediate\openout\tud@write@replace=\jobname.#2\relax% + \immediate\closeout\tud@write@replace% + \fi% + \fi% + }% + \tud@reserved{idx}{ind}% + \tud@reserved{glo}{gls}% + \endgroup +\else + \ifnum\pdfshellescape=\@ne\relax% + \immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}% + \immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}% + \fi% +\fi +\IndexPrologue{% + \addsec{Index}% + Unterstrichene Zahlen, die gegebenenfalls mit einem Hyperlink versehen sind, + verweisen auf die \ifcodeline@index Codezeile der \fi Definition, alle + weiteren sind \ifcodeline@index Zeilennummern\else Seitenzahlen\fi, wo der + jeweilige Eintrag verwendet wird. +} +\GlossaryPrologue{\addsec{\"Anderungsliste}} +\DeclareNewTOC[% + type=todo,% + listname={Liste der noch zu erledigenden Punkte},% + name=ToDo,% + tocentryindent=\z@,% + owner=\@currname,% +]{tdo} +\setuptoc{tdo}{totoc} +\newcommand*\PrintToDos{\ifdefined\tudfinalflag\else\listoftodos\fi} +\patchcmd{\@docinclude}{% + \let\@ltxdoc@PrintIndex\PrintIndex + \let\PrintIndex\relax + \let\@ltxdoc@PrintChanges\PrintChanges + \let\PrintChanges\relax +}{% + \let\@ltxdoc@PrintIndex\PrintIndex + \let\PrintIndex\relax + \let\@ltxdoc@PrintChanges\PrintChanges + \let\PrintChanges\relax + \let\@ltxdoc@PrintToDos\PrintToDos + \let\PrintToDos\relax +}{}{\tud@patch@wrn{@docinclude}} +\patchcmd{\@docinclude}{% + \let\PrintIndex\@ltxdoc@PrintIndex + \let\PrintChanges\@ltxdoc@PrintChanges +}{% + \let\PrintIndex\@ltxdoc@PrintIndex + \let\PrintChanges\@ltxdoc@PrintChanges + \let\PrintToDos\@ltxdoc@PrintToDos +}{}{\tud@patch@wrn{@docinclude}} \newcommand*\ToDo[2][]{% - \@ifnextchar[ - {\@ToDo{#2}}{\@ToDo{#2}[]} + \kernel@ifnextchar[{\@ToDo{#2}}{\@ToDo{#2}[]}% } \newcommand*\@ToDo{} -\newcommand*\@@ToDo{}% \def\@ToDo#1[#2]{% \ifdefined\tudfinalflag\else% - \def\@@ToDo{\ifstr{#2}{}{ToDo}{ToDo: #2}}% - \endgraf% - \hfuzz0.8pt% - \leavevmode\marginpar{\raggedleft\fbox{\@@ToDo\strut}}% - \fbox{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1\strut}}% - \endgraf% + \begingroup% + \csuse{phantomsection}% + \def\tud@reserved{\ifxblank{#2}{ToDo: ??}{ToDo: #2}}% + \endgraf% + \hfuzz0.8pt% + \leavevmode\marginpar{\raggedleft\fbox{\tud@reserved\strut}}% + \fbox{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1\strut}}% + \endgraf% + \global\advance\c@CodelineNo\@ne + \addxcontentsline{tdo}{todo}{#2:~#1~(\filesep\number\c@CodelineNo)}% + \global\advance\c@CodelineNo\m@ne + \endgroup% \fi% -}% -\DeclareOption{final}{\let\tudfinalflag\relax} -\ProcessOptions\relax -\AfterPackage{hyperref}{% - \pdfstringdefDisableCommands{\def\TUDScript{TUD-KOMA-Script}}% -} -\AfterPackage{babel}{% - \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}% } \AtBeginDocument{% - \providecommand*\url[1]{\texttt{#1}}% - \providecommand*\texorpdfstring[2]{#1}% + \@ifpackageloaded{etoolbox}{}{% + \providecommand*\newrobustcmd{\DeclareRobustCommand}% + }% + \newrobustcmd*\app[1]{\mbox{\textsl{\textbf{#1}}}} + \newrobustcmd*\cls[1]{\mbox{\textsf{\textbf{#1}}}} + \newrobustcmd*\pkg[1]{\mbox{\textsf{\textbf{#1}}}} + \newrobustcmd*\opt[1]{\mbox{\texttt{#1}}} + \newrobustcmd*\val[1]{\mbox{\texttt{#1}}} + \newrobustcmd*\pgs[1]{\mbox{\texttt{#1}}} + \newrobustcmd*\env[1]{\mbox{\texttt{#1}}} + \newrobustcmd*\file[1]{\mbox{\texttt{#1}}} + \@ifpackageloaded{hyperref}{% + \pdfstringdefDisableCommands{% + \def\TUDScript{TUD-KOMA-Script}% + \let\cls\@firstofone% + \let\pkg\@firstofone% + }% + }{% + \RequirePackage{url}[2013/09/16]% + \providecommand*\hypersetup[1]{}% + \providecommand*\phantomsection{}% + \providecommand*\texorpdfstring[2]{#1}% + }% \@ifpackageloaded{babel}{}{% - \ClassWarning{\TUDClassName}{Package `babel' not loaded}% + \ClassWarning{\TUD@Class@Name}{Package `babel' not loaded}% \let\selectlanguage\@gobble% \let\glqq\relax% \let\grqq\relax% }% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\TUDClassName}{Package `csquotes' not loaded}% - \providecommand\enquote[1]{\glqg#1\grqq{}}% + \ClassWarning{\TUD@Class@Name}{Package `csquotes' not loaded}% + \providecommand\enquote[1]{\glqq#1\grqq{}}% }% - \providecommand*\ifdin[2]{#2}% -} -\AtBeginDocument{% - \@ifundefined{tud@cdfont}{\def\tud@cdfont{0}}{}% - \ifnum\tud@cdfont>\z@\relax% true/heavy + \@ifpackageloaded{tudscrfonts}{% \RequirePackage{mweights}[2013/07/21]% - \def\mddefault{m}% - \def\mdseries@tt{m}% - \renewcommand*\@pnumwidth{1.7em}% - \else% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \def\mddefault{m}% + \def\mdseries@tt{m}% + \renewcommand*\@pnumwidth{1.7em}% + \renewcommand*\@tocrmarg{2.7em}% + \fi% + \setlength\columnsep{10pt}% + }{% \RequirePackage{lmodern}[2009/10/30]% - \fi% -}% + \providecommand*\ifdin[2]{#2}% + \providecommand*\textuln[1]{\textsf{#1}}% + \providecommand*\texturn[1]{\textuln{#1}}% + \providecommand*\textubn[1]{\textbf{\textuln{#1}}}% + \providecommand*\textuxn[1]{\textubn{#1}}% + \providecommand*\textuls[1]{\textsl{\textuln{#1}}}% + \providecommand*\texturs[1]{\textuls{#1}}% + \providecommand*\textubs[1]{\textbf{\textuls{#1}}}% + \providecommand*\textuxs[1]{\textubs{#1}}% + \providecommand*\textdbn[1]{\textubn{#1}}% + }% + \title{% + \file{\filename}\thanks{% + Dies ist Version \fileversion\nobreakspace{}von Datei \file{\filename}.% + }% + }% + \author{Falk Hanisch\thanks{\tudscrmail}}% + \date{\filedate}% +} %%% From File: tudscr-manual.dtx +\RequirePackage{scrhack}[2014/02/27] \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} -\newcommand*\vTUDScript{} +\newcommand*\vTUDScript{v\TUDScriptVersionNumber} +\newcommand*\vKOMAScript{v\TUD@Version@KOMA} +\newcommand*\tud@english[1]{#1} \AtBeginDocument{% - \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% - \edef\@tempa{\TUDVersion}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \providecommand*\iflanguageloaded[3]{#3}% + \iflanguageloaded{english}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% + }{}% } -\newcommand*\vKOMAScript{v3.17\xspace} -\RequirePackage{scrhack}[2014/02/27] -\newcommand*\CD{Corporate Design\xspace} -\newcommand*\CDs{Corporate Designs\xspace} +\newcommand*\CD{\tud@english{Corporate Design}\xspace} +\newcommand*\CDs{\tud@english{Corporate Designs}\xspace} \newcommand*\TUD{Technische Universit\"at Dresden\xspace} \newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\DDC{% - \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em - N\kern.1em-\kern.1em concept}\xspace% -} -\AfterPackage*{babel}{% - \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% - \ifin@% - \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} - \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} - \fi +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\AtBeginDocument{% +\newrobustcmd*\DDC{% + \mbox{% + D\kern.05em R\kern.05em E\kern.05em S\kern.05em % + D\kern.05em E\kern.05em N\kern.1em-\kern.1em concept% + }\xspace% +} } +\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} +\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +%%% From File: tudscr-misc.dtx +\catcode`\#=12 +\newcommand*\@hashchar{#} +\catcode`\#=6 +\newcommand*\tud@lst@def{% + \newcommand*\tud@lst@values{}% + \newif\if@tud@lst@multi% + \newcommand*\tud@lst@init{% + \let\tud@lst@values\relax% + \@tud@lst@multifalse% + }% + \newcommand*\tud@lst@add[1]{% + \ifx\tud@lst@values\relax\else% + \@tud@lst@multitrue% + \fi% + \listadd\tud@lst@values{##1}% + }% + \newcommand*\tud@lst@process{% + \def\tud@reserved{}% + \if@tud@lst@multi% + \def\tud@reserved{\subsubitem}% + \efill% + \fi% + \forlistloop\tud@reserved{\tud@lst@values}% + }% +} +\begingroup +\ifdef{\tudxdyflag}{% +\newcommand*\tud@write@xdy{} +\newwrite\tud@write@xdy +\newif\if@tud@xdy@glo +\newcommand*\tud@xdy@create[2][theindex]{% + \IfFileExists{\@currname-#2.xdy}{}{% + \ifstr{#1}{theglossary}{\@tud@xdy@glotrue}{\@tud@xdy@glofalse}% + \openout\tud@write@xdy=\@currname-#2.xdy\relax% + \write\tud@write@xdy{(require "texindy.xdy")}% + \write\tud@write@xdy{% + (markup-index^^J% + \space\space:open^^J% + "\string\begin{#1}^^J% + \space\space% + \string\providecommand*\string\lettergroupDefault[1]{\@percentchar^^J% + \@spaces\string\par% + \string\centerline{\string\textbf{\string\textsf{Symbole}}}% + \string\par\@percentchar^^J% + \@spaces\string\nopagebreak\@percentchar^^J% + \space\space}\@percentchar^^J% + \space\space% + \string\providecommand*\string\lettergroup[1]{\@percentchar^^J% + \@spaces\string\par% + \string\centerline{\string\textbf{\string\textsf{\@hashchar1}}}% + \string\par\@percentchar^^J% + \@spaces\string\nopagebreak\@percentchar^^J% + \space\space}\@percentchar^^J% + \space\space\string\makeatletter\@percentchar^^J% + \space\space\string\scan@allowedfalse\@percentchar% + }% + \if@tud@xdy@glo% + \write\tud@write@xdy{% + \space\space\string\newcommand*\string\@lettergroup{}\@percentchar^^J% + \space\space% + \string\def\string\@lettergroup\@hashchar1\string\relax% + {\string\lettergroup{\@hashchar1}}\@percentchar^^J% + \space\space\string\tud@lst@def\@percentchar% + }% + \fi% + \write\tud@write@xdy{% + "^^J% + \space\space:close "\string~n\string~n\string\end{#1}\string~n"^^J% + \space\space:hierdepth 3^^J% + )% + }% + \write\tud@write@xdy{% + (define-location-class^^J% + \space\space"arabic-page-numbers" ("arabic-numbers")% + \space:min-range-length 1^^J% + )^^J% + (define-alphabet "AlphaExtended"^^J% + \space(^^J% + \space\space"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"^^J% + \space\space"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"^^J% + \space\space"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"^^J% + \space\space"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"^^J% + \space\space"?"^^J% + \space)^^J% + )^^J% + (define-location-class^^J% + \space\space"part" ("AlphaExtended" :sep "-" "arabic-numbers")% + \space:min-range-length 1^^J% + )^^J% + (markup-range :sep "--")% + }% + \if@tud@xdy@glo% + \write\tud@write@xdy{% + (markup-locclass-list% + \space:open "\string\pfill\string\hypersourceref{" :close "}\string\relax"% + )% + }% + \else% + \write\tud@write@xdy{% + (markup-locclass-list% + \space:open "\string\pfill\space"% + \space:close "\string\relax"% + )% + }% + \fi% + \write\tud@write@xdy{% + (merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% + ^^J% + (merge-rule% + \space"\string^(@+)([\string^@~n]*)"% + \space"\string\2\string~e\string\1"% + \space:eregexp :again% + )^^J% + (merge-rule% + \space"(.*)(@@@@)([\string^@~n]*)"% + \space"\string\1@@@\string\3\string~e"% + \space:again :eregexp% + )^^J% + (merge-rule% + \space"(.*)(@@@)([\string^@~n]*)"% + \space"\string\1@@\string\3\string~e"% + \space:again :eregexp% + )^^J% + (merge-rule% + \space"(.*)(@@)([\string^@~n]*)"% + \space"\string\1@\string\3\string~e"% + \space:eregexp :again% + )^^J% + (merge-rule% + \space"(.*?)(@)([\string^@~n]*)"% + \space"\string\1\string~b\string\3"% + \space:eregexp :again% + ) + }% + \if@tud@xdy@glo% + \write\tud@write@xdy{% + (markup-letter-group% + \space:open-head "\string~n\space\space\string\@gobble{"% + \space:close-head "}"% + )^^J% + (markup-indexentry-list% + \space:sep "\string~n\string~n\space\space\string\indexspace\string~n"% + \space:depth 0% + )^^J% + (markup-indexentry\@spaces\space\space% + :open "\string~n\space\space\string\@lettergroup\space"\space:depth 0% + )^^J% + (markup-indexentry-list :open "\string\relax" :depth 1)^^J% + (markup-indexentry\@spaces\space\space% + :open "\string~n\space\space\string\item\space" :depth 1% + )^^J% + (markup-indexentry-list :open "\string\efill" :depth 2)^^J% + (markup-indexentry\@spaces\space\space% + :open "\string~n\@spaces\string\subitem\space" :depth 2% + )^^J% + (markup-indexentry-list^^J% + \space\space:open \space"\string\tud@lst@init"^^J% + \space\space:close "\string~n \@spaces\space\string\tud@lst@process"^^J% + \space\space:depth 3^^J% + )^^J% + (markup-indexentry^^J% + \space\space:open \space"\string~n\@spaces\space\string\tud@lst@add{"^^J% + \space\space:close "}"^^J% + \space\space:depth 3^^J% + )% + }% + \else% + \write\tud@write@xdy{% + (markup-indexentry-list :open "\string\efill" :depth 1)% + }% + \fi% + \if@tud@xdy@glo\else% + \write\tud@write@xdy{% + (define-attributes (("main" "usage" "default")))^^J% + (markup-locref :attr "main"% + \space\space:open "\string\main{"\space\space:close "}"% + )^^J% + (markup-locref :attr "usage"% + \space:open "\string\usage{"\space:close "}"% + )% + }% + \fi% + \closeout\tud@write@xdy% + }% +} +\tud@xdy@create{ind} +\tud@xdy@create[theglossary]{gls} +}{} +\endgroup \endinput %% %% End of file `tudscrdoc.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty index 1b028cd45f7..b4b704fdb7c 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty @@ -4,15 +4,15 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package') -%% tudscr-fonts.dtx (with options: `package,identify') -%% tudscr-base.dtx (with options: `load') -%% tudscr-comp.dtx (with options: `package,preset,fonts') -%% tudscr-fonts.dtx (with options: `package,option') -%% tudscr-comp.dtx (with options: `package,option,fonts') -%% tudscr-misc.dtx (with options: `package,execute,fonts') -%% tudscr-fonts.dtx (with options: `package,body') -%% tudscr-comp.dtx (with options: `package,body,fonts') +%% tudscr-version.dtx (with options: `package,fonts') +%% tudscr-fonts.dtx (with options: `package,fonts,identify') +%% tudscr-base.dtx (with options: `package,fonts,load') +%% tudscr-fonts.dtx (with options: `package,fonts,option') +%% tudscr-comp.dtx (with options: `package,fonts,option') +%% tudscr-misc.dtx (with options: `package,fonts,execute') +%% tudscr-fonts.dtx (with options: `package,fonts,body') +%% tudscr-comp.dtx (with options: `package,fonts,body') +%% tudscr-misc.dtx (with options: `package,fonts,body') %% %% ============================================================================ %% @@ -42,136 +42,126 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-fonts.dtx -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{% - tudscrfonts% -}[% - 2016/06/17 v2.04e TUD-KOMA-Script - package - (corporate design fonts)% +\ProvidesPackage{tudscrfonts}[% + 2016/07/26 v2.05 TUD-KOMA-Script + package (corporate design fonts)% ] -\ifcsname KOMAClassName\endcsname\else% - \RequirePackage{scrextend}[2013/12/19]% +\ifcsname KOMAClassName\endcsname\else + \RequirePackage{scrextend}[2013/12/19] \fi -\RequirePackage{trimspaces}[2009/09/17] +\@tempswafalse% +\@for\@tempa:={% + tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,% + tudposter,tudmathposter,tudscrbookold,tudscrreprtold,tudscrartclold% +}\do{% + \@ifclassloaded{\@tempa}{% + \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi% + }{}% +}% +\if@tempswa% + \@ifpackageloaded{fix-tudscrfonts}{}{% + \PackageWarning{tudscrfonts}{% + As you loaded class `\@tempb', you should\MessageBreak% + load `fix-tudscrfonts' before the class\MessageBreak% + with `\string\RequirePackage'% + }% + }% +\fi% %%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] -%%% From File: tudscr-comp.dtx -\newif\if@tud@oldclass -\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudposter}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudmathposter}{\@tud@oldclasstrue}{}% -\newif\if@tud@oldscrclass -\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}% +\RequirePackage{tudscrbase}[\TUD@Version] %%% From File: tudscr-fonts.dtx -\newif\if@tud@univers -\newif\if@tud@dinbold -\newcommand*\tud@univers{lun} -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% - \PackageWarning{tudscrfonts} - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -\AtEndOfPackage% -{% - \TUD@key{fontspec}[]% - {% - \PackageError{tudscrfonts}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - package `tudscrfonts' - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -\newcommand*\tud@cdfont{1} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% \or% nohead + \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}% \or% head + \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}% \or% heavyhead + \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}% \or% nomath \TUDoptions{cdmath=false}% \or% math @@ -186,16 +176,38 @@ \TUDoptions{fontspec=false}% \fi% \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } \bool@lock{@tud@cdmath} @@ -210,10 +222,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -226,27 +238,51 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} %%% From File: tudscr-comp.dtx -\newcommand*\TUD@deprecated@key[2]{% +\newcommand*\TUD@key@deprecated[2]{% \PackageWarning{tudscrfonts}% {% - The option key `#1' is deprecated.\MessageBreak% + The option key `#1' is deprecated\MessageBreak% It's recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } +\TUD@key{fontspec}[true]{% + \PackageWarning{tudscrfonts}% + {% + The option key `fontspec' is deprecated\MessageBreak% + You should load the package `fontspec' manually% + }% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% +} +\AtEndOfPackage% +{% + \TUD@key{fontspec}[]% + {% + \PackageError{tudscrfonts}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + package `tudscrfonts' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@enabled% + \RequirePackage{fontspec}[2014/06/21]% + \fi% +} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% \fi% \fi% } @@ -254,9 +290,9 @@ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -264,9 +300,9 @@ \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{heavyfont}{cdfont=heavy}% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% \else% - \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -274,9 +310,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@key@deprecated{din}{cdfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% \fi% \fi% } @@ -284,9 +320,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@key@deprecated{nodin}{cdfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% \fi% \fi% } @@ -294,9 +330,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% \fi% \fi% } @@ -304,9 +340,9 @@ \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% + \TUD@key@deprecated{sansmath}{cdmath=true}% \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% \fi% \fi% } @@ -314,31 +350,31 @@ \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% + \TUD@key@deprecated{serifmath}{cdmath=false}% \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% \fi% \fi% } \newcommand*\tud@v@comp{\tud@v@last} \TUD@key{tudscrver}[last]{% - \ifcsvoid{tud@v@#1}{% - \def\tud@v@comp{0}% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% \PackageWarningNoLine{tudscrfonts}% {% - You have set option `tudscrver' to `#1', but\MessageBreak% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \FamilyKeyStateProcessed% + \def\tud@v@comp{0}% }{% \PackageInfoNoLine{tudscrfonts}% {% - Switching compatibility level to `#1'% + Switching compatibility level to `\@tempa'% }% - \edef\tud@v@comp{\@nameuse{tud@v@#1}}% - \FamilyKeyStateProcessed% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% + \FamilyKeyStateProcessed% } \AtEndOfPackage% {% @@ -352,155 +388,311 @@ \FamilyKeyStateProcessed% }% } -\@namedef{tud@v@first}{0} -\@namedef{tud@v@2.02}{0} -\@namedef{tud@v@v2.02}{0} -\@namedef{tud@v@2.03}{1} -\@namedef{tud@v@v2.03}{1} -\@namedef{tud@v@2.04}{2} -\@namedef{tud@v@v2.04}{2} -\@namedef{tud@v@last}{2} -\newcommand*\tud@ifverlower[1]{% - \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\csdef{tud@v@2.01a}{0} +\csdef{tud@v@2.01b}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.03}{1} +\csdef{tud@v@2.03a}{1} +\csdef{tud@v@2.04}{2} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% } %%% From File: tudscr-misc.dtx +\newcommand*\TUD@SpecialOptionAtDocument[1]{} \DeclareOption*{\KOMAoptions{\CurrentOption}} -\TUDExecuteOptions{cdfont=true} \TUDProcessOptions\relax %%% From File: tudscr-fonts.dtx -\newcommand*\tud@font@greek@loop[1]{% - \@for\@tempa:={% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% -} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath +\newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \PackageInfoNoLine{tudscrfonts}% - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \PackageWarningNoLine{tudscrfonts}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \PackageWarningNoLine{tudscrfonts}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} - \PackageWarningNoLine{tudscrfonts}% - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \PackageWarningNoLine{tudscrfonts}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } -\newcommand*\tud@font@init{% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% - \undef\tud@font@init@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% +\RequirePackage{trimspaces}[2009/09/17] +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% + \PackageWarning{tudscrfonts}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \PackageWarning{tudscrfonts}% + {`DIN Bold' fonts not found}% + \fi% \fi% - }% - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% + \fi% + \ifcase\tud@cdfont@num\relax% false + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{false}% + \else% true/heavy + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{true}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% \else% - \newrobustcmd*\dinbn{\@dinbn}% + \renewcommand*\sfdefault{\tud@univers}% + \renewcommand*\ttdefault{\tud@univers t}% + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold + \renewcommand*\bfdefault{m}% + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold + \renewcommand*\bfdefault{b}% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% \fi% - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error - }% - \ExplSyntaxOff -\fi% -\newcommand*\tud@font@init@nfss{% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% @@ -511,39 +703,87 @@ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% \fi% \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \newrobustcmd*\dinbn{\sectfont}% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% + \undef\tud@font@init% +} +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \PackageWarning{tudscrfonts}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } \newcommand*\cdfont[1]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% } -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% +\newcommand*\tud@cdfont@get[1]{% + \tud@cdfont@trim\@tempa{#1}% \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% @@ -559,33 +799,34 @@ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + \PackageWarning{tudscrfonts}% + {The font `#1' is unknown}% }}}}}}}}}}}}}}% } -\newcommand*\tud@trimfontname[2]{% +\newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% \let#1\@tempa% } -\newcommand*\tud@@trimfontname[2]{% +\newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% @@ -593,20 +834,42 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} \newcommand*\tud@font@math@init{% - \if@tud@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% - \PackageWarningNoLine{tudscrfonts}% - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% + \PackageWarningNoLine{tudscrfonts}% + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% }% - }% - \fi\fi\fi% - \if@tud@univers% + }{}% + \fi\fi% + \if@tud@universmath% \DeclareMathVersion{univers}% \DeclareMathVersion{universbold}% \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% @@ -617,8 +880,10 @@ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% @@ -627,6 +892,8 @@ \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% \@ifpackageloaded{amsfonts}{% \DeclareFontFamily{U}{\tud@univers a}{}% \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% @@ -640,15 +907,19 @@ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% }{}% \fi% - \if@tud@dinbold% + \if@tud@dinboldmath% \DeclareMathVersion{dinbold}% \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% \fi% \@ifpackageloaded{unicode-math}{% \let\tud@font@math@set\relax% @@ -667,232 +938,41 @@ \tud@font@greek@loop\tud@font@greek@init% \tud@font@math@set% }% - \sbox\z@{\dinbn$ $}% + \sbox\z@{\tud@dinbn$ $}% \undef\tud@font@math@init% } -\ifbool{@tud@oldscrclass}{% - \let\univln\relax% - \let\univrn\relax% - \let\univbn\relax% - \let\univxn\relax% - \let\univls\relax% - \let\univrs\relax% - \let\univbs\relax% - \let\univxs\relax% - \let\dinbn\relax% - \let\textuln\relax% - \let\texturn\relax% - \let\textubn\relax% - \let\textuxn\relax% - \let\textuls\relax% - \let\texturs\relax% - \let\textubs\relax% - \let\textuxs\relax% - \let\textdbn\relax% - \AtBeginDocument{% - \cmd@restore{rmdefault}% - \cmd@restore{sfdefault}% - \cmd@restore{bfdefault}% - \cmd@restore{mddefault}% - \cmd@restore{familydefault}% - \cmd@restore{seriesdefault}% - \cmd@restore{shapedefault}% - \cmd@restore{rmfamily}% - \cmd@restore{sffamily}% - \cmd@restore{ttfamily}% - }% -}{} -\AtBeginDocument% -{% - \tud@font@check% - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% - \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% - \ifdef{\sectfont}{}{\let\sectfont\relax}% - \tud@font@init% - \tud@font@set[nomath]% - \tud@font@math@init% -} \newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% + \ifcsundef{up#1}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% - }% - \ifcsdef{var#1}{}{% + }{}% + \ifcsundef{var#1}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% - }% + }{}% } -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% - \fi% - \ifcase\tud@cdfont\relax% false - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \if@tud@mweights% - \tud@cmd@restore{bfseries@rm}% - \tud@cmd@restore{bfseries@sf}% - \tud@cmd@restore{bfseries@tt}% - \tud@cmd@restore{mdseries@rm}% - \tud@cmd@restore{mdseries@sf}% - \tud@cmd@restore{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{false}% - \else% true/heavy - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \if@tud@mweights% - \tud@cmd@store{bfseries@rm}% - \tud@cmd@store{bfseries@sf}% - \tud@cmd@store{bfseries@tt}% - \tud@cmd@store{mdseries@rm}% - \tud@cmd@store{mdseries@sf}% - \tud@cmd@store{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% - \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% - \setsansfont{Univers Light}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - }{}% - \else% heavy - \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% - ]% - \fi% - \else% - \if@tud@univers% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true - \renewcommand*\bfdefault{m}% - \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% - \renewcommand*\bfdefault{b}% - }{}% - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy - \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \PackageWarning{tudscrfonts}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \PackageWarning{tudscrfonts}% + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% - \fi% - \if@tud@mweights% - \edef\rmdef@ult{\rmdefault}% - \edef\sfdef@ult{\sfdefault}% - \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% \fi% - \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% - \normalfont\selectfont% -} -\newcommand*\tud@font@skip@set{% - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% -} -\newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% -} -\newcommand*\tud@font@math@set{% - \if@tud@univers% + \if@tud@universmath% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% @@ -927,20 +1007,39 @@ } \newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} +\AtBeginDocument% +{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@font@check% + \ifdef{\sectfont}{}{\let\sectfont\relax}% + \tud@font@set% + \tud@font@init% + \tud@font@math@init% +} +\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% +} \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -950,142 +1049,83 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } %%% From File: tudscr-comp.dtx -\ifbool{@tud@oldclass}{% - \AtBeginDocument{% - \if@tud@fontspec% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {UniversLight}{m}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {UniversLightOblique}{m}{n}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {UniversBold}{m}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {UniversLight}{m}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {UniversLightOblique}{m}{n}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {UniversBold}{m}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {UniversLight}{m}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {UniversLightOblique}{m}{n}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {UniversBold}{m}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {UniversLight}{m}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {UniversLightOblique}{m}{n}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {UniversBold}{m}{n}{15}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {\tud@univers}{l}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {\tud@univers}{l}{sl}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {\tud@univers}{b}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {\tud@univers}{l}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {\tud@univers}{l}{sl}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {\tud@univers}{b}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {\tud@univers}{l}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {\tud@univers}{l}{sl}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {\tud@univers}{b}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {\tud@univers}{l}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {\tud@univers}{l}{sl}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {\tud@univers}{b}{n}{15}% - \fi% - \fi% - \if@sansmath% - \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}% - \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}% - \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareSymbolFont{aunUpright}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{aunUpright}{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}% - \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}% - \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}% - \@ifpackageloaded{tudfonts}{% - \let\mv@normal\mv@univers% - \let\mv@bold\mv@universbold% - }{}% +\AtEndOfPackage% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% +} +\def\dinBold{\dinbn} +\def\dinfamily{\dinbn} +%%% 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% - \let\dinBold\dinbn% - \let\dinfamily\dinbn% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% -}{} -\@ifclassloaded{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries}% - {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% -}{} -\@ifclassloaded{tudmathposter}{% - \setkomafont{title}{\bfseries\tud@font@heading\Huge}% - \renewcommand*\subtitlefont{\fontseries{m}\tud@font@heading\huge}% - \if@mathevorgabe% - \renewcommand*\sectionfont{\univbn\LARGE}% - \renewcommand*\subsectionfont{\univbn\large}% +} +\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% -}{} -\@ifpackageloaded{tudfonts}{% - \let\if@sansmath\if@tudfonts@sansmath% - \renewcommand*\tudfont[1]{\cdfont{#1}}% - \if@sansmath% - \if@tudfonts@eulermath% - \PackageWarningNoLine{tudscrfonts}{% - You're using non-serif fonts in math mode. It's\MessageBreak% - recommended to pass the option `noeulermath' to\MessageBreak% - package `tudfonts'% - }% - \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% -}{% - \newif\if@tudfonts@nodin% - \@ifundefined{if@sansmath}{\newif\if@sansmath}{}% } -\@ifclassloaded{tudposter}{% - \let\if@sansmath\if@tudposter@sansmath% -}{} -\ifbool{@tud@oldscrclass}{% - \AtBeginDocument{% - \DeclareSymbolFontAlphabet{\mathrm}{operators} - \if@tud@fontspec% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@fntsz}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fntsz}% - \fi% - \fi% - }% -}{} +\CheckCommand*\@uclcnotmath[4]{% + \begingroup + #1% + \def\({$}\let\)\(% + \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% + \@nonchangecase\label + \@nonchangecase\ref + \@nonchangecase\ensuremath + \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% + \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% + \def\reserved@a##1##2{\let#2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{% + \endgroup + \noexpand\@skipmath#3#4$\valign$% + }% + \reserved@a% +} +\newcommand*\tud@x@textcase@uclcnotmath{% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +} +\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% +}{}{\tud@patch@wrn{@uclcnotmath}} \endinput %% %% End of file `tudscrfonts.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls deleted file mode 100644 index a3a31e63e61..00000000000 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls +++ /dev/null @@ -1,1433 +0,0 @@ -%% -%% This is file `tudscrman.cls', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tudscr-version.dtx (with options: `class,manual') -%% tudscr-manual.dtx (with options: `class') -%% tudscr-base.dtx (with options: `load') -%% tudscr-manual.dtx (with options: `class,option') -%% tudscr-misc.dtx (with options: `class,inherit,execute') -%% tudscr-manual.dtx (with options: `class,body') -%% -%% ============================================================================ -%% -%% TUD-KOMA-Script -%% Copyright (c) Falk Hanisch , 2012-2016 -%% -%% ============================================================================ -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, version 1.3c of the license. The latest -%% version of this license is in http://www.latex-project.org/lppl.txt and -%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 -%% or later and of this work. This work has the LPPL maintenance status -%% "author-maintained". The current maintainer and author of this work -%% is Falk Hanisch. -%% -%% ---------------------------------------------------------------------------- -%% -%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz -%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle -%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und -%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 -%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status -%% "author-maintained", wird somit allein durch den Autor verwaltet. Der -%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. -%% -%% ============================================================================ -%% -%%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% - \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% - \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% - but `#1' was expected!\MessageBreak% - You should not use classes, packages or files from\MessageBreak% - different TUD-KOMA-Script-Bundle versions% - }% - \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% -\providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\TUD@ProvidesWrapperClass[3]{% - \newcommand*\TUDClassName@Parent{#2}% - \newcommand*\TUDClassName{#1}% - \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script - ^^J#3 (#2)% - ]% - \TUD@ClassInfo% -} -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} -} -\NeedsTeXFormat{LaTeX2e} -\TUD@ProvidesWrapperClass{tudscrman}{tudscrreprt}{% - internal manual class% -} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% - \ifdin{TUD-KOMA-SCRIPT}{% - \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% - }\csname xspace\endcsname% - }% -}{} -%%% From File: tudscr-manual.dtx -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] -%%% From File: tudscr-manual.dtx -\newif\if@tud@todo -\@tud@todotrue -\newcommand*\tud@todo@type{} -\TUD@key{ToDo}[true]{% - \TUD@set@ifkey{ToDo}{@tud@todo}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \let\tud@todo@type\relax% - \else% - \def\tud@todo@type{#1}% - \@tud@todotrue% - \FamilyKeyStateProcessed% - \fi% -} -\PassOptionsToClass{% - cdfoot=true,% - chapterpage=true,% - chapterprefix=true,% - headings=optiontoheadandtoc,% - captions=tableheading,% - numbers=noenddot,% - cd=color,% -}{\TUDClassName@Parent} -\PassOptionsToPackage{automark}{scrlayer-scrpage} -\DeclareOption{final}{\let\tudfinalflag\relax} -\DeclareOption{print}{\let\tudprintflag\relax} -\AtBeginDocument{% - \ifdef{\tudfinalflag}{\TUDoptions{ToDo=false}}{}% - \ifdef{\tudprintflag}{% - \TUDoptions{color=no}% - \PassOptionsToPackage{hidelinks}{hyperref}% - }{}% -} -%%% From File: tudscr-misc.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@Parent}} -\TUDProcessOptions\relax -\LoadClass{\TUDClassName@Parent} -%%% From File: tudscr-manual.dtx -\RequirePackage{xparse}[2013/12/31] -\RequirePackage{textcomp}[2005/09/27] -\RequirePackage{setspace}[2011/12/19] -\setstretch{1.1}\recalctypearea -\RequirePackage{babel}[2014/03/24] -\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} -\AtBeginDocument{% - \@ifpackageloaded{csquotes}{}{% - \ClassWarning% - {tudscrman}{Package `csquotes' not loaded}% - \providecommand\enquote[1]{\glqg#1\grqq{}}% - }% -} -\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -\newlength\baselineskipglue -\AtBeginDocument{% - \setlength\baselineskipglue{% - .4\baselineskip plus .4\baselineskip minus .2\baselineskip% - }% -} -\PassOptionsToPackage{vskip=.5\baselineskipglue}{quoting} -\RequirePackage{quoting}[2014/01/28] -\RequirePackage{isodate}[2010/01/03] -\RequirePackage{hologo}[2012/04/26] -\RequirePackage{marginnote}[2012/03/29] -\RequirePackage{listings}[2014/03/04] -\lstdefinestyle{tudscr}{% - basicstyle=\ttfamily\setstretch{1},% - keywordstyle=,% - columns=fullflexible,keepspaces,% - aboveskip=.5\baselineskipglue,% - belowskip=.5\baselineskipglue,% - language=[LaTeX]TeX,% - texcl,% -} -\RequirePackage{silence}[2012/07/02] -\RequirePackage{filemod}[2011/09/19] -\RequirePackage{ifpdf}[2011/01/30] -\ifpdf - \PassOptionsToPackage{colorinlistoftodos,obeyFinal,color=HKS92!10}{todonotes} - \RequirePackage{todonotes}[2012/07/25] -\else - \TUDoptions{ToDo=false} -\fi -\WarningFilter*{ifplatform}{^^J \space\space\space shell escape is disabled} -\RequirePackage{ifplatform}[2010/10/22] -\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} -\PassOptionsToPackage{open,openlevel=0}{bookmark} -\AtBeginDocument{% - \RequirePackage{hyperref}[2012/11/06] - \RequirePackage{bookmark}[2011/12/02] - \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}} - \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel} - \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt} - \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt} - \newcommand*\autorefname[1][current]{% - \ifstr{#1}{current}{% - \expandafter\HyPsd@@autorefname\@currentHref\@nil% - }{% - \@autorefname\HyPsd@@autorefname{#1}% - }% - \unskip\xspace% - } - \newcommand*\@autorefname[2]{% - \expandafter\ifx\csname r@#2\endcsname\relax% - ??% - \else% - \expandafter\expandafter\expandafter\@@autorefname% - \csname r@#2\endcsname{}{}{}{}\@nil#1\@nil% - \fi% - } - \newcommand*\@@autorefname{} - \def\@@autorefname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil} - \NewDocumentCommand\manualhyperdef{st'm}{% - \IfBooleanTF{#2}{% - \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\jobname}{#3}{}}% - \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax% - \@afterindentfalse\@afterheading% - }{% - \Hy@raisedlink{\hyperdef{\jobname}{#3}{}}% - \ignorespaces% - }% - \IfBooleanF{#1}{\label{#3}}% - } - \newcommand*\manualhyperref[2]{\hyperref{}{\jobname}{#1}{#2}} -} -\PassOptionsToPackage{xindy,splitindex}{imakeidx} -\RequirePackage{imakeidx}[2013/07/11]% -\indexsetup{% - level=\addsec,% - noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% - othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}% -} -\newcommand*\xdyopt{-M tudscrman-temp.xdy -L german-din} -\newcommand*\tud@write@i{} -\newwrite\tud@write@i -\openout\tud@write@i=tudscrman-temp.xdy -\write\tud@write@i{(require "texindy.xdy")} -\write\tud@write@i{% -(define-location-class^^J% -\space\space "arabic-page-numbers" ("arabic-numbers") :min-range-length 1^^J% -)% -} -\write\tud@write@i{(markup-range :sep "--")} -\write\tud@write@i{% -(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% -} -\write\tud@write@i{% -(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "declare"^^J% -\space\space :open "\string\textbf{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "!"^^J% -\space\space :open "\string\textbf{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "important"^^J% -\space\space :open "\string\textsl{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "?"^^J% -\space\space :open "\string\textsl{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "default"^^J% -\space\space :open "\string\hyperpage{"^^J% -\space\space :close "}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "deprecated"^^J% -\space\space :open "\string\deprecatedhyperpage{"^^J% -\space\space :close "}"^^J% -)% -} -\write\tud@write@i{% - (markup-locclass-list :open "\string\,\string\dotfill\string\,")% -} -\write\tud@write@i{(define-crossref-class "seeidx")} -\write\tud@write@i{% -(markup-crossref-list^^J% -\space\space :class "seeidx" :open "\string\seeidx{" :sep "; " :close "}{}"^^J% -)% -} -\closeout\tud@write@i -\makeindex[title={Allgemeiner Index},options=\xdyopt]% -\makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]% -\makeindex[% - title={Umgebungen, Befehle und Seitenstile},name=macros,options=\xdyopt% -]% -\makeindex[title={Umgebungs- und Befehlsparameter},name=keys,options=\xdyopt]% -\makeindex[title={Sprachabh\"angige Bezeichner},name=terms,options=\xdyopt]% -\makeindex[title={Schriftelemente},name=fonts,options=\xdyopt]% -\makeindex[title={Farben},name=colors,options=\xdyopt]% -\makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]% -\makeindex[title={\"Anderungsliste},name=changelog,columns=1,options=\xdyopt]% -\RequirePackage{enumitem}[2011/09/28] -\setlist{noitemsep} -\AtBeginDocument{ - \RequirePackage{ellipsis}[2004/9/28] - \let\ellipsispunctuation\relax -} -\RequirePackage{tabularx}[1999/01/07] -\RequirePackage{ragged2e}[2009/05/21] -\RequirePackage{chngcntr}[2009/09/02] -\counterwithout{footnote}{chapter} -\RequirePackage{booktabs}[2005/04/14] -\RequirePackage{varioref}[2011/10/02]% -\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} -\RequirePackage{tikz}[2013/12/13] -\RequirePackage{pdfpages}[2013/08/25] -\RequirePackage{units}[1998/08/04] -\RequirePackage{tudscrsupervisor}[\TUDVersion] -\newrobustcmd*\textOR{\,\textbardbl\,} -\newrobustcmd*\PName[1]{\mbox{\texttt{\textsl{<#1>}}}} -\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}} -\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}} -\newrobustcmd*\PSet{\PName{Einstellung}} -\newrobustcmd*\Parameter[1]{\mbox{\texttt{\{}\PName{#1}\texttt{\}}}} -\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}} -\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}} -\newrobustcmd*\OLParameter[1]{% - \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}% -} -\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} -\newrobustcmd*\PParameter[1]{\mbox{\texttt{\{#1\}}}} -\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}} -\newrobustcmd*\hypertut[2]{% - \hyperref{tutorials/#1.pdf}{\jobname}{tutorials:#1}{\textsbn{#1.pdf}#2}% -} -\NewDocumentCommand\Tutorial{smd||}{% - \ifnum\pdfshellescape=\@ne\relax% - \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{% - \immediate\openout\tud@write@i=tutorials.sh% - \immediate\write\tud@write@i{% - cd tutorials^^J% - pdflatex -shell-escape #2^^J% - pdflatex #2^^J% - biber #2^^J% - pdflatex -shell-escape #2^^J% - makeglossaries #2^^J% - pdflatex #2% - }% - \immediate\closeout\tud@write@i% - \ifwindows% - \immediate\write18{rename tutorials.sh tutorials.bat}% - \immediate\write18{tutorials.bat}% - \immediate\write18{del tutorials.bat}% - \else% - \immediate\write18{bash tutorials.sh}% - \immediate\write18{rm tutorials.sh}% - \fi% - }% - \fi% - \IfFileExists{tutorials/#2.pdf}{% - \hypertut{#2}{}% - }{% - \textsbn{#2.pdf}% - \tud@shellescape@wrn% - }% - \IfBooleanF{#1}{% - \index[files]{\hypertut{#2}{~{\idxfont(Tutorial)}}\IfValueT{#3}{|#3}}% - }% -} -\newcommand*\IncludeExample[1]{% - \lstinputlisting[style=tudscr]{examples/#1}% - \ifnum\pdfshellescape=\@ne\relax% - \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% - \immediate\write18{% - pdflatex -output-directory examples examples/#1.tex - pdflatex -output-directory examples examples/#1.tex - }% - }% - \fi% - \IfFileExists{examples/#1.pdf}{% - \includepdf[% - pages=-,noautoscale,frame,keepaspectratio,pagecommand={},% - height=\textheight,width=\textwidth, offset=5mm 0mm% - ]{examples/#1.pdf}% - }{% - \tud@shellescape@wrn% - }% -} -\newcommand*\@ToDo{} -\NewDocumentCommand\ToDo{somo}{% - \ifbool{@tud@todo}{% - \begingroup% - \define@boolkey{todonotes}{doc}[true]{% - \ifbool{KV@todonotes@doc}{\setkeys{todonotes}{color=HKS41!10}}{}% - }% - \define@boolkey{todonotes}{rls}[true]{% - \ifbool{KV@todonotes@rls}{\setkeys{todonotes}{color=HKS44!50}}{}% - }% - \define@boolkey{todonotes}{imp}[true]{% - \ifbool{KV@todonotes@imp}{\setkeys{todonotes}{color=HKS07!50}}{}% - }% - \define@boolkey{todonotes}{nxt}[true]{% - \ifbool{KV@todonotes@nxt}{\setkeys{todonotes}{color=HKS57!50}}{}% - }% - \def\@ToDo{}% - \IfValueTF{#2}{% - \IfBooleanTF{#1}{\edef\@ToDo{#2,nolist}}{\edef\@ToDo{#2}}% - }{% - \IfBooleanT{#1}{\edef\@ToDo{nolist}}% - }% - \renewcommand*\marginpar[2][]{% - \marginnote[##1]{##2}[\dimexpr-1.6ex+1pt\relax]% - }% - \@tempswafalse - \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}% - \IfValueT{#2}{% - \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}% - }% - \if@tempswa% - \vskip.8ex% - \IfValueT{#4}{% - \settowidth\marginparwidth{#4}% - \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \let\par\relax\noindent% - \edef\@tempa{\noexpand\todo[\@ToDo,noline,nolist]}% - \@tempa{#4}% - }% - \edef\@tempa{\noexpand\todo[\@ToDo,inline]}% - \@tempa{#3}% - \fi% - \endgroup% - \par\noindent% - }{}% - \ignorespaces% -} -\newcommand*\ListOfToDo{\if@tud@todo\listoftodos\fi} -\reversemarginpar -\newrobustcmd*\bsc{\@backslashchar} -\newcommand*\tud@shellescape@wrn{% - \ClassWarning% - {tudscrman}{% - You have to recompile this document with\MessageBreak% - activated shell escape option% - }% - \global\let\tud@shellescape@wrn\relax% -} -\newcommand*\pdfexpandableoutline[1]{% - \AfterPackage*{hyperref}{\pdfstringdefDisableCommands{\csletcs{#1}{@#1}}} -} -\newcommand*\@TUDScript{TUD-KOMA-Script} -\pdfexpandableoutline{TUDScript} -\NewDocumentCommand\Application{smd||}{% - \ifdin{#2}{% - \mbox{\textsbs{#2}}% - \CheckIndexFormat{#1}{#3}% - \IfBooleanF{#1}{% - \index{\textsbs{#2}~{\idxfont(Anwendungssoftware)}\IfValueT{#3}{|#3}}% - }% - }% -} -\DeclareExpandableDocumentCommand\@Application{sm}{#2} -\pdfexpandableoutline{Application} -\NewDocumentCommand\Distribution{smod||}{% - \ifdin{#2\IfValueT{#3}{~#3}}{% - \mbox{\textsbn{#2\IfValueT{#3}{~#3}}}% - \CheckIndexFormat{#1}{#4}% - \IfBooleanF{#1}{% - \index{\textsbn{#2}~{\idxfont(Distribution)}\IfValueT{#4}{|#4}}% - }% - }% -} -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} -\NewDocumentCommand\File{smd||}{% - \ifdin{#2}{% - \mbox{\textsbn{#2}}% - \CheckIndexFormat{#1}{#3}% - \IfBooleanF{#1}{% - \index[files]{\textsbn{#2}~{\idxfont(Datei)}\IfValueT{#3}{|#3}}% - }% - }% -} -\NewDocumentCommand\Class{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Klasse}% - \else% - \ifdin{#2}{% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\textsbn{#2}}'#3'% - {files}[\protect\sbnfont]{#2}[~{\idxfont(Klasse)}]% - }% - \fi% -} -\DeclareExpandableDocumentCommand\@Class{sm}{#2} -\pdfexpandableoutline{Class} -\newcommand*\@TempPackage{} -\NewDocumentCommand\Package{smd''d()d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Paket}% - \else% - \ifdin{#2}{% - \IfValueTF{#4}{\def\@TempPackage{#4}}{\def\@TempPackage{#2}}% - \SetIndexFormat{#1}{#5}% - \@ProcessOutput{\textsbn{#2}}'#3'(\@TempPackage)% - {files}[\protect\sbnfont]{#2}[~{\idxfont(Paket)}]% - }% - \fi% -} -\DeclareExpandableDocumentCommand\@Package{sm}{#2} -\pdfexpandableoutline{Package} -\newcommand*\@TempOption{} -\NewDocumentCommand\Option{smod''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{options}{\ttfamily}{#2}{Option}% - \else% - \IfValueTF{#3}{\gdef\@TempOption{\texttt{=#3}}}{\gdef\@TempOption{}}% - \SetIndexFormat{#1}{#5}% - \@ProcessOutput{\texttt{#2}}[\@TempOption]'#4'{options}[\ttfamily]{#2}% - \fi% -} -\DeclareExpandableDocumentCommand\@Option{sm}{#2} -\pdfexpandableoutline{Option} -\newcommand*\@TempEnvironment{} -\NewDocumentCommand\Environment{smod''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Umgebung}% - \else% - \if@declare% - \gdef\@TempEnvironment{% - \texttt{\bsc{}begin\{#2\}\IfValueT{#3}{#3}}\tabularnewline% - \texttt{\dots}\tabularnewline% - \texttt{\bsc{}end\{#2\}}% - }% - \else% - \gdef\@TempEnvironment{\texttt{#2}}% - \fi% - \SetIndexFormat{#1}{#5}% - \@ProcessOutput{\@TempEnvironment}'#4'{macros}[\ttfamily]{#2}% - \fi% -} -\DeclareExpandableDocumentCommand\@Environment{sm}{#2} -\pdfexpandableoutline{Environment}% -\NewDocumentCommand\Macro{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{Befehl}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{\bsc#2}}'#3'{macros}[\ttfamily\bsc]{#2}% - \fi% -} -\DeclareExpandableDocumentCommand\@Macro{sm}{#2} -\NewDocumentCommand\Length{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{L\"ange}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(L\"ange)}\fi]'#3'% - {macros}[\ttfamily\bsc]{#2}[~{\idxfont(L\"ange)}]% - \fi% -} -\newcommand*\@TempKey{} -\NewDocumentCommand\Key{smmod''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}(#2){\ttfamily}{#3}{Parameter}% - \else% - \begingroup% - \let\Environment\@firstofone% - \let\Macro\@firstofone% - \IfValueTF{#4}{% - \gdef\@TempKey{\texttt{=#4}\if@declare~{\idxfont(Parameter)}\fi}% - }{% - \gdef\@TempKey{\if@declare~{\idxfont(Parameter)}\fi}% - }% - \SetIndexFormat{#1}{#6}% - \@ProcessOutput{\texttt{#3}}[\@TempKey]'#5'{macros}(#2)[\ttfamily]{#3}% - \endgroup% - \fi% -} -\NewDocumentCommand\PageStyle{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Seitenstil}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Seitenstil)}\fi}'#3'% - {macros}[\ttfamily]{#2}[~{\idxfont(Seitenstil)}]% - \fi% -} -\NewDocumentCommand\Counter{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Z\"ahler}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{#2}}[\if@declare~{\idxfont(Z\"ahler)}\fi]% - {macros}[\ttfamily]{#2}[~{\idxfont(Z\"ahler)}]% - \fi% -} -\NewDocumentCommand\Term{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{terms}{\ttfamily\bsc}{#2}{Bezeichner}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(Bezeichner)}\fi]'#3'% - {terms}[\ttfamily\bsc]{#2}% - \fi% -} -\newcommand\@termlist{} -\let\@termlist\relax -\NewDocumentCommand\TermTable{smg}{% - \forcsvlist{\listadd\@termlist}{#2}% - \ifvmode\else\par\fi% - \vskip\baselineskipglue% - \@afterindentfalse\@afterheading% - \IfBooleanTF{#1}{% - \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% - \setlength\@tempdimc{-.7\baselineskip}% - \begin{tabularx}{\@tempdima}{lXX}\@TermTable\end{tabularx}% - }{% - \setlength\@tempdimc{\z@}% - \begin{tabular}{lll}\@TermTable\end{tabular}% - }% - \let\@termlist\relax% -} -\newcommand*\@TermTable{% - \toprule% - \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}\tabularnewline% - \midrule% - \forlistloop\@@TermTable{\@termlist}% - \bottomrule% -} -\newcommand*\@@TermTable[1]{% - \Term{#1} & % - \ifstr{\@nameuse{#1}}{}{\PName{leer}}{\@nameuse{#1}} & % - \selectlanguage{english}\vspace*{\@tempdimc}% - \ifstr{\@nameuse{#1}}{}{\PName{empty}}{\@nameuse{#1}}\tabularnewline% -} -\NewDocumentCommand\Font{smd''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{fonts}{\ttfamily}{#2}{Schriftelement}% - \else% - \SetIndexFormat{#1}{#4}% - \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Schriftelement)}\fi}% - {fonts}[\ttfamily]{#2}% - \fi% -} -\NewDocumentCommand\Color{smod''d||}{% - \if@changelog% - \@ProcessChangedAt{#1}{colors}{\ttfamily}{#2}{Farbe}% - \else% - \SetIndexFormat{#1}{#5}% - \@ProcessOutput{\texttt{#2}}[% - \IfValueT{#3}{~\texttt{(#3)}}\if@declare~{\idxfont(Farbe)}\fi% - ]'#4'{colors}[\ttfamily]{#2}% - \fi% -} -\newcommand*\@IndexFormat{} -\let\@IndexFormat\relax -\newcommand*\CheckIndexFormat[2]{% - \IfBooleanT{#1}{% - \IfValueT{#2}{% - \ClassWarning{tudscrman}{% - You've used the starred version so no entry for\MessageBreak% - the index is created and the optional argument\MessageBreak% - |#2| will be ignored% - }% - }% - }% -} -\newcommand*\SetIndexFormat[2]{% - \CheckIndexFormat{#1}{#2}% - \IfBooleanTF{#1}{% - \def\@IndexFormat{#1}% - }{% - \IfValueTF{#2}{\def\@IndexFormat{#2}}{\def\@IndexFormat{}}% - }% -} -\newif\if@declare -\newif\if@stareddeclare -\newif\if@openindex -\newif\if@deprecated -\NewDocumentCommand\@ProcessOutput{mod''d()md()omo}{% - \if@declare% - \if@openindex% - \IfValueT{#3}{% - \ClassWarning{tudscrman}{% - It is not possible to use any cross-reference\MessageBreak% - shorthand like '#3' within the arguments of\MessageBreak% - the environment `Declaration'% - }% - }% - \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}% - \if@deprecated% - \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% - \manualhyperdef{\@tempa}% - }% - \else% - \expandafter\IfBooleanTF\expandafter{\@IndexFormat}{% - \manualhyperdef{\@tempa}% - }{% - \ifx\@IndexFormat\@empty\else% - \ClassWarning{tudscrman}{% - It is not possible to use any indexing format\MessageBreak% - like |\@IndexFormat| within the arguments of the\MessageBreak% - environment `Declaration'% - }% - \fi% - \if@stareddeclare% - \manualhyperdef'{\@tempa}% - \else% - \manualhyperdef{\@tempa}% - \fi% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}% - }% - \fi% - \if@stareddeclare\else% - #1\IfValueT{#2}{#2}% - \fi% - \else% - \if@deprecated\else% - \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}% - }% - \fi% - \fi% - \else% - \ifx\@IndexFormat\relax% - \ClassError{tudscrman}{\string\SetIndexFormat\space unused}{% - It seems you have forgotten to use \string\SetIndexFormat.% - }% - \else% - \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{\@IndexFormat}% - }% - \fi% - \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}% - \ifcsdef{r@\@tempa}{% - \let\@tempb\relax% - \def\@tempc{\mbox{\hyperref{}{\jobname}{\@tempa}{#1}\IfValueT{#2}{#2}}}% - \IfValueT{#3}{% - \def\@tempb{% - \ClassWarning{tudscrman}{% - You've used the unknown cross-reference\MessageBreak% - shorthand '#3'. Only 'auto', 'page'\MessageBreak% - and 'full' as well as 'none' are valid% - }% - }% - \ifstr{#3}{auto}{\def\@tempb{ in \autoref{\@tempa}}}{}% - \ifstr{#3}{page}{\def\@tempb{ \vpageref{\@tempa}}}{}% - \ifstr{#3}{ppage}{\def\@tempb{ \reftextfaraway{\@tempa}}}{}% - \ifstr{#3}{full}{\def\@tempb{ in \fullref{\@tempa}}}{}% - \ifstr{#3}{none}{% - \let\@tempb\relax% - \def\@tempc{\mbox{#1\IfValueT{#2}{#2}}}% - }{}% - }% - \@tempc\@tempb% - }{% - \IfValueT{#3}{% - \ClassWarning{tudscrman}{% - No cross-reference created, label \@tempa\space is missing% - }% - }% - \IfValueTF{#4}{% - \ifstr{#4}{}{\mbox{#1\IfValueT{#2}{#2}}}{% - \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}% - }% - }{% - \mbox{#1\IfValueT{#2}{#2}}% - }% - }% - \fi% - \let\@IndexFormat\relax% -} -\newrobustcmd*\hyperidx[2][]{\manualhyperref{#1}{#2}} -\NewDocumentCommand\@HyperIndex{mmmmmm}{% - \IfValueTF{#3}{\def\@tempa{#3}}{\def\@tempa{}}% - \IfValueTF{#5}{\def\@tempb{#5}}{\def\@tempb{}}% - \IfValueTF{#6}{\edef\@tempc{|#6}}{\def\@tempc{}}% - \IfValueTF{#2}{% - \ifcsdef{r@#1:#2:#4}{% - \edef\@tempb{#1:#2:#4}% - \index[#1]{% - #2!\hyperidx[\@tempb]{\begingroup\expandonce\@tempa#4\endgroup}% - ~{\idxfont(Parameter)}\expandonce\@tempc% - }% - \begingroup% - \let\Environment\@firstofone% - \def\Macro##1{\bsc##1}% - \index[keys]{% - \hyperidx[\@tempb]{% - \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}% - }% - \expandonce\@tempc% - }% - \endgroup% - }{% - \index[#1]{% - #2!\begingroup\expandonce\@tempa#4\endgroup% - ~{\idxfont(Parameter)}\expandonce\@tempc% - }% - \index[keys]{% - \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}% - \expandonce\@tempc% - }% - }% - }{% - \ifcsdef{r@#1:#4}{% - \index[#1]{% - \hyperidx[#1:#4]{% - \begingroup\expandonce\@tempa#4\endgroup\expandonce\@tempb% - }% - \expandonce\@tempc% - }% - }{% - \index[#1]{% - \begingroup\expandonce\@tempa#4\endgroup% - \expandonce\@tempb\expandonce\@tempc% - }% - }% - }% -} -\newcommand*\@declarationlist{} -\let\@declarationlist\relax -\newcommand*\@presetlist{} -\let\@presetlist\relax -\newif\if@presetlist -\newcommand*\@additionallist{} -\let\@additionallist\relax -\newif\if@additionallist -\newcommand*\@gobbleparameters{% - \let\PName\@gobble% - \let\PBoolean\@empty% - \let\PBName\@gobble% - \let\PSet\@empty% - \let\PValue\@gobble% - \let\Parameter\@gobble% - \let\OParameter\@gobble% - \let\LParameter\@empty% - \let\OLParameter\@gobble% - \let\PParameter\@gobble% - \let\POParameter\@gobble% -} -\NewDocumentEnvironment{Declaration}{omoog}{% - \listadd\@declarationlist{#2}% - \@changedatdeclare{#1}{#2}% - \IfValueTF{#3}{% - \@presetlisttrue% - \IfValueTF{#4}{% - \def\@tempa[##1:##2]{##1:\,##2}% - \listeadd\@presetlist{preset:\,#3\,|\,\expandonce{\@tempa[#4]}}% - }{% - \listadd\@presetlist{preset:\,#3}% - }% - }{% - \listadd\@presetlist{\relax}% - }% - \IfValueTF{#5}{% - \@additionallisttrue% - \listadd\@additionallist{\hspace*{\tabcolsep}\small(#5)}% - \in@{\Environment}{#2}% - \ifin@\listadd\@additionallist{\tabularnewline}\fi% - }{% - \listadd\@additionallist{\relax}% - \in@{\Environment}{#2}% - \ifin@\listadd\@additionallist{\relax}\listadd\@additionallist{\relax}\fi% - }% -}{% - \ifx\@declarationlist\relax\else% - \ClassError{tudscrman}{\string\printdeclarationlist\space is missing}{% - \string\@declarationlist\space is not empty. Did you forget\MessageBreak% - to print this list with \string\printdeclarationlist?% - }% - \fi% - \@gobbleparameters% - \vskip-\lastskip% - \@declaretrue\@openindexfalse#2\@declarefalse% - \pagebreak[0]% -} -\NewDocumentCommand\printdeclarationlist{sod()}{% - \ifx\@declarationlist\relax\else% - \ifvmode\else\par\fi% - \addpenalty{\@beginparpenalty}% - \addvspace{1.5\baselineskipglue}% - \IfBooleanTF{#1}{% - \global\@deprecatedtrue% - \renewcommand*\@changedatdeclaredefault{\emph{entf\"allt}|deprecated}% - }{% - \global\@deprecatedfalse% - }% - \IfValueT{#2}{% - \if@additionallist% - \ClassWarning{tudscrman}{% - It is not possible to use the optional argument\MessageBreak% - of \string\printdeclarationlist due to the given\MessageBreak% - additional information as argument of the\MessageBreak% - environment `Declaration'% - }% - \else% - \@additionallisttrue% - \let\@additionallist\relax% - \protected@edef\@tempa{#2}% - \protected@edef\@tempb{\hspace*{\tabcolsep}\protect\small}% - \def\@tempc##1{% - \listeadd\@additionallist{\expandonce\@tempb(\expandonce\@tempa)}% - }% - \forlistloop\@tempc{\@declarationlist}% - \fi% - }% - \@declaretrue\@openindextrue% - \@afterindentfalse\@afterheading% - \def\@tempa##1{\ignorespaces##1\tabularnewline}% - \edef\HyperRaiseLinkDefault{\the\baselineskip}% - \setbox0\hbox{% - \begin{tabular}{|l|}% - \hline% - \forlistloop\@tempa{\@declarationlist}% - \hline% - \end{tabular}% - }\usebox0% - \@declarefalse% - \ifboolexpr{bool {@presetlist} or bool {@additionallist}}{% - \if@presetlist% - \qquad% - \texttt{% - \begin{tabular}{l@{}}% - \forlistloop\@tempa{\@presetlist}% - \end{tabular}% - }% - \fi% - \if@additionallist% - \begin{tabular}{@{}l@{}}% - \forlistloop\@tempa{\@additionallist}% - \end{tabular}% - \fi% - }{}% - \global\let\@declarationlist\relax% - \global\let\@presetlist\relax% - \global\@presetlistfalse% - \global\let\@additionallist\relax% - \global\@additionallistfalse% - \printchangedatlist*[% - \dimexpr.5\ht\strutbox+.5\dp\strutbox-.5\ht0-.5\dp0\relax% - ]% - \IfValueT{#3}{#3}% - \par\nobreak% - \vskip 1.5\baselineskipglue% - \@afterindentfalse\@afterheading% - \fi% -} -\NewDocumentEnvironment{Declaration*}{om}{% - \@changedatdeclare{#1}{#2}% - \@stareddeclaretrue% - \global\@deprecatedfalse% - \@declaretrue\@openindextrue#2\@declarefalse% - \@stareddeclarefalse% -}{% - \ifx\@changedatdeclarelist\relax\else% - \ClassError{tudscrman}{\string\printchangedatlist\space is missing}{% - \string\@changedatdeclarelist\space is not empty. Did you\MessageBreak% - forget to print this list with \string\printchangedatlist?% - }% - \fi% - \global\@deprecatedfalse% - \@gobbleparameters% - \@declaretrue\@openindexfalse#2\@declarefalse% -} -\newsavebox\tabularm@box -\newlength\tabularm@wd -\newcommand*\tabularm@num{1} -\NewEnviron{tabularm}[1]{% - \begin{lrbox}{\tabularm@box}% - \let\allcolumnpar\@gobble% - \begin{tabular}{*{#1}l}\BODY\end{tabular}% - \end{lrbox}% - \setlength\tabularm@wd{\wd\tabularm@box}% - \def\tabularm@num{#1}% - \let\allcolumnpar\@allcolumnpar% - \begin{tabular}{*{#1}l}\BODY\end{tabular}% -} -\newcommand*\@allcolumnpar[1]{% - \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% -} -\newlist{values}{description}{1} -\setlist[values]{% - topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt,% - font=\normalfont\ttfamily,before*=\before@values% -} -\newcommand*\itemvalues{} -\newcommand*\before@values{% - \ifdefvoid{\itemvalues}{% - \let\itemvalues\item% - \let\item\tud@item% - \setlength\changedatskip{-\baselineskip}% - }{}% -} -\newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item} -\newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item} -\newcommand*\tud@item@val{} -\newcommand*\tud@item@add{} -\newcommand*\tud@item@format{} -\newcommand*\tud@item{% - \@ifstar{% - \def\tud@item@add{(S\"aumniswert)}% - \let\tud@item@format\emph% - \tud@@item% - }{% - \let\tud@item@add\relax% - \let\tud@item@format\relax% - \tud@@item% - }% -} -\newcommand*\tud@@item[1][]{% - \ifblank{#1}% - {\edef\@tempa{\tud@item@val}}% - {\ifstr{\tud@item@val}{}% - {\edef\@tempa{#1}}% - {\edef\@tempa{\tud@item@val/#1}}% - }% - \def\tud@item@val{}% - \ifstr{\@tempa}{}{\itemvalues}{\tud@@@item}% -} -\newcommand*\tud@@@item[1][]{% - \ifblank{#1}{}{% - \ifx\tud@item@add\relax% - \def\tud@item@add{#1}% - \else% - \appto\tud@item@add{~#1}% - \fi% - }% - \itemvalues[% - \tud@item@format{\@tempa:}% - \ifx\tud@item@add\relax\else% - {\normalfont\space\footnotesize\tud@item@add}% - \fi% - ]% -} -\newenvironment{Example}{\@nameuse{Example*}}{% - \@nameuse{endExample*}% - \addvspace{-\topsep}% -} -\newenvironment{Example*}{% - \labeling{{\usekomafont{disposition}Beispiel:\ }}% - \item[{\usekomafont{disposition}Beispiel:\ }]% -}{% - \endlabeling% -} -\lstnewenvironment{Code}[1][]{\lstset{style=tudscr,#1}}{} -\newcommand*\tud@currentHref{} -\BeforeBeginEnvironment{Code}{\global\let\tud@currentHref\@currentHref} -\AfterEndEnvironment{Code}{\global\let\@currentHref\tud@currentHref} -\newlist{packages}{description}{2} -\setlist[packages]{% - topsep=\medskipamount,labelwidth=\linewidth,labelsep=0pt,font=\normalfont,% - parsep=\parskip,listparindent=\parindent,before=\before@packages% -} -\newcommand*\itempackages{} -\newcommand*\before@packages{% - \ifdefvoid{\itempackages}{% - \let\itempackages\item% - \let\item\tud@item@pkg% - \setlength\changedatskip{-\baselineskip}% - }{}% -} -\NewDocumentCommand\tud@item@pkg{od()od''}{% - \itempackages[{% - \IfValueT{#1}{% - \manualhyperdef{files:#1}% - \IfValueTF{#2}{% - \def\@tempa{http://www.ctan.org/pkg/#2}% - }{% - \def\@tempa{http://www.ctan.org/pkg/#1}% - }% - \href{\@tempa}{\Package{#1}'none'|!|}% - \IfValueT{#3}{% - \quad(% - \let\@tempb\relax% - \@for\@tempa:=#3\do{% - \@tempb% - \manualhyperdef{files:\@tempa}% - \expandafter\Package\expandafter{\@tempa}'none'|!|% - \def\@tempb{, }% - }% - )% - }% - \IfValueT{#4}{% - \quad(% - \let\@tempb\relax% - \@for\@tempa:=#4\do{% - \@tempb% - \manualhyperdef{files:\@tempa}% - \href{http://www.ctan.org/pkg/\@tempa}{% - \expandafter\Package\expandafter{\@tempa}'none'|!|% - }% - \def\@tempb{, }% - }% - )% - }% - }% - }]% -} -\newcommand*\@changedatdeclarelist{} -\let\@changedatdeclarelist\relax -\newcommand*\@changedatdeclaredefault{\emph{neu}} -\newcommand*\@changedatdeclare[2]{% - \IfValueT{#1}{% - \@for\@tempa:=#1\do{% - \ifx\@tempa\@empty\else% - \preto{\@tempa}{#2!}% - \expandafter\ChangedAt@Split\expandafter{\@tempa}% - \fi% - }% - }% -} -\NewDocumentCommand\ChangedAt@Split{>{\SplitArgument{2}{!}}m}{% - \ChangedAt@@Split#1% -} -\newcommand*\ChangedAt@@Split[3]{% - \in@{*}{#1}% - \ifin@% - \listadd\@changedatdeclarelist{Allgemein!#2}% - \else% - \listadd\@changedatdeclarelist{% - Implementierung!#2!\IfValueTF{#3}{#3}{\@changedatdeclaredefault}!#1% - }% - \fi% -} -\NewDocumentCommand\printchangedatlist{sO{\z@}}{% - \ifx\@changedatdeclarelist\relax\else% - \if@deprecated% - \ChangedAt@Process[#1]{#2}{\@changedatdeclarelist}% - \else% - \ChangedAt@Process{#2}{\@changedatdeclarelist}% - \fi% - \global\let\@changedatdeclarelist\relax% - \IfBooleanF{#1}{% - \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax% - \@afterindentfalse\@afterheading% - }% - \fi% -} -\newlength\changedatskip -\NewDocumentCommand\ChangedAt{sO{\changedatskip}mO{Allgemein}}{% - \ChangedAt@Process[#1]{#2}[#4]{#3}% -} -\newcommand*\@changedatlist{} -\newcommand*\ChangedAt@Default{} -\newcommand*\@changedatversionlist{} -\let\@changedatversionlist\relax -\NewDocumentCommand\ChangedAt@Process{omom}{% - \let\@changedatlist\relax% - \let\@changedatversionlist\relax% - \@for\@tempa:=#4\do{% - \ifx\@tempa\@empty\else% - \IfValueT{#3}{\preto\@tempa{#3!}}% - \listeadd{\@changedatlist}{\expandonce\@tempa}% - \fi% - }% - \forlistloop\ChangedAt@Process@Split{\@changedatlist}% - \IfBooleanF{#1}{% - \sortlist{\@changedatversionlist}% - \strut% - \marginnote{% - \def\@tempa####1{% - \ignorespaces\manualhyperref{####1}{####1}\tabularnewline% - }% - \begin{tabular}{|l|}% - \hline% - \forlistloop\@tempa{\@changedatversionlist}% - \hline% - \end{tabular}% - }[#2]% - \ignorespaces% - }% -} -\NewDocumentCommand\ChangedAt@Process@Split{>{\SplitArgument{3}{!}}m}{% - \ChangedAt@@Process#1% -} -\newcommand*\ChangedAt@@Process[4]{% - \IfValueTF{#4}{% - \begingroup% - \@gobbleparameters% - \xdef\ChangedAt@Default{#4}% - \endgroup% - \ChangedAt@@@Process{#2}{#1}{\ChangedAt@Default: #3}% - }{% - \IfValueT{#3}{\ChangedAt@@@Process{#2}{#1}{#3}}% - }% - \xifinlist{#2}{\@changedatversionlist}{}{\listeadd\@changedatversionlist{#2}}% -} -\newcommand*\ChangedAt@@@Process[3]{% - \begingroup% - \def\@tempa{#3}% - \in@{\ChangedAt@Default}{#3}% - \ifin@% - \expandafter\def\expandafter\@tempa\expandafter{\ChangedAt@Default}% - \fi% - \expandafter\in@\expandafter\Key\expandafter{\@tempa}% - \ifin@% - \begingroup% - \RenewDocumentCommand\Key{sommo}{\xdef\@TempKey{##3:}}% - \setbox0\hbox{#3}% - \endgroup% - \index[changelog]{% - #1\manualhyperdef*{#1}!\manualhyperdef*{#1:#2}#2!\@TempKey\ #3% - }% - \else% - \index[changelog]{% - #1\manualhyperdef*{#1}!\manualhyperdef*{#1:#2}#2!#3% - }% - \fi% - \endgroup% -} -\NewDocumentCommand\Replace{ommm}{% - \@for\@tempa:={,#4}\do{% - \ifx\@tempa\@empty\else% - \protected@edef\@tempb{% - Implementierung!#2!\emph{entf\"allt}|see{#3}!\@tempa% - }% - \expandafter\listadd\expandafter\@changedatdeclarelist\expandafter{% - \@tempb% - }% - \IfValueT{#1}{\index[#1]{\@tempa|see{#3}}}% - \fi% - }% -} -\NewDocumentCommand\@ProcessChangedAt{mmd()mmm}{% - \begingroup% - \let\texttt\@firstofone% - \let\textsbn\@firstofone% - \let\textsbs\@firstofone% - \let\Environment\@firstofone% - \let\Macro\@firstofone% - \IfValueTF{#3}{\xdef\@tempa{#2:#3:#5}}{\xdef\@tempa{#2:#5}}% - \endgroup% - \IfBooleanTF{#1}{% - \def\@tempb{\begingroup#4#5\endgroup}% - }{% - \def\@tempb{\begingroup#4#5\endgroup~{\idxfont(#6)}}% - }% - \ifcsdef{r@\@tempa}{\hyperidx[\@tempa]{\@tempb}}{\@tempb}% -} -\newif\if@listsorted -\newcommand*\@sortedlist{} -\newcommand*\sortlist[1]{% - \let\@sortedlist\relax% - \forlistloop\@sortlist{#1}% - \let#1\relax% - \@for\@tempa:=\@sortedlist\do{\listeadd{#1}{\@tempa}}% -} -\newcommand*\@sortlist[1]{% - \ifx\@sortedlist\relax% - \def\@sortedlist{#1}% - \else% - \@listsortedfalse% - \let\@tempb\@empty% - \@for\@tempa:=\@sortedlist\do{% - \if@listsorted% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \else% - \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{% - #1,\@tempa% - }% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{% - \@tempb,#1,\@tempa% - }% - \fi% - \@listsortedtrue% - \else% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \fi% - \fi% - \fi% - }% - \if@listsorted\else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% - \fi% - \let\@sortedlist\@tempb% - \fi% -} -\newcommand*\idxfont{} -\let\idxfont\footnotesize -\robustify{\idxfont} -\newcommand*\PrintIndex{% - \begingroup% - \@printindex% - \@printindex[options]% - \@printindex[macros]% - \@printindex[keys]% - \@printindex[terms]% - \@printindex[fonts]% - \begingroup% - \let\lettergroup\@gobble% - \let\indexspace\par% - \@printindex[colors]% - \endgroup% - \@printindex[files]% - \endgroup% -} -\newcommand*\PrintIndexPrologue[1]{\long\gdef\@printindexprologue{#1}} -\newcommand*\@printindexprologue{} -\newcommand*\@printindexskip{% - \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% -} -\newcommand*\@printindex[1][]{% - \pagebreak[3]% - \ifblank{#1}{% - \ifx\@printindexprologue\@empty% - \indexprologue[\@printindexskip]{\manualhyperdef'{idx:main}}% - \else% - \indexprologue{% - \manualhyperdef'{idx:main}% - \@printindexprologue% - }% - \fi% - \printindex\@printindexskip% - \let\@printindexprologue\@empty% - }{% - \indexprologue[\@printindexskip]{\manualhyperdef'{idx:#1}}% - \printindex[#1]\@printindexskip% - }% -} -\newcommand*\seeidx[2]{\pageref{idx:#1}} -\NewDocumentCommand\Index{mom}{% - \index{% - #1!\textrightarrow{}\space% - \manualhyperref{idx:#3}{Index der \IfValueTF{#2}{#2}{#1}}|seeidx{#3}% - }% -} -\newcommand*\deprecatedhyperpage{} -\newif\if@changelog -\newcommand*\PrintChangelog{% - \begingroup% - \let\lettergroup\@gobble% - \@changelogtrue% - \let\deprecatedhyperpage\hyperpage% - \preto\item{\let\deprecatedhyperpage\hyperpage}% - \preto\subitem{\let\deprecatedhyperpage\hyperpage}% - \preto\subsubitem{\let\deprecatedhyperpage\hyperpage}% - \@printindex[changelog]% - \endgroup% -} -\NewDocumentCommand\Changelog{m}{% - \index{% - #1!\textrightarrow{}\space% - \manualhyperref{idx:changelog}{\"Anderungsliste}|seeidx{changelog}% - }% -} -\renewrobustcmd*\see[2]{% - \ifstr{#1}{*}{\emph{\seename}~#2}{\emph{\seename}~#1}% - \if@changelog\let\deprecatedhyperpage\@gobble\fi% -} -\renewrobustcmd*\seealso[2]{% - \ifstr{#1}{*}{\emph{\alsoname}~#2}{\emph{\alsoname}~#1}% -} -\RequirePackage{xspace}[2009/10/20] -\xspaceaddexceptions{"=} -\newcommand*\vTUDScript{} -\AtBeginDocument{% - \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% - \edef\@tempa{\TUDVersion}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax% -} -\newcommand*\vKOMAScript{v3.17\xspace} -\RequirePackage{scrhack}[2014/02/27] -\newcommand*\CD{Corporate Design\xspace} -\newcommand*\CDs{Corporate Designs\xspace} -\newcommand*\TUD{Technische Universit\"at Dresden\xspace} -\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\DDC{% - \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em - N\kern.1em-\kern.1em concept}\xspace% -} -\AfterPackage*{babel}{% - \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% - \ifin@% - \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} - \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} - \fi -} -\newcommand*\Univers{\textubn{Univers}\xspace} -\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} -\newcommand*\textsbn{} -\newcommand*\sbnfont{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} -\newcommand*\textsbs{} -\newcommand*\sbsfont{\sffamily\bfseries\slshape} -\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} -\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} -\NewDocumentCommand\Forum{s}{% - \IfBooleanTF{#1}{% - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - }{% - \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% - }% - \xspace% -} -\NewDocumentCommand\GitHubRepo{s}{% - \def\@tempc{% - https://github.com/tud-cd/tudscr/releases% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{GitHub-Repository~\File*{tudscr}}% - }{% - \hrfn{\@tempc}{GitHub-Repository~\File*{tudscr}}% - }% - \xspace% -} -\newcommand*\notudscrartcl{% - F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar. -} -\newlength\tempdim -\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}} -\NewDocumentCommand\scrguide{s}{% - \def\@tempc{% - http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{\File{scrguide.pdf}}% - }{% - \hrfn{\@tempc}{\File{scrguide.pdf}}% - }% - \xspace% -} -\endinput -%% -%% End of file `tudscrman.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty deleted file mode 100644 index b0808547369..00000000000 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty +++ /dev/null @@ -1,779 +0,0 @@ -%% -%% This is file `tudscrman.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tudscr-version.dtx (with options: `package,manual') -%% tudscr-manual.dtx (with options: `package,identify') -%% tudscr-base.dtx (with options: `load') -%% tudscr-manual.dtx (with options: `package,option') -%% tudscr-misc.dtx -%% tudscr-manual.dtx (with options: `package,body') -%% -%% ============================================================================ -%% -%% TUD-KOMA-Script -%% Copyright (c) Falk Hanisch , 2012-2016 -%% -%% ============================================================================ -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, version 1.3c of the license. The latest -%% version of this license is in http://www.latex-project.org/lppl.txt and -%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 -%% or later and of this work. This work has the LPPL maintenance status -%% "author-maintained". The current maintainer and author of this work -%% is Falk Hanisch. -%% -%% ---------------------------------------------------------------------------- -%% -%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz -%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle -%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und -%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 -%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status -%% "author-maintained", wird somit allein durch den Autor verwaltet. Der -%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. -%% -%% ============================================================================ -%% -%%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% - \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% - \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% - but `#1' was expected!\MessageBreak% - You should not use classes, packages or files from\MessageBreak% - different TUD-KOMA-Script-Bundle versions% - }% - \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% -\providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{TUDClassName}{% - \PackageError{% - tudscrman% - }{Unsupported class found}{% - This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% - } - \endinput -}{} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% - \ifdin{TUD-KOMA-SCRIPT}{% - \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% - }\csname xspace\endcsname% - }% -}{} -%%% From File: tudscr-manual.dtx -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tudscrman}[% - 2016/06/17 v2.04e TUD-KOMA-Script - package (internal tutorials)% -] -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] -%%% From File: tudscr-manual.dtx -\newif\if@tud@todo -\@tud@todotrue -\newcommand*\tud@todo@type{} -\TUD@key{ToDo}[true]{% - \TUD@set@ifkey{ToDo}{@tud@todo}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \let\tud@todo@type\relax% - \else% - \def\tud@todo@type{#1}% - \@tud@todotrue% - \FamilyKeyStateProcessed% - \fi% -} -\KOMAoptions{headings=small} -\TUDoptions{cd=true,cdfoot=true} -\AfterPackage*{pstricks}{% - \ifnum\pdfshellescape=\@ne\relax\else% - \PassOptionsToPackage{off}{auto-pst-pdf}% - \fi% - \RequirePackage{auto-pst-pdf}[2009/04/26]% -} -%%% From File: tudscr-misc.dtx -%%% From File: tudscr-manual.dtx -\RequirePackage{xparse}[2013/12/31] -\RequirePackage{textcomp}[2005/09/27] -\RequirePackage{setspace}[2011/12/19] -\setstretch{1.1}\recalctypearea -\RequirePackage{babel}[2014/03/24] -\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} -\AtBeginDocument{% - \@ifpackageloaded{csquotes}{}{% - \PackageWarning% - {tudscrman}{Package `csquotes' not loaded}% - \providecommand\enquote[1]{\glqg#1\grqq{}}% - }% -} -\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -\newlength\baselineskipglue -\AtBeginDocument{% - \setlength\baselineskipglue{% - .4\baselineskip plus .4\baselineskip minus .2\baselineskip% - }% -} -\PassOptionsToPackage{vskip=.5\baselineskipglue}{quoting} -\RequirePackage{quoting}[2014/01/28] -\RequirePackage{isodate}[2010/01/03] -\RequirePackage{hologo}[2012/04/26] -\RequirePackage{marginnote}[2012/03/29] -\RequirePackage{listings}[2014/03/04] -\lstdefinestyle{tudscr}{% - basicstyle=\ttfamily\setstretch{1},% - keywordstyle=,% - columns=fullflexible,keepspaces,% - aboveskip=.5\baselineskipglue,% - belowskip=.5\baselineskipglue,% - language=[LaTeX]TeX,% - texcl,% -} -\RequirePackage{silence}[2012/07/02] -\RequirePackage{filemod}[2011/09/19] -\RequirePackage{ifpdf}[2011/01/30] -\ifpdf - \PassOptionsToPackage{colorinlistoftodos,obeyFinal,color=HKS92!10}{todonotes} - \RequirePackage{todonotes}[2012/07/25] -\else - \TUDoptions{ToDo=false} -\fi -\WarningFilter*{ifplatform}{^^J \space\space\space shell escape is disabled} -\RequirePackage{ifplatform}[2010/10/22] -\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} -\PassOptionsToPackage{open,openlevel=0}{bookmark} -\AtBeginDocument{% - \RequirePackage{hyperref}[2012/11/06] - \RequirePackage{bookmark}[2011/12/02] - \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}} - \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel} - \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt} - \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt} - \newcommand*\autorefname[1][current]{% - \ifstr{#1}{current}{% - \expandafter\HyPsd@@autorefname\@currentHref\@nil% - }{% - \@autorefname\HyPsd@@autorefname{#1}% - }% - \unskip\xspace% - } - \newcommand*\@autorefname[2]{% - \expandafter\ifx\csname r@#2\endcsname\relax% - ??% - \else% - \expandafter\expandafter\expandafter\@@autorefname% - \csname r@#2\endcsname{}{}{}{}\@nil#1\@nil% - \fi% - } - \newcommand*\@@autorefname{} - \def\@@autorefname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil} - \newcommand*\manualhyperref[2]{\hyperref{../tudscr}{tudscr}{#1}{#2}} -} -\PassOptionsToPackage{xindy,splitindex}{imakeidx} -\RequirePackage{imakeidx}[2013/07/11]% -\indexsetup{% - level=\subsection*,% - noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% - othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}% -} -\newcommand*\xdyopt{-M tudscrman-temp.xdy -L german-din} -\newcommand*\tud@write@i{} -\newwrite\tud@write@i -\newcommand*\tud@write@ii{} -\newwrite\tud@write@ii -\newcommand*\tud@read{} -\newread\tud@read -\openout\tud@write@i=tudscrman-temp.xdy -\write\tud@write@i{(require "texindy.xdy")} -\write\tud@write@i{% -(define-location-class^^J% -\space\space "arabic-page-numbers" ("arabic-numbers") :min-range-length 1^^J% -)% -} -\write\tud@write@i{(markup-range :sep "--")} -\write\tud@write@i{% -(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% -} -\write\tud@write@i{% -(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "declare"^^J% -\space\space :open "\string\textbf{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "!"^^J% -\space\space :open "\string\textbf{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "important"^^J% -\space\space :open "\string\textsl{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "?"^^J% -\space\space :open "\string\textsl{\string\hyperpage{"^^J% -\space\space :close "}}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "default"^^J% -\space\space :open "\string\hyperpage{"^^J% -\space\space :close "}"^^J% -)% -} -\write\tud@write@i{% -(markup-locref^^J% -\space\space :attr "deprecated"^^J% -\space\space :open "\string\deprecatedhyperpage{"^^J% -\space\space :close "}"^^J% -)% -} -\write\tud@write@i{% - (markup-locclass-list :open "\string\,\string\dotfill\string\,")% -} -\write\tud@write@i{(define-crossref-class "seeidx")} -\write\tud@write@i{% -(markup-crossref-list^^J% -\space\space :class "seeidx" :open "\string\seeidx{" :sep "; " :close "}{}"^^J% -)% -} -\closeout\tud@write@i -\makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]% -\makeindex[% - title={Umgebungen, Befehle und Seitenstile},name=macros,options=\xdyopt% -]% -\makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]% -\RequirePackage{scrwfile}[2013/08/05] -\RequirePackage{filecontents}[2011/10/08] -\WarningFilter[Tutorial]{latex}{Overwriting file}% -\newrobustcmd*\textOR{\,\textbardbl\,} -\newrobustcmd*\PName[1]{\mbox{\texttt{\textsl{<#1>}}}} -\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}} -\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}} -\newrobustcmd*\PSet{\PName{Einstellung}} -\newrobustcmd*\Parameter[1]{\mbox{\texttt{\{}\PName{#1}\texttt{\}}}} -\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}} -\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}} -\newrobustcmd*\OLParameter[1]{% - \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}% -} -\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} -\newrobustcmd*\PParameter[1]{\mbox{\texttt{\{#1\}}}} -\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}} -\newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}} -\newcommand*\@ToDo{} -\NewDocumentCommand\ToDo{somo}{% - \ifbool{@tud@todo}{% - \begingroup% - \define@boolkey{todonotes}{doc}[true]{% - \ifbool{KV@todonotes@doc}{\setkeys{todonotes}{color=HKS41!10}}{}% - }% - \define@boolkey{todonotes}{rls}[true]{% - \ifbool{KV@todonotes@rls}{\setkeys{todonotes}{color=HKS44!50}}{}% - }% - \define@boolkey{todonotes}{imp}[true]{% - \ifbool{KV@todonotes@imp}{\setkeys{todonotes}{color=HKS07!50}}{}% - }% - \define@boolkey{todonotes}{nxt}[true]{% - \ifbool{KV@todonotes@nxt}{\setkeys{todonotes}{color=HKS57!50}}{}% - }% - \def\@ToDo{}% - \IfValueTF{#2}{% - \IfBooleanTF{#1}{\edef\@ToDo{#2,nolist}}{\edef\@ToDo{#2}}% - }{% - \IfBooleanT{#1}{\edef\@ToDo{nolist}}% - }% - \renewcommand*\marginpar[2][]{% - \marginnote[##1]{##2}[\dimexpr-1.6ex+1pt\relax]% - }% - \@tempswafalse - \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}% - \IfValueT{#2}{% - \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}% - }% - \if@tempswa% - \vskip.8ex% - \IfValueT{#4}{% - \settowidth\marginparwidth{#4}% - \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \let\par\relax\noindent% - \edef\@tempa{\noexpand\todo[\@ToDo,noline,nolist]}% - \@tempa{#4}% - }% - \edef\@tempa{\noexpand\todo[\@ToDo,inline]}% - \@tempa{#3}% - \fi% - \endgroup% - \par\noindent% - }{}% - \ignorespaces% -} -\newcommand*\ListOfToDo{\if@tud@todo\listoftodos\fi} -\reversemarginpar -\newrobustcmd*\bsc{\@backslashchar} -\newcommand*\tud@shellescape@wrn{% - \PackageWarning% - {tudscrman}{% - You have to recompile this document with\MessageBreak% - activated shell escape option% - }% - \global\let\tud@shellescape@wrn\relax% -} -\newcommand*\pdfexpandableoutline[1]{% - \AfterPackage*{hyperref}{\pdfstringdefDisableCommands{\csletcs{#1}{@#1}}} -} -\newcommand*\@TUDScript{TUD-KOMA-Script} -\pdfexpandableoutline{TUDScript} -\newcommand*\Application[1]{\ifdin{#1}{\mbox{\textsbs{#1}}}} -\newcommand*\Distribution[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}} -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} -\newcommand*\File[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}} -\NewDocumentCommand\Class{sm}{% - \ifdin{#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{files:#2}{\textsbn{#2}}% - }{% - \textsbn{#2}% - }% - \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Klasse)}}% - }% -} -\DeclareExpandableDocumentCommand\@Class{sm}{#2} -\pdfexpandableoutline{Class} -\NewDocumentCommand\Package{smd()}{% - \ifdin{#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{files:#2}{\textsbn{#2}}% - }{% - \IfValueTF{#3}{% - \href{http://www.ctan.org/pkg/#3}{\textsbn{#2}}% - }{% - \href{http://www.ctan.org/pkg/#2}{\textsbn{#2}}% - }% - }% - \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Paket)}}% - }% -} -\DeclareExpandableDocumentCommand\@Package{sm}{#2} -\pdfexpandableoutline{Package} -\NewDocumentCommand\Option{smo}{% - \ifdin{#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{options:#2}{\texttt{#2}}\IfValueT{#3}{\texttt{=#3}}% - }{% - \texttt{#2}\IfValueT{#3}{\texttt{=#3}}% - }% - \index[options]{\begingroup\ttfamily#2\endgroup}% - }% -} -\DeclareExpandableDocumentCommand\@Option{sm}{#2} -\pdfexpandableoutline{Option} -\NewDocumentCommand\Environment{sm}{% - \ifdin{#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{macros:#2}{\texttt{#2}}% - }{% - \texttt{#2}% - }% - \index[macros]{\begingroup\ttfamily#2\endgroup}% - }% -} -\DeclareExpandableDocumentCommand\@Environment{sm}{#2} -\pdfexpandableoutline{Environment}% -\NewDocumentCommand\Macro{sm}{% - \ifdin{\bsc#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{macros:#2}{\texttt{\bsc#2}}% - }{% - \texttt{\bsc#2}% - }% - \index[macros]{\begingroup\ttfamily\bsc#2\endgroup}% - }% -} -\DeclareExpandableDocumentCommand\@Macro{sm}{#2} -\NewDocumentCommand\Length{sm}{% - \ifdin{\bsc#2}{% - \IfBooleanTF{#1}{% - \manualhyperref{macros:#2}{\texttt{\bsc#2}}% - }{% - \texttt{\bsc#2}% - }% - \index[macros]{\begingroup\ttfamily\bsc#2\endgroup~{\idxfont(L\"ange)}}% - }% -} -\newenvironment{Preamble}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@i}% - \gdef\@tempa{% - \tud@tut@lst% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Preamble*}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@i}% - \gdef\@tempa{% - \tud@tut@lst% - \tud@tut@input% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Preamble+}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@i}% - \gdef\@tempa{% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Trunk}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@ii}% - \gdef\@tempa{% - \tud@tut@lst% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Trunk*}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@ii}% - \gdef\@tempa{% - \tud@tut@lst% - \tud@tut@input% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Trunk+}{\tud@tut@pre}{% - \tud@tut@post% - \tud@tut@append{\tud@write@ii}% - \gdef\@tempa{% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Trunk!}[1]{% - \gdef\@StandaloneFile{#1}% - \tud@tut@pre% -}{% - \tud@tut@post% - \tud@tut@append{\tud@write@ii}% - \gdef\@tempa{% - \tud@tut@lst% - \tud@tut@pdf% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Hint}{\tud@tut@pre}{% - \tud@tut@post% - \gdef\@tempa{% - \tud@tut@lst% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Hint*}{\tud@tut@pre}{% - \tud@tut@post% - \gdef\@tempa{% - \tud@tut@lst% - \tud@tut@input% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Hint?}{\tud@tut@pre}{% - \tud@tut@post% - \gdef\@tempa{% - \InputCode% - \tud@tut@lst% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newenvironment{Hint!}[1]{% - \gdef\@StandaloneFile{#1}% - \tud@tut@pre% -}{% - \tud@tut@post% - \gdef\@tempa{% - \tud@tut@lst% - \tud@tut@pdf% - \global\let\@CodePreamble\relax% - }% - \aftergroup\@tempa% -} -\newcommand*\@StandaloneFile{} -\let\@StandaloneFile\relax -\newcommand*\tud@tut@pre{% - \ActivateWarningFilters[Tutorial]% - \@nameuse{filecontents*}{\jobname-temp.tex}% -} -\newcommand*\tud@tut@post{% - \@nameuse{endfilecontents*}% - \DeactivateWarningFilters[Tutorial]% -} -\newcommand*\tud@tut@lst{% - \begin{quoting}[rightmargin=0pt]% - \lstinputlisting[style=tudscr]{\jobname-temp.tex}% - \end{quoting}% -} -\newcommand\@CodePreamble{} -\let\@CodePreamble\relax -\newcommand\CodePreamble[1]{\long\gdef\@CodePreamble{#1}} -\newcommand*\@CodeHook{} -\let\@CodeHook\relax -\newcommand*\CodeHook[1]{\gdef\@CodeHook{#1}}% -\newcommand*\tud@tut@input{% - \def\@tempa##1##2{% - ##1% - \begingroup% - ##2% - \setbox\@tempboxa\hbox{\vbox{##1}}% - \@tempdima=\ht\@tempboxa% - \setbox\@tempboxa\box\voidb@x% - \ifdim\@tempdima>\z@\relax% - \endgraf% - \vspace{\baselineskipglue}% - \noindent\ignorespaces% - \fi% - \endgroup% - }% - \@tempa{\@CodePreamble}{}% - \setlength\@tempdimc{\leftskip}% - \setlength\leftskip{\leftmargin}% - \ActivateWarningFilters[Tutorial]% - \@tempa{\input{\jobname-temp.tex}}{\@CodeHook}% - \DeactivateWarningFilters[Tutorial]% - \global\let\@CodeHook\relax% - \setlength\leftskip{\@tempdimc}% - \noindent\ignorespaces% -} -\newcommand*\InputCode{\input{\jobname-temp.tex}} -\ifnum\pdfshellescape=\@ne\relax% -\ActivateWarningFilters[Tutorial]% -\begin{filecontents*}{tutorial-temp.tex} -\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrreprt} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{babel} -\usepackage{tudscrsupervisor} -\usepackage{isodate} -\usepackage{enumitem} -\setlist{noitemsep} -\begin{document} -\input{\jobname.tex} -\end{document} -\end{filecontents*} -\DeactivateWarningFilters[Tutorial]% -\fi -\newcommand*\tud@tut@pdf{% - \ifnum\pdfshellescape=\@ne\relax% - \immediate\write18{% - pdflatex -jobname=\jobname-temp tutorial-temp.tex - pdflatex -jobname=\jobname-temp tutorial-temp.tex - pdflatex -jobname=\jobname-temp tutorial-temp.tex - }% - \ifwindows% - \immediate\write18{rename \jobname-temp.pdf \@StandaloneFile-temp.pdf}% - \else% - \immediate\write18{mv \jobname-temp.pdf \@StandaloneFile-temp.pdf}% - \fi% - \fi% - \global\let\@StandaloneFile\relax% -} -\NewDocumentCommand\IncludeStandalone{omO{1}}{% - \IfFileExists{#2-temp.pdf}{% - \@tempcnta\z@% - \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% - \ifnum\@tempcnta>\z@\relax% - \setlength\@tempdima{\textwidth}% - \divide\@tempdima\@tempcnta% - \advance\@tempcnta\m@ne% - \multiply\@tempcnta 2% - \addtolength\@tempdima{-\@tempcnta\tabcolsep}% - \@for\@tempa:=#3\do{% - \advance\@tempcnta\m@ne% - \edef\@tempb{% - keepaspectratio,page=\@tempa,width=\the\@tempdima,% - \IfValueT{#1}{#1}% - } - \fbox{\expandafter\includegraphics\expandafter[\@tempb]{#2-temp.pdf}}% - \ifnum\@tempcnta>\z@\relax\hfill\fi% - }% - \fi% - }{% - \tud@shellescape@wrn% - }% -} -\newcommand\StartTutorial[1][% - Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse - als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach - sinnvollen Pakete geladen. -]{% - \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% - \faculty{}% - \setlength\headingsvskip{-15mm}% - \maketitle\noindent#1% - \immediate\openout\tud@write@i=\jobname-preamble-temp.tex\relax - \immediate\openout\tud@write@ii=\jobname-trunk-temp.tex\relax - \immediate\write\tud@write@ii{^^J\string\begin{document}^^J} -} -\newcommand\FinishTutorial[1][]{% - \immediate\write\tud@write@ii{^^J\string\end{document}^^J} - \immediate\closeout\tud@write@ii% - \immediate\closeout\tud@write@i% - \tud@tut@collect% - \clearpage% - \addsec{Copy~\&~Paste}% - \pagestyle{empty}% - Zum Ende des Dokumentes wird das vorgestellte Tutorial als \"ubersetzbarer - Quelltext ausgegeben, um dieses via Copy~\&~Paste verwenden und alle Punkte - nachvollziehen zu k\"onnen. Bitte beachten Sie, dass~-- abh\"angig vom - genutzten PDF-Betrachter~-- beim Kopieren die dargestellten Einz\"uge und - Abs\"atze m\"oglicherweise verloren gehen k\"onnen. Dies kann insbesondere - aufgrund fehlender Leerzeilen zu einem unvorteilhaften Ausgabeergebnis - f\"uhren. Alternativ finden Sie den folgenden \hologo{LaTeX}-Quelltext auch - im Pfad \Path{texmf/source/latex/tudscr/doc/examples/} als Datei - \File{\jobname-example.tex}. \par #1 - \begin{quoting}[rightmargin=0pt]% - \lstinputlisting[style=tudscr]{\jobname-example-temp.tex}% - \end{quoting}% -} -\newcommand*\tud@tut@line{} -\newcommand*\tud@tut@readtostream[2]{% - \begingroup% - \endlinechar=-1\relax% - \openin\tud@read=#1% - \@tempswafalse% - \loop\unless\ifeof\tud@read% - \readline\tud@read to\tud@tut@line% - \ifx\tud@tut@line\@empty% - \ifeof\tud@read\@tempswafalse\fi% - \else% - \@tempswatrue% - \fi% - \if@tempswa% - \immediate\write#2{\unexpanded\expandafter{\tud@tut@line}}% - \fi% - \ifx\tud@tut@line\@empty\@tempswafalse\fi% - \repeat% - \closein\tud@read% - \endgroup% -} -\newcommand*\tud@tut@append[1]{\tud@tut@readtostream{\jobname-temp.tex}{#1}} -\newcommand*\tud@tut@collect{% - \immediate\openout\tud@write@ii\jobname-example-temp.tex\relax% - \tud@tut@readtostream{\jobname-preamble-temp.tex}{\tud@write@ii}% - \tud@tut@readtostream{\jobname-trunk-temp.tex}{\tud@write@ii}% - \immediate\closeout\tud@write@ii -} -\newcommand*\idxfont{} -\let\idxfont\footnotesize -\robustify{\idxfont} -\newcommand*\PrintIndex{% - \begingroup% - \@printindex[options]% - \@printindex[macros]% - \@printindex[files]% - \endgroup% -} -\newcommand*\@printindexskip{% - \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% -} -\newcommand*\@printindex[1][]{% - \pagebreak[3]% - \indexprologue[\@printindexskip]{}% - \printindex[#1]\@printindexskip% -} -\renewrobustcmd*\see[2]{% - \ifstr{#1}{*}{\emph{\seename}~#2}{\emph{\seename}~#1}% -} -\renewrobustcmd*\seealso[2]{% - \ifstr{#1}{*}{\emph{\alsoname}~#2}{\emph{\alsoname}~#1}% -} -\RequirePackage{xspace}[2009/10/20] -\xspaceaddexceptions{"=} -\newcommand*\vTUDScript{} -\AtBeginDocument{% - \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% - \edef\@tempa{\TUDVersion}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax% -} -\newcommand*\vKOMAScript{v3.17\xspace} -\RequirePackage{scrhack}[2014/02/27] -\newcommand*\CD{Corporate Design\xspace} -\newcommand*\CDs{Corporate Designs\xspace} -\newcommand*\TUD{Technische Universit\"at Dresden\xspace} -\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\DDC{% - \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em - N\kern.1em-\kern.1em concept}\xspace% -} -\AfterPackage*{babel}{% - \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% - \ifin@% - \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} - \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} - \fi -} -\newcommand*\Univers{\textubn{Univers}\xspace} -\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} -\newcommand*\textsbn{} -\newcommand*\sbnfont{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} -\newcommand*\textsbs{} -\newcommand*\sbsfont{\sffamily\bfseries\slshape} -\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} -\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} -\NewDocumentCommand\Forum{s}{% - \IfBooleanTF{#1}{% - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - }{% - \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% - }% - \xspace% -} -\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}} -\NewDocumentCommand\scrguide{s}{% - \def\@tempc{% - http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{\File{scrguide.pdf}}% - }{% - \hrfn{\@tempc}{\File{scrguide.pdf}}% - }% - \xspace% -} -\endinput -%% -%% End of file `tudscrman.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls new file mode 100644 index 00000000000..8e442ca5ef7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls @@ -0,0 +1,2373 @@ +%% +%% This is file `tudscrmanual.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `class,manual,inherit') +%% tudscr-manual.dtx (with options: `class,manual') +%% tudscr-base.dtx (with options: `class,manual,inherit,load') +%% tudscr-manual.dtx (with options: `class,manual,option') +%% tudscr-misc.dtx (with options: `class,manual,inherit,execute') +%% tudscr-manual.dtx (with options: `class,manual,body') +%% tudscr-misc.dtx (with options: `class,manual,xindy') +%% tudscr-fields.dtx (with options: `class,manual,body') +%% tudscr-locale.dtx (with options: `class,manual,body') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\newcommand*\TUD@ProvidesWrapperClass[3]{% + \ProvidesClass{#1}[% + 2016/07/26 v2.05 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \newcommand*\TUD@Class@Parent{#2}% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% +} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% +} +\TUD@ProvidesWrapperClass{tudscrmanual}{tudscrreprt}{manual class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-manual.dtx +%%% From File: tudscr-base.dtx +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@Parent}} +\AfterClass{\TUD@Class@Parent}{\let\TUD@KOMAoptions\KOMAoptions} +%%% From File: tudscr-manual.dtx +\TUD@key{final}[true]{% + \TUD@set@ifkey{final}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \let\tudfinalflag\relax% + \fi% + \fi% +} +\TUD@key{print}[true]{% + \TUD@set@ifkey{print}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \let\tudprintflag\relax% + \fi% + \fi% +} +\AtEndPreamble{% + \ifdef{\tudfinalflag}{% + \TUDoptions{ToDo=false}% + \TUD@key{ToDo}{}% + }{}% + \ifdef{\tudprintflag}{% + \ifnum\tud@cd@num>\z@\relax% + \TUDoptions{cd=true}% + \fi% + \TUD@key{cd}{}% + \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}% + }{}% +} +\PassOptionsToClass{% + cdfoot=true,% + chapterpage=true,% + chapterprefix=true,% + headings=optiontoheadandtoc,% + captions=tableheading,% + numbers=noenddot,% + cd=color,% +}{\TUD@Class@Parent} +\PassOptionsToPackage{automark}{scrlayer-scrpage} +\newif\if@tud@todo +\newcommand*\tud@todo@type@pos{} +\let\tud@todo@type@pos\relax +\newcommand*\tud@todo@type@neg{} +\let\tud@todo@type@neg\relax +\TUD@key{ToDo}[true]{% + \TUD@set@ifkey{ToDo}{@tud@todo}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \let\tud@todo@type@pos\relax% + \let\tud@todo@type@neg\relax% + \else% + \def\@tempa not##1##2##3##4\@nil{% + \ifstr{##1##2##3}{not}{% + \if\relax##4\relax\else% + \listeadd\tud@todo@type@neg{##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + \fi% + }{% + \if\relax##1\relax\else% + \listeadd\tud@todo@type@pos{##1##2##3##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + \fi% + }% + }% + \edef\@tempb{not\trim@spaces{#1}}% + \expandafter\@tempa\@tempb\@empty\@empty\@empty\@nil% + \fi% +} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}} +\TUDProcessOptions\relax +\LoadClass{\TUD@Class@Parent} +%%% From File: tudscr-manual.dtx +\PassOptionsToPackage{log-declarations=false}{xparse} +\RequirePackage{xparse}[2013/12/31] +\RequirePackage{scrhack}[2014/02/27] +\RequirePackage{babel}[2014/03/24] +\PassOptionsToPackage{quiet}{marginnote} +\RequirePackage{marginnote}[2012/03/29] +\reversemarginpar +\RequirePackage{xspace}[2009/10/20] +\xspaceaddexceptions{"=} +\@ifpackagelater{geometry}{2010/09/13}{% + \ClassWarning{\TUD@Class@Name}{% + Package `geometry' was updated so some patches\MessageBreak% + are maybe outdated + }% +}{}% +\newcommand*\vTUDScript{v\TUDScriptVersionNumber} +\newcommand*\vKOMAScript{v\TUD@Version@KOMA} +\newcommand*\tud@english[1]{#1} +\AtBeginDocument{% + \iflanguageloaded{english}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% + }{}% +} +\RequirePackage{ifluatex}[2016/05/16] +\ifluatex + \RequirePackage{pdftexcmds}[2016/05/21] + \let\pdfstrcmp\pdf@strcmp + \let\pdfshellescape\pdf@shellescape +\fi +\newcommand*\tud@templist{} +\let\tud@templist\relax +\newcommand*\tud@list@sort[1]{% + \ifdefvoid{#1}{% + \ClassWarning{tudscrmanual}{% + The given list \string#1\space\MessageBreak% + is empty, nothing to sort here% + }% + }{% + \let\tud@reserved#1% + \let\tud@templist\relax% + \forlistloop\tud@list@@sort{\tud@reserved}% + \let\tud@reserved\relax% + \@for\@tempa:=\tud@templist\do{\listeadd\tud@reserved{\@tempa}}% + \let#1\tud@reserved% + }% +} +\newif\if@tud@list@sorted +\newcommand*\tud@list@@sort[1]{% + \ifx\tud@templist\relax% + \def\tud@templist{#1}% + \else% + \@tud@list@sortedfalse% + \let\@tempb\@empty% + \@for\@tempa:=\tud@templist\do{% + \if@tud@list@sorted% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \else% + \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{% + #1,\@tempa% + }% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{% + \@tempb,#1,\@tempa% + }% + \fi% + \@tud@list@sortedtrue% + \else% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \fi% + \fi% + \fi% + }% + \if@tud@list@sorted\else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% + \fi% + \let\tud@templist\@tempb% + \fi% +} +\newcommand*\tud@trace@lbl@created@add[1]{} +\newcommand*\tud@trace@lbl@missing@add[1]{} +\NewDocumentCommand\tracinglabels{sO{missing}}{% + \newcommand*\tud@trace@lbl@created@list{}% + \newcommand*\tud@trace@lbl@missing@list{}% + \@tempswafalse% + \ifstr{#2}{created}{\@tempswatrue}{}% + \ifstr{#2}{all}{\@tempswatrue}{}% + \if@tempswa% + \renewcommand*\tud@trace@lbl@created@add[1]{% + \typeout{% + +++++ label created: ##1 on page \thepage% + }% + \xifinlist{##1}{\tud@trace@lbl@created@list}{}{% + \listxadd\tud@trace@lbl@created@list{##1}% + }% + }% + \IfBooleanF{#1}{% + \AfterEndDocument{% + \typeout{+++++ labels created (sorted) +++++}% + \tud@list@sort\tud@trace@lbl@created@list% + \forlistloop\typeout{\tud@trace@lbl@created@list}% + }% + }% + \fi% + \@tempswafalse% + \ifstr{#2}{missing}{\@tempswatrue}{}% + \ifstr{#2}{all}{\@tempswatrue}{}% + \if@tempswa% + \renewcommand*\tud@trace@lbl@missing@add[1]{% + \typeout{% + +++++ label missing: ##1 on page \thepage% + }% + \xifinlist{##1}{\tud@trace@lbl@missing@list}{}{% + \listxadd\tud@trace@lbl@missing@list{##1}% + }% + }% + \IfBooleanF{#1}{% + \AfterEndDocument{% + \typeout{+++++ labels missing (sorted) +++++}% + \tud@list@sort\tud@trace@lbl@missing@list% + \forlistloop\typeout{\tud@trace@lbl@missing@list}% + }% + }% + \fi% +} +\@onlypreamble\tracinglabels +\newcommand*\tud@trace@markup[2]{} +\newcommand*\tracingmarkup{% + \renewcommand*\tud@trace@markup[2]{% + \typeout{+++++ markup ##1 on page \thepage^^J##2}% + }% +} +\@onlypreamble\tracingmarkup +\newcommand*\tud@trace@bdl@add[1]{} +\newcommand*\tud@trace@bdl@list{} +\newcommand*\tracingbundle{% + \renewcommand*\tud@trace@bdl@add[1]{% + \begingroup% + \def\Class####1{class:####1}% + \def\Package####1{package:####1}% + \xifinlist{##1}{\tud@trace@bdl@list}{}{% + \listxadd\tud@trace@bdl@list{##1}% + }% + \endgroup% + }% + \AfterEndDocument{% + \typeout{+++++ bundle list +++++}% + \forlistloop\typeout{\tud@trace@bdl@list}% + }% +} +\@onlypreamble\tracingbundle +\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} +\PassOptionsToPackage{open,openlevel=0}{bookmark} +\AfterPackage*{hyperref}{% + \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}% + \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% + \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}% + \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}% + \newcommand*\tud@manualname{tudscr}% + \NewDocumentCommand\tudhyperdef{sm}{% + \IfBooleanTF{#1}{% + \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\tud@manualname}{#2}{}}% + \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax% + \@afterindentfalse\@afterheading% + }{% + \Hy@raisedlink{\hyperdef{\tud@manualname}{#2}{}}\ignorespaces% + }% + \label{#2}% + \tud@trace@lbl@created@add{#2}% + }% + \newcommand*\tudhyperref[2]{\hyperref{}{\tud@manualname}{#1}{#2}}% + \newcommand*\autorefname[1][current]{% + \ifstr{#1}{current}{% + \expandafter\HyPsd@@autorefname\@currentHref\@nil% + }{% + \auto@refname\HyPsd@@autorefname{#1}% + }% + \unskip\xspace% + }% + \newcommand*\auto@refname[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax% + ??% + \else% + \expandafter\expandafter\expandafter\auto@@refname% + \csname r@#2\endcsname{}{}{}{}\@nil#1\@nil% + \fi% + }% + \newcommand*\auto@@refname{}% + \def\auto@@refname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil}% +} +\TUD@UnwindPackage{hyperref}{% + \ClassWarningNoLine{tudscrmanual}% + {% + It is strongly recommended to load package `hyperref'.\MessageBreak% + Nevertheless, essential commands are rudimentarily\MessageBreak% + defined. At least the package `url' is loaded.% + }% + \RequirePackage{url}[2013/09/16]% + \providecommand*\hypersetup[1]{}% + \providecommand*\hyperdef[3]{\label{#1.#2}#3}% + \providerobustcmd*\hyperref{% + \kernel@ifnextchar[{\tud@hyperref@a}{\tud@hyperref@b}% + } + \newcommand*\tud@hyperref@a[2][]{#2} + \newcommand*\tud@hyperref@b[4]{#4} + \providecommand*\href[3][]{#3}% + \providecommand*\hyperpage[1]{#1}% + \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}% + \providecommand*\phantomsection{}% + \providecommand*\texorpdfstring[2]{#1}% + \tud@locale@german{\partautorefname}{Teil}% + \tud@locale@german{\chapterautorefname}{Kapitel}% + \tud@locale@german{\sectionautorefname}{Unterkapitel}% + \tud@locale@german{\subsectionautorefname}{Abschnitt}% + \tud@locale@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@locale@english{\partautorefname}{Part}% + \tud@locale@english{\chapterautorefname}{chapter}% + \tud@locale@english{\sectionautorefname}{section}% + \tud@locale@english{\subsectionautorefname}{subsection}% + \tud@locale@english{\subsubsectionautorefname}{subsubsection}% + \providecommand*\Email[1]{\mbox{#1}}% + \ProvideDocumentCommand\tudhyperdef{sm}{\label{#2}}% + \providecommand*\tudhyperref[2]{#2}% + \providecommand*\autorefname[1][]{??\xspace}% +} +\RequirePackage{varioref}[2011/10/02] +\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} +\newcommand*\hrfn[2]{% + \href{#1}{\trim@spaces{#2}}% + \footnote{% + \scalebox{0.95}{% + \def\_{_}% + \edef\@tempa{#1}% + \strut\expandafter\url\expandafter{\@tempa}% + }% + }% +} +\AfterPackage*{hyperref}{% + \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% + \let\bbl@info\@gobble\csname HyPsd@babel@% + }{}{\tud@patch@wrn{pdfstringdef}}% +} +\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} +\TUD@UnwindPackage{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} +\newif\if@tud@declare +\newif\if@openindex +\newcommand*\tud@declare@num{0} +\newcommand*\tud@declaration@list{} +\let\tud@declaration@list\relax +\NewDocumentEnvironment{Declaration}{omoog}{% + \listadd\tud@declaration@list{#2}% + \tud@declare@start[#1]{#2}{#3}{#4}{#5}% +}{% + \tud@declare@end{#2}{\printdeclarationlist}% +} +\newif\if@tud@obsolete +\NewDocumentEnvironment{Obsolete}{momoog}{% + \@tud@obsoletetrue% + \ifxblank{#1}{% + \listadd\tud@declaration@list{% + \def\tud@declare@num{1}% + #3% + \def\tud@declare@num{0}% + }% + \tud@declare@start{#3}{#4}{#5}{#6}% + }{% + \listadd\tud@declaration@list{#3}% + \IfValueTF{#2}{% + \Changed@At@CreateList[#2]{#1!#3}% + }{% + \Changed@At@CreateList[#3]{#1}% + }% + \IfValueTF{#6}{% + \tud@declare@start{#3}{#4}{#5}{#6}% + }{% + \toks@{\tud@declare@start{#3}{#4}{#5}}% + \def\@tempa{\emph{entf\"allt}}% + \in@{:}{#1}% + \ifin@% + \def\@tempb##1:##2\@nil{% + \IfArgIsEmpty{##2}{}{% + \def\@tempa{\seeref{##2'page'}}% + }% + }% + \@tempb#1\@nil% + \fi% + \eaddto@hook\toks@{\expandafter{\@tempa}}% + \the\toks@% + }% + }% + \@tud@obsoletefalse% +}{% + \@tud@obsoletetrue% + \tud@declare@end{#3}{\printobsoletelist}% + \@tud@obsoletefalse% +} +\newcommand*\tud@preset@list{} +\let\tud@preset@list\relax +\newif\if@tud@preset@list +\newcommand*\tud@additional@list{} +\let\tud@additional@list\relax +\newif\if@tud@additional@list +\NewDocumentCommand\tud@declare@start{ommmm}{% + \Changed@At@CreateList[#2]{#1}% + \IfValueTF{#3}{% + \@tud@preset@listtrue% + \def\@tempa{Voreinstellung: \PValue{#3}}% + \IfValueT{#4}{% + \def\@tempb[##1:##2]{##1: \PValue{##2}}% + \eappto\@tempa{ | \expandonce{\@tempb[#4]}}% + }% + \listeadd\tud@preset@list{\expandonce\@tempa}% + }{% + \listadd\tud@preset@list{\relax}% + }% + \IfValueTF{#5}{% + \@tud@additional@listtrue% + \listadd\tud@additional@list{(#5)}% + \in@{\Environment}{#2}% + \ifin@\listadd\tud@additional@list{\tabularnewline}\fi% + }{% + \listadd\tud@additional@list{\relax}% + \in@{\Environment}{#2}% + \ifin@% + \listadd\tud@additional@list{\relax}% + \listadd\tud@additional@list{\relax}% + \fi% + }% +} +\newcommand*\tud@declare@end[2]{% + \ifx\tud@declaration@list\relax\else% + \ClassError{tudscrmanual}{\string#2\space is missing}{% + \string\tud@declaration@list\space is not empty. Did you\MessageBreak% + forget to print this list with\MessageBreak% + \string#2?% + }% + \fi% + \vskip-\lastskip% + \@tud@declaretrue\@openindexfalse#1\@tud@declarefalse% + \pagebreak[1]% +} +\NewDocumentEnvironment{Declaration*}{om}{% + \tud@declare@special@start[#1]{#2}{2}% +}{% + \tud@declare@special@end{#2}% +} +\NewDocumentEnvironment{Bundle*}{om}{% + \tud@declare@special@start[#1]{#2}{3}% + \Bundle{#2}% +}{% + \endBundle% + \tud@declare@special@end{#2}% +} +\NewDocumentCommand\tud@declare@special@start{omm}{% + \Changed@At@CreateList(#2){#1}% + \def\tud@declare@num{#3}% + \@tud@declaretrue\@openindextrue#2\@tud@declarefalse% + \def\tud@declare@num{0}% +} +\newcommand*\tud@declare@special@end[1]{% + \ifx\tud@changedat@list\relax\else% + \ClassError{tudscrmanual}{\string\printchangedatlist\space is missing}{% + \string\tud@changedat@list\space is not empty. Did you\MessageBreak% + forget to print this list with \string\printchangedatlist?% + }% + \fi% + \@tud@declaretrue\@openindexfalse#1\@tud@declarefalse% +} +\newskip\tud@lastskip +\pretocmd{\index}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{index}} +\pretocmd{\label}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{label}} +\NewDocumentCommand\printdeclarationlist{sd()}{% + \ifx\tud@declaration@list\relax\else% + \ifhmode% + \vskip\medskipamount% + \else% + \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax% + \ifdim\@tempskipa>\z@% + \addpenalty{\@beginparpenalty}% + \addvspace{\@tempskipa}% + \fi% + \fi% + \global\tud@lastskip=\z@% + \@afterindentfalse\@afterheading% + \@tud@declaretrue\@openindextrue% + \def\@tempa##1{\ignorespaces##1\tabularnewline}% + \edef\HyperRaiseLinkDefault{\the\baselineskip}% + \sbox\z@{% + \begin{tabular}{|l|}% + \hline% + \forlistloop\@tempa{\tud@declaration@list}% + \hline% + \end{tabular}% + }\usebox\z@% + \@tud@declarefalse% + \ifboolexpr{bool {@tud@preset@list} or bool {@tud@additional@list}}{% + \def\@tempa##1{\small\ignorespaces##1\tabularnewline}% + \qquad% + \if@tud@preset@list% + \begin{tabular}{@{}l@{}}% + \forlistloop\@tempa{\tud@preset@list}% + \end{tabular}% + \hspace{\tabcolsep}% + \fi% + \if@tud@additional@list% + \begin{tabular}{@{}l@{}}% + \forlistloop\@tempa{\tud@additional@list}% + \end{tabular}% + \fi% + }{}% + \global\let\tud@declaration@list\relax% + \global\let\tud@preset@list\relax% + \global\let\tud@additional@list\relax% + \global\@tud@preset@listfalse% + \global\@tud@additional@listfalse% + \print@changedatlist{#1}{% + \dimexpr.5\ht\strutbox+.5\dp\strutbox-.5\ht0-.5\dp0\relax% + }% + \IfValueT{#2}{#2}% + \par\nobreak% + \vskip\medskipamount% + \@afterindentfalse\@afterheading% + \fi% +} +\newcommand*\printobsoletelist{% + \@tud@obsoletetrue% + \printdeclarationlist*% + \@tud@obsoletefalse% +} +\NewDocumentCommand\printchangedatlist{sO{\z@}}{% + \print@changedatlist{#1}{#2}% +} +\newrobustcmd*\bsc{\@backslashchar} +\newrobustcmd*\suffix[1]{\begingroup~\scriptsize(#1)\endgroup} +\newcommand*\NewExpandableDocumentCommand[3]{% + \NewDocumentCommand#1{#2}{#3}% + \DeclareExpandableDocumentCommand#1{#2}{#3}% +} +\newcommand*\ProcessorKeyVal[1]{% + \begingroup% + \in@{=}{#1}% + \ifin@% + \def\@tempa##1=##2\@nil{\toks@{{##1}=##2=}}% + \else% + \def\@tempa##1\@nil{\toks@{{##1}}}% + \fi% + \@tempa#1\@nil% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\ProcessedArgument{\the\toks@}% + }% + \tud@reserved% +} +\newcommand*\tud@keyval@error{% + \ClassError{tudscrmanual}% + {Wrong usage of optional argument for value}% + {There are two optional arguments for a value given!}% +} +\newenvironment{Bundle}[1]{% + \tud@if@bdl{% + \ClassError{tudscrmanual}% + {Nested environment `Bundle'}{% + It is not possible to nest this environment, when\MessageBreak% + a cross-label was given before.% + }% + }{% + \gdef\tud@bdl@curr{#1}% + }% + \ignorespaces% +}{% + \global\let\tud@bdl@curr\tud@bdl@dflt% + \aftergroup\ignorespaces% +} +\newcommand*\tud@bdl@curr{} +\newcommand*\tud@bdl@dflt{tudscr} +\let\tud@bdl@curr\tud@bdl@dflt +\newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} +\NewExpandableDocumentCommand\@Application{sm}{#2} +\NewDocumentCommand\Application{smd()d<>d||}{% + \Markup@SetFormat{\sbsfont}% + \IfValueTF{#4}{% + \Process@Markup{\Application{#2}}(#3)<#4>% + }{% + \Process@Markup{\Application{#2}}(#3)% + }% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#4|% +} +\NewExpandableDocumentCommand\@Distribution{sm}{#2} +\NewDocumentCommand\Distribution{smod()d||}{% + \Markup@SetFormat{\sbnfont}% + \IfValueTF{#3}{% + \Process@Markup{\Distribution{#2}}[~#3](#4)% + }{% + \Process@Markup{\Distribution{#2}}(#4)% + }% + \Process@Index{#1}{\Distribution{#2}}[Distribution](#4)|#5|% +} +\NewExpandableDocumentCommand\@Engine{sm}{#2} +\NewDocumentCommand\Engine{smd()d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Engine{\hologo{#2}}}(#3)% + \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% +} +\NewExpandableDocumentCommand\@File{sm}{#2} +\NewDocumentCommand\File{smd()d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\File{#2}}(#3)% + \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% +} +\NewExpandableDocumentCommand\@Class{sm}{#2} +\NewDocumentCommand\Class{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Class{#2}}[Klasse]% + \else% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Class{#2}}(#3)'#4'% + \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@Package{sm}{#2} +\NewDocumentCommand\Package{smd()d<>d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Package{#2}}[Paket]% + \else% + \Markup@SetFormat{\sbnfont}% + \IfValueTF{#4}{% + \Process@Markup{\Package{#2}}(#3)<#4>'#5'% + }{% + \Process@Markup{\Package{#2}}(#3)<#2>'#5'% + }% + \Process@Index{#1}{\Package{#2}}[Paket](#3)|#6|% + \fi% +} +\NewExpandableDocumentCommand\@Option{sm}{#2} +\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{% + \Option@Value{#1}#2=#3=(#4)'#5'|#6|% +} +\NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{% + \IfValueT{#4}{\tud@keyval@error}% + \if@tud@changedat% + \Process@ChangedAt{\Option{#2}}=#3=[Option](#5)% + \else% + \Markup@SetFormat{\ttfamily}% + \Process@Markup{\Option{#2}}=#3=(#5)'#6'% + \Process@Index{#1}{\Option{#2}}=#3=(#5)|#7|% + \fi% +} +\NewExpandableDocumentCommand\@Environment{sm}{#2} +\NewDocumentCommand\Environment{smod()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Environment{#2}}[Umgebung](#4)% + \else% + \Markup@SetFormat{\ttfamily}(% + \ttfamily\bsc{}begin\textbraceleft#2\textbraceright\IfValueT{#3}{#3}% + \tabularnewline\ttfamily\dots% + \tabularnewline\ttfamily\bsc{}end\textbraceleft#2\textbraceright% + )% + \Process@Markup{\Environment{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Environment{#2}}[Umgebung](#4)|#6|% + \fi% +} +\NewExpandableDocumentCommand\@Macro{sm}{#2} +\NewDocumentCommand\Macro{smod()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Macro{#2}}[Befehl](#4)% + \else% + \Markup@SetFormat{\ttfamily\bsc}% + \Process@Markup{\Macro{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Macro{#2}}(#4)|#6|% + \fi% +} +\NewExpandableDocumentCommand\@Length{sm}{#2} +\NewDocumentCommand\Length{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Length{#2}}[L\"ange](#3)% + \else% + \Markup@SetFormat{\ttfamily\bsc}[L\"ange]% + \Process@Markup{\Length{#2}}(#3)'#4'% + \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@Counter{sm}{#2} +\NewDocumentCommand\Counter{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Counter{#2}}[Z\"ahler](#3)% + \else% + \Markup@SetFormat{\ttfamily}[Z\"ahler]% + \Process@Markup{\Counter{#2}}(#3)'#4'% + \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@Key{smm}{#2!#3} +\NewDocumentCommand\Key{sm>{\ProcessorKeyVal}md==d()d''d||}{% + \Key@Value{#1}{#2}#3=#4=(#5)'#6'|#7|% +} +\NewDocumentCommand\Key@Value{mmmd==d==d()d''d||}{% + \IfValueT{#5}{\tud@keyval@error}% + \if@tud@changedat% + \Process@ChangedAt{\Key{#2}{#3}}=#4=[Parameter](#6)% + \else% + \Markup@SetFormat{\ttfamily}[Parameter]% + \Process@Markup{\Key{#2}{#3}}=#4=(#6)'#7'% + \Process@Index{#1}{\Key{#2}{#3}}=#4=(#6)|#8|% + \fi% +} +\NewExpandableDocumentCommand\@Term{sm}{#2} +\NewDocumentCommand\Term{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Term{#2}}[Bezeichner](#3)% + \else% + \Markup@SetFormat{\ttfamily\bsc}[Bezeichner]% + \Process@Markup{\Term{#2}}(#3)'#4'% + \Process@Index{#1}{\Term{#2}}(#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@PageStyle{sm}{#2} +\NewDocumentCommand\PageStyle{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\PageStyle{#2}}[Seitenstil](#3)% + \else% + \Markup@SetFormat{\ttfamily}[Seitenstil]% + \Process@Markup{\PageStyle{#2}}(#3)'#4'% + \Process@Index{#1}{\PageStyle{#2}}[Seitenstil](#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@Font{sm}{#2} +\NewDocumentCommand\Font{smd()d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Font{#2}}[Schriftelement](#3)% + \else% + \Markup@SetFormat{\ttfamily}[Schriftelement]% + \Process@Markup{\Font{#2}}(#3)'#4'% + \Process@Index{#1}{\Font{#2}}[Schriftelement](#3)|#5|% + \fi% +} +\NewExpandableDocumentCommand\@Color{sm}{#2} +\NewDocumentCommand\Color{smoD(){\Package{tudscrcolor}}d''d||}{% + \if@tud@changedat% + \Process@ChangedAt{\Color{#2}}[Farbe](#4)% + \else% + \Markup@SetFormat{\ttfamily}[Farbe](% + \begingroup\ttfamily{#2\IfValueT{#3}{~(#3)}}\endgroup% + )% + \Process@Markup{\Color{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Color{#2}}[Farbe](#4)|#5|% + \fi% +} +\NewDocumentCommand\tud@attr@get{smm}{% + \begingroup% + \def\@tempa##1##2##3{% + \def##1####1{% + \edef\@tempb{\IfBooleanTF{#1}{##2}{##3}}% + }% + }% + \@tempa\Application{\jobname}{app}% + \@tempa\Distribution{\jobname}{dst}% + \@tempa\Engine{\jobname}{eng}% + \@tempa\File{files}{fle}% + \@tempa\Class{files}{cls}% + \@tempa\Package{files}{pkg}% + \@tempa\Option{options}{opt}% + \@tempa\Environment{macros}{env}% + \@tempa\Macro{macros}{cmd}% + \@tempa\Length{misc}{len}% + \@tempa\Counter{misc}{cnt}% + \def\Key##1##2{% + \edef\@tempb{\IfBooleanTF{#1}{macros}{key}}% + }% + \@tempa\Term{terms}{term}% + \@tempa\PageStyle{elements}{pgs}% + \@tempa\Font{elements}{font}% + \@tempa\Color{elements}{clr}% + #3% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{\@tempb}% + }% + \tud@reserved% +} +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} +\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} +\newrobustcmd*\PName[1]{\PValue{\textsl{<#1>}}} +\newrobustcmd*\PValueName[1]{\PName{#1}} +\newrobustcmd*\PSet{\PName{Einstellung}} +\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}} +\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}} +\newrobustcmd*\Parameter[1]{% + \mbox{\texttt{\textbraceleft}\PName{#1}\texttt{\textbraceright}}% +} +\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}} +\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}} +\newrobustcmd*\OLParameter[1]{% + \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}% +} +\newrobustcmd*\PParameter[1]{\mbox{\texttt{\textbraceleft#1\textbraceright}}} +\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}} +\newrobustcmd*\textOR{\PValue{\,\textbardbl\,}} +\newcommand*\tud@doifPValue[3][]{% + \IfValueT{#2}{% + \begingroup% + \let\PValue\@firstofone% + \let\PName\@gobble% + \let\PValueName\@firstofone% + \let\PSet\@empty% + \let\PBoolean\@empty% + \let\PBName\@gobble% + \let\Parameter\@gobble% + \let\OParameter\@gobble% + \let\LParameter\@empty% + \let\OLParameter\@gobble% + \let\PParameter\@gobble% + \let\POParameter\@gobble% + \let\textOR\relax% + \let\emph\@firstofone% + #1% + \ifxblank{#2}{% + \let\tud@reserved\endgroup% + }{% + \protected@edef\tud@reserved{\noexpand\endgroup#3}% + }% + \tud@reserved% + }% +} +\NewDocumentCommand\Markup@Gobble{s}{% + \let\Application\@Application% + \let\Distribution\@Distribution% + \let\Engine\@Engine% + \let\File\@File% + \let\Class\@Class% + \let\Package\@Package% + \let\Option\@Option% + \let\Environment\@Environment% + \let\Macro\@Macro% + \let\Length\@Length% + \let\Counter\@Counter% + \let\Key\@Key% + \let\Term\@Term% + \let\PageStyle\@PageStyle% + \let\Font\@Font% + \let\Color\@Color% + \IfBooleanF{#1}{% + \let\PValue\@firstofone% + \let\PName\@firstofone% + \let\PValueName\@firstofone% + \let\PSet\relax% + \let\PBoolean\relax% + \let\PBName\@firstofone% + \let\Parameter\@firstofone% + \let\OParameter\@firstofone% + \let\LParameter\relax% + \let\OLParameter\@firstofone% + \let\PParameter\@firstofone% + \let\POParameter\@firstofone% + \let\textOR\relax% + \let\hologoRobust\@firstofone% + \def\TUDScript{TUD-KOMA-Script}% + \def\_{-}% + \protected\def~{~}% + }% +} +\AfterPackage*{hyperref}{% + \expandafter\pdfstringdefDisableCommands\expandafter{\Markup@Gobble}% +} +\newcommand*\tud@lbl@tmp{} +\newcommand*\tud@lbl@fmt{% + \def~{-}% + \let\IeC\@firstofone% + \def\"##1{##1e}% + \def\ss{ss}% + \let\NoCaseChange\@firstofone% +} +\NewDocumentCommand\tud@lbl@get@curr{% + sm>{\tud@lbl@create}>{\SplitArgument{2}{:}}md==% +}{% + \tud@lbl@get@@curr#2{#3}=#4=% + \IfBooleanF{#1}{% + \@tempswafalse% + \tud@if@lbl@exists{#2}{% + \@tempswatrue% + }{% + \IfValueT{#4}{% + \tud@lbl@get@@curr\tud@reserved{#3}% + \tud@if@lbl@exists{\tud@reserved}{% + \let#2\tud@reserved% + \@tempswatrue% + }{}% + }% + }% + \if@tempswa\else% + \tud@if@bdl{\tud@lbl@get@dflt#2{#3}=#4=}{}% + \fi% + }% +} +\NewDocumentCommand\tud@lbl@get@@curr{mmd==}{% + \def#1{#2}% + \tud@doifPValue[\tud@lbl@fmt]{#3}{\noexpand\appto\noexpand#1{=#3}}% +} +\NewDocumentCommand\tud@lbl@get@dflt{m>{\SplitArgument{2}{:}}mr==}{% + \tud@lbl@get@@dflt{#1}#2=#3=% +} +\NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{% + \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}% + \ifstr{\tud@reserved}{#2}{}{% + \tud@lbl@get@curr#1{\tud@bdl@dflt:#3:#4}=#5=% + }% +} +\NewDocumentCommand\tud@if@lbl@exists{% + >{\tud@lbl@create}>{\SplitArgument{2}{:}}m% +}{% + \ifcsdef{r@#1}{% + \expandafter\@firstoftwo% + }{% + \expandafter\@secondoftwo% + }% +} +\NewDocumentCommand\tud@lbl@create{m}{\tud@lbl@@create#1} +\NewDocumentCommand\tud@lbl@@create{mmm}{% + \begingroup% + \Markup@Gobble% + \tud@lbl@fmt% + \IfValueTF{#3}{% + \edef\@tempa{#1:#2:#3}% + }{% + \IfValueTF{#2}{% + \tud@attr@get\@tempb{#2}% + \IfValueTF{#1}{% + \ifxblank{#1}{% + \edef\@tempa{\tud@bdl@dflt:\@tempb:#2}% + }{% + \edef\@tempa{#1:\@tempb:#2}% + }% + }{% + \edef\@tempa{\tud@bdl@curr:\@tempb:#2}% + }% + }{% + \edef\@tempa{#1}% + }% + }% + \edef\@tempc{% + \noexpand\endgroup% + \def\noexpand\ProcessedArgument{% + \expandafter\detokenize\expandafter{\@tempa}% + }% + }% + \@tempc% +} +\newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} +\NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} +\NewDocumentCommand\Process@Markup{md==od()d<>d''}{% + \if@tud@declare% + \tud@toks@{\Process@@MarkupDeclare}% + \IfValueTF{#4}{% + \tud@lbl@get@curr*\tud@lbl@tmp{#4:#1}=#2=% + }{% + \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:#1}=#2=% + }% + \else% + \tud@toks@{\Process@@MarkupInline}% + \tud@lbl@get@curr\tud@lbl@tmp{#4:#1}=#2=% + \fi% + \eaddto@hook\tud@toks@{\expandafter{\tud@lbl@tmp}}% + \begingroup% + \Markup@Gobble*% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\tud@reserved{#1}% + }% + \tud@reserved% + \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}% + \IfValueT{#2}{\addto@hook\tud@toks@{=#2=}}% + \IfValueT{#3}{\addto@hook\tud@toks@{[#3]}}% + \if@tud@declare% + \if@openindex% + \IfValueT{#6}{% + \ClassWarning{tudscrmanual}{% + It is not possible to use any cross-reference\MessageBreak% + shorthand like '#6' within the arguments of\MessageBreak% + the environment `Declaration'% + }% + }% + \tud@trace@markup{declare}{\the\tud@toks@}% + \else% + \tud@toks@{\relax}% + \fi% + \else% + \if@tud@index\else% + \IfValueT{#5}{% + \ifxblank{#5}{}{\addto@hook\tud@toks@{}}% + }% + \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}% + \fi% + \tud@trace@markup{output}{\the\tud@toks@}% + \fi% + \if@tud@index\else% + \IfValueT{#4}{% + \ifxblank{#4}{}{% + \tud@trace@bdl@add{#4}% + \ifstr{#6}{none}{}{% + \tud@if@lbl@exists{\tud@lbl@tmp}{}{% + \ClassWarning{tudscrmanual}{% + No existing label \tud@lbl@tmp\space for #4% + }% + }% + }% + }% + }% + \fi% + \the\tud@toks@% +} +\NewDocumentCommand\Process@@MarkupDeclare{mmd==o}{% + \Markup@CheckFormat% + \ifcase\tud@declare@num\relax% + \tudhyperdef{#1}% + \Markup@Output{#2}=#3=[#4]% + \or% + \Markup@Output{#2}=#3=[#4]% + \or% + \tudhyperdef{#1}% + \or% + \tudhyperdef*{#1}% + \def\@tempa##1:##2:##3\@nil{\tudhyperdef*{##3:##2:##3}}% + \@tempa#1\@nil% + \fi% + \Markup@ClearFormat% +} +\NewDocumentCommand\Process@@MarkupInline{mmd==od<>d''}{% + \Markup@CheckFormat% + \begingroup% + \def\@tempc{\Markup@Output{#2}=#3=[#4]}% + \tud@if@lbl@exists{#1}{% + \def\@tempa{\hyperref{}{\tud@manualname}{#1}{\@tempc}}% + \let\@tempb\relax% + \IfValueT{#6}{% + \def\@tempb{% + \ClassWarning{tudscrmanual}{% + You've used the unknown cross-reference\MessageBreak% + shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak% + as well as 'none' \IfValueT{#5}{or 'url' }are valid% + }% + }% + \ifstr{#6}{auto}{\def\@tempb{ in \autoref{#1}}}{% + \ifstr{#6}{page}{\def\@tempb{ \vpageref{#1}}}{% + \ifstr{#6}{ppage}{\def\@tempb{ \reftextfaraway{#1}}}{% + \ifstr{#6}{full}{\def\@tempb{ in \fullref{#1}}}{% + \ifstr{#6}{none}{\let\@tempa\@tempc\let\@tempb\relax}{}}}}}% + \IfValueT{#5}{% + \ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}% + }% + }% + }{% + \let\@tempa\@tempc% + \IfValueT{#5}{\def\@tempa{\href{#5}{\@tempc}}}% + \let\@tempb\relax% + \IfValueT{#6}{% + \ifstr{#6}{none}{\let\@tempa\@tempc}{% + \def\@tempb{% + \ClassWarning{tudscrmanual}{% + Label #1\MessageBreak% + is missing, no cross-reference created.% + }% + }% + }% + }% + \tud@trace@lbl@missing@add{#1}% + }% + \ifdin{\@tempc}{\@tempa\@tempb}% + \endgroup% + \Markup@ClearFormat% +} +\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}md==o}{% + \Markup@@Output#1=#2=[#3]% +} +\NewDocumentCommand\Markup@@Output{mmd==o}{% + \if@tud@declare% + \tud@toks@{\Markup@Declare}% + \else% + \tud@toks@{\Markup@Inline}% + \fi% + \IfValueTF{#2}{% + \def\@tempa{#2}% + }{% + \def\@tempa{#1}% + }% + \IfValueT{#3}{\appto\@tempa{=#3}}% + \IfValueT{#4}{\appto\@tempa{#4}}% + \eaddto@hook\tud@toks@{\expandafter{\@tempa}}% + \the\tud@toks@% +} +\newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} +\newcommand*\Markup@Declare{} +\newcommand*\Markup@@Declare[1]{% + \begingroup\Markup@Format{#1}\endgroup\Markup@Suffix% +} +\newcommand*\Markup@Format{} +\newcommand*\Markup@Suffix{} +\NewDocumentCommand\Markup@SetFormat{mod()}{% + \def\Markup@Format{\ifdin{\MakeTextUppercase}{#1}}% + \IfValueT{#2}{\def\Markup@Suffix{\suffix{#2}}}% + \IfValueT{#3}{\renewcommand*\Markup@Declare[1]{#3\Markup@Suffix}}% +} +\robustify\NoCaseChange +\NewDocumentCommand\tud@nonchangecase{m}{% + \DeclareExpandableDocumentCommand#1{sm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}}% + }% +} +\apptocmd{\tud@x@textcase@uclcnotmath}{% + \tud@nonchangecase\Application% + \tud@nonchangecase\Distribution% + \tud@nonchangecase\Engine% + \tud@nonchangecase\File% + \tud@nonchangecase\Class% + \tud@nonchangecase\Package% + \tud@nonchangecase\Option% + \tud@nonchangecase\Environment% + \tud@nonchangecase\Macro% + \tud@nonchangecase\Length% + \tud@nonchangecase\Counter% + \DeclareExpandableDocumentCommand\Key{smm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}{##3}}% + }% + \tud@nonchangecase\Term% + \tud@nonchangecase\PageStyle% + \tud@nonchangecase\Font% + \tud@nonchangecase\Color% +}{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} +\newcommand*\Markup@ClearFormat{% + \let\Markup@Format\relax% + \let\Markup@Declare\Markup@@Declare% + \let\Markup@Suffix\relax% +} +\Markup@ClearFormat +\newcommand*\Markup@CheckFormat{% + \ifx\Markup@Format\relax% + \ClassError{tudscrmanual}{\string\Markup@SetFormat\space unused}{% + It seems you have forgotten to use \string\Markup@SetFormat.% + }% + \fi% +} +\PassOptionsToPackage{xindy,splitindex}{imakeidx} +\RequirePackage{imakeidx}[2013/07/11] +\indexsetup{% + level=\addsec,% + noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% + othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}% +} +\ifimki@original\else% + \CheckCommand\theindex{% + \imki@maybeaddtotoc + \imki@indexlevel{\indexname}\imki@indexheaders + \thispagestyle{\imki@firstpagestyle}% + \ifnum\imki@columns>\@ne + \columnsep \imki@columnsep + \ifx\imki@idxprologue\relax + \begin{multicols}{\imki@columns} + \else + \begin{multicols}{\imki@columns}[\imki@idxprologue] + \fi + \else + \imki@idxprologue + \fi + \global\let\imki@idxprologue\relax + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \columnseprule \ifKV@imki@columnseprule.4\p@\else\z@\fi + \raggedright + \let\item\@idxitem + \imki@othercode% + }% + \patchcmd{\theindex}{% + \imki@indexlevel{\indexname}\imki@indexheaders% + }{% + \imki@indexheaders% + }{}{\tud@patch@wrn{theindex}}% + \patchcmd{\theindex}{% + \ifnum\imki@columns>\@ne + \columnsep \imki@columnsep + \ifx\imki@idxprologue\relax + \begin{multicols}{\imki@columns} + \else + \begin{multicols}{\imki@columns}[\imki@idxprologue] + \fi + \else + \imki@idxprologue + \fi + }{% + \ifnum\imki@columns>\@ne\relax% + \columnsep \imki@columnsep% + \ifx\imki@idxprologue\relax% + \begin{multicols}{\imki@columns}[\imki@indexlevel{\indexname}]% + \else% + \begin{multicols}{\imki@columns}[% + \imki@indexlevel{\indexname}% + \imki@idxprologue% + ]% + \fi% + \else% + \imki@indexlevel{\indexname}\imki@idxprologue% + \fi% + }{}{\tud@patch@wrn{theindex}}% +\fi% +\newrobustcmd*\cleversee{\tud@cleversee{\seename}} +\newrobustcmd*\cleverseealso{% + \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}% + \tud@cleversee{\alsoname}% +} +\newcommand*\tud@cleversee{} +\def\tud@cleversee#1#2#3\relax{% + \IfArgIsEmpty{#3}{% + \emph{#1}\space#2% + }{% + #3, \emph{\alsoname}\space#2% + }% +} +\NewDocumentCommand\seeref{sm}{% + \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% +} +\newcommand*\seeidx[2]{\pageref{idx:#1}} +\NewDocumentCommand\makexdyindex{somo}{% + \let\@tempb\@empty% + \IfBooleanT{#1}{% + \def\@tempc{\jobname-#4-declare.idx}% + \makeindex[name={#4-declare}]% + \IfFileExists{\@tempc}{% + \edef\@tempb{-o \jobname-#4.ind \@tempc}% + }{% + \ClassWarning{tudscrmanual}{File \@tempc\space not found}% + }% + }% + \protected@edef\@tempa{% + title={#3},% + columnsep=\noexpand\f@size\noexpand\p@,% + \IfValueTF{#4}{% + name={#4},% + options={-M \@currname-ind.xdy -L german-din -t \jobname-#4.xlg \@tempb},% + }{% + options={-M \@currname-ind.xdy -L german-din -t \jobname.xlg},% + }% + \IfValueT{#2}{#2}% + }% + \expandafter\makeindex\expandafter[\@tempa]% +} +\makexdyindex{Allgemeiner Index} +\makexdyindex*{Klassen- und Paketoptionen}[options] +\makexdyindex*{Befehle und Umgebungen mit zugeh\"origen Parametern}[macros] +\makexdyindex*{Sprachabh\"angige Bezeichner}[terms] +\makexdyindex*{Seitenstile, Schriftelemente und Farben}[elements] +\makexdyindex{L\"angen und Z\"ahler}[misc] +\makexdyindex*{Klassen, Pakete und Dateien}[files] +\makexdyindex[columns=1]{\"Anderungsliste}[changelog] +\undef\makexdyindex +\newif\if@tud@index +\addtoeachtocfile{\protect\@tud@indextrue} +\newcommand*\tud@idx@key{} +\newcommand*\tud@idx@fmt{} +\newcommand*\tud@idx@val{} +\newcommand*\tud@idx@bdl{} +\NewDocumentCommand\tud@idx@get{smmmmr==r[]r()d||}{% + \begingroup% + \begingroup% + \let#4\@empty% + \in@{\Key}{#5}% + \ifin@% + \Markup@Suppress% + \let\Key\@firstoftwo% + #5% + \let\@tempa\@empty% + \IfBooleanT{#1}{\def\@tempa{: Parameter angepasst}}% + \def#4{% + \expandonce#2\expandonce\@tempa{}@% + \expandonce#3\expandonce\@tempa{}!% + }% + \fi% + \Markup@Gobble% + \let\Key\@secondoftwo% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{#5}% + \def\noexpand#4{#4}% + }% + \tud@reserved% + \def#3{#5}% + \tud@replace#2{@}{"@}% + \tud@replace#3{@}{"@}% + \let\tud@idx@bdl\tud@bdl@dflt% + \IfValueTF{#8}{% + \def\tud@idx@bdl{#8}% + }{% + \tud@if@bdl{% + \tud@if@lbl@exists{\tud@bdl@curr:#5}{% + \edef\tud@idx@bdl{\expandonce\tud@bdl@curr}% + \def\tud@reserved{#5}% + \ifx\tud@reserved\tud@idx@bdl% + \let\tud@idx@bdl\tud@bdl@dflt% + \fi% + }{}% + }{}% + }% + \let\@tempa\@empty% + \let\@tempb\@empty% + \let\@tempc\@empty% + \@tempswatrue% + \ifx\tud@idx@bdl\tud@bdl@dflt% + \@tempswafalse% + \else% + \in@{\Key}{#5}\ifin@\@tempswafalse\fi% + \IfBooleanT{#1}{\@tempswafalse}% + \edef\@tempb{(\expandonce\tud@idx@bdl)}% + \fi% + \let\@tempc\@tempb% + \IfValueT{#7}{% + \appto\@tempa{ #7}% + \appto\@tempb{\suffix{#7}}% + }% + \if@tempswa% + \begingroup% + \Markup@Gobble% + \edef\tud@reserved{% + \noexpand\endgroup% + \noexpand\appto\noexpand\@tempa{ \tud@idx@bdl}% + }% + \tud@reserved% + \eappto\@tempb{\suffix{\expandonce\tud@idx@bdl}}% + \fi% + \@tempswafalse% + \IfBooleanT{#1}{\@tempswatrue}% + \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% + \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% + \if@tempswa% + \protected@eappto#2{\expandonce\@tempa}% + \tud@doifPValue{#6}{\noexpand\appto\noexpand#2{=#6}}% + \protected@eappto#3{\IfValueT{#6}{=#6=}\expandonce\@tempb}% + \else% + \tud@doifPValue{#6}{\noexpand\@tempswatrue}% + \if@tempswa% + \eappto#4{% + \expandonce#2\expandonce\@tempa{}@% + \expandonce#3\expandonce\@tempb{}!% + }% + \appto#2{=#6}% + \appto#3{=#6=}% + \protected@eappto#3{\expandonce\@tempc}% + \else% + \protected@eappto#2{\expandonce\@tempa}% + \protected@eappto#3{\expandonce\@tempb}% + \fi% + \fi% + \let\emph\@firstofone% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{#2}% + \def\noexpand#3{#3}% + \def\noexpand#4{#4}% + }% + \tud@reserved% +} +\NewDocumentCommand\Process@Index{mmd==od()d||}{% + \ifboolexpr{% + bool {@tud@index} or bool {@tud@obsolete}% + }{}{% + \IfBooleanTF{#1}{% + \IfValueT{#6}{% + \ClassWarning{tudscrmanual}{% + You've used the starred version. No index entry\MessageBreak% + for #2 is created. The\MessageBreak% + optional argument |#6| will be ignored% + }% + }% + }{% + \Process@@Index{#2}=#3=[#4](#5)|#6|% + }% + }% +} +\NewDocumentCommand\Process@@Index{mr==r[]r()r||}{% + \if@tud@declare% + \tud@idx@get\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)|declare|% + \else% + \tud@idx@get\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)|#5|% + \fi% + \tud@attr@get*\tud@lbl@tmp{#1}% + \if@tud@declare% + \if@openindex% + \IfValueT{#5}{% + \ClassWarning{tudscrmanual}{% + It is not possible to use any indexing format\MessageBreak% + like |#5| within the arguments of the\MessageBreak% + environments `Declaration' or `Declaration*'% + }% + }% + \index[\tud@lbl@tmp-declare]{% + \tud@idx@val\tud@idx@key{}@\tud@idx@fmt|(declare% + }% + \else% + \index[\tud@lbl@tmp-declare]{\tud@idx@val\tud@idx@key|declare)}% + \fi% + \else% + \IfValueT{#5}{% + \ifstr{#5}{declare}{% + \appto\tud@lbl@tmp{-declare}% + \appto\tud@idx@fmt{|declare}% + }{% + \appto\tud@idx@fmt{|#5}% + }% + }% + \index[\tud@lbl@tmp]{\tud@idx@val\tud@idx@key{}@\tud@idx@fmt}% + \fi% +} +\NewDocumentCommand\CrossIndex{smom}{% + \def\@tempa##1##2##3{% + \index{% + \IfBooleanTF{#1}{##3@##3}{##3!"|@}% + \,\textrightarrow\,% + \tudhyperref{idx:##2}{\IfValueTF{##1}{##1}{Index der ##3}}|seeidx{##2}% + }% + }% + \forcsvlist{\@tempa{#3}{#4}}{#2}% +} +\NewDocumentCommand\SeeRef{smm}{% + \sbox\z@{% + \let\tud@idx@fmt\relax% + #3% + \ifx\tud@idx@fmt\relax% + \gdef\tud@reserved{#3}% + \else% + \global\let\tud@reserved\tud@idx@fmt% + \fi% + }% + \IfBooleanTF{#1}{\def\tud@idx@fmt{seeunverified}}{\def\tud@idx@fmt{see}}% + \index{#2!#3|\tud@idx@fmt{\tud@reserved}}% +} +\newcommand*\tud@indexprologue{} +\newcommand*\PrintIndex{% + \begingroup% + \providecommand*\lettergroup[1]{% + \par\textbf{\textsf{##1}}\par% + \nopagebreak% + }% + \renewcommand\tud@indexprologue{% + Die im Folgenden aufgelisteten Schlagworte sollen f\"ur den Umgang mit + \hologo{LaTeXe} im Allgemeinen sowie dem \TUDScript-Bundle im Speziellen + sowohl Antworten bei generellen Fragen liefern als auch L\"osungen f\"ur + typische Probleme bereitstellen. Falls ein gesuchter Begriff hier nicht + auftaucht oder trotz vorhandener Hinweise kein zufriedenstellendes + Ergebnis erzielt werden kann, sollte das \Forum* erster Anlaufpunkt sein, + um weitere Hilfe bei der Nutzung von \TUDScript zu erhalten.% + }% + \print@index% + \clearpage% + \renewcommand\tud@indexprologue{% + Dies ist der Index aller im Handbuch erl\"auterten sowie erw\"ahnten + Optionen, wobei bei den meisten auch Untereintr\"age mit Seitenangaben + f\"ur spezielle Wertzuweisungen existieren.% + }% + \print@index[options]% + \renewcommand\tud@indexprologue{% + Dies ist die Auflistung aller im Handbuch erl\"auterten sowie erw\"ahnten + Befehle und Umgebungen. Bei einigen existieren auch Untereintr\"age f\"ur + Schl\"ussel-Wert-Parameter, welche im optionalen Argument der jeweiligen + Anweisung verwendet werden k\"onnen. In der dritten Unterebene sind + gegebenenfalls Seitenverweise f\"ur explizite Wertzuweisungen an diese + Parameter zu finden.% + }% + \print@index[macros]% + \renewcommand\tud@indexprologue{% + Dies sind alle von \TUDScript definierten, sprachabh\"angigen Bezeichner. + Informationen zur Verwendung sowie den Anpassungsm\"oglichkeiten sind in + \autoref{sec:localization} zu finden.% + }% + \print@index[terms]% + \print@index[elements]% + \print@index[misc]% + \print@index[files]% + \endgroup% +} +\newcommand*\tud@idx@skip{% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} +\newcommand*\print@index[1][]{% + \pagebreak[3]% + \@tud@indextrue% + \ifblank{#1}{% + \def\tud@reserved{\tudhyperdef*{idx:main}}% + }{% + \def\tud@reserved{\tudhyperdef*{idx:#1}}% + }% + \ifx\tud@indexprologue\@empty% + \indexprologue[\tud@idx@skip]{\tud@reserved}% + \else% + \indexprologue{% + \tud@reserved% + \tud@indexprologue% + \tud@idx@skip% + }% + \fi% + \ifblank{#1}{\printindex}{\printindex[#1]}% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% + \let\tud@indexprologue\@empty% +} +\newif\if@tud@changedat +\NewDocumentCommand\Process@ChangedAt{md==od()}{% + \tud@idx@get*\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)% +} +\newlength\changedatskip +\NewDocumentCommand\ChangedAt{somO{\changedatskip}}{% + \IfValueTF{#2}{% + \Changed@At@CreateList[#2]{#3}% + }{% + \Changed@At@CreateList{#3}% + }% + \print@changedatlist{#1}{#4}% +} +\newcommand*\tud@changedat@list{} +\let\tud@changedat@list\relax +\DeclareListParser*{\forssvlist}{;} +\NewDocumentCommand\Changed@At@CreateList{od()m}{% + \IfValueT{#3}{\forssvlist{\Changed@At@@CreateList[#1](#2)}{#3}}% +} +\NewDocumentCommand\Changed@At@@CreateList{r[]r()>{\SplitArgument{1}{:}}m}{% + \Changed@At@@@CreateList[#1](#2)#3% +} +\NewDocumentCommand\Changed@At@@@CreateList{r[]r()>{\SplitArgument{1}{!}}mm}{% + \Changed@At@@@@CreateList[#1](#2)#3{#4}% +} +\NewDocumentCommand\Changed@At@@@@CreateList{r[]r()mmm}{% + \def\@tempa##1{% + \sbox\z@{% + \let\tud@idx@fmt\relax% + \@tud@changedattrue% + ##1% + \@tud@changedatfalse% + \ifx\tud@idx@fmt\relax% + \gdef\@tempb{##1}% + \else% + \global\let\@tempb\tud@idx@fmt% + \fi% + }% + }% + \let\@tempb\@empty% + \IfValueTF{#2}{% + \@tempa{#2}% + }{% + \tud@if@bdl{\@tempa{\tud@bdl@curr}}{}% + }% + \IfValueTF{#1}{% + \toks@{#3!Implementierung }% + \eaddto@hook\toks@{\@tempb}% + \addto@hook\toks@{!#1!}% + \IfValueT{#4}{\addto@hook\toks@{#4}}% + \addto@hook\toks@{!}% + \if@tud@obsolete\else% + \IfValueT{#5}{\addto@hook\toks@{#5}}% + \fi% + }{% + \toks@{#3!Allgemein }% + \IfValueTF{#2}{% + \addto@hook\toks@{!}% + \eaddto@hook\toks@{\@tempb:\space}% + \IfValueTF{#5}{% + \addto@hook\toks@{#5}% + }{% + \addto@hook\toks@{\emph{neu}}% + }% + }{% + \eaddto@hook\toks@{\@tempb}% + \addto@hook\toks@{!}% + \addto@hook\toks@{#5}% + }% + \IfValueT{#4}{% + \ClassError{tudscrmanual}{Using !#4 isn't allowed for a change notice}{% + At least, it has to be implemented!% + }% + }% + }% + \listeadd\tud@changedat@list{\the\toks@}% +} +\NewDocumentCommand\Changed@At@CreateEntry{>{\SplitArgument{4}{!}}m}{% + \Changed@At@@CreateEntry#1% +} +\newcommand*\Changed@At@@CreateEntry[5]{% + \IfValueT{#3}{% + \IfValueTF{#4}{% + \@tud@changedattrue% + #3% + \@tud@changedatfalse% + \ifxblank{#4}{}{% + \eappto\tud@idx@val{% + \expandonce\tud@idx@key: Werte angepasst@% + \expandonce\tud@idx@fmt: Werte angepasst!% + }% + \begingroup% + \@tud@changedattrue% + #4% + \@tud@changedatfalse% + \let\suffix\@gobble% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\tud@idx@key{\tud@idx@key}% + \def\noexpand\tud@idx@fmt{\tud@idx@fmt}% + }% + \tud@reserved% + }% + \ifxblank{#5}{% + \if@tud@obsolete% + \appto\tud@idx@fmt{: \emph{entf\"allt}}% + \else% + \appto\tud@idx@fmt{: \emph{neu}}% + \fi% + }{% + \appto\tud@idx@key{: #5}% + \appto\tud@idx@fmt{: #5}% + }% + \index[changelog]{#1!#2!\tud@idx@val\tud@idx@key @\tud@idx@fmt}% + }{% + \index[changelog]{#1!#2!#3}% + }% + }% + \ifinlist{#1}{\tud@templist}{}{\listadd\tud@templist{#1}}% +} +\newcommand*\PrintChangelog{% + \begingroup% + \let\lettergroup\@gobble% + \apptocmd{\theindex}{% + \let\subsubsubitem\subsubitem% + \let\subsubitem\subitem% + \let\subitem\item% + \renewcommand*\item{% + \begingroup% + \escapechar=`\\% + \catcode\endlinechar=\active% + \csname\string\item\endcsname% + }% + \begingroup% + \escapechar=`\\% + \lccode`\~=\endlinechar% + \lowercase{% + \expandafter\endgroup% + \expandafter\def\csname\string\item\endcsname##1~% + }{% + \endgroup% + \addsec[##1]{\TUDScript \NoCaseChange{##1}}% + \tudhyperdef*{idx:changelog:##1}% + \def\@tempa{\indexname: \TUDScript \NoCaseChange{##1}}% + \@mkboth{\@tempa}{\@tempa}% + }% + }{}{\tud@patch@wrn{theindex}}% + \clearpage% + \def\imki@indexlevel{\addchap}% + \print@index[changelog]% + \endgroup% +} +\NewDocumentCommand\print@changedatlist{mm}{% + \ifx\tud@changedat@list\relax\else% + \let\tud@templist\relax% + \forlistloop\Changed@At@CreateEntry{\tud@changedat@list}% + \global\let\tud@changedat@list\relax% + \IfBooleanF{#1}{% + \tud@list@sort\tud@templist% + \strut% + \marginnote{% + \def\@tempa####1{% + \ignorespaces% + \tudhyperref{idx:changelog:####1}{####1}% + \tabularnewline% + }% + \begin{tabular}{|l|}% + \hline% + \forlistloop\@tempa{\tud@templist}% + \hline% + \end{tabular}% + }[#2]% + \ignorespaces% + }% + \fi% +} +\RequirePackage{enumitem}[2011/09/28] +\setlist{noitemsep} +\newcommand*\stditem{} +\newcommand*\tud@before@item[1]{% + \ifdefvoid{\stditem}{% + \let\stditem\item% + \letcs\item{tud@item@#1}% + \setlength\changedatskip{-\baselineskip}% + }{}% +} +\newcommand*\tud@values{} +\NewDocumentEnvironment{values}{mo}{% + \def\tud@values{#1}% + \IfValueTF{#2}{\@values[#2]}{\@values}% +}{% + \end@values% +} +\newlist{@values}{description}{1} +\setlist[@values]{% + topsep=\smallskipamount,labelwidth=\linewidth,labelsep=0pt,% + font=\normalfont,parsep=\parskip,listparindent=\parindent,% + before=\tud@before@item{values}% +} +\DeclareListParser*{\forslashlist}{/} +\NewDocumentCommand\tud@item@values{sood()}{% + \IfValueTF{#2}{% + \let\@tempc\@empty% + \def\tud@reserved##1{% + \if@tempswa% + \appto\@tempb{/##1}% + \else% + \@tempswatrue% + \let\@tempb\@empty% + \def\@tempc{##1}% + \fi% + }% + \@tempswafalse% + \forslashlist\tud@reserved{#2}% + \edef\@tempa{\expandonce\tud@values}% + \protected@eappto\@tempa{% + =\IfBooleanTF{#1}{\noexpand\emph}{\@firstofone}{\@tempc}=% + }% + \appto\@tempa{'none'|!|}% + \edef\@tempb{% + \IfBooleanTF{#1}{\noexpand\emph}{\@firstofone}{% + \noexpand\PValue{\@tempb}% + }% + }% + \IfBooleanTF{#1}{% + \appto\@tempb{\suffix{S\"aumniswert}}% + }{% + \IfValueT{#3}{\appto\@tempb{\suffix{S\"aumniswert f\"ur #3}}}% + }% + \IfValueT{#4}{\appto\@tempb{\suffix{#4}}}% + \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\tud@values}=\@tempc=% + \stditem[\tudhyperdef{\tud@lbl@tmp}\@tempa\@tempb]% + }{% + \stditem% + }% +} +\NewDocumentCommand\itemtrue{sood()}{\item@bool{#1}{true/on/yes}[#2][#3](#4)} +\NewDocumentCommand\itemfalse{sood()}{\item@bool{#1}{false/off/no}[#2][#3](#4)} +\NewDocumentCommand\item@bool{mmr[]r[]r()}{% + \toks@{\item}% + \IfBooleanT{#1}{\addto@hook\toks@{*}}% + \protected@edef\@tempa{#2\IfValueT{#3}{/#3}}% + \eaddto@hook\toks@{\expandafter[\@tempa]}% + \IfValueT{#4}{\addto@hook\toks@{[#4]}}% + \IfValueT{#5}{\addto@hook\toks@{(#5)}}% + \the\toks@% +} +\newlist{packages}{description}{2} +\setlist[packages]{% + topsep=\smallskipamount,labelwidth=\linewidth,labelsep=0pt,% + font=\normalfont,parsep=\parskip,listparindent=\parindent,% + before=\tud@before@item{packages}% +} +\NewDocumentCommand\tud@item@packages{od<>d()}{% + \def\@tempa##1{% + \@tempc% + \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\Package{##1}}% + \tudhyperdef{\tud@lbl@tmp}% + \begingroup% + \Package{##1}<#2>'url'|!|% + \endgroup% + \def\@tempc{, }% + }% + \stditem[{% + \IfValueT{#1}{% + \let\@tempc\relax% + \forcsvlist\@tempa{#1}% + \IfValueT{#3}{% + \tud@lbl@get@curr*\tud@lbl@tmp{\tud@bdl@curr:\Package{#3}}% + \quad(\tudhyperdef{\tud@lbl@tmp}\Package{#3}'none'|!|)% + }% + }% + }]% +} +\newlength\tempdim +\newsavebox\tabularm@box +\newlength\tabularm@wd +\newcommand*\tabularm@num{1} +\NewEnviron{tabularm}[1]{% + \begin{lrbox}{\tabularm@box}% + \let\allcolumnpar\@gobble% + \begin{tabular}{*{#1}l}\BODY\end{tabular}% + \end{lrbox}% + \setlength\tabularm@wd{\wd\tabularm@box}% + \def\tabularm@num{#1}% + \let\allcolumnpar\tabularm@allcolumnpar% + \begin{tabular}{*{#1}l}\BODY\end{tabular}% +} +\newcommand*\tabularm@allcolumnpar[1]{% + \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% +} +\RequirePackage{tabularx}[1999/01/07] +\NewDocumentCommand\TermTable{smg}{% + \let\tud@templist\relax% + \forcsvlist{\listadd\tud@templist}{#2}% + \ifhmode\par\fi% + \vskip\medskipamount% + \@afterindentfalse\@afterheading% + \IfBooleanTF{#1}{% + \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% + \setlength\@tempdimc{-.7\baselineskip}% + \begin{tabularx}{\@tempdima}{lXX}\Term@Table\end{tabularx}% + }{% + \setlength\@tempdimc{\z@}% + \begin{tabular}{lll}\Term@Table\end{tabular}% + }% + \par\addvspace{\medskipamount}% +} +\newcommand*\Term@Table{% + \toprule% + \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}\tabularnewline% + \midrule% + \forlistloop\Term@@Table{\tud@templist}% + \bottomrule% +} +\newcommand*\Term@@Table[1]{% + \Term{#1} & % + \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % + \selectlanguage{english}\vspace*{\@tempdimc}% + \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% +} +\newenvironment{Example}{\csuse{Example*}}{% + \csuse{endExample*}% + \addvspace{-\topsep}% +} +\newenvironment{Example*}{% + \labeling{{\usekomafont{disposition}Beispiel:\nobreakspace}}% + \item[{\usekomafont{disposition}Beispiel:\nobreakspace}]% +}{% + \endlabeling% +} +\newcommand*\tud@write@a{} +\newwrite\tud@write@a +\RequirePackage{listings}[2014/03/04] +\lstdefinestyle{tudscr}{% + basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},% + keywordstyle=,% + columns=fullflexible,keepspaces,% + aboveskip=\smallskipamount,% + belowskip=\smallskipamount,% + language=[LaTeX]TeX,% + texcl,% +} +\lstnewenvironment{Code}[1][]{\lstset{style=tudscr,#1}}{} +\newcommand*\tud@currentHref{} +\BeforeBeginEnvironment{Code}{\global\let\tud@currentHref\@currentHref} +\AfterEndEnvironment{Code}{\global\let\@currentHref\tud@currentHref} +\RequirePackage{filemod}[2011/09/19] +\RequirePackage{ifplatform}[2010/10/22] +\newcommand*\tud@shellescape@wrn[1]{% + \ClassWarning{tudscrmanual}% + {% + File `#1' is missing!\MessageBreak% + You have to recompile this document with\MessageBreak% + activated shell escape option% + }% +} +\newrobustcmd*\hypertut[2]{% + \hyperref{tutorials/#1.pdf}{#1}{tutorials:#1}{\File*{#1.pdf}#2}% +} +\NewDocumentCommand\Tutorial{smd||}{% + \ifnum\pdfshellescape=\@ne\relax% + \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{% + \let\@tempa\@empty% + \ifdef{\tudfinalflag}{\appto\@tempa{\def\noexpand\tudfinalflag{}}}{}% + \ifdef{\tudprintflag}{\appto\@tempa{\def\noexpand\tudprintflag{}}}{}% + \appto\@tempa{\noexpand\input{#2.tex}}% + \def\@tempb##1{% + \immediate\openout\tud@write@a=tutorials.sh\relax% + \immediate\write\tud@write@a{cd tutorials^^J##1}% + \immediate\closeout\tud@write@a% + \ifwindows% + \immediate\write18{rename tutorials.sh tutorials.bat}% + \immediate\write18{tutorials.bat}% + \immediate\write18{del tutorials.bat}% + \else% + \immediate\write18{bash tutorials.sh}% + \immediate\write18{rm tutorials.sh}% + \fi% + }% + \@tempb{pdflatex -shell-escape "\@tempa"}% + \IfFileExists{tutorials/#2.bcf}{\@tempb{biber #2}}{}% + \@tempb{% + pdflatex "\@tempa"^^J% + pdflatex -shell-escape "\@tempa"^^J% + pdflatex -shell-escape "\@tempa"% + }% + }% + \fi% + \IfFileExists{tutorials/#2.pdf}{% + \hypertut{#2}{}% + }{% + \File*{#2.pdf}% + \tud@shellescape@wrn{tutorials/#2.pdf}% + }% + \IfBooleanF{#1}{% + \index[files]{\hypertut{#2}{\suffix{Tutorial}}\IfValueT{#3}{|#3}}% + }% +} +\newcommand*\IncludeExample[1]{% + \lstinputlisting[style=tudscr]{examples/#1}% + \ifnum\pdfshellescape=\@ne\relax% + \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% + \immediate\write18{% + pdflatex -output-directory examples examples/#1.tex^^J% + pdflatex -output-directory examples examples/#1.tex% + }% + }% + \fi% + \IfFileExists{examples/#1.pdf}{% + \includepdf[% + pages=-,noautoscale,frame,keepaspectratio,pagecommand={},% + height=\textheight,width=\textwidth, offset=5mm 0mm% + ]{examples/#1.pdf}% + }{% + \tud@shellescape@wrn{examples/#1.pdf}% + }% +} +\PassOptionsToPackage{obeyFinal}{todonotes} +\ifdef{\tudprintflag}{% + \PassOptionsToPackage{color=white}{todonotes}% +}{% + \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% +} +\RequirePackage{todonotes}[2012/07/25] +\AfterPackage*{todonotes}{% + \newcommand*\tud@todo@type@color[2]{% + \define@boolkey{todonotes}{#1}[true]{% + \ifdef{\tudprintflag}{}{% + \ifbool{KV@todonotes@#1}{\setkeys{todonotes}{color=#2}}{}% + }% + }% + }% + \tud@todo@type@color{doc}{HKS41!30}% + \tud@todo@type@color{rls}{HKS44!30}% + \tud@todo@type@color{imp}{HKS57!50}% + \tud@todo@type@color{urg}{HKS07!50}% + \tud@todo@type@color{nxt}{HKS92!30}% + \undef\tud@todo@type@color% + \newcommand*\tud@todo@marginnote{}% + \NewDocumentCommand\ToDo{somo}{% + \ifbool{@tud@todo}{% + \global\let\tud@currentHref\@currentHref% + \begingroup% + \let\@tempa\@empty% + \def\tud@todo@marginnote{ToDo}% + \IfValueT{#4}{% + \def\tud@todo@marginnote{#4}% + \tud@v@get\@tempc{#4}% + \ifcsdef{tud@v@\@tempc}{% + \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}% + \edef\tud@todo@marginnote{v\@tempc}% + }{% + \def\@tempa##1.##2##3##4\@nil{##1##2##3}% + \edef\@tempb{\expandafter\@tempa\@tempc.000\@nil}% + \ifxnumber{\@tempb}{% + \def\@tempa{nxt}% + \edef\tud@todo@marginnote{v\@tempc}% + }{\let\@tempa\@empty}% + }% + }% + \IfValueT{#2}{\preto\@tempa{#2,}}% + \@tempswafalse% + \ifx\tud@todo@type@pos\relax\@tempswatrue\fi% + \toks@{\forcsvlist\@tempb}% + \eaddto@hook\toks@{\expandafter{\@tempa}}% + \let\@tempa\@empty% + \def\@tempb##1{% + \eappto\@tempa{##1,}% + \ifinlist{##1}{\tud@todo@type@pos}{\@tempswatrue}{}% + \ifinlist{##1}{\tud@todo@type@neg}{\@tempswafalse}{}% + }% + \the\toks@% + \if@tempswa% + \ifhmode\par\fi% + \let\par\relax% + \vskip\medskipamount% + \noindent% + \toks@\expandafter{\@tempa inline}% + \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}% + \sbox\z@{% + \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}% + }\usebox\z@% + \renewcommand*\marginpar[2][]{% + \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% + }% + \toks@\expandafter{\@tempa noline,nolist}% + \settowidth\marginparwidth{\tud@todo@marginnote}% + \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% + \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}% + \aftergroup\par\aftergroup\noindent% + \fi% + \endgroup% + \global\let\@currentHref\tud@currentHref% + }{}% + \ignorespaces% + }% + \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% +} +\TUD@UnwindPackage{todonotes}{% + \NewDocumentCommand\ToDo{somo}{}% + \newcommand*\ListOfToDo{}% +} +\RequirePackage{textcomp}[2005/09/27] +\RequirePackage{setspace}[2011/12/19] +\setstretch{1.1} +\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\PassOptionsToPackage{vskip=\smallskipamount}{quoting} +\RequirePackage{quoting}[2014/01/28] +\RequirePackage{isodate}[2010/01/03] +\RequirePackage{hologo}[2012/04/26] +\RequirePackage{ragged2e}[2009/05/21] +\RequirePackage{chngcntr}[2009/09/02] +\counterwithout{footnote}{chapter} +\addtokomafont{footnote}{\tud@RaggedRight} +\RequirePackage{booktabs}[2005/04/14] +\RequirePackage{caption}[2015/09/17] +\RequirePackage{floatrow}[2008/08/02] +\DeclareCaptionSubType[alph]{figure} +\DeclareCaptionSubType[alph]{table} +\captionsetup{font=sf,labelfont=bf,labelsep=space} +\captionsetup{singlelinecheck=off,format=hang,justification=raggedright} +\captionsetup[subfloat]{labelformat=brace,list=off} +\KOMAoption{captions}{tableheading,figuresignature} +\floatsetup[table]{style=plaintop} +\RequirePackage{tikz}[2013/12/13] +\RequirePackage{pdfpages}[2013/08/25] +\RequirePackage{units}[1998/08/04] +\AtEndPreamble{% + \RequirePackage{ellipsis}[2004/9/28]% + \let\ellipsispunctuation\relax% +} +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \setlength\fboxsep{0.25em} + \fbox{Achtung!}% + }[#1]% + \emph{\trim@spaces{#2}}% +} +\NewDocumentCommand\Forum{st'}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% + \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% + \the\toks@\xspace% +} +\NewDocumentCommand\CTAN{sog}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% + \addto@hook\toks@{% + {\tud@english{Comprehensive TeX Archive Network (CTAN\IfValueT{#3}{~#3})}}% + }% + \the\toks@\xspace% +} +\NewDocumentCommand\GitHubRepo{s}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{{https://github.com/tud-cd/tudscr/releases}}% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + \the\toks@\xspace% +} +\newcommand*\notudscrartcl{% + F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese + Option nicht verf\"ugbar.% +} +\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{% + {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% + }% + \addto@hook\toks@{{#2}}% + \the\toks@\xspace% +} +\newcommand*\CD{\tud@english{Corporate Design}\xspace} +\newcommand*\CDs{\tud@english{Corporate Designs}\xspace} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\DDC{% + \mbox{% + D\kern.05em R\kern.05em E\kern.05em S\kern.05em % + D\kern.05em E\kern.05em N\kern.1em-\kern.1em concept% + }\xspace% +} +\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} +\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbs{} +\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape} +\DeclareTextFontCommand\textsbs{\sbsfont} +%%% From File: tudscr-misc.dtx +\begingroup +\newcommand*\tud@write@xdy{} +\newwrite\tud@write@xdy +\newif\if@tud@xdy@glo +\newcommand*\tud@xdy@create[2][theindex]{% + \IfFileExists{\@currname-#2.xdy}{}{% + \ifstr{#1}{theglossary}{\@tud@xdy@glotrue}{\@tud@xdy@glofalse}% + \openout\tud@write@xdy=\@currname-#2.xdy\relax% + \write\tud@write@xdy{(require "texindy.xdy")}% + \write\tud@write@xdy{% + (define-location-class^^J% + \space\space"arabic-page-numbers" ("arabic-numbers")% + \space:min-range-length 1^^J% + )^^J% + (markup-range :sep "--")% + }% + \write\tud@write@xdy{% + (markup-locclass-list% + \space:open "\string\,\string\dotfill\string\,"% + \space:close "\string\relax"% + )% + }% + \write\tud@write@xdy{% + (merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% + }% + \write\tud@write@xdy{% + (markup-indexentry :open "~n \string\subsubsubitem " :depth 3)% + }% + \write\tud@write@xdy{% + (define-attributes (("declare" "!" "important" "?" "default")))^^J% + (markup-locref% + \space:attr "declare"\space\space% + \space:open "\string\textbf{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "!"\@spaces\@spaces% + \space:open "\string\textbf{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "important"% + \space:open "\string\textsl{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "?"\@spaces\@spaces% + \space:open "\string\textsl{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "default"\space\space% + \space:open "\string\hyperpage{"\@spaces\@spaces% + \space:close "}"% + )% + }% + \write\tud@write@xdy{% + (markup-crossref-list :class "see"^^J% + \space\space:open "\string\cleversee{" \@spaces:sep "; " :close "}"^^J% + )^^J% + (markup-crossref-list :class "seealso"^^J% + \space\space:open "\string\cleverseealso{" :sep "; " :close "}"^^J% + )% + }% + \write\tud@write@xdy{% + (define-crossref-class "seeunverified" :unverified)^^J% + (markup-crossref-list :class "seeunverified"^^J% + \space\space:open "\string\cleversee{" \@spaces:sep "; " :close "}"^^J% + )% + }% + \write\tud@write@xdy{% + (define-crossref-class "seeidx" :unverified)^^J% + (markup-crossref-list :class "seeidx"^^J% + \space\space:open "\string\seeidx{"\@spaces\@spaces:sep "; "% + \space:close "}{}"^^J% + )% + }% + \write\tud@write@xdy{% + (define-location-class-order^^J% + \space\space(^^J% + \@spaces"see" "seealso" "seeidx" "seeunverified"^^J% + \@spaces"roman-page-numbers" "arabic-page-numbers" "alpha-page-numbers"^^J% + \@spaces"Roman-page-numbers" "Alpha-page-numbers"^^J% + \space\space)^^J% + )% + }% + \write\tud@write@xdy{% + (markup-crossref-layer-list :class "see"% + \@spaces\space:sep "\string\,\string\textbar\string\,"% + )^^J% + (markup-crossref-layer-list :class "seealso"% + \space:sep "\string\,\string\textbar\string\,"% + )% + }% + \closeout\tud@write@xdy% + }% +} +\tud@xdy@create{ind} +\endgroup +%%% From File: tudscr-fields.dtx +\newcommand*\@chairman{} +\newcommand*\chairman[1]{\gdef\@chairman{#1}} +\newcommand*\@grade{} +\newcommand*\grade[1]{\gdef\@grade{#1}} +\newcommand*\@headline{} +\newcommand*\@issuedate{} +\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}} +\newcommand*\@duedate{} +\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}} +\newcommand*\finaldate{} +\newcommand*\maturitydate{} +\newcommand*\@contactperson{} +\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\newcommand*\@office{} +\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newcommand*\@telephone{} +\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} +\newcommand*\@telefax{} +\newrobustcmd*\telefax[1]{\gdef\@telefax{#1}} +\newcommand*\@emailaddress{} +\newrobustcmd*\emailaddress{% + \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +} +\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\AfterPackage*{hyperref}{% + \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% + \gdef\@emailaddress{% + \begingroup% + \urlstyle{same}% + \hypersetup{#1}% + \href{mailto:#2}{\nolinkurl{#2}}% + \endgroup% + }% + }% +} +%%% From File: tudscr-locale.dtx +\tud@locale@define{\authorname} +\tud@locale@define{\contactname} +\tud@locale@define{\contactpersonname} +\tud@locale@define{\taskname} +\tud@locale@define{\tasktext} +\tud@locale@define{\namesname} +\tud@locale@define{\issuedatetext} +\tud@locale@define{\duedatetext} +\tud@locale@define{\chairmanname} +\tud@locale@define{\focusname} +\tud@locale@define{\objectivesname} +\tud@locale@define{\evaluationname} +\tud@locale@define{\evaluationtext} +\tud@locale@define{\contentname} +\tud@locale@define{\assessmentname} +\tud@locale@define{\gradetext} +\tud@locale@define{\noticename} +\tud@locale@german{\authorname}{Autor}% +\tud@locale@german{\contactname}{Kontakt}% +\tud@locale@german{\contactpersonname}{Ansprechpartner}% +\tud@locale@german{\taskname}{Aufgabenstellung}% +\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% +\tud@locale@german{\namesname}{Name}% +\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}% +\tud@locale@german{\duedatetext}{Einzureichen am}% +\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% +\tud@locale@german{\focusname}{Schwerpunkte der Arbeit}% +\tud@locale@german{\objectivesname}{Ziele der Arbeit}% +\tud@locale@german{\evaluationname}{Gutachten}% +\tud@locale@german{\evaluationtext}{f\"ur die}% +\tud@locale@german{\contentname}{Inhalt}% +\tud@locale@german{\assessmentname}{Bewertung}% +\tud@locale@german{\gradetext}{% + Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% +}% +\tud@locale@german{\noticename}{Aushang}% +\tud@locale@english{\authorname}{Author}% +\tud@locale@english{\contactname}{Contact}% +\tud@locale@english{\contactpersonname}{Contact}% +\tud@locale@english{\taskname}{Task}% +\tud@locale@english{\tasktext}{for the preparation of a}% +\tud@locale@english{\namesname}{Name}% +\tud@locale@english{\issuedatetext}{Issued on}% +\tud@locale@english{\duedatetext}{Due date for submission}% +\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}% +\tud@locale@english{\focusname}{Focus of work}% +\tud@locale@english{\objectivesname}{Objectives of work}% +\tud@locale@english{\evaluationname}{Evaluation}% +\tud@locale@english{\evaluationtext}{for the}% +\tud@locale@english{\contentname}{Content}% +\tud@locale@english{\assessmentname}{Assessment}% +\tud@locale@english{\gradetext}{% + The thesis is evaluated with a grade of \textbf{\@grade}.% +}% +\tud@locale@english{\noticename}{Notice}% +\endinput +%% +%% End of file `tudscrmanual.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls new file mode 100644 index 00000000000..a6c8796ff12 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls @@ -0,0 +1,5120 @@ +%% +%% This is file `tudscrposter.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `class,poster') +%% tudscr-base.dtx (with options: `class,poster,load') +%% tudscr-fonts.dtx (with options: `class,poster,option') +%% tudscr-area.dtx (with options: `class,poster,option') +%% tudscr-pagestyle.dtx (with options: `class,poster,option') +%% 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-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-area.dtx (with options: `class,poster,body') +%% tudscr-pagestyle.dtx (with options: `class,poster,body') +%% tudscr-layout.dtx (with options: `class,poster,body') +%% tudscr-title.dtx (with options: `class,poster,body') +%% tudscr-frontmatter.dtx (with options: `class,poster,body') +%% tudscr-comp.dtx (with options: `class,poster,body') +%% tudscr-misc.dtx (with options: `class,poster,body') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\newcommand*\TUD@ProvidesClass[3]{% + \ProvidesClass{#1}[% + 2016/07/26 v2.05 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% +} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% +} +\TUD@ProvidesClass{tudscrposter}{scrartcl}{poster class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-base.dtx +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} +%%% From File: tudscr-fonts.dtx +\PreventPackageFromLoading[% + \ClassWarning{\TUD@Class@Name}{% + The package `tudscrfonts' must not be used with\MessageBreak% + a TUD-KOMA-Script class% + }% +]{tudscrfonts} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} +\TUD@key{cdfont}[true]{% + \TUD@set@numkey{cdfont}{@tempa}{% + \TUD@numkey@bool,% + {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% + {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% + {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% + {bar}{8},{barfont}{8},% + {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% + {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% + {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% + {headlight}{8},{headfontlight}{8},{headlightfont}{8},% + {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% + {barlight}{8},{barfontlight}{8},{barlightfont}{8},% + {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% + {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% + {litebar}{8},{litebarfont}{8},{litefontbar}{8},% + {headlite}{8},{headfontlite}{8},{headlitefont}{8},% + {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% + {barlite}{8},{barfontlite}{8},{barlitefont}{8},% + {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% + {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% + {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% + {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% + {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% + {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% + {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% + {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% + {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% + {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% + {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% + {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% heavy + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% nodin + \@tud@cdfont@dinfalse% + \or% din + \@tud@cdfont@dintrue% + \or% nohead + \TUDoptions{cdhead=false}% + \or% head + \TUDoptions{cdhead=true}% + \or% heavyhead + \TUDoptions{cdhead=heavy}% + \or% nomath + \TUDoptions{cdmath=false}% + \or% math + \TUDoptions{cdmath=true}% + \or% upgreek + \TUDoptions{slantedgreek=false}% + \or% slgreek + \TUDoptions{slantedgreek=true}% + \or% fontspec + \TUDoptions{fontspec=true}% + \or% nofontspec + \TUDoptions{fontspec=false}% + \fi% + \else% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \FamilyKeyStateProcessed% +} +\bool@lock{@tud@cdmath} +\TUD@key{cdmath}[true]{% + \TUD@set@numkey{cdmath}{@tempa}{% + \TUD@numkey@bool,% + {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}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \bool@set@lock{@tud@cdmath}{false}% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% + \or% true + \bool@set@lock{@tud@cdmath}{true}% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% + \or% upgreek + \TUDoptions{slantedgreek=false}% + \or% slgreek + \TUDoptions{slantedgreek=true}% + \fi% + \fi% +} +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% + \fi% +} +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +%%% From File: tudscr-area.dtx +\cs@lock{tud@cdgeometry@num}{0} +\newcommand*\tud@cdgeometry@calc@num{0} +\TUD@key{cdgeometry}[true]{% + \let\@tempb\tud@cdgeometry@num% + \let\@tempc\tud@cdgeometry@calc@num% + \TUD@set@numkey{cdgeometry}{@tempa}{% + \TUD@numkey@bool,% + {typearea}{0},% + {cd}{1},{tud}{1},{asymmetric}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3},% + {oneside}{4},% + {restricted}{5},% + {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},% + {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},% + {custom}{8},{user}{8},{package}{8}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false/typearea + \cs@set@lock{tud@cdgeometry@num}{0}% + \or% true/cd + \cs@set@lock{tud@cdgeometry@num}{2}% + \or% symmetric + \cs@set@lock{tud@cdgeometry@num}{3}% + \or% twoside + \cs@set@lock{tud@cdgeometry@num}{4}% + \TUD@KOMAoptions{twoside=true}% + \or% oneside + \ifnum\tud@cdgeometry@num>\thr@@\relax% + \cs@set@lock{tud@cdgeometry@num}{3}% + \fi% + \TUD@KOMAoptions{twoside=false}% + \or% restricted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{0}% + \or% adapted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{1}% + \or% calculated + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{2}% + \or% custom + \cs@set@lock{tud@cdgeometry@num}{1}% + \fi% + \@tempswafalse% + \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi% + \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi% + \if@tempswa% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% + \fi% +} +\newcommand*\tud@dim@extrabottommargin{\z@} +\TUD@key{extrabottommargin}{% + \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \fi% +} +\newcommand*\tud@dim@bleedmargin{.2in} +\TUD@key{bleedmargin}{% + \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% + \@tempa#1\@nil% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{twoside}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{twocolumn}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@x@ta@warnings@off{} +\newcommand*\tud@x@ta@warnings@on{} +\IfFileExists{silence.sty}{% + \RequirePackage{silence}[2012/07/02]% + \WarningFilter[typearea]{typearea}{DIV for}% + \WarningFilter[typearea]{typearea}{Bad type area settings!}% + \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}% + \WarningFilter[typearea]{typearea}{Very low DIV value!}% + \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}% + \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}% + \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]} + \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]} +}{} +%%% From File: tudscr-pagestyle.dtx +\newcommand*\tud@ps@list{} +\newcommand*\tud@if@tudheadings[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +\newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@numkey@bool,% + {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},% + {black}{5},{cdblack}{5},% + {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +\newif\if@tud@headlogo@option@set +\newif\if@tud@footlogo@option@set +\newif\if@tud@ddc@auto +\newcommand*\tud@ddc@auto@num{0} +\TUD@key{ddc}[true]{% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@internal% + \@tud@ddc@autofalse% + \else% + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% + \fi% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \fi% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@ddc@head@num{0} +\TUD@key{ddchead}[true]{% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% + \TUDoptions{ddcfoot=false}% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% + \fi% + \fi% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@ddc@foot@num{0} +\TUD@key{ddcfoot}[true]{% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% + \fi% + \fi% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% + \fi% + \global\@tud@footlogo@option@settrue% + \fi% +} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} +\bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date +\TUD@key{cdhead}[true]{% + \TUD@set@numkey{cdhead}{@tempa}{% + \TUD@numkey@bool,% + {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% + {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% + {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% + {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% + {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% + {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% + {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% + {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% + {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% + {color}{6},{colour}{6},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% + {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@head@font@num}{0}% + \or% true + \cs@set@lock{tud@head@font@num}{1}% + \or% heavy + \cs@set@lock{tud@head@font@num}{2}% + \or% nocolor + \cs@set@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% color + \cs@set@lock{tud@head@bar@num}{3}% + \or% textwidth + \bool@set@lock{@tud@head@widebar}{false}% + \or% paperwidth + \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% + \fi% + \fi% +} +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} +\TUD@key{cdfoot}[true]{% + \TUD@set@numkey{cdfoot}{@tempa}{% + \TUD@numkey@bool,% + {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {color}{3},{colour}{3},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \TUD@AfterPackage@do{scrlayer-scrpage}{% + \tud@ps@restore{scrheadings}% + \tud@ps@restore{plain.scrheadings}% + \tud@font@koma@unset{pageheadfoot}% + }% + \or% true + \TUD@AfterPackage@do{scrlayer-scrpage}{% + \tud@ps@store{scrheadings}% + \tud@ps@store{plain.scrheadings}% + \tud@font@koma@set{pageheadfoot}{\upshape}% + \clearpairofpagestyles% + \ofoot[\pagemark]{% + \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi% + {\footnotesize\headmark}% + \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% + }% + \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% + }% + \or% nocolor + \bool@set@lock{@tud@foot@colored}{false}% + \or% color + \bool@set@lock{@tud@foot@colored}{true}% + \fi% + \else% + \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% + \fi% +} +\newcommand*\tud@ps@store[1]{% + \tud@ps@@store{#1}{odd}{left}{head}% + \tud@ps@@store{#1}{odd}{right}{head}% + \tud@ps@@store{#1}{odd}{middle}{head}% + \tud@ps@@store{#1}{even}{left}{head}% + \tud@ps@@store{#1}{even}{right}{head}% + \tud@ps@@store{#1}{even}{middle}{head}% + \tud@ps@@store{#1}{odd}{left}{foot}% + \tud@ps@@store{#1}{odd}{right}{foot}% + \tud@ps@@store{#1}{odd}{middle}{foot}% + \tud@ps@@store{#1}{even}{left}{foot}% + \tud@ps@@store{#1}{even}{right}{foot}% + \tud@ps@@store{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@store[4]{% + \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% + \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% + }% +} +\newcommand*\tud@ps@restore[1]{% + \tud@ps@@restore{#1}{odd}{left}{head}% + \tud@ps@@restore{#1}{odd}{right}{head}% + \tud@ps@@restore{#1}{odd}{middle}{head}% + \tud@ps@@restore{#1}{even}{left}{head}% + \tud@ps@@restore{#1}{even}{right}{head}% + \tud@ps@@restore{#1}{even}{middle}{head}% + \tud@ps@@restore{#1}{odd}{left}{foot}% + \tud@ps@@restore{#1}{odd}{right}{foot}% + \tud@ps@@restore{#1}{odd}{middle}{foot}% + \tud@ps@@restore{#1}{even}{left}{foot}% + \tud@ps@@restore{#1}{even}{right}{foot}% + \tud@ps@@restore{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@restore[4]{% + \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% + \csundef{@@tud@ps@#1@#2@#3@#4}% + }{}% +} +%%% From File: tudscr-layout.dtx +\newcommand*\tud@layout@switch{} +\edef\tud@layout@switch{% + \TUD@numkey@bool,% + {nocolor}{1},{nocolour}{1},{monochrome}{1},{monochromatic}{1},% + {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},% + {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},% + {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},% + {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}% + \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}% + \if@atdocument\else% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@cdgeometry@num}{0}% + \else% !false + \cs@std@lock{tud@cdgeometry@num}{2}% + \fi% + \fi% + \fi% +} +\TUD@key{cdtitle}[true]{% + \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@title@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}% + \fi% +} +\TUD@key{cdpart}[true]{% + \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@part@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}% + \fi% +} +\TUD@key{cdsection}[true]{% + \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@section@num}{0}% + \or% true + \cs@set@lock{tud@layout@section@num}{1}% + \else% *color + \cs@set@lock{tud@layout@section@num}{2}% + \fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \fi% +} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{#2\nobreak}% +} +\newcommand*\tud@font@koma@unset[1]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{\relax}% +} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{headings}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{open}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{chapterprefix}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@pagecolor{}% +\TUD@key{backgroundcolor}[true]{% + \TUD@set@numkey{backgroundcolor}{@tempa}{% + \TUD@numkey@bool,% + {nocolor}{0},{nocolour}{0},{none}{0},% + {color}{1},{colour}{1},{cdcolor}{1},{cdcolour}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \renewcommand*\tud@pagecolor{}% + \else% true + \renewcommand*\tud@pagecolor{HKS41}% + \fi% + \else% + \renewcommand*\tud@pagecolor{#1}% + \FamilyKeyStateProcessed% + \fi% + \if@atdocument% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + \fi% +} +\AfterPackage{xcolor}{% + \CheckCommand*\normalcolor{\let\current@color\default@color\set@color}% + \apptocmd{\normalcolor}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% +} +%%% From File: tudscr-title.dtx +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{titlepage}[true]{% + \TUD@set@numkey{titlepage}{@tempa}{\TUD@numkey@bool,{firstiscover}{2}}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% + \fi% +} +\newcommand*\tud@titlepage@deactivate{% + \if@titlepage% + \KOMAoptions{titlepage=false}% + \ClassWarning{\TUD@Class@Name}{% + The class `\TUD@Class@Name' can't be used with\MessageBreak% + activated titlepage option. It will be enforced to\MessageBreak% + `titlepage=false'% + }% + \renewcommand*\tud@titlepage@deactivate{% + \if@titlepage\KOMAoptions{titlepage=false}\fi% + }% + \fi% +} +\AtBeginDocument{\tud@titlepage@deactivate} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@switch{% + {section}{2},{sect}{2},{sec}{2},{addsec}{2},% + {new}{2},{standard}{2},{heading}{2},% +} +\newcommand*\tud@abstract@level@num{0} +\TUD@key{abstract}[true]{% + \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% + \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \renewcommand*\tud@abstract@level@num{0}% + \or% true + \renewcommand*\tud@abstract@level@num{1}% + \or% section + \renewcommand*\tud@abstract@level@num{2}% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{abstract}[true]{% + \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% +} +%%% From File: tudscr-comp.dtx +\newcommand*\TUD@key@deprecated[2]{% + \ClassWarning{\TUD@Class@Name}% + {% + The option key `#1' is deprecated\MessageBreak% + It's recommended to use `#2'\MessageBreak% + instead% + }% + \TUDoptions{#2}% +} +\TUD@key{fontspec}[true]{% + \ClassWarning{\TUD@Class@Name}% + {% + The option key `fontspec' is deprecated\MessageBreak% + You should load the package `fontspec' manually% + }% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% +} +\AtEndOfClass% +{% + \TUD@key{fontspec}[]% + {% + \ClassError{\TUD@Class@Name}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + class `\TUD@Class@Name' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@enabled% + \RequirePackage{fontspec}[2014/06/21]% + \fi% +} +\TUD@key{cdfonts}[true]{% + \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% + \else% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% + \fi% + \fi% +} +\TUD@key{tudfonts}[true]{% + \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% + \else% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% + \fi% + \fi% +} +\TUD@key{heavyfont}[true]{% + \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% + \else% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% + \fi% + \fi% +} +\TUD@key{din}[true]{% + \TUD@set@ifkey{din}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{din}{cdfont=din}% + \else% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% + \fi% + \fi% +} +\TUD@key{nodin}[true]{% + \TUD@set@ifkey{nodin}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{nodin}{cdfont=nodin}% + \else% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% + \else% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{sansmath}[true]{% + \TUD@set@ifkey{sansmath}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{sansmath}{cdmath=true}% + \else% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% + \fi% + \fi% +} +\TUD@key{serifmath}[true]{% + \TUD@set@ifkey{serifmath}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{serifmath}{cdmath=false}% + \else% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% + \fi% + \fi% +} +\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}} +\TUD@key{barfont}[true]{% + \TUD@set@numkey{barfont}{@tempa}{% + \TUD@numkey@bool,% + {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% + {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% + {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \TUD@key@deprecated{barfont=#1}{cdhead=false}% + \or% true + \TUD@key@deprecated{barfont=#1}{cdhead=true}% + \or% heavy + \TUD@key@deprecated{barfont=#1}{cdhead=heavy}% + \fi% + \fi% +} +\TUD@key{widehead}[true]{% + \TUD@set@ifkey{widehead}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{widehead}{cdhead=paperwidth}% + \else% + \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}% + \fi% + \fi% +} +\TUD@key{tudfoot}[true]{% + \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@key@deprecated{tudfoot}{cdfoot=true}% + \else% + \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}% + \fi% + \fi% +} +\TUD@key{color}[true]{% + \TUD@set@numkey{color}{@tempa}{% + \TUD@numkey@bool,% + {nocolor}{0},{nocolour}{0},{monochrome}{0},{monochromatic}{0},% + {color}{1},{colour}{1},% + {lite}{2},{light}{2},{pale}{2},% + {colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {full}{4},{colorfull}{4},{fullcolor}{4},{colourfull}{4},{fullcolour}{4}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \TUD@key@deprecated{color=#1}{cd=true}% + \or% true + \TUD@key@deprecated{color=#1}{cd=color}% + \or% litecolor + \TUD@key@deprecated{color=#1}{cd=pale}% + \or% bicolor + \TUD@key@deprecated{color=#1}{cd=bicolor}% + \or% full + \TUD@key@deprecated{color=#1}{cd=fullcolor}% + \fi% + \fi% +} +\TUD@key{colour}[true]{\TUDoptions{color=#1}} +\newcommand*\tud@v@comp{\tud@v@last} +\TUD@key{tudscrver}[last]{% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% + this value is not supported. Because of this, the\MessageBreak% + value for `tudscrver' was set to `first'% + }% + \def\tud@v@comp{0}% + }{% + \ClassInfoNoLine{\TUD@Class@Name}% + {% + Switching compatibility level to `\@tempa'% + }% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% + }% + \FamilyKeyStateProcessed% +} +\AtEndOfClass% +{% + \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' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% + \ClassError{\TUD@Class@Name}{% + KOMA-Script compatibility level too low% + }{% + \TUD@Version\space must be used at least with\MessageBreak% + KOMA-Script compatibility option `version=3.12'.% + }% + \fi% + }{% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% + }{% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion% + }% + }% +} +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\csdef{tud@v@2.01a}{0} +\csdef{tud@v@2.01b}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.03}{1} +\csdef{tud@v@2.03a}{1} +\csdef{tud@v@2.04}{2} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% +} +%%% From File: tudscr-misc.dtx +\newif\if@tud@x@scr@paper@set +\TUD@key{paper}{% + \tud@lowerstring{\@tempa}{#1}% + \def\@tempb##1##2\@nil{% + \@tempswafalse% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \ifnumber{##2}{}{\@tempswafalse}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \edef\@tempc{##1}% + \ifx\@tempc\@empty\@tempswafalse\else% + \edef\@tempc{##2}% + \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi% + \fi% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \@tud@x@scr@paper@setfalse% + \if@tempswa% + \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% + \FamilyKeyStateProcessed% + \else% + \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% + \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} +\TUDExecuteOptions{% + cd=bicolor,relspacing=true,tudbookmarks=false,cdfont=ultrabold% +} +\TUDProcessOptions\relax +\LoadClass{\TUD@Class@KOMA}[2015/04/23] +%%% From File: tudscr-base.dtx +\RequirePackage{environ}[2013/04/01] +\AtEndPreamble{% + \@ifpackageloaded{graphicx}{}{% + \@ifpackageloaded{graphics}{% + \ClassWarningNoLine{\TUD@Class@Name}{% + Package `graphics' was superseded by `graphicx',\MessageBreak% + which now will be loaded automatically% + }% + }{}% + }% + \RequirePackage{graphicx}[1999/02/16]% + \RequirePackage{tudscrcolor}[\TUD@Version]% +} +\cs@lock{tud@x@multicol@num}{1} +\newcommand*\tud@x@multicol@check{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \ClassWarning{\TUD@Class@Name}{% + The option `columns=\tud@x@multicol@num' is only\MessageBreak% + supported, when package `multicol' is loaded% + }% + \cs@set@lock{tud@x@multicol@num}{1}% + \fi% +} +\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} +%%% From File: tudscr-fonts.dtx +\newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath +\newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi +\newcommand*\tud@font@check{% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% + }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% + \else% + \def\@tempc##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% + }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \fi% + \undef\tud@font@check% +} +\RequirePackage{trimspaces}[2009/09/17] +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' fonts not found}% + \fi% + \fi% + \fi% + \ifcase\tud@cdfont@num\relax% false + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@head@font@num}{0}% + \else% !false + \cs@std@lock{tud@head@font@num}{1}% + \fi% + \else% true/heavy + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{true}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% + \else% + \renewcommand*\sfdefault{\tud@univers}% + \renewcommand*\ttdefault{\tud@univers t}% + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold + \renewcommand*\bfdefault{m}% + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold + \renewcommand*\bfdefault{b}% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% + \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% + \fi% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% + \tud@layout@process% + \global\@tud@head@font@settrue% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% + \if@tud@univers% + \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% + \else% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% + \fi% + \if@tud@dinbold% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% + \else% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% + \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% + \undef\tud@font@init% +} +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \ClassWarning{\TUD@Class@Name}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% +} +\newcommand*\cdfont[1]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \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}}{% + \let\@tempc\relax% + \ClassWarning{\TUD@Class@Name}% + {The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\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% +} +\newcommand*\tud@cdfont@@trim[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} +\newcommand*\tud@font@math@init{% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% + }% + }{}% + \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}% + }{}% + \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}% + }{% + \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}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% + \tud@font@math@set% + }% + \sbox\z@{\tud@dinbn$ $}% + \undef\tud@font@math@init% +} +\newcommand*\tud@font@greek@init[1]{% + \ifcsundef{up#1}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% + \else% + \csletcs{up#1}{#1}% + \fi% + }{}% + \ifcsundef{var#1}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }{}% +} +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' math fonts not found}% + \fi% + \fi% + \fi% + \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% + \fi% + \fi% + \if@tud@slantedgreek% + \tud@font@greek@loop\tud@font@greek@slanted% + \else% + \tud@font@greek@loop\tud@font@greek@upright% + \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}} +\AtEndPreamble% +{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@font@check% + \tud@font@set% + \tud@font@init% + \AtBeginDocument{\tud@font@math@init}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% +} +\newrobustcmd*\ifdin{% + \ifx\f@family\tud@dinbold% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% +} +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifdef{\LaTeXraggedright}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }{}% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% +} +%%% From File: tudscr-fields.dtx +\newcommand*\@faculty{} +\newcommand*\@department{} +\newcommand*\@institute{} +\newcommand*\@chair{} +\newcommand*\@@faculty{} +\newcommand*\@@department{} +\newcommand*\@@institute{} +\newcommand*\@@chair{} +\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}} +\newcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}} +\newcommand*\@extraheadline{} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\tud@head@text@field[2]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \global\@tud@head@text@settrue% +} +\newcommand*\tud@foot@line@add[3]{% + \tud@head@text@field{#1}{#2}% + \ifx\@empty#3\relax% + \global\csletcs{@@#1}{@#1}% + \else% + \csgdef{@@#1}{\trim@spaces{#3}}% + \fi% +} +\newcommand*\tud@foot@line@write[1]{% + \protected@edef\@tempa{\csuse{@@#1}}% + \ifx\@tempa\@empty\else\newline\mbox{\csuse{@@#1}}\fi% +} +\newcommand*\@@title{} +\robustify\@title +\renewcommand*\title[1]{% + \gdef\@title{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \protected@xdef\@@title{\trim@spaces{#1}}% + \endgroup% +} +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}% + \let\@tempb\tud@split@author@list% + \robustify\and% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \protected@edef\@@author{#1}% + \tud@replace\@@author{ \relax }{}% + \tud@replace\@@author{\relax }{}% + \tud@replace\@@author{ \relax}{}% + \tud@replace\@@author{\relax}{}% + \tud@replace\@@author{ \and }{\and}% + \tud@replace\@@author{ \and}{\and}% + \tud@replace\@@author{\and }{\and}% + \protected@xdef\@@author{\trim@spaces{\@@author}}% + \endgroup% +} +\newcommand*\@authormore{} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\providecommand*\publisher[1]{\publishers{#1}} +\newcommand*\@@professor{} +\newcommand*\professor[1]{\gdef\@@professor{#1}} +\newcommand*\supervisor[1]{} +\newcommand*\@webpage{} +\newrobustcmd*\webpage{% + \kernel@ifstar{\tud@webpage@simple}{\tud@webpage@hyper}% +} +\newrobustcmd*\tud@webpage@simple[1]{\gdef\@webpage{#1}} +\newrobustcmd*\tud@webpage@hyper[2][]{\gdef\@webpage{#2}} +\AfterPackage{hyperref}{% + \renewrobustcmd*\tud@webpage@hyper[2][hidelinks]{% + \gdef\@webpage{% + \begingroup% + \urlstyle{same}% + \hypersetup{#1}% + \url{#2}% + \endgroup% + }% + }% +} +\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\newcommand*\tud@x@isodate@printdate[2]{% + \ifx\today#2\relax% + \gdef#1{#2}% + \else% + \ifxblank{#2}% + {\gdef#1{}}% + {\gdef#1{\printdate{#2}}}% + \fi% +} +\newcommand*\tud@date@check{% + \ifdefvoid{\@duedate}{% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% + It's substituted by the given due date% + }% + \global\let\@date\@duedate% + }% + \global\let\tud@date@check\relax% +} +\renewcommand*\date{% + \kernel@ifstar{% + \TUD@parameter@set{date}{pre=\noexpand\@place{,}}% + \tud@date@set% + }{\tud@date@set}% +} +\newcommand*\tud@date@set[2][]{% + \TUD@parameter@set{date}{#1}% + \tud@x@isodate@printdate{\@date}{#2}% + \global\let\tud@date@check\relax% +} +\newcommand*\tud@date@pre{} +\newcommand*\tud@date@app{} +\TUD@parameter@family{date}{% + \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@let{pre}{before}% + \TUD@parameter@let{prefix}{before}% + \TUD@parameter@def{after}{\def\tud@date@app{#1}}% + \TUD@parameter@let{app}{after}% + \TUD@parameter@let{suffix}{after}% + \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}% + \TUD@parameter@handler@value{after}% +} +\newcommand*\tud@date@print{% + \ifx\@date\@empty\else% + \ifx\tud@date@pre\@empty\else% + \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace% + \fi% + \@date% + \ifx\tud@date@app\@empty\else% + \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}% + \fi% + \fi% +} +\newcommand*\@contactperson{} +\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\let\supervisor\contactperson +\newcommand*\@office{} +\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newcommand*\@telephone{} +\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}{% + \@latex@warning@no@line% + }{% + \csuse{#1}\csgdef{#1}{}% + }{}% + \def\tud@multiple@@split##1\and##2\relax{% + \expandafter\csname tud@split#1@do\endcsname{##1}{##2}% + }% + \begingroup% + \let\and\relax% + \def\newline{}% + \def\\{}% + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \let\@tempb\relax% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +\newcommand*\tud@multiple@fields@store[2]{% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#2}% + \endgroup% +} +\newcommand*\tud@multiple@fields@restore[1]{% + \def\@tempa##1{% + \ifcsdef{@##1}{% + \tud@cmd@restore{@##1}% + \global\csletcs{@##1}{@##1}% + }{}% + }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% +} +\newcommand*\tud@multiple@fields@preset[3]{% + \def\@tempa##1{% + \edef\@tempc{\csuse{##1}}% + \ifstr{#2}{*}{% + \csdef{@##1}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% + \ifin@% + \ifcsvoid{@##1}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% + }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% +} +\newcommand*\tud@split@author@do[2]{} +\newcommand*\tud@split@author@list{% + authormore,course,discipline,office,telephone,telefax,emailaddress% +} +\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]{% + \providecommand*#1{% + \ClassError{\TUD@Class@Name}{% + `\string#1' not defined for language `\languagename'% + }{% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% + languages german and english an its dialects. You must\MessageBreak% + define single patterns by yourself, e.g.:\MessageBreak% + `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages.% + }% + }% +} +\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} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} +\newcommand*\tud@locale@german{% + \providecaptionname{% + german,ngerman,austrian,naustrian,swissgerman,nswissgerman% + }% +} +\tud@locale@german{\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{% + \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}% +\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}{.}% +} +%%% From File: tudscr-area.dtx +\newlength\tud@len@widemargin +\newlength\tud@len@slimmargin +\newlength\tud@len@both +\newlength\tud@len@topmargin +\newlength\tud@len@barheight +\newlength\tud@len@headsep +\newlength\tud@len@footsep +\newlength\tud@len@logox +\newlength\tud@len@logoy +\newlength\tud@len@logowidth +\newlength\tud@len@line +\newlength\tud@len@heavyline +\newlength\tud@len@thinline +\newlength\tud@len@areaheadvskip +\newlength\tud@len@areadiff +\newlength\tud@len@areavskip +\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\newif\if@tud@cdgeometry@adjust +\newlength\tud@len@layoutheight +\newlength\tud@len@layoutwidth +\newlength\tud@len@layouthoffset +\newlength\tud@len@layoutvoffset +\newcommand*\tud@cdgeometry@set{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% + \else% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% + \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \tud@if@v@lower{2.05}{% + \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% + }{% + \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% + }% + \@tud@cdgeometry@adjustfalse% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \ifnum\@tempa>\z@\relax% + \ifnum\@tempa<8\relax% + \def\@tempa{3}% + \fi% + \fi% + \fi% + \ifcase\@tempa\relax% <=A7/B7 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + small paper height. It is recommended to increase\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{0.25pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{4.5pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \or% <=A6/B6 + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@thinline{0.25pt}% + \renewcommand*\tud@head@fontsize{4.5}% + \or% <=A5/B5 + \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted + \@tud@cdgeometry@adjusttrue% + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \else% + \setlength\tud@len@widemargin{21.213203mm}% + \setlength\tud@len@heavyline{0.707107pt}% + \setlength\tud@len@thinline{0.353553pt}% + \renewcommand*\tud@head@fontsize{6.363961}% + \fi% + \or% <=A4/B4 + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \or% <=A3/B3 + \setlength\tud@len@widemargin{42.426407mm}% + \setlength\tud@len@heavyline{1.414214pt}% + \setlength\tud@len@thinline{0.707107pt}% + \renewcommand*\tud@head@fontsize{12.727922}% + \or% <=A2/B2 + \setlength\tud@len@widemargin{60mm}% + \setlength\tud@len@heavyline{2pt}% + \setlength\tud@len@thinline{1pt}% + \renewcommand*\tud@head@fontsize{18}% + \or% <=A1/B1 + \setlength\tud@len@widemargin{84.852814mm}% + \setlength\tud@len@heavyline{2.828427pt}% + \setlength\tud@len@thinline{1.414214pt}% + \renewcommand*\tud@head@fontsize{25.455844}% + \or% <=A0/B0 + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@thinline{2pt}% + \renewcommand*\tud@head@fontsize{36}% + \else% >A0/B0 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + huge paper height. It is recommended to reduce\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{2pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{36pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{\tud@head@fontsize pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \global\@tud@head@font@settrue% + \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% + \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% + \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% + \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% + \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% + \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% + \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% + \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% + \setlength\tud@len@footsep{% + \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% + }% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% + \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \fi% +} +\newif\if@tud@x@crop@center +\AfterPackage{crop}{% + \CheckCommand*\CROP@center{% + \voffset\stockheight + \advance\voffset-\paperheight + \voffset.5\voffset + \hoffset\stockwidth + \advance\hoffset-\paperwidth + \hoffset.5\hoffset + }% + \pretocmd{\CROP@center}{% + \@tud@x@crop@centertrue% + }{}{\tud@patch@wrn{CROP@center}} +} +\newif\if@tud@x@standalone@crop +\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} +\newcommand*\tud@cdgeometry@process{} +\newcommand*\tud@cdgeometry@@process{} +\if@tud@x@standalone@crop + \PreventPackageFromLoading{geometry}% +\else + \RequirePackage{geometry}[2010/09/12]% +\fi +\AfterPackage*{geometry}{% + \CheckCommand*\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@ + }% + \expandafter\CheckCommand% + \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}% + }% + \CheckCommand*\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% + \CheckCommand\geometry[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process% + }% + \CheckCommand\newgeometry[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}% + }% + \CheckCommand\restoregeometry{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout% + }% + \CheckCommand*\savegeometry[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}% + }% + \CheckCommand*\loadgeometry[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@nameuse{Gm@restore@@#1}% + \Gm@changelayout}% + }% + \tud@cmd@store{geometry} + \tud@cmd@store{newgeometry} + \newif\if@tud@x@geometry@enabled% + \@tud@x@geometry@enabledtrue% + \newcommand*\tud@setgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \ifGm@pass% + \def\@tempb{}% + \else% + \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}% + \ifGm@layout% + \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}% + \fi% + \fi% + \if@atdocument% + \edef\@tempa{\@tempb,#1}% + \tud@cmd@store{Gm@restore@org}% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + \def\@tempc{\tud@cmd@use{newgeometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \tud@cmd@restore{Gm@restore@org}% + \else% + \Gm@initnewgm% + \edef\@tempa{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1% + }% + \def\@tempc{\tud@cmd@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \fi% + \@tud@x@geometry@enabledtrue% + }% + \newcommand*\tud@savegeometry[1]{% + \def\Gm@restore{}% + \savegeometry{#1}% + \csepreto{Gm@restore@@#1}{% + \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}% + \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}% + \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% + \ifGm@includemp% + \noexpand\Gm@includemptrue% + \else% + \noexpand\Gm@includempfalse% + \fi% + \ifGm@layout% + \noexpand\Gm@layouttrue% + \else% + \noexpand\Gm@layoutfalse% + \fi% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% + \TUD@parameter@family{geometry}{% + \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}% + \TUD@parameter@let{papername}{paper}% + \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}% + \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}% + \TUD@parameter@def{papersize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{paper}{##1:##1}% + }{% + \tud@area@def{paper}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}% + \TUD@parameter@let{layoutname}{layout}% + \TUD@parameter@def{layoutwidth}{% + \tud@area@def{layout}{#1:\the\tud@len@layoutheight}% + }% + \TUD@parameter@def{layoutheight}{% + \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + }% + \TUD@parameter@def{layoutsize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{layout}{##1:##1}% + }{% + \tud@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% + \TUD@parameter@handler@macro{% + \eappto\tud@x@geometry@parameter{% + \expandonce\kv@key=\expandonce\kv@value,% + }% + }{% + \tud@area@def{paper}{#2}% + }% + } + \newcommand*\tud@area@def[2]{% + \tud@lowerstring{\@tempa}{#2}% + \def\@tempb##1paper##2\@nil{% + \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + }% + \expandafter\@tempb\@tempa paper\@nil% + \@tempswafalse% + \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \if@tempswa\else% + \ifx\@tempa\@empty\relax\else% + \def\@tempb##1##2\@nil{% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \@tempswafalse% + \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \@tempswatrue% + \def\@tempa{##1:##2}% + }% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \if@tempswa\else% + \def\tud@reserved##1:##2:##3:##4\@nil{% + \if@tempswa\else% + \ifstr{\@tempa}{##1}{% + \@tempswatrue% + \def\@tempa{##2##4:##3##4}% + }{}% + \fi% + }% + \tud@reserved b0j:1030:1456:mm\@nil% + \tud@reserved b1j:728:1030:mm\@nil% + \tud@reserved b2j:515:728:mm\@nil% + \tud@reserved b3j:364:515:mm\@nil% + \tud@reserved b4j:257:364:mm\@nil% + \tud@reserved b5j:182:257:mm\@nil% + \tud@reserved b6j:128:182:mm\@nil% + \tud@reserved ansia:8.5:11:in\@nil% + \tud@reserved ansib:11:17:in\@nil% + \tud@reserved ansic:17:22:in\@nil% + \tud@reserved ansid:22:34:in\@nil% + \tud@reserved ansie:34:44:in\@nil% + \tud@reserved screen:225:180:mm\@nil% + \fi% + \fi% + \fi% + \if@tempswa% + \cseappto{tud@x@geometry@#1}{\@tempa,}% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \ifstr{#1}{paper}{% + \setlength\paperwidth{##1}% + \setlength\paperheight{##2}% + }{% + \ifstr{#1}{layout}{% + \setlength\tud@len@layoutwidth{##1}% + \setlength\tud@len@layoutheight{##2}% + }{}% + }% + }% + }% + \expandafter\@tempb\@tempa::\@nil% + \else% + \appto\tud@x@geometry@parameter{#2,}% + \fi% + } + \newcommand*\tud@area@set[1]{% + \letcs{\@tempa}{tud@x@geometry@#1}% + \ifdefvoid{\@tempa}{}{% + \def\@tempb##1:##2:##3\@nil{% + \tud@cmd@store{@tempa}% + \tud@cmd@store{@tempb}% + \tud@cmd@store{@tempc}% + \IfArgIsEmpty{##2}{% + \KOMAoption{paper}{##1}% + }{% + \if@landscape% + \KOMAoption{paper}{##2:##1}% + \else% + \KOMAoption{paper}{##1:##2}% + \fi% + }% + \tud@cmd@restore{@tempa}% + \tud@cmd@restore{@tempb}% + \tud@cmd@restore{@tempc}% + }% + \def\@tempc##1{\@tempb##1::\@nil}% + \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}% + }% + } + \newcommand*\tud@x@geometry@init{} + \newcommand*\tud@x@geometry@paper{} + \newcommand*\tud@x@geometry@layout{} + \newcommand*\tud@x@geometry@parameter{} + \newcommand*\tud@geometry[2]{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% + \else% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \let\tud@x@geometry@paper\@empty% + \let\tud@x@geometry@layout\@empty% + \let\tud@x@geometry@parameter\@empty% + \TUD@parameter@set{geometry}{#1}% + \tud@area@set{paper}% + \ifstr{#2}{newgeometry}{% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + }{% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + }% + }% + \ifx\tud@x@geometry@layout\@empty\else% + \begingroup% + \setlength\paperwidth{\Gm@layoutwidth}% + \setlength\paperheight{\Gm@layoutheight}% + \tud@area@set{layout}% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% + }% + }% + \tud@reserved% + \fi% + \def\@tempa{\tud@cmd@use{#2}}% + \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}% + \ifstr{#2}{geometry}{% + \ifbool{@tud@x@geometry@enabled}{% + \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}% + }{}% + }{}% + } + \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}} + \renewcommand*\newgeometry[1]{% + \tud@cmd@store{Gm@restore@org}% + \tud@geometry{#1}{newgeometry}% + \tud@cmd@restore{Gm@restore@org}% + } + \apptocmd{\Gm@changelayout}{% + \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{% + \tud@cdgeometry@process% + }{}% + }{}{\tud@patch@wrn{Gm@changelayout}}% + \renewcommand*\restoregeometry[1][]{% + \IfArgIsEmpty{#1}{}{% + \tud@cmd@store{TUD@SpecialOptionAtDocument}% + \let\TUD@SpecialOptionAtDocument\@gobble% + \TUDoption{cdgeometry}{#1}% + \tud@cmd@restore{TUD@SpecialOptionAtDocument}% + }% + \ifnum\tud@cdgeometry@num=\@ne\relax + \tud@loadgeometry{init@custom}% + \else% + \tud@loadgeometry{init@typearea}% + \fi% + \tud@AfterChangingArea% + }% + \newcommand*\tud@cdgeometry@hmargin{}% + \newcommand*\tud@cdgeometry@vmargin{}% + \newcommand*\tud@cdgeometry@tudmargin{}% + \tud@if@v@lower{2.03}{\newcommand*\tud@cdgeometry@ddcmargin{}}{}% + \renewcommand*\tud@cdgeometry@process{% + \tud@AfterChangingArea% + }% + \renewcommand*\tud@cdgeometry@@process{% + \csuse{@ta@usegeometryfalse}% + \tud@cdgeometry@set% + \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \ifcase\tud@cdgeometry@num\relax% + \ifGm@layout% + \tud@skip@store{paperheight}% + \tud@skip@store{paperwidth}% + \setlength\paperheight{\tud@len@layoutheight}% + \setlength\paperwidth{\tud@len@layoutwidth}% + \fi% + \tud@cmd@store{activateareas}% + \tud@cmd@store{tud@AfterChangingArea}% + \let\activateareas\relax% + \let\tud@AfterChangingArea\relax% + \recalctypearea% + \ifGm@layout% + \tud@skip@restore{paperheight}% + \tud@skip@restore{paperwidth}% + \fi% + \tud@cmd@restore{activateareas}% + \tud@cmd@restore{tud@AfterChangingArea}% + \edef\tud@cdgeometry@hmargin{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \edef\tud@cdgeometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \tud@cdgeometry@fincl,% + footskip=\the\footskip% + }% + \else% custom + \ifGm@pass\else% + \edef\tud@cdgeometry@hmargin{% + left=\Gm@lmargin,% + right=\Gm@rmargin,% + \ifGm@includemp% + includemp=true,% + \else% + includemp=false,% + \fi% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\Gm@bindingoffset% + }% + \edef\tud@cdgeometry@vmargin{% + \ifGm@includehead% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \ifGm@includefoot% + includefoot=true,% + \else% + includefoot=false,% + \fi% + footskip=\the\footskip% + }% + \fi% + \fi% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\topmargin-\headheight-\headsep-1in\relax% + }% + \ifdim\tud@len@areadiff<\z@\relax% + \addtolength\tud@len@headsep{-\tud@len@areadiff}% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@len@areadiff}% + \fi% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep,% + textheight=\the\dimexpr\textheight-\@tempdima\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@ddcdiff{% + \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% + +\footheight-1.25\baselineskip\relax% + }% + \edef\tud@cdgeometry@ddcmargin{% + textheight=\the\dimexpr\textheight-\tud@len@areadiff% + -\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + }% + }{}% + \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea or custom layout is used\MessageBreak% + (`cdgeometry=false/custom')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \setlength\@tempdima{\tud@len@widemargin}% + \if@reversemargin% + \setlength\@tempdimc{\tud@len@widemargin}% + \else% + \setlength\@tempdimc{\tud@len@slimmargin}% + \fi% + \or% symmetric + \setlength\@tempdima{.5\tud@len@both}% + \setlength\@tempdimc{.5\tud@len@both}% + \or% twoside + \if@twoside% + \setlength\@tempdima{.4\tud@len@both}% + \else% + \setlength\@tempdima{.5\tud@len@both}% + \fi% + \setlength\@tempdimc{.5\tud@len@both}% + \if@twoside% + \if@reversemargin% + \setlength\@tempdimc{.4\tud@len@both}% + \else% + \setlength\@tempdimc{.6\tud@len@both}% + \fi% + \fi% + \fi% + \addtolength\@tempdimc{-\headsep}% + \setlength\@tempdimb{% + \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% + }% + \if@mincl% + \addtolength\@tempdimb{-\@tempdimc}% + \fi% + \edef\tud@cdgeometry@hmargin{% + left=\the\@tempdima,% + textwidth=\the\@tempdimb,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\@tempdimc,% + marginparsep=\the\dimexpr.5\headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \if@twoside% + \ifcase\tud@cdgeometry@num\relax\or\or% true + \appto\tud@cdgeometry@hmargin{,asymmetric}% + \else% symmetric/twoside + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@if@v@lower{2.03}{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\dimexpr.5\tud@len@both\relax,% + headheight=\the\headheight,% + headsep=\the\tud@len@headsep,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }% + }{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\tud@len@slimmargin,% + headheight=\the\headheight,% + headsep=\the\headsep,% + bottom=\the\dimexpr\tud@len@widemargin% + +\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + }% + }% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep% + }% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\tud@len@slimmargin\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -.5\tud@len@both\relax% + }% + \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \edef\tud@cdgeometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff+\tud@len@headsep+\footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip+\tud@len@ddcdiff\relax,% + }% + }{}% + \fi% + \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% + \global\tud@len@areadiff=\tud@len@areadiff% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% + \else% + \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \fi% + \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \tud@if@v@lower{2.03}{% + \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi% + \global\tud@len@ddcdiff=\tud@len@ddcdiff% + }{}% + \tud@cdgeometry@@@process% + }% + \newcommand*\tud@cdgeometry@@@process{% + \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% + \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% + \tud@if@v@lower{2.03}{% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin,% + \tud@cdgeometry@ddcmargin,% + ignorehead,ignorefoot% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudareaddc}% + }{}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudarea}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{stdarea}% + \if@atdocument% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% + }% + \fi% + }% + \newcommand*\tud@cdgeometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@cdgeometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@cdgeometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% + }% +} +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@tudheadings{#1}{% + \tud@if@v@lower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + \else% \tud@ddc@foot@num!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% + \setlength\tud@len@areavskip{\z@}% + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + }{% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@loadgeometry{stdarea}% + \gdef\tud@currentgeometry{stdarea}% + }% + \setlength\tud@len@areavskip{\tud@len@areadiff}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \if@hincl% + \addtolength\tud@len@areavskip{% + \dimexpr-\headheight-\tud@len@headsep\relax% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@len@areavskip=\tud@len@areavskip% + }{}% +} +\newcommand*\tud@AfterChangingArea{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\newcommand*\tud@cdgeometry@init{% + \AtEndPreamble{% + \if@tud@x@standalone@crop% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% + \let\tud@AfterChangingArea\relax% + \let\tud@cdgeometry@process\relax% + \else% + \csuse{@ta@usegeometryfalse}% + \def\tud@reserved##1{% + \tud@setgeometry{% + \tud@cdgeometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor,% + \tud@cdgeometry@hincl,% + \tud@cdgeometry@fincl,% + \tud@x@geometry@init,% + driver=none% + }% + \addtolength\oddsidemargin{-\Gm@layouthoffset}% + \addtolength\evensidemargin{-\Gm@layouthoffset}% + \addtolength\topmargin{-\Gm@layoutvoffset}% + \tud@savegeometry{init@##1}% + }% + \begingroup% + \let\scr@grouplevel@test\@gobble% + \setlength\paperheight{\Gm@layoutheight}% + \setlength\paperwidth{\Gm@layoutwidth}% + \let\activateareas\relax% + \tud@x@ta@warnings@off% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}% + \def\@tempb{{0}}% + \ifx\@tempa\@tempb\relax% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}% + \@for\@tempb:=\@tempa\do{% + \@tempswatrue% + \ifx\@tempb\defaultpapersize\relax% + \@tempswafalse% + \fi% + }% + \if@tempswa% + \KOMAoptions{DIV=11}% + \fi% + \fi% + \recalctypearea% + \tud@x@ta@warnings@on% + \edef\tud@x@geometry@init{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + bindingoffset=\the\ta@bcor,% + \if@hincl% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + footskip=\the\footskip% + }% + \tud@reserved{typearea}% + \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea% + \endgroup% + \tud@reserved{custom}% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \ifundef{\AfterRestoreareas}{}{% + \AfterRestoreareas{\tud@AfterChangingArea}% + }% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% + \tud@cdgeometry@process% + \fi + \let\tud@cdgeometry@init\relax% + }% +} +\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\TUD@UnwindPackage{geometry}{% + \newif\ifGm@layout% + \newif\ifGm@showcrop% + \newif\ifGm@pass% + \let\Gm@layoutheight\paperheight% + \let\Gm@layoutwidth\paperwidth% + \let\Gm@layouthoffset\z@% + \let\Gm@layoutvoffset\z@% + \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \providecommand*\tud@setgeometry[1]{}% + \providecommand*\tud@savegeometry[1]{}% +} +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@if@v@lower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@if@tudheadings{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \enlargethispage{-\tud@len@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +%%% From File: tudscr-pagestyle.dtx +\if@tud@x@standalone@crop + \PreventPackageFromLoading{scrlayer-scrpage}% +\else + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\fi +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% + contents={% + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\layerheight}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.upline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowline}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.uplinewide}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowlinewide}% + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% + \DeclareNewLayer[% + background,foot,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% + addvoffset=-\dp\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% + \ifx\@tempc\relax\else% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + }% + }% + \else% \tud@ddc@foot@num!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + }{}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% + \tud@if@v@lower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% + ]{tudheadings.foot.content}% + }{}% + \DeclareNewLayer[% + background,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% + }% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \DeclareNewLayer[% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% +} +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} +\PreventPackageFromLoading[% + \ClassWarning{\TUD@Class@Name}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} +\newcommand*\tud@ps@onselect{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% +} +\newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} +\newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} +\newcommand*\tud@ps@onbackground{% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% + \or% cdhead=litecolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \or% cdhead=barcolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% + \if@tud@foot@colored% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% + }% + \fi% + \else% cdhead=*color + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% + \fi% + \fi% + }{% + \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}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% + \else% + \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@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% +} +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + \tud@cdgeometry@init% +} +\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% + \xdef\@specialstyle{\GetRealPageStyle{#1}}% +}{}{\tud@patch@wrn{thispagestyle}} +\newcommand*\tud@head@fontsize{} +\newcommand*\tud@head@font@light{} +\newcommand*\tud@head@font@bold{} +\newcommand*\tud@head@font@@bold{} +\newcommand*\tud@head@font@set{% + \ifcase\tud@head@font@num\relax% false + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@head@font@set% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `cdhead=false'\MessageBreak% + together with `cdfont=true'% + }% + \fi% + \TUDoptions{cdhead=true}% + \fi% + \fi% + \if@tud@head@font@set% + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + }% + \ifcase\tud@head@font@num\relax\else% true/heavy + \if@tud@univers% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@univers}{b}{n}% + }% + \fi% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} +\newcommand*\tud@head@text@line{} +\newcommand*\tud@head@text@list{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% + \edef\@tempa{% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% + }% + \settowidth\@tempdima{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% + \else% + \edef\tud@head@text@line{\expandonce\@tempa}% + \fi% + }% +} +\newif\if@tud@head@text@set +\newcommand*\tud@head@text@wrn[1]{} +\newcommand*\tud@head@text@set{% + \if@tud@head@text@set% + \def\tud@head@text@line{}% + \def\tud@head@text@list{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% + }% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% + }% + }% + \fi% +} +\newcommand*\tud@head@text@box{% + \ifx\@faculty\@empty% + \ClassWarningNoLine{\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{% + \settowidth\@tempdima{##1}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + }% + \fi% + }% + \vbox{% + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% + }% + \global\let\tud@head@text@wrn\@gobble% +} +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% +} +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% +} +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@layer@#1\endcsname% +} +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima\MessageBreak% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +\AtBeginDocument{% + \tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% + }% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% + }{}% +} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% + }{% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% + }% + \fi% + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@len@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUD@Class@Name}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% + \tud@headlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% + \global\@tud@mainlogo@setfalse% + \fi% +} +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + }% + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} +\newcommand*\tud@headlogo@wrn{} +\newcommand*\headlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% + }% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% + }% + \@tempb% + }% + \or\or% \tud@ddc@head@num=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head@num=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head@num=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head@num=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head@num=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head@num=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% + \fi% +} +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% + }% + \vss% + }{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + }{% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + }% + }{}% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot@num=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot@num=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot@num=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot@num=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot@num=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% + \fi% +} +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + You should reduce `footlogoheight', because it is\MessageBreak + too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% + }% + \usebox\z@\hspace*{-\wd\z@}% + \fi% +} +\tud@newlayerbox{foot@cmd} +\newcommand*\footlogosep{\hfill} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} +\newcommand*\footlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@comp@resetpagestyle% +} +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\tud@footlogo@filenames\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% + \begingroup% + \def\@tempa{}% + \def\@tempb{}% + \@tempswatrue% + \def\do##1{% + \if@tempswa% + \def\@tempa{##1}% + \@tempswafalse% + \else% + \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \fi% + }% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% + }% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% + }% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% + }% + \endgroup% +} +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% +} +\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} +\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\footcontent{% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% + }{% + \renewcommand*\tud@footcontent@fontface{% + \usekomafont{tudheadings}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% + \selectfont% + }% + \tud@footcontent@do% + }% +} +\newcommand*\tud@footcontent@do[2][]{% + \kernel@ifnextchar[%] + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% +} +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% + \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% + \fi% +} +\newcommand*\tud@newline@poster{} +\newcommand*\tud@footcontent@@left[1]{% + \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + Technische Universit\"at Dresden% + \tud@foot@line@write{faculty}% + \tud@foot@line@write{department}% + \tud@foot@line@write{institute}% + \tud@foot@line@write{chair}% + \tud@foot@line@write{professor}% +} +\newcommand*\tud@footcontent@@right[2]{% + \def\tud@newline@poster{% + \ifx\@authormore\@empty\else\newline\@authormore\fi% + \ifx\@course\@empty% + \ifx\@discipline\@empty\else\newline\@discipline\fi% + \else% + \newline\@course% + \ifx\@discipline\@empty\else% + \nobreakspace(\@discipline)% + \fi% + \fi% + \ifx\@office\@empty\else\newline\@office\fi% + \ifx\@telephone\@empty\else\newline\@telephone\fi% + \ifx\@telefax\@empty\else\newline\@telefax\fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% + }% + \ifpatchable{\@author}{\@latex@warning@no@line}{% + \let\@tempa\@empty% + }{% + \let\@tempa\@author% + }% + \ifx\@tempa\@empty\else% + \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + \renewcommand*\tud@split@author@do[2]{% + \tud@multiple@fields@store{@author}{##1}% + \tud@multiple@fields@preset{@author}{*}{##1}% + \ignorespaces##1\tud@newline@poster% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@author}% + \tud@multiple@fields@restore{@author}% + \tud@newline@poster% + \ifx\@contactperson\@empty\else\newline\fi% + \fi% + \def\tud@newline@poster{% + \ifx\@office\@empty\else\newline\@office\fi% + \ifx\@telephone\@empty\else\newline\@telephone\fi% + \ifx\@telefax\@empty\else\newline\@telefax\fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% + }% + \ifx\@contactperson\@empty\else% + \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}% + \renewcommand*\tud@split@contactperson@do[2]{% + \tud@multiple@fields@store{@contactperson}{##1}% + \tud@multiple@fields@preset{@contactperson}{*}{##1}% + \ignorespaces##1\tud@newline@poster% + \tud@multiple@fields@restore{@contactperson}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@contactperson}% + \tud@multiple@fields@restore{@contactperson}% + \tud@newline@poster% + \fi% + \ifx\@webpage\@empty\else\newline\@webpage\fi% +} +\footcontent{% + \tud@footcontent@@left{\contactname}% +}[% + \tud@footcontent@@right{\authorname}{\contactpersonname}% +] +\newcommand*\tud@footcontent@use[2]{% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% + \fi% + \fi% + \else% + \@tempswatrue% + \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \linespread{1}% + \vss% + \hbox to #2{% + \tud@footcontent@fontface% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \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% + }{% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% + \else% + \hbox to #2{}% + \fi% +} +\newcommand*\tud@ps@parameters[1]{% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% +} +%%% From File: tudscr-layout.dtx +\newcommand*\tud@x@scr@headings@current{} +\newcommand*\tud@sec@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}% + #1% + }% + }% + \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempb\do{% + \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% + \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% + \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}% + }% +} +\AtEndPreamble{\tud@x@scr@headings@set} +\newcommand*\tud@x@scr@headings@reset{% + \tud@layout@process% + \tud@x@scr@headings@set[% + \ifcase\tud@layout@part@num\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@section@num\relax\else% !false + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \fi% + ]% +} +\newcommand*\tud@title@fontcolor{} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@section@fontcolor{} +\providecommand*\raggedtitle{\tud@raggedright} +\newcommand*\tud@layout@process{% + \ifcase\tud@layout@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}% + \else% !false + \renewcommand*\titlepagestyle{empty.tudheadings}% + \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% + \tud@font@koma@set{title}{% + \raggedtitle% + \usekomafont{disposition}% + \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@font@koma@set{subject}{% + \sffamily% + \bfseries% + \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}% + \else% !false + \tud@cmd@store{partheadstartvskip}% + \let\partheadstartvskip\tud@partheadstartvskip% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \let\scr@@startpart\tud@@startpart% + }{% + \tud@cmd@store{@part}% + \let\@part\tud@@part% + }% + \tud@sectioning@set[addpart]{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@font@koma@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@cmd@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}% + \else% !false + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@layout@section@num\relax\or\else% *color + \renewcommand*\tud@section@fontcolor{HKS41}% + \fi% + \tud@sectioning@set[addsec]{section}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsubsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{minisec}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{paragraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subparagraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@cmd@store{raggedsection}% + \renewcommand*\raggedsection{\tud@raggedright}% + \fi% + \ifcase\tud@cd@num\relax% false + \pagestyle{empty}% + \color{black}% + \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}% + \color{black}% + \or% litecolor + \cs@std@lock{tud@head@bar@num}{1}% + \bool@std@lock{@tud@foot@colored}{false}% + \color{HKS41}% + \or% barcolor + \cs@std@lock{tud@head@bar@num}{2}% + \bool@std@lock{@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}% + \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% + }% + \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 + \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}}% + \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@addpart{} +\newcommand*\tud@saddpart{} +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% + }{% + \tud@sectioning@case{#2}% + \ifblank{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% + }% + }% + \tud@font@koma@set{#2}{#3}% +} +\newcommand*\tud@sectioning@case[1]{% + \csedef{#1}{% + \noexpand\SecDef% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname tud@#1\endcsname% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname tud@s#1\endcsname% + }% + \csedef{tud@#1}[##1]##2{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname% + [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% + }% + \csedef{tud@s#1}##1{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname*% + {\noexpand\tud@sectioning@uppercase{##1}}% + }% + \ifstr{#1}{addsec}{% + \def\tud@addsec[##1]##2{% + \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + }% + \def\tud@saddsec##1{% + \@@tud@addsec*{\tud@sectioning@uppercase##1}% + }% + }{}% +} +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifblank{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@unset{#2}% +} +\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% +} +%%% From File: tudscr-title.dtx +\newkomafont{titlepage}{% + \usekomafont{subject}% + \mdseries% + \large% +} +\robustify{\thanks} +\robustify{\footnotemark} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% + \let\\\newline% + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% + \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% +} +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax +\newcommand*\tud@maketitle[1][]{% + \begingroup% + \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]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% + \else% !false + \tud@make@titlehead% + \fi% + \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% +} +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +\tud@cmd@store{maketitle} +\let\maketitle\tud@maketitle +\TUD@parameter@family{title}{% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% + \TUD@parameter@let{cd}{cdtitle}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% + \fi% + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% +} +\newcommand*\tud@make@@titlehead{% + \global\@topnum=\z@% + \vspace*{\dimexpr\tud@len@areavskip-\baselineskip\relax}% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% + \begingroup% + \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}}% + \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% + {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% + \fi% + \vskip 2ex\@plus1ex\@minus1ex% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% + \fi% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \endgroup% +} +\newcommand\maketitleonecolumn[2][]{% + \if@twocolumn% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \else% + \ClassError{\TUD@Class@Name}{% + `\string\maketitleonecolumn' can only be used in twocolumn mode% + }{}% + \fi% +} +\newsavebox\tud@title@box +\newcommand\tud@title@twocolumn[1]{% + \onecolumn% + \begingroup% + \let\clearpage\relax% + \let\newpage\relax% + \global\setbox\tud@title@box\vbox{% + \vspace*{.9\baselineskip}#1\bigskip% + }% + \endgroup% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% + \@tempswatrue% + \fi% + }{}% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@box to \@tempdima% + \clearpage% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% + }% + \else% + \setbox\tud@title@box\vbox{#1\bigskip}% + \fi% + \twocolumn[\unvbox\tud@title@box]% + \tud@if@v@lower{2.03}{% + \if@tempswa% + \ClassWarning{\TUD@Class@Name}{% + You are using a two-column title along with\MessageBreak% + the DDC-logo. Unfortunately in this case, the\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% + in both columns after the title% + }% + \fi% + }{}% +} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@check[2]{% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \global\let\tud@fm@set\tud@fm@next% +} +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \par% + \else% + \ifnum\csuse{tud@#1@level@num}=\z@\relax% + \ifundef{\main@language}{}{\vspace*{-\baselineskip}}% + \fi% + \fi% +} +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \begin{\tud@quoting}% + \fi% + \fi\fi% + \ifnum\tud@x@multicol@num>\@ne\relax% + \vspace{-\multicolsep}% + \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% + \vspace{-\multicolsep}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \end{\tud@quoting}\par% + \fi% + \fi\fi% + \endgroup% +} +\newcommand*\tud@fm@head[2]{% + \ifcase\csuse{tud@#1@level@num}\relax% false + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% + \begingroup% + \noindent\centering% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \endgraf% + \endgroup% + \nopagebreak% + \vskip\dimexpr\medskipamount-\parskip\relax% + \@afterheading% + \or% section + \section*{#2}% + \fi% +} +\newcommand*\tud@quoting{quotation} +\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} +\csundef{abstract} +\csundef{endabstract} +\NewEnviron{abstract}[1][]{% + \TUD@parameter@set{abstract}{#1}% + \tud@x@multicol@check% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% +}[% + \ifnum\tud@abstract@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% +] +\TUD@parameter@family{abstract}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@let{option}{abstract}% + \TUD@parameter@handler@default{}% +} +\newcommand*\nextabstract[1][]{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% +} +%%% From File: tudscr-comp.dtx +\newcommand*\TUD@cmd@deprecated[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@len@deprecated[2][]{% + \ifdim\csuse{#2}<\maxdimen\relax% + \ClassWarning{\TUD@Class@Name}{% + Using the length `\@backslashchar#2' is deprecated.\MessageBreak% + You should use option `#2' instead% + }% + \csxdef{tud@dim@#2}{\the\csuse{#2}}% + \expandafter\setlength\csname #2\endcsname{\maxdimen}% + \global\csuse{#2}=\csuse{#2}% + #1% + \fi% +} +\newlength\footlogoheight +\setlength\footlogoheight{\maxdimen} +\TUD@cmd@deprecated{professorship}{chair} +\TUD@cmd@deprecated{location}{place} +\TUD@cmd@deprecated{logofile}{headlogo} +\TUD@cmd@deprecated{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \TUD@cmd@deprecated{startdate}{issuedate}% + \TUD@cmd@deprecated{finaldate}{duedate}% + \TUD@cmd@deprecated{maturitydate}{duedate}% +} +\AtEndOfClass% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% +} +%%% From File: tudscr-misc.dtx +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\AtBeginDocument{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% +} +\newif\if@tud@font@set +\newif\if@tud@font@math@set +\newif\if@tud@font@skip@set +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@layout@process +\newif\if@tud@cdgeometry@process +\newif\if@tud@cdgeometry@@process +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@math@setfalse% + \global\@tud@font@skip@setfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@font@math@set% + \tud@font@math@set% + \global\@tud@font@math@setfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@layout@process% + \tud@layout@process% + \global\@tud@layout@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \global\@tud@cdgeometry@@processfalse% + \fi% + \if@tud@cdgeometry@@process% + \tud@cdgeometry@@process% + \global\@tud@cdgeometry@@processfalse% + \fi% +} +\newcommand*\tudbookmark[1][]{\@gobbletwo} +\newcommand*\tud@x@hyperref@realfootnotes{} +\AfterPackage{hyperref}{% + \renewcommand*\tudbookmark[3][]{% + \relax% + \if@tud@bookmarks% + \phantomsection% + \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \fi% + }% + \renewcommand*\tud@x@hyperref@realfootnotes{% + \let\Hy@saved@footnotemark\@footnotemark% + \let\Hy@saved@footnotetext\@footnotetext% + \let\@footnotemark\H@@footnotemark% + \let\@footnotetext\H@@footnotetext% + }% + \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% +} +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +\pretocmd{\tud@make@titlehead}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@make@titlehead}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cmd@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cmd@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} +\BeforePackage{tocloft}{% + \ClassWarningNoLine{\TUD@Class@Name}{% + It is absolutely not recommended to use package\MessageBreak% + `tocloft'. Loading the package will certainly lead\MessageBreak% + to problems with table of contents and any list of\MessageBreak% + floats. You should use the appropriate options of\MessageBreak% + the KOMA-Script classes% + }% +} +\CheckCommand*\@uclcnotmath[4]{% + \begingroup + #1% + \def\({$}\let\)\(% + \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% + \@nonchangecase\label + \@nonchangecase\ref + \@nonchangecase\ensuremath + \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% + \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% + \def\reserved@a##1##2{\let#2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{% + \endgroup + \noexpand\@skipmath#3#4$\valign$% + }% + \reserved@a% +} +\newcommand*\tud@x@textcase@uclcnotmath{% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +} +\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% +}{}{\tud@patch@wrn{@uclcnotmath}} +\endinput +%% +%% End of file `tudscrposter.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls index 1c4d9845a7b..ae90157babc 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls @@ -5,23 +5,25 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `class,report') -%% tudscr-base.dtx (with options: `load') -%% tudscr-fonts.dtx (with options: `class,option') +%% tudscr-base.dtx (with options: `class,report,load') +%% tudscr-fonts.dtx (with options: `class,report,option') +%% tudscr-area.dtx (with options: `class,report,option') %% tudscr-pagestyle.dtx (with options: `class,report,option') %% tudscr-layout.dtx (with options: `class,report,option') -%% tudscr-frontmatter.dtx (with options: `class,report,option') %% tudscr-title.dtx (with options: `class,report,option') +%% tudscr-frontmatter.dtx (with options: `class,report,option') %% tudscr-comp.dtx (with options: `class,report,option') %% tudscr-misc.dtx (with options: `class,report,option') -%% tudscr-misc.dtx (with options: `class,execute') -%% tudscr-base.dtx (with options: `class,body') -%% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-fields.dtx (with options: `class,body') +%% tudscr-misc.dtx (with options: `class,report,execute') +%% tudscr-base.dtx (with options: `class,report,body') +%% tudscr-fonts.dtx (with options: `class,report,body') +%% tudscr-fields.dtx (with options: `class,report,body') %% tudscr-locale.dtx (with options: `class,report,body') +%% tudscr-area.dtx (with options: `class,report,body') %% tudscr-pagestyle.dtx (with options: `class,report,body') %% tudscr-layout.dtx (with options: `class,report,body') -%% tudscr-frontmatter.dtx (with options: `class,report,body') %% tudscr-title.dtx (with options: `class,report,body') +%% tudscr-frontmatter.dtx (with options: `class,report,body') %% tudscr-comp.dtx (with options: `class,report,body') %% tudscr-misc.dtx (with options: `class,report,body') %% @@ -53,160 +55,153 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} \newcommand*\TUD@ProvidesClass[3]{% - \newcommand*\TUDClassName@KOMA{#2}% - \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% \ProvidesClass{#1}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script ^^J#3 (#2)% ]% - \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% + \newcommand*\TUD@Class@KOMA{#2}% + \@ifundefined{TUD@Class@Parent}{% + \newcommand*\TUD@Class@Name{#1}% + \TUD@Class@Info% + }{}% } -\providecommand*\TUD@ClassInfo{% - \typeout{+---------------------------------------------------------------} - \typeout{| The Corporate Design of Technische Universitaet Dresden} - \typeout{| Class: \TUDClassName} - \typeout{| Version: \TUDVersion} - \typeout{| Author: Falk Hanisch (\tudscrmail)} - \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} - \typeout{+---------------------------------------------------------------} +\providecommand*\TUD@Class@Info{% + \typeout{+---------------------------------------------------------------}% + \typeout{| The Corporate Design of Technische Universitaet Dresden}% + \typeout{| Class: \TUD@Class@Name}% + \typeout{| Version: \TUD@Version}% + \typeout{| Author: Falk Hanisch (\tudscrmail)}% + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \typeout{+---------------------------------------------------------------}% } -\NeedsTeXFormat{LaTeX2e} \TUD@ProvidesClass{tudscrreprt}{scrreprt}{document class} +\edef\TUDScriptClassName{\TUD@Class@Name} +\providecommand*\TUDClassName{\TUDScriptClassName} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] +\RequirePackage{tudscrbase}[\TUD@Version] +\renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} +\AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% ]{tudscrfonts} -\newif\if@tud@univers -\newif\if@tud@dinbold -\newcommand*\tud@univers{lun} -\newcommand*\tud@dinbold{0m6} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% - \ClassWarning{\TUDClassName}% - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -\AtEndOfClass% -{% - \TUD@key{fontspec}[]% - {% - \ClassError{\TUDClassName}% - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% - class `\TUDClassName' - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -\newcommand*\tud@cdfont{1} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% - {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% - {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% - {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% - {bar}{6},{barfont}{6},% - {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% - {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% - {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% - {headlight}{6},{headfontlight}{6},{headlightfont}{6},% - {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% - {barlight}{6},{barfontlight}{6},{barlightfont}{6},% - {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% - {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% - {litebar}{6},{litebarfont}{6},{litefontbar}{6},% - {headlite}{6},{headfontlite}{6},{headlitefont}{6},% - {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% - {barlite}{6},{barfontlite}{6},{barlitefont}{6},% - {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% - {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% - {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% - {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% - {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% - {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% - {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% - {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% - {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% - {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% - {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% - {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% + {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% + {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% + {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% + {bar}{8},{barfont}{8},% + {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% + {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% + {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% + {headlight}{8},{headfontlight}{8},{headlightfont}{8},% + {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% + {barlight}{8},{barfontlight}{8},{barlightfont}{8},% + {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% + {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% + {litebar}{8},{litebarfont}{8},{litefontbar}{8},% + {headlite}{8},{headfontlite}{8},{headlitefont}{8},% + {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% + {barlite}{8},{barfontlite}{8},{barlitefont}{8},% + {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% + {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% + {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% + {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% + {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% + {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% + {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% + {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% + {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% + {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% + {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% + {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% \or% nohead \TUDoptions{cdhead=false}% \or% head @@ -227,16 +222,38 @@ \TUDoptions{fontspec=false}% \fi% \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% + \fi% +} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } \bool@lock{@tud@cdmath} @@ -251,10 +268,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -267,28 +284,111 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} +%%% From File: tudscr-area.dtx +\cs@lock{tud@cdgeometry@num}{0} +\newcommand*\tud@cdgeometry@calc@num{0} +\TUD@key{cdgeometry}[true]{% + \let\@tempb\tud@cdgeometry@num% + \let\@tempc\tud@cdgeometry@calc@num% + \TUD@set@numkey{cdgeometry}{@tempa}{% + \TUD@numkey@bool,% + {typearea}{0},% + {cd}{1},{tud}{1},{asymmetric}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3},% + {oneside}{4},% + {restricted}{5},% + {adapted}{6},{adapt}{6},{adapting}{6},{unrestricted}{6},% + {calculated}{7},{calc}{7},{calculate}{7},{calculating}{7},% + {custom}{8},{user}{8},{package}{8}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false/typearea + \cs@set@lock{tud@cdgeometry@num}{0}% + \or% true/cd + \cs@set@lock{tud@cdgeometry@num}{2}% + \or% symmetric + \cs@set@lock{tud@cdgeometry@num}{3}% + \or% twoside + \cs@set@lock{tud@cdgeometry@num}{4}% + \TUD@KOMAoptions{twoside=true}% + \or% oneside + \ifnum\tud@cdgeometry@num>\thr@@\relax% + \cs@set@lock{tud@cdgeometry@num}{3}% + \fi% + \TUD@KOMAoptions{twoside=false}% + \or% restricted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{0}% + \or% adapted + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{1}% + \or% calculated + \cs@std@lock{tud@cdgeometry@num}{2}% + \renewcommand*\tud@cdgeometry@calc@num{2}% + \or% custom + \cs@set@lock{tud@cdgeometry@num}{1}% + \fi% + \@tempswafalse% + \ifx\@tempb\tud@cdgeometry@num\relax\@tempswatrue\fi% + \ifx\@tempc\tud@cdgeometry@calc@num\relax\@tempswatrue\fi% + \if@tempswa% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% + \fi% + \fi% +} +\newcommand*\tud@dim@extrabottommargin{\z@} +\TUD@key{extrabottommargin}{% + \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \fi% +} +\newcommand*\tud@dim@bleedmargin{.2in} +\TUD@key{bleedmargin}{% + \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% + \@tempa#1\@nil% + \fi% + \fi% +} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{twoside}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{twocolumn}{% + \TUD@SpecialOptionAtDocument{tud@cdgeometry@@process}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@x@ta@warnings@off{} +\newcommand*\tud@x@ta@warnings@on{} +\IfFileExists{silence.sty}{% + \RequirePackage{silence}[2012/07/02]% + \WarningFilter[typearea]{typearea}{DIV for}% + \WarningFilter[typearea]{typearea}{Bad type area settings!}% + \WarningFilter[typearea]{typearea}{Maybe no optimal type area settings!}% + \WarningFilter[typearea]{typearea}{Very low DIV value!}% + \BeforePackage{typearea}{\ActivateWarningFilters[typearea]}% + \AfterPackage{typearea}{\DeactivateWarningFilters[typearea]}% + \renewcommand*\tud@x@ta@warnings@off{\ActivateWarningFilters[typearea]} + \renewcommand*\tud@x@ta@warnings@on{\DeactivateWarningFilters[typearea]} +}{} %%% From File: tudscr-pagestyle.dtx \newcommand*\tud@ps@list{} -\newcommand*\tud@iftudps[3]{% +\newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } \newif\if@tud@ddc@internal -\newcommand*\tud@clearpage@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{\clearpage}{}% - \fi\fi% -} -\newcommand*\tud@pagestyle@iftudps{% - \if@tud@ddc@internal\else\if@atdocument% - \tud@iftudps{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi\fi% -} +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -302,10 +402,10 @@ \newif\if@tud@headlogo@option@set \newif\if@tud@footlogo@option@set \newif\if@tud@ddc@auto -\newcommand*\tud@ddc{0} +\newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal% \@tud@ddc@autofalse% @@ -319,12 +419,12 @@ \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@head{0} +\newcommand*\tud@ddc@head@num{0} \TUD@key{ddchead}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -333,12 +433,12 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } -\newcommand*\tud@ddc@foot{0} +\newcommand*\tud@ddc@foot@num{0} \TUD@key{ddcfoot}[true]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% @@ -347,43 +447,32 @@ \@tud@ddc@internalfalse% \fi% \fi% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head% - \let\@tempb\tud@ddc@foot% - \if@tud@ddc@auto% - \ifdefvoid{\@headlogo}{% - \let\@tempa\tud@ddc% - \let\@tempb\z@% - }{% - \let\@tempa\z@% - \let\@tempb\tud@ddc% - }% - \fi% - \tud@ifverlower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% - \fi% - }{}% + \tud@comp@resetpagestyle% } -\newlength\tud@dim@extrabottommargin -\TUD@key{extrabottommargin}{% - \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@geometry@process\fi% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% + \fi% + \global\@tud@footlogo@option@settrue% \fi% } -\cs@lock{tud@head@font}{0} -\cs@lock{tud@head@bar}{0} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} \bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% @@ -394,32 +483,42 @@ {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% - {paperwidth}{8},{wide}{8},{widehead}{8}% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font}{0}% + \cs@set@lock{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font}{1}% + \cs@set@lock{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font}{2}% + \cs@set@lock{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar}{0}% + \cs@set@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% \fi% \fi% } -\TUD@AfterPackage@Set{scrlayer-scrpage} -\newif\if@tud@foot@colored +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -431,13 +530,13 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% \or% true - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% @@ -450,72 +549,54 @@ \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% \or% nocolor - \@tud@foot@coloredfalse% + \bool@set@lock{@tud@foot@colored}{false}% \or% color - \@tud@foot@coloredtrue% + \bool@set@lock{@tud@foot@colored}{true}% \fi% \else% - \TUDoptions{extrabottommargin=#1}% + \ifdimen{#1}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } \newcommand*\tud@ps@store[1]{% - \tud@@ps@store{#1}{odd}{left}{head}% - \tud@@ps@store{#1}{odd}{right}{head}% - \tud@@ps@store{#1}{odd}{middle}{head}% - \tud@@ps@store{#1}{even}{left}{head}% - \tud@@ps@store{#1}{even}{right}{head}% - \tud@@ps@store{#1}{even}{middle}{head}% - \tud@@ps@store{#1}{odd}{left}{foot}% - \tud@@ps@store{#1}{odd}{right}{foot}% - \tud@@ps@store{#1}{odd}{middle}{foot}% - \tud@@ps@store{#1}{even}{left}{foot}% - \tud@@ps@store{#1}{even}{right}{foot}% - \tud@@ps@store{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@store[4]{% + \tud@ps@@store{#1}{odd}{left}{head}% + \tud@ps@@store{#1}{odd}{right}{head}% + \tud@ps@@store{#1}{odd}{middle}{head}% + \tud@ps@@store{#1}{even}{left}{head}% + \tud@ps@@store{#1}{even}{right}{head}% + \tud@ps@@store{#1}{even}{middle}{head}% + \tud@ps@@store{#1}{odd}{left}{foot}% + \tud@ps@@store{#1}{odd}{right}{foot}% + \tud@ps@@store{#1}{odd}{middle}{foot}% + \tud@ps@@store{#1}{even}{left}{foot}% + \tud@ps@@store{#1}{even}{right}{foot}% + \tud@ps@@store{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@store[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% }% } \newcommand*\tud@ps@restore[1]{% - \tud@@ps@restore{#1}{odd}{left}{head}% - \tud@@ps@restore{#1}{odd}{right}{head}% - \tud@@ps@restore{#1}{odd}{middle}{head}% - \tud@@ps@restore{#1}{even}{left}{head}% - \tud@@ps@restore{#1}{even}{right}{head}% - \tud@@ps@restore{#1}{even}{middle}{head}% - \tud@@ps@restore{#1}{odd}{left}{foot}% - \tud@@ps@restore{#1}{odd}{right}{foot}% - \tud@@ps@restore{#1}{odd}{middle}{foot}% - \tud@@ps@restore{#1}{even}{left}{foot}% - \tud@@ps@restore{#1}{even}{right}{foot}% - \tud@@ps@restore{#1}{even}{middle}{foot}% -} -\newcommand*\tud@@ps@restore[4]{% + \tud@ps@@restore{#1}{odd}{left}{head}% + \tud@ps@@restore{#1}{odd}{right}{head}% + \tud@ps@@restore{#1}{odd}{middle}{head}% + \tud@ps@@restore{#1}{even}{left}{head}% + \tud@ps@@restore{#1}{even}{right}{head}% + \tud@ps@@restore{#1}{even}{middle}{head}% + \tud@ps@@restore{#1}{odd}{left}{foot}% + \tud@ps@@restore{#1}{odd}{right}{foot}% + \tud@ps@@restore{#1}{odd}{middle}{foot}% + \tud@ps@@restore{#1}{even}{left}{foot}% + \tud@ps@@restore{#1}{even}{right}{foot}% + \tud@ps@@restore{#1}{even}{middle}{foot}% +} +\newcommand*\tud@ps@@restore[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% }{}% } -\newcommand*\tud@geometry{0} -\TUD@key@lock{cdgeometry}[true]{% - \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% - \TUD@numkey@bool,% - {typearea}{0},% - {cd}{1},{tud}{1},{asymmetric}{1},% - {symmetric}{2},{centred}{2},{centered}{2},% - {normal}{2},{standard}{2},{std}{2},% - {twoside}{3},{balanced}{3}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\recalctypearea\fi% - \fi% -} %%% From File: tudscr-layout.dtx -\cs@lock{tud@layout@cover}{0} -\cs@lock{tud@layout@title}{0} -\cs@lock{tud@layout@part}{0} -\cs@lock{tud@layout@chapter}{0} \newcommand*\tud@layout@switch{} \edef\tud@layout@switch{% \TUD@numkey@bool,% @@ -529,60 +610,71 @@ {color}{5},{colour}{5},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } -\newcommand*\tud@cd{0} +\cs@lock{tud@layout@cover@num}{0} +\cs@lock{tud@layout@title@num}{0} +\cs@lock{tud@layout@part@num}{0} +\cs@lock{tud@layout@chapter@num}{0} +\cs@lock{tud@layout@section@num}{0} +\newcommand*\tud@cd@num{0} \TUD@key{cd}[true]{% - \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% + \TUD@set@numkey{cd}{tud@cd@num}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% false - \cs@std@lock{tud@layout@cover}{0}% - \cs@std@lock{tud@layout@title}{0}% - \cs@std@lock{tud@layout@part}{0}% - \cs@std@lock{tud@layout@chapter}{0}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@layout@cover@num}{0}% + \cs@std@lock{tud@layout@title@num}{0}% + \cs@std@lock{tud@layout@part@num}{0}% + \cs@std@lock{tud@layout@chapter@num}{0}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{0}% \or% true - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{1}% - \cs@std@lock{tud@layout@part}{1}% - \cs@std@lock{tud@layout@chapter}{1}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{1}% + \cs@std@lock{tud@layout@part@num}{1}% + \cs@std@lock{tud@layout@chapter@num}{1}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{1}% \or% litecolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{2}% - \cs@std@lock{tud@layout@part}{2}% - \cs@std@lock{tud@layout@chapter}{2}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{2}% + \cs@std@lock{tud@layout@part@num}{2}% + \cs@std@lock{tud@layout@chapter@num}{2}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% barcolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{3}% - \cs@std@lock{tud@layout@part}{3}% - \cs@std@lock{tud@layout@chapter}{3}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{3}% + \cs@std@lock{tud@layout@part@num}{3}% + \cs@std@lock{tud@layout@chapter@num}{3}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% bicolor - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{4}% - \cs@std@lock{tud@layout@part}{4}% - \cs@std@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{4}% + \cs@std@lock{tud@layout@part@num}{4}% + \cs@std@lock{tud@layout@chapter@num}{4}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% + \cs@std@lock{tud@layout@section@num}{2}% \or% color - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{5}% - \cs@std@lock{tud@layout@part}{5}% - \cs@std@lock{tud@layout@chapter}{5}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{5}% + \cs@std@lock{tud@layout@part@num}{5}% + \cs@std@lock{tud@layout@chapter@num}{5}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \cs@std@lock{tud@layout@section@num}{2}% \or% full - \cs@std@lock{tud@layout@cover}{1}% - \cs@std@lock{tud@layout@title}{6}% - \cs@std@lock{tud@layout@part}{6}% - \cs@std@lock{tud@layout@chapter}{6}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@std@lock{tud@layout@cover@num}{1}% + \cs@std@lock{tud@layout@title@num}{6}% + \cs@std@lock{tud@layout@part@num}{6}% + \cs@std@lock{tud@layout@chapter@num}{6}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \cs@std@lock{tud@layout@section@num}{2}% \fi% - \if@atdocument% - \tud@layout@process% - \else% - \ifcase\tud@cd\relax% false - \TUD@std@numkey@lock{cdgeometry}{false}% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \if@atdocument\else% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@cdgeometry@num}{0}% \else% !false - \TUD@std@numkey@lock{cdgeometry}{true}% + \cs@std@lock{tud@cdgeometry@num}{2}% \fi% \fi% \fi% @@ -591,98 +683,111 @@ \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@cover}{0}% + \cs@set@lock{tud@layout@cover@num}{0}% \or% true - \cs@set@lock{tud@layout@cover}{1}% + \cs@set@lock{tud@layout@cover@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@cover}{2}% + \cs@set@lock{tud@layout@cover@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@cover}{3}% + \cs@set@lock{tud@layout@cover@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@cover}{4}% + \cs@set@lock{tud@layout@cover@num}{4}% \or% color - \cs@set@lock{tud@layout@cover}{5}% + \cs@set@lock{tud@layout@cover@num}{5}% \or% full - \cs@set@lock{tud@layout@cover}{6}% + \cs@set@lock{tud@layout@cover@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@title}{0}% + \cs@set@lock{tud@layout@title@num}{0}% \or% true - \cs@set@lock{tud@layout@title}{1}% + \cs@set@lock{tud@layout@title@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@title}{2}% + \cs@set@lock{tud@layout@title@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@title}{3}% + \cs@set@lock{tud@layout@title@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@title}{4}% + \cs@set@lock{tud@layout@title@num}{4}% \or% color - \cs@set@lock{tud@layout@title}{5}% + \cs@set@lock{tud@layout@title@num}{5}% \or% full - \cs@set@lock{tud@layout@title}{6}% + \cs@set@lock{tud@layout@title@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@part}{0}% + \cs@set@lock{tud@layout@part@num}{0}% \or% true - \cs@set@lock{tud@layout@part}{1}% + \cs@set@lock{tud@layout@part@num}{1}% \or% litecolor - \cs@set@lock{tud@layout@part}{2}% + \cs@set@lock{tud@layout@part@num}{2}% \or% barcolor - \cs@set@lock{tud@layout@part}{3}% + \cs@set@lock{tud@layout@part@num}{3}% \or% bicolor - \cs@set@lock{tud@layout@part}{4}% + \cs@set@lock{tud@layout@part@num}{4}% \or% color - \cs@set@lock{tud@layout@part}{5}% + \cs@set@lock{tud@layout@part@num}{5}% \or% full - \cs@set@lock{tud@layout@part}{6}% + \cs@set@lock{tud@layout@part@num}{6}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \TUD@key{cdchapter}[true]{% \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@layout@chapter}{0}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{0}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% true - \cs@set@lock{tud@layout@chapter}{1}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{1}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% litecolor - \cs@set@lock{tud@layout@chapter}{2}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{2}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% barcolor - \cs@set@lock{tud@layout@chapter}{3}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{3}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% bicolor - \cs@set@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{false}% + \cs@set@lock{tud@layout@chapter@num}{4}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{false}% \or% color - \cs@set@lock{tud@layout@chapter}{5}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@set@lock{tud@layout@chapter@num}{5}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% \or% full - \cs@set@lock{tud@layout@chapter}{6}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \cs@set@lock{tud@layout@chapter@num}{6}% + \TUD@std@ifkey@lock{chapterpage}{@tud@chapterpage}{true}% + \fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% + \fi% +} +\TUD@key{cdsection}[true]{% + \TUD@set@numkey{cdsection}{@tempa}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \cs@set@lock{tud@layout@section@num}{0}% + \or% true + \cs@set@lock{tud@layout@section@num}{1}% + \else% *color + \cs@set@lock{tud@layout@section@num}{2}% \fi% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\tud@layout@process\fi% + \TUD@SpecialOptionAtDocument{tud@layout@process}% \fi% } \newif\if@tud@chapterpage @@ -694,25 +799,25 @@ \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \def\tud@cleardoublepage{\cleardoubleoddpage}% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}% \else% - \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% \fi% \else% \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{% \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{% \ifstr{#1}{current}{% - \def\tud@cleardoublepage{\cleardoubleoddstandardpage}% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \FamilyKeyStateProcessed% }{% \AfterPreamble{% - \ifcsdef{ps@#1}{% - \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% - }{% - \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{% + \ifcsundef{ps@#1}{% + \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% `cleardoublespecialpage', but it was never defined.% }% + }{% + \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }% }% \FamilyKeyStateProcessed% @@ -750,37 +855,42 @@ \TUD@ifkey{clearcolor}{@tud@clearcolor} \TUD@ifkey{clearcolour}{@tud@clearcolor} \newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{#2\nobreak}% } \newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}% + \csdef{tud@font@koma@#1}{\relax}% +} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\addtokomafont{#1}{\csuse{tud@font@koma@#1}}}{}% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% !false - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \fi% - \ifcase\tud@layout@chapter\relax\else% !false - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{open}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\DefineFamilyKey{KOMA}{chapterprefix}{% + \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% + \FamilyKeyStateProcessed% +} +\newcommand*\tud@pagecolor{}% +\newcommand*\tud@dim@pageheadingsvskip{0pt} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +} +\newcommand*\tud@dim@headingsvskip{0pt} +\TUD@key{headingsvskip}{% + \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% +} +%%% From File: tudscr-title.dtx +\newif\if@tud@subjectthesis +\TUD@key@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% @@ -800,8 +910,8 @@ {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } -\newcommand*\tud@abstract@level{0} -\cs@lock{tud@abstract@toc}{0} +\newcommand*\tud@abstract@level@num{0} +\cs@lock{tud@abstract@toc@num}{0} \newif\if@tud@abstract@multi \@tud@abstract@multitrue \newif\if@tud@abstract@fil @@ -812,17 +922,17 @@ \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@abstract@level{0}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{0}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% true - \def\tud@abstract@level{1}% - \cs@std@lock{tud@abstract@toc}{0}% + \renewcommand*\tud@abstract@level@num{1}% + \cs@std@lock{tud@abstract@toc@num}{0}% \or% section - \def\tud@abstract@level{2}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{2}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% chapter - \def\tud@abstract@level{3}% - \cs@std@lock{tud@abstract@toc}{1}% + \renewcommand*\tud@abstract@level@num{3}% + \cs@std@lock{tud@abstract@toc@num}{1}% \or% single \@tud@abstract@multifalse% \or% multiple @@ -836,35 +946,39 @@ \or% nomarkboth \@tud@abstract@markbothfalse% \or% nottotoc - \cs@set@lock{tud@abstract@toc}{0}% + \cs@set@lock{tud@abstract@toc@num}{0}% \or% totoc - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \else% - \cs@set@lock{tud@abstract@toc}{3}% + \cs@set@lock{tud@abstract@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@abstract@toc<\thr@@\relax% - \cs@set@lock{tud@abstract@toc}{2}% + \ifnum\tud@abstract@toc@num<\thr@@\relax% + \cs@set@lock{tud@abstract@toc@num}{2}% \else% - \cs@set@lock{tud@abstract@toc}{4}% + \cs@set@lock{tud@abstract@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@abstract@toc=\z@\relax% - \cs@set@lock{tud@abstract@toc}{1}% + \ifnum\tud@abstract@toc@num=\z@\relax% + \cs@set@lock{tud@abstract@toc@num}{1}% \fi% - \ifnum\tud@abstract@toc<\thr@@\relax% + \ifnum\tud@abstract@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@abstract@toc}{% - \the\numexpr\tud@abstract@toc+2\relax% + \noexpand\cs@set@lock{tud@abstract@toc@num}{% + \the\numexpr\tud@abstract@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -\newcommand*\tud@declaration@level{1} -\cs@lock{tud@declaration@toc}{0} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{abstract}[true]{% + \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% +} +\newcommand*\tud@declaration@level@num{1} +\cs@lock{tud@declaration@toc@num}{0} \newif\if@tud@declaration@multi \@tud@declaration@multitrue \newif\if@tud@declaration@fil @@ -875,17 +989,17 @@ \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \def\tud@declaration@level{0}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{0}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% true - \def\tud@declaration@level{1}% - \cs@std@lock{tud@declaration@toc}{0}% + \renewcommand*\tud@declaration@level@num{1}% + \cs@std@lock{tud@declaration@toc@num}{0}% \or% section - \def\tud@declaration@level{2}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{2}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% chapter - \def\tud@declaration@level{3}% - \cs@std@lock{tud@declaration@toc}{1}% + \renewcommand*\tud@declaration@level@num{3}% + \cs@std@lock{tud@declaration@toc@num}{1}% \or% single \@tud@declaration@multifalse% \or% multiple @@ -899,55 +1013,74 @@ \or% nomarkboth \@tud@declaration@markbothfalse% \or% nottotoc - \cs@set@lock{tud@declaration@toc}{0}% + \cs@set@lock{tud@declaration@toc@num}{0}% \or% totoc - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \else% - \cs@set@lock{tud@declaration@toc}{3}% + \cs@set@lock{tud@declaration@toc@num}{3}% \fi% \or% totocleveldown - \ifnum\tud@declaration@toc<\thr@@\relax% - \cs@set@lock{tud@declaration@toc}{2}% + \ifnum\tud@declaration@toc@num<\thr@@\relax% + \cs@set@lock{tud@declaration@toc@num}{2}% \else% - \cs@set@lock{tud@declaration@toc}{4}% + \cs@set@lock{tud@declaration@toc@num}{4}% \fi% \or% totocmutliple - \ifnum\tud@declaration@toc=\z@\relax% - \cs@set@lock{tud@declaration@toc}{1}% + \ifnum\tud@declaration@toc@num=\z@\relax% + \cs@set@lock{tud@declaration@toc@num}{1}% \fi% - \ifnum\tud@declaration@toc<\thr@@\relax% + \ifnum\tud@declaration@toc@num<\thr@@\relax% \edef\@tempa{% - \noexpand\cs@set@lock{tud@declaration@toc}{% - \the\numexpr\tud@declaration@toc+2\relax% + \noexpand\cs@set@lock{tud@declaration@toc@num}{% + \the\numexpr\tud@declaration@toc@num+2\relax% }% }\@tempa% \fi% \fi% \fi% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis -\TUD@key@lock{subjectthesis}[true]{% - \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% -} %%% From File: tudscr-comp.dtx -\newcommand*\TUD@deprecated@key[2]{% - \ClassWarning{\TUDClassName}% +\newcommand*\TUD@key@deprecated[2]{% + \ClassWarning{\TUD@Class@Name}% {% - The option key `#1' is deprecated.\MessageBreak% + The option key `#1' is deprecated\MessageBreak% It's recommended to use `#2'\MessageBreak% instead% }% \TUDoptions{#2}% } +\TUD@key{fontspec}[true]{% + \ClassWarning{\TUD@Class@Name}% + {% + The option key `fontspec' is deprecated\MessageBreak% + You should load the package `fontspec' manually% + }% + \TUD@set@ifkey{fontspec}{@tud@x@fontspec@enabled}{#1}% +} +\AtEndOfClass% +{% + \TUD@key{fontspec}[]% + {% + \ClassError{\TUD@Class@Name}% + {Option `fontspec' too late}{% + Option `fontspec' can only be set while loading the\MessageBreak% + class `\TUD@Class@Name' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% + \if@tud@x@fontspec@enabled% + \RequirePackage{fontspec}[2014/06/21]% + \fi% +} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% + \TUD@key@deprecated{cdfonts=#1}{cdfont=false}% \fi% \fi% } @@ -955,9 +1088,9 @@ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=true}% \else% - \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% + \TUD@key@deprecated{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -965,9 +1098,9 @@ \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{heavyfont}{cdfont=heavy}% + \TUD@key@deprecated{heavyfont}{cdfont=heavy}% \else% - \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% + \TUD@key@deprecated{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -975,9 +1108,9 @@ \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{din}{cdfont=din}% + \TUD@key@deprecated{din}{cdfont=din}% \else% - \TUD@deprecated@key{din=#1}{cdfont=nodin}% + \TUD@key@deprecated{din=#1}{cdfont=nodin}% \fi% \fi% } @@ -985,9 +1118,9 @@ \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{nodin}{cdfont=nodin}% + \TUD@key@deprecated{nodin}{cdfont=nodin}% \else% - \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \TUD@key@deprecated{nodin=#1}{cdfont=din}% \fi% \fi% } @@ -995,9 +1128,9 @@ \TUD@set@ifkey{noDIN}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \TUD@key@deprecated{noDIN}{cdfont=nodin}% \else% - \TUD@deprecated@key{noDIN=#1}{cdfont=din}% + \TUD@key@deprecated{noDIN=#1}{cdfont=din}% \fi% \fi% } @@ -1005,9 +1138,9 @@ \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{sansmath}{cdmath=true}% + \TUD@key@deprecated{sansmath}{cdmath=true}% \else% - \TUD@deprecated@key{sansmath=#1}{cdmath=false}% + \TUD@key@deprecated{sansmath=#1}{cdmath=false}% \fi% \fi% } @@ -1015,28 +1148,28 @@ \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{serifmath}{cdmath=false}% + \TUD@key@deprecated{serifmath}{cdmath=false}% \else% - \TUD@deprecated@key{serifmath=#1}{cdmath=true}% + \TUD@key@deprecated{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} +\TUD@key{geometry}[true]{\TUD@key@deprecated{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2}% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \TUD@key@deprecated{barfont=#1}{cdhead=false}% \or% true - \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \TUD@key@deprecated{barfont=#1}{cdhead=true}% \or% heavy - \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% + \TUD@key@deprecated{barfont=#1}{cdhead=heavy}% \fi% \fi% } @@ -1044,9 +1177,9 @@ \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{widehead}{cdhead=paperwidth}% + \TUD@key@deprecated{widehead}{cdhead=paperwidth}% \else% - \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% + \TUD@key@deprecated{widehead=#1}{cdhead=textwidth}% \fi% \fi% } @@ -1054,9 +1187,9 @@ \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tempswa% - \TUD@deprecated@key{tudfoot}{cdfoot=true}% + \TUD@key@deprecated{tudfoot}{cdfoot=true}% \else% - \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% + \TUD@key@deprecated{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -1075,84 +1208,172 @@ }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \TUD@deprecated@key{color=#1}{cd=true}% + \TUD@key@deprecated{color=#1}{cd=true}% \or% true - \TUD@deprecated@key{color=#1}{cd=color}% + \TUD@key@deprecated{color=#1}{cd=color}% \or% litecolor - \TUD@deprecated@key{color=#1}{cd=pale}% + \TUD@key@deprecated{color=#1}{cd=pale}% \or% bicolor - \TUD@deprecated@key{color=#1}{cd=bicolor}% + \TUD@key@deprecated{color=#1}{cd=bicolor}% \or% full - \TUD@deprecated@key{color=#1}{cd=fullcolor}% + \TUD@key@deprecated{color=#1}{cd=fullcolor}% \fi% \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} \newcommand*\tud@v@comp{\tud@v@last} \TUD@key{tudscrver}[last]{% - \ifcsvoid{tud@v@#1}{% - \def\tud@v@comp{0}% - \ClassWarningNoLine{\TUDClassName}% + \tud@v@get\@tempa{#1}% + \ifcsundef{tud@v@\@tempa}{% + \ClassWarningNoLine{\TUD@Class@Name}% {% - You have set option `tudscrver' to `#1', but\MessageBreak% + You have set option `tudscrver' to `\@tempa', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% - \FamilyKeyStateProcessed% + \def\tud@v@comp{0}% }{% - \ClassInfoNoLine{\TUDClassName}% + \ClassInfoNoLine{\TUD@Class@Name}% {% - Switching compatibility level to `#1'% + Switching compatibility level to `\@tempa'% }% - \edef\tud@v@comp{\@nameuse{tud@v@#1}}% - \FamilyKeyStateProcessed% + \edef\tud@v@comp{\csuse{tud@v@\@tempa}}% }% + \FamilyKeyStateProcessed% } \AtEndOfClass% {% \TUD@key{tudscrver}[]{% - \ClassError{\TUDClassName}% + \ClassError{\TUD@Class@Name}% {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\TUDClassName' + class `\TUD@Class@Name' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.17}{% - \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\TUDClassName}{% + \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% + \ClassError{\TUD@Class@Name}{% KOMA-Script compatibility level too low% }{% - \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script compatibility option `version=v3.12'.% + \TUD@Version\space must be used at least with\MessageBreak% + KOMA-Script compatibility option `version=3.12'.% }% \fi% }{% - \ClassError{\TUDClassName}{% - KOMA-Script v3.17 is required% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% - at least. You're using \KOMAScriptVersion% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA. You're using \KOMAScriptVersion% }% }% } -\@namedef{tud@v@first}{0} -\@namedef{tud@v@2.02}{0} -\@namedef{tud@v@v2.02}{0} -\@namedef{tud@v@2.03}{1} -\@namedef{tud@v@v2.03}{1} -\@namedef{tud@v@2.04}{2} -\@namedef{tud@v@v2.04}{2} -\@namedef{tud@v@last}{2} -\newcommand*\tud@ifverlower[1]{% - \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% - \expandafter\@firstoftwo% +\csdef{tud@v@first}{0} +\csdef{tud@v@2.00}{0} +\csdef{tud@v@2.01}{0} +\csdef{tud@v@2.01a}{0} +\csdef{tud@v@2.01b}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.02}{0} +\csdef{tud@v@2.03}{1} +\csdef{tud@v@2.03a}{1} +\csdef{tud@v@2.04}{2} +\csdef{tud@v@2.04a}{2} +\csdef{tud@v@2.04b}{2} +\csdef{tud@v@2.04c}{2} +\csdef{tud@v@2.04d}{2} +\csdef{tud@v@2.04e}{2} +\csdef{tud@v@2.05}{3} +\csdef{tud@v@last}{3} +\newcommand*\tud@v@get[2]{% + \begingroup% + \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempb v##1\@nil{\def\@tempc{##1}}% + \@tempa #2\@nil% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\def#1}{\@tempc}% + }% + \tud@reserved% +} +\newcommand*\tud@if@v@lower[1]{% + \begingroup% + \tud@v@get\@tempa{#1}% + \ifcsdef{tud@v@\@tempa}{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% + }{% + \def\tud@reserved{% + \ClassWarningNoLine{\TUD@Class@Name}{%PackageWarning! + Erroneous usage of `\string\tud@if@v@lower'.\MessageBreak% + There's no defined macro `\string\tud@v@\@tempa'% + }% + \endgroup\@firstoftwo% + }% + }% + \tud@reserved% +} +%%% From File: tudscr-misc.dtx +\newif\if@tud@x@scr@paper@set +\TUD@key{paper}{% + \tud@lowerstring{\@tempa}{#1}% + \def\@tempb##1##2\@nil{% + \@tempswafalse% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \ifnumber{##2}{}{\@tempswafalse}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \edef\@tempc{##1}% + \ifx\@tempc\@empty\@tempswafalse\else% + \edef\@tempc{##2}% + \ifx\@tempc\@empty\@tempswafalse\else\@tempswatrue\fi% + \fi% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \@tud@x@scr@paper@setfalse% + \if@tempswa% + \ifstr{\@tempa}{a4}{}{\@tud@x@scr@paper@settrue}% + \FamilyKeyStateProcessed% \else% - \expandafter\@secondoftwo% + \FamilyKeyStateUnknownValue% \fi% } -%%% From File: tudscr-misc.dtx +\newif\if@tud@fontsize@set +\TUD@key{fontsize}{% + \@tud@fontsize@settrue% + \PassOptionsToClass{fontsize=#1}{\TUD@Class@KOMA}% + \FamilyKeyStateProcessed% +} +\AtEndOfClass{% + \RelaxFamilyKey{TUD}{paper}% + \RelaxFamilyKey{TUD}{fontsize}% + \ifboolexpr{bool {@tud@x@scr@paper@set} or bool {@landscape}}{% + \if@tud@fontsize@set\else% + \ClassWarningNoLine{\TUD@Class@Name}{% + You've set a paper size, which is different from\MessageBreak% + default (paper=a4, paper=portrait). Therefore you\MessageBreak% + should additionally specify an explicit font size.\MessageBreak% + See the manual for further information.% + }% + \fi% + }{}% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} \newif\if@tud@symbolheadings \TUD@key{footnotes}{% \TUD@set@numkey{footnotes}{@tempa}{% @@ -1167,182 +1388,319 @@ \fi% \fi% } -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +\AtEndOfClass{% + \newcounter{symbolheadings}[chapter] +} %%% From File: tudscr-misc.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} -\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} +\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\newcommand*\tud@x@scr@paper{% + \expandafter\tud@x@scr@@paper\CurrentOption paper\tud@x@scr@@paper% +} +\newcommand*\tud@x@scr@@paper{} +\def\tud@x@scr@@paper #1#2paper#3\tud@x@scr@@paper{% + \@tempswafalse% + \ifstr{#3}{paper}{\ifnumber{#2}{% + \ifstr{#1}{a}{\@tempswatrue}{% + \ifstr{#1}{b}{\@tempswatrue}{% + \ifstr{#1}{c}{\@tempswatrue}{% + \ifstr{#1}{d}{\@tempswatrue}{% + }}}}% + }{}}{}% + \if@tempswa\TUDExecuteOptions{#3=#1#2}\fi% + \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% +} +\DeclareOption*{\tud@x@scr@paper} +\TUDExecuteOptions{% + cd=true,relspacing=true,tudbookmarks=true% +} \TUDProcessOptions\relax -\LoadClass{\TUDClassName@KOMA}[2015/04/23] +\LoadClass{\TUD@Class@KOMA}[2015/04/23] %%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\TUDClassName}{% - The package `graphics' was superseded by `graphicx',\MessageBreak% - which is automatically loaded% + \ClassWarningNoLine{\TUD@Class@Name}{% + Package `graphics' was superseded by `graphicx',\MessageBreak% + which now will be loaded automatically% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% - \RequirePackage{tudscrcolor}[\TUDVersion]% -} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\cs@lock{tud@multicols}{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>\@ne\relax% - \ClassWarning{\TUDClassName}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \cs@set@lock{tud@multicols}{1}% - \fi% - }% + \RequirePackage{tudscrcolor}[\TUD@Version]% +} +\cs@lock{tud@x@multicol@num}{1} +\newcommand*\tud@x@multicol@check{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \ClassWarning{\TUD@Class@Name}{% + The option `columns=\tud@x@multicol@num' is only\MessageBreak% + supported, when package `multicol' is loaded% + }% + \cs@set@lock{tud@x@multicol@num}{1}% + \fi% } +\AfterPackage{multicol}{\renewcommand*\tud@x@multicol@check{\relax}} %%% From File: tudscr-fonts.dtx -\newcommand*\tud@font@greek@loop[1]{% - \@for\@tempa:={% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% -} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath +\newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \ClassInfoNoLine{\TUDClassName}% - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + \fi% + \fi% + }% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% }% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} - \ClassWarningNoLine{\TUDClassName}% - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } -\newcommand*\tud@font@init{% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% - \undef\tud@font@init@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% +\RequirePackage{trimspaces}[2009/09/17] +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' fonts not found}% + \fi% \fi% - }% - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% + \fi% + \ifcase\tud@cdfont@num\relax% false + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{false}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@head@font@num}{0}% + \else% !false + \cs@std@lock{tud@head@font@num}{1}% + \fi% + \else% true/heavy + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \if@tud@x@mweights@enabled% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% + \bool@std@lock{@tud@cdmath}{true}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% + \if@tud@univers% + \if@tud@x@fontspec@enabled% + \setsansfont{Univers}[% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% + ]% + \setmonofont{LMMono10-Regular}[% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% + ]% \else% - \newrobustcmd*\dinbn{\@dinbn}% + \renewcommand*\sfdefault{\tud@univers}% + \renewcommand*\ttdefault{\tud@univers t}% + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold + \renewcommand*\bfdefault{m}% + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold + \renewcommand*\bfdefault{b}% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% \fi% - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error - }% - \ExplSyntaxOff -\fi% -\newcommand*\tud@font@init@nfss{% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% + \fi% + \if@tud@x@mweights@enabled% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% + \tud@font@skip@set% + \normalfont\selectfont% + \tud@layout@process% + \global\@tud@head@font@settrue% +} +\newcommand*\tud@font@skip@set{% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% +} +\newcommand*\tud@font@skip@@set{% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% +} +\newcommand*\tud@font@init{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% @@ -1353,39 +1711,87 @@ \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% \fi% \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% + \else% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% + \fi% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \newrobustcmd*\dinbn{\sectfont}% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% + \undef\tud@font@init% +} +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% +} +\newcommand*\tud@font@wrn[1]{% + \ClassWarning{\TUD@Class@Name}% + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } \newcommand*\cdfont[1]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% - \@cdfont{#1}% + \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% } -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% +\newcommand*\tud@cdfont@get[1]{% + \tud@cdfont@trim\@tempa{#1}% \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% @@ -1401,33 +1807,34 @@ \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + \ClassWarning{\TUD@Class@Name}% + {The font `#1' is unknown}% }}}}}}}}}}}}}}% } -\newcommand*\tud@trimfontname[2]{% +\newcommand*\tud@cdfont@trim[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% \let#1\@tempa% } -\newcommand*\tud@@trimfontname[2]{% +\newcommand*\tud@cdfont@@trim[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% @@ -1435,20 +1842,42 @@ \@expandtwoargs\in@{#1}{\@tempa}% }% } -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} \newcommand*\tud@font@math@init{% - \if@tud@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% - \ClassWarningNoLine{\TUDClassName}% - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% }% - }% - \fi\fi\fi% - \if@tud@univers% + }{}% + \fi\fi% + \if@tud@universmath% \DeclareMathVersion{univers}% \DeclareMathVersion{universbold}% \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1459,8 +1888,10 @@ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% @@ -1469,6 +1900,8 @@ \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% \@ifpackageloaded{amsfonts}{% \DeclareFontFamily{U}{\tud@univers a}{}% \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% @@ -1482,15 +1915,19 @@ \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% }{}% \fi% - \if@tud@dinbold% + \if@tud@dinboldmath% \DeclareMathVersion{dinbold}% \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% \fi% \@ifpackageloaded{unicode-math}{% \let\tud@font@math@set\relax% @@ -1509,192 +1946,41 @@ \tud@font@greek@loop\tud@font@greek@init% \tud@font@math@set% }% - \sbox\z@{\dinbn$ $}% + \sbox\z@{\tud@dinbn$ $}% \undef\tud@font@math@init% } -\AtEndPreamble% -{% - \tud@font@check% - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% - \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% - \tud@font@init% - \tud@font@set[nomath]% - \AtBeginDocument{\tud@font@math@init}% -} \newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% + \ifcsundef{up#1}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% - }% - \ifcsdef{var#1}{}{% + }{}% + \ifcsundef{var#1}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% - }% + }{}% } -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% - \fi% - \ifcase\tud@cdfont\relax% false - \tud@cmd@restore{rmdefault}% - \tud@cmd@restore{sfdefault}% - \tud@cmd@restore{ttdefault}% - \tud@cmd@restore{bfdefault}% - \tud@cmd@restore{mddefault}% - \tud@cmd@restore{itdefault}% - \tud@cmd@restore{familydefault}% - \tud@cmd@restore{seriesdefault}% - \tud@cmd@restore{shapedefault}% - \if@tud@mweights% - \tud@cmd@restore{bfseries@rm}% - \tud@cmd@restore{bfseries@sf}% - \tud@cmd@restore{bfseries@tt}% - \tud@cmd@restore{mdseries@rm}% - \tud@cmd@restore{mdseries@sf}% - \tud@cmd@restore{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{false}% - \cs@std@lock{tud@head@font}{0}% - \else% true/heavy - \tud@cmd@store{rmdefault}% - \tud@cmd@store{sfdefault}% - \tud@cmd@store{ttdefault}% - \tud@cmd@store{bfdefault}% - \tud@cmd@store{mddefault}% - \tud@cmd@store{itdefault}% - \tud@cmd@store{familydefault}% - \tud@cmd@store{seriesdefault}% - \tud@cmd@store{shapedefault}% - \if@tud@mweights% - \tud@cmd@store{bfseries@rm}% - \tud@cmd@store{bfseries@sf}% - \tud@cmd@store{bfseries@tt}% - \tud@cmd@store{mdseries@rm}% - \tud@cmd@store{mdseries@sf}% - \tud@cmd@store{mdseries@tt}% - \fi% - \bool@std@lock{@tud@cdmath}{true}% - \cs@std@lock{tud@head@font}{\tud@cdfont}% - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% - \else% heavy - \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% - ]% - \fi% - \else% - \if@tud@univers% - \renewcommand*\sfdefault{\tud@univers}% - \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true - \renewcommand*\bfdefault{m}% - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy - \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% +\newcommand*\tud@font@math@set{% + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% + \ClassWarning{\TUD@Class@Name}% + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% + \ClassWarning{\TUD@Class@Name}% + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% - \fi% - \if@tud@mweights% - \edef\rmdef@ult{\rmdefault}% - \edef\sfdef@ult{\sfdefault}% - \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% \fi% - \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% - \normalfont\selectfont% - \tud@layout@process% -} -\newcommand*\tud@font@skip@set{% - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% -} -\newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% -} -\newcommand*\tud@font@math@set{% - \if@tud@univers% + \if@tud@universmath% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% @@ -1729,70 +2015,37 @@ } \newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} -\newcommand*\tud@head@font@bold{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@set{% - \ifdef{\@raggedtwoe@everyselectfont}{% - \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% - \selectfont% - }{}% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{bx}{n}{\tud@head@font@size}% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% - \@tempswafalse% - \ifcase\tud@head@font\relax% false - \ifnum\tud@cdfont>\z@\relax% true/heavy - \ClassWarning{\TUDClassName}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% - }% - \@tempswatrue% - \fi% - \else% true/heavy - \@tempswatrue% - \fi% - \if@tempswa% true/heavy - \if@tud@fontspec% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversRegular}{m}{n}{\tud@head@font@size}% - \fi% - \else% - \if@tud@univers% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@font@size}% - \fi% - \fi% - \fi% +\AtEndPreamble% +{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% \fi% + \tud@font@check% + \tud@font@set% + \tud@font@init% + \AtBeginDocument{\tud@font@math@init}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% } \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1802,37 +2055,73 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} +\RequirePackage{textcase}[2004/10/07] +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } %%% From File: tudscr-fields.dtx -\RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} +\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}} +\newcommand*\department[2][]{\tud@head@text@field{department}{#2}} +\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}} +\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\tud@head@text@field[2]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \global\@tud@head@text@settrue% +} \newcommand*\@@title{} +\robustify\@title \renewcommand*\title[1]{% \gdef\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% \protected@xdef\@@title{\trim@spaces{#1}}% \endgroup% } +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\newline{\space\ignorespaces}% + \def\\{\space\ignorespaces}% + \def\@tempa##1{\csdef{##1}####1{\noexpand\relax}}% + \let\@tempb\tud@split@author@list% + \robustify\and% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \protected@edef\@@author{#1}% + \tud@replace\@@author{ \relax }{}% + \tud@replace\@@author{\relax }{}% + \tud@replace\@@author{ \relax}{}% + \tud@replace\@@author{\relax}{}% + \tud@replace\@@author{ \and }{\and}% + \tud@replace\@@author{ \and}{\and}% + \tud@replace\@@author{\and }{\and}% + \protected@xdef\@@author{\trim@spaces{\@@author}}% + \endgroup% +} \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\providecommand*\publisher[1]{\publishers{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} \newcommand*\tud@thanks{} -\newcommand*\tud@thesis[2]{% +\newcommand*\tud@thesis@do[2]{% \begingroup% \global\let\tud@thanks\relax% \def\thanks##1{\gdef\tud@thanks{##1}}% @@ -1844,47 +2133,51 @@ \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \global\let\@tempa\@tempa% \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% -} -\newcommand*\tud@@thesis[2]{% + \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \csdef{@#1}{#2}% + }}}}}}}}}}}}}}}% +} +\newcommand*\tud@thesis@@do[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUD@Class@Name}{% + Field `thesis' is overwritten by `subject'% + }% \fi% - \TUD@std@ifkey@lock{subjectthesis}{true}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{true}% }{% - \TUD@std@ifkey@lock{subjectthesis}{false}% + \TUD@std@ifkey@lock{subjectthesis}{@tud@subjectthesis}{false}% }% \ifx\tud@thanks\relax% \gdef\@thesis{#2}% \else% \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% \fi% - \gdef\@@thesis{#2}% + \protected@xdef\@@thesis{\trim@spaces{#2}}% } -\renewcommand*\subject[1]{\tud@thesis{subject}{#1}} +\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} \newcommand*\@graduation{} -\newcommand*\@graduationabbr{} +\newcommand*\@@graduation{} \newcommand*\graduation[2][]{% - \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}% + \ifxblank{#1}{\gdef\@@graduation{}}{\gdef\@@graduation{(#1)}}% \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[2][]{\gdef\@professor{#2}} +\newcommand*\professor[1]{\gdef\@professor{#1}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1897,41 +2190,31 @@ \newcommand*\advisor[1]{\gdef\@advisor{#1}} \newcommand*\@matriculationnumber{} \newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}% + \gdef\@matriculationnumber{#1}\ignorespaces% } \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} -\providecommand*\publisher[1]{\publishers{#1}} -\newlength\tud@signatureskip -\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newlength\tud@len@signatureskip +\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \renewcommand*\tud@split@author[2]{% - \tud@multiple@fields@store{@author}{##1}% - \ignorespaces##1% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{##2}{\hfil}% - }% - \tud@multiple@split{@author}% - \hfil% + \let\and\hfil% + \@@author\hfil% \endgroup% } \newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} \newcommand*\@place{Dresden} \newcommand*\place[1]{\gdef\@place{#1}} -\newcommand*\printdate[1]{#1} -\BeforePackage{isodate}{\undef\printdate} -\newcommand*\tud@printdate[2]{% +\TUD@UnwindPackage{isodate}{\providecommand*\printdate[1]{#1}} +\newcommand*\tud@x@isodate@printdate[2]{% \ifx\today#2\relax% \gdef#1{#2}% \else% @@ -1940,43 +2223,77 @@ {\gdef#1{\printdate{#2}}}% \fi% } -\newcommand*\tud@datecheck{% +\newcommand*\tud@date@check{% \ifdefvoid{\@duedate}{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% Since a thesis is a self-contained work, an end\MessageBreak% date should be specified by the author.\MessageBreak% Nevertheless, today's date is used% }% }{% - \ClassWarning{\TUDClassName}{% - `\string\date' was not given.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + `\string\date' was not given\MessageBreak% It's substituted by the given due date% }% \global\let\@date\@duedate% }% - \global\let\tud@datecheck\relax% -} -\newcommand*\@datemore{} -\renewcommand*\date[2][]{% - \gdef\@datemore{\trim@spaces{#1}}% - \tud@printdate{\@date}{#2}% - \global\let\tud@datecheck\relax% + \global\let\tud@date@check\relax% +} +\renewcommand*\date{% + \kernel@ifstar{% + \TUD@parameter@set{date}{pre=\noexpand\@place{,}}% + \tud@date@set% + }{\tud@date@set}% +} +\newcommand*\tud@date@set[2][]{% + \TUD@parameter@set{date}{#1}% + \tud@x@isodate@printdate{\@date}{#2}% + \global\let\tud@date@check\relax% +} +\newcommand*\tud@date@pre{} +\newcommand*\tud@date@app{} +\TUD@parameter@family{date}{% + \TUD@parameter@def{before}{\def\tud@date@pre{#1}}% + \TUD@parameter@let{pre}{before}% + \TUD@parameter@let{prefix}{before}% + \TUD@parameter@def{after}{\def\tud@date@app{#1}}% + \TUD@parameter@let{app}{after}% + \TUD@parameter@let{suffix}{after}% + \TUD@parameter@def{place}{\def\@place{#1}\def\tud@date@pre{#1,}}% + \TUD@parameter@handler@value{after}% +} +\newcommand*\tud@date@print{% + \ifx\@date\@empty\else% + \ifx\tud@date@pre\@empty\else% + \expandafter\trim@spaces\expandafter{\tud@date@pre}\nobreakspace% + \fi% + \@date% + \ifx\tud@date@app\@empty\else% + \nobreakspace\expandafter\trim@spaces\expandafter{\tud@date@app}% + \fi% + \fi% } \newcommand*\@defensedate{} -\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} +\newcommand*\defensedate[1]{\tud@x@isodate@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} -\newcommand*\tud@multiple@@split{}% +\newrobustcmd*\dateofbirth[1]{% + \tud@x@isodate@printdate{\@dateofbirth}{#1}\ignorespaces% +} +\newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + \@latex@warning@no@line% + }{% + \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% - \expandafter\csname tud@split#1\endcsname{##1}{##2}% + \expandafter\csname tud@split#1@do\endcsname{##1}{##2}% }% \begingroup% \let\and\relax% + \def\newline{}% + \def\\{}% \edef\@tempa{\csname#1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% @@ -1990,13 +2307,10 @@ \@tempb% } \newcommand*\tud@multiple@fields@store[2]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{\ifcsdef{@##1}{\tud@cmd@store{@##1}}{}}% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% - \fi% - }% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -2004,45 +2318,68 @@ \endgroup% } \newcommand*\tud@multiple@fields@restore[1]{% - \letcs\@tempa{tud@split#1@list}% + \def\@tempa##1{% + \ifcsdef{@##1}{% + \tud@cmd@restore{@##1}% + \global\csletcs{@##1}{@##1}% + }{}% + }% + \letcs\@tempb{tud@split#1@list}% \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifcsdef{@\@tempb}{% - \tud@cmd@restore{@\@tempb}% - \global\csletcs{@\@tempb}{@\@tempb}% - }{}% - \fi% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% +} +\newcommand*\tud@multiple@fields@preset[3]{% + \def\@tempa##1{% + \edef\@tempc{\csuse{##1}}% + \ifstr{#2}{*}{% + \csdef{@##1}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% + \ifin@% + \ifcsvoid{@##1}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% }% + \letcs\@tempb{tud@split#1@list}% + \let\and\relax% + \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% } -\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@do[2]{} \newcommand*\tud@split@author@list{% - authormore,matriculationyear,enrolmentyear,% + authormore,course,discipline,% + matriculationyear,enrolmentyear,% matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\TUDClassName' only supports the\MessageBreak% + Currently the class `\TUD@Class@Name' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% You can send your definitions to \tudscrmail\space in\MessageBreak% - order to implement support for additional languages. + order to implement support for additional languages.% }% }% } \tud@locale@define{\graduationtext} -\tud@locale@define{\supervisorname} -\tud@locale@define{\supervisorothername} \tud@locale@define{\refereename} \tud@locale@define{\refereeothername} \tud@locale@define{\advisorname} \tud@locale@define{\advisorothername} +\tud@locale@define{\supervisorname} +\tud@locale@define{\supervisorothername} \tud@locale@define{\professorname} \tud@locale@define{\professorothername} \tud@locale@define{\datetext} @@ -2053,62 +2390,87 @@ \tud@locale@define{\matriculationnumbername} \tud@locale@define{\coverpagename} \tud@locale@define{\titlepagename} +\tud@locale@define{\titlename} \tud@locale@define{\confirmationname} \tud@locale@define{\confirmationtext} \tud@locale@define{\blockingname} \tud@locale@define{\blockingtext} +\tud@locale@define{\coursename} +\tud@locale@define{\disciplinename} \tud@locale@define{\listingname} \tud@locale@define{\listlistingname} \tud@locale@define{\dissertationname} \tud@locale@define{\diplomathesisname} \tud@locale@define{\masterthesisname} \tud@locale@define{\bachelorthesisname} +\tud@locale@define{\studentthesisname} \tud@locale@define{\studentresearchname} \tud@locale@define{\projectpapername} \tud@locale@define{\seminarpapername} +\tud@locale@define{\termpapername} \tud@locale@define{\researchname} \tud@locale@define{\logname} \tud@locale@define{\internshipname} \tud@locale@define{\reportname} +\newcommand*\tud@ifin@and[1]{% + \begingroup% + \let\and\relax% + \protected@edef\@tempb{#1}% + \def\@tempa##1\and##2\relax{% + \IfArgIsEmpty{##2}{% + \aftergroup\@secondoftwo% + }{% + \aftergroup\@firstoftwo% + }% + }% + \expandafter\@tempa\@tempb\and\relax% + \endgroup +} \newcommand*\tud@locale@german{% \providecaptionname{% german,ngerman,austrian,naustrian,swissgerman,nswissgerman% }% } \tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}% -\tud@locale@german{\supervisorname}{Betreuer}% -\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - Erstgutachter% - \else% - Gutachter% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Gutachter% + \else% + Erstgutachter% + \fi% + }{Gutachter}% +}% \tud@locale@german{\refereeothername}{Zweitgutachter}% -\tud@locale@german{\advisorname}{Fachreferent}% +\tud@locale@german{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Fachreferenten% + \else% + Erster Fachreferent% + \fi% + }{Fachreferent}% +}% \tud@locale@german{\advisorothername}{}% +\tud@locale@german{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Betreuer% + \else% + Erstbetreuer% + \fi% + }{Betreuer}% +}% +\tud@locale@german{\supervisorothername}{}% \tud@locale@german{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Betreuende Hochschullehrer% - \else% - Betreuender Hochschullehrer% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Betreuende Hochschullehrer% + \else% + Erster betreuender Hochschullehrer% + \fi% + }{Betreuender Hochschullehrer}% +}% \tud@locale@german{\professorothername}{}% \tud@locale@german{\datetext}{Eingereicht am}% \tud@locale@german{\dateofbirthtext}{Geboren am}% @@ -2118,28 +2480,29 @@ \tud@locale@german{\matriculationnumbername}{Matrikelnummer}% \tud@locale@german{\coverpagename}{Umschlagseite}% \tud@locale@german{\titlepagename}{Titelblatt}% +\tud@locale@german{\titlename}{Titel}% \tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}% \tud@locale@german{\confirmationtext}{% Hiermit versichere ich, dass ich die vorliegende \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi - selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es - wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel und - Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} \"ubernommenen - Zitate habe ich als solche kenntlich gemacht. + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. + Es wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. \ifx\@supporter\@empty% - Es waren keine weiteren Personen an der geistigen Herstellung der - vorliegenden Arbeit beteiligt. + Es waren keine weiteren Personen an der geistigen Herstellung + der vorliegenden Arbeit beteiligt. \else% - W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden - Personen unterst\"utzt:% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von + folgenden Personen unterst\"utzt:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Weitere Personen waren an der geistigen Herstellung der - vorliegenden Arbeit nicht beteiligt. + \noindent Weitere Personen waren an der geistigen Herstellung + der vorliegenden Arbeit nicht beteiligt. \fi% Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% -} +}% \tud@locale@german{\blockingname}{Sperrvermerk}% \tud@locale@german{\blockingtext}{% Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi @@ -2151,18 +2514,22 @@ durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen - Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des - Pr\"ufungsausschusses zug\"anglich zu machen.% -} + Universit\"at Dresden, den Gutachtern sowie den Mitgliedern + des Pr\"ufungsausschusses zug\"anglich zu machen.% +}% +\tud@locale@german{\coursename}{Studiengang}% +\tud@locale@german{\disciplinename}{Studienrichtung}% \tud@locale@german{\listingname}{Quelltext}% \tud@locale@german{\listlistingname}{Quelltextverzeichnis}% \tud@locale@german{\dissertationname}{Dissertation}% \tud@locale@german{\diplomathesisname}{Diplomarbeit}% \tud@locale@german{\masterthesisname}{Master-Arbeit}% \tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}% -\tud@locale@german{\studentresearchname}{Studienarbeit}% +\tud@locale@german{\studentthesisname}{Studienarbeit}% +\tud@locale@german{\studentresearchname}{Gro\ss{}er Beleg}% \tud@locale@german{\projectpapername}{Projektarbeit}% \tud@locale@german{\seminarpapername}{Seminararbeit}% +\tud@locale@german{\termpapername}{Hausarbeit}% \tud@locale@german{\researchname}{Forschungsbericht}% \tud@locale@german{\logname}{Protokoll}% \tud@locale@german{\internshipname}{Praktikumsbericht}% @@ -2173,39 +2540,45 @@ }% } \tud@locale@english{\graduationtext}{to achieve the academic degree}% -\tud@locale@english{\supervisorname}{Supervisor}% -\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\refereename}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@referee}% - }% - \endgroup% - \if@tempswa% - First referee% - \else% - Referee% - \fi% -} + \tud@ifin@and{\@referee}{% + \ifx\refereeothername\@empty% + Referees% + \else% + First referee% + \fi% + }{Referee}% +}% \tud@locale@english{\refereeothername}{Second referee}% -\tud@locale@english{\advisorname}{Advisor}% +\tud@locale@english{\advisorname}{% + \tud@ifin@and{\@advisor}{% + \ifx\advisorothername\@empty% + Advisors% + \else% + First advisor% + \fi% + }{Advisor}% +}% \tud@locale@english{\advisorothername}{}% +\tud@locale@english{\supervisorname}{% + \tud@ifin@and{\@supervisor}{% + \ifx\supervisorothername\@empty% + Supervisors% + \else% + First supervisor% + \fi% + }{Supervisor}% +}% +\tud@locale@english{\supervisorothername}{}% \tud@locale@english{\professorname}{% - \begingroup% - \protecting{% - \global\@tempswafalse% - \def\and{\global\@tempswatrue}% - \sbox\z@{\@professor}% - }% - \endgroup% - \if@tempswa% - Supervising professors% - \else% - Supervising professor% - \fi% -} + \tud@ifin@and{\@professor}{% + \ifx\professorothername\@empty% + Supervising professors% + \else% + First supervising professor% + \fi% + }{Supervising professor}% +}% \tud@locale@english{\professorothername}{}% \tud@locale@english{\datetext}{Submitted on}% \tud@locale@english{\dateofbirthtext}{Born on}% @@ -2215,6 +2588,7 @@ \tud@locale@english{\matriculationnumbername}{Matriculation number}% \tud@locale@english{\coverpagename}{Cover page}% \tud@locale@english{\titlepagename}{Title page}% +\tud@locale@english{\titlename}{Title}% \tud@locale@english{\confirmationname}{Statement of authorship}% \tud@locale@english{\confirmationtext}{% I hereby certify that I have authored this @@ -2225,40 +2599,44 @@ indicated in this thesis have been used. I have marked both literal and accordingly adopted quotations as such. \ifx\@supporter\@empty% - They were no additional persons involved in the spiritual - preparation of the present thesis. + There were no additional persons involved in the + intellectual preparation of the present thesis. \else% - During the preparation of this thesis I was only supported - by the following persons:% + During the preparation of this thesis I was only + supported by the following persons:% \begin{quote}\def\and{\newline}\@supporter\end{quote}% - \noindent Additional persons were not involved in the spiritual - preparation of the present thesis. + \noindent Additional persons were not involved in the + intellectual preparation of the present thesis. \fi% I am aware that violations of this declaration may lead to subsequent withdrawal of the degree.% -} +}% \tud@locale@english{\blockingname}{Restriction note}% \tud@locale@english{\blockingtext}{% This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \emph{\@company}\fi. Publications, duplications and - inspections---even in part---are prohibited without explicit + , disclosed by \emph{\@company}\fi. Publications, duplications + and inspections---even in part---are prohibited without explicit permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the members of the examination board.% -} +}% +\tud@locale@english{\coursename}{Course}% +\tud@locale@english{\disciplinename}{Discipline}% \tud@locale@english{\listingname}{Listing}% \tud@locale@english{\listlistingname}{List of Listings}% \tud@locale@english{\dissertationname}{Dissertation}% \tud@locale@english{\diplomathesisname}{Diploma Thesis}% \tud@locale@english{\masterthesisname}{Master Thesis}% \tud@locale@english{\bachelorthesisname}{Bachelor Thesis}% +\tud@locale@english{\studentthesisname}{Student Thesis}% \tud@locale@english{\studentresearchname}{Student Research Project}% \tud@locale@english{\projectpapername}{Project Paper}% \tud@locale@english{\seminarpapername}{Seminar Paper}% +\tud@locale@english{\termpapername}{Term Paper}% \tud@locale@english{\researchname}{Research Report}% \tud@locale@english{\logname}{Log}% \tud@locale@english{\internshipname}{Internship Report}% @@ -2273,210 +2651,1260 @@ \tud@locale@english{\@commaswap}{\,}% \tud@locale@english{\@dotswap}{.}% } -%%% From File: tudscr-pagestyle.dtx -\newlength\tud@dim@widemargin -\newlength\tud@dim@slimmargin -\newlength\tud@dim@both -\newlength\tud@dim@topmargin -\newlength\tud@dim@barheight -\newlength\tud@dim@headsep -\newlength\tud@dim@footsep -\newlength\tud@dim@logox -\newlength\tud@dim@logoy -\newlength\tud@dim@logowidth -\newlength\tud@dim@line -\newlength\tud@dim@heavyline -\newlength\tud@dim@thinline -\newlength\tud@dim@headdiff -\newlength\tud@dim@headingsvskip -\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} -\newcommand*\tud@head@font@size{} -\newcommand*\tud@geometry@set{% - \ifdim\paperheight<148.1mm\relax% - \setlength\tud@dim@widemargin{15mm}% - \setlength\tud@dim@heavyline{0.5pt}% - \setlength\tud@dim@thinline{0.25pt}% - \def\tud@head@font@size{4.5}% - \else\ifdim\paperheight<297.1mm\relax% - \setlength\tud@dim@widemargin{30mm}% - \setlength\tud@dim@heavyline{1pt}% - \setlength\tud@dim@thinline{0.5pt}% - \def\tud@head@font@size{9}% - \else\ifdim\paperheight<420.1mm\relax% - \setlength\tud@dim@widemargin{42.426407mm}% - \setlength\tud@dim@heavyline{1.414214pt}% - \setlength\tud@dim@thinline{0.707107pt}% - \def\tud@head@font@size{12.727922}% - \else\ifdim\paperheight<594.1mm\relax% - \setlength\tud@dim@widemargin{60mm}% - \setlength\tud@dim@heavyline{2pt}% - \setlength\tud@dim@thinline{1pt}% - \def\tud@head@font@size{18}% - \else\ifdim\paperheight<841.1mm\relax% - \setlength\tud@dim@widemargin{84.852814mm}% - \setlength\tud@dim@heavyline{2.828427pt}% - \setlength\tud@dim@thinline{1.414214pt}% - \def\tud@head@font@size{25.455844}% +%%% From File: tudscr-area.dtx +\newlength\tud@len@widemargin +\newlength\tud@len@slimmargin +\newlength\tud@len@both +\newlength\tud@len@topmargin +\newlength\tud@len@barheight +\newlength\tud@len@headsep +\newlength\tud@len@footsep +\newlength\tud@len@logox +\newlength\tud@len@logoy +\newlength\tud@len@logowidth +\newlength\tud@len@line +\newlength\tud@len@heavyline +\newlength\tud@len@thinline +\newlength\tud@len@areaheadvskip +\newlength\tud@len@areadiff +\newlength\tud@len@areavskip +\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\newif\if@tud@cdgeometry@adjust +\newlength\tud@len@layoutheight +\newlength\tud@len@layoutwidth +\newlength\tud@len@layouthoffset +\newlength\tud@len@layoutvoffset +\newcommand*\tud@cdgeometry@set{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% \else% - \setlength\tud@dim@widemargin{120mm}% - \setlength\tud@dim@heavyline{4pt}% - \setlength\tud@dim@thinline{2pt}% - \def\tud@head@font@size{36}% - \fi\fi\fi\fi\fi% - \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}% - \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}% - \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}% - \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}% - \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}% - \setlength\tud@dim@footsep{% - \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% - }% -} -\newcommand*\tud@ifsacrop{% - \ifcsdef{ifsa@crop}{% - \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \setlength\tud@len@layouthoffset{\Gm@layouthoffset}% + \setlength\tud@len@layoutvoffset{\Gm@layoutvoffset}% + \tud@if@v@lower{2.05}{% + \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }{% - \@secondoftwo% + \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \def\@tempa{0}% + \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \def\@tempa{1}% + \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \def\@tempa{2}% + \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \def\@tempa{3}% + \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \def\@tempa{4}% + \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \def\@tempa{5}% + \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \def\@tempa{6}% + \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \def\@tempa{7}% + \else% + \def\@tempa{8}% + \fi\fi\fi\fi\fi\fi\fi\fi% }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% -}{% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% -} -\tud@cmd@store{pagestyle} -\cslet{ps@tudheadings}{\ps@headings}% -\cslet{ps@plain.tudheadings}{\ps@plain}% -\cslet{ps@empty.tudheadings}{\ps@empty}% -\providecommand*\currentpagestyle{plain} -\providecommand*\BeforeSelectAnyPageStyle[1]{} -\providecommand*\GetRealPageStyle[1]{#1} -\BeforePackage{scrlayer-scrpage}{% - \tud@cmd@restore{pagestyle}% - \csundef{ps@tudheadings}% - \csundef{ps@plain.tudheadings}% - \csundef{ps@empty.tudheadings}% - \undef\currentpagestyle% - \undef\BeforeSelectAnyPageStyle% - \undef\GetRealPageStyle% -} -\let\tud@pagestyle\pagestyle -\apptocmd{\tud@pagestyle}{% - \edef\currentpagestyle{#1}% -}{}{\tud@patch@wrn{pagestyle}}% -\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} -\AtEndPreamble{% - \@ifpackageloaded{scrlayer-scrpage}{}{% - \let\pagestyle\tud@pagestyle% - \undef\tud@pagestyle% + \@tud@cdgeometry@adjustfalse% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \ifnum\@tempa>\z@\relax% + \ifnum\@tempa<8\relax% + \def\@tempa{3}% + \fi% + \fi% + \fi% + \ifcase\@tempa\relax% <=A7/B7 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + small paper height. It is recommended to increase\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{0.25pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{4.5pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \or% <=A6/B6 + \setlength\tud@len@widemargin{15mm}% + \setlength\tud@len@heavyline{0.5pt}% + \setlength\tud@len@thinline{0.25pt}% + \renewcommand*\tud@head@fontsize{4.5}% + \or% <=A5/B5 + \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted + \@tud@cdgeometry@adjusttrue% + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \else% + \setlength\tud@len@widemargin{21.213203mm}% + \setlength\tud@len@heavyline{0.707107pt}% + \setlength\tud@len@thinline{0.353553pt}% + \renewcommand*\tud@head@fontsize{6.363961}% + \fi% + \or% <=A4/B4 + \setlength\tud@len@widemargin{30mm}% + \setlength\tud@len@heavyline{1pt}% + \setlength\tud@len@thinline{0.5pt}% + \renewcommand*\tud@head@fontsize{9}% + \or% <=A3/B3 + \setlength\tud@len@widemargin{42.426407mm}% + \setlength\tud@len@heavyline{1.414214pt}% + \setlength\tud@len@thinline{0.707107pt}% + \renewcommand*\tud@head@fontsize{12.727922}% + \or% <=A2/B2 + \setlength\tud@len@widemargin{60mm}% + \setlength\tud@len@heavyline{2pt}% + \setlength\tud@len@thinline{1pt}% + \renewcommand*\tud@head@fontsize{18}% + \or% <=A1/B1 + \setlength\tud@len@widemargin{84.852814mm}% + \setlength\tud@len@heavyline{2.828427pt}% + \setlength\tud@len@thinline{1.414214pt}% + \renewcommand*\tud@head@fontsize{25.455844}% + \or% <=A0/B0 + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@thinline{2pt}% + \renewcommand*\tud@head@fontsize{36}% + \else% >A0/B0 + \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + There's no type area defined for such a\MessageBreak% + huge paper height. It is recommended to reduce\MessageBreak% + the paper size. Nevertheless, it will be tried to\MessageBreak% + calculate a proper type area% + }% + \fi% + \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% + \setlength\tud@len@widemargin{120mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{4pt}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{2pt}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{36pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \ifnum\tud@cdgeometry@calc@num=\tw@\relax% + \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% + \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% + \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% + \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% + \setlength{\@tempdima}{\tud@head@fontsize pt}% + \setlength{\@tempdima}{\@tempa\@tempdima}% + \edef\tud@head@fontsize{\strip@pt\@tempdima}% + \fi% + \global\@tud@head@font@settrue% + \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% + \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% + \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% + \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% + \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% + \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% + \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% + \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% + \setlength\tud@len@footsep{% + \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% }% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% + \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \fi% } -\AfterPackage{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \tud@mainlogo@set% - \tud@headlogo@option@set% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo@use\hfill\tud@headlogo@use% - },% - ]{tudheadings.head.content}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\tw@\relax% cdhead=color - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color - \color{HKS41!60}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% - \fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% +\newif\if@tud@x@crop@center +\AfterPackage{crop}{% + \CheckCommand*\CROP@center{% + \voffset\stockheight + \advance\voffset-\paperheight + \voffset.5\voffset + \hoffset\stockwidth + \advance\hoffset-\paperwidth + \hoffset.5\hoffset + }% + \pretocmd{\CROP@center}{% + \@tud@x@crop@centertrue% + }{}{\tud@patch@wrn{CROP@center}} +} +\newif\if@tud@x@standalone@crop +\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} +\newcommand*\tud@cdgeometry@process{} +\newcommand*\tud@cdgeometry@@process{} +\if@tud@x@standalone@crop + \PreventPackageFromLoading{geometry}% +\else + \RequirePackage{geometry}[2010/09/12]% +\fi +\AfterPackage*{geometry}{% + \CheckCommand*\Gm@initnewgm{% + \Gm@passfalse + \Gm@swap@papersizefalse + \Gm@dimlist={} + \Gm@hbodyfalse + \Gm@vbodyfalse + \Gm@heightroundedfalse + \Gm@includeheadfalse + \Gm@includefootfalse + \Gm@includempfalse + \let\Gm@width\@undefined + \let\Gm@height\@undefined + \let\Gm@textwidth\@undefined + \let\Gm@textheight\@undefined + \let\Gm@lines\@undefined + \let\Gm@hscale\@undefined + \let\Gm@vscale\@undefined + \let\Gm@hmarginratio\@undefined + \let\Gm@vmarginratio\@undefined + \let\Gm@lmargin\@undefined + \let\Gm@rmargin\@undefined + \let\Gm@tmargin\@undefined + \let\Gm@bmargin\@undefined + \Gm@layoutfalse + \Gm@layouthoffset\z@ + \Gm@layoutvoffset\z@ + \Gm@bindingoffset\z@ + }% + \expandafter\CheckCommand% + \csname\expandafter\@gobble\string\Gm@changelayout\space\endcsname{% + \setlength{\@colht}{\textheight} + \setlength{\@colroom}{\textheight}% + \setlength{\vsize}{\textheight} + \setlength{\columnwidth}{\textwidth}% + \if@twocolumn% + \advance\columnwidth-\columnsep + \divide\columnwidth\tw@% + \@firstcolumntrue% + \fi% + \setlength{\hsize}{\columnwidth}% + \setlength{\linewidth}{\hsize}% + }% + \CheckCommand*\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutwidth{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{lmargin}{rmargin}% + \Gm@detall{v}{height}{tmargin}{bmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \advance\oddsidemargin\Gm@odd@mp + \fi + \if@mparswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \ifGm@includemp + \advance\evensidemargin\Gm@even@mp + \fi + \else + \evensidemargin\oddsidemargin + \fi + \advance\oddsidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textheight{-\headheight}% + \addtolength\textheight{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textheight{-\footskip}% + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layouthoffset% + \advance\evensidemargin\Gm@layouthoffset% + \advance\topmargin\Gm@layoutvoffset% + \addtolength\Gm@layoutwidth{\Gm@bindingoffset}% + }% + \CheckCommand\geometry[1]{% + \Gm@clean + \setkeys{Gm}{#1}% + \Gm@process% + }% + \CheckCommand\newgeometry[1]{% + \clearpage + \Gm@restore@org + \Gm@initnewgm + \Gm@newgmtrue + \setkeys{Gm}{#1}% + \Gm@newgmfalse + \Gm@process + \ifnum\mag=\@m\else\Gm@magtooffset\fi + \Gm@changelayout + \Gm@showparams{newgeometry}% + }% + \CheckCommand\restoregeometry{% + \clearpage + \Gm@restore@pkg + \Gm@changelayout% + }% + \CheckCommand*\savegeometry[1]{% + \Gm@save + \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}% + }% + \CheckCommand*\loadgeometry[1]{% + \clearpage + \@ifundefined{Gm@restore@@#1}{% + \PackageError{geometry}{% + \string\loadgeometry : name `#1' undefined}{% + The name `#1' should be predefined with \string\savegeometry}% + }{\@nameuse{Gm@restore@@#1}% + \Gm@changelayout}% + }% + \tud@cmd@store{geometry} + \tud@cmd@store{newgeometry} + \newif\if@tud@x@geometry@enabled% + \@tud@x@geometry@enabledtrue% + \newcommand*\tud@setgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \ifGm@pass% + \def\@tempb{}% + \else% + \edef\@tempb{layoutoffset={\the\Gm@layouthoffset,\the\Gm@layoutvoffset}}% + \ifGm@layout% + \eappto\@tempb{,layoutsize={\the\Gm@layoutwidth,\the\Gm@layoutheight}}% \fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + \if@atdocument% + \edef\@tempa{\@tempb,#1}% + \tud@cmd@store{Gm@restore@org}% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + \def\@tempc{\tud@cmd@use{newgeometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \tud@cmd@restore{Gm@restore@org}% + \else% + \Gm@initnewgm% + \edef\@tempa{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,\@tempb,#1% + }% + \def\@tempc{\tud@cmd@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa}% + \fi% + \@tud@x@geometry@enabledtrue% + }% + \newcommand*\tud@savegeometry[1]{% + \def\Gm@restore{}% + \savegeometry{#1}% + \csepreto{Gm@restore@@#1}{% + \etex@unexpanded{\def\Gm@lmargin}{\Gm@lmargin}% + \etex@unexpanded{\def\Gm@rmargin}{\Gm@rmargin}% + \noexpand\Gm@bindingoffset=\the\Gm@bindingoffset% + \ifGm@includemp% + \noexpand\Gm@includemptrue% + \else% + \noexpand\Gm@includempfalse% \fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifGm@layout% + \noexpand\Gm@layouttrue% + \else% + \noexpand\Gm@layoutfalse% \fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - hoffset=0pt,% - width=\paperwidth,% - addvoffset=-\dp\strutbox,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \if@tud@foot@colored% - \let\@tempc\relax% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor - \def\@tempc{\color{HKS41!60}}% - \or% cdhead=color - \def\@tempc{\color{HKS41}}% - \fi% - }{% + }% + }% + \newcommand*\tud@loadgeometry[1]{% + \@tud@x@geometry@enabledfalse% + \loadgeometry{#1}% + \@currsize% + \if@tud@x@crop@center\CROP@center\fi% + \@tud@x@geometry@enabledtrue% + }% + \TUD@parameter@family{geometry}{% + \TUD@parameter@def{paper}{\tud@area@def{paper}{#1}}% + \TUD@parameter@let{papername}{paper}% + \TUD@parameter@def{paperwidth}{\tud@area@def{paper}{#1:\the\paperheight}}% + \TUD@parameter@def{paperheight}{\tud@area@def{paper}{\the\paperwidth:#1}}% + \TUD@parameter@def{papersize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{paper}{##1:##1}% + }{% + \tud@area@def{paper}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{layout}{\tud@area@def{layout}{#1}}% + \TUD@parameter@let{layoutname}{layout}% + \TUD@parameter@def{layoutwidth}{% + \tud@area@def{layout}{#1:\the\tud@len@layoutheight}% + }% + \TUD@parameter@def{layoutheight}{% + \tud@area@def{layout}{\the\tud@len@layoutwidth:#1}% + }% + \TUD@parameter@def{layoutsize}{% + \def\@tempa##1,##2,##3\@nil{% + \IfArgIsEmpty{##2}{% + \tud@area@def{layout}{##1:##1}% + }{% + \tud@area@def{layout}{##1:##2}% + }% + }% + \@tempa#1,,\@nil% + }% + \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% + \TUD@parameter@handler@macro{% + \eappto\tud@x@geometry@parameter{% + \expandonce\kv@key=\expandonce\kv@value,% + }% + }{% + \tud@area@def{paper}{#2}% + }% + } + \newcommand*\tud@area@def[2]{% + \tud@lowerstring{\@tempa}{#2}% + \def\@tempb##1paper##2\@nil{% + \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + }% + \expandafter\@tempb\@tempa paper\@nil% + \@tempswafalse% + \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \if@tempswa\else% + \ifx\@tempa\@empty\relax\else% + \def\@tempb##1##2\@nil{% + \if ##1a\@tempswatrue% + \else\if ##1b\@tempswatrue% + \else\if ##1c\@tempswatrue% + \else\if ##1d\@tempswatrue% + \fi\fi\fi\fi% + \if@tempswa% + \@tempswafalse% + \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \fi% + }% + \expandafter\@tempb\@tempa\@nil% + \if@tempswa\else% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \@tempswatrue% + \def\@tempa{##1:##2}% + }% + }% + \expandafter\@tempb\@tempa::\@nil% + \fi% + \if@tempswa\else% + \def\tud@reserved##1:##2:##3:##4\@nil{% + \if@tempswa\else% + \ifstr{\@tempa}{##1}{% + \@tempswatrue% + \def\@tempa{##2##4:##3##4}% + }{}% + \fi% + }% + \tud@reserved b0j:1030:1456:mm\@nil% + \tud@reserved b1j:728:1030:mm\@nil% + \tud@reserved b2j:515:728:mm\@nil% + \tud@reserved b3j:364:515:mm\@nil% + \tud@reserved b4j:257:364:mm\@nil% + \tud@reserved b5j:182:257:mm\@nil% + \tud@reserved b6j:128:182:mm\@nil% + \tud@reserved ansia:8.5:11:in\@nil% + \tud@reserved ansib:11:17:in\@nil% + \tud@reserved ansic:17:22:in\@nil% + \tud@reserved ansid:22:34:in\@nil% + \tud@reserved ansie:34:44:in\@nil% + \tud@reserved screen:225:180:mm\@nil% + \fi% + \fi% + \fi% + \if@tempswa% + \cseappto{tud@x@geometry@#1}{\@tempa,}% + \def\@tempb##1:##2:##3\@nil{% + \IfArgIsEmpty{##2}{}{% + \ifstr{#1}{paper}{% + \setlength\paperwidth{##1}% + \setlength\paperheight{##2}% + }{% + \ifstr{#1}{layout}{% + \setlength\tud@len@layoutwidth{##1}% + \setlength\tud@len@layoutheight{##2}% + }{}% + }% + }% + }% + \expandafter\@tempb\@tempa::\@nil% + \else% + \appto\tud@x@geometry@parameter{#2,}% + \fi% + } + \newcommand*\tud@area@set[1]{% + \letcs{\@tempa}{tud@x@geometry@#1}% + \ifdefvoid{\@tempa}{}{% + \def\@tempb##1:##2:##3\@nil{% + \tud@cmd@store{@tempa}% + \tud@cmd@store{@tempb}% + \tud@cmd@store{@tempc}% + \IfArgIsEmpty{##2}{% + \KOMAoption{paper}{##1}% + }{% + \if@landscape% + \KOMAoption{paper}{##2:##1}% + \else% + \KOMAoption{paper}{##1:##2}% + \fi% + }% + \tud@cmd@restore{@tempa}% + \tud@cmd@restore{@tempb}% + \tud@cmd@restore{@tempc}% + }% + \def\@tempc##1{\@tempb##1::\@nil}% + \expandafter\forcsvlist\expandafter\@tempc\expandafter{\@tempa}% + }% + } + \newcommand*\tud@x@geometry@init{} + \newcommand*\tud@x@geometry@paper{} + \newcommand*\tud@x@geometry@layout{} + \newcommand*\tud@x@geometry@parameter{} + \newcommand*\tud@geometry[2]{% + \ifGm@layout% + \setlength\tud@len@layoutheight{\Gm@layoutheight}% + \setlength\tud@len@layoutwidth{\Gm@layoutwidth}% + \else% + \setlength\tud@len@layoutheight{\paperheight}% + \setlength\tud@len@layoutwidth{\paperwidth}% + \fi% + \let\tud@x@geometry@paper\@empty% + \let\tud@x@geometry@layout\@empty% + \let\tud@x@geometry@parameter\@empty% + \TUD@parameter@set{geometry}{#1}% + \tud@area@set{paper}% + \ifstr{#2}{newgeometry}{% + \eappto\Gm@restore@org{% + \paperwidth=\the\paperwidth\relax% + \paperheight=\the\paperheight\relax% + }% + }{% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + }% + }% + \ifx\tud@x@geometry@layout\@empty\else% + \begingroup% + \setlength\paperwidth{\Gm@layoutwidth}% + \setlength\paperheight{\Gm@layoutheight}% + \tud@area@set{layout}% + \edef\tud@reserved{% + \endgroup% + \etex@unexpanded{\epreto{\tud@x@geometry@parameter}}{% + layoutwidth=\the\paperwidth,layoutheight=\the\paperheight,% + }% + }% + \tud@reserved% + \fi% + \def\@tempa{\tud@cmd@use{#2}}% + \expandafter\@tempa\expandafter{\tud@x@geometry@parameter}% + \ifstr{#2}{geometry}{% + \ifbool{@tud@x@geometry@enabled}{% + \eappto\tud@x@geometry@init{,\expandonce\tud@x@geometry@parameter}% + }{}% + }{}% + } + \renewcommand*\geometry[1]{\tud@geometry{#1}{geometry}} + \renewcommand*\newgeometry[1]{% + \tud@cmd@store{Gm@restore@org}% + \tud@geometry{#1}{newgeometry}% + \tud@cmd@restore{Gm@restore@org}% + } + \apptocmd{\Gm@changelayout}{% + \ifboolexpr{bool {@tud@x@geometry@enabled} and bool {@atdocument}}{% + \tud@cdgeometry@process% + }{}% + }{}{\tud@patch@wrn{Gm@changelayout}}% + \renewcommand*\restoregeometry[1][]{% + \IfArgIsEmpty{#1}{}{% + \tud@cmd@store{TUD@SpecialOptionAtDocument}% + \let\TUD@SpecialOptionAtDocument\@gobble% + \TUDoption{cdgeometry}{#1}% + \tud@cmd@restore{TUD@SpecialOptionAtDocument}% + }% + \ifnum\tud@cdgeometry@num=\@ne\relax + \tud@loadgeometry{init@custom}% + \else% + \tud@loadgeometry{init@typearea}% + \fi% + \tud@AfterChangingArea% + }% + \newcommand*\tud@cdgeometry@hmargin{}% + \newcommand*\tud@cdgeometry@vmargin{}% + \newcommand*\tud@cdgeometry@tudmargin{}% + \tud@if@v@lower{2.03}{\newcommand*\tud@cdgeometry@ddcmargin{}}{}% + \renewcommand*\tud@cdgeometry@process{% + \tud@AfterChangingArea% + }% + \renewcommand*\tud@cdgeometry@@process{% + \csuse{@ta@usegeometryfalse}% + \tud@cdgeometry@set% + \ifnum\tud@cdgeometry@num<\tw@\relax% false/custom + \ifcase\tud@cdgeometry@num\relax% + \ifGm@layout% + \tud@skip@store{paperheight}% + \tud@skip@store{paperwidth}% + \setlength\paperheight{\tud@len@layoutheight}% + \setlength\paperwidth{\tud@len@layoutwidth}% + \fi% + \tud@cmd@store{activateareas}% + \tud@cmd@store{tud@AfterChangingArea}% + \let\activateareas\relax% + \let\tud@AfterChangingArea\relax% + \recalctypearea% + \ifGm@layout% + \tud@skip@restore{paperheight}% + \tud@skip@restore{paperwidth}% + \fi% + \tud@cmd@restore{activateareas}% + \tud@cmd@restore{tud@AfterChangingArea}% + \edef\tud@cdgeometry@hmargin{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \edef\tud@cdgeometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \tud@cdgeometry@fincl,% + footskip=\the\footskip% + }% + \else% custom + \ifGm@pass\else% + \edef\tud@cdgeometry@hmargin{% + left=\Gm@lmargin,% + right=\Gm@rmargin,% + \ifGm@includemp% + includemp=true,% + \else% + includemp=false,% + \fi% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\Gm@bindingoffset% + }% + \edef\tud@cdgeometry@vmargin{% + \ifGm@includehead% + includehead=true,% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + \ifGm@includefoot% + includefoot=true,% + \else% + includefoot=false,% + \fi% + footskip=\the\footskip% + }% + \fi% + \fi% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\topmargin-\headheight-\headsep-1in\relax% + }% + \ifdim\tud@len@areadiff<\z@\relax% + \addtolength\tud@len@headsep{-\tud@len@areadiff}% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@len@areadiff}% + \fi% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep,% + textheight=\the\dimexpr\textheight-\@tempdima\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@ddcdiff{% + \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% + +\footheight-1.25\baselineskip\relax% + }% + \edef\tud@cdgeometry@ddcmargin{% + textheight=\the\dimexpr\textheight-\tud@len@areadiff% + -\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + }% + }{}% + \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea or custom layout is used\MessageBreak% + (`cdgeometry=false/custom')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \setlength\@tempdima{\tud@len@widemargin}% + \if@reversemargin% + \setlength\@tempdimc{\tud@len@widemargin}% + \else% + \setlength\@tempdimc{\tud@len@slimmargin}% + \fi% + \or% symmetric + \setlength\@tempdima{.5\tud@len@both}% + \setlength\@tempdimc{.5\tud@len@both}% + \or% twoside + \if@twoside% + \setlength\@tempdima{.4\tud@len@both}% + \else% + \setlength\@tempdima{.5\tud@len@both}% + \fi% + \setlength\@tempdimc{.5\tud@len@both}% + \if@twoside% + \if@reversemargin% + \setlength\@tempdimc{.4\tud@len@both}% + \else% + \setlength\@tempdimc{.6\tud@len@both}% + \fi% + \fi% + \fi% + \addtolength\@tempdimc{-\headsep}% + \setlength\@tempdimb{% + \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% + }% + \if@mincl% + \addtolength\@tempdimb{-\@tempdimc}% + \fi% + \edef\tud@cdgeometry@hmargin{% + left=\the\@tempdima,% + textwidth=\the\@tempdimb,% + \tud@cdgeometry@mpincl,% + marginparwidth=\the\@tempdimc,% + marginparsep=\the\dimexpr.5\headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor% + }% + \if@twoside% + \ifcase\tud@cdgeometry@num\relax\or\or% true + \appto\tud@cdgeometry@hmargin{,asymmetric}% + \else% symmetric/twoside + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@if@v@lower{2.03}{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\dimexpr.5\tud@len@both\relax,% + headheight=\the\headheight,% + headsep=\the\tud@len@headsep,% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }% + }{% + \edef\tud@cdgeometry@vmargin{% + \tud@cdgeometry@hincl,% + top=\the\tud@len@slimmargin,% + headheight=\the\headheight,% + headsep=\the\headsep,% + bottom=\the\dimexpr\tud@len@widemargin% + +\tud@dim@extrabottommargin\relax,% + \tud@cdgeometry@fincl,% + footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + }% + }% + \edef\tud@cdgeometry@tudmargin{% + ignorehead=true,% + top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax,% + headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% + -\tud@len@logoy\relax,% + headsep=\the\tud@len@headsep% + }% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -\tud@len@slimmargin\relax% + }% + \tud@if@v@lower{2.03}{% + \setlength\tud@len@areadiff{% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% + -.5\tud@len@both\relax% + }% + \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \edef\tud@cdgeometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff+\tud@len@headsep+\footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% + +\tud@len@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip+\tud@len@ddcdiff\relax,% + }% + }{}% + \fi% + \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% + \global\tud@len@areadiff=\tud@len@areadiff% + \if@tud@cdgeometry@adjust% + \setlength\tud@len@areaheadvskip{.3\tud@len@topmargin}% + \else% + \setlength\tud@len@areaheadvskip{.6\tud@len@topmargin}% + \fi% + \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \tud@if@v@lower{2.03}{% + \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi% + \global\tud@len@ddcdiff=\tud@len@ddcdiff% + }{}% + \tud@cdgeometry@@@process% + }% + \newcommand*\tud@cdgeometry@@@process{% + \eappto\tud@cdgeometry@hmargin{,layouthoffset=\the\Gm@layouthoffset}% + \eappto\tud@cdgeometry@vmargin{,layoutvoffset=\the\Gm@layoutvoffset}% + \tud@if@v@lower{2.03}{% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin,% + \tud@cdgeometry@ddcmargin,% + ignorehead,ignorefoot% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudareaddc}% + }{}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin,% + \tud@cdgeometry@tudmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{tudarea}% + \edef\@tempa{% + \tud@cdgeometry@hmargin,% + \tud@cdgeometry@vmargin% + }% + \tud@setgeometry{\@tempa}% + \tud@savegeometry{stdarea}% + \if@atdocument% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% + }% + \fi% + }% + \newcommand*\tud@cdgeometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@cdgeometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@cdgeometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% + }% +} +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@tudheadings{#1}{% + \tud@if@v@lower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + \else% \tud@ddc@foot@num!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% + \setlength\tud@len@areavskip{\z@}% + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + }{% + \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@loadgeometry{stdarea}% + \gdef\tud@currentgeometry{stdarea}% + }% + \setlength\tud@len@areavskip{\tud@len@areadiff}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \if@hincl% + \addtolength\tud@len@areavskip{% + \dimexpr-\headheight-\tud@len@headsep\relax% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@len@areavskip=\tud@len@areavskip% + }{}% +} +\newcommand*\tud@AfterChangingArea{% + \tud@cdgeometry@@process% + \KOMAoptions{pagesize=\@pagesizelast}% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\newcommand*\tud@cdgeometry@init{% + \AtEndPreamble{% + \if@tud@x@standalone@crop% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% + \let\tud@AfterChangingArea\relax% + \let\tud@cdgeometry@process\relax% + \else% + \csuse{@ta@usegeometryfalse}% + \def\tud@reserved##1{% + \tud@setgeometry{% + \tud@cdgeometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + bindingoffset=\the\ta@bcor,% + \tud@cdgeometry@hincl,% + \tud@cdgeometry@fincl,% + \tud@x@geometry@init,% + driver=none% + }% + \addtolength\oddsidemargin{-\Gm@layouthoffset}% + \addtolength\evensidemargin{-\Gm@layouthoffset}% + \addtolength\topmargin{-\Gm@layoutvoffset}% + \tud@savegeometry{init@##1}% + }% + \begingroup% + \let\scr@grouplevel@test\@gobble% + \setlength\paperheight{\Gm@layoutheight}% + \setlength\paperwidth{\Gm@layoutwidth}% + \let\activateareas\relax% + \tud@x@ta@warnings@off% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{DIV}% + \def\@tempb{{0}}% + \ifx\@tempa\@tempb\relax% + \KOMAoptionOf[\def\@tempa]{typearea.\scr@pkgextension}{paper}% + \@for\@tempb:=\@tempa\do{% + \@tempswatrue% + \ifx\@tempb\defaultpapersize\relax% + \@tempswafalse% + \fi% + }% + \if@tempswa% + \KOMAoptions{DIV=11}% + \fi% + \fi% + \recalctypearea% + \tud@x@ta@warnings@on% + \edef\tud@x@geometry@init{% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + marginparwidth=\the\marginparwidth,% + marginparsep=\the\marginparsep,% + bindingoffset=\the\ta@bcor,% + \if@hincl% + top=\the\dimexpr\topmargin+1in\relax,% + \else% + top=\the\dimexpr\topmargin% + +\headheight+\headsep+1in\relax,% + \fi% + headheight=\the\headheight,% + headsep=\the\headsep,% + textheight=\the\textheight,% + footskip=\the\footskip% + }% + \tud@reserved{typearea}% + \global\let\Gm@restore@@init@typearea\Gm@restore@@init@typearea% + \endgroup% + \tud@reserved{custom}% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \ifundef{\AfterRestoreareas}{}{% + \AfterRestoreareas{\tud@AfterChangingArea}% + }% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% + \tud@cdgeometry@process% + \fi + \let\tud@cdgeometry@init\relax% + }% +} +\AfterPackage!{scrlayer-scrpage}{\tud@cdgeometry@init} +\TUD@UnwindPackage{geometry}{% + \newif\ifGm@layout% + \newif\ifGm@showcrop% + \newif\ifGm@pass% + \let\Gm@layoutheight\paperheight% + \let\Gm@layoutwidth\paperwidth% + \let\Gm@layouthoffset\z@% + \let\Gm@layoutvoffset\z@% + \renewcommand*\tud@cdgeometry@@process{\tud@cdgeometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \providecommand*\tud@setgeometry[1]{}% + \providecommand*\tud@savegeometry[1]{}% +} +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@if@v@lower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@if@tudheadings{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \enlargethispage{-\tud@len@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +%%% From File: tudscr-pagestyle.dtx +\if@tud@x@standalone@crop + \PreventPackageFromLoading{scrlayer-scrpage}% +\else + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +\fi +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% + contents={% + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\layerheight}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.upline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowline}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.uplinewide}% + \DeclareNewLayer[% + background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowlinewide}% + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% + \DeclareNewLayer[% + background,foot,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% + addvoffset=-\dp\strutbox,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% \def\@tempc{\color{HKS41}}% \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% @@ -2486,14 +3914,14 @@ \fi% },% ]{tudheadings.foot.back}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% @@ -2504,14 +3932,14 @@ }% \ifx\@tempc\relax\else% \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifcase\@tempb\relax% \tud@ddc@foot@num=false \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% }% }% - \else% \tud@ddc@foot!=false + \else% \tud@ddc@foot@num!=false \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% @@ -2521,23 +3949,35 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% contents={% - \tud@footlogoheight@set% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% - \tud@footlogo@option@set% - \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% - \hspace*{-\layerwidth}% - \tud@footlogo@cmd@use% - \hspace*{-\layerwidth}% - \hfill\tud@footlogo@ddc@use{\@tempdima}% },% ]{tudheadings.foot.content}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% ]{tudheadings.foot.content}% }{}% \DeclareNewLayer[% @@ -2551,10 +3991,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -2564,7 +4005,6 @@ scrheadings.foot.above.line,% scrheadings.foot.below.line% }% - \listadd\tud@ps@list{tudheadings}% \DeclareNewPageStyleAlias{tud}{tudheadings}% \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% @@ -2575,10 +4015,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -2586,2020 +4027,1580 @@ plain.scrheadings.foot.even,% plain.scrheadings.foot.oneside,% plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \listadd\tud@ps@list{plain.tudheadings}% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.content,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.content,% - tudheadings.last% - }% - \listadd\tud@ps@list{empty.tudheadings}% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \newcommand*\tud@pagecolor{}% - \DeclareNewLayer[% - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor}% - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% -} -\PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% - The package `fancyhdr' must not be used with a\MessageBreak% - TUD-KOMA-Script class. You should make use of the\MessageBreak% - capabilities of package `scrlayer-scrpage' instead% - }% -]{fancyhdr} -\newcommand*\tud@ps@onselect{% - \DeclarePageStyleAlias{plain}{plain.tudheadings}% - \DeclarePageStyleAlias{headings}{tudheadings}% - \def\sls@currentheadings{tudheadings}% - \def\sls@currentplain{plain.tudheadings}% -} -\newcommand*\tud@head@logocolor{black} -\newcommand*\tud@head@fontcolor{} -\newcommand*\tud@foot@logocolor{black} -\newcommand*\tud@foot@fontcolor{} -\newcommand*\tud@ps@onbackground{% - \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax% cdhead=nocolor - \def\tud@head@logocolor{black}% - \def\tud@head@fontcolor{}% - \def\tud@foot@logocolor{black}% - \def\tud@foot@fontcolor{}% - \or% cdhead=litecolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \or% cdhead=barcolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \fi% - }{% - \ifstr{\tud@pagecolor}{HKS41}{% - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \def\tud@foot@logocolor{white}% - \if@tud@foot@colored% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@fontcolor{HKS41!30}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }{% - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \ifcase\tud@head@bar\relax\or\or\or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% - \fi% - \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% - \fi% - \bool@std@lock{@tud@head@widebar}{true}% - }% - }% - \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% - \global\let\tud@foot@fontcolor\tud@foot@fontcolor% -} -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% - \xdef\@specialstyle{\GetRealPageStyle{#1}} -}{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@head@text{} -\newcommand*\tud@head@text@first{} -\newcommand*\tud@head@text@second{} -\newcommand*\tud@head@text@delimiter{} -\newcommand*\tud@head@text@buffer{} -\newcommand*\tud@head@rule[1]{% - \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@dim@line}% -} -\newcommand*\tud@head@text@add[3][, ]{% - \protected@edef\tud@head@text{#3}% - \ifx\tud@head@text\@empty% - \def\tud@head@text@delimiter{}% - \else% - \edef\tud@head@text@delimiter{\tud@head@text@buffer}% - \def\tud@head@text@buffer{#1}% - \fi% - \if@tempswa\else% - \def\@tempa{% - \tud@head@text@first% - \tud@head@text@delimiter% - #2% - \tud@head@text% - }% - \settowidth\@tempdima{\@tempa}% - \ifdim\@tempdima>\textwidth\relax% - \@tempswatrue% - \def\tud@head@text@delimiter{}% - \else% - \protected@edef\tud@head@text@first{\@tempa}% - \fi% - \fi% - \if@tempswa% - \protected@edef\tud@head@text@second{% - \tud@head@text@second% - \tud@head@text@delimiter% - #2% - \tud@head@text% - }% - \fi% -} -\newcommand*\tud@head@text@box{% - \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% - \faculty{}% - \fi% - \tud@head@font@set% - \@tempswafalse% - \def\tud@head@text@first{}% - \def\tud@head@text@second{}% - \def\tud@head@text@buffer{}% - \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% - \tud@head@text@add{\tud@head@font@light}{\@department}% - \tud@head@text@add{\tud@head@font@light}{\@institute}% - \tud@head@text@add{\tud@head@font@light}{\@chair}% - \settowidth\@tempdima{\tud@head@text@second}% - \ifdim\@tempdima>\textwidth\relax% - \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% - \hfuzz=\@tempdima% - \fi% - \vbox{% - \linespread{0}\selectfont\offinterlineskip% - \tud@color{\tud@head@fontcolor}% - \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color - \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% - }% - \fi% - \ifx\tud@head@text@second\@empty% - \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% - \else% - \newline\tud@head@text@write{\tud@head@text@second}% - \ifx\@extraheadline\@empty\else% - \newline\vbox{\tud@head@font@light\@extraheadline}% - \fi% - \fi% - }% -} -\newcommand*\tud@head@text@write[1]{% - \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% - \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% -} -\newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\TUDClassName}{% - The given entries for the headline\MessageBreak% - (faculty, institute etc.) are #1\MessageBreak% - too wide for the textwidth% - }% - \global\let\tud@head@text@wrn\@gobble% -} -\newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@savelayerbox[1]{% - \global\expandafter\sbox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@uselayerbox[1]{% - \expandafter\usebox\csname tud@logo@#1\endcsname% -} -\newcommand*\tud@vlayerbox[3]{% - \begingroup% - \setbox\z@\vbox{#2}% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% - \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUDClassName}{% - #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima% - }% - \fi% - \endgroup% - \vbox to #1{#2}% -} -\tud@newlayerbox{main@black} -\tud@newlayerbox{main@HKS41} -\tud@newlayerbox{main@white} -\newlength\tud@mainlogoheight -\newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set -\newcommand*\tud@mainlogo@set{% - \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% - \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% - \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% - \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% - \global\tud@mainlogoheight=\tud@mainlogoheight% - \gdef\tud@mainlogo@wrn##1{% - \ifdim##1<\ta@bcor\relax% - \ClassWarning{\TUDClassName}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% - }% - \global\let\tud@mainlogo@wrn\@gobble% - \fi% - }% - \tud@headlogo@set% - \tud@footlogo@set% - \global\@tud@mainlogo@setfalse% - \fi% -} -\newcommand*\tud@mainlogo@use{% - \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% - }% - \tud@uselayerbox{main@\tud@head@logocolor}% -} -\tud@newlayerbox{head@black} -\tud@newlayerbox{head@HKS41} -\tud@newlayerbox{head@white} -\tud@newlayerbox{head@option} -\newcommand*\@headlogo{} -\newcommand*\@@headlogo{} -\newcommand*\tud@headlogo@wrn{} -\newcommand*\headlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@headlogo{#2}% - \def\@@headlogo{#1}% - \global\@tud@headlogo@option@settrue% - \global\@tud@footlogo@option@settrue% - \gdef\tud@headlogo@wrn{% - \ClassWarning{\TUDClassName}{% - The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% - }% - \global\let\tud@headlogo@wrn\relax% - }% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newcommand*\tud@headlogo@set{% - \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% - }% - \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% - \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% - \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% - \tud@headlogo@option@set% -} -\newcommand*\tud@headlogo@option@set{% - \if@tud@headlogo@option@set% - \def\@tempc##1##2{% - \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@mainlogoheight,##2% - ]{\trim@spaces{##1}}% - }% - }% - \tud@savelayerbox{head@option}{}% - \tud@ddc@check% - \ifcase\@tempa\relax% \tud@ddc@head=false - \ifdefvoid{\@headlogo}{}{% - \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% - \@tempb% - }% - \or\or% \tud@ddc@head=color - \@tempc{DDC-03}{}% - \or% \tud@ddc@head=colorblack - \@tempc{DDC-09}{}% - \or% \tud@ddc@head=gray - \@tempc{DDC-21}{}% - \or% \tud@ddc@head=black - \@tempc{DDC-24}{}% - \or% \tud@ddc@head=blue - \@tempc{DDC-27}{}% - \or% \tud@ddc@head=white - \@tempc{DDC-30}{}% - \fi% - \global\@tud@headlogo@option@setfalse% - \fi% -} -\newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@mainlogoheight}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true - \tud@uselayerbox{head@\tud@head@logocolor}% - \else% - \tud@uselayerbox{head@option}% - \fi% - }% - \vss% - }{% - The given `\string\headlogo{\@headlogo}' is too large.% - } - \ifdefvoid{\@headlogo}{}{% - \tud@ddc@check% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + plain.scrheadings.foot.below.line% }% -} -\tud@newlayerbox{foot@black} -\tud@newlayerbox{foot@HKS41} -\tud@newlayerbox{foot@white} -\tud@newlayerbox{foot@option} -\newlength\footlogoheight -\newlength\tud@footlogoheight -\newcommand*\tud@footlogoheight@set{% - \ifdim\footlogoheight=\z@\relax% - \tud@ifverlower{2.03}{% - \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% - }{% - \setlength\tud@footlogoheight{\tud@mainlogoheight}% - }% - \else% - \ifdim\footlogoheight=\tud@footlogoheight\relax\else% - \setlength\tud@footlogoheight{\footlogoheight}% - \global\@tud@footlogo@option@settrue% - \fi% - \fi% - \global\tud@footlogoheight=\tud@footlogoheight% -} -\newcommand*\tud@footlogo@ddc@set[2]{% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% }% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \DeclareNewLayer[% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } -\newcommand*\tud@footlogo@set{% - \tud@footlogo@ddc@set{black}{DDC-22}% - \tud@footlogo@ddc@set{HKS41}{DDC-25}% - \tud@footlogo@ddc@set{white}{DDC-28}% - \tud@footlogo@option@set% +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} +\PreventPackageFromLoading[% + \ClassWarning{\TUD@Class@Name}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} +\newcommand*\tud@ps@onselect{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% } -\newcommand*\tud@footlogo@option@set{% - \if@tud@footlogo@option@set% - \tud@ddc@check% - \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color - \tud@footlogo@ddc@set{option}{DDC-01}% - \or% \tud@ddc@foot=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% - \or% \tud@ddc@foot=gray - \tud@footlogo@ddc@set{option}{DDC-19}% - \or% \tud@ddc@foot=black - \tud@footlogo@ddc@set{option}{DDC-22}% - \or% \tud@ddc@foot=blue - \tud@footlogo@ddc@set{option}{DDC-25}% - \or% \tud@ddc@foot=white - \tud@footlogo@ddc@set{option}{DDC-28}% +\newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} +\newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} +\newcommand*\tud@ps@onbackground{% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% + \or% cdhead=litecolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \or% cdhead=barcolor + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% \fi% - \global\@tud@footlogo@option@setfalse% - \fi% -} -\newcommand*\tud@footlogo@ddc@use[1]{% - \tud@vlayerbox{#1}{% - \vss% - \hbox{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% \tud@ddc@foot=true - \tud@uselayerbox{foot@\tud@foot@logocolor}% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% + \if@tud@foot@colored% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% + }% + \fi% + \else% cdhead=*color + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \tud@uselayerbox{foot@option}% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% - }% - \vss\vss% - }{% - The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% - high. You should reduce this length.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% \fi% - }% -} -\tud@newlayerbox{foot@cmd} -\newcommand*\footlogosep{\hfill} -\newcommand*\@footlogo{} -\newcommand*\@@footlogo{} -\newcommand*\footlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@footlogo{#2}% - \def\@@footlogo{#1}% - \global\@tud@footlogo@cmd@settrue% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% -} -\newif\if@tud@footlogo@cmd@set -\newcommand*\tud@footlogo@cmd@set[2]{% - \if@tud@footlogo@cmd@set% - \tud@footlogoheight@set% - \tud@savelayerbox{foot@cmd}{% - \hbox to #2{% - \let\@tempa\relax% - \@for\@tempb:=\@footlogo\do{% - \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% - \fi% - \let\@tempa\footlogosep% - }% - \hss% - }% - }% - \global\@tud@footlogo@cmd@setfalse% - \fi% -} -\newcommand*\tud@footlogo@cmd@@set[2]{% - \begingroup% - \def\@tempa{}% - \def\@tempb{}% - \@tempswatrue% - \def\do##1{% - \if@tempswa% - \def\@tempa{##1}% - \@tempswafalse% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% - }% - \let\@tempc\relax% - \DeclareListParser{\@tempc}{:}% - \@tempc{#1}% - \preto\@@footlogo{% - keepaspectratio,totalheight=\tud@footlogoheight,% - }% - \appto\@@footlogo{\@tempb}% - \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% - \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% - The given `\string\footlogo{\@tempa}' is too large.% - }% - \endgroup% -} -\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% -\newkomafont{tudheadings}{% - \sffamily% - \tud@color{\tud@foot@fontcolor}% -} -\newcommand*\tud@footcontent@font{} -\newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{} -\newcommand*\footcontent{% - \@ifstar{% - \@tempswafalse% - \@footcontent% - }{% - \@tempswatrue% - \@footcontent% - }% -} -\newcommand*\@footcontent[2][]{% - \kernel@ifnextchar[%] - {\@@footcontent{#1}{#2}}% - {\@@footcontent{#1}{#2}[\@nnil]}% -} -\newcommand*\@@footcontent{} -\def\@@footcontent#1#2[#3]{% - \if@tempswa% - \def\tud@footcontent@font{% - \usekomafont{tudheadings}% - \tud@divide\@tempa{\tud@head@font@size}{\f@size}% - \linespread{\@tempa}% - \selectfont% - \tud@head@font@light% - #1% - }% - \else% - \def\tud@footcontent@font{#1}% - \fi% - \def\tud@footcontent@left{#2}% - \def\tud@footcontent@right{#3}% -} -\newcommand*\tud@footcontent@use[2]{% - \tud@ddc@check% - \ifcase\@tempb% - \setlength\@tempdimc{\z@}% - \else% - \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% - \fi% - \tud@vlayerbox{#1}{% - \vss% - \hbox to #2{% - \tud@footcontent@font% - \expandafter\ifx\tud@footcontent@right\@nnil\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \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% - }% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% - \hss% + \bool@std@lock{@tud@head@widebar}{true}% }% - \vss\vss% - }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content or\MessageBreak% - lower the fontsize via the optional argument.% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% - \fi% }% + \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% } -\AtEndPreamble{% - \@ifpackageloaded{geometry}{}{% - \def\tud@geometry@process{\tud@geometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - }% +\newcommand*\tud@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% } -\tud@ifsacrop{% - \PreventPackageFromLoading{geometry}% -}{% - \RequirePackage{geometry}[2010/09/12]% - \newcommand*\tud@geometry@hmargin{}% - \newcommand*\tud@geometry@vmargin{}% - \newcommand*\tud@geometry@tudmargin{}% - \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% - \newcommand*\tud@newgeometry[1]{% - \if@atdocument% - \edef\@tempa{#1}% - \expandafter\newgeometry\expandafter{#1}% - \else% - \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% - \expandafter\geometry\expandafter{\@tempa}% - \fi% - }% - \newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% false - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% - \fi% - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr\oddsidemargin+1in% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \edef\tud@geometry@vmargin{% - \if@hincl% - includehead=true,% - top=\the\dimexpr\tud@ta@topmargin+1in\relax,% - \else% - includehead=false,% - top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - \fi% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - textheight=\the\tud@ta@textheight,% - \tud@geometry@fincl,% - footskip=\the\tud@ta@footskip% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \setlength\@tempdima{\z@}% - \else% - \setlength\@tempdima{\tud@ta@headdiff}% - \fi% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,% - ignorehead% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \edef\tud@geometry@ddcmargin{% - textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\TUDClassName}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% - \else% true/symmetric/twoside - \ifcase\tud@geometry\or% true - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\tud@dim@widemargin,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside asymmetric,\fi% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - marginparwidth=\the\dimexpr\tud@dim@widemargin% - -\tud@ta@headsep\relax,% - \else% - reversemarginpar=false,% - marginparwidth=\the\dimexpr\tud@dim@slimmargin% - -\tud@ta@headsep\relax,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% symmetric - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr.5\tud@dim@both\relax,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \or% twoside - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - \if@twoside% - left=\the\dimexpr.4\tud@dim@both\relax,% - twoside,% - \else% - left=\the\dimexpr.5\tud@dim@both\relax,% - \fi% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr.4\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \if@twoside% - marginparwidth=\the\dimexpr.6\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \fi% - \tud@ifverlower{2.03}{% - \edef\tud@geometry@vmargin{% - top=\the\dimexpr.5\tud@dim@both\relax,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }{% - \edef\tud@geometry@vmargin{% - top=\the\tud@dim@slimmargin,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - ignorehead% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% - \tud@ifverlower{2.03}{% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% - }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \edef\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + \tud@cdgeometry@init% +} +\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% + \xdef\@specialstyle{\GetRealPageStyle{#1}}% +}{}{\tud@patch@wrn{thispagestyle}} +\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% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \tud@ifverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% - \tud@geometry@@process% - }% - \newcommand*\tud@geometry@@process{% - \edef\Gm@restore@org{\Gm@restore}% - \tud@ifverlower{2.03}{% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot% - }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudareaddc}% - }{}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin% + \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}% }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudarea}% + \ifcase\tud@head@font@num\relax\else% true/heavy + \if@tud@univers% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@univers}{b}{n}% + }% + \fi% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} +\newcommand*\tud@head@text@line{} +\newcommand*\tud@head@text@list{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% }% - \tud@newgeometry{\@tempa}% - \savegeometry{typearea}% - }% - \newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead=true% - \else% - includehead=false% - \fi% - }% - \newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot=true% - \else% - includefoot=false% - \fi% - }% - \newcommand*\tud@geometry@mpincl{% - \if@mincl% - includemp=true% + \settowidth\@tempdima{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% \else% - includemp=false% + \edef\tud@head@text@line{\expandonce\@tempa}% \fi% }% } -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \tud@iftudps{#1}{% - \tud@ifverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - \else% \tud@ddc@foot!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - }% - \setlength\tud@dim@headdiff{\z@}% - \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% - \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% +\newif\if@tud@head@text@set +\newcommand*\tud@head@text@wrn[1]{} +\newcommand*\tud@head@text@set{% + \if@tud@head@text@set% + \def\tud@head@text@line{}% + \def\tud@head@text@list{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% + }% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% true/symmetric/twoside - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% - \fi% - \tud@font@koma@unset{pagefoot}% - \tud@font@koma@unset{pagenumber}% }% - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% + \fi% } -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\tud@ifverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \tud@iftudps{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% +\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{% + \settowidth\@tempdima{##1}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color + \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% - }{}% - }% -}{} -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@AfterChangingArea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% - }{% - \setlength\tud@ta@footheight{\ta@fh}% + \fi% }% - \setlength\tud@ta@footskip{\footskip}% - \tud@geometry@process% - \global\@tud@mainlogo@settrue% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% -} -\AtEndPreamble{% - \tud@ifsacrop{}{% - \AfterCalculatingTypearea{\tud@AfterChangingArea}% - \AfterSettingArea{\tud@AfterChangingArea}% - \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% - \recalctypearea% + \vbox{% + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% }% + \global\let\tud@head@text@wrn\@gobble% } -\newcommand*\tud@ps{tudheadings} -\newcommand*\tud@ps@select{% - \expandafter\pagestyle\expandafter{\tud@ps}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% - \renewcommand*\titlepagestyle{empty}% - \renewcommand*\partpagestyle{empty}% - \renewcommand*\chapterpagestyle{empty}% - \renewcommand*\indexpagestyle{empty}% - }{}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% - \renewcommand*\titlepagestyle{empty.tudheadings}% - \renewcommand*\partpagestyle{empty.tudheadings}% - \renewcommand*\chapterpagestyle{empty.tudheadings}% - \renewcommand*\indexpagestyle{empty.tudheadings}% - }{}% -} -\newcommand*\tud@currentpagestyle{} -\newcommand*\tud@currentpagestyle@set{% - \ifdefvoid{\tud@currentpagestyle}{% - \xdef\tud@currentpagestyle{\currentpagestyle}% - }{}% +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% } -\newcommand*\tud@currentpagestyle@reset{% - \ifdefvoid{\tud@currentpagestyle}{}{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% - }% +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% } -\NewEnviron{tudpage}[1][]{% - \tud@currentpagestyle@set% - \clearpage% - \def\tud@ps{tudheadings}% - \TUD@parameter@set{tudpage}{#1}% - \tud@ps@select% - \tud@multicols@check% - \ifnum\tud@multicols>\@ne\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \fi% -}[% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% -] -\newcommand*\TUD@parameter@define@ps[1]{% - \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% - \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% - \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% - \TUD@parameter@define{headlogo}{\headlogo{#1}}% - \TUD@parameter@define{footlogo}{\footlogo{#1}}% - \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% - \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% - \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% - \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% - \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% - \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% - \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% - \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% - \TUD@parameter@let{logo}{headlogo}% +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% } -\TUD@parameter{tudpage}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{% - \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% - headings, plain, empty or any tudheadings page style type% - }% - }}}% - }% - }% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% } -%%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{} -\newcommand*\tud@chapter@fontcolor{} -\newkomafont{parttitle}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@layer@#1\endcsname% } -\newlength\pageheadingsvskip -\newlength\headingsvskip -\newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}} -\newcommand*\tud@headmidvskip@neg{% - \setbox\z@\vbox{\tud@headmidvskip}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima\MessageBreak% + }% + \fi% + \endgroup% + \vbox to #1{#2}% } -\newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% false - \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% !false - \bool@std@lock{@tud@cover@cdgeometry}{true}% - \fi% - \ifcase\tud@layout@title\relax% false - \tud@cmd@restore{maketitle}% - \tud@cmd@restore{@maketitle}% - \tud@cmd@restore{titlepagestyle}% - \tud@font@koma@unset{titlehead}% - \tud@font@koma@unset{title}% - \tud@font@koma@unset{subtitle}% - \tud@font@koma@unset{subject}% - \tud@font@koma@unset{author}% - \tud@font@koma@unset{date}% - \tud@font@koma@unset{publishers}% - \else% !false - \tud@cmd@store{maketitle}% - \tud@cmd@store{@maketitle}% - \tud@cmd@store{titlepagestyle}% - \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% - \tud@font@koma@set{title}{% - \usekomafont{disposition}% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@title@fontcolor}% +\AtBeginDocument{% + \tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% }% - \tud@font@koma@set{subtitle}{% - \tud@font@heading% - \usesizeofkomafont{section}% - \tud@color{\tud@title@fontcolor}% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% }% - \tud@font@koma@set{subject}{% - \fontfamily{\sfdefault}% - \fontseries{\bfdefault}% - \selectfont% - \tud@color{\tud@title@fontcolor}% + }{}% +} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% + }{% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% }% - \tud@font@koma@set{author}{\usekomafont{subject}}% - \tud@font@koma@set{date}{\usekomafont{titlepage}}% - \tud@font@koma@set{publishers}{\usekomafont{author}}% - \let\maketitle\tud@maketitle% - \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% false - \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadendvskip}% - \tud@cmd@restore{partheademptypage}% - \tud@cmd@restore{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@startpart}% - \tud@cmd@restore{scr@@startspart}% - }{% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@len@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUD@Class@Name}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% }% - \tud@sectioning@reset[addpart]{part}% - \tud@font@koma@unset{partnumber}% - \else% !false - \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadendvskip}% - \tud@cmd@store{partheademptypage}% - \tud@cmd@store{partpagestyle}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@startpart}% - \tud@cmd@store{scr@@startspart}% - }{% - \tud@cmd@store{@part}% - \tud@cmd@store{@spart}% + \tud@headlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% + \global\@tud@mainlogo@setfalse% + \fi% +} +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + }% + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} +\newcommand*\tud@headlogo@wrn{} +\newcommand*\headlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% }% - \if@tud@parttitle% - \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% - \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \else% - \tud@sectioning@set[addpart]{part}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@comp@resetpagestyle% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% }% - \tud@font@koma@set{partnumber}{% - \tud@font@heading% - \tud@color{\tud@part@fontcolor}% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% + }% + \@tempb% }% + \or\or% \tud@ddc@head@num=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head@num=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head@num=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head@num=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head@num=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head@num=white + \@tempc{DDC-30}{}% \fi% - \let\partheadstartvskip\tud@partheadstartvskip% - \let\partheadendvskip\tud@partheadendvskip% - \let\partheademptypage\relax% - \renewcommand*\partpagestyle{plain.tudheadings}% - \ifcsdef{scr@v@3.18}{% - \let\scr@@startpart\tud@@startpart% - \let\scr@@startspart\tud@@startspart% - }{% - \let\@part\tud@@part% - \let\@spart\tud@@spart% - }% + \global\@tud@headlogo@option@setfalse% \fi% - \ifcase\tud@layout@chapter\relax% false - \tud@cmd@restore{chapterheadstartvskip}% - \tud@cmd@restore{chapterformat}% - \tud@cmd@restore{@chapter}% - \tud@cmd@restore{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@restore{scr@@makechapterhead}% - }{% - \tud@cmd@restore{@@makechapterhead}% - }% - \tud@sectioning@reset[addchap]{chapter}% - \tud@font@koma@unset{chapterprefix}% - \tud@sectioning@reset[addsec]{section}% - \tud@sectioning@reset{subsection}% - \tud@sectioning@reset{subsubsection}% - \tud@sectioning@reset{minisec}% - \else% !false - \tud@cmd@store{chapterheadstartvskip}% - \tud@cmd@store{chapterformat}% - \tud@cmd@store{@chapter}% - \tud@cmd@store{@schapter}% - \ifcsdef{scr@v@3.18}{% - \tud@cmd@store{scr@@makechapterhead}% - }{% - \tud@cmd@store{@@makechapterhead}% - }% - \tud@sectioning@set[addchap]{chapter}{% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@chapter@fontcolor}% +} +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% }% - \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% - \tud@sectioning@set[addsec]{section}{\tud@font@heading}% - \tud@sectioning@set{subsection}{\tud@font@heading}% - \tud@sectioning@set{subsubsection}{\tud@font@heading}% - \tud@sectioning@set{minisec}{\tud@font@heading}% - \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \ifcsdef{scr@v@3.18}{% - \let\scr@@makechapterhead\tud@@@makechapterhead% + \vss% + }{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% }{% - \let\@@makechapterhead\tud@@@makechapterhead% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% }% + }{}% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot@num=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot@num=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot@num=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot@num=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot@num=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% \fi% } -\newcommand*\tud@layout@specialpage@set[1]{% - \tud@font@koma@set{footnote}{% - \edef\@tempa{% - \noexpand\tud@color{% - \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + You should reduce `footlogoheight', because it is\MessageBreak + too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - }\@tempa% - }% - \tud@cmd@store{footnoterule}% - \let\footnoterule\relax% + }% + \usebox\z@\hspace*{-\wd\z@}% + \fi% } -\newcommand*\tud@layout@specialpage@unset{% - \tud@font@koma@unset{footnote}% - \tud@cmd@restore{footnoterule}% +\tud@newlayerbox{foot@cmd} +\newcommand*\footlogosep{\hfill} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} +\newcommand*\footlogo[2][]{% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@comp@resetpagestyle% } -\newcommand*\tud@partheadstartvskip{% - \def\tud@part@fontcolor{}% false/true - \ifcase\tud@layout@part\relax\or\or% litecolor - \def\tud@part@fontcolor{HKS41}% - \or% barcolor - \def\tud@part@fontcolor{HKS41}% - \or% bicolor - \def\tud@part@fontcolor{HKS41}% - \or% color - \def\tud@part@fontcolor{HKS41!30}% - \or% full - \def\tud@part@fontcolor{HKS41!30}% +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\tud@footlogo@filenames\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% \fi% - \tud@layout@specialpage@set{part}% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \def\@tempa{}% + \def\@tempb{}% + \@tempswatrue% + \def\do##1{% + \if@tempswa% + \def\@tempa{##1}% + \@tempswafalse% + \else% + \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \fi% + }% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% + }% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% + }% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% - \vspace*{\pageheadingsvskip}% - \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% - \if@tud@parttitle% - \begingroup% - \tud@font@heading% - \tud@font@heading@size% - \tud@color{\tud@part@fontcolor}% - \ifx\@@title\@empty% - \ClassWarning{\TUDClassName}{% - You activated the option `parttitle' but\MessageBreak% - no title was given% - }% - \tud@makeuppercase{\strut}% - \else% - \tud@makeuppercase{\@@title}% - \fi% - \par\nobreak% - {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% - \endgroup% - \else% - \usekomafont{partnumber}{\tud@headmidvskip@neg}% - \fi% \endgroup% } -\newcommand*\tud@partheadendvskip{% - \tud@cleardoublespecialpage{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@part\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% - \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% - }% - \tud@layout@specialpage@unset% +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% } -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% -\if@tempswa - \newcommand*\tud@@startpart{}% - \let\tud@@startpart\scr@@startpart% - \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% - \if@tempswa% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip% - \fi% - }% - }{}{\tud@patch@wrn{scr@startpart}}% +\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} +\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\footcontent{% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% + }{% + \renewcommand*\tud@footcontent@fontface{% + \usekomafont{tudheadings}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% + \selectfont% + }% + \tud@footcontent@do% + }% +} +\newcommand*\tud@footcontent@do[2][]{% + \kernel@ifnextchar[%] + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% +} +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% + \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% + \fi% +} +\newcommand*\tud@footcontent@use[2]{% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% + \fi% + \fi% \else% - \patchcmd{\tud@@startpart}{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\@nameuse{#1format}}% - \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% - \partheadmidvskip - }{}% - }{% - \ifnumbered{#1}{% - \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% - \if@tud@parttitle% - \enskip% + \@tempswatrue% + \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \linespread{1}% + \vss% + \hbox to #2{% + \tud@footcontent@fontface% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% \else% - \tud@headmidvskip% - \fi% - }{% - \if@tud@parttitle\else% - \usekomafont{#1prefix}{\vphantom{\partname}}% - \tud@headmidvskip% + \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@patch@wrn{scr@startpart}}% - \fi% - \newcommand*\tud@@startspart{}% - \let\tud@@startspart\scr@@startspart% - \patchcmd{\tud@@startspart}{% - \normalfont - \sectfont\nobreak - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip\nobreak% - \fi% - }{}{\tud@patch@wrn{scr@@startspart}}% -\else - \newcommand*\tud@@part{}% - \let\tud@@part\@part - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% - }{}% - }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% - \if@tud@parttitle% - \enskip% - \else% - \tud@headmidvskip% - \fi% + \vss\vss% }{% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% \fi% }% - }{}{\tud@patch@wrn{@part}}% - \newcommand*\tud@@spart{}% - \let\tud@@spart\@spart - \patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part - }{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \tud@headmidvskip\nobreak% - \fi% - \size@part% - }{}{\tud@patch@wrn{@spart}} -\fi -\newcommand*\tud@partpreamble{% - \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap - \KOMAoptions{titlepage=false}% - \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% - \addtokomafont{dictumtext}{\tud@color{\tud@part@fontcolor}}% - \tud@color{\tud@part@fontcolor}% - \vskip\dimexpr\topskip+.9\baselineskip\relax% - \@afterindentfalse\@afterheading% -} -\newcommand*\tud@chapterheadstartvskip{% - \def\tud@chapter@fontcolor{}% - \ifcase\tud@layout@chapter\relax\or\else% *color - \def\tud@chapter@fontcolor{HKS41}% + \else% + \hbox to #2{}% \fi% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% +} +\newcommand*\tud@ps@parameters[1]{% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% +} +\newcommand*\tud@envir@ps{tudheadings} +\newcommand*\tud@envir@selectps{% + \expandafter\pagestyle\expandafter{\tud@envir@ps}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \renewcommand*\titlepagestyle{empty}% + \renewcommand*\partpagestyle{empty}% + \renewcommand*\chapterpagestyle{empty}% + \renewcommand*\indexpagestyle{empty}% + }{}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \renewcommand*\titlepagestyle{empty.tudheadings}% + \renewcommand*\partpagestyle{empty.tudheadings}% + \renewcommand*\chapterpagestyle{empty.tudheadings}% + \renewcommand*\indexpagestyle{empty.tudheadings}% + }{}% +} +\newcommand*\tud@currentpagestyle@value{} +\newcommand*\tud@currentpagestyle@set{% + \ifdefvoid{\tud@currentpagestyle@value}{% + \xdef\tud@currentpagestyle@value{\currentpagestyle}% + }{}% +} +\newcommand*\tud@currentpagestyle@reset{% + \ifdefvoid{\tud@currentpagestyle@value}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% + \let\tud@currentpagestyle@value\relax% }% - \if@tud@chapterpage% - \vspace*{\pageheadingsvskip}% - \else% - \vspace*{\headingsvskip}% +} +\NewEnviron{tudpage}[1][]{% + \tud@currentpagestyle@set% + \clearpage% + \def\tud@envir@ps{tudheadings}% + \TUD@parameter@set{tudpage}{#1}% + \tud@envir@selectps% + \tud@x@multicol@check% + \ifnum\tud@x@multicol@num>\@ne\relax% + \begin{multicols}{\tud@x@multicol@num}% \fi% -}% -\@tempswafalse -\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% -\if@tempswa - \newcommand*\tud@@@makechapterhead{} - \let\tud@@@makechapterhead\scr@@makechapterhead - \patchcmd{\tud@@@makechapterhead}{% - \csname #1format\endcsname% - \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \vskip-\parskip% - \tud@makeuppercase{\csname #1format\endcsname}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{scr@@makechapterhead}}% -\else - \newcommand*\tud@@@makechapterhead{} - \let\tud@@@makechapterhead\@@makechapterhead - \patchcmd{\tud@@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \vskip-\parskip% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{@@makechapterhead}}% -\fi -\newcommand*\tud@chapterpreamble{% - \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap - \KOMAoptions{titlepage=false}% - \if@tud@chapterpage% - \ifcase\tud@cdfont\relax\or% true - \TUDoptions{cdfont=true}% - \or% heavy - \TUDoptions{cdfont=heavy}% - \fi% - \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% - \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}% - \tud@color{\tud@chapter@fontcolor}% + \BODY% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% \fi% - \@afterindentfalse\@afterheading% +}[% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% +] +\TUD@parameter@family{tudpage}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{% + \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% + \TUD@parameter@error{pagestyle}{% + headings, plain, empty or any tudheadings page style type% + }% + }}}% + }% + }% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@default{}% } -\patchcmd{\set@@@@preamble}{% - \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% -}{% - \def\@tempa####1@####2{% - \@nameuse{tud@####1preamble}% - \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% +%%% 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% + }% }% - \hbox to\hsize{% - \let\phantomsection\relax% - #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempb\do{% + \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% + \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% + \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\Large}}{}}}}% }% -}{}{\tud@patch@wrn{set@@@@preamble}} -\newcommand*\tud@chapter@pre{% - \if@tud@chapterpage% - \@restonecolfalse% - \if@twocolumn\@restonecoltrue\onecolumn\fi% - \tud@layout@specialpage@set{chapter}% - \fi% } -\newcommand*\tud@head@bar@store{}% -\let\tud@head@bar@store\relax% -\newcommand*\tud@head@bar@restore{}% -\let\tud@head@bar@restore\relax% -\newcommand*\tud@chapter@app{% - \if@tud@chapterpage% - \tud@cleardoublespecialpage{% - \def\tud@pagecolor{}% - \let\tud@foot@fontcolor\tud@chapter@fontcolor% - \ifcase\tud@layout@chapter\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \def\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar}{1}% - \or% fullcolor - \def\tud@pagecolor{HKS41!10}% - \cs@set@lock{tud@head@bar}{3}% - \fi% - \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% - \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% - \clearpage% +\AtEndPreamble{\tud@x@scr@headings@set} +\newcommand*\tud@x@scr@headings@reset{% + \tud@layout@process% + \tud@x@scr@headings@set[% + \ifcase\tud@layout@part@num\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@chapter@num\relax\else% !false + \tud@font@koma@reset{chapter}% + \tud@font@koma@reset{chapterprefix}% + \fi% + \ifcase\tud@layout@section@num\relax\else% !false + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \fi% + ]% +} +\newcommand*\tud@title@fontcolor{} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@chapter@fontcolor{} +\newcommand*\tud@section@fontcolor{} +\providecommand*\raggedtitle{\tud@raggedright} +\newkomafont{parttitle}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + \usesizeofkomafont{section}% +} +\newcommand*\tud@headmidvskip@normal{\par\nobreak\vspace{.5\baselineskip}} +\newcommand*\tud@headmidvskip@reverse{% + \setbox\z@\vbox{\tud@headmidvskip@normal}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% +} +\newcommand*\tud@layout@process{% + \ifcase\tud@layout@cover@num\relax% false + \bool@std@lock{@tud@cdgeometry@cover}{false}% + \else% !false + \bool@std@lock{@tud@cdgeometry@cover}{true}% + \fi% + \ifcase\tud@layout@title@num\relax% false + \tud@cmd@restore{titlepagestyle}% + \tud@font@koma@unset{titlehead}% + \tud@font@koma@unset{title}% + \tud@font@koma@unset{subtitle}% + \tud@font@koma@unset{subject}% + \tud@font@koma@unset{author}% + \tud@font@koma@unset{date}% + \tud@font@koma@unset{publishers}% + \else% !false + \tud@cmd@store{titlepagestyle}% + \renewcommand*\titlepagestyle{plain.tudheadings}% + \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}% + \tud@font@koma@set{title}{% + \raggedtitle% + \usekomafont{disposition}% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@title@fontcolor}% }% - \tud@layout@specialpage@unset% - \if@restonecol\twocolumn\fi% - \else% - \edef\tud@head@bar@store{\tud@head@bar}% - \edef\tud@head@bar@restore{% - \gdef\noexpand\tud@head@bar{\tud@head@bar@store}% - \global\let\noexpand\tud@head@bar@store\relax% - \global\let\noexpand\tud@head@bar@restore\relax% + \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@font@koma@set{subject}{% + \sffamily% + \bfseries% + \tud@color{\tud@title@fontcolor}% + }% + \tud@font@koma@set{author}{\usekomafont{subject}}% + \tud@font@koma@set{date}{\usekomafont{titlepage}}% + \tud@font@koma@set{publishers}{\usekomafont{author}}% + \fi% + \ifcase\tud@layout@part@num\relax% false + \tud@cmd@restore{partheadstartvskip}% + \tud@cmd@restore{partheadendvskip}% + \tud@cmd@restore{partheademptypage}% + \tud@cmd@restore{partpagestyle}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% + \tud@cmd@restore{scr@@startspart}% + }{% + \tud@cmd@restore{@part}% + \tud@cmd@restore{@spart}% + }% + \tud@sectioning@reset[addpart]{part}% + \tud@font@koma@unset{partnumber}% + \tud@cmd@restore{raggedpart}% + \else% !false + \tud@cmd@store{partheadstartvskip}% + \let\partheadstartvskip\tud@partheadstartvskip% + \tud@cmd@store{partheadendvskip}% + \let\partheadendvskip\tud@partheadendvskip% + \tud@cmd@store{partheademptypage}% + \let\partheademptypage\relax% + \tud@cmd@store{partpagestyle}% + \renewcommand*\partpagestyle{plain.tudheadings}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \let\scr@@startpart\tud@@startpart% + \tud@cmd@store{scr@@startspart}% + \let\scr@@startspart\tud@@startspart% + }{% + \tud@cmd@store{@part}% + \let\@part\tud@@part% + \tud@cmd@store{@spart}% + \let\@spart\tud@@spart% }% - \ifcase\tud@layout@chapter\relax\or% true - \cs@std@lock{tud@head@bar}{0}% - \or% litecolor - \cs@set@lock{tud@head@bar}{1}% - \or% barcolor - \cs@set@lock{tud@head@bar}{2}% - \or% bicolor - \cs@set@lock{tud@head@bar}{3}% - \or% color - \cs@set@lock{tud@head@bar}{1}% - \or% fullcolor - \cs@set@lock{tud@head@bar}{3}% + \if@tud@parttitle% + \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% + \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% + \else% + \tud@sectioning@set[addpart]{part}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% + \tud@font@koma@set{partnumber}{% + \tud@sec@fontface% + \tud@color{\tud@part@fontcolor}% + }% \fi% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% - \fi% - \if@twocolumn% - \@afterindentfalse\@afterheading% + \tud@cmd@store{raggedpart}% + \renewcommand*\raggedpart{\tud@raggedright}% \fi% -} -\newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\TUDClassName}{% - Option `clearcolor' is only available together with\MessageBreak% - options `twoside' and `open=right'% - }% - \global\let\tud@clearcolor@wrn\relax% -} -\newcommand*\tud@part{} -\newcommand*\tud@spart{} -\newcommand*\tud@addpart{} -\newcommand*\tud@saddpart{} -\newcommand*\tud@chapter{} -\newcommand*\tud@schapter{} -\newcommand*\tud@addchap{} -\newcommand*\tud@saddchap{} -\newcommand*\tud@section{} -\newcommand*\tud@ssection{} -\newcommand*\tud@addsec{} -\newcommand*\tud@saddsec{} -\newcommand*\tud@subsection{} -\newcommand*\tud@ssubsection{} -\newcommand*\tud@subsubsection{} -\newcommand*\tud@ssubsubsection{} -\newcommand*\tud@sectioning@set[3][]{% - \tud@cmd@store{#2}% - \ifstr{#2}{minisec}{% - \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% - }{% - \tud@sectioning@case{#2}% - \ifblank{#1}{}{% - \tud@cmd@store{#1}% - \tud@sectioning@case{#1}% - }% - }% - \tud@font@koma@set{#2}{#3}% -} -\newcommand*\tud@sectioning@case[1]{% - \csedef{#1}{% - \noexpand\SecDef% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@#1\endcsname% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname tud@s#1\endcsname% - }% - \csedef{tud@#1}[##1]##2{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname% - [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% - }% - \csedef{tud@s#1}##1{% - \expandafter\expandafter\expandafter\noexpand% - \expandafter\csname @@tud@#1\endcsname*% - {\noexpand\tud@sectioning@uppercase{##1}}% - }% - \ifstr{#1}{addsec}{% - \def\tud@addsec[##1]##2{% - \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + \ifcase\tud@layout@chapter@num\relax% false + \tud@cmd@restore{chapterheadstartvskip}% + \tud@cmd@restore{chapterformat}% + \tud@cmd@restore{@chapter}% + \tud@cmd@restore{@schapter}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@makechapterhead}% + }{% + \tud@cmd@restore{@@makechapterhead}% }% - \def\tud@saddsec##1{% - \@@tud@addsec*{\tud@sectioning@uppercase##1}% + \tud@sectioning@reset[addchap]{chapter}% + \tud@font@koma@unset{chapterprefix}% + \tud@cmd@restore{raggedchapter}% + \else% !false + \tud@cmd@store{chapterheadstartvskip}% + \let\chapterheadstartvskip\tud@chapterheadstartvskip% + \tud@cmd@store{chapterformat}% + \tud@cmd@store{@chapter}% + \tud@cmd@store{@schapter}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@makechapterhead}% + \let\scr@@makechapterhead\tud@@makechapterhead% + }{% + \tud@cmd@store{@@makechapterhead}% + \let\@@makechapterhead\tud@@makechapterhead% }% - }{}% - \@tempswafalse% - \ifstr{#1}{chapter}{\@tempswatrue}{}% - \ifstr{#1}{addchap}{\@tempswatrue}{}% - \if@tempswa% - \def\@tempa{,s}% - \@for\@tempb:=\@tempa\do{% - \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@pre% - }{}{\tud@patch@wrn{tud@sectioning@case}}% - \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% - \tud@chapter@app% - }{}{\tud@patch@wrn{tud@sectioning@case}}% + \tud@sectioning@set[addchap]{chapter}{% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@chapter@fontcolor}% }% + \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% + \tud@cmd@store{raggedchapter}% + \renewcommand*\raggedchapter{\tud@raggedright}% \fi% -} -\newcommand*\tud@sectioning@reset[2][]{% - \tud@cmd@restore{#2}% - \ifblank{#1}{}{\tud@cmd@restore{#1}}% - \tud@font@koma@unset{#2}% -} -\robustify{\footnote}% -\newcommand*\tud@sectioning@uppercase[1]{% - \begingroup% - \if@tud@symbolheadings% - \let\c@footnote\c@symbolheadings% - \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}% + \ifcase\tud@layout@section@num\relax% false + \tud@sectioning@reset[addsec]{section}% + \tud@sectioning@reset{subsection}% + \tud@sectioning@reset{subsubsection}% + \tud@sectioning@reset{minisec}% + \tud@sectioning@reset{paragraph}% + \tud@sectioning@reset{subparagraph}% + \tud@cmd@restore{raggedsection}% + \else% !false + \renewcommand*\tud@section@fontcolor{}% + \ifcase\tud@layout@section@num\relax\or\else% *color + \renewcommand*\tud@section@fontcolor{HKS41}% \fi% - \tud@makeuppercase{#1}% - \endgroup% -} -%%% From File: tudscr-frontmatter.dtx -\newcommand*\tud@fm@check[2]{% - \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section - \ifboolexpr{% - bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% - }{% - \sbox\z@{\vbox{#2}}% - \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% - \ClassWarning{\TUDClassName}{% - The given content within the `#1'\MessageBreak% - environment is too large, so it wasn't possible\MessageBreak% - to center the body vertically. Setting the option\MessageBreak% - `#1=nofill' would be a solution. You\MessageBreak% - could also use multiple `#1' environments% - }% - \boolfalse{@tud@#1@fil}% - \fi% - }{}% - }{% chapter - \boolfalse{@tud@#1@multi}% - \boolfalse{@tud@#1@fil}% - }% - \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% - \tud@fm@toc{#1}{#2}% + \tud@sectioning@set[addsec]{section}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subsubsection}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{minisec}{% + \tud@sec@fontface% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{paragraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@sectioning@set{subparagraph}{% + \ifstr{\tud@pagecolor}{HKS41}{}{\tud@color{\tud@section@fontcolor}}% + }% + \tud@cmd@store{raggedsection}% + \renewcommand*\raggedsection{\tud@raggedright}% \fi% - \global\let\tud@fm@set\tud@fm@first% - #2% } -\newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} -\newcommand*\tud@fm@toc[2]{% - \ifbool{@tud@#1@multi}{% - \begingroup% - \let\tud@fm@@@toc\@empty% - \renewcommand*\tud@fm@head[2]{% - \protected@edef\@tempa{##2}% - \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% - \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% - }% - \let\clearpage\relax% - \sbox\z@{\vbox{#2}}% - \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% - \noexpand\addchaptertocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }% - }% - \@tempa% - }{% - \ClassWarning{\TUDClassName}{% - It isn't possible to use `#1=single'\MessageBreak% - or `#1=chapter' - with `#1=tocmultiple'% - }% +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% \edef\@tempa{% - \noexpand\cs@set@lock{tud@#1@toc}{% - \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% }% - }% - \@tempa% + }\@tempa% }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% } -\newcommand\tud@fm@set[1]{} -\newcommand\tud@fm@first[1]{% - \global\let\tud@fm@set\tud@fm@next% - \if@twocolumn\else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \null\vfil% - \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section - \vspace{\dimexpr-\parskip-\baselineskip\relax}% - {\usekomafont{section}{\vspace{-\baselineskip}}}% +\newcommand*\tud@layout@specialpage@unset{% + \tud@font@koma@unset{footnote}% + \tud@cmd@restore{footnoterule}% +} +\newcommand*\tud@partheadstartvskip{% + \renewcommand*\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part@num\relax\or\or% litecolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@part@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@part@fontcolor{HKS41!30}% + \fi% + \tud@layout@specialpage@set{part}% + \begingroup% + \vspace*{% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% + }% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% + \if@tud@parttitle% + \begingroup% + \tud@sec@fontface% + \tud@sec@fontsize% + \tud@color{\tud@part@fontcolor}% + \ifx\@@title\@empty% + \ClassWarning{\TUD@Class@Name}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% + \tud@makeuppercase{\strut}% + \else% + \tud@makeuppercase{\@@title}% \fi% - }{}% + \par\nobreak% + {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% + \endgroup% + \else% + \usekomafont{partnumber}{\tud@headmidvskip@reverse}% \fi% - \fi% + \endgroup% +} +\newcommand*\tud@partheadendvskip{% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@part@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% + \fi% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + \clearpage% + }% + \tud@layout@specialpage@unset% } -\newcommand\tud@fm@next[1]{% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% +\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \ifcsdef{scr@v@3.21}{\@tempswatrue}{\@tempswafalse}% + \if@tempswa% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\nobreak\tud@makeuppercase{\@nameuse{#1format}}}% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip@normal% + \fi% + }{% + \if@tud@parttitle\else% + \usekomafont{#1prefix}{\vphantom{\partname}}% + \tud@headmidvskip@normal% + \fi% + }% + }{}{\tud@patch@wrn{scr@@startpart}}% \else% - \if@titlepage% - \ifbool{@tud@#1@multi}{% - \ifbool{@tud@#1@fil}{\vfil}{}% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip@normal% + \fi% }{% - \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + \if@tud@parttitle\else% + \usekomafont{#1prefix}{\vphantom{\partname}}% + \tud@headmidvskip@normal% + \fi% }% - \else% - \ifnum\@nameuse{tud@#1@level}=\z@% - \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% - \fi% - \fi% + }{}{\tud@patch@wrn{scr@@startpart}}% \fi% -} -\newcommand*\tud@fm@body@start[3]{% - \begingroup% - \TUD@parameter@set{#1}{#2}% - \tud@fm@set{#1}% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true - \fi\fi% - \ifnum\tud@multicols>\@ne\relax% - \setlength\multicolsep{\z@}% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% - \else% - \tud@fm@head{#1}{#3}% - \fi% -} -\newcommand*\tud@fm@body@end[1]{% - \ifnum\tud@multicols>\@ne\relax% - \end{multicols}% - \else% - \par% + \newcommand*\tud@@startspart{}% + \let\tud@@startspart\scr@@startspart% + \patchcmd{\tud@@startspart}{% + \normalfont + \sectfont\nobreak + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal\nobreak% \fi% - \if@twocolumn\else\if@titlepage\else\relax% - \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true - \fi\fi% - \endgroup% -} -\newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% false - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + }{}{\tud@patch@wrn{scr@@startspart}}% +\else + \newcommand*\tud@@part{}% + \let\tud@@part\@part% + \patchcmd{\tud@@part}{% + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \setlength{\@tempskipa}{\scr@part@innerskip}% + \partheadmidvskip% + }{}% + }{% + \ifnumbered{part}{% + \size@partnumber{\tud@makeuppercase{\partformat}}% + \if@tud@parttitle% + \enskip% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@headmidvskip@normal% + \fi% + }{% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal% \fi% }% - \or% true - \if@titlepage\endgraf\fi% - \csname phantomsection\endcsname% - \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% - }% - \begingroup% - \noindent\centering% - \normalfont\sectfont\nobreak#2% - \@endparpenalty\@M% - \endgraf% - \endgroup% - \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% - \@afterheading% - \or% section - \section*{#2}% - \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% - \or% chapter - \chapter*{#2}% - \@mkdouble{\MakeMarkcase{#2}}% - \fi% - \ifbool{@tud@#1@markboth}{% - \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% - }{}% - \ifnum\@nameuse{tud@#1@toc}>\z@\relax% - \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% - \ifnumodd{\csname tud@#1@toc\endcsname}{% - \addchaptertocentry{}{#2}% - }{% - \addsectiontocentry{}{#2}% - }% + }{}{\tud@patch@wrn{@part}}% + \newcommand*\tud@@spart{}% + \let\tud@@spart\@spart% + \patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip@normal\nobreak% \fi% + \size@part% + }{}{\tud@patch@wrn{@spart}}% +\fi +\newcommand*\tud@partpreamble{% + \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap + \renewcommand*\tud@abstract@level@num{1}% \fi% + \KOMAoptions{titlepage=false}% + \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% + \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% + \tud@color{\tud@part@fontcolor}% + \vskip\dimexpr\topskip+.9\baselineskip\relax% + \@afterindentfalse\@afterheading% } -\newcommand*\tud@fm@pagestyle[2]{% - \if@titlepage% - \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% - You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined.% - }% - }% +\newcommand*\tud@chapterheadstartvskip{% + \renewcommand*\tud@chapter@fontcolor{}% + \ifcase\tud@layout@chapter@num\relax\or\else% *color + \renewcommand*\tud@chapter@fontcolor{HKS41}% + \fi% + \vspace*{% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip\relax% + }% + \if@tud@chapterpage% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \else% - \ClassWarning{\TUDClassName}{% - The key `pagestyle' can only be used either with\MessageBreak% - activated option `titlepage' or with chapter\MessageBreak% - headings (`#1=chapter')% - }% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \fi% } -\newcommand*\tud@quoting{quotation} -\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} -\csundef{abstract} -\csundef{endabstract} -\NewEnviron{abstract}[1][]{% - \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{abstract}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% +\newcommand*\tud@@makechapterhead{}% +\ifcsdef{scr@v@3.18}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \let\tud@@makechapterhead\scr@@makechapterhead% + \patchcmd{\tud@@makechapterhead}{% + \csname #1format\endcsname% + \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@reverse% + \vskip-\parskip% + \tud@makeuppercase{\csname #1format\endcsname}% + \tud@headmidvskip@normal% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% +\else + \let\tud@@makechapterhead\@@makechapterhead% + \patchcmd{\tud@@makechapterhead}{% + \chapterformat + \setlength{\@tempskipa}{\scr@chapter@innerskip}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@reverse% + \vskip-\parskip% + \tud@makeuppercase{\chapterformat}% + \tud@headmidvskip@normal% + }{}{\tud@patch@wrn{@@makechapterhead}}% +\fi +\newcommand*\tud@chapterpreamble{% + \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap + \renewcommand*\tud@abstract@level@num{1}% \fi% - \renewcommand*\nextabstract[1][]{% - \tud@fm@body@end{abstract}% - \tud@fm@body@start{abstract}{##1}{\abstractname}% + \KOMAoptions{titlepage=false}% + \if@tud@chapterpage% + \ifcase\tud@cdfont@num\relax\or% true + \TUDoptions{cdfont=true}% + \or% heavy + \TUDoptions{cdfont=heavy}% + \fi% + \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% + \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% + \tud@color{\tud@chapter@fontcolor}% + \fi% + \@afterindentfalse\@afterheading% +} +\CheckCommand\set@@@@preamble[6]{% + \expandafter\gdef\csname #1@preamble\endcsname{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }% - \tud@fm@check{abstract}{% - \tud@fm@body@start{abstract}{#1}{\abstractname}% - \BODY% - \tud@fm@body@end{abstract}% +} +\patchcmd{\set@@@@preamble}{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% +}{% + \def\@tempa####1@####2{% + \@nameuse{tud@####1preamble}% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% }% -}[% - \if@titlepage% - \if@tud@abstract@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \hbox to\hsize{% + \let\phantomsection\relax% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + }% +}{}{\tud@patch@wrn{set@@@@preamble}} +\newcommand*\tud@chapter@pre{% + \if@tud@chapterpage% + \@restonecolfalse% + \if@twocolumn\@restonecoltrue\onecolumn\fi% + \tud@layout@specialpage@set{chapter}% \fi% -] -\TUD@parameter{abstract}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@abstract@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@abstract@markbothfalse% - }{% - \@tud@abstract@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% +} +\newcommand*\tud@head@bar@store{} +\let\tud@head@bar@store\relax +\newcommand*\tud@head@bar@restore{} +\let\tud@head@bar@restore\relax +\newcommand*\tud@chapter@app{% + \if@tud@chapterpage% + \tud@cleardoublespecialpage{% + \renewcommand*\tud@pagecolor{}% + \let\tud@foot@fontcolor\tud@chapter@fontcolor% + \ifcase\tud@layout@chapter@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41!10}% + \cs@set@lock{tud@head@bar@num}{1}% + \or% fullcolor + \renewcommand*\tud@pagecolor{HKS41!10}% + \cs@set@lock{tud@head@bar@num}{3}% + \fi% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% + \clearpage% + }% + \tud@layout@specialpage@unset% + \if@restonecol\twocolumn\fi% + \else% + \edef\tud@head@bar@store{\tud@head@bar@num}% + \edef\tud@head@bar@restore{% + \gdef\noexpand\tud@head@bar@num{\tud@head@bar@store}% + \global\let\noexpand\tud@head@bar@store\relax% + \global\let\noexpand\tud@head@bar@restore\relax% }% - }% - \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% - \TUD@parameter@let{option}{abstract}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% -} -\newcommand*\nextabstract[1][]{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% - The command `\string\nextabstract' can only be used within\MessageBreak% - the environment `abstract'.% - }% -} -\newif\if@tud@declarations -\NewEnviron{declarations}[1][]{% - \@tud@declarationstrue% - \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter - \let\tud@ps\relax% - \TUD@parameter@set{declaration}{#1}% - \tud@multicols@check% - \if@titlepage% - \tud@currentpagestyle@set% - \ifx\tud@ps\relax\def\tud@ps{empty}\fi% - \clearpage% - \tud@ps@select% + \ifcase\tud@layout@chapter@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar@num}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar@num}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar@num}{3}% + \or% color + \cs@set@lock{tud@head@bar@num}{1}% + \or% fullcolor + \cs@set@lock{tud@head@bar@num}{3}% + \fi% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% - \tud@fm@check{declaration}{\BODY}% -}[% - \if@titlepage% - \if@tud@declaration@fil\vfil\null\fi% - \aftergroup\tud@currentpagestyle@reset% - \clearpage% + \if@twocolumn% + \@afterindentfalse\@afterheading% \fi% -] -\TUD@parameter{declaration}{% - \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% - \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% - \TUD@parameter@define{markboth}[true]{% - \ifstrbool{#1}{% - \@tud@declaration@markbothtrue% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - }{% - \@tud@declaration@markbothfalse% - }{% - \@tud@declaration@markbothfalse% - \ifx\tud@ps\relax\def\tud@ps{headings}\fi% - \manualmark\markboth{#1}{#1}% - }% - }% - \TUD@parameter@define{company}{\def\@company{#1}}% - \TUD@parameter@define{supporter}{\def\@supporter{#1}}% - \TUD@parameter@define{place}{\def\@place{#1}}% - \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}% - \TUD@parameter@let{confirmationclosing}{closing}% - \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% - \TUD@parameter@let{option}{declaration}% - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } -\newcommand*\declaration[1][]{% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \tud@fm@blocking% - \end{declarations}% +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\TUD@Class@Name}{% + Option `clearcolor' is only available together with\MessageBreak% + options `twoside' and `open=right'% }% + \global\let\tud@clearcolor@wrn\relax% } -\newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% - \tud@fm@body@start{declaration}{#1}{#2} - #3% - \tud@fm@body@end{declaration}% +\newcommand*\tud@part{} +\newcommand*\tud@spart{} +\newcommand*\tud@addpart{} +\newcommand*\tud@saddpart{} +\newcommand*\tud@chapter{} +\newcommand*\tud@schapter{} +\newcommand*\tud@addchap{} +\newcommand*\tud@saddchap{} +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}% }{% - \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% - The command `\string\nextdeclaration' can only be used\MessageBreak% - within the environment `declarations'.% + \tud@sectioning@case{#2}% + \ifblank{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% }% }% + \tud@font@koma@set{#2}{#3}% } -\newcommand*\confirmation[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{supporter=##1}% +\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% }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@confirmation[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@confirmation% - \end{declarations}% + \csedef{tud@#1}[##1]##2{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname% + [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}% }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% + \csedef{tud@s#1}##1{% + \expandafter\expandafter\expandafter\noexpand% + \expandafter\csname @@tud@#1\endcsname*% + {\noexpand\tud@sectioning@uppercase{##1}}% }% + \ifstr{#1}{addsec}{% + \def\tud@addsec[##1]##2{% + \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}% + }% + \def\tud@saddsec##1{% + \@@tud@addsec*{\tud@sectioning@uppercase##1}% + }% + }{}% + \@tempswafalse% + \ifstr{#1}{chapter}{\@tempswatrue}{}% + \ifstr{#1}{addchap}{\@tempswatrue}{}% + \if@tempswa% + \def\@tempa{,s}% + \@for\@tempb:=\@tempa\do{% + \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% + \tud@chapter@pre% + }{}{\tud@patch@wrn{tud@sectioning@case}}% + \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{% + \tud@chapter@app% + }{}{\tud@patch@wrn{tud@sectioning@case}}% + }% + \fi% } -\newcommand*\tud@fm@confirmation[1][]{% - \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% - \tud@fm@body@end{declaration}% -} -\newcommand*\blocking[1][]{% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@set{declaration}{company=##1}% - }% - \ifbool{@tud@declarations}{% - \begingroup% - \tud@fm@blocking[#1]% - \endgroup% - }{% - \begin{declarations}[#1]% - \tud@fm@blocking% - \end{declarations}% - }% - \TUD@parameter@sethandler[declaration]{% - \TUD@parameter@defaulthandler{declaration}{##1}% - }% +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifblank{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@unset{#2}% } -\newcommand*\tud@fm@blocking[1][]{% - \tud@fm@body@start{declaration}{#1}{\blockingname}% - \blockingtext% - \tud@fm@body@end{declaration}% +\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% } %%% From File: tudscr-title.dtx -\newkomafont{thesis}{\usekomafont{title}\LARGE} +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% +} \newkomafont{titlepage}{% \usekomafont{subject}% - \fontseries{\mddefault}% - \selectfont% + \mdseries% \large% } -\newcommand*\tud@title@fontcolor{} -\newcommand*\tud@titlepagenumber{}% -\let\tud@titlepagenumber\relax% +\robustify{\thanks} +\robustify{\footnotemark} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% + \let\\\newline% + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% + \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% +} +\newcommand*\tud@title@delimiter{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}} +\newcommand*\tud@newline@title{} +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% + \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% + {\usekomafont{author}{\ignorespaces#1}}% + \if@tud@cover\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% + \ifx\@dateofbirth\@empty\else% + \if@titlepage% + \tud@newline@title% + \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% + \fi% + \else% + \tud@title@wrn{dateofbirth}% + \fi% + \fi% + \def\@tempc##1{% + \ifstr{\csuse{@##1}}{}{}{% + \if@titlepage% + \tud@newline@title% + \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \csuse{@##1}% + \else% + \tud@title@wrn{##1}% + \fi% + }% + }% + \@tempc{course}% + \@tempc{discipline}% + \@tempc{matriculationnumber}% + \@tempc{matriculationyear}% + \fi% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 2ex}% +} +\newcommand*\tud@title@wrn[1]{% + \ClassWarning{\TUD@Class@Name}{% + `\@backslashchar#1' has to be used with\MessageBreak% + activated titlepage option% + }% +} +\newcommand*\tud@thesis@tosubject{% + \if@tud@subjectthesis\ifx\@thesis\@empty\else% + \ifx\@subject\@empty\else% + \ClassWarning{\TUD@Class@Name}{% + The option `subjectthesis' was activated, so\MessageBreak% + the field `subject' will be overwritten with the\MessageBreak% + given thesis% + }% + \fi% + \let\@subject\@thesis% + \fi\fi% +} +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% false - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \ifcase\tud@layout@title@num\relax% false + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% \else% !false \if@titlepage% - \tud@maketitlepage% + \tud@make@titlepage% \else% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\else% *color - \def\tud@title@fontcolor{HKS41}% - \fi% - \let\@maketitle\tud@@maketitle% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \if@twocolumn% - \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}% - \else% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \fi% + \tud@make@titlehead% \fi% \fi% \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% } -\TUD@parameter{title}{% - \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +\tud@cmd@store{maketitle} +\let\maketitle\tud@maketitle +\TUD@parameter@family{title}{% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% \TUD@parameter@let{cd}{cdtitle}% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}% -}% -\robustify{\thanks}% -\robustify{\footnotemark}% -\newcommand*\tud@titleback{}% -\newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\or% litecolor - \def\tud@title@fontcolor{HKS41}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +\newcommand*\tud@titleback{} +\newcommand*\tud@make@titlepage{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% bicolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% color - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \or% full - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% \tud@layout@specialpage@set{title}% - \ifx\tud@titlepagenumber\relax\else% - \setcounter{page}{\tud@titlepagenumber}% + \ifx\tud@title@pagenumber\relax\else% + \setcounter{page}{\tud@title@pagenumber}% \fi% \if@tud@cover\else% \let\footnotesize\small% @@ -4608,10 +5609,10 @@ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark% \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -4631,9 +5632,9 @@ \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% @@ -4650,20 +5651,11 @@ \noindent\@extratitle\next@tdpage% \fi% \fi% - \if@tud@bookmarks% - \if@tud@cover% - \tudbookmark[0]{\coverpagename}{cover}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \else% - \tudbookmark[0]{\titlepagename}{title}% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \fi% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\pageheadingsvskip}% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% @@ -4676,7 +5668,7 @@ }}% \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4685,20 +5677,20 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + {\usekomafont{date}{\tud@date@print\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -4712,7 +5704,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% + \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -4727,18 +5719,20 @@ \vskip 2ex\@plus.5fill% \fi% \if@tud@cover\else% - \tud@title@names{supervisor}% \tud@title@names{referee}% \tud@title@names{advisor}% + \tud@title@names{supervisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% {\usekomafont{date}{\@defensedate\par}}% \fi% \fi% @@ -4771,27 +5765,27 @@ \fi% \fi% \def\@tempa{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% true - \cs@std@lock{tud@head@bar}{0}% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@title@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -4815,22 +5809,6 @@ \fi% \fi% \end{titlepage}% - \if@tud@cover\else% - \setcounter{footnote}{0}% - \global\let\and\relax% - \fi% -} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% - \begingroup% - \def\thanks##1{\gdef\@tempa{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% } \newcommand*\tud@title@names[1]{% \letcs\@tempa{@#1}% @@ -4838,28 +5816,65 @@ \def\and{% \ifcsvoid{#1othername}{\par}{% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% }% \let\and\par% }% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% - {\usekomafont{author}{\@nameuse{@#1}\par}}% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% \fi% } -\newcommand*\@titledelim{:\nobreakspace} -\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} -\newcommand*\tud@@maketitle{% +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% + \fi% + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% +} +\newcommand*\tud@make@@titlehead{% \global\@topnum=\z@% \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\headingsvskip}% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% \begingroup% \usekomafont{titlepage}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% \sbox\z@{\vbox{% @@ -4870,7 +5885,7 @@ \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -4879,16 +5894,18 @@ \ifx\@titlehead\@empty\else\usebox\z@\par\fi% \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% - \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4898,287 +5915,691 @@ {\centering\usekomafont{dedication}{\@dedication\par}}% \fi% \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi% - \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% + \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi% + \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@newline{} -\newcommand*\tud@split@author@title[2]{% - \tud@multiple@fields@store{@author}{#1}% - \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% - {\usekomafont{author}{\ignorespaces#1}}% - \if@tud@cover\else% - \ifx\@authormore\@empty\else% - \tud@newline% - \@authormore% - \fi% - \ifx\@dateofbirth\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\dateofbirthtext}{}% - {}{\dateofbirthtext\@titledelim}\@dateofbirth% - \ifx\@placeofbirth\@empty\else% - \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% - \fi% - \else% - \tud@title@wrn{dateofbirth}% - \fi% - \fi% - \ifx\@matriculationnumber\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationnumbername}{}% - {}{\matriculationnumbername\@titledelim}% - \@matriculationnumber% - \else% - \tud@title@wrn{matriculationnumber}% - \fi% - \fi% - \ifx\@matriculationyear\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationyearname}{}% - {}{\matriculationyearname\@titledelim}% - \@matriculationyear% - \else% - \tud@title@wrn{matriculationyear}% - \fi% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% \fi% - \fi% - \tud@multiple@fields@restore{@author}% - \tud@multiple@@@split{#2}{\vskip 2ex}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \endgroup% } \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \maketitle[#1]% + \tud@maketitle[#1]% \onecolumn{#2}\twocolumn% \else% - \tud@title@twocolumn{\maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% \fi% \else% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% } -\newsavebox\tud@title@twocolumn@box +\newsavebox\tud@title@box \newcommand\tud@title@twocolumn[1]{% \onecolumn% \begingroup% \let\clearpage\relax% \let\newpage\relax% - \global\setbox\tud@title@twocolumn@box\vbox{% + \global\setbox\tud@title@box\vbox{% \vspace*{.9\baselineskip}#1\bigskip% }% \endgroup% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% \@tempswatrue% \fi% }{}% - \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax% - \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{% - \splittopskip\topskip% - \splitmaxdepth\maxdepth% - \vsplit\tud@title@twocolumn@box to \@tempdima% - \clearpage% - \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{\@tempswafalse}{}% - }% - \else% - \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@box to \@tempdima% + \clearpage% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% + }% + \else% + \setbox\tud@title@box\vbox{#1\bigskip}% + \fi% + \twocolumn[\unvbox\tud@title@box]% + \tud@if@v@lower{2.03}{% + \if@tempswa% + \ClassWarning{\TUD@Class@Name}{% + You are using a two-column title along with\MessageBreak% + the DDC-logo. Unfortunately in this case, the\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% + in both columns after the title% + }% + \fi% + }{}% +} +\newif\if@tud@cover +\newcommand*\makecover[1][]{% + \if@titlepageiscoverpage% + \ClassWarning{\TUD@Class@Name}{% + Using both option `titlepage=firstiscover' and\MessageBreak% + `\string\makecover' together isn't supported. The\MessageBreak% + option `titlepage=firstiscover' will be ignored. If you\MessageBreak% + want to create an individual cover, you have to use\MessageBreak% + `\string\extratitle' instead of `\string\makecover'.\MessageBreak% + See also the documentation of KOMA-Script% + }% + \@titlepageiscoverpagefalse% + \fi% + \clearpage% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \TUD@parameter@set{cover}{#1}% + \let\tud@layout@title@num\tud@layout@cover@num% + \tud@layout@process% + \if@tud@cdgeometry@cover% + \let\coverpagetopmargin\tud@len@slimmargin% + \let\coverpagebottommargin\tud@len@widemargin% + \let\coverpageleftmargin\tud@len@widemargin% + \let\coverpagerightmargin\tud@len@slimmargin% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \ifcase\tud@layout@cover@num\relax% false + \KOMAoptions{titlepage=firstiscover}% + \let\@extratitle\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \else% !false + \@tud@covertrue% + \@titlepagetrue% + \edef\titlepage@restore{% + \noexpand\endgroup% + \noexpand\global\noexpand\@colht\the\@colht% + \noexpand\global\noexpand\@colroom\the\@colroom% + \noexpand\global\vsize\the\vsize% + \noexpand\let\noexpand\titlepage@restore\noexpand\relax% + }% + \begingroup% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\dimexpr\tud@len@footsep+\footheight\relax% + \tud@if@v@lower{2.03}{% + \footskip=\dimexpr\tud@len@headsep+\footheight% + -1.25\baselineskip\relax% + }{}% + \if@tud@cdgeometry@cover% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep-1in\relax% + \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% + \ifx\@tempa\coverpagebottommargin\relax% + \let\coverpagebottommargin\tud@len@widemargin% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% + }{}% + \fi% + \fi% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% + -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% + \tud@len@areavskip=\z@% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% + \tud@maketitle% + \clearpage% + \titlepage@restore% + \fi% + \endgroup% +} +\bool@lock{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% + \TUD@parameter@let{cd}{cdcover}% + \TUD@parameter@def{cdgeometry}[true]{% + \ifstrbool{#1}{% + \bool@set@lock{@tud@cdgeometry@cover}{true}% + }{% + \bool@set@lock{@tud@cdgeometry@cover}{false}% + }{% + \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \TUD@parameter@error{cdgeometry}{true,false}% + }% + }% + }% + }% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \tud@ps@parameters{#1}% + \TUD@parameter@handler@value{pagenumber}% +} +%%% From File: tudscr-frontmatter.dtx +\newcommand*\tud@fm@check[2]{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUD@Class@Name}{% + The given content within the `#1'\MessageBreak% + environment is too large, so it wasn't possible\MessageBreak% + to center the body vertically. Setting the option\MessageBreak% + `#1=nofill' would be a solution. You\MessageBreak% + could also use multiple `#1' environments% + }% + \boolfalse{@tud@#1@fil}% + \fi% + }{}% + }{% chapter + \boolfalse{@tud@#1@multi}% + \boolfalse{@tud@#1@fil}% + }% + \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `#1=single'\MessageBreak% + or `#1=chapter' + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc@num}{% + \the\numexpr\csuse{tud@#1@toc@num}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \if@twocolumn\else% + \if@titlepage% + \ifbool{@tud@#1@fil}{\null\vfil}{}% + \fi% + \fi% + \global\let\tud@fm@set\tud@fm@next% +} +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% + \else% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\vfil\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\csuse{tud@#1@level@num}=\z@\relax% + \ifundef{\main@language}{}{\vspace*{-\baselineskip}}% + \fi% + \fi% + \fi% +} +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \begin{\tud@quoting}% + \fi% + \fi\fi% + \ifnum\tud@x@multicol@num>\@ne\relax% + \vspace{-\multicolsep}% + \begin{multicols}{\tud@x@multicol@num}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@x@multicol@num>\@ne\relax% + \end{multicols}% + \vspace{-\multicolsep}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\csuse{tud@#1@level@num}<\tw@\relax% false/true + \end{\tud@quoting}\par% + \fi% + \fi\fi% + \endgroup% +} +\newcommand*\tud@fm@head[2]{% + \ifcase\csuse{tud@#1@level@num}\relax% false + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true + \if@titlepage\endgraf\fi% + \csuse{phantomsection}% + \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% + \begingroup% + \noindent\centering% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \endgraf% + \endgroup% + \nopagebreak% + \vskip\dimexpr\medskipamount-\parskip\relax% + \@afterheading% + \or% section + \section*{#2}% + \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% + \or% chapter + \chapter*{#2}% + \@mkdouble{\MakeMarkcase{#2}}% + \fi% + \ifbool{@tud@#1@markboth}{% + \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% + }{}% + \ifcase\csuse{tud@#1@toc@num}\relax\or% totoc + \addchaptertocentry{}{#2}% + \or% totocleveldown + \addsectiontocentry{}{#2}% \fi% - \twocolumn[\unvbox\tud@title@twocolumn@box]% - \tud@ifverlower{2.03}{% - \if@tempswa% - \ClassWarning{\TUDClassName}{% - You are using a two-column title along with\MessageBreak% - the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% - in both columns after the title% +} +\newcommand*\tud@fm@pagestyle[2]{% + \if@titlepage% + \ifcsundef{ps@#2}{% + \ClassError{\TUD@Class@Name}{`#2' is no valid pagestyle}{% + You tried to use `#2' as a pagestyle for the\MessageBreak% + `#1' environment, but it was never defined.% }% - \fi% - }{}% + }{\def\tud@envir@ps{#2}}% + \else% + \ClassWarning{\TUD@Class@Name}{% + The key `pagestyle' can only be used either with\MessageBreak% + activated option `titlepage' or with chapter\MessageBreak% + headings (`#1=chapter')% + }% + \fi% } -\newcommand*\tud@letsubjectthesis{% - \if@tud@subjectthesis\ifx\@thesis\@empty\else% - \ifx\@subject\@empty\else% - \ClassWarning{\TUDClassName}{% - The option `subjectthesis' was activated.\MessageBreak% - The field `subject' will be overwritten with the\MessageBreak% - given thesis% +\newcommand*\tud@quoting{quotation} +\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} +\csundef{abstract} +\csundef{endabstract} +\NewEnviron{abstract}[1][]{% + \ifnum\tud@abstract@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{abstract}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% \fi% - \let\@subject\@thesis% - \fi\fi% + \clearpage% + \tud@envir@selectps% + \fi% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% +}[% + \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@abstract@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{abstract}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% + \TUD@parameter@def{markboth}[true]{% + \ifstrbool{#1}{% + \@tud@abstract@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + }{% + \@tud@abstract@markbothfalse% + }{% + \@tud@abstract@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% + }% + }% + \TUD@parameter@def{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@let{option}{abstract}% + \TUD@parameter@handler@default{}% } -\newcommand*\tud@title@wrn[1]{% - \ClassWarning{\TUDClassName}{% - `\@backslashchar#1' has to be used with\MessageBreak% - activated titlepage option% +\newcommand*\nextabstract[1][]{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% }% } -\newif\if@tud@cover -\newcommand*\makecover[1][]{% - \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% - Using both option `titlepage=firstiscover' and\MessageBreak% - `\string\makecover' together isn't supported. The\MessageBreak% - option `titlepage=firstiscover' will be ignored. If you\MessageBreak% - want to create an individual cover, you have to use\MessageBreak% - `\string\extratitle' instead of `\string\makecover'.\MessageBreak% - See also the documentation of KOMA-Script% - }% - \@titlepageiscoverpagefalse% - \fi% - \clearpage% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title\tud@layout@cover% - \tud@layout@process% - \if@tud@cover@cdgeometry% - \let\coverpagetopmargin\tud@dim@slimmargin% - \let\coverpagebottommargin\tud@dim@widemargin% - \let\coverpageleftmargin\tud@dim@widemargin% - \let\coverpagerightmargin\tud@dim@slimmargin% - \tud@ifverlower{2.03}{% - \def\coverpagetopmargin{.5\tud@dim@both}% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \ifcase\tud@layout@cover\relax% false - \KOMAoptions{titlepage=firstiscover}% - \let\@extratitle\@empty% - \let\@uppertitleback\@empty% - \let\@lowertitleback\@empty% - \let\@dedication\@empty% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% !false - \@tud@covertrue% - \@titlepagetrue% - \edef\titlepage@restore{% - \noexpand\endgroup% - \noexpand\global\noexpand\@colht\the\@colht% - \noexpand\global\noexpand\@colroom\the\@colroom% - \noexpand\global\vsize\the\vsize% - \noexpand\let\noexpand\titlepage@restore\noexpand\relax% +\newif\if@tud@declarations +\NewEnviron{declarations}[1][]{% + \@tud@declarationstrue% + \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter + \let\tud@envir@ps\relax% + \TUD@parameter@set{declaration}{#1}% + \tud@x@multicol@check% + \if@titlepage% + \tud@currentpagestyle@set% + \ifx\tud@envir@ps\relax% + \tud@if@tudheadings{\currentpagestyle}{% + \def\tud@envir@ps{empty.tudheadings}% + }{% + \def\tud@envir@ps{empty}% }% - \begingroup% - \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% - -\coverpagerightmargin\relax% - \headheight=0pt% - \headsep=0pt% - \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \tud@ifverlower{2.03}{% - \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax% - }{}% - \if@tud@cover@cdgeometry% - \def\coverpagetopmargin{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax% - }% - \else% - \topmargin=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep-1in\relax% - \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% - \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@dim@widemargin% - \tud@ifverlower{2.03}{% - \def\coverpagebottommargin{.5\tud@dim@both}% - }{}% - \fi% - \fi% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% - -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% - \topmargin=\dimexpr\coverpagetopmargin-1in\relax% - \@colht=\textheight% - \@colroom=\textheight% - \vsize=\textheight% - \columnwidth=\textwidth% - \hsize=\columnwidth% - \linewidth=\hsize% - \tud@dim@headdiff=\z@% - \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% - \tud@maketitle% - \clearpage% - \csname titlepage@restore\endcsname% \fi% - \endgroup% -} -\bool@lock{@tud@cover@cdgeometry} -\TUD@parameter{cover}{% - \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}% - \TUD@parameter@let{cd}{cdcover}% - \TUD@parameter@define{cdgeometry}[true]{% + \clearpage% + \tud@envir@selectps% + \fi% + \def\and{, }% + \let\thanks\@gobble% + \tud@fm@check{declaration}{\BODY}% +}[% + \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% + \else% + \ifnum\tud@declaration@level@num=\tw@\relax% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + \fi% +] +\TUD@parameter@family{declaration}{% + \TUD@parameter@def{language}{\selectlanguage{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#1}}% + \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% + \TUD@parameter@def{markboth}[true]{% \ifstrbool{#1}{% - \bool@set@lock{@tud@cover@cdgeometry}{true}% + \@tud@declaration@markbothtrue% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% - \bool@set@lock{@tud@cover@cdgeometry}{false}% + \@tud@declaration@markbothfalse% }{% - \TUD@parameter@error{cdgeometry}{true,false}% + \@tud@declaration@markbothfalse% + \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% + \manualmark\markboth{#1}{#1}% }% }% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% - \TUD@parameter@define@ps{#1}% - \TUD@parameter@sethandler{% - \ifxnumber{#1}{% - \TUD@parameter@set{cover}{pagenumber=#1}% - }{% - \TUD@parameter@set{cover}{cdgeometry=#1}% + \TUD@parameter@def{company}{\def\@company{#1}}% + \TUD@parameter@def{supporter}{\def\@supporter{#1}}% + \TUD@parameter@def{place}{\def\@place{#1}}% + \TUD@parameter@def{closing}{\def\@confirmationclosing{#1}}% + \TUD@parameter@let{confirmationclosing}{closing}% + \TUD@parameter@def{declaration}{\TUDoption{declaration}{#1}}% + \TUD@parameter@let{option}{declaration}% + \TUD@parameter@handler@default{}% +} +\newcommand*\tud@fm@supporter{} +\newcommand*\declaration{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@declaration% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@declaration% + }% +} +\newcommand*\tud@fm@declaration[1][]{% + \ifbool{@tud@declarations}{% + \begingroup% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + \tud@fm@blocking[#1]% + \endgroup% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \tud@fm@blocking% + \end{declarations}% + }% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2}% + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% }% }% } +\newcommand*\confirmation{% + \kernel@ifstar{% + \def\tud@fm@supporter{supporter=\@supervisor}% + \tud@fm@confirmation% + }{% + \def\tud@fm@supporter{supporter=\@supporter}% + \tud@fm@confirmation% + }% +} +\newcommand*\tud@fm@confirmation[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{supporter}% + \undef\KV@declaration@company% + \ifbool{@tud@declarations}{% + \tud@fm@@confirmation[\tud@fm@supporter,#1]% + }{% + \begin{declarations}[\tud@fm@supporter,#1]% + \tud@fm@@confirmation% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% +} +\newcommand*\blocking[1][]{% + \begingroup% + \TUD@parameter@handler@default[declaration]{company}% + \undef\KV@declaration@supporter% + \undef\KV@declaration@closing% + \undef\KV@declaration@confirmationclosing% + \ifbool{@tud@declarations}{% + \tud@fm@blocking[#1]% + }{% + \begin{declarations}[#1]% + \tud@fm@blocking% + \end{declarations}% + }% + \endgroup% +} +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% +} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% +\newcommand*\TUD@cmd@deprecated[2]{% \AtBeginDocument{% - \ifcsdef{#1}{}{% + \ifcsundef{#1}{% \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\TUDClassName}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% + \ClassWarning{\TUD@Class@Name}{% + The command `\@backslashchar#1' is deprecated\MessageBreak% It's recommended to use `\@backslashchar#2' instead% }% \csletcs{#1}{#2}% - \@nameuse{#2}% + \csuse{#2}% }% - }% + }{}% }% } -\newlength\chapterheadingvskip +\newcommand*\TUD@len@deprecated[2][]{% + \ifdim\csuse{#2}<\maxdimen\relax% + \ClassWarning{\TUD@Class@Name}{% + Using the length `\@backslashchar#2' is deprecated.\MessageBreak% + You should use option `#2' instead% + }% + \csxdef{tud@dim@#2}{\the\csuse{#2}}% + \expandafter\setlength\csname #2\endcsname{\maxdimen}% + \global\csuse{#2}=\csuse{#2}% + #1% + \fi% +} +\newlength\footlogoheight +\setlength\footlogoheight{\maxdimen} +\newlength\pageheadingsvskip +\setlength\pageheadingsvskip{\maxdimen} +\newlength\headingsvskip +\setlength\headingsvskip{\maxdimen} +\newcommand*\chapterheadingvskip{} \let\chapterheadingvskip\headingsvskip -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} +\TUD@cmd@deprecated{professorship}{chair} +\TUD@cmd@deprecated{studentid}{matriculationnumber} +\TUD@cmd@deprecated{matriculationid}{matriculationnumber} +\TUD@cmd@deprecated{enrolmentyear}{matriculationyear} +\TUD@cmd@deprecated{birthplace}{placeofbirth} +\TUD@cmd@deprecated{submissiondate}{date} +\TUD@cmd@deprecated{oralexaminationdate}{defensedate} +\TUD@cmd@deprecated{birthday}{dateofbirth} +\TUD@cmd@deprecated{location}{place} +\TUD@cmd@deprecated{logofile}{headlogo} +\TUD@cmd@deprecated{logofilename}{headlogo} \AfterPackage{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% + \TUD@cmd@deprecated{startdate}{issuedate}% + \TUD@cmd@deprecated{finaldate}{duedate}% + \TUD@cmd@deprecated{maturitydate}{duedate}% +} +\AtEndOfClass% +{% + \tud@if@v@lower{2.04}{\TUDoptions{relspacing=false}}{}% } %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}[chapter]% +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\AtBeginDocument{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% +} +\newif\if@tud@font@set +\newif\if@tud@font@math@set +\newif\if@tud@font@skip@set +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@layout@process +\newif\if@tud@cdgeometry@process +\newif\if@tud@cdgeometry@@process +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@math@setfalse% + \global\@tud@font@skip@setfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@font@math@set% + \tud@font@math@set% + \global\@tud@font@math@setfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@layout@processfalse% + \fi% + \if@tud@layout@process% + \tud@layout@process% + \global\@tud@layout@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \global\@tud@cdgeometry@@processfalse% + \fi% + \if@tud@cdgeometry@@process% + \tud@cdgeometry@@process% + \global\@tud@cdgeometry@@processfalse% + \fi% +} \newcommand*\tudbookmark[1][]{\@gobbletwo} -\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% \renewcommand*\tudbookmark[3][]{% \relax% @@ -5187,7 +6608,7 @@ \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% \fi% }% - \renewcommand*\tud@footnote@unhyper{% + \renewcommand*\tud@x@hyperref@realfootnotes{% \let\Hy@saved@footnotemark\@footnotemark% \let\Hy@saved@footnotetext\@footnotetext% \let\@footnotemark\H@@footnotemark% @@ -5195,26 +6616,89 @@ }% \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } -\pretocmd{\maketitle}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \tudbookmark[0]{\titlepagename}{title}% -}{}{\tud@patch@wrn{maketitle}} -\pretocmd{\tableofcontents}{% - \if@tud@bookmarks% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +\apptocmd{\titlepage}{% + \tud@x@bookmark@startatroot% + \if@tud@cover% + \tudbookmark[% + 0% + ]{\coverpagename}{cover}% + \else% + \tudbookmark[% + 0% + ]{\titlepagename}{title}% \fi% - \tudbookmark[0]{\contentsname}{toc}% -}{}{\tud@patch@wrn{tableofcontents}} +}{}{\tud@patch@wrn{titlepage}} +\pretocmd{\tud@make@titlehead}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 0% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@make@titlehead}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% + 0% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cmd@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cmd@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} \BeforePackage{tocloft}{% - \ClassWarning{\TUDClassName}{% - It is not recommended to use package `tocloft'.\MessageBreak% - Loading the package will certainly lead to problems\MessageBreak% - with table of contents and any list of floats. You\MessageBreak% - should use the appropriate options of KOMA-Script% + \ClassWarningNoLine{\TUD@Class@Name}{% + It is absolutely not recommended to use package\MessageBreak% + `tocloft'. Loading the package will certainly lead\MessageBreak% + to problems with table of contents and any list of\MessageBreak% + floats. You should use the appropriate options of\MessageBreak% + the KOMA-Script classes% }% } +\CheckCommand*\@uclcnotmath[4]{% + \begingroup + #1% + \def\({$}\let\)\(% + \def\NoCaseChange##1{\noexpand\NoCaseChange{\noexpand##1}}% + \@nonchangecase\label + \@nonchangecase\ref + \@nonchangecase\ensuremath + \def\cite##1##{\toks@{\noexpand\cite##1}\@citex}% + \def\@citex##1{\NoCaseChange{\the\toks@{##1}}}% + \def\reserved@a##1##2{\let#2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{% + \endgroup + \noexpand\@skipmath#3#4$\valign$% + }% + \reserved@a% +} +\newcommand*\tud@x@textcase@uclcnotmath{% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% +} +\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% +}{}{\tud@patch@wrn{@uclcnotmath}} \endinput %% %% End of file `tudscrreprt.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty index c8d41581777..a1dfebfde7b 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty @@ -5,7 +5,7 @@ %% The original source files were: %% %% tudscr-version.dtx (with options: `package,supervisor') -%% tudscr-supervisor.dtx (with options: `package') +%% tudscr-supervisor.dtx (with options: `package,supervisor') %% tudscr-fields.dtx (with options: `package,supervisor') %% tudscr-locale.dtx (with options: `package,supervisor') %% @@ -37,85 +37,109 @@ %% ============================================================================ %% %%% From File: tudscr-version.dtx -\begingroup% - \catcode`\@11\relax% - \ifx\TUDVersion\undefined% - \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% - \else% - \newcommand*\@TUDVersion[1]{% +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% \def\@tempa{#1}% - \ifx\TUDVersion\@tempa\else% + \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% - \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% different TUD-KOMA-Script-Bundle versions% }% \fi% - }% - \fi% - \@TUDVersion{2016/06/17 v2.04e TUD-KOMA-Script}% -\endgroup% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} \providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{TUDClassName}{% +\@ifundefined{TUD@Class@Name}{% \PackageError{% tudscrsupervisor% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% - } + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% \endinput }{} \@ifundefined{TUDScript}{% - \DeclareRobustCommand{\TUDScript}{% + \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }\csname xspace\endcsname% }% }{} %%% From File: tudscr-supervisor.dtx -\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrsupervisor}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (commands for supervisors)% ] +\newcommand*\tud@multiple@fields@output{} +\newcommand*\tud@multiple@fields@style{table} \newenvironment{task}[1][]{% \cleardoubleoddpage% \def\@headline{}% - \TUD@parameter{tudpage}{% - \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@family{tudpage}{% + \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% - \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}% + \TUD@parameter@def{style}{\def\tud@multiple@fields@style{##1}}% + \TUD@parameter@handler@default{headline}% }% \tudpage[pagestyle=empty,#1]% \tudbookmark{\taskname}{task}% \subsection*{% \ifx\@headline\@empty% \taskname\space% - \ifx\tasktext\@empty\else\ifx\@thesis\@empty\else% - \ignorespaces\tasktext\space\trim@spaces{\@thesis}% + \ifx\tasktext\@empty\else\ifx\@@thesis\@empty\else% + \ignorespaces\tasktext\space\@@thesis% \fi\fi% \else\@headline\fi% }% - \tud@author@table% + \tud@authortable@set% }{% - \def\and{% - \tabularnewline% - \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi% - & \def\and{\tabularnewline &}% + \def\tud@multiple@fields@output##1{% + \ifstr{\tud@multiple@fields@style}{table}{% + \def\and{% + \tabularnewline% + \ifstr{\csuse{##1othername}}{}{}{% + \csuse{##1othername}\tud@title@delimiter% + }% + & \def\and{\tabularnewline &}% + }% + }{% + \def\and{\unskip,\space\ignorespaces}% + }% + \csuse{@##1}% }% \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@dim@table}l@{}}% - \supervisorname\@titledelim & - \@supervisor\tabularnewline[\smallskipamount]% - \issuedatetext\@titledelim & \@issuedate\tabularnewline% - \duedatetext\@titledelim & \@duedate\tabularnewline% + \begin{tabular}{@{}p{\tud@len@authortable}l@{}}% + \ifx\@referee\@empty\else% + \refereename\tud@title@delimiter & % + \tud@multiple@fields@output{referee}\tabularnewline[\smallskipamount]% + \fi% + \supervisorname\tud@title@delimiter & % + \tud@multiple@fields@output{supervisor}\tabularnewline[\smallskipamount]% + \issuedatetext\tud@title@delimiter & \@issuedate\tabularnewline% + \duedatetext\tud@title@delimiter & \@duedate\tabularnewline% \end{tabular}% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \ifx\@chairman\@empty\else% \begin{tabular}{@{}l@{}}% \@chairman\tabularnewline% @@ -135,13 +159,13 @@ \aftergroup\cleardoublepage% } \newcommand\taskform[3][]{% - \begin{task}[#1] + \begin{task}[#1]% \removelastskip% - \ifxblank{#2}{}{\minisec{\objectivesname}#2}% - \ifxblank{#3}{}{% + \ifblank{#2}{}{\minisec{\objectivesname}#2}% + \ifblank{#3}{}{% \minisec{\focusname}% \begin{itemize}\tud@RaggedRight% - #3 + #3% \end{itemize}% }% \end{task}% @@ -149,23 +173,24 @@ \newenvironment{evaluation}[1][]{% \cleardoubleoddpage% \def\@headline{}% - \TUD@parameter{tudpage}{% - \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@family{tudpage}{% + \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% - \TUD@parameter@define{grade}{\def\@grade{##1}}% - \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}% + \TUD@parameter@def{grade}{\def\@grade{##1}}% + \TUD@parameter@handler@default{headline}% }% \tudpage[pagestyle=empty,#1]% \tudbookmark{\evaluationname}{evaluation}% \subsection*{% \ifx\@headline\@empty% \evaluationname\space% - \ifx\evaluationtext\@empty\else\ifx\@thesis\@empty\else% - \ignorespaces\evaluationtext\space\trim@spaces{\@thesis}% + \ifx\evaluationtext\@empty\else\ifx\@@thesis\@empty\else% + \ignorespaces\evaluationtext\space\@@thesis% \fi\fi% \else\@headline\fi% }% - \tud@author@table% + \tud@authortable@set% }{% \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% @@ -179,7 +204,7 @@ \vskip\@tempskipa\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@signatureskip\noindent% + \vskip\tud@len@signatureskip\noindent% \ifx\@referee\@empty\let\@referee\@supervisor\fi% \let\@tempa\refereename% \def\and{% @@ -200,60 +225,65 @@ \aftergroup\cleardoublepage% } \newcommand\evaluationform[5][]{% - \begin{evaluation}[#1] + \begin{evaluation}[#1]% \removelastskip% - \ifxblank{#2}{}{\minisec{\taskname}#2}% - \ifxblank{#3}{}{\minisec{\contentname}#3}% - \ifxblank{#4}{}{\minisec{\assessmentname}#4}% - \ifxblank{#5}{}{\def\@grade{#5}}% + \ifblank{#2}{}{\minisec{\taskname}#2}% + \ifblank{#3}{}{\minisec{\contentname}#3}% + \ifblank{#4}{}{\minisec{\assessmentname}#4}% + \ifblank{#5}{}{\def\@grade{#5}}% \end{evaluation}% } \newcommand*\student{\author} -\newlength\tud@dim@table% -\newcommand*\tud@author@table{% +\newlength\tud@len@authortable +\newcommand*\tud@authortable@set{% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% \tud@multiple@split{@author}% \tud@multiple@fields@preset{@author}{\null}{}% - \setlength\tud@dim@table{2em}% - \edef\@tempa{% - \namesname,\titlename,\supervisorname,\supervisorothername,% - \issuedatetext,\duedatetext,% - \expandafter\ifx\@matriculationnumber\@empty\else% - \matriculationnumbername% - \fi,% - \expandafter\ifx\@matriculationyear\@empty\else% - \matriculationyearname% - \fi,% - \expandafter\ifx\@course\@empty\else\coursename\fi,% - \expandafter\ifx\@discipline\@empty\else\disciplinename\fi,% + \setlength\tud@len@authortable{2em}% + \def\@tempb##1{% + \expandafter\ifx\csname @##1\endcsname\@empty\else% + \expandafter\appto\expandafter\@tempa\expandafter{% + \expandafter,\csname ##1name\endcsname% + }% + \fi% + }% + \def\@tempa{% + \namesname,\titlename,\issuedatetext,\duedatetext,\supervisorname% }% + \tud@ifin@and{\@supervisor}{\appto\@tempa{,\supervisorothername}}{}% + \@tempb{referee}% + \tud@ifin@and{\@referee}{\appto\@tempa{,\refereeothername}}{}% + \@tempb{matriculationnumber}% + \@tempb{matriculationyear}% + \@tempb{course}% + \@tempb{discipline}% \@for\@tempb:=\@tempa\do{% - \settowidth\@tempdima{\@tempb\@titledelim}% - \ifdim\@tempdima>\tud@dim@table\relax% - \setlength\tud@dim@table{\@tempdima}% + \settowidth\@tempdima{\@tempb\tud@title@delimiter}% + \ifdim\@tempdima>\tud@len@authortable\relax% + \setlength\tud@len@authortable{\@tempdima}% \fi% }% - \global\tud@dim@table=\tud@dim@table% + \global\tud@len@authortable=\tud@len@authortable% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@dim@table}}% + \begin{tabular}{@{}p{\tud@len@authortable}}% \ifx\@course\@empty\else% - \coursename\@titledelim\tabularnewline% + \coursename\tud@title@delimiter\tabularnewline% \fi% \ifx\@discipline\@empty\else% - \disciplinename\@titledelim\tabularnewline% + \disciplinename\tud@title@delimiter\tabularnewline% \fi% - \namesname\@titledelim\tabularnewline% + \namesname\tud@title@delimiter\tabularnewline% \ifx\@matriculationnumber\@empty\else% - \matriculationnumbername\@titledelim\tabularnewline% + \matriculationnumbername\tud@title@delimiter\tabularnewline% \fi% \ifx\@matriculationyear\@empty\else% - \matriculationyearname\@titledelim\tabularnewline% + \matriculationyearname\tud@title@delimiter\tabularnewline% \fi% \end{tabular}% - \renewcommand*\tud@split@author[2]{% + \renewcommand*\tud@split@author@do[2]{% \tud@multiple@fields@store{@author}{##1}% \tud@multiple@fields@preset{@author}{\null}{##1}% \begin{tabular}{l@{}}% @@ -272,9 +302,9 @@ }% \tud@multiple@split{@author}% \vskip\smallskipamount% - \begin{tabular}{@{}p{\tud@dim@table}% - p{\dimexpr\textwidth-\tud@dim@table-2\tabcolsep\relax}@{}}% - \titlename\@titledelim & \tud@RaggedRight\textsf{\textbf{\@@title}}% + \begin{tabular}{@{}p{\tud@len@authortable}% + p{\dimexpr\textwidth-\tud@len@authortable-2\tabcolsep\relax}@{}}% + \titlename\tud@title@delimiter & \tud@RaggedRight\textsf{\textbf{\@@title}}% \end{tabular}% \par% \endgroup% @@ -282,28 +312,17 @@ \endgroup% \noindent\ignorespaces% } -\patchcmd{\tud@split@author@list}{authormore}{% - authormore,course,discipline% -}{}{\tud@patch@wrn{tud@split@author@list}} \newenvironment{notice}[1][]{% \cleardoubleoddpage% \def\@headline{\noticename}% - \TUD@parameter{tudpage}{% - \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@family{tudpage}{% + \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% - \TUD@parameter@sethandler{\TUD@parameter@set{tudpage}{headline=##1}}% + \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,#1]% + \tudpage[pagestyle=empty,cdhead=date,#1]% \tudbookmark{\noticename}{notice}% - \ifx\@date\@empty\else% - \begingroup% - \vspace*{-\parskip}% - \vspace*{-2\baselineskip}% - \raggedleft - \@date\par% - \vspace*{-\parskip}% - \endgroup% - \fi% \ifx\@headline\@empty\else% \section*{\@headline}% \fi% @@ -312,13 +331,14 @@ \ifx\@contactperson\@empty\else% \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \renewcommand*\tud@split@contactperson[2]{% + \renewcommand*\tud@split@contactperson@do[2]{% \tud@multiple@fields@store{@contactperson}{##1}% \tud@multiple@fields@preset{@contactperson}{}{##1}% \begin{tabular}[t]{@{}l@{}}% \ignorespaces##1\tabularnewline% \ifx\@office\@empty\else\@office\tabularnewline\fi% \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% + \ifx\@telefax\@empty\else\@telefax\tabularnewline\fi% \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% \end{tabular}% \tud@multiple@fields@restore{@contactperson}% @@ -331,93 +351,71 @@ \aftergroup\cleardoublepage% } \newcommand\noticeform[3][]{% - \begin{notice}[#1] + \begin{notice}[#1]% \removelastskip% - \ifxblank{#2}{}{% + \ifblank{#2}{}{% \ifx\@@title\@empty\else% \minisec{\expandonce{\@@title}}% \fi% #2% }% - \ifxblank{#3}{}{% + \ifblank{#3}{}{% \minisec{\focusname}% \begin{itemize}\tud@RaggedRight% - #3 + #3% \end{itemize}% }% \end{notice}% } %%% From File: tudscr-fields.dtx -\newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}} -\newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}} \newcommand*\@chairman{} \newcommand*\chairman[1]{\gdef\@chairman{#1}} \newcommand*\@grade{} \newcommand*\grade[1]{\gdef\@grade{#1}} \newcommand*\@headline{} \newcommand*\@issuedate{} -\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} +\newcommand*\issuedate[1]{\tud@x@isodate@printdate{\@issuedate}{#1}} \newcommand*\@duedate{} -\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} +\newcommand*\duedate[1]{\tud@x@isodate@printdate{\@duedate}{#1}} \newcommand*\finaldate{} \newcommand*\maturitydate{} -\@ifpackageloaded{% - tudscrposter% -}{}{% - \newcommand*\@contactperson{} - \newcommand*\contactperson[1]{\gdef\@contactperson{#1}} - \newcommand*\@office{} - \newrobustcmd*\office[1]{\gdef\@office{#1}} - \newcommand*\@telephone{} - \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} - \newcommand*\@emailaddress{} - \newrobustcmd*\emailaddress[2][]{\gdef\@emailaddress{#2}} - \AfterPackage*{hyperref}{% - \renewrobustcmd*\emailaddress[2][hidelinks]{% - \gdef\@emailaddress{% - \begingroup% - \hypersetup{#1}% - \href{mailto:#2}{#2}% - \endgroup% - }% - }% - }% - \newcommand*\tud@multiple@fields@preset[3]{% - \letcs\@tempa{tud@split#1@list}% - \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \edef\@tempc{\@nameuse{\@tempb}}% - \ifstr{#2}{*}{% - \@namedef{@\@tempb}{}% - }{% - \begingroup% - \protected@expandtwoargs\in@{\@tempc}{\@nameuse{#1}}% - \ifin@% - \ifcsempty{@\@tempb}{\@tempc{#2}}{}% - \fi% - \endgroup% - }% - \fi% +\@ifclassloaded{tudscrposter}{\@tempswafalse}{\@tempswatrue} +\if@tempswa +\newcommand*\@contactperson{} +\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\newcommand*\@office{} +\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newcommand*\@telephone{} +\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% }% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \sbox\z@{#3}% - \endgroup% }% - \newcommand*\tud@split@contactperson[2]{} - \newcommand*\tud@split@contactperson@list{office,telephone,emailaddress} } +\newcommand*\tud@split@contactperson@do[2]{} +\newcommand*\tud@split@contactperson@list{office,telephone,telefax,emailaddress} +\fi %%% From File: tudscr-locale.dtx +\tud@locale@define{\authorname} +\tud@locale@define{\contactname} +\tud@locale@define{\contactpersonname} \tud@locale@define{\taskname} \tud@locale@define{\tasktext} \tud@locale@define{\namesname} -\tud@locale@define{\titlename} -\tud@locale@define{\coursename} -\tud@locale@define{\disciplinename} \tud@locale@define{\issuedatetext} \tud@locale@define{\duedatetext} \tud@locale@define{\chairmanname} @@ -429,13 +427,12 @@ \tud@locale@define{\assessmentname} \tud@locale@define{\gradetext} \tud@locale@define{\noticename} -\tud@locale@define{\contactpersonname} +\tud@locale@german{\authorname}{Autor}% +\tud@locale@german{\contactname}{Kontakt}% +\tud@locale@german{\contactpersonname}{Ansprechpartner}% \tud@locale@german{\taskname}{Aufgabenstellung}% \tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% \tud@locale@german{\namesname}{Name}% -\tud@locale@german{\titlename}{Titel}% -\tud@locale@german{\coursename}{Studiengang}% -\tud@locale@german{\disciplinename}{Studienrichtung}% \tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}% \tud@locale@german{\duedatetext}{Einzureichen am}% \tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}% @@ -447,15 +444,14 @@ \tud@locale@german{\assessmentname}{Bewertung}% \tud@locale@german{\gradetext}{% Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% -} +}% \tud@locale@german{\noticename}{Aushang}% -\tud@locale@german{\contactpersonname}{Ansprechpartner}% +\tud@locale@english{\authorname}{Author}% +\tud@locale@english{\contactname}{Contact}% +\tud@locale@english{\contactpersonname}{Contact}% \tud@locale@english{\taskname}{Task}% \tud@locale@english{\tasktext}{for the preparation of a}% \tud@locale@english{\namesname}{Name}% -\tud@locale@english{\titlename}{Title}% -\tud@locale@english{\coursename}{Course}% -\tud@locale@english{\disciplinename}{Discipline}% \tud@locale@english{\issuedatetext}{Issued on}% \tud@locale@english{\duedatetext}{Due date for submission}% \tud@locale@english{\chairmanname}{Chairman of the Audit Committee}% @@ -467,9 +463,8 @@ \tud@locale@english{\assessmentname}{Assessment}% \tud@locale@english{\gradetext}{% The thesis is evaluated with a grade of \textbf{\@grade}.% -} +}% \tud@locale@english{\noticename}{Notice}% -\tud@locale@english{\contactpersonname}{Contact}% \endinput %% %% End of file `tudscrsupervisor.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty new file mode 100644 index 00000000000..ae2f2d7719a --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty @@ -0,0 +1,1533 @@ +%% +%% This is file `tudscrtutorial.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,tutorial') +%% tudscr-manual.dtx (with options: `package,tutorial,identify') +%% tudscr-base.dtx (with options: `package,tutorial,load') +%% tudscr-manual.dtx (with options: `package,tutorial,option') +%% tudscr-misc.dtx (with options: `package,tutorial,execute') +%% tudscr-manual.dtx (with options: `package,tutorial,body') +%% tudscr-misc.dtx (with options: `package,tutorial,xindy') +%% +%% ============================================================================ +%% +%% TUD-KOMA-Script +%% Copyright (c) Falk Hanisch , 2012-2016 +%% +%% ============================================================================ +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, version 1.3c of the license. The latest +%% version of this license is in http://www.latex-project.org/lppl.txt and +%% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +%% or later and of this work. This work has the LPPL maintenance status +%% "author-maintained". The current maintainer and author of this work +%% is Falk Hanisch. +%% +%% ---------------------------------------------------------------------------- +%% +%% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +%% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +%% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +%% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +%% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +%% "author-maintained", wird somit allein durch den Autor verwaltet. Der +%% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +%% +%% ============================================================================ +%% +%%% From File: tudscr-version.dtx +\begingroup + \catcode`\@11\relax + \ifx\TUD@Version\undefined + \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@Version{#1}% + \gdef\TUDScriptVersion{#1}% + \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% + \edef\@tempa{\TUD@Version}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% + \gdef\TUD@Version@KOMA{3.17}% + } + \else + \newcommand*\TUD@Version@Check[1]{% + \def\@tempa{#1}% + \ifx\TUD@Version\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + } + \fi + \TUD@Version@Check{2016/07/26 v2.05 TUD-KOMA-Script} +\endgroup +\NeedsTeXFormat{LaTeX2e} +\providecommand*\tudscrmail{tudscr@gmail.com} +\@ifundefined{TUD@Class@Name}{% + \PackageError{% + tudscrtutorial% + }{Unsupported class found}{% + This package can only be used with a class out of the\MessageBreak% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \endinput +}{} +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }\csname xspace\endcsname% + }% +}{} +%%% From File: tudscr-manual.dtx +\ProvidesPackage{tudscrtutorial}[% + 2016/07/26 v2.05 TUD-KOMA-Script + package (internal tutorials)% +] +%%% From File: tudscr-base.dtx +\RequirePackage{tudscrbase}[\TUD@Version] +%%% From File: tudscr-manual.dtx +\TUD@key{final}[true]{% + \TUD@set@ifkey{final}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \let\tudfinalflag\relax% + \fi% + \fi% +} +\TUD@key{print}[true]{% + \TUD@set@ifkey{print}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \let\tudprintflag\relax% + \fi% + \fi% +} +\AtEndPreamble{% + \ifdef{\tudfinalflag}{% + \TUDoptions{ToDo=false}% + \TUD@key{ToDo}{}% + }{}% + \ifdef{\tudprintflag}{% + \ifnum\tud@cd@num>\z@\relax% + \TUDoptions{cd=true}% + \fi% + \TUD@key{cd}{}% + \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}% + }{}% +} +\newif\if@tud@todo +\newcommand*\tud@todo@type@pos{} +\let\tud@todo@type@pos\relax +\newcommand*\tud@todo@type@neg{} +\let\tud@todo@type@neg\relax +\TUD@key{ToDo}[true]{% + \TUD@set@ifkey{ToDo}{@tud@todo}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \let\tud@todo@type@pos\relax% + \let\tud@todo@type@neg\relax% + \else% + \def\@tempa not##1##2##3##4\@nil{% + \ifstr{##1##2##3}{not}{% + \if\relax##4\relax\else% + \listeadd\tud@todo@type@neg{##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + \fi% + }{% + \if\relax##1\relax\else% + \listeadd\tud@todo@type@pos{##1##2##3##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + \fi% + }% + }% + \edef\@tempb{not\trim@spaces{#1}}% + \expandafter\@tempa\@tempb\@empty\@empty\@empty\@nil% + \fi% +} +%%% From File: tudscr-misc.dtx +\KOMAoptions{headings=small} +\TUDoptions{cdfoot=true} +\TUDExecuteOptions{ToDo=true} +\TUDProcessOptions\relax +%%% From File: tudscr-manual.dtx +\PassOptionsToPackage{log-declarations=false}{xparse} +\RequirePackage{xparse}[2013/12/31] +\RequirePackage{scrhack}[2014/02/27] +\RequirePackage{babel}[2014/03/24] +\PassOptionsToPackage{quiet}{marginnote} +\RequirePackage{marginnote}[2012/03/29] +\reversemarginpar +\RequirePackage{xspace}[2009/10/20] +\xspaceaddexceptions{"=} +\@ifpackagelater{geometry}{2010/09/13}{% + \ClassWarning{\TUD@Class@Name}{% + Package `geometry' was updated so some patches\MessageBreak% + are maybe outdated + }% +}{}% +\newcommand*\vTUDScript{v\TUDScriptVersionNumber} +\newcommand*\vKOMAScript{v\TUD@Version@KOMA} +\newcommand*\tud@english[1]{#1} +\AtBeginDocument{% + \iflanguageloaded{english}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% + }{}% +} +\RequirePackage{ifluatex}[2016/05/16] +\ifluatex + \RequirePackage{pdftexcmds}[2016/05/21] + \let\pdfstrcmp\pdf@strcmp + \let\pdfshellescape\pdf@shellescape +\fi +\newcommand*\tud@templist{} +\let\tud@templist\relax +\newcommand*\tud@list@sort[1]{% + \ifdefvoid{#1}{% + \ClassWarning{tudscrmanual}{% + The given list \string#1\space\MessageBreak% + is empty, nothing to sort here% + }% + }{% + \let\tud@reserved#1% + \let\tud@templist\relax% + \forlistloop\tud@list@@sort{\tud@reserved}% + \let\tud@reserved\relax% + \@for\@tempa:=\tud@templist\do{\listeadd\tud@reserved{\@tempa}}% + \let#1\tud@reserved% + }% +} +\newif\if@tud@list@sorted +\newcommand*\tud@list@@sort[1]{% + \ifx\tud@templist\relax% + \def\tud@templist{#1}% + \else% + \@tud@list@sortedfalse% + \let\@tempb\@empty% + \@for\@tempa:=\tud@templist\do{% + \if@tud@list@sorted% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \else% + \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{% + #1,\@tempa% + }% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{% + \@tempb,#1,\@tempa% + }% + \fi% + \@tud@list@sortedtrue% + \else% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \fi% + \fi% + \fi% + }% + \if@tud@list@sorted\else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% + \fi% + \let\tud@templist\@tempb% + \fi% +} +\RequirePackage{scrwfile}[2013/08/05] +\RequirePackage{silence}[2012/07/02] +\RequirePackage{filecontents}[2011/10/08] +\WarningFilter[Tutorial]{latex}{Overwriting file}% +\WarningFilter[Tutorial]{latex}{Writing file}% +\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} +\PassOptionsToPackage{open,openlevel=0}{bookmark} +\AfterPackage*{hyperref}{% + \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}% + \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% + \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}% + \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}% + \newcommand*\tud@manualname{tudscr}% + \newcommand*\tudhyperref[2]{% + \hyperref{../\tud@manualname.pdf}{\tud@manualname}{#1}{#2}% + }% + \newcommand*\autorefname[1][current]{% + \ifstr{#1}{current}{% + \expandafter\HyPsd@@autorefname\@currentHref\@nil% + }{% + \auto@refname\HyPsd@@autorefname{#1}% + }% + \unskip\xspace% + }% + \newcommand*\auto@refname[2]{% + \expandafter\ifx\csname r@#2\endcsname\relax% + ??% + \else% + \expandafter\expandafter\expandafter\auto@@refname% + \csname r@#2\endcsname{}{}{}{}\@nil#1\@nil% + \fi% + }% + \newcommand*\auto@@refname{}% + \def\auto@@refname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil}% +} +\TUD@UnwindPackage{hyperref}{% + \PackageWarningNoLine{tudscrtutorial}% + {% + It is strongly recommended to load package `hyperref'.\MessageBreak% + Nevertheless, essential commands are rudimentarily\MessageBreak% + defined. At least the package `url' is loaded.% + }% + \RequirePackage{url}[2013/09/16]% + \providecommand*\hypersetup[1]{}% + \providecommand*\hyperdef[3]{\label{#1.#2}#3}% + \providerobustcmd*\hyperref{% + \kernel@ifnextchar[{\tud@hyperref@a}{\tud@hyperref@b}% + } + \newcommand*\tud@hyperref@a[2][]{#2} + \newcommand*\tud@hyperref@b[4]{#4} + \providecommand*\href[3][]{#3}% + \providecommand*\hyperpage[1]{#1}% + \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}% + \providecommand*\phantomsection{}% + \providecommand*\texorpdfstring[2]{#1}% + \tud@locale@german{\partautorefname}{Teil}% + \tud@locale@german{\chapterautorefname}{Kapitel}% + \tud@locale@german{\sectionautorefname}{Unterkapitel}% + \tud@locale@german{\subsectionautorefname}{Abschnitt}% + \tud@locale@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@locale@english{\partautorefname}{Part}% + \tud@locale@english{\chapterautorefname}{chapter}% + \tud@locale@english{\sectionautorefname}{section}% + \tud@locale@english{\subsectionautorefname}{subsection}% + \tud@locale@english{\subsubsectionautorefname}{subsubsection}% + \providecommand*\Email[1]{\mbox{#1}}% + \providecommand*\tudhyperref[2]{#2}% + \providecommand*\autorefname[1][]{??\xspace}% +} +\RequirePackage{varioref}[2011/10/02] +\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} +\newcommand*\hrfn[2]{% + \href{#1}{\trim@spaces{#2}}% + \footnote{% + \scalebox{0.95}{% + \def\_{_}% + \edef\@tempa{#1}% + \strut\expandafter\url\expandafter{\@tempa}% + }% + }% +} +\AfterPackage*{hyperref}{% + \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% + \let\bbl@info\@gobble\csname HyPsd@babel@% + }{}{\tud@patch@wrn{pdfstringdef}}% +} +\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} +\TUD@UnwindPackage{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} +\newrobustcmd*\bsc{\@backslashchar} +\newrobustcmd*\suffix[1]{\begingroup~\scriptsize(#1)\endgroup} +\newcommand*\NewExpandableDocumentCommand[3]{% + \NewDocumentCommand#1{#2}{#3}% + \DeclareExpandableDocumentCommand#1{#2}{#3}% +} +\newcommand*\ProcessorKeyVal[1]{% + \begingroup% + \in@{=}{#1}% + \ifin@% + \def\@tempa##1=##2\@nil{\toks@{{##1}=##2=}}% + \else% + \def\@tempa##1\@nil{\toks@{{##1}}}% + \fi% + \@tempa#1\@nil% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\ProcessedArgument{\the\toks@}% + }% + \tud@reserved% +} +\newcommand*\tud@keyval@error{% + \PackageError{tudscrtutorial}% + {Wrong usage of optional argument for value}% + {There are two optional arguments for a value given!}% +} +\newenvironment{Bundle}[1]{% + \tud@if@bdl{% + \PackageError{tudscrtutorial}% + {Nested environment `Bundle'}{% + It is not possible to nest this environment, when\MessageBreak% + a cross-label was given before.% + }% + }{% + \gdef\tud@bdl@curr{#1}% + }% + \ignorespaces% +}{% + \global\let\tud@bdl@curr\tud@bdl@dflt% + \aftergroup\ignorespaces% +} +\newcommand*\tud@bdl@curr{} +\newcommand*\tud@bdl@dflt{tudscr} +\let\tud@bdl@curr\tud@bdl@dflt +\newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} +\NewExpandableDocumentCommand\@Application{sm}{#2} +\NewDocumentCommand\Application{smd()d<>d||}{% + \Markup@SetFormat{\sbsfont}% + \IfValueTF{#4}{% + \Process@Markup{\Application{#2}}(#3)<#4>% + }{% + \Process@Markup{\Application{#2}}(#3)% + }% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#4|% +} +\NewExpandableDocumentCommand\@Distribution{sm}{#2} +\NewDocumentCommand\Distribution{smod()d||}{% + \Markup@SetFormat{\sbnfont}% + \IfValueTF{#3}{% + \Process@Markup{\Distribution{#2}}[~#3](#4)% + }{% + \Process@Markup{\Distribution{#2}}(#4)% + }% + \Process@Index{#1}{\Distribution{#2}}[Distribution](#4)|#5|% +} +\NewExpandableDocumentCommand\@Engine{sm}{#2} +\NewDocumentCommand\Engine{smd()d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Engine{\hologo{#2}}}(#3)% + \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% +} +\NewExpandableDocumentCommand\@File{sm}{#2} +\NewDocumentCommand\File{smd()d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\File{#2}}(#3)% + \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% +} +\NewExpandableDocumentCommand\@Class{sm}{#2} +\NewDocumentCommand\Class{smd()d''d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Class{#2}}(#3)'#4'% + \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|% +} +\NewExpandableDocumentCommand\@Package{sm}{#2} +\NewDocumentCommand\Package{smd()d<>d''d||}{% + \Markup@SetFormat{\sbnfont}% + \IfValueTF{#4}{% + \Process@Markup{\Package{#2}}(#3)<#4>'#5'% + }{% + \Process@Markup{\Package{#2}}(#3)<#2>'#5'% + }% + \Process@Index{#1}{\Package{#2}}[Paket](#3)|#6|% +} +\NewExpandableDocumentCommand\@Option{sm}{#2} +\NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{% + \Option@Value{#1}#2=#3=(#4)'#5'|#6|% +} +\NewDocumentCommand\Option@Value{mmd==d==d()d''d||}{% + \IfValueT{#4}{\tud@keyval@error}% + \Markup@SetFormat{\ttfamily}% + \Process@Markup{\Option{#2}}=#3=(#5)'#6'% + \Process@Index{#1}{\Option{#2}}=#3=(#5)|#7|% +} +\NewExpandableDocumentCommand\@Environment{sm}{#2} +\NewDocumentCommand\Environment{smod()d''d||}{% + \Markup@SetFormat{\ttfamily}(% + \ttfamily\bsc{}begin\textbraceleft#2\textbraceright\IfValueT{#3}{#3}% + \tabularnewline\ttfamily\dots% + \tabularnewline\ttfamily\bsc{}end\textbraceleft#2\textbraceright% + )% + \Process@Markup{\Environment{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Environment{#2}}[Umgebung](#4)|#6|% +} +\NewExpandableDocumentCommand\@Macro{sm}{#2} +\NewDocumentCommand\Macro{smod()d''d||}{% + \Markup@SetFormat{\ttfamily\bsc}% + \Process@Markup{\Macro{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Macro{#2}}(#4)|#6|% +} +\NewExpandableDocumentCommand\@Length{sm}{#2} +\NewDocumentCommand\Length{smd()d''d||}{% + \Markup@SetFormat{\ttfamily\bsc}[L\"ange]% + \Process@Markup{\Length{#2}}(#3)'#4'% + \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% +} +\NewExpandableDocumentCommand\@Counter{sm}{#2} +\NewDocumentCommand\Counter{smd()d''d||}{% + \Markup@SetFormat{\ttfamily}[Z\"ahler]% + \Process@Markup{\Counter{#2}}(#3)'#4'% + \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|% +} +\NewDocumentCommand\tud@attr@get{smm}{% + \begingroup% + \def\@tempa##1##2##3{% + \def##1####1{% + \edef\@tempb{\IfBooleanTF{#1}{##2}{##3}}% + }% + }% + \@tempa\Application{\jobname}{app}% + \@tempa\Distribution{\jobname}{dst}% + \@tempa\Engine{\jobname}{eng}% + \@tempa\File{files}{fle}% + \@tempa\Class{files}{cls}% + \@tempa\Package{files}{pkg}% + \@tempa\Option{options}{opt}% + \@tempa\Environment{macros}{env}% + \@tempa\Macro{macros}{cmd}% + \@tempa\Length{misc}{len}% + \@tempa\Counter{misc}{cnt}% + #3% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{\@tempb}% + }% + \tud@reserved% +} +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} +\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}} +\newrobustcmd*\PName[1]{\PValue{\textsl{<#1>}}} +\newrobustcmd*\PValueName[1]{\PName{#1}} +\newrobustcmd*\PSet{\PName{Einstellung}} +\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}} +\newrobustcmd*\PBName[1]{\PBoolean\textOR\PName{#1}} +\newrobustcmd*\Parameter[1]{% + \mbox{\texttt{\textbraceleft}\PName{#1}\texttt{\textbraceright}}% +} +\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}} +\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}} +\newrobustcmd*\OLParameter[1]{% + \mbox{\texttt{[}\PName{#1}\textOR\PName{Parameterliste}\texttt{]}}% +} +\newrobustcmd*\PParameter[1]{\mbox{\texttt{\textbraceleft#1\textbraceright}}} +\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}} +\newrobustcmd*\textOR{\PValue{\,\textbardbl\,}} +\newcommand*\tud@doifPValue[3][]{% + \IfValueT{#2}{% + \begingroup% + \let\PValue\@firstofone% + \let\PName\@gobble% + \let\PValueName\@firstofone% + \let\PSet\@empty% + \let\PBoolean\@empty% + \let\PBName\@gobble% + \let\Parameter\@gobble% + \let\OParameter\@gobble% + \let\LParameter\@empty% + \let\OLParameter\@gobble% + \let\PParameter\@gobble% + \let\POParameter\@gobble% + \let\textOR\relax% + \let\emph\@firstofone% + #1% + \ifxblank{#2}{% + \let\tud@reserved\endgroup% + }{% + \protected@edef\tud@reserved{\noexpand\endgroup#3}% + }% + \tud@reserved% + }% +} +\NewDocumentCommand\Markup@Gobble{s}{% + \let\Application\@Application% + \let\Distribution\@Distribution% + \let\Engine\@Engine% + \let\File\@File% + \let\Class\@Class% + \let\Package\@Package% + \let\Option\@Option% + \let\Environment\@Environment% + \let\Macro\@Macro% + \let\Length\@Length% + \let\Counter\@Counter% + \IfBooleanF{#1}{% + \let\PValue\@firstofone% + \let\PName\@firstofone% + \let\PValueName\@firstofone% + \let\PSet\relax% + \let\PBoolean\relax% + \let\PBName\@firstofone% + \let\Parameter\@firstofone% + \let\OParameter\@firstofone% + \let\LParameter\relax% + \let\OLParameter\@firstofone% + \let\PParameter\@firstofone% + \let\POParameter\@firstofone% + \let\textOR\relax% + \let\hologoRobust\@firstofone% + \def\TUDScript{TUD-KOMA-Script}% + \def\_{-}% + \protected\def~{~}% + }% +} +\AfterPackage*{hyperref}{% + \expandafter\pdfstringdefDisableCommands\expandafter{\Markup@Gobble}% +} +\newcommand*\tud@lbl@tmp{} +\newcommand*\tud@lbl@fmt{% + \def~{-}% + \let\IeC\@firstofone% + \def\"##1{##1e}% + \def\ss{ss}% + \let\NoCaseChange\@firstofone% +} +\NewDocumentCommand\tud@lbl@get@curr{% + sm>{\tud@lbl@create}>{\SplitArgument{2}{:}}md==% +}{% + \tud@lbl@get@@curr#2{#3}=#4=% +} +\NewDocumentCommand\tud@lbl@get@@curr{mmd==}{% + \def#1{#2}% + \tud@doifPValue[\tud@lbl@fmt]{#3}{\noexpand\appto\noexpand#1{=#3}}% +} +\NewDocumentCommand\tud@lbl@get@dflt{m>{\SplitArgument{2}{:}}mr==}{% + \tud@lbl@get@@dflt{#1}#2=#3=% +} +\NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{% + \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}% + \ifstr{\tud@reserved}{#2}{}{% + \tud@lbl@get@curr#1{\tud@bdl@dflt:#3:#4}=#5=% + }% +} +\NewDocumentCommand\tud@lbl@create{m}{\tud@lbl@@create#1} +\NewDocumentCommand\tud@lbl@@create{mmm}{% + \begingroup% + \Markup@Gobble% + \tud@lbl@fmt% + \IfValueTF{#3}{% + \edef\@tempa{#1:#2:#3}% + }{% + \IfValueTF{#2}{% + \tud@attr@get\@tempb{#2}% + \IfValueTF{#1}{% + \ifxblank{#1}{% + \edef\@tempa{\tud@bdl@dflt:\@tempb:#2}% + }{% + \edef\@tempa{#1:\@tempb:#2}% + }% + }{% + \edef\@tempa{\tud@bdl@curr:\@tempb:#2}% + }% + }{% + \edef\@tempa{#1}% + }% + }% + \edef\@tempc{% + \noexpand\endgroup% + \def\noexpand\ProcessedArgument{% + \expandafter\detokenize\expandafter{\@tempa}% + }% + }% + \@tempc% +} +\newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} +\NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} +\NewDocumentCommand\Process@Markup{md==od()d<>d''}{% + \tud@toks@{\Process@@MarkupInline}% + \tud@lbl@get@curr\tud@lbl@tmp{#4:#1}=#2=% + \eaddto@hook\tud@toks@{\expandafter{\tud@lbl@tmp}}% + \begingroup% + \Markup@Gobble*% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\tud@reserved{#1}% + }% + \tud@reserved% + \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}% + \IfValueT{#2}{\addto@hook\tud@toks@{=#2=}}% + \IfValueT{#3}{\addto@hook\tud@toks@{[#3]}}% + \if@tud@index\else% + \IfValueT{#5}{% + \ifxblank{#5}{}{\addto@hook\tud@toks@{}}% + }% + \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}% + \fi% + \the\tud@toks@% +} +\NewDocumentCommand\Process@@MarkupInline{mmd==od<>d''}{% + \Markup@CheckFormat% + \begingroup% + \def\@tempc{\Markup@Output{#2}=#3=[#4]}% + \let\@tempa\@tempc% + \IfValueT{#5}{\def\@tempa{\href{#5}{\@tempc}}}% + \let\@tempb\relax% + \IfValueT{#6}{% + \ifstr{#6}{none}{\let\@tempa\@tempc}{% + \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% + \def\@tempb{% + \ClassWarning{tudscrmanual}{% + You've used the unknown cross-reference\MessageBreak% + shorthand '#6'. Only 'none' and 'manual'\MessageBreak% + are valid% + }% + }% + }% + }% + }% + \ifdin{\@tempc}{\@tempa\@tempb}% + \endgroup% + \Markup@ClearFormat% +} +\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}md==o}{% + \Markup@@Output#1=#2=[#3]% +} +\NewDocumentCommand\Markup@@Output{mmd==o}{% + \tud@toks@{\Markup@Inline}% + \IfValueTF{#2}{% + \def\@tempa{#2}% + }{% + \def\@tempa{#1}% + }% + \IfValueT{#3}{\appto\@tempa{=#3}}% + \IfValueT{#4}{\appto\@tempa{#4}}% + \eaddto@hook\tud@toks@{\expandafter{\@tempa}}% + \the\tud@toks@% +} +\newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} +\newcommand*\Markup@Format{} +\newcommand*\Markup@Suffix{} +\NewDocumentCommand\Markup@SetFormat{mod()}{% + \def\Markup@Format{\ifdin{\MakeTextUppercase}{#1}}% + \IfValueT{#2}{\def\Markup@Suffix{\suffix{#2}}}% +} +\robustify\NoCaseChange +\NewDocumentCommand\tud@nonchangecase{m}{% + \DeclareExpandableDocumentCommand#1{sm}{% + \IfBooleanT{##1}{\noexpand\@tud@indextrue}% + \NoCaseChange{#1{##2}}% + }% +} +\apptocmd{\tud@x@textcase@uclcnotmath}{% + \tud@nonchangecase\Application% + \tud@nonchangecase\Distribution% + \tud@nonchangecase\Engine% + \tud@nonchangecase\File% + \tud@nonchangecase\Class% + \tud@nonchangecase\Package% + \tud@nonchangecase\Option% + \tud@nonchangecase\Environment% + \tud@nonchangecase\Macro% + \tud@nonchangecase\Length% + \tud@nonchangecase\Counter% +}{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} +\newcommand*\Markup@ClearFormat{% + \let\Markup@Format\relax% + \let\Markup@Declare\Markup@@Declare% + \let\Markup@Suffix\relax% +} +\Markup@ClearFormat +\newcommand*\Markup@CheckFormat{% + \ifx\Markup@Format\relax% + \ClassError{tudscrmanual}{\string\Markup@SetFormat\space unused}{% + It seems you have forgotten to use \string\Markup@SetFormat.% + }% + \fi% +} +\PassOptionsToPackage{xindy,splitindex}{imakeidx} +\RequirePackage{imakeidx}[2013/07/11] +\indexsetup{% + level=\subsection*,% + noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% + othercode={\renewcommand*\subitem{\@idxitem\hspace*{15\p@}}}% +} +\ifimki@original\else% + \CheckCommand\theindex{% + \imki@maybeaddtotoc + \imki@indexlevel{\indexname}\imki@indexheaders + \thispagestyle{\imki@firstpagestyle}% + \ifnum\imki@columns>\@ne + \columnsep \imki@columnsep + \ifx\imki@idxprologue\relax + \begin{multicols}{\imki@columns} + \else + \begin{multicols}{\imki@columns}[\imki@idxprologue] + \fi + \else + \imki@idxprologue + \fi + \global\let\imki@idxprologue\relax + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \columnseprule \ifKV@imki@columnseprule.4\p@\else\z@\fi + \raggedright + \let\item\@idxitem + \imki@othercode% + }% + \patchcmd{\theindex}{% + \imki@indexlevel{\indexname}\imki@indexheaders% + }{% + \imki@indexheaders% + }{}{\tud@patch@wrn{theindex}}% + \patchcmd{\theindex}{% + \ifnum\imki@columns>\@ne + \columnsep \imki@columnsep + \ifx\imki@idxprologue\relax + \begin{multicols}{\imki@columns} + \else + \begin{multicols}{\imki@columns}[\imki@idxprologue] + \fi + \else + \imki@idxprologue + \fi + }{% + \ifnum\imki@columns>\@ne\relax% + \columnsep \imki@columnsep% + \ifx\imki@idxprologue\relax% + \begin{multicols}{\imki@columns}[\imki@indexlevel{\indexname}]% + \else% + \begin{multicols}{\imki@columns}[% + \imki@indexlevel{\indexname}% + \imki@idxprologue% + ]% + \fi% + \else% + \imki@indexlevel{\indexname}\imki@idxprologue% + \fi% + }{}{\tud@patch@wrn{theindex}}% +\fi% +\newrobustcmd*\cleversee{\tud@cleversee{\seename}} +\newrobustcmd*\cleverseealso{% + \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}% + \tud@cleversee{\alsoname}% +} +\newcommand*\tud@cleversee{} +\def\tud@cleversee#1#2#3\relax{% + \IfArgIsEmpty{#3}{% + \emph{#1}\space#2% + }{% + #3, \emph{\alsoname}\space#2% + }% +} +\NewDocumentCommand\makexdyindex{somo}{% + \let\@tempb\@empty% + \protected@edef\@tempa{% + title={#3},% + columnsep=\noexpand\f@size\noexpand\p@,% + \IfValueTF{#4}{% + name={#4},% + options={-M \@currname-ind.xdy -L german-din -t \jobname-#4.xlg \@tempb},% + }{% + options={-M \@currname-ind.xdy -L german-din -t \jobname.xlg},% + }% + \IfValueT{#2}{#2}% + }% + \expandafter\makeindex\expandafter[\@tempa]% +} +\makexdyindex{Allgemeiner Index} +\makexdyindex*{Klassen- und Paketoptionen}[options] +\makexdyindex*{Befehle und Umgebungen mit zugeh\"origen Parametern}[macros] +\makexdyindex{L\"angen und Z\"ahler}[misc] +\makexdyindex*{Klassen, Pakete und Dateien}[files] +\undef\makexdyindex +\newif\if@tud@index +\addtoeachtocfile{\protect\@tud@indextrue} +\newcommand*\tud@idx@key{} +\newcommand*\tud@idx@fmt{} +\newcommand*\tud@idx@val{} +\newcommand*\tud@idx@bdl{} +\NewDocumentCommand\tud@idx@get{smmmmr==r[]r()d||}{% + \begingroup% + \begingroup% + \Markup@Gobble% + \edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{#5}% + }% + \tud@reserved% + \def#3{#5}% + \tud@replace#2{@}{"@}% + \tud@replace#3{@}{"@}% + \let\tud@idx@bdl\tud@bdl@dflt% + \IfValueTF{#8}{% + \def\tud@idx@bdl{#8}% + }{% + }% + \let\@tempa\@empty% + \let\@tempb\@empty% + \let\@tempc\@empty% + \@tempswatrue% + \ifx\tud@idx@bdl\tud@bdl@dflt% + \@tempswafalse% + \else% + \IfBooleanT{#1}{\@tempswafalse}% + \edef\@tempb{(\expandonce\tud@idx@bdl)}% + \fi% + \let\@tempc\@tempb% + \IfValueT{#7}{% + \appto\@tempa{ #7}% + \appto\@tempb{\suffix{#7}}% + }% + \if@tempswa% + \begingroup% + \Markup@Gobble% + \edef\tud@reserved{% + \noexpand\endgroup% + \noexpand\appto\noexpand\@tempa{ \tud@idx@bdl}% + }% + \tud@reserved% + \eappto\@tempb{\suffix{\expandonce\tud@idx@bdl}}% + \fi% + \@tempswafalse% + \IfBooleanT{#1}{\@tempswatrue}% + \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% + \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% + \if@tempswa% + \protected@eappto#2{\expandonce\@tempa}% + \tud@doifPValue{#6}{\noexpand\appto\noexpand#2{=#6}}% + \protected@eappto#3{\IfValueT{#6}{=#6=}\expandonce\@tempb}% + \else% + \tud@doifPValue{#6}{\noexpand\@tempswatrue}% + \if@tempswa% + \eappto#4{% + \expandonce#2\expandonce\@tempa{}@% + \expandonce#3\expandonce\@tempb{}!% + }% + \appto#2{=#6}% + \appto#3{=#6=}% + \protected@eappto#3{\expandonce\@tempc}% + \else% + \protected@eappto#2{\expandonce\@tempa}% + \protected@eappto#3{\expandonce\@tempb}% + \fi% + \fi% + \let\emph\@firstofone% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand#2{#2}% + \def\noexpand#3{#3}% + \def\noexpand#4{#4}% + }% + \tud@reserved% +} +\NewDocumentCommand\Process@Index{mmd==od()d||}{% + \ifboolexpr{% + bool {@tud@index}% + }{}{% + \IfBooleanTF{#1}{% + \IfValueT{#6}{% + \ClassWarning{tudscrmanual}{% + You've used the starred version. No index entry\MessageBreak% + for #2 is created. The\MessageBreak% + optional argument |#6| will be ignored% + }% + }% + }{% + \Process@@Index{#2}=#3=[#4](#5)|#6|% + }% + }% +} +\NewDocumentCommand\Process@@Index{mr==r[]r()r||}{% + \tud@idx@get\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)|#5|% + \tud@attr@get*\tud@lbl@tmp{#1}% + \IfValueT{#5}{% + \appto\tud@idx@fmt{|#5}% + }% + \index[\tud@lbl@tmp]{\tud@idx@val\tud@idx@key{}@\tud@idx@fmt}% +} +\newcommand*\PrintIndex{% + \begingroup% + \providecommand*\lettergroup[1]{% + \par\textbf{\textsf{##1}}\par% + \nopagebreak% + }% + \begingroup% + \let\lettergroup\@gobble% + \let\indexspace\relax% + \print@index% + \endgroup% + \print@index[options]% + \print@index[macros]% + \begingroup% + \let\lettergroup\@gobble% + \let\indexspace\relax% + \print@index[misc]% + \endgroup% + \print@index[files]% + \endgroup% +} +\newcommand*\tud@idx@skip{% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} +\newcommand*\print@index[1][]{% + \pagebreak[3]% + \@tud@indextrue% + \indexprologue[\tud@idx@skip]{}% + \ifblank{#1}{\printindex}{\printindex[#1]}% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} +\newcommand*\tud@write@a{} +\newwrite\tud@write@a +\newcommand*\tud@write@b{} +\newwrite\tud@write@b +\newcommand*\tud@read{} +\newread\tud@read +\RequirePackage{listings}[2014/03/04] +\lstdefinestyle{tudscr}{% + basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},% + keywordstyle=,% + columns=fullflexible,keepspaces,% + aboveskip=\smallskipamount,% + belowskip=\smallskipamount,% + language=[LaTeX]TeX,% + texcl,% +} +\RequirePackage{filemod}[2011/09/19] +\RequirePackage{ifplatform}[2010/10/22] +\newcommand*\tud@shellescape@wrn[1]{% + \PackageWarning{tudscrtutorial}% + {% + File `#1' is missing!\MessageBreak% + You have to recompile this document with\MessageBreak% + activated shell escape option% + }% +} +\newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}} +\newcommand*\tud@tut@temp{} +\edef\tud@tut@temp{\@currname-temp} +\newcommand*\tud@tut@readtostream[2]{% + \begingroup% + \endlinechar=-1\relax% + \openin\tud@read=#1% + \@tempswafalse% + \loop\unless\ifeof\tud@read% + \readline\tud@read to\tud@reserved% + \ifx\tud@reserved\@empty% + \ifeof\tud@read\@tempswafalse\fi% + \else% + \@tempswatrue% + \fi% + \if@tempswa% + \immediate\write#2{\expandonce\tud@reserved}% + \fi% + \ifx\tud@reserved\@empty\@tempswafalse\fi% + \repeat% + \closein\tud@read% + \endgroup% +} +\newcommand*\tud@tut@append[1]{% + \ifstr{#1}{preamble}{% + \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@a}% + }{% + \ifstr{#1}{trunk}{% + \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@b}% + }{% + \tud@tut@readtostream{\tud@tut@temp.tex}{#1}% + }% + }% +} +\TUDoptions{headingsvskip=-10ex} +\newcommand\StartTutorial[1][% + Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse + als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach + sinnvollen Pakete geladen.% +]{% + \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% + \faculty{}% + \maketitle\noindent#1% + \immediate\openout\tud@write@a=\tud@tut@temp-preamble.tex\relax% + \immediate\openout\tud@write@b=\tud@tut@temp-trunk.tex\relax% + \immediate\write\tud@write@b{^^J\string\begin{document}^^J} +} +\newcommand\FinishTutorial[1][]{% + \immediate\write\tud@write@b{^^J\string\end{document}^^J} + \immediate\closeout\tud@write@b% + \immediate\closeout\tud@write@a% + \immediate\openout\tud@write@a\jobname-example.tex\relax% + \tud@tut@readtostream{\tud@tut@temp-preamble.tex}{\tud@write@a}% + \tud@tut@readtostream{\tud@tut@temp-trunk.tex}{\tud@write@a}% + \immediate\closeout\tud@write@a% + \clearpage% + \addsec{Copy\nobreakspace\&\nobreakspace{}Paste}% + \pagestyle{empty}% + Zum Ende des Dokumentes wird das vorgestellte Tutorial als \"ubersetzbarer + Quelltext ausgegeben, um dieses via Copy~\&~Paste verwenden und alle Punkte + nachvollziehen zu k\"onnen. Bitte beachten Sie, dass~-- abh\"angig vom + genutzten PDF-Betrachter~-- beim Kopieren die dargestellten Einz\"uge und + Abs\"atze m\"oglicherweise verloren gehen k\"onnen. Dies kann insbesondere + aufgrund fehlender Leerzeilen zu einem unvorteilhaften Ausgabeergebnis + f\"uhren. Alternativ finden Sie den folgenden \hologo{LaTeX}-Quelltext auch + im Pfad \Path{\PName{texmf}/source/latex/tudscr/doc/examples/} als Datei + \File{\jobname-example.tex}. \par #1% + % + \begin{quoting}[rightmargin=0pt]% + \lstinputlisting[style=tudscr]{\jobname-example.tex}% + \end{quoting}% + % + \ifnum\pdfshellescape=\@ne\relax% + \ifwindows% + \def\@tempa{del}% + \else% + \def\@tempa{rm}% + \fi% + \immediate\write18{\@tempa\space\tud@tut@temp*.*}% + \fi% +} +\newcommand\Code@Preamble{} +\let\Code@Preamble\relax +\newcommand\CodePreamble[1]{\long\gdef\Code@Preamble{#1}} +\newcommand*\Code@Hook{} +\let\Code@Hook\relax +\newcommand*\CodeHook[1]{\gdef\Code@Hook{#1}} +\newcommand*\StandaloneFile{} +\let\StandaloneFile\relax +\newcommand*\StandaloneDate{} +\newcommand*\tud@tut@pre{% + \ActivateWarningFilters[Tutorial]% + \csuse{filecontents*}{\tud@tut@temp.tex}% +} +\newcommand*\tud@tut@post{% + \csuse{endfilecontents*}% + \DeactivateWarningFilters[Tutorial]% +} +\newenvironment{Preamble}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{preamble}% + \gdef\@tempa{% + \tud@tut@lst% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Preamble*}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{preamble}% + \gdef\@tempa{% + \tud@tut@lst% + \tud@tut@input% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Preamble+}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{preamble}% + \gdef\@tempa{% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Trunk}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{trunk}% + \gdef\@tempa{% + \tud@tut@lst% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Trunk*}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{trunk}% + \gdef\@tempa{% + \tud@tut@lst% + \tud@tut@input% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Trunk+}{\tud@tut@pre}{% + \tud@tut@post% + \tud@tut@append{trunk}% + \gdef\@tempa{% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Trunk!}[1]{% + \gdef\StandaloneFile{#1}% + \tud@tut@pre% +}{% + \tud@tut@post% + \tud@tut@append{trunk}% + \gdef\@tempa{% + \tud@tut@lst% + \tud@tut@pdf% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Hint}{\tud@tut@pre}{% + \tud@tut@post% + \gdef\@tempa{% + \tud@tut@lst% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Hint*}{\tud@tut@pre}{% + \tud@tut@post% + \gdef\@tempa{% + \tud@tut@lst% + \tud@tut@input% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Hint?}{\tud@tut@pre}{% + \tud@tut@post% + \gdef\@tempa{% + \InputCode% + \tud@tut@lst% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newenvironment{Hint!}[1]{% + \gdef\StandaloneFile{#1}% + \tud@tut@pre% +}{% + \tud@tut@post% + \gdef\@tempa{% + \tud@tut@lst% + \tud@tut@pdf% + \global\let\Code@Preamble\relax% + }% + \aftergroup\@tempa% +} +\newcommand*\tud@tut@lst{% + \begin{quoting}[rightmargin=0pt]% + \lstinputlisting[style=tudscr]{\tud@tut@temp.tex}% + \end{quoting}% +} +\newcommand*\tud@tut@input{% + \def\@tempa##1##2{% + ##1% + \begingroup% + ##2% + \setbox\@tempboxa\hbox{\vbox{##1}}% + \@tempdima=\ht\@tempboxa% + \setbox\@tempboxa\box\voidb@x% + \ifdim\@tempdima>\z@\relax% + \endgraf% + \vspace{\medskipamount}% + \noindent\ignorespaces% + \fi% + \endgroup% + }% + \@tempa{\Code@Preamble}{}% + \setlength\@tempdimc{\leftskip}% + \setlength\leftskip{\leftmargin}% + \ActivateWarningFilters[Tutorial]% + \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% + \DeactivateWarningFilters[Tutorial]% + \global\let\Code@Hook\relax% + \setlength\leftskip{\@tempdimc}% + \noindent\ignorespaces% +} +\newcommand*\InputCode{\input{\tud@tut@temp.tex}} +\IfFileExists{\tud@tut@temp-standalone.tex}{\@tempswafalse}{\@tempswatrue} +\if@tempswa% +\ActivateWarningFilters[Tutorial]% +\begin{filecontents*}{\tud@tut@temp-standalone.tex} +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\documentclass[english,ngerman]{tudscrreprt} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{tudscrsupervisor} +\usepackage{isodate} +\usepackage{enumitem} +\setlist{noitemsep} +\begin{document} +\ifdefvoid{\StandaloneDate}{}{\date{\StandaloneDate}}% +\input{\jobname.tex}% +\end{document} +\end{filecontents*} +\DeactivateWarningFilters[Tutorial]% +\fi +\newcommand*\tud@tut@pdf{% + \ifnum\pdfshellescape=\@ne\relax% + \filemodCmp{\jobname-standalone-\StandaloneFile.pdf}{\jobname.tex}{}{% + \begingroup% + \let\printdate\@firstofone% + \edef\@tempa{\expandonce\@date}% + \def\@tempb{\today}% + \ifx\@tempa\@tempb\relax% + \def\@tempb{}% + \else% + \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}% + \fi% + \edef\@tempa{% + pdflatex -jobname=\tud@tut@temp\space% + "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}% + {\tud@tut@temp-standalone.tex}"% + }% + \immediate\write18{\@tempa^^J\@tempa^^J\@tempa}% + \ifwindows% + \def\@tempa{rename}% + \else% + \def\@tempa{mv}% + \fi% + \immediate\write18{% + \@tempa\space\tud@tut@temp.pdf\space% + \jobname-standalone-\StandaloneFile.pdf% + }% + \endgroup% + }% + \fi% + \global\let\StandaloneFile\relax% +} +\NewDocumentCommand\IncludeStandalone{omO{1}}{% + \IfFileExists{\jobname-standalone-#2.pdf}{% + \@tempcnta\z@% + \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% + \ifnum\@tempcnta>\z@\relax% + \setlength\@tempdima{\textwidth}% + \divide\@tempdima\@tempcnta% + \advance\@tempcnta\m@ne% + \multiply\@tempcnta 2% + \addtolength\@tempdima{-\@tempcnta\tabcolsep}% + \@for\@tempa:=#3\do{% + \advance\@tempcnta\m@ne% + \edef\@tempb{% + keepaspectratio,page=\@tempa,width=\the\@tempdima,% + \IfValueT{#1}{#1}% + }% + \fbox{% + \expandafter\includegraphics\expandafter[\@tempb]{% + \jobname-standalone-#2.pdf% + }% + }% + \ifnum\@tempcnta>\z@\relax\hfill\fi% + }% + \fi% + }{% + \tud@shellescape@wrn{\jobname-standalone-#2.pdf}% + }% +} +\AfterPackage*{pstricks}{% + \ifnum\pdfshellescape=\@ne\relax% + \filemodCmp{\jobname-pics.pdf}{\jobname.tex}{% + \PassOptionsToPackage{off}{auto-pst-pdf}% + }{}% + \else% + \PassOptionsToPackage{off}{auto-pst-pdf}% + \fi% + \RequirePackage{auto-pst-pdf}[2009/04/26]% + \ifnum\pdfshellescape=\@ne\relax% + \edef\@tempa{\app@exe{\app@rm "*\app@suffix*"}}% + \@tempa% + \fi% +} +\PassOptionsToPackage{obeyFinal}{todonotes} +\ifdef{\tudprintflag}{% + \PassOptionsToPackage{color=white}{todonotes}% +}{% + \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% +} +\RequirePackage{todonotes}[2012/07/25] +\AfterPackage*{todonotes}{% + \newcommand*\tud@todo@type@color[2]{% + \define@boolkey{todonotes}{#1}[true]{% + \ifdef{\tudprintflag}{}{% + \ifbool{KV@todonotes@#1}{\setkeys{todonotes}{color=#2}}{}% + }% + }% + }% + \tud@todo@type@color{doc}{HKS41!30}% + \tud@todo@type@color{rls}{HKS44!30}% + \tud@todo@type@color{imp}{HKS57!50}% + \tud@todo@type@color{urg}{HKS07!50}% + \tud@todo@type@color{nxt}{HKS92!30}% + \undef\tud@todo@type@color% + \newcommand*\tud@todo@marginnote{}% + \NewDocumentCommand\ToDo{somo}{% + \ifbool{@tud@todo}{% + \global\let\tud@currentHref\@currentHref% + \begingroup% + \let\@tempa\@empty% + \def\tud@todo@marginnote{ToDo}% + \IfValueT{#4}{% + \def\tud@todo@marginnote{#4}% + \tud@v@get\@tempc{#4}% + \ifcsdef{tud@v@\@tempc}{% + \ifstr{\@tempc}{\TUDScriptVersionNumber}{}{\def\@tempa{urg}}% + \edef\tud@todo@marginnote{v\@tempc}% + }{% + \def\@tempa##1.##2##3##4\@nil{##1##2##3}% + \edef\@tempb{\expandafter\@tempa\@tempc.000\@nil}% + \ifxnumber{\@tempb}{% + \def\@tempa{nxt}% + \edef\tud@todo@marginnote{v\@tempc}% + }{\let\@tempa\@empty}% + }% + }% + \IfValueT{#2}{\preto\@tempa{#2,}}% + \@tempswafalse% + \ifx\tud@todo@type@pos\relax\@tempswatrue\fi% + \toks@{\forcsvlist\@tempb}% + \eaddto@hook\toks@{\expandafter{\@tempa}}% + \let\@tempa\@empty% + \def\@tempb##1{% + \eappto\@tempa{##1,}% + \ifinlist{##1}{\tud@todo@type@pos}{\@tempswatrue}{}% + \ifinlist{##1}{\tud@todo@type@neg}{\@tempswafalse}{}% + }% + \the\toks@% + \if@tempswa% + \ifhmode\par\fi% + \let\par\relax% + \vskip\medskipamount% + \noindent% + \toks@\expandafter{\@tempa inline}% + \IfBooleanT{#1}{\addto@hook\toks@{,nolist}}% + \sbox\z@{% + \expandafter\todo\expandafter[\the\toks@]{\trim@spaces{#3}\strut}% + }\usebox\z@% + \renewcommand*\marginpar[2][]{% + \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% + }% + \toks@\expandafter{\@tempa noline,nolist}% + \settowidth\marginparwidth{\tud@todo@marginnote}% + \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% + \expandafter\todo\expandafter[\the\toks@]{\tud@todo@marginnote\strut}% + \aftergroup\par\aftergroup\noindent% + \fi% + \endgroup% + \global\let\@currentHref\tud@currentHref% + }{}% + \ignorespaces% + }% + \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% +} +\TUD@UnwindPackage{todonotes}{% + \NewDocumentCommand\ToDo{somo}{}% + \newcommand*\ListOfToDo{}% +} +\RequirePackage{textcomp}[2005/09/27] +\RequirePackage{setspace}[2011/12/19] +\setstretch{1.1} +\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]} +\PassOptionsToPackage{vskip=\smallskipamount}{quoting} +\RequirePackage{quoting}[2014/01/28] +\RequirePackage{isodate}[2010/01/03] +\RequirePackage{hologo}[2012/04/26] +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \setlength\fboxsep{0.25em} + \fbox{Achtung!}% + }[#1]% + \emph{\trim@spaces{#2}}% +} +\NewDocumentCommand\Forum{st'}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% + \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% + \the\toks@\xspace% +} +\NewDocumentCommand\CTAN{sog}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% + \addto@hook\toks@{% + {\tud@english{Comprehensive TeX Archive Network (CTAN\IfValueT{#3}{~#3})}}% + }% + \the\toks@\xspace% +} +\NewDocumentCommand\scrguide{sO{\KOMAScript-Handbuch}}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{% + {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% + }% + \addto@hook\toks@{{#2}}% + \the\toks@\xspace% +} +\newcommand*\CD{\tud@english{Corporate Design}\xspace} +\newcommand*\CDs{\tud@english{Corporate Designs}\xspace} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\DDC{% + \mbox{% + D\kern.05em R\kern.05em E\kern.05em S\kern.05em % + D\kern.05em E\kern.05em N\kern.1em-\kern.1em concept% + }\xspace% +} +\newcommand*\Univers{\texorpdfstring{\textubn{Univers}}{Univers}\xspace} +\newcommand*\DIN{\texorpdfstring{\textdbn{DIN~BOLD}}{DIN BOLD}\xspace} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbs{} +\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape} +\DeclareTextFontCommand\textsbs{\sbsfont} +%%% From File: tudscr-misc.dtx +\begingroup +\newcommand*\tud@write@xdy{} +\newwrite\tud@write@xdy +\newif\if@tud@xdy@glo +\newcommand*\tud@xdy@create[2][theindex]{% + \IfFileExists{\@currname-#2.xdy}{}{% + \ifstr{#1}{theglossary}{\@tud@xdy@glotrue}{\@tud@xdy@glofalse}% + \openout\tud@write@xdy=\@currname-#2.xdy\relax% + \write\tud@write@xdy{(require "texindy.xdy")}% + \write\tud@write@xdy{% + (define-location-class^^J% + \space\space"arabic-page-numbers" ("arabic-numbers")% + \space:min-range-length 1^^J% + )^^J% + (markup-range :sep "--")% + }% + \write\tud@write@xdy{% + (markup-locclass-list% + \space:open "\string\,\string\dotfill\string\,"% + \space:close "\string\relax"% + )% + }% + \write\tud@write@xdy{% + (merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% + }% + \write\tud@write@xdy{% + (define-attributes (("declare" "!" "important" "?" "default")))^^J% + (markup-locref% + \space:attr "declare"\space\space% + \space:open "\string\textbf{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "!"\@spaces\@spaces% + \space:open "\string\textbf{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "important"% + \space:open "\string\textsl{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "?"\@spaces\@spaces% + \space:open "\string\textsl{\string\hyperpage{"% + \space:close "}}"% + )^^J% + (markup-locref% + \space:attr "default"\space\space% + \space:open "\string\hyperpage{"\@spaces\@spaces% + \space:close "}"% + )% + }% + \write\tud@write@xdy{% + (markup-crossref-list :class "see"^^J% + \space\space:open "\string\cleversee{" \@spaces:sep "; " :close "}"^^J% + )^^J% + (markup-crossref-list :class "seealso"^^J% + \space\space:open "\string\cleverseealso{" :sep "; " :close "}"^^J% + )% + }% + \write\tud@write@xdy{% + (markup-crossref-layer-list :class "see"% + \@spaces\space:sep "\string\,\string\textbar\string\,"% + )^^J% + (markup-crossref-layer-list :class "seealso"% + \space:sep "\string\,\string\textbar\string\,"% + )% + }% + \closeout\tud@write@xdy% + }% +} +\tud@xdy@create{ind} +\endgroup +\endinput +%% +%% End of file `tudscrtutorial.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty index 33ed2a093d1..f2f423cfba5 100644 --- a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty +++ b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty @@ -36,7 +36,7 @@ %%% From File: tudscr-twocolfix.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{twocolfix}[% - 2016/06/17 v2.04e TUD-KOMA-Script + 2016/07/26 v2.05 TUD-KOMA-Script package (twocolumn layout bugfix)% ] @@ -94,9 +94,55 @@ \@floatplacement% \fi% } -\@ifundefined{scr@topnewpage} - {\let\@topnewpage\@tempa} - {\let\scr@topnewpage\@tempa} +\long\def\@tempb[#1]{% + \@nodocument + \@next\@currbox\@freelist{}{}% + \global \setbox\@currbox + \color@vbox + \normalcolor + \vbox {% + \hsize\textwidth + \@parboxrestore + \col@number \@ne + #1% + \vskip -\dbltextfloatsep + }% + \color@endbox + \ifdim \ht\@currbox>\textheight + \ht\@currbox \textheight + \fi + \global \count\@currbox \tw@ + \@tempdima -\ht\@currbox + \advance \@tempdima -\dbltextfloatsep + \global \advance \@colht \@tempdima + \ifx \@dbltoplist \@empty + \else + \@latexerr{Float(s) lost}\@ehb + \let \@dbltoplist \@empty + \fi + \@cons \@dbltoplist \@currbox + \global \@dbltopnum \m@ne + \ifdim \@colht<2.5\baselineskip + \@latex@warning@no@line {Optional argument of \noexpand\twocolumn + too tall on page \thepage}% + \@emptycol + \if@firstcolumn + \else + \@emptycol + \fi + \else + \global \vsize \@colht + \global \@colroom \@colht + \@floatplacement + \fi +} +\@ifundefined{scr@topnewpage}{% + \@check@eq\@topnewpage\@tempb% + \let\@topnewpage\@tempa% +}{% + \@check@eq\scr@topnewpage\@tempb% + \let\scr@topnewpage\@tempa% +} \endinput %% %% End of file `twocolfix.sty'. -- cgit v1.2.3