From c933b55e9ab028dafd369d7bc0cf16ea24473f45 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 9 Aug 2022 20:01:54 +0000 Subject: tudscr (9aug22) git-svn-id: svn://tug.org/texlive/trunk@64085 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/tudscr/fix-tudscrfonts.sty | 230 +- Master/texmf-dist/tex/latex/tudscr/mathswap.sty | 22 +- .../texmf-dist/tex/latex/tudscr/tudscr-gitinfo.sty | 220 ++ Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls | 3555 ++++++++++--------- Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty | 793 +++-- Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls | 3695 +++++++++++--------- Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty | 244 +- .../tex/latex/tudscr/tudscrcomp-book.sty | 198 -- .../tex/latex/tudscr/tudscrcomp-poster.sty | 353 -- Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty | 474 ++- Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls | 2134 ++++++----- Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty | 1190 ++++--- .../texmf-dist/tex/latex/tudscr/tudscrmanual.cls | 1044 +++--- .../texmf-dist/tex/latex/tudscr/tudscrmanual.sty | 1689 +++++++++ .../texmf-dist/tex/latex/tudscr/tudscrposter.cls | 3232 +++++++++-------- Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls | 3695 +++++++++++--------- .../tex/latex/tudscr/tudscrsupervisor.sty | 316 +- .../texmf-dist/tex/latex/tudscr/tudscrtutorial.sty | 1602 --------- Master/texmf-dist/tex/latex/tudscr/twocolfix.sty | 14 +- 19 files changed, 13201 insertions(+), 11499 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscr-gitinfo.sty delete mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty delete mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty create mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrmanual.sty delete mode 100644 Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty (limited to 'Master/texmf-dist/tex/latex/tudscr') diff --git a/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty index cc9ec653bc8..d77d604c88a 100644 --- a/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/fix-tudscrfonts.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,fixfonts') +%% tudscr-version.dtx (with options: `package,fixfonts,identify') %% tudscr-comp.dtx (with options: `package,fixfonts,identify') %% tudscr-base.dtx (with options: `package,fixfonts,load') %% tudscr-layout.dtx (with options: `package,fixfonts,option') @@ -13,10 +13,11 @@ %% tudscr-comp.dtx (with options: `package,fixfonts,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -32,59 +33,65 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-comp.dtx -\ProvidesPackage{fix-tudscrfonts}[% - 2021/07/15 v2.06n TUD-Script +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +%%%% From File: tudscr-comp.dtx (no git version info was found) +\ProvidesPackage{fix-tudscrfonts}% +[% + 2022/08/09 v2.06o TUD-Script package for font fixes (compatibility for old tud(scr) classes)% ] -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] -%%% From File: tudscr-layout.dtx -\newif\if@tud@heavyheadings +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] +%%%% From File: tudscr-layout.dtx (no git version info was found) +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -97,29 +104,39 @@ \fi% \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) +\TUDExecuteOptions{% + headings=heavy% +} \DeclareOption*{% \expandafter\PassOptionsToPackage\expandafter{\CurrentOption}% {tudscrfonts}% } -\TUDExecuteOptions{% - headings=heavy% -} \TUDProcessOptions\relax -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \AfterPackage{tudscrfonts}{% \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseriesforce{\tud@cdfont@ebf}% + \fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \fontseriesforce{\bfdefault}% + \fi% \selectfont% } \if@tud@cdoldfont@active @@ -131,48 +148,39 @@ \fi% }% \fi -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% } -\if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]#3{% + \begingroup% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% - }% -\fi -\newrobustcmd*\tud@sec@strut{% + \endgroup% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} +\if@tud@cdoldfont@active + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% +\fi } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \AtEndPreamble{% \tud@fixfonts@class@check% - \RequirePackage{tudscrfonts}[\TUD@Version]% + \RequirePackage{tudscrfonts}[% + 2022/08/09 v2.06o TUD-Script + ]% } \ifx\usepackage\RequirePackage \newcommand*\tud@fixfonts@class@check{% @@ -215,6 +223,8 @@ \tud@cs@store{shapedefault}% \tud@cs@store{normalfont}% \let\normalfont\relax% + \let\abovecaptionskip\relax% + \let\belowcaptionskip\relax% \PassOptionsToClass{serifmath}{#1}% }% \AfterClass{#1}{% @@ -235,6 +245,10 @@ \tud@cs@restore{seriesdefault}% \tud@cs@restore{shapedefault}% \tud@cs@restore{normalfont}% + \newlength\abovecaptionskip% + \newlength\belowcaptionskip% + \setlength\abovecaptionskip{10\p@}% + \setlength\belowcaptionskip{0\p@}% #2% \AfterPackage{tudscrfonts}{% \def\dinBold{\dinbn}% @@ -325,29 +339,41 @@ \tud@fixfonts@class@adapt{tudposter}{} \tud@fixfonts@class@adapt{tudbeamer}{} \tud@fixfonts@class@adapt{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{% + \patchcmd\@makechapterhead{% + \dinBold\Huge\bfseries% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makechapterhead}{\MakeUppercase}{% + \patchcmd\@makechapterhead{% + \MakeUppercase% + }{% \tud@sec@format% }{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{% + \patchcmd\@makeschapterhead{% + \dinBold\Huge\bfseries% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\@makeschapterhead}{\MakeUppercase}{% + \patchcmd\@makeschapterhead{% + \MakeUppercase% + }{% \tud@sec@format% }{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{% + \patchcmd\section{% + \dinBold\Large\bfseries\MakeUppercase% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Large% \tud@sec@format% }{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{% + \patchcmd\showtitle{% + \dinBold\Huge\bfseries\MakeUppercase% + }{% \tud@sec@fontface% \if@colortitle\color{HKS41-30}\fi% \Huge% @@ -355,6 +381,7 @@ }{}{\tud@patch@wrn{showtitle}}% } \tud@fixfonts@class@adapt{tudmathposter}{% + \ifunivers\PassOptionsToPackage{cdoldfont}{tudscrfonts}\fi% \def\raggedtitle{\tud@raggedright}% \renewcommand*\raggedpart{\tud@raggedright}% \renewcommand*\raggedsection{\tud@raggedright}% @@ -382,32 +409,31 @@ \fi }% }% - \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}% + \apptocmd\maketitle{% + \vspace{-6ex}% + }{}{\tud@patch@wrn{maketitle}}% \renewcommand*\subtitlefont{% \unskip% \tud@sec@fontface% \huge% }% \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@sec@format{#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}% + \def\sectionfont{\tud@sec@fontface\LARGE}% + \def\subsectionfont{\tud@sec@fontface\large}% + \patchcmd\ps@tudposter{% + \textbf{\@einrichtung}% + }{% + {\fontseries{b}\selectfont\@einrichtung}% }{}{\tud@patch@wrn{ps@tudposter}}% \pagestyle{tudposter}% } \newcommand*\tud@x@tudfonts@prevent{% - \RequirePackage{amsmath}% - \RequirePackage{amsfonts}% \newif\if@tudfonts@nodin% \let\DeclareTudMathSizes\@gobblefour% \let\tud@x@tudfonts@prevent\relax% } \PreventPackageFromLoading[\tud@x@tudfonts@prevent]{tudfonts} +\PreventPackageFromLoading{opensans} \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 7a9a9de6438..276040a8ed9 100644 --- a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty +++ b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty @@ -7,10 +7,11 @@ %% tudscr-mathswap.dtx (with options: `package') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -26,12 +27,11 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-mathswap.dtx +%%%% From File: tudscr-mathswap.dtx (no git version info was found) \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathswap}[% - 2021/07/15 v2.06n TUD-Script - package - (swap mathematical separators)% + 2022/08/09 v2.06o TUD-Script + package (swap mathematical separators)% ] \newcommand*\@commaswap{,} \newcommand*\commaswap[1]{\gdef\@commaswap{#1}\ignorespaces} @@ -81,10 +81,10 @@ } \newcommand*\ms@token{} \begingroup - \catcode`,=\active - \gdef,{\futurelet\ms@token\ms@smartcomma} - \catcode`.=\active - \gdef.{\futurelet\ms@token\ms@smartdot} + \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}} diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscr-gitinfo.sty b/Master/texmf-dist/tex/latex/tudscr/tudscr-gitinfo.sty new file mode 100644 index 00000000000..1ba983a1777 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscr-gitinfo.sty @@ -0,0 +1,220 @@ +%% +%% This is file `tudscr-gitinfo.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,git,identify') +%% tudscr-gitinfo.dtx (with options: `identify,package') +%% +%% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script +%% +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ +%% +%% This file was generated from file(s) of the TUD-Script bundle. +%% ---------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, either version 1.3c of this license or +%% any later version. 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 version 2008-05-04 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The current maintainer and author of this work is Falk Hanisch. +%% +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] +\begingroup + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% + \gdef\TUD@Version{#1}% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% + \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-Script bundle versions% + }% + \fi% + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% +\endgroup +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +%%%% From File: tudscr-gitinfo.dtx (no git version info was found) +\def\GitContainerFile{tudscr-gitinfo-ver.aux} +\ProvidesPackage{tudscr-gitinfo}[% + 2022/08/09 v2.06o TUD-Script + package (obtaining git version)% +] +\ifcsname ver@\GitContainerFile\endcsname\else + \InputIfFileExists{\GitContainerFile}{}{}% +\fi +\def\GetFileInfo{\tud@GetFileInfo} +\newcommand*\tud@git@file@list{} +\newcommand*\tud@GetFileInfo[1]{% + \filename@parse{#1}% + \ifx\filename@ext\relax% + \edef\filename{\filename@area\filename@base.dtx}% + \expandafter\IfFileExists\expandafter{\filename}{}{% + \edef\filename{\filename@area\filename@base.tex}% + }% + \else% + \edef\filename{#1}% + \fi% + \expandafter\tud@git@log\expandafter{\filename}% + \ifcsname\filename-ver\endcsname% + \def\@tempa##1 ##2 ##3\@nil{% + \def\filedate{##1}% + \let\fileversion\@empty% + \def\filerevision{##3}% + }% + \edef\@tempb{\csname\filename-ver\endcsname}% + \expandafter\@tempa\@tempb\@nil% + \let\fileinfo\@empty% + \edef\tud@git@file@list{\tud@git@file@list,\filename}% + \else% + \PackageWarningNoLine{tudscr-gitinfo}{No git info found for \filename}% + \expandafter\tud@@GetFileInfo\expandafter{\filename}% + \fi% +} +\newcommand*\tud@@GetFileInfo[1]{% + \@ifundefined{filedate}{\def\filedate{?}}{}% + \@ifundefined{fileversion}{\def\fileversion{?}}{}% + \@ifundefined{filerevision}{\let\filerevision\@empty}{}% + \@ifundefined{fileinfo}{\let\fileinfo\@empty}{}% + \ifcsname ver@\filename\endcsname% + \def\@tempa##1 ##2 ##3\relax##4\relax{% + \def\@tempb####1\relax?####2\@nil{\edef\@tempc{####1}}% + \@tempb##1\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\filedate\@tempc% + \@tempb##2\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\fileversion\@tempc% + \@tempb##3\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\fileinfo\@tempc% + \fi% + \fi% + \fi% + }% + \edef\@tempb{\csname ver@#1\endcsname}% + \expandafter\@tempa\@tempb\relax? ? \relax\relax% + \fi% +} +\RequirePackage{scrlfile}[% + 2022/05/01 v3.36 KOMA-Script +] +\AfterPackage*{doc}{\def\GetFileInfo{\tud@GetFileInfo}} +\RequirePackage{pdftexcmds} +\newcommand*\tud@git@log[1]{% + \ifnum\pdf@shellescape=\@ne% + \begingroup% + \endlinechar=\m@ne% + \everyeof{\noexpand}% + \edef\@tempa{\tud@git@@log{#1}}% + \ifx\@tempa\@empty\else% + \edef\@tempa{% + \unexpanded{\expandafter\gdef\csname #1-ver\endcsname}{\@tempa}% + }% + \@tempa% + \fi% + \endgroup% + \fi% +} +\begingroup +\@makeother\| +\newcommand*\tud@git@@log[1]{} +\xdef\tud@git@@log#1{% + \noexpand\@@input|"git log -1 % + --format='\@percentchar ad \@percentchar h' % + --date=format:'\@percentchar Y/\@percentchar m/\@percentchar d % + \@percentchar H:\@percentchar M:\@percentchar S' % + -- #1" % +} +\endgroup +\AtEndDocument{% + \ifnum\pdf@shellescape=\@ne% + \ifx\tud@git@file@list\@empty\else% + \edef\tud@git@file@list{\expandafter\@gobble\tud@git@file@list}% + \def\@tempa{% + \@percentchar\@percentchar\space% + This file was generated with `tudscr-gitinfo.sty'^^J% + \@percentchar\@percentchar\space% + It is intended to be used for generating either a documentation^^J% + \@percentchar\@percentchar\space% + with class `tudscrdoc' or installation files with `docstrip'% + }% + \chardef\reserved@c15 % + \ch@ck7\reserved@c\write% + \immediate\openout\reserved@c\GitContainerFile\relax% + \immediate\write\reserved@c{\@tempa}% + \@for\@tempa:=\tud@git@file@list\do{% + \edef\@tempb{% + \unexpanded{\expandafter\gdef\csname}% + \@tempa-ver% + \noexpand\endcsname% + {\csname\@tempa-ver\endcsname}% + }% + \immediate\write\reserved@c{\unexpanded\expandafter{\@tempb}}% + }% + \immediate\closeout\reserved@c% + \fi% + \fi% +} +\AtEndOfPackage{% + \GetFileInfo{\jobname}% + \edef\@tempa{% + \filedate\space\fileversion\space% + \ifx\filerevision\@empty\else% + \filerevision\ifx\fileinfo\@empty\else\space\fi% + \fi% + \fileinfo% + }% + \ifcsname ver@\filename\endcsname% + \edef\@tempb{\csname ver@\filename\endcsname}% + \ifx\@tempb\filedate\else% + \PackageWarningNoLine{tudscr-gitinfo}{% + The obtained info for \filename\space is\MessageBreak% + \@tempa\MessageBreak% + so the current info\MessageBreak% + \csname ver@\filename\endcsname\MessageBreak% + is overwritten% + }% + \fi% + \fi% + \ProvidesFile{\filename}[\@tempa]% +} +\endinput +%% +%% End of file `tudscr-gitinfo.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls index d1adf523696..d19991b92fc 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,article') +%% tudscr-version.dtx (with options: `class,article,identify') %% tudscr-base.dtx (with options: `class,article,load') %% tudscr-base.dtx (with options: `class,article,option') %% tudscr-fonts.dtx (with options: `class,article,option') @@ -25,14 +25,15 @@ %% tudscr-layout.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') +%% tudscr-comp.dtx (with options: `class,article,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -48,74 +49,80 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@KOMA{#2}% \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% + \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% + \TUD@Class@Info% \fi% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} \AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-base.dtx +%%%% From File: tudscr-base.dtx (no git version info was found) \newcommand*\tud@komafont@set[2]{% \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% \csdef{tud@komafont@#1}{#2\nobreak}% @@ -127,17 +134,23 @@ \newcommand*\tud@komafont@reset[1]{% \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +\AtEndOfClass{\tud@catcodes@restore} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-Script class% }% ]{tudscrfonts} -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -235,14 +248,11 @@ \TUDoptions{cdhead=heavy}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -263,8 +273,8 @@ \tud@locked@bool@preset{@tud@cdmath@active}{false}% \TUD@SpecialOptionAtDocument{tud@math@set}% } -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -297,6 +307,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} \AtEndOfClass% {% \if@tud@cdoldfont@active% @@ -323,12 +334,24 @@ }% \fi% } -\newif\if@tud@x@scr@fontsize@set +\tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } \AtEndOfClass% @@ -336,17 +359,17 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% + \FamilyKeyStateUnknownValue% \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% {% The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% }% } -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -359,7 +382,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } \newcommand*\tud@ttfont@num{0} @@ -432,13 +455,13 @@ } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} \TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} -%%% From File: tudscr-area.dtx -\newif\if@tud@cdgeometry@reset +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@cdgeometry@reset \newcommand*\tud@cdgeometry@reset[1]{% \@tud@cdgeometry@resettrue% \TUDoptions{cdgeometry=#1}% @@ -487,7 +510,7 @@ \or% custom \tud@locked@num@set{tud@cdgeometry@num}{1}% \fi% - \if@atdocument% + \tud@if@preamble{}{% \if@tud@cdgeometry@reset\else% false \ifcase\tud@cdgeometry@num\relax% \tud@loadgeometry{current@typearea}% @@ -498,51 +521,54 @@ \fi% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% - \fi% + }% \fi% } -\newcommand*\tud@dim@extrabottommargin{\z@} +\newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } -\newcommand*\tud@dim@bleedmargin{.2in} +\newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#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% + \tud@length@setabsolute\tud@bleedmargin@dim% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \newcommand*\tud@x@typearea@warnings@off[1][]{% \IfArgIsEmpty{#1}{}{\let#1\@empty}% \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \ifstr{##1}{typearea}{% - \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \ifstrstart{##2}{% + \tud@if@strequal{##1}{typearea}{% + \tud@if@strstart{##2}{% + Bad type area settings!% + }{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Very low DIV value!% + }{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% - \tud@cs@use{PackageWarning}{##1}{##2}% + \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% - \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% + \IfArgIsEmpty{#1}{}{% + \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}% + }% \fi% }% } @@ -555,12 +581,75 @@ \AfterPackage{typearea}{% \tud@x@typearea@warnings@on% } -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) +\tud@newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@bool@numkey,% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@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% +} \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} -\newif\if@tud@head@font@set -\newif\if@tud@head@date +\tud@newif\if@tud@head@font@set +\tud@newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@bool@numkey,% @@ -649,8 +738,10 @@ \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{extrabottommargin=#1}% + \fi% \fi% } \newcommand*\tud@ps@store[1]{% @@ -687,87 +778,20 @@ \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \ifcsundef{@@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@dim@footlogoheight{} -\let\tud@dim@footlogoheight\relax +\newcommand*\tud@footlogoheight@dim{0pt} \TUD@key{footlogoheight}{% - \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% + \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#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% + \tud@length@setabsolute\tud@footlogoheight@dim% \global\@tud@footlogo@option@settrue% \fi% } -\newif\if@tud@ddc@internal -\newcommand*\tud@comp@clearpage{}% -\newcommand*\tud@comp@resetpagestyle{}% -\newcommand*\tud@ddc@switch{} -\edef\tud@ddc@switch{% - \TUD@bool@numkey,% - {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% - {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% - {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% -} -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cd@switch{} \edef\tud@cd@switch{% \TUD@bool@numkey,% @@ -794,13 +818,13 @@ \TUD@key@preset{cdpart}{#1}% \TUD@key@preset{cdsection}{#1}% \TUD@SpecialOptionAtDocument{tud@cd@process}% - \if@atdocument\else% + \tud@if@preamble{% \ifcase\tud@cd@num\relax% false \tud@locked@num@preset{tud@cdgeometry@num}{0}% \else% !false \tud@locked@num@preset{tud@cdgeometry@num}{2}% \fi% - \fi% + }{}% \fi% } \newcommand*\tud@cd@cover@num{0} @@ -832,19 +856,28 @@ \fi% } \newcommand*\tud@pagecolor{}% -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +\AfterPackage{xcolor}{% + \apptocmd\normalcolor{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% } -\newcommand*\tud@dim@headingsvskip{0pt} +\newcommand*\tud@headingsvskip@dim{0pt} \TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% + \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% } -\newif\if@tud@heavyheadings +\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% +} +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -859,19 +892,19 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis +%%%% From File: tudscr-title.dtx (no git version info was found) +\tud@newif\if@tud@subjectthesis \TUD@key{subjectthesis}[true]{% \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% } -\newif\if@tud@titlesignature +\tud@newif\if@tud@titlesignature \TUD@key{titlesignature}[true]{% \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {new}{2},{standard}{2},{heading}{2},% @@ -890,11 +923,11 @@ } \newcommand*\tud@abstract@level@num{0} \tud@locked@newnum{tud@abstract@toc@num}{0} -\newif\if@tud@abstract@multi +\tud@newif\if@tud@abstract@multi \@tud@abstract@multitrue -\newif\if@tud@abstract@fil +\tud@newif\if@tud@abstract@fil \@tud@abstract@filtrue -\newif\if@tud@abstract@markboth +\tud@newif\if@tud@abstract@markboth \TUD@key{abstract}[true]{% \edef\@tempb{\TUD@bool@numkey,\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% @@ -951,15 +984,16 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{abstract}[true]{% + \FamilyKeyStateUnknownValue% \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{1} \tud@locked@newnum{tud@declaration@toc@num}{0} -\newif\if@tud@declaration@multi +\tud@newif\if@tud@declaration@multi \@tud@declaration@multitrue -\newif\if@tud@declaration@fil +\tud@newif\if@tud@declaration@fil \@tud@declaration@filtrue -\newif\if@tud@declaration@markboth +\tud@newif\if@tud@declaration@markboth \TUD@key{declaration}[true]{% \edef\@tempb{\TUD@bool@numkey,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% @@ -1014,8 +1048,8 @@ \fi% \fi% } -%%% From File: tudscr-misc.dtx -\newif\if@tud@bookmarks +%%%% From File: tudscr-misc.dtx (no git version info was found) +\tud@newif\if@tud@bookmarks \TUD@key{tudbookmarks}[true]{% \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% } @@ -1025,7 +1059,7 @@ } \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \tud@if@strequal{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } \newcommand*\tud@atdocument@hook{} \let\tud@atdocument@hook\relax @@ -1042,7 +1076,7 @@ \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \newcommand*\TUD@deprecated@key[2]{% \ClassWarning{\TUD@Class@Name}% {% @@ -1093,16 +1127,23 @@ \tud@res@c% }{}% } -\newcommand*\TUD@deprecated@lengthcs[2][]{% - \ifdim\csuse{#2}<\maxdimen\relax% - \ClassWarning{\TUD@Class@Name}{% - Using the length `\@backslashchar#2' is deprecated. \MessageBreak% - You should use option `#2' instead% - }% - \csxdef{tud@dim@#2}{\the\csuse{#2}}% - \expandafter\setlength\csname #2\endcsname{\maxdimen}% - \global\csuse{#2}=\csuse{#2}% - #1% +\newcommand*\TUD@deprecated@length[1]{% + \ifdim#1<\maxdimen\relax% + \begingroup% + \tud@strlength\tud@res@a{#1}% + \edef\tud@res@b{\expandafter\@gobble\string#1}% + \ClassWarning{\TUD@Class@Name}{% + Setting length `\string#1' is deprecated. \MessageBreak% + The option `\tud@res@b=\tud@res@a'\MessageBreak% + is used instead% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\TUDoption{\tud@res@b}{\tud@res@a}% + \global\noexpand\csletcs{tud@\tud@res@b @dim}{tud@\tud@res@b @dim}% + }% + \tud@res@a% + \global\setlength#1{\maxdimen}% \fi% } \newcommand*\tud@v@comp{\tud@v@last} @@ -1130,88 +1171,35 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% - \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% - `version=3.12' KOMA-Script compatibility option.% - }% - \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, but \KOMAScriptVersion was found.% - }% - }% } \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.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@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \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}% + \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% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% \ClassWarningNoLine{\TUD@Class@Name}% {% @@ -1220,6 +1208,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -1362,7 +1356,7 @@ \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1377,12 +1371,12 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax \tud@if@v@lower{2.05}{% \TUD@key@preset{relspacing}{false}% }{% @@ -1397,34 +1391,36 @@ \TUD@key@preset{ttfont}{roboto}% \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% cd=true,tudbookmarks=true% } +\DeclareOption*{\tud@x@scr@checkoptions} \TUDProcessOptions\relax -\LoadClass{\TUD@Class@KOMA}[2020/09/21] +\LoadClass{\TUD@Class@KOMA}[% + 2022/05/01 v3.36 KOMA-Script +] \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% \noexpand\ClassError{\noexpand\TUD@Class@Name}% {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% class `\noexpand\TUD@Class@Name'% - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } -%%% From File: tudscr-base.dtx -\RequirePackage{environ}[2013/04/01] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{environ} \newcommand*\tud@x@multicol@num{1} \newcommand*\tud@x@multicol@check{% \ifnum\tud@x@multicol@num>\@ne\relax% @@ -1444,14 +1440,16 @@ which now will be loaded automatically% }% }{}% - \RequirePackage{graphicx}[1999/02/16]% + \RequirePackage{graphicx} }% - \RequirePackage{tudscrcolor}[\TUD@Version]% + \RequirePackage{tudscrcolor}[% + 2022/08/09 v2.06o TUD-Script + ]% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) \newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} \newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -1490,11 +1488,9 @@ }% }% } -\TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\TUD@RecommendPackage{mweights} +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -1507,12 +1503,17 @@ \newcommand*\tud@ttfont@fam{tudtt} \newcommand*\tud@ttfont@rb{tudtt} \newcommand*\tud@ttfont@lm{lmtt} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% \TUD@key@preset{ttfont}{lmodern}% } +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -1520,8 +1521,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% \@ifpackageloaded{opensans}{% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1538,6 +1539,17 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \fi% + \fi% \fi% } \newcommand*\tud@cdfont@@check[5][-]{% @@ -1572,7 +1584,7 @@ \boolfalse{#5}% \fi% } -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -1589,7 +1601,10 @@ }% }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1597,8 +1612,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -1612,7 +1631,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -1630,7 +1649,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% \if@tud@res@swa% \appto\tud@res@a{% @@ -1644,8 +1663,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -1662,40 +1681,12 @@ \fi% \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% - \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% - {\tud@res@a} + \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}% + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -\newif\if@tud@x@bm@requested -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} \newcommand*\tud@x@fontspec@init[2]{% \begingroup% \edef\tud@res@a{% @@ -1725,7 +1716,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -1733,8 +1724,9 @@ }% \tud@res@a% } -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -1759,13 +1751,6 @@ \tud@cs@store{sffamily}% \tud@cs@store{ttfamily}% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \tud@cdfont@set% \tud@cdfont@symbols@set% \tud@ttfont@set% @@ -1814,12 +1799,19 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% \tud@cd@process% \global\@tud@head@font@settrue% } \newcommand*\tud@cdfont@set{% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1833,7 +1825,6 @@ \fi% \tud@cdfont@@set% \fi% - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1901,7 +1892,7 @@ \tud@res@a% \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname% } -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{% \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list% @@ -1922,35 +1913,57 @@ \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}% \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}% } -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@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% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% + \tud@relspacing@@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}% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@restore{columnsep}% + \fi% +} +\newcommand*\tud@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% } \newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1991,28 +2004,33 @@ }{}% \tud@cdfont@declare@textsymb% \fi% - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} - \fi% + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% + \fi% +} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -2035,7 +2053,7 @@ \DeclareTextFontCommand\textcdxi{\cdfontxi}% } \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2053,23 +2071,26 @@ }% \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% \fi% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% \newcommand*\textuln{}% \newcommand*\texturn{}% @@ -2097,26 +2118,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% \if@tud@cdfont@db@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2135,7 +2136,7 @@ \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% \fi% \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -2144,7 +2145,7 @@ \newcommand*\tud@db@wrn{% \ClassWarning{\TUD@Class@Name}% {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -2186,7 +2187,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -2194,29 +2195,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2225,20 +2226,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2246,8 +2247,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2256,9 +2256,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -2268,8 +2268,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2312,12 +2311,12 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false \if@tud@x@fontspec@enabled% - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -2402,24 +2401,24 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% }{}% \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% @@ -2434,8 +2433,18 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -2519,7 +2528,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -2547,7 +2556,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2560,7 +2569,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -2659,26 +2668,19 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% \else% - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% @@ -2686,43 +2688,9 @@ \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% \tud@res@c% } -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} \newcommand*\tud@cdmath@init{% \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2768,12 +2736,11 @@ subdued,defaultmathsizes,nosmalldelims,noequal,% defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% - \RequirePackage{mathastext}[2018/08/22]% + \RequirePackage{mathastext} \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% @@ -2783,104 +2750,128 @@ \fi% \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% \tud@cdmath@also@greeks% - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \fi% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } -\newcommand*\tud@x@mathastext@enc{OT1} -\newcommand*\tud@cdmath@@init[2]{% - \tud@cdfont@@set% - \tud@ttfont@@set% +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} +\newcommand*\tud@cdmath@@@init[9]{% \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% - \fi% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% + \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% \AtBeginDocument{% @@ -2889,14 +2880,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% \else% \@ifpackageloaded{mdsymbol}{}{% \appto\tud@cdmath@wrn{% @@ -2909,18 +2900,73 @@ }% \fi% \fi% - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% + }% +} +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% + }{}% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% + }{}% + \AtBeginDocument{% + \if@tud@cdmath@active% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - }{}% - \if@tud@cdoldfont@active% + }% + }% +\fi +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \tud@if@strequal{#1}{normal}{% + \edef\tud@res@a{\tud@cdmath@normal@name}% + }{% + \tud@if@strequal{#1}{bold}{% + \edef\tud@res@a{\tud@cdmath@bold@name}% + }{}% + }% \fi% - \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% }% } \newcommand*\tud@cdmath@symb@list{} @@ -2949,7 +2995,7 @@ }% \tud@res@a% } -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% @@ -2972,7 +3018,7 @@ } \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% \begingroup% \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% \def\tud@res@b##1"##2\@nil{"##2}% @@ -3075,7 +3121,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% @@ -3084,13 +3130,12 @@ \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% }% } -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% \ifcase\tud@slantedgreek@num\relax% upright \tud@math@loop@greeks@all\tud@math@upright@greeks% @@ -3105,7 +3150,7 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% + \expandafter\mathversion\expandafter{\math@version}% } \newcommand*\tud@math@upright@greeks[1]{% \ifcsundef{up#1}{}{% @@ -3119,49 +3164,7 @@ \csletcs{other#1}{up#1}% }% } -\AtEndPreamble{% - \if@tud@x@mweights@enabled% - \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% - \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% - \fi% - \tud@cdfont@check% - \tud@cdfont@init% - \tud@ttfont@init% - \tud@cdmath@init% - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% - \tud@font@set% - \tud@math@map@greeks% - \tud@math@checkslanted@greeks% - \AtBeginDocument{\tud@math@set}% -} +\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@set{% @@ -3181,14 +3184,14 @@ \if@tud@head@font@set% \if@tud@x@mweights@enabled% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}% \else% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}% \fi% \ifcase\tud@head@font@num\relax\else% true/heavy \tud@head@cdfont@set% @@ -3227,7 +3230,110 @@ \fi% }% \fi -%%% From File: tudscr-fields.dtx +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar} + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterAtEndOfPackage*{siunitx}{% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } +} +\tud@newif\if@tud@x@bm@requested +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \tud@cdmath@set% + \fi% + \RequirePackage{bm} + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +\AtEndPreamble{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@cdfont@check% + \tud@cdfont@init% + \tud@ttfont@init% + \tud@font@set% + \tud@cdmath@init% + \tud@x@bm@delayed% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \AtBeginDocument{\tud@math@set}% +} +%%%% From File: tudscr-fields.dtx (no git version info was found) \newcommand*\getfield[2][\@firstofone]{% \begingroup% \def\tud@res@b{#1}% @@ -3253,20 +3359,26 @@ \newcommand*\@department{} \newcommand*\@institute{} \newcommand*\@chair{} -\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*\faculty{\@dblarg{\tud@head@text@field{faculty}}} +\newcommand*\department{\@dblarg{\tud@head@text@field{department}}} +\newcommand*\institute{\@dblarg{\tud@head@text@field{institute}}} +\newcommand*\chair{\@dblarg{\tud@head@text@field{chair}}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} -\newcommand*\tud@head@text@field[2]{% - \csgdef{@#1}{\trim@spaces{#2}}% +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}[]{#1}} +\newcommand*\tud@head@text@field{} +\def\tud@head@text@field#1[#2]#3{% + \expandafter\tud@trim@field\csname @#1\endcsname{#3}% \global\@tud@head@text@settrue% } +\newcommand*\tud@trim@field[2]{% + \def#1{#2}% + \trim@spaces@in#1% + \global\let#1#1% +} \newcommand*\@@title{} \robustify\@title \renewcommand*\title[1]{% - \gdef\@title{#1}% + \tud@trim@field\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3277,7 +3389,7 @@ } \newcommand*\@@author{} \renewcommand*\author[1]{% - \gdef\@author{#1}% + \tud@trim@field\@author{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3309,128 +3421,160 @@ \endgroup% } \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newrobustcmd*\authormore[1]{\tud@trim@field\@authormore{#1}} \newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +\newrobustcmd*\emailaddress[2][]{% + \kernel@ifstar% + {\tud@emailaddress@simple{#2}}% + {\tud@emailaddress@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\newrobustcmd*\tud@emailaddress@simple[1]{\tud@trim@field\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\tud@trim@field\@emailaddress{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% + \tud@trim@field\@emailaddress{#2}% + \xdef\@emailaddress{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\href% + {mailto:\expandonce\@emailaddress}% + {\noexpand\nolinkurl{\expandonce\@emailaddress}}% \endgroup% }% }% } \newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newrobustcmd*\course[1]{\tud@trim@field\@course{#1}} \newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\newrobustcmd*\discipline[1]{\tud@trim@field\@discipline{#1}} \newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} +\newrobustcmd*\matriculationnumber[1]{\tud@trim@field\@matriculationnumber{#1}} \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newrobustcmd*\matriculationyear[1]{\tud@trim@field\@matriculationyear{#1}} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newrobustcmd*\placeofbirth[1]{\tud@trim@field\@placeofbirth{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} -\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} -\newcommand*\tud@thanks{} -\newcommand*\tud@thesis@do[2]{% +\newcommand*\thesis[1]{\tud@thesis@evaluate{thesis}{#1}} +\CheckCommand*\subject[1]{\gdef\@subject{#1}} +\newcommand*\@@subject{} +\renewcommand*\subject[1]{\tud@thesis@evaluate{subject}{#1}} +\newcommand*\tud@thesis@evaluate[2]{% \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% + \expandafter\tud@trim@field\csname @#1\endcsname{#2}% + \let\tud@res@c\@empty% + \def\thanks##1{\listgadd\tud@res@c{##1}}% \let\footnote\thanks% \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \protected@edef\@tempa{% - \endgroup% - \def\noexpand\@tempa{\@tempa}% - }% - \@tempa% - \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \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{\TUD@Class@Name}{% - Field `thesis' is overwritten by `subject'% - }% + \protected@csxdef{@@#1}{\trim@spaces{#2}}% + \letcs\tud@res@a{@@#1}% + \TUD@set@numkey{thesis}{@tempa}{% + {habil}{0}, + {diss}{1},{doctoral}{1},{phd}{1}, + {diploma}{2}, + {master}{3}, + {bachelor}{4}, + {student}{5}, + {evidence}{6}, + {project}{7}, + {seminar}{8}, + {term}{9}, + {research}{10}, + {log}{11}, + {report}{12}, + {internship}{13} + }{\tud@res@a}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% habil + \def\tud@res@a{\habilitationname}% + \or% diss + \def\tud@res@a{\dissertationname}% + \or% diploma + \def\tud@res@a{\diplomathesisname}% + \or% master + \def\tud@res@a{\masterthesisname}% + \or% bachelor + \def\tud@res@a{\bachelorthesisname}% + \or% student + \def\tud@res@a{\studentthesisname}% + \or% evidence + \def\tud@res@a{\studentresearchname}% + \or% project + \def\tud@res@a{\projectpapername}% + \or% seminar + \def\tud@res@a{\seminarpapername}% + \or% term + \def\tud@res@a{\termpapername}% + \or% research + \def\tud@res@a{\researchname}% + \or% log + \def\tud@res@a{\logname}% + \or% report + \def\tud@res@a{\reportname}% + \or% internship + \def\tud@res@a{\internshipname}% + \else% + \FamilyKeyStateUnknownValue% + \fi% \fi% - \TUD@key@preset{subjectthesis}{true}% - }{% - \TUD@key@preset{subjectthesis}{false}% - }% - \ifx\tud@thanks\relax% - \gdef\@thesis{#2}% - \else% - \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% - \fi% - \protected@xdef\@@thesis{\trim@spaces{#2}}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \global\cslet{@@#1}\tud@res@a% + \tud@if@strequal{#1}{subject}{% + \ifx\@@thesis\@empty\global\let\@@thesis\@@subject\fi% + }{}% + \def\do##1{\appto\tud@res@a{\thanks{##1}}}% + \dolistloop{\tud@res@c}% + \fi% + \edef\tud@res@a{% + \endgroup% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \noexpand\csgdef{@#1}{\expandonce\tud@res@a}% + \fi% + }% + \tud@res@a% } \newcommand*\@graduation{} \newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \gdef\@graduationabbreviation{}% - \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% - \gdef\@graduation{#2}% + \tud@trim@field\@graduationabbreviation{#1}% + \tud@trim@field\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professor{#1}} \newcommand*\@supervisor{} -\newcommand*\supervisor[1]{\gdef\@supervisor{#1}} +\newcommand*\supervisor[1]{\tud@trim@field\@supervisor{#1}} \newcommand*\@supporter{} -\newcommand*\supporter[1]{\gdef\@supporter{#1}} +\newcommand*\supporter[1]{\tud@trim@field\@supporter{#1}} \newcommand*\@company{} -\newcommand*\company[1]{\gdef\@company{#1}} +\newcommand*\company[1]{\tud@trim@field\@company{#1}} \newcommand*\@referee{} -\newcommand*\referee[1]{\gdef\@referee{#1}} +\newcommand*\referee[1]{\tud@trim@field\@referee{#1}} \newcommand*\@advisor{} -\newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newlength\tud@len@signatureskip -\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} +\newcommand*\advisor[1]{\tud@trim@field\@advisor{#1}} +\tud@newglue\tud@glue@signaturevskip +\tud@setglue\tud@glue@signaturevskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \begingroup% \let\and\hfil% \@@author\hfil% \endgroup% } -\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} +\newcommand*\confirmationclosing[1]{\tud@trim@field\@confirmationclosing{#1}} \newcommand*\@place{Dresden} -\newcommand*\place[1]{\gdef\@place{#1}} +\newcommand*\place[1]{\tud@trim@field\@place{#1}} +\CheckCommand*\subtitle[1]{\gdef\@subtitle{#1}} +\renewcommand*\subtitle[1]{\tud@trim@field\@subtitle{#1}} +\CheckCommand\publishers[1]{\gdef\@publishers{#1}}% +\renewcommand*\publishers[1]{\tud@trim@field\@publishers{#1}} \providecommand*\publisher[1]{\publishers{#1}} \TUD@UnwindPackage{isodate}{% \@ifpackageloaded{datetime2}{% @@ -3443,9 +3587,10 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \ifxblank{#2}% - {\gdef#1{}}% - {\gdef#1{\printdate{#2}}}% + \tud@trim@field#1{#2}% + \tud@if@strblank{#1}% + {}% + {\xdef#1{\noexpand\printdate{\expandonce#1}}}% \fi% } \newcommand*\tud@date@check{% @@ -3491,26 +3636,43 @@ } \newcommand*\tud@date@print{% \ifx\@date\@empty\else% + \trim@spaces@in\@beforedate% \ifx\@beforedate\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% + \@beforedate\nobreakspace% \fi% \@date% + \trim@spaces@in\@afterdate% \ifx\@afterdate\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% + \nobreakspace\@afterdate% \fi% \fi% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{% - \tud@printdate{\@dateofbirth}{#1}\ignorespaces% +\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@if@field@unset[1]{% + \begingroup% + \edef\tud@res@a{% + \def\noexpand\tud@res@a####1\string\@latex@####2\noexpand\@nil{% + \noexpand\IfArgIsEmpty{####2}% + \unexpanded{\@tud@res@swafalse\@tud@res@swatrue}% + }% + \noexpand\tud@res@a% + \expandafter\strip@prefix\meaning#1% + \string\@latex@\noexpand\@nil% + }% + \tud@res@a% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% - \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line% - }{% + \expandafter\tud@if@field@unset\expandafter{\csname #1\endcsname}{% \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% @@ -3520,20 +3682,27 @@ \let\and\relax% \let\newline\@empty% \let\\\@empty% - \edef\@tempa{\csname#1\endcsname\and}% + \edef\@tempa{\csname #1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% } \newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% + \IfArgIsEmpty{#1}{% \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@cs@store{@##1}}{}}% + \def\@tempa##1{% + \ifcsdef{@##1}{\tud@cs@store{@##1}}{}% + \ifcsdef{##1}{% + \tud@cs@store{##1}% + \expandafter\xapptocmd\csname ##1\endcsname{\ignorespaces}% + {}{\tud@patch@wrn##1}% + }{}% + }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -3549,6 +3718,7 @@ \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% + \ifcsdef{##1}{\tud@cs@restore{##1}}{}% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3557,16 +3727,16 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \ifstr{#2}{*}{% + \if\detokenize{#2*}\relax% \csdef{@##1}{}% - }{% + \else% \begingroup% \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% \ifin@% \ifcsvoid{@##1}{\@tempc{#2}}{}% \fi% \endgroup% - }% + \fi% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3584,7 +3754,7 @@ matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-localization.dtx +%%%% From File: tudscr-localization.dtx (no git version info was found) \newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% @@ -3594,7 +3764,7 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% @@ -3625,6 +3795,7 @@ \tud@localization@define{\disciplinename} \tud@localization@define{\listingname} \tud@localization@define{\listlistingname} +\tud@localization@define{\habilitationname} \tud@localization@define{\dissertationname} \tud@localization@define{\diplomathesisname} \tud@localization@define{\masterthesisname} @@ -3749,6 +3920,7 @@ \tud@localization@german{\disciplinename}{Studienrichtung} \tud@localization@german{\listingname}{Quelltext} \tud@localization@german{\listlistingname}{Quelltextverzeichnis} +\tud@localization@german{\habilitationname}{Habilitation} \tud@localization@german{\dissertationname}{Dissertation} \tud@localization@german{\diplomathesisname}{Diplomarbeit} \tud@localization@german{\masterthesisname}{Master-Arbeit} @@ -3854,6 +4026,7 @@ \tud@localization@english{\disciplinename}{Discipline} \tud@localization@english{\listingname}{Listing} \tud@localization@english{\listlistingname}{List of Listings} +\tud@localization@english{\habilitationname}{Habilitation} \tud@localization@english{\dissertationname}{Dissertation} \tud@localization@english{\diplomathesisname}{Diploma Thesis} \tud@localization@english{\masterthesisname}{Master Thesis} @@ -3877,8 +4050,8 @@ \tud@localization@english{\@commaswap}{\,}% \tud@localization@english{\@dotswap}{.}% } -%%% From File: tudscr-area.dtx -\newif\if@tud@x@crop@center +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@x@crop@center \AfterPackage{crop}{% \CheckCommand*\CROP@center{% \voffset\stockheight @@ -3888,73 +4061,73 @@ \advance\hoffset-\paperwidth \hoffset.5\hoffset }% - \pretocmd{\CROP@center}{% + \pretocmd\CROP@center{% \@tud@x@crop@centertrue% }{}{\tud@patch@wrn{CROP@center}}% } -\newif\if@tud@x@standalone@crop +\tud@newif\if@tud@x@standalone@crop \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} -\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}{} +\tud@newdim\tud@dim@widemargin +\tud@newdim\tud@dim@slimmargin +\tud@newdim\tud@dim@bothmargin +\tud@newdim\tud@dim@topmargin +\tud@newdim\tud@dim@barheight +\tud@newdim\tud@dim@headsep +\tud@newdim\tud@dim@footsep +\tud@newdim\tud@dim@logox +\tud@newdim\tud@dim@logoy +\tud@newdim\tud@dim@logowidth +\tud@newdim\tud@dim@line +\tud@newdim\tud@dim@heavyline +\tud@newdim\tud@dim@thinline +\tud@newdim\tud@dim@areaheadvskip +\tud@newdim\tud@dim@areadiff +\tud@newdim\tud@dim@areavskip +\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{} \newcommand*\tud@head@fontsize{} -\newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutwidth -\newlength\tud@len@layoutheight -\newlength\tud@len@layouthoffset -\newlength\tud@len@layoutvoffset +\tud@newif\if@tud@cdgeometry@adjust +\tud@newdim\tud@dim@layoutwidth +\tud@newdim\tud@dim@layoutheight +\tud@newdim\tud@dim@layouthoffset +\tud@newdim\tud@dim@layoutvoffset \newcommand*\tud@cdgeometry@set{% \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% - \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \else\ifdim\tud@dim@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% + \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% @@ -3977,58 +4150,58 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{0.25pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{4.5pt}% + \tud@setdim\@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}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{21.213203mm}% + \tud@setdim\tud@dim@heavyline{0.707107pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{42.426407mm}% + \tud@setdim\tud@dim@heavyline{1.414214pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{60mm}% + \tud@setdim\tud@dim@heavyline{2pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{84.852814mm}% + \tud@setdim\tud@dim@heavyline{2.828427pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@thinline{2pt}% \renewcommand*\tud@head@fontsize{36}% \else% >A0/B0 \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% @@ -4039,50 +4212,48 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{2pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{36pt}% + \tud@setdim\@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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{\tud@head@fontsize pt}% + \tud@setdim\@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% - }% + \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}% + \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}% + \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}% + \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}% + \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}% + \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}% + \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}% + \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}% + \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% - \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}% + \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}% \fi% \tud@cdgeometry@papersize@store% } \newcommand*\tud@cdgeometry@assignlayout{% - \ifdim\tud@len@layoutwidth<\p@\relax% - \setlength\tud@len@layoutwidth{\paperwidth}% + \ifdim\tud@dim@layoutwidth<\p@\relax% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% \fi% - \ifdim\tud@len@layoutheight<\p@\relax% - \setlength\tud@len@layoutheight{\paperheight}% + \ifdim\tud@dim@layoutheight<\p@\relax% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \fi% } \newcommand*\tud@cdgeometry@papersize@last{} @@ -4098,8 +4269,8 @@ }% \ifx\tud@res@a\tud@cdgeometry@papersize@last\else% \appto\tud@res@b{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% \tud@x@geometry@fixmargins% }% \fi% @@ -4113,11 +4284,11 @@ \expandafter\pagestyle\expandafter{\currentpagestyle}% } \if@tud@x@standalone@crop - \PreventPackageFromLoading{geometry}% - \let\tud@cdgeometry@process\relax% + \PreventPackageFromLoading{geometry} + \let\tud@cdgeometry@process\relax \else - \RequirePackage{geometry}[2010/09/12]% -\fi% + \RequirePackage{geometry} +\fi \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -4255,7 +4426,7 @@ }{\@nameuse{Gm@restore@@#1}% \Gm@changelayout}% }% - \newif\if@tud@x@geometry@enabled% + \tud@newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% \tud@cs@store{geometry}% \tud@cs@store{newgeometry}% @@ -4269,7 +4440,7 @@ }% \renewcommand*\restoregeometry[1][custom]{% \tud@cdgeometry@reset{#1}% - \if@atdocument% + \tud@if@preamble{}{% \ifcase\tud@cdgeometry@num\relax% false \tud@loadgeometry{init@typearea}% \@tud@x@geometry@fixmarginstrue% @@ -4278,11 +4449,11 @@ \@tud@x@geometry@fixmarginstrue% \fi% \tud@cdgeometry@process% - \fi% + }% }% - \apptocmd{\Gm@changelayout}{% + \apptocmd\Gm@changelayout{% \if@tud@x@geometry@enabled% - \if@atdocument% + \tud@if@preamble{}{% \@tud@x@geometry@fixmarginstrue% \ifcase\tud@cdgeometry@num\relax% false \tud@cdgeometry@reset{typearea}% @@ -4290,15 +4461,15 @@ \tud@cdgeometry@reset{custom}% \fi% \tud@cdgeometry@process% - \fi% + }% \fi% }{}{\tud@patch@wrn{Gm@changelayout}}% - \newif\if@tud@x@geometry@fixmargins% + \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% - \addtolength\oddsidemargin{-\tud@len@layouthoffset}% - \addtolength\evensidemargin{-\tud@len@layouthoffset}% - \addtolength\topmargin{-\tud@len@layoutvoffset}% + \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}% \@tud@x@geometry@fixmarginsfalse% \fi% }% @@ -4319,16 +4490,19 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% - \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}% + \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}% }% \tud@res@a% \fi% - \ifstr{#2}{newgeometry}{% - \eappto\Gm@restore@org{% + \tud@if@strequal{#2}{newgeometry}{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \ifcase\tud@cdgeometry@num\relax% \typearea[current]{current}% \ifx\tud@x@geometry@parameter\@empty\else% @@ -4367,11 +4541,11 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \ifstr{#1}{false}{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% - \setlength\tud@len@layouthoffset{\z@}% - \setlength\tud@len@layoutvoffset{\z@}% + \tud@if@strequal{#1}{false}{% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% + \tud@setdim\tud@dim@layouthoffset{\z@}% + \tud@setdim\tud@dim@layoutvoffset{\z@}% }{% \tud@x@geometry@area@def{layout}{#1}% }% @@ -4388,25 +4562,25 @@ \@tempa#1,,\@nil% }% \TUD@parameter@def{layoutwidth}{% - \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}% + \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}% }% \TUD@parameter@def{layoutheight}{% - \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}% + \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}% }% \TUD@parameter@def{layoutoffset}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##1}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##1}% }{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##2}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% - \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% + \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% @@ -4417,20 +4591,24 @@ }% }% \newcommand*\tud@x@geometry@area@def[2]{% - \tud@lowerstring{\@tempa}{#2}% + \tud@strlowercase\@tempa{#2}% \def\@tempb##1paper##2\@nil{% - \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \tud@if@strequal{##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}{}% + \TUD@set@numkey{paper}{@tempc}{% + {seascape}{0},{landscape}{0},{portrait}{0},% + {letter}{0},{executive}{0},{legal}{0}% + }{\@tempa}% + \@tempswafalse% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempc\relax% + \@tempswatrue% + \fi% + \fi% \if@tempswa\else% - \ifx\@tempa\@empty\relax\else% + \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% \if ##1a\@tempswatrue% \else\if ##1b\@tempswatrue% @@ -4439,7 +4617,7 @@ \fi\fi\fi\fi% \if@tempswa% \@tempswafalse% - \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}% \fi% }% \expandafter\@tempb\@tempa\@nil% @@ -4455,7 +4633,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \ifstr{\@tempa}{##1}{% + \tud@if@strequal{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -4490,7 +4668,7 @@ \IfArgIsEmpty{##2}{% \KOMAoption{paper}{##1}% }{% - \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -4505,16 +4683,16 @@ \begingroup% \tud@cdgeometry@assignlayout% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% layoutoffset={% - \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset% }% \if@tud@res@swa% - ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}% \fi% }% }% @@ -4523,24 +4701,25 @@ }% \newcommand*\tud@x@geometry@set[1]{% \@tud@x@geometry@enabledfalse% - \if@atdocument% + \tud@if@preamble{% + \Gm@initnewgm% + \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}% + \def\@tempc{\tud@cs@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa,driver=none}% + }{% \edef\@tempa{#1}% \tud@cs@store{Gm@restore@org}% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \def\@tempc{\tud@cs@use{newgeometry}}% \expandafter\@tempc\expandafter{\@tempa}% \tud@cs@restore{Gm@restore@org}% - \else% - \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% - }% - \def\@tempc{\tud@cs@use{geometry}}% - \expandafter\@tempc\expandafter{\@tempa,driver=none}% - \fi% + }% \@tud@x@geometry@enabledtrue% }% \newcommand*\tud@savegeometry[1]{% @@ -4591,7 +4770,7 @@ \fi% \ifcase\tud@cdgeometry@num\relax% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,% textwidth=\the\textwidth,% \tud@cdgeometry@mpincl,% marginparwidth=\the\marginparwidth,% @@ -4609,8 +4788,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4621,7 +4799,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in% + -\Gm@bindingoffset\relax\relax,% textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% @@ -4643,8 +4822,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4658,37 +4836,43 @@ }% \fi% \fi% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\topmargin-\headheight-\headsep-1in\relax% + \if@twoside% + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\topmargin-\headheight-\headsep-1in% }% - \ifdim\tud@len@areadiff<\z@\relax% - \addtolength\tud@len@headsep{-\tud@len@areadiff}% - \setlength\@tempdima{\z@}% + \ifdim\tud@dim@areadiff<\z@\relax% + \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}% + \tud@setdim\@tempdima{\z@}% \else% - \setlength\@tempdima{\tud@len@areadiff}% + \tud@setdim\@tempdima{\tud@dim@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,% + 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\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% + \tud@setdim\tud@dim@ddcdiff{% + \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4% }% \edef\tud@cdgeometry@ddcmargin{% - textheight=\the\dimexpr\textheight-\tud@len@areadiff% - -\tud@len@ddcdiff\relax,% - footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + textheight=\the\dimexpr\textheight-\tud@dim@areadiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax% }% }{}% - \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else% \begingroup% \edef\tud@res@a{% The key `extrabottommargin' is ineffective\MessageBreak% @@ -4707,45 +4891,43 @@ }% \tud@res@a% \fi% - \else% true/symmetric/twoside - \ifcase\tud@cdgeometry@num\relax\or\or% true - \setlength\@tempdima{\tud@len@widemargin}% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \tud@setdim\@tempdima{\tud@dim@widemargin}% \if@reversemargin% - \setlength\@tempdimc{\tud@len@widemargin}% + \tud@setdim\@tempdimc{\tud@dim@widemargin}% \else% - \setlength\@tempdimc{\tud@len@slimmargin}% + \tud@setdim\@tempdimc{\tud@dim@slimmargin}% \fi% \or% symmetric - \setlength\@tempdima{.5\tud@len@both}% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \or% twoside \if@twoside% - \setlength\@tempdima{.4\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdima{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% \fi% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \if@twoside% \if@reversemargin% - \setlength\@tempdimc{.4\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdimc{.6\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}% \fi% \fi% \fi% - \addtolength\@tempdimc{-\headsep}% - \setlength\@tempdimb{% - \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% - }% + \tud@addtodim\@tempdimc{-\headsep}% + \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}% \if@mincl% - \addtolength\@tempdimb{-\@tempdimc}% + \tud@addtodim\@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,% + marginparsep=\the\dimexpr\headsep/2\relax,% \if@reversemargin% reversemarginpar=true,% \else% @@ -4766,68 +4948,69 @@ \tud@if@v@lower{2.03}{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\dimexpr.5\tud@len@both\relax,% + top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% - headsep=\the\tud@len@headsep,% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4\relax% }% }{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\tud@len@slimmargin,% + top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@len@widemargin% - +\tud@dim@extrabottommargin\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + footskip=\the\dimexpr\tud@dim@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% + 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% }% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\tud@len@slimmargin\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin% }% \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% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@bothmargin/2% }% - \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \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,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4\relax\relax,% \else% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,% \fi% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip+\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% - \global\tud@len@areadiff=\tud@len@areadiff% - \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% + \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi% + \global\tud@dim@areadiff=\tud@dim@areadiff% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@topmargin*11/50}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@areaheadvskip/2}% \fi% - \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \global\tud@dim@areaheadvskip=\tud@dim@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% + \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% }{}% \tud@cdgeometry@@@process% }% @@ -4862,11 +5045,11 @@ \or% custom \tud@savegeometry{current@custom}% \fi% - \if@atdocument% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@preamble{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% - \fi% + }% }% \newcommand*\tud@cdgeometry@hincl{% \if@hincl% @@ -4893,12 +5076,12 @@ \csuse{@ta@usegeometryfalse}% \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% \tud@cs@store{tud@cdgeometry@num}% - \tud@cs@store{tud@dim@extrabottommargin}% - \def\tud@dim@extrabottommargin{\z@}% + \tud@cs@store{tud@extrabottommargin@dim}% + \def\tud@extrabottommargin@dim{0pt}% \tud@cdgeometry@reset{custom}% \begingroup% \epreto\tud@x@geometry@init{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + papersize={\the\paperwidth,\the\paperheight},% \tud@cdgeometry@layout,% \tud@cdgeometry@mpincl,% \if@reversemargin% @@ -4924,14 +5107,14 @@ \tud@x@typearea@warnings@on% \tud@cdgeometry@@process% \tud@savegeometry{init@typearea}% - \def\tud@res@b##1{% - \eappto\Gm@restore@@init@typearea{% - \noexpand\PackageWarningNoLine{typearea}{##1}% - }% + \def\do##1{% + \apptocmd\Gm@restore@@init@typearea{% + ##1% + }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}% }% - \forlistloop\tud@res@b{\tud@res@a}% + \dolistloop{\tud@res@a}% \tud@cs@restore{tud@cdgeometry@num}% - \tud@cs@restore{tud@dim@extrabottommargin}% + \tud@cs@restore{tud@extrabottommargin@dim}% \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% \ifcase\tud@cdgeometry@num\relax% typearea \tud@loadgeometry{init@typearea}% @@ -4942,90 +5125,84 @@ \tud@cdgeometry@process% \let\tud@cdgeometry@@init\relax% }% - \newcommand*\tud@currentgeometry{} + \newcommand*\tud@currentgeometry{}% \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@strequal{#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@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@len@areavskip{\z@}% - \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% - \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@setdim\tud@dim@areavskip{\z@}% }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@len@areavskip{\tud@len@areadiff}% + \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}% \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% - \tud@komafont@unset{pagenumber}% - \tud@komafont@unset{pagefoot}% }% - \global\tud@len@areavskip=\tud@len@areavskip% + \global\tud@dim@areavskip=\tud@dim@areavskip% }{}% - } + }% } \newcommand*\tud@x@typearea@before{% \tud@cdgeometry@resetlayout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% + \tud@cslength@store{paperheight}% + \tud@cslength@store{paperwidth}% \begingroup% \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}% + \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}% }% \tud@res@a% } \newcommand*\tud@x@typearea@after{% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% - \if@atdocument% + \tud@cslength@restore{paperheight}% + \tud@cslength@restore{paperwidth}% + \tud@if@preamble{% + \TUD@key@preset{cdgeometry}{false}% + }{% \tud@cdgeometry@reset{typearea}% \tud@cdgeometry@process% - \else% - \TUD@key@preset{cdgeometry}{false}% - \fi% + }% } \newcommand*\tud@x@typearea@init{\recalctypearea}% \xpretocmd{\typearea}{% \tud@x@typearea@before% - \def\tud@x@typearea@init{\typearea[#1]{#2}}% + \def\tud@x@typearea@init{\typearea[{#1}]{#2}}% }{}{\tud@patch@wrn{typearea}} \xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} \xpretocmd{\areaset}{% \tud@x@typearea@before% \begingroup% - \setlength\@tempdima{#2}% - \setlength\@tempdimb{#3}% + \tud@setdim\@tempdima{#2}% + \tud@setdim\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% - \noexpand\def\noexpand\tud@x@typearea@init{% - \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + \def\noexpand\tud@x@typearea@init{% + \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}% }% }% \tud@res@a% @@ -5033,17 +5210,17 @@ \xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}} \tud@cs@store{storeareas} \renewcommand*\storeareas[1]{% - \begingroup + \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% - \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% + \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% - \tud@res@b{\tud@len@layoutwidth}% - \tud@res@b{\tud@len@layoutheight}% - \tud@res@b{\tud@len@layouthoffset}% - \tud@res@b{\tud@len@layoutvoffset}% + \unexpanded{\def#1}{% + \tud@res@b{\tud@dim@layoutwidth}% + \tud@res@b{\tud@dim@layoutheight}% + \tud@res@b{\tud@dim@layouthoffset}% + \tud@res@b{\tud@dim@layoutvoffset}% \expandonce#1% \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% @@ -5057,8 +5234,8 @@ \let\tud@cdgeometry@@init\relax% }% \newcommand*\tud@cdgeometry@@process{% - \setlength\tud@len@layoutwidth{\paperwidth}% - \setlength\tud@len@layoutheight{\paperheight}% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \tud@cdgeometry@set% }% \newcommand*\tud@x@geometry@fixmargins{}% @@ -5073,41 +5250,52 @@ \fi% }% } -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleoddpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleevenpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\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@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \enlargethispage{-\tud@len@ddcdiff}% + \enlargethispage{-\tud@dim@ddcdiff}% \fi% }% }{}% }% }{} -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) \if@tud@x@standalone@crop \PreventPackageFromLoading{scrlayer-scrpage}% \else \PassOptionsToPackage{automark}{scrlayer-scrpage}% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[% + 2022/05/01 v3.36 KOMA-Script + ]}% \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,% + addhoffset=\tud@dim@logox-\tud@dim@widemargin,% + addwidth=-\tud@dim@logox+\tud@dim@widemargin,% + voffset=\tud@dim@logoy,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@mainlogo@set% \tud@headlogo@option@set% @@ -5116,10 +5304,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -5129,24 +5317,24 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\tud@dim@barheight,% + voffset=\tud@dim@topmargin,% + addvoffset=\tud@dim@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% + \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% + \ifdim\@tempdima<\z@\relax\tud@setdim\@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,% + voffset=\tud@dim@topmargin+\tud@dim@line,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% @@ -5155,8 +5343,8 @@ ]{tudheadings.head.text}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5165,9 +5353,8 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5176,10 +5363,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5188,11 +5375,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5201,16 +5387,16 @@ ]{tudheadings.head.lowlinewide}% \DeclareNewLayer[% foreground,headsep,% - addvoffset=.5\tud@len@headsep,% - height=\baselineskip,% + addvoffset=\tud@dim@headsep/2,% + height=1\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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% \if@tud@foot@colored% @@ -5225,7 +5411,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -5235,7 +5423,7 @@ ]{tudheadings.foot.back}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% @@ -5247,7 +5435,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -5255,7 +5445,7 @@ \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false @@ -5268,13 +5458,9 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset\relax,% + height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% @@ -5282,16 +5468,13 @@ ]{tudheadings.foot.content}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \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% + \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}% + \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax% \fi% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% @@ -5303,7 +5486,7 @@ background,% ]{tudheadings.last}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5327,7 +5510,7 @@ \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5353,7 +5536,7 @@ \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5375,12 +5558,10 @@ \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}% - ,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -5389,6 +5570,22 @@ },% ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onselect={% + \tud@if@tudheadings{\currentpagestyle}{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + }{% + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% + }% + }% } \newcommand*\tud@ps@list{} \listadd\tud@ps@list{tudheadings} @@ -5397,13 +5594,15 @@ \newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% +\patchcmd\thispagestyle{% + \gdef\@specialstyle{#1}% +}{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} -\pretocmd{\tud@pagestyle}{% +\pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} @@ -5419,26 +5618,21 @@ } \AfterAtEndOfPackage*{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} \TUD@UnwindPackage{scrlayer-scrpage}{% - \ifcsundef{if@chapter}{% + \ifundef{\if@chapter}{% \newif\if@chapter% - \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + \ifundef{\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*\tud@BeforeSelectAnyPageStyle[1]{}% \providecommand*\GetRealPageStyle[1]{#1}% \let\pagestyle\tud@pagestyle% \undef\tud@pagestyle% \tud@cdgeometry@init% } -\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} @@ -5478,7 +5672,7 @@ \fi% }{% \tud@locked@bool@preset{@tud@head@widebar}{true}% - \ifstr{\tud@pagecolor}{HKS41}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -5503,8 +5697,10 @@ \fi% }% }% - \let\tud@len@line\tud@len@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \let\tud@dim@line\tud@dim@thinline% + \tud@if@strequal{\tud@head@fontcolor}{white}% + {\let\tud@dim@line\tud@dim@heavyline}% + {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \newcommand*\tud@head@text@line{} @@ -5512,13 +5708,13 @@ \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@text@add[3][{, }]{% - \ifxblank{#3}{}{% + \tud@if@strblank{#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}% + \unexpanded{#2#3}% }% \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% @@ -5529,7 +5725,7 @@ \fi% }% } -\newif\if@tud@head@text@set +\tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% @@ -5541,7 +5737,7 @@ \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}{}{% + \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% @@ -5555,7 +5751,7 @@ } \newcommand*\tud@head@text@box{% \def\@tempb{\tud@color{\tud@head@fontcolor}}% - \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempc{\depth+\tud@dim@heavyline}% \def\@tempa##1{% \settowidth\@tempdima{##1}% \ifdim\@tempdima>\textwidth\relax% @@ -5567,16 +5763,16 @@ \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% - \def\@tempc{\z@}% + \let\@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}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% \vbox{% \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% + \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% @@ -5584,16 +5780,18 @@ \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}}% + \raisebox{% + \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% + }[% + \dimexpr\tud@dim@barheight-\depth\relax% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}% } \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@len@line}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@layer@#1\endcsname% + \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% @@ -5601,33 +5799,74 @@ \newcommand*\tud@uselayerbox[1]{% \expandafter\usebox\csname tud@layer@#1\endcsname% } -\newcommand*\tud@vlayerbox[3]{% +\newcommand*\tud@vlayerbox[4][]{% \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% + \setbox\z@\vbox{#3}% + \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}% + \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax% + \edef\tud@res@a{% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{% + #4\noexpand\MessageBreak% + The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the% + \noexpand\MessageBreak maximum height (\the\tud@res@glue)% + }% + }% + \IfArgIsEmpty{#1}{\tud@res@a}{% + \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else% + \tud@res@a% + \global\cslet{tud@layer@#1@wrn}\tud@res@a% + \fi% }% \fi% - \endgroup% - \vbox to #1{#2}% + \endgroup% + \vbox to #2{#3}% +} +\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 +\tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set +\tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \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}}% - \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% - \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight% \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% \ClassWarning{\TUD@Class@Name}{% @@ -5642,14 +5881,18 @@ \fi% }% \tud@headlogo@set% - \@tud@footlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } +\AtBeginDocument{% + \@tud@mainlogo@settrue% + \tud@mainlogo@set% +} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -5659,26 +5902,17 @@ \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]% + \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -5689,18 +5923,19 @@ \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% - ]{##1}% + \includegraphics[{% + keepaspectratio,% + totalheight=\tud@dim@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\tud@headlogo@filename{\tud@headlogo@filename}% + \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% @@ -5719,11 +5954,21 @@ \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% + \ifnum\@tempa>\z@\relax + \ifdefvoid{\tud@headlogo@filename}{}{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\tud@headlogo@filename'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + }% + \fi% \global\@tud@headlogo@option@setfalse% \fi% } +\newcommand*\tud@layer@headlogo@wrn{} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@len@mainlogoheight}{% + \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -5737,57 +5982,59 @@ }{% 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% - }% } -\AtEndOfClass{% - \ifdefvoid{\tud@dim@footlogoheight}{% +\newcommand*\tud@footlogoheight@set{% + \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% - \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% - \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% - }{}% + \fi% } \tud@newlayerbox{foot@black} \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + \tud@savelayerbox{#1}{% + \includegraphics[% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% + ]{#2}% }% } \newcommand*\tud@footlogo@option@set{% + \tud@footlogoheight@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@footlogo@ddc@set{foot@black}{DDC-22}% + \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}% + \tud@footlogo@ddc@set{foot@white}{DDC-28}% \tud@ddc@check% \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color - \tud@footlogo@ddc@set{option}{DDC-01}% + \tud@footlogo@ddc@set{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% + \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray - \tud@footlogo@ddc@set{option}{DDC-19}% + \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black - \tud@footlogo@ddc@set{option}{DDC-22}% + \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue - \tud@footlogo@ddc@set{option}{DDC-25}% + \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white - \tud@footlogo@ddc@set{option}{DDC-28}% + \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% + \global\@tud@footlogo@cmd@settrue% \fi% } +\newcommand*\tud@layer@footlogo@wrn{} \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}{% + \tud@vlayerbox[footlogo]{#1}{% \vss% \hbox to #2{% \hss% @@ -5799,12 +6046,12 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + You should reduce `footlogoheight', because it is\noexpand\MessageBreak% + too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% + Alternatively you could use\noexpand\MessageBreak% + option `extrabottommargin='\noexpand\MessageBreak% + in order to enlarge the bottom margin. % \fi% }% }% @@ -5822,14 +6069,15 @@ \global\@tud@footlogo@cmd@settrue% \tud@comp@resetpagestyle% } -\newif\if@tud@footlogo@cmd@set +\tud@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}}% + \protected@edef\@tempb{\@tempb}% + \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% @@ -5859,11 +6107,14 @@ \DeclareListParser{\@tempc}{:}% \@tempc{#1}% \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@dim@footlogoheight,% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% - \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}% + \noexpand\includegraphics[{% + \expandonce\tud@footlogo@fileoptions% + }]{\@tempa}% }% \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% @@ -5877,26 +6128,27 @@ \usebox\z@\hspace*{-\wd\z@}% } \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} -\newcommand*\tud@footcontent@usefont[1]{% +\newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% - \tud@footcontent@fontsize% - \tud@footcontent@fontface% + \tud@footcontent@font@size% + \tud@footcontent@font@face% \selectfont% #1% }% } -\newcommand*\tud@footcontent@fontsize{} -\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@font@size{} +\newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\tud@footcontent@right{} +\let\tud@footcontent@right\@nnil \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontsize{}% + \renewcommand*\tud@footcontent@font@size{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontsize{% - \setlength\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\@tempdima}{1.25\@tempdima}% + \renewcommand*\tud@footcontent@font@size{% + \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}% + \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}% }% \tud@footcontent@do% }% @@ -5908,22 +6160,22 @@ } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% - \if\detokenize{*#1}\relax\else% - \renewcommand*\tud@footcontent@fontface{#1}% + \if\detokenize{#1*}\relax\else% + \renewcommand*\tud@footcontent@font@face{#1}% \fi% - \if\detokenize{*#2}\relax\else% + \if\detokenize{#2*}\relax\else% \renewcommand*\tud@footcontent@left{#2}% \fi% - \if\detokenize{*#3}\relax\else% + \if\detokenize{#3*}\relax\else% \renewcommand*\tud@footcontent@right{#3}% \fi% } +\newcommand*\tud@layer@footcontent@wrn{} \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% + \ifx\tud@footcontent@left\@empty% + \ifx\tud@footcontent@right\@nnil\else% + \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% @@ -5933,44 +6185,29 @@ \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \tud@addtodim\@tempdimc{\columnsep}% \fi% - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@usefont{% - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% + \tud@footcontent@font@use{% + \tud@setglue\tud@res@glue{#2}% + \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% \vss\vss% }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content\MessageBreak% + The content for the footer (`\string\footcontent')\noexpand\MessageBreak% + is too high. You should either reduce the content\noexpand\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% + \noexpand\MessageBreak% + Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% @@ -5978,39 +6215,25 @@ \hbox to #2{}% \fi% } -\tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% -}{}% -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head@num% - \let\@tempb\tud@ddc@foot@num% - \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% +\newcommand*\tud@footcontent@@use[1]{% + \ifx\tud@footcontent@right\@nnil% + \vtop{% + \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% - \tud@if@v@lower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% - \fi% - }{}% } -\newif\if@tud@parameter@ps@font@set +\tud@newif\if@tud@parameter@ps@font@set \newcommand*\TUD@parameter@ps@def[1]{% \TUD@parameter@def{cdfont}[true]{% \TUDoption{cdfont}{#1}% @@ -6039,11 +6262,11 @@ \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% \expandafter\pagestyle\expandafter{\tud@envir@ps}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% \renewcommand*\indexpagestyle{empty.tudheadings}% }{}% @@ -6082,11 +6305,12 @@ \TUD@parameter@def{language}{\selectlanguage{#1}}% \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{% - \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% + \tud@if@tudheadings{#1}{\def\tud@envir@ps{#1}}{% + \def\tud@envir@ps{tudheadings}% + \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{% + \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{% + \tud@if@strequal{#1}{headings}{}{% + \TUD@parameter@err{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% @@ -6102,38 +6326,50 @@ capabilities of package `scrlayer-scrpage' instead% }% ]{fancyhdr} -%%% 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}}{}}}}% - }% - \begingroup - \tud@sec@fontsize% - \@tempskipa=\glueexpr% - .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - \relax\relax% +%%%% From File: tudscr-layout.dtx (no git version info was found) +\newcommand*\tud@subtitle@fontsizecmd{\LARGE} +\newcommand*\tud@prefix@fontsizecmd{\huge} +\newcommand*\tud@sec@fontsizecmd{\Huge} +\newcommand*\tud@sec@baselineskip@@dim{} +\newcommand*\tud@sec@baselineskip@set{% + \begingroup% + \tud@sec@fontsizecmd% \edef\tud@res@a{% \endgroup% - \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + \unexpanded{\def\tud@sec@baselineskip@@dim}{% + \the\dimexpr\glueexpr\f@baselineskip\relax\relax% + }% }% \tud@res@a% } -\AtEndPreamble{\tud@x@scr@headings@set} +\tud@sec@baselineskip@set +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempb##1##2##3{% + \renewcommand*\tud@sec@fontsizecmd{##1}% + \renewcommand*\tud@prefix@fontsizecmd{##2}% + \renewcommand*\tud@subtitle@fontsizecmd{##3}% + \tud@sec@baselineskip@set% + #1% + }% + \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempc\do{% + \TUD@set@numkey{headings}{@tempa}{% + {standardclasses}{0},{big}{1},{normal}{2},{small}{3}% + }{\@tempc}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% standardclasses + \@tempb{\Huge} {\LARGE}{\Large}% + \or% big + \@tempb{\Huge} {\huge} {\LARGE}% + \or% normal + \@tempb{\huge} {\LARGE}{\Large}% + \or% small + \@tempb{\LARGE}{\Large}{\large}% + \fi% + \fi% + }% +} +\AfterEndPreamble{\tud@x@scr@headings@set} \newcommand*\tud@x@scr@headings@reset{% \tud@cd@process% \tud@x@scr@headings@set[% @@ -6151,15 +6387,25 @@ \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseriesforce{\tud@cdfont@ebf}% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% + \fi% + \fontseriesforce{\bfdefault}% + \fi% \selectfont% } \if@tud@cdoldfont@active @@ -6171,46 +6417,32 @@ \fi% }% \fi -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% } -\if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% - }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% - }% -\fi -\newrobustcmd*\tud@sec@strut{% +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]#3{% \begingroup% - \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% \endgroup% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} +\if@tud@cdoldfont@active + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% +\fi \newcommand*\tud@title@fontcolor{} \newcommand*\tud@part@fontcolor{} \newcommand*\tud@section@fontcolor{} @@ -6233,16 +6465,17 @@ \usekomafont{disposition}% \raggedtitle% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{subtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% - \sffamily% \usesizeofkomafont{section}% + \sffamily% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{author}{\usekomafont{subject}}% @@ -6250,28 +6483,31 @@ \tud@komafont@set{date}{\usekomafont{titlepage}}% \fi% \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{partlineswithprefixformat}% \tud@cs@restore{scr@part@beforeskip}% \tud@cs@restore{scr@part@afterskip}% \tud@cs@restore{partheadstartvskip}% - \tud@cs@restore{partlineswithprefixformat}% \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% \tud@cs@restore{raggedpart}% \else% !false + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% - \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}% + \renewcommand*\scr@part@beforeskip{% + \glueexpr\tud@cd@aftervskip@@glue+\baselineskip\relax% + }% \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% - \tud@cs@store{partlineswithprefixformat}% - \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@komafont@set{part}{% \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% \tud@komafont@set{partnumber}{% \tud@sec@fontface% + \tud@prefix@fontsizecmd% \tud@color{\tud@part@fontcolor}% }% \tud@cs@store{raggedpart}% @@ -6315,12 +6551,12 @@ \renewcommand*\raggedsection{\tud@raggedright}% \tud@cs@store{minisec}% \renewcommand\minisec[1]{% - \tud@cs@use{minisec}{\tud@sec@format{##1}}% + \tud@cs@use{minisec}{\tud@sec@format*{##1}}% }% \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -6336,42 +6572,51 @@ \tud@cs@store{footnoterule}% \let\footnoterule\relax% } -\newcommand*\tud@cd@beforeskip{% - \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +\newcommand*\tud@cd@beforevskip@@dim{% + \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innerskip{.25\baselineskip}% -\newcommand*\tud@cd@afterskip{% - .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +\newcommand*\tud@cd@innervskip@@dim{% + \dimexpr(\tud@sec@baselineskip@@dim)/5\relax% +}% +\newcommand*\tud@cd@aftervskip@@glue{% + \glueexpr + \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax + \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax + \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax + \relax } -\newcommand*\tud@cd@headstartvskip{% - \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% - \null\vskip-\baselineskip\vskip\@tempskipa% +\newcommand*\tud@cd@headstart@vskip{% + \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}% + \tud@length@setabsolute\@tempdima% + \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax% } \newcommand*\tud@cd@vphantom{% \begingroup% - \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \setlength\@tempskipa{\tud@cd@innerskip}% - \par\nobreak\vskip\@tempskipa% + \usekomafont{partnumber}{% + \tud@sec@format{\vskip\tud@cd@innervskip@@dim}% + }% \endgroup% } \newcommand*\tud@part@subtitle{} \newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}} \newkomafont{partsubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } \aliaskomafont{parttitle}{partsubtitle} \newcommand*\tud@sec@subtitle[1]{% \ifcsvoid{tud@#1@subtitle}{}{% - {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + {\usekomafont{#1subtitle}{% + \vskip-1\parskip% + \tud@sec@format{\csuse{tud@#1@subtitle}}% + }}\par% \global\cslet{tud@#1@subtitle}{\@empty}% }% } \newcommand*\tud@partheadstartvskip{} \let\tud@partheadstartvskip\partheadstartvskip -\pretocmd{\tud@partheadstartvskip}{% +\pretocmd\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\else% *color \renewcommand*\tud@part@fontcolor{HKS41}% @@ -6382,28 +6627,33 @@ \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% \let\partformat\tud@partformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \tud@sec@subtitle{#1}% } +\if@tud@cdoldfont@active + \patchcmd\tud@partlineswithprefixformat + {#2\tud@sec@format[{#1}]{#3}} + {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3} + {}{\tud@patch@wrn{tud@partlineswithprefixformat}} +\fi \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% } \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}% } \newcommand*\tud@sectioncatchphraseformat[4]{% - \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[#1]{#4}% + \hskip #2#3\tud@sec@format*[{#1}]{#4}% } -%%% From File: tudscr-title.dtx +%%%% From File: tudscr-title.dtx (no git version info was found) \newkomafont{thesis}{% \usekomafont{title}% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% } \newkomafont{titlepage}{% \raggedtitle% @@ -6417,6 +6667,8 @@ \newcommand*\tud@title@pagenumber{} \let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% + \TUD@deprecated@length\pageheadingsvskip% + \TUD@deprecated@length\headingsvskip% \begingroup% \cleardoublepage% \TUD@parameter@set{title}{#1}% @@ -6430,7 +6682,9 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \tud@if@strequal{\titlepagestyle}{empty}% + {\thispagestyle{empty.tudheadings}}% + {}% }{}% \else% !false \if@tud@parameter@ps@font@set\else% @@ -6464,7 +6718,9 @@ } \tud@cs@store{maketitle} \let\maketitle\tud@maketitle -\patchcmd{\titlepage}{\thispagestyle{empty}}{% +\patchcmd\titlepage{% + \thispagestyle{empty}% +}{% \tud@if@tudheadings{\currentpagestyle}{% \thispagestyle{empty.tudheadings}% }{% @@ -6534,19 +6790,18 @@ \fi% \next@tdpage% \fi% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% @@ -6569,7 +6824,7 @@ \def\@tempc{% \@graduation% \ifx\@graduationabbreviation\@empty\else% - \nobreakspace\@graduationabbreviation% + \nobreakspace(\@graduationabbreviation)% \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% @@ -6589,10 +6844,10 @@ \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + \tud@if@strblank{\datetext}{}{\datetext\tud@title@delimiter}% {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifxblank{\defensedatetext}{}{% + \tud@if@strblank{\defensedatetext}{}{% \defensedatetext\tud@title@delimiter% }% {\usekomafont{date}{\@defensedate\par}}% @@ -6601,7 +6856,7 @@ \fi% \if@tud@titlesignature% \let\tud@split@@author@do\tud@split@author@signature% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \tud@ifin@and{\@@author}{}{\hfill}% \tud@multiple@split{@@author}% \fi% @@ -6680,7 +6935,9 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {}% + {\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -6704,7 +6961,7 @@ \ifx\@extratitle\@empty% \ifx\@frontispiece\@empty\else% \if@twoside\null\fi% - \fi + \fi% \else% \tud@res@a{\@makeextratitle}% \fi% @@ -6720,9 +6977,9 @@ } \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% @@ -6731,11 +6988,10 @@ \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% - \vskip 2\bigskipamount% + \vskip\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \ifx\@date\@empty\else% @@ -6755,11 +7011,9 @@ \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% + \vskip\bigskipamount% \ifnum\col@number>\@ne\relax% - \ifdefvoid{\multicolsep}{}{% - \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% - }% + \tud@if@lengthregister{\multicolsep}{\vspace{-\multicolsep}}{}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% }}% @@ -6767,43 +7021,27 @@ \newcommand*\tud@maketitle@head{% \setbox\z@\vbox{% \ifx\@titlehead\@empty\else% - {\usekomafont{titlehead}{% - \begin{minipage}[t]{\textwidth}% - \@titlehead\tud@sec@strut% - \end{minipage}% - }}% + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\strut\par}% + \end{minipage}% \fi% \tud@thesis@tosubject% \ifx\@subject\@empty\else% \par\medskip% - {\usekomafont{subject}{% - \@subject\tud@sec@strut% - }}% + {\usekomafont{subject}{\tud@sec@format[partnumber]{\@subject}}}% \fi% }% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% - \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% + \vskip\dimexpr-\@tempdima-\p@-1\medskipamount\relax% \usebox\z@\par\medskip% \fi% } -\newcommand*\tud@title@format[1]{% +\newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% - \let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@sec@format{#1}% - \edef\tud@res@a{% - \endgroup% - \ifx\tud@thanks\relax\else% - \noexpand\thanks{\expandonce\tud@thanks}% - \fi% - }% - \tud@res@a% + \tud@sec@format[{#1}]{#2}% + \endgroup% } \newcommand*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -6854,7 +7092,9 @@ \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% - \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \tud@if@strblank{\dateofbirthtext}% + {}% + {\dateofbirthtext\tud@title@delimiter}% \@dateofbirth% \ifx\@placeofbirth\@empty\else% \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% @@ -6864,15 +7104,17 @@ \fi% \fi% \def\@tempc##1{% - \ifstr{\csuse{@##1}}{}{}{% + \expandafter\ifx\csname @##1\endcsname\@empty\else% \if@titlepage% \tud@newline@title% - \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \tud@if@strblank{\csuse{##1name}}% + {}% + {\csuse{##1name}\tud@title@delimiter}% \csuse{@##1}% \else% \tud@title@wrn{##1}% \fi% - }% + \fi% }% \@tempc{course}% \@tempc{discipline}% @@ -6891,9 +7133,9 @@ \newcommand*\tud@split@author@signature[2]{% \tud@multiple@fields@store{@author}{#1}% \vbox{% - \hsize=.3\textwidth% + \hsize=\dimexpr\textwidth*3/10\relax% \centering% - \rule{.3\textwidth}{.05pt}\newline% + \rule{\dimexpr\textwidth*3/10\relax}{.05pt}\newline% \ignorespaces#1\strut\unskip% }% \tud@multiple@fields@restore{@author}% @@ -6902,15 +7144,16 @@ \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \tud@maketitle[#1]% - \onecolumn{#2}\twocolumn% + \tud@maketitle[{#1}]% + \onecolumn#2\twocolumn% \else% - \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[{#1}]#2}% \fi% \else% \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% - }{}% + }{You should use `\string\maketitle' instead.}% + \tud@maketitle[{#1}]#2% \fi% } \newsavebox\tud@title@box @@ -6920,14 +7163,14 @@ \let\clearpage\relax% \let\newpage\relax% \global\setbox\tud@title@box\vbox{% - \vspace*{.9\baselineskip}#1\bigskip% + \vspace*{\dimexpr1\baselineskip*9/10\relax}#1\bigskip% }% \endgroup% - \setlength\@tempdima{\textheight}% + \tud@setdim\@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}% + \tud@setdim\@tempdima{\textheight-\tud@dim@ddcdiff}% \@tempswatrue% \fi% }{}% @@ -6937,7 +7180,7 @@ \splitmaxdepth\maxdepth% \vsplit\tud@title@box to \@tempdima% \clearpage% - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% \else% @@ -6950,13 +7193,13 @@ 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% + use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } -\newif\if@tud@coverpage +\tud@newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -6993,23 +7236,22 @@ \if@tud@cdgeometry@cover% \if@tud@coverpage% \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% }% \else% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagetopmargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagetopmargin{\tud@len@slimmargin}% + \def\coverpagetopmargin{\tud@dim@slimmargin}% }% \fi% \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% + \def\coverpagebottommargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagebottommargin{\tud@len@widemargin}% + \def\coverpagebottommargin{\tud@dim@widemargin}% }% - \def\coverpageleftmargin{\tud@len@widemargin}% - \def\coverpagerightmargin{\tud@len@slimmargin}% + \def\coverpageleftmargin{\tud@dim@widemargin}% + \def\coverpagerightmargin{\tud@dim@slimmargin}% \fi% \if@tud@coverpage% \edef\titlepage@restore{% @@ -7022,7 +7264,7 @@ }% \begingroup% \tud@cover@setmargins% - \tud@len@areavskip=\z@% + \tud@setdim\tud@dim@areavskip{\z@}% \tud@maketitle% \clearpage% \titlepage@restore% @@ -7053,41 +7295,37 @@ \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } -\renewcommand*{\coverpagetopmargin}{% +\renewcommand*\coverpagetopmargin{% \if@tud@coverpage% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% \else% - \dimexpr\topmargin+1in\relax% + \topmargin+1in% \fi% } -\renewcommand*{\coverpagebottommargin}{% +\renewcommand*\coverpagebottommargin{% \if@tud@coverpage% - \dimexpr\tud@len@widemargin\relax% + \tud@dim@widemargin% \else% - 2\dimexpr\coverpagetopmargin\relax% + \coverpagetopmargin*2% \fi% } \newcommand*\tud@cover@fixmargins{% \begingroup% \tud@cdgeometry@assignlayout% \tud@x@geometry@fixmargins% - \setlength\@tempdima{% - \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset - +\paperheight-\tud@len@layoutheight\relax% + \tud@setdim\@tempdima{% + \coverpagebottommargin-\tud@dim@layoutvoffset% + +\paperheight-\tud@dim@layoutheight% }% \edef\coverpagebottommargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% - }% + \tud@setdim\@tempdima{\coverpagetopmargin+\tud@dim@layoutvoffset}% \edef\coverpagetopmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagerightmargin-\tud@len@layouthoffset - +\paperwidth-\tud@len@layoutwidth\relax% + \tud@setdim\@tempdima{% + \coverpagerightmargin-\tud@dim@layouthoffset% + +\paperwidth-\tud@dim@layoutwidth% }% \edef\coverpagerightmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% - }% + \tud@setdim\@tempdima{\coverpageleftmargin+\tud@dim@layouthoffset}% \edef\coverpageleftmargin{\the\@tempdima}% \edef\tud@res@a{% \endgroup% @@ -7109,7 +7347,7 @@ -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\baselineskip% + \footskip=1\baselineskip% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% @@ -7117,10 +7355,10 @@ \hsize=\columnwidth% \linewidth=\hsize% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifnum\csuse{tud@#1@level@num}<3\relax% false/true/section \ifboolexpr{% bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% }{% @@ -7139,8 +7377,8 @@ \boolfalse{@tud@#1@fil}% \fi% }{}% - }{% chapter - }% + \else% chapter + \fi% \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% \tud@fm@toc{#1}{#2}% \fi% @@ -7148,26 +7386,27 @@ #2% } \newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} \newcommand*\tud@fm@toc[2]{% \ifbool{@tud@#1@multi}{% \begingroup% - \let\tud@fm@@@toc\@empty% + \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/}% + \protected@xdef\tud@fm@@toc{% + \ifx\tud@fm@@toc\@empty\else\tud@fm@@toc/\fi##2% + }% }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% \csuse{phantomsection}% \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% - }% + \endgroup% + \ifx\tud@fm@@toc\@empty\else% + \ifodd\csuse{tud@#1@toc@num}\relax + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + \else + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + \fi + \fi% }% \@tempa% }{% @@ -7243,19 +7482,20 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + \vskip\smallskipamount% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount% \fi% + \vskip-\parskip% }% \or% true \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% + \vskip\bigskipamount\vskip-\parskip% }% \begingroup% \noindent\centering% @@ -7264,7 +7504,7 @@ \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% + \vskip\medskipamount\vskip-\parskip% \@afterheading% \or% section \section*{#2}% @@ -7330,7 +7570,7 @@ \clearpage% \else% \ifnum\tud@abstract@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7339,7 +7579,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7360,7 +7600,7 @@ the environment `abstract'.% }% } -\newif\if@tud@declarations +\tud@newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% \let\tud@envir@ps\relax% @@ -7388,7 +7628,7 @@ \clearpage% \else% \ifnum\tud@declaration@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7397,7 +7637,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7428,29 +7668,29 @@ }% } \newcommand*\tud@fm@declaration[1][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \begingroup% - \tud@fm@@confirmation[\tud@fm@supporter,#1]% - \tud@fm@blocking[#1]% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \tud@fm@blocking[{#1}]% \endgroup% - }{% - \begin{declarations}[\tud@fm@supporter,#1]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \tud@fm@blocking% \end{declarations}% - }% + \fi% } \newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \tud@fm@body@start{declaration}{#1}{#2}% #3% \tud@fm@body@end{declaration}% - }{% + \else% \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% The command `\string\nextdeclaration' can only be used\MessageBreak% within the environment `declarations'.% }% - }% + \fi% } \newcommand*\confirmation{% \kernel@ifstar{% @@ -7465,18 +7705,18 @@ \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]% + \if@tud@declarations% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@@confirmation[1][]{% \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% + \confirmationtext\vskip\z@skip\@confirmationclosing% \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% @@ -7485,13 +7725,13 @@ \undef\KV@declaration@supporter% \undef\KV@declaration@closing% \undef\KV@declaration@confirmationclosing% - \ifbool{@tud@declarations}{% - \tud@fm@blocking[#1]% - }{% - \begin{declarations}[#1]% + \if@tud@declarations% + \tud@fm@blocking[{#1}]% + \else% + \begin{declarations}[{#1}]% \tud@fm@blocking% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@blocking[1][]{% @@ -7499,74 +7739,15 @@ \blockingtext% \tud@fm@body@end{declaration}% } -%%% From File: tudscr-comp.dtx -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} -\newlength\pageheadingsvskip -\setlength\pageheadingsvskip{\maxdimen} -\newlength\headingsvskip -\setlength\headingsvskip{\maxdimen} -\TUD@deprecated@cs{professorship}{chair} -\TUD@deprecated@cs{studentid}{matriculationnumber} -\TUD@deprecated@cs{matriculationid}{matriculationnumber} -\TUD@deprecated@cs{enrolmentyear}{matriculationyear} -\TUD@deprecated@cs{birthplace}{placeofbirth} -\TUD@deprecated@cs{submissiondate}{date} -\TUD@deprecated@cs{oralexaminationdate}{defensedate} -\TUD@deprecated@cs{birthday}{dateofbirth} -\TUD@deprecated@cs{location}{place} -\TUD@deprecated@cs{logofile}{headlogo} -\TUD@deprecated@cs{logofilename}{headlogo} -\AfterPackage{tudscrsupervisor}{% - \TUD@deprecated@cs{startdate}{issuedate}% - \TUD@deprecated@cs{finaldate}{duedate}% - \TUD@deprecated@cs{maturitydate}{duedate}% -} -\TUD@deprecated@cs{textcdfont}{textcd}% -\TUD@deprecated@cs{tudfont}{cdfont}% -\TUD@deprecated@cs{univln}{cdfontln}% -\TUD@deprecated@cs{univrn}{cdfontrn}% -\TUD@deprecated@cs{univbn}{cdfontsn}% -\TUD@deprecated@cs{univxn}{cdfontbn}% -\TUD@deprecated@cs{univls}{cdfontli}% -\TUD@deprecated@cs{univrs}{cdfontri}% -\TUD@deprecated@cs{univbs}{cdfontsi}% -\TUD@deprecated@cs{univxs}{cdfontbi}% -\TUD@deprecated@cs{textuln}{textcdln}% -\TUD@deprecated@cs{texturn}{textcdrn}% -\TUD@deprecated@cs{textubn}{textcdsn}% -\TUD@deprecated@cs{textuxn}{textcdbn}% -\TUD@deprecated@cs{textuls}{textcdli}% -\TUD@deprecated@cs{texturs}{textcdri}% -\TUD@deprecated@cs{textubs}{textcdsi}% -\TUD@deprecated@cs{textuxs}{textcdbi}% -\TUD@deprecated@cs{dinbn}{cdfontxn}% -\TUD@deprecated@cs{textdbn}{textcdxn}% -\TUD@deprecated@cs{ifdin}{@secondoftwo} -\newrobustcmd*\tud@ifdin{% - \ifx\f@family\tud@cdfont@db% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -\if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% -\fi -\def\tud@res@a#1{% - \TUD@deprecated@cs{var#1}{it#1}% -} -\tud@math@loop@greeks@uc\tud@res@a% -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% - \renewcommand*\tudbookmark[3][]{% + \renewcommand*\tudbookmark[3][0]{% \relax% \if@tud@bookmarks% - \phantomsection% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \csuse{phantomsection}% + \pdfbookmark[{#1}]{#2}{#3}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -7575,7 +7756,6 @@ \let\@footnotemark\H@@footnotemark% \let\@footnotetext\H@@footnotetext% }% - \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } \newcommand*\tud@x@bookmark@startatroot{\relax} \AfterPackage{bookmark}{% @@ -7583,7 +7763,7 @@ \if@tud@bookmarks\bookmarksetup{startatroot}\fi% }% } -\apptocmd{\titlepage}{% +\apptocmd\titlepage{% \tud@x@bookmark@startatroot% \@tud@res@swafalse% \if@tud@coverpage\@tud@res@swatrue\fi% @@ -7598,13 +7778,13 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\pretocmd{\tud@maketitle@inpage}{% +\pretocmd\tud@maketitle@inpage{% \tud@x@bookmark@startatroot% \tudbookmark[% 1% ]{\titlename}{title}% }{}{\tud@patch@wrn{tud@maketitle@inpage}} -\pretocmd{\@maketitle}{% +\pretocmd\@maketitle{% \tud@x@bookmark@startatroot% \tudbookmark[% 1% @@ -7631,10 +7811,10 @@ \AtBeginDocument{% \if@tud@x@scr@fontsize@set\else% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight>299mm\relax\@tud@res@swatrue\fi% \if@tud@res@swa% \ClassWarningNoLine{\TUD@Class@Name}{% You've set a layout size, which is different from\MessageBreak% @@ -7645,22 +7825,22 @@ \fi% \fi% } -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@cd@process -\newif\if@tud@cdgeometry@process +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@relspacing@set +\tud@newif\if@tud@x@scr@headings@reset +\tud@newif\if@tud@cd@process +\tud@newif\if@tud@cdgeometry@process \newcommand*\tud@atdocument@process{% \if@tud@font@set% \tud@font@set% \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% + \global\@tud@relspacing@setfalse% \global\@tud@cd@processfalse% \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% \fi% \if@tud@math@set% \tud@math@set% @@ -7680,22 +7860,65 @@ \global\@tud@cdgeometry@processfalse% \fi% } +%%%% From File: tudscr-comp.dtx (no git version info was found) +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} +\tud@newglue\pageheadingsvskip +\tud@setdim\pageheadingsvskip{\maxdimen} +\tud@newglue\headingsvskip +\tud@setdim\headingsvskip{\maxdimen} +\TUD@deprecated@cs{professorship}{chair} +\TUD@deprecated@cs{studentid}{matriculationnumber} +\TUD@deprecated@cs{matriculationid}{matriculationnumber} +\TUD@deprecated@cs{enrolmentyear}{matriculationyear} +\TUD@deprecated@cs{birthplace}{placeofbirth} +\TUD@deprecated@cs{submissiondate}{date} +\TUD@deprecated@cs{oralexaminationdate}{defensedate} +\TUD@deprecated@cs{birthday}{dateofbirth} +\TUD@deprecated@cs{location}{place} +\TUD@deprecated@cs{logofile}{headlogo} +\TUD@deprecated@cs{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \TUD@deprecated@cs{startdate}{issuedate}% + \TUD@deprecated@cs{finaldate}{duedate}% + \TUD@deprecated@cs{maturitydate}{duedate}% +} +\TUD@deprecated@cs{textcdfont}{textcd}% +\TUD@deprecated@cs{tudfont}{cdfont}% +\TUD@deprecated@cs{univln}{cdfontln}% +\TUD@deprecated@cs{univrn}{cdfontrn}% +\TUD@deprecated@cs{univbn}{cdfontsn}% +\TUD@deprecated@cs{univxn}{cdfontbn}% +\TUD@deprecated@cs{univls}{cdfontli}% +\TUD@deprecated@cs{univrs}{cdfontri}% +\TUD@deprecated@cs{univbs}{cdfontsi}% +\TUD@deprecated@cs{univxs}{cdfontbi}% +\TUD@deprecated@cs{textuln}{textcdln}% +\TUD@deprecated@cs{texturn}{textcdrn}% +\TUD@deprecated@cs{textubn}{textcdsn}% +\TUD@deprecated@cs{textuxn}{textcdbn}% +\TUD@deprecated@cs{textuls}{textcdli}% +\TUD@deprecated@cs{texturs}{textcdri}% +\TUD@deprecated@cs{textubs}{textcdsi}% +\TUD@deprecated@cs{textuxs}{textcdbi}% +\TUD@deprecated@cs{dinbn}{cdfontxn}% +\TUD@deprecated@cs{textdbn}{textcdxn}% +\TUD@deprecated@cs{ifdin}{@secondoftwo} +\newrobustcmd*\tud@ifdin{% + \ifx\f@family\tud@cdfont@db% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} \if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} +\def\tud@res@a#1{% + \TUD@deprecated@cs{var#1}{it#1}% +} +\tud@math@loop@greeks@uc\tud@res@a% \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 c7024addb8e..34ca264af1b 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty @@ -4,14 +4,15 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,base') +%% tudscr-version.dtx (with options: `package,base,identify') %% tudscr-base.dtx (with options: `package,base') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -27,101 +28,257 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-base.dtx +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +%%%% From File: tudscr-base.dtx (no git version info was found) \ProvidesPackage{tudscrbase}[% - 2021/07/15 v2.06n TUD-Script - package - (basics for the bundle)% + 2022/08/09 v2.06o TUD-Script + package (basics for the bundle)% +] +\AtBeginDocument{% + \ifcsundef{scr@v@first}{}{% + \ifcsundef{scr@v@\TUD@KOMAVersionNumber}{% + \PackageError{tudscrbase}{% + KOMA-Script v\TUD@KOMAVersionNumber\space is required% + }{% + \TUD@Version\space must be used at least with\MessageBreak% + \TUD@KOMAVersion, but only\MessageBreak% + \KOMAScriptVersion\space was found.% + }% + }{% + \expandafter\ifnum\scr@v@is@lt{3.12}\relax% + \PackageError{tudscrbase}{% + KOMA-Script compatibility level too low% + }{% + \TUD@Version\space must be used at least with\MessageBreak% + `version=3.12' KOMA-Script compatibility option.% + }% + \fi% + }% + }% +} +\RequirePackage{scrbase}[% + 2022/05/01 v3.36 KOMA-Script ] -\providecommand*{\ifstr}{\Ifstr} -\providecommand*{\ifstrstart}{\Ifstrstart} -\providecommand*{\ifisskip}{\Ifisskip} -\providecommand*{\ifdimen}{\Ifdimen} -\providecommand*{\ifisdimen}{\Ifisdimen} -\providecommand*{\ifisdimension}{\Ifisdimension} -\providecommand*{\ifnumber}{\Ifnumber} -\RequirePackage{scrbase}[2020/09/21] -\RequirePackage{iftex}[2019/11/07] -\RequirePackage{etoolbox}[2011/01/03] -\RequirePackage{xpatch}[2012/10/02] -\RequirePackage{letltxmacro}[2016/05/16] -\RequirePackage{etexcmds}[2011/02/16] -\RequirePackage{kvsetkeys}[2012/04/25] -\RequirePackage{trimspaces}[2009/09/17] +\RequirePackage{iftex} +\RequirePackage{etoolbox} +\RequirePackage{xpatch} +\RequirePackage{letltxmacro} +\RequirePackage{kvsetkeys} +\RequirePackage{trimspaces} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\TUDScript{TUD-Script}% + \def\KOMAScript{KOMA-Script}% + }% +} +\newcommand*\tud@newif[1]{\@ifdefinable#1{\newif#1}} +\newcommand*\tud@newcount[1]{\@ifdefinable#1{\newcount#1}} +\newcommand*\tud@newtoks[1]{\@ifdefinable#1{\newtoks#1}} +\newcommand*\tud@newread[1]{\@ifdefinable#1{\newread#1}} +\newcommand*\tud@newwrite[1]{\@ifdefinable#1{\newwrite#1}} +\newcommand*\tud@newglue[1]{\@ifdefinable#1{\newskip#1}} +\newcommand*\tud@newdim[1]{\@ifdefinable#1{\newdimen#1}} +\newrobustcmd*\tud@setglue[2]{% + \ifdefdimen{#1}{% + \PackageWarning{tudscrbase}{% + You tried to assign dimen \string#1\MessageBreak% + so \string\tud@setdim\space is used% + }% + \tud@setdim{#1}{#2}% + }{% + \setlength#1{\glueexpr#2\relax}% + }% +} +\newrobustcmd*\tud@setdim[2]{% + \begingroup% + \@tud@res@swafalse% + \setlength\@tempskipa{\glueexpr#2\relax}% + \ifdim\gluestretch\@tempskipa=\z@\relax\else% + \@tud@res@swatrue% + \fi% + \ifdim\glueshrink\glueexpr\@tempskipa\relax=\z@\relax\else% + \@tud@res@swatrue% + \fi% + \if@tud@res@swa% + \PackageWarning{tudscrbase}{% + You tried to use \string\tud@setdim\string#1\MessageBreak% + with glue \detokenize{#2} (\the\@tempskipa)\MessageBreak% + but only the base value is used% + }% + \fi% + \endgroup% + \setlength#1{\dimexpr\glueexpr#2\relax\relax}% +} +\newrobustcmd*\tud@addtoglue[2]{% + \tud@setglue#1{\glueexpr#1+#2\relax}% +} +\newrobustcmd*\tud@addtodim[2]{% + \tud@setdim#1{\glueexpr#1+#2\relax}% +} +\tud@newglue\tud@res@glue +\newcommand*\tud@if@lengthregister[1]{% + \begingroup% + \@tud@res@swafalse% + \ifdeflength{#1}{\@tud@res@swatrue}{}% + \ifdefdimen{#1}{\@tud@res@swatrue}{}% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} +\newcommand*\tud@length@setabsolute[1]{% + \tud@if@lengthregister{#1}{% + \ifdim#1<\z@% + \setlength#1{-\glueexpr#1\relax}% + \fi% + }{% + \protected@edef#1{% + \noexpand\ifdim\noexpand\glueexpr\expandonce#1\relax<\z@-\noexpand\fi% + \noexpand\glueexpr\expandonce#1\relax% + }% + }% +} \newcommand*\tud@reserved{} \newcommand*\tud@res@a{} \newcommand*\tud@res@b{} \newcommand*\tud@res@c{} -\newif\if@tud@res@swa -\newcount\tud@res@cnt -\newread\tud@res@read -\newtoks\tud@toks@ -\newcommand*\eaddto@hook[2]{% +\newcommand*\tud@res@d{} +\tud@newif\if@tud@res@swa +\tud@newcount\tud@res@cnt +\tud@newtoks\tud@toks@ +\newcommand*\addto@hook@expandafter[2]{% \expandafter\addto@hook\expandafter#1\expandafter{#2}% } -\newcommand*\ifxblank{\ifstr{}} -\newcommand*\ifstrbool[4]{% - \ifstr{#1}{true}{#2}{% - \ifstr{#1}{on}{#2}{% - \ifstr{#1}{yes}{#2}{% - \ifstr{#1}{false}{#3}{% - \ifstr{#1}{no}{#3}{% - \ifstr{#1}{off}{#3}{% - #4% - }% - }% - }% +\newcommand*\tud@if@preamble{} +\let\tud@if@preamble\@firstoftwo +\AfterEndPreamble{\let\tud@if@preamble\@secondoftwo} +\newcommand*\tud@if@strequal[2]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\ifstrequal{#1}{#2}% + }% + \tud@res@a% +} +\newcommand*\tud@if@strstart[2]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\Ifstrstart{\noexpand\detokenize{#1}}{\noexpand\detokenize{#2}}% + }% + \tud@res@a% +} +\newcommand*\tud@if@strempty{\tud@if@strequal{}} +\newcommand*\tud@if@strblank[1]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\ifblank{#1}% + }% + \tud@res@a% +} +\newcommand*\tud@if@strbool[4]{% + \TUD@set@ifkey{strbool}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa#2\else#3\fi% + \else% + #4 + \fi% +} +\newcommand*\tud@strlowercase[2]{% + \protected@edef#1{% + \lowercase{\def\noexpand#1{#2}}% + }#1% +} +\newcommand*\tud@strlength[2]{% + \begingroup% + \def\tud@res@c{\glueexpr#2\relax}% + \edef\tud@res@a{\strip@pt\dimexpr\tud@res@c\relax pt}% + \edef\tud@res@b{\strip@pt\dimexpr\gluestretch\tud@res@c\relax}% + \ifdim\tud@res@b\p@=\z@\relax\else% + \eappto\tud@res@a{% + \space\@plus\space\tud@res@b% + \ifcase\gluestretchorder\tud@res@c pt\or fil\or fill\or filll\fi% + }% + \fi% + \edef\tud@res@b{\strip@pt\dimexpr\glueshrink\tud@res@c\relax}% + \ifdim\tud@res@b\p@=\z@\relax\else% + \eappto\tud@res@a{% + \space\@minus\space\tud@res@b% + \ifcase\glueshrinkorder\tud@res@c pt\or fil\or fill\or filll\fi% }% + \fi% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% }% - }% + \tud@res@a% } -\newcommand*\iflanguageloaded[1]{% - \PackageWarning{tudscrbase}{% - Whether package `babel' nor package `polyglossia' has been loaded% +\newcommand*\tud@remove@spaces@within[1]{% + \begingroup% + \protected@edef\tud@res@a{\noexpand\zap@space#1\space\noexpand\@empty}% + \protected@edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +\AtEndPreamble{% + \providecommand*\iflanguageloaded[1]{% + \PackageWarning{tudscrbase}{% + `\string\iflanguageloaded' is not defined. Loading\MessageBreak% + either package `babel' or package `polyglossia'\MessageBreak% + is recommended% + }% + \def\iflanguageloaded##1{\expandafter\@secondoftwo}% + \iflanguageloaded{#1}% }% - \expandafter\@secondoftwo% } \AfterPackage*{babel}{% - \renewcommand*\iflanguageloaded[1]{% + \providecommand*\iflanguageloaded[1]{% \@expandtwoargs\in@{,#1,}{,\bbl@loaded,}% \ifin@% \expandafter\@firstoftwo% @@ -130,7 +287,6 @@ \fi% }% } -\BeforePackage{polyglossia}{\undef\iflanguageloaded} \providecommand*\protected@expandtwoargs[3]{% \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% } @@ -140,41 +296,35 @@ \@defaultunits\@tempdimb #3pt\relax\@nnil% \ifdim\@tempdima>\@tempdimb\relax% \@whiledim\@tempdimb>1pt\relax\do{% - \setlength\@tempdima{.1\@tempdima}% - \setlength\@tempdimb{.1\@tempdimb}% + \setlength\@tempdima{\dimexpr\@tempdima/10\relax}% + \setlength\@tempdimb{\dimexpr\@tempdimb/10\relax}% }% \setlength\@tempdimc{\@tempdima}% \else% \@whiledim\@tempdima>1pt\relax\do{% - \setlength\@tempdima{.1\@tempdima}% - \setlength\@tempdimb{.1\@tempdimb}% + \setlength\@tempdima{\dimexpr\@tempdima/10\relax}% + \setlength\@tempdimb{\dimexpr\@tempdimb/10\relax}% }% \setlength\@tempdimc{\@tempdimb}% \fi% \@tempcnta=1\relax% - \@whiledim\dimexpr\@tempcnta\@tempdimc\relax<.01\maxdimen\do{% + \@whiledim% + \dimexpr\@tempcnta\@tempdimc\relax<\dimexpr\maxdimen/100\relax% + \do{% \multiply\@tempcnta by 10\relax% }% - \setlength\@tempdimc{% - \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% - }% - \setlength\@tempdimc{\dimexpr \@tempdimc/\@tempcnta\relax}% + \setlength\@tempdimc{\dimexpr(\@tempcnta\@tempdima/\@tempdimb*\p@)\relax}% + \setlength\@tempdimc{\dimexpr\@tempdimc/\@tempcnta\relax}% \edef\@tempa{\endgroup\def\noexpand#1{\strip@pt\@tempdimc}}% \@tempa% } -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\def\expandafter #1\expandafter{#1}% - }% -} \newcommand*\tud@if@fdfileexists[2]{% \begingroup% \@tud@res@swatrue% - \tud@lowerstring\tud@res@a{#1#2.fd}% + \tud@strlowercase\tud@res@a{#1#2.fd}% \IfFileExists{\tud@res@a}{\@tud@res@swafalse}{}% \if@tud@res@swa% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{\tud@res@a#2.fd}% \IfFileExists{\tud@res@a}{\@tud@res@swafalse}{}% \fi% @@ -194,9 +344,10 @@ \expandafter\csname #1\expandafter\endcsname\csname #2\endcsname% } \newrobustcmd*\tud@cs@store[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{}{% - \tud@cs@letltx{@@tud@#1}{#1}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }% }% } \newrobustcmd*\tud@cs@restore[1]{% @@ -205,92 +356,109 @@ \cslet{#1}{\relax}% }{}% }% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{#1}{@@tud@#1}% - \csundef{@@tud@#1}% - }{}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + \csundef{@@tud@#1}% + }{}% + }% } \newrobustcmd*\tud@cs@reset[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{#1}{@@tud@#1}% - }{}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + }{}% + }% } \newrobustcmd*\tud@cs@update[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{@@tud@#1}{#1}% - }{}% -} -\newrobustcmd*\tud@cs@use[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \csuse{@@tud@#1}% - }{% - \csuse{#1}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }{}% }% } -\newrobustcmd*\tud@cs@check[1]{% - \ifcsdef{#1}{}{% - \PackageError{tudscrbase}{% - `\@backslashchar#1' is not defined}{% - The command `\@backslashchar#1' was never defined. \MessageBreak% - Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required.% +\newrobustcmd*\tud@cs@use[1]{% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \csuse{@@tud@#1}% + }{% + \csuse{#1}% }% }% } -\newcommand*\tud@skip@store[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{}{% - \csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}% - }% - }% +\newrobustcmd*\tud@cs@check[1]{% + \begingroup% + \ifcsdef{#1}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \if@tud@res@swa% + \ifcscounter{#1}{\@tud@res@swafalse}{}% + \ifcslength{#1}{\@tud@res@swafalse}{}% + \ifcsdimen{#1}{\@tud@res@swafalse}{}% + \fi% + \if@tud@res@swa% + \aftergroup\@firstofone% + \else% + \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined macro}{% + The macro `\@backslashchar#1' was never defined. \MessageBreak% + Please contact the TUD-Script maintainer\MessageBreak% + via \TUDScriptContact. A bugfix is urgently required.% + }% + \aftergroup\@gobble% + \fi% + \endgroup% } -\newcommand*\tud@skip@restore[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{% - \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% - \csundef{@@tud@skip@#1}% +\newcommand*\tud@cslength@store[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{% + \csedef{@@tud@length@#1}{\expandafter\the\csname #1\endcsname}% }{}% }% } -\newcommand*\tud@skip@reset[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{% - \csname#1\endcsname=\csname @@tud@skip@#1\endcsname% - }{}% +\newcommand*\tud@cslength@restore[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{}{% + \expandafter\setlength\csname #1\endcsname{% + \csname @@tud@length@#1\endcsname% + }% + \csundef{@@tud@length@#1}% + }% }% } -\newcommand*\tud@skip@set[2]{% - \tud@skip@check{#1}{% - \expandafter\setlength\csname #1\endcsname{#2}% +\newcommand*\tud@cslength@reset[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{}{% + \expandafter\setlength\csname #1\endcsname{% + \csname @@tud@length@#1\endcsname% + }% + }% }% } -\newcommand*\tud@skip@check[1]{% - \begingroup% - \@tempswafalse% - \expandafter\ifisskip\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% - \expandafter\ifisdimen\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% - \if@tempswa% - \aftergroup\@firstofone% - \else% - \aftergroup\@gobble% - \fi% - \endgroup% +\newcommand*\tud@cslength@check[1]{% + \expandafter\tud@if@lengthregister\expandafter{\csname #1\endcsname}{% + \expandafter\@firstofone% + }{% + \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined length}{% + The length `\@backslashchar#1' was never defined. \MessageBreak% + Please contact the TUD-Script maintainer\MessageBreak% + via \TUDScriptContact. A bugfix is urgently required.% + }% + \expandafter\@gobble% + }% } \newcommand*\tud@patch@wrn[1]{% \PackageWarning{tudscrbase}{% It wasn't possible to patch `\@backslashchar#1'\MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. Without a bugfix an\MessageBreak% + via \TUDScriptContact. Without a bugfix an\MessageBreak% erroneous output may occur% }% } \DefineFamily{TUD} -\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} -\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} +\newcommand*\TUDProcessOptions[1][.\@currname.\@currext]{% + \FamilyProcessOptions[{#1}]{TUD}% +} +\newcommand*\TUDExecuteOptions[1][.\@currname.\@currext]{% + \FamilyExecuteOptions[{#1}]{TUD}% +} \newcommand*\TUDoptions{\FamilyOptions{TUD}} \newcommand*\TUDoption{\FamilyOption{TUD}} \newcommand*\TUD@key[2][.\@currname.\@currext]{% @@ -325,29 +493,215 @@ }% } \newcommand*\TUD@set@ifkey[3]{% - \tud@lowerstring\tud@res@a{#3}% - \edef\tud@res@b{% - \etex@unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% - }\tud@res@b% + \begingroup% + \tud@strlowercase\tud@res@a{#3}% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% + }% + \tud@res@a% } \newcommand*\TUD@set@numkey[4]{% - \tud@lowerstring\tud@res@a{#4}% - \edef\tud@res@b{% - \etex@unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% - }\tud@res@b% + \begingroup% + \tud@strlowercase\tud@res@a{#4}% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% + }% + \tud@res@a% } \newcommand*\TUD@bool@numkey{% {false}{0},{off}{0},{no}{0},{true}{1},{on}{1},{yes}{1}% } -\newcommand*\TUD@set@dimenkey[3]{% - \tud@lowerstring\tud@res@a{#3}% - \edef\tud@res@b{% - \etex@unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% - }\tud@res@b% +\newcommand*\TUD@set@gluekey[4][pt]{% + \begingroup% + \tud@strlowercase\tud@res@a{#4}% + \edef\tud@res@b{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@c{\detokenize\expandafter{\@backslashchar}}% + \@expandtwoargs\in@{\tud@res@c}{\tud@res@b}% + \ifin@\else% + \tud@normalize@gluekey\tud@res@a{#1}% + \fi% + \protected@edef\tud@res@a{% + \endgroup% + \ifx\tud@res@a\@empty% + \noexpand\FamilyKeyStateUnknownValue% + \else% + \unexpanded{\tud@validate@gluekey{#2}}{\tud@res@a}{#4}% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#2}{#3}}{\tud@res@a}% + \fi% + }% + \tud@res@a% +} +\newcommand*\tud@normalize@gluekey[2]{% + \begingroup% + \edef\tud@res@c{#1}% + \def\tud@res@a##1plus##2plus##3\@nil{% + \let\tud@res@a\@empty% + \tud@res@b##1minusminus\@nil% + \tud@res@b##2minusminus\@nil% + }% + \def\tud@res@b##1minus##2minus##3\@nil{% + \eappto\tud@res@a{{\trim@spaces{##1}}{\trim@spaces{##2}}}% + }% + \expandafter\tud@res@a\tud@res@c plusplus\@nil% + \def\tud@res@b##1##2##3##4{% + \IfArgIsEmpty{##2}{% + \def\tud@res@a{{##1}{##3}{##4}}% + }{% + \def\tud@res@a{{##1}{##3}{##2}}% + }% + }% + \expandafter\tud@res@b\tud@res@a% + \edef\tud@res@b{% + \unexpanded{\@tfor\tud@res@b:=}\tud@res@a% + }% + \let\tud@res@c\@empty% + \@tud@res@swatrue% + \tud@res@b\do{% + \tud@normalize@@gluekey\tud@res@a{\tud@res@b}{#2}% + \ifx\tud@res@a\relax% + \@tud@res@swafalse% + \@break@tfor% + \else% + \eappto\tud@res@c{{\tud@res@a}}% + \fi% + }% + \let\tud@res@a\@empty% + \if@tud@res@swa% + \def\tud@res@b##1##2##3{% + \IfArgIsEmpty{##1}{\def\tud@res@b{0#2}}{\def\tud@res@b{##1}}% + \Ifdimen{\tud@res@b}{% + \edef\tud@res@a{% + \tud@res@b% + \IfArgIsEmpty{##2}{}{\space\@plus\space##2}% + \IfArgIsEmpty{##3}{}{\space\@minus\space##3}% + }% + }{}% + }% + \expandafter\tud@res@b\tud@res@c% + \fi% + \edef\tud@res@c{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@c% +} +\newcommand*\tud@normalize@@gluekey[3]{% + \begingroup% + \edef\tud@res@a{#2}% + \@tud@res@swafalse% + \expandafter\if\expandafter\@car\tud@res@a\relax\@nil+\@tud@res@swatrue\fi% + \expandafter\if\expandafter\@car\tud@res@a\relax\@nil-\@tud@res@swatrue\fi% + \if@tud@res@swa% + \protected@edef\tud@res@b{\expandafter\@car\tud@res@a\relax\@nil}% + \protected@edef\tud@res@a{\expandafter\@gobble\tud@res@a}% + \else% + \let\tud@res@b\@empty% + \fi% + \@tud@res@swatrue% + \Ifdimen{\tud@res@a}{}{% + \Ifdimen{\tud@res@a#3}{% + \appto\tud@res@a{#3}% + }{% + \@tud@res@swafalse% + }% + }% + \if@tud@res@swa% + \Ifisdimension{\tud@res@a}{}{% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + }% + \else% + \def\tud@res@c##1fil##2fil##3\@nil{% + \IfArgIsEmpty{##1}{\def\tud@res@a{1}}{\def\tud@res@a{##1}}% + \Ifdimen{\tud@res@a pt}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \if@tud@res@swa% + \appto\tud@res@a{fil##2}% + \tud@if@strequal{##2}{}{}{% + \tud@if@strequal{##2}{l}{}{% + \tud@if@strequal{##2}{ll}{}{\@tud@res@swafalse}% + }% + }% + \fi% + }% + \expandafter\tud@res@c\tud@res@a filfil\@nil% + \fi% + \edef\tud@res@c{% + \endgroup% + \if@tud@res@swa% + \unexpanded{\def#1}{\tud@res@b\tud@res@a}% + \else% + \unexpanded{\let#1\relax}% + \fi% + }% + \tud@res@c% +} +\newcommand*\tud@validate@gluekey[3]{% + \begingroup% + \protected@edef\tud@res@a{#2}% + \protected@edef\tud@res@b{#3}% + \tud@remove@spaces@within\tud@res@a% + \tud@remove@spaces@within\tud@res@b% + \ifx\tud@res@a\tud@res@b% + \aftergroup\@gobble% + \else% + \aftergroup\@firstofone% + \fi% + \endgroup{% + \PackageWarning{tudscrbase}{% + The length `#3'\MessageBreak% + seems to be wrong formatted. Assuming, you meant\MessageBreak% + `#1=#2'% + }% + }% +} +\newcommand*\TUD@set@dimkey[4][pt]{% + \begingroup% + \TUD@set@gluekey[{#1}]{#2}{\tud@res@a}{#4}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \@tud@res@swafalse% + \Ifisskip{\tud@res@a}{% + \protected@edef\tud@res@a{\dimexpr\tud@res@a\relax}% + \def\tud@res@b{a \string\skip\space register}% + \@tud@res@swatrue% + }{% + \Ifisglueexpr{\tud@res@a}{% + \protected@edef\tud@res@a{\dimexpr\tud@res@a\relax}% + \def\tud@res@b{a glue expression}% + \@tud@res@swatrue% + }{% + \Ifisglue{\tud@res@a}{% + \Ifisdimension{\tud@res@a}{}{% + \setlength\@tempdima{\dimexpr\glueexpr\tud@res@a\relax\relax}% + \tud@strlength\tud@res@a{\@tempdima}% + \def\tud@res@b{something containing glue}% + \@tud@res@swatrue% + }% + }{}% + }% + }% + \if@tud@res@swa% + \PackageWarning{tudscrbase}{% + Using option `#2' with\MessageBreak% + \tud@res@b\space(#4)\MessageBreak% + is not recommended. You should consider to use\MessageBreak% + an expression for a dimen instead. Setting\MessageBreak% + `#2=\tud@res@a'% + }% + \fi% + \protected@edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#2}{#3}}{\tud@res@a}% + }% + \else% + \def\tud@res@a{\endgroup\FamilyKeyStateUnknownValue}% + \fi% + \tud@res@a% } \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} \newcommand*\tud@locked@newnum[2]{% - \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% + \expandafter\newcommand\expandafter*\csname #1\endcsname{#2}% \newbool{#1@locked}% \tud@num@set{#1}{#2}% } @@ -362,8 +716,15 @@ \booltrue{#1@locked}% } \newcommand*\tud@num@set[2]{% - \ifcsdef{#1}{% - \ifnumber{#2}{% + \ifcsundef{#1}{% + \PackageError{tudscrbase}{% + `\@backslashchar#1' was never defined% + }{% + You tried using the numerical expression `\@backslashchar#1'\MessageBreak% + but you didn't define it with `\string\tud@locked@newnum'.% + }% + }{% + \Ifnumber{#2}{% \csdef{#1}{#2}% }{% \PackageError{tudscrbase}{% @@ -373,13 +734,6 @@ to value `#2', which isn't numerical.% }% }% - }{% - \PackageError{tudscrbase}{% - `\@backslashchar#1' was never defined% - }{% - You tried using the numerical expression `\@backslashchar#1'\MessageBreak% - but you didn't define it with `\string\tud@locked@newnum'.% - }% }% } \newcommand*\tud@locked@newbool[2][false]{% @@ -398,7 +752,7 @@ \booltrue{#1@locked}% } \newcommand*\tud@bool@set[2]{% - \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% + \tud@if@strbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% \PackageError{tudscrbase}{% `#2' is not a valid boolean expression% }{% @@ -415,7 +769,7 @@ \gdef\TUD@parameter@@family{}% } \newcommand*\TUD@parameter@checkfamily[2]{% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% \PackageError{tudscrbase}{% No family for \@backslashchar#2 defined% }{% @@ -470,7 +824,7 @@ \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}% + \tud@if@strequal{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% }% } \newcommand*\TUD@parameter@handler@value[2][\TUD@parameter@@family]{% @@ -478,27 +832,29 @@ \protected@edef\@tempa{% \noexpand\TUD@parameter@set{#1}{#2=\noexpand\kv@value}% }% - \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \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}{% + \tud@if@strblank{#2}{% \def\@tempa{\let\tud@reserved\relax}% }{% \def\@tempa{\def\tud@reserved{#2=\kv@value}}% }% \appto\@tempa{% - \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% - \ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% + \tud@if@strequal{\kv@value}{twocolumn}{\def\kv@value{2}}{}% + \Ifnumber{\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).% + \tud@if@strblank{\kv@value}{}{% + \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% }% @@ -507,21 +863,25 @@ \noexpand\TUD@parameter@set{#1}{\noexpand\tud@reserved}% \noexpand\fi% }% - \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \def\@tempb{\TUD@parameter@handler@macro[{#1}]{\kv@handled@false}}% \expandafter\@tempb\expandafter{\@tempa}% } -\newcommand*\TUD@parameter@error[2]{% +\newcommand*\TUD@parameter@err[2]{% \PackageError{tudscrbase}{Unsupported value for parameter `#1'}{% `#1' can only be used with values:\MessageBreak#2% + \MessageBreak Please choose a valid one.% }% } -\newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} +\NewDocumentCommand\TUD@UnwindPackage{s m m}{% + \IfBooleanT{#1}{\AfterPackage*{#2}{#3}}% + \AtEndPreamble{\@ifpackageloaded{#2}{}{#3}}% +} \@onlypreamble\TUD@UnwindPackage \newcommand*\TUD@CheckPackage[2]{% \tud@if@packagelater@exists{#1}{#2}{}{% \PackageWarningNoLine{tudscrbase}{% The version `#2' of package `#1'\MessageBreak% - is urgently required. An erroneous output\MessageBreak + is urgently required. An erroneous output\MessageBreak% may occur. Please update your distribution% }% \IfFileExists{#1.sty}{}{\RequirePackage{#1}[#2]}% @@ -533,37 +893,38 @@ \let\tud@res@a\@empty% \def\tud@res@b[##1]{\def\tud@res@a{##1}}% \def\ProvidesPackage##1{% - \@ifnextchar[%] - {\tud@res@b}{\tud@res@b[]}% + \kernel@ifnextchar[%] + {\tud@res@b}% + {\tud@res@b[]}% }% \IfFileExists{#1.sty}{% - \openin\tud@res@read=#1.sty% + \openin\@inputcheck=#1.sty% \@tud@res@swatrue% \loop% - \read\tud@res@read to\tud@res@c% + \read\@inputcheck to\tud@res@c% \@expandtwoargs\in@{\string\ProvidesPackage}% {\expandafter\detokenize\expandafter{\tud@res@c}}% \ifin@% \@tud@res@swafalse% \tud@res@c% \fi% - \ifeof\tud@res@read\@tud@res@swafalse\fi% + \ifeof\@inputcheck\@tud@res@swafalse\fi% \if@tud@res@swa% \repeat% - \closein\tud@res@read% + \closein\@inputcheck% }{}% - \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}} + \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}}% \tud@res@a% } \@onlypreamble\tud@if@packagelater@exists \newcommand*\TUD@RecommendPackage[1]{% \kernel@ifnextchar[%] - {\TUD@@RecommendPackage#1}% - {\TUD@@RecommendPackage#1[]}% + {\TUD@Recommend@Package#1}% + {\TUD@Recommend@Package#1[]}% } \@onlypreamble\TUD@RecommendPackage -\newcommand*\TUD@@RecommendPackage{} -\def\TUD@@RecommendPackage#1[#2]{% +\newcommand*\TUD@Recommend@Package{} +\def\TUD@Recommend@Package#1[#2]{% \IfFileExists{#1.sty}{% \RequirePackage{#1}[#2]% }{% @@ -573,23 +934,22 @@ }% }% } -\@onlypreamble\TUD@@RecommendPackage +\@onlypreamble\TUD@Recommend@Package \newcommand*\TUD@AfterPackage@set[1]{% \newbool{@tud@#1@loaded}% \AfterAtEndOfPackage*{#1}{\booltrue{@tud@#1@loaded}}% } \newcommand*\TUD@AfterPackage@do[2]{% - \ifcsdef{if@tud@#1@loaded}{% - \if@atdocument% - \ifbool{@tud@#1@loaded}{#2}{}% - \else% - \AfterAtEndOfPackage*{#1}{#2}% - \fi% - }{% + \ifcsundef{if@tud@#1@loaded}{% \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.% + using \string\TUD@AfterPackage@do{#1}{}.% + }% + }{% + \tud@if@preamble{% + \AfterAtEndOfPackage*{#1}{#2}% + }{% + \ifbool{@tud@#1@loaded}{#2}{}% }% }% } @@ -597,13 +957,14 @@ \ifundef{\KOMAClassName}{% \renewcommand*\TUD@KOMAoptions[1]{% \PackageWarning{tudscrbase}{% - You should load package `scrextend' right after the\MessageBreak% - documentclass. Option \string\TUD@KOMAoptions{`#1'} is gobbled% + You should load package `scrextend' right after\MessageBreak% + the documentclass. The following option is gobbled:\MessageBreak% + \string\KOMAoptions{`#1'}% }% }% - \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions}% + \AfterPackage*{scrextend}{\def\TUD@KOMAoptions{\KOMAoptions}}% }{% - \let\TUD@KOMAoptions\KOMAoptions% + \def\TUD@KOMAoptions{\KOMAoptions}% } \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls index c1f10f56c1a..5ac84b10711 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,book') +%% tudscr-version.dtx (with options: `class,book,identify') %% tudscr-base.dtx (with options: `class,book,load') %% tudscr-base.dtx (with options: `class,book,option') %% tudscr-fonts.dtx (with options: `class,book,option') @@ -25,14 +25,15 @@ %% tudscr-layout.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') +%% tudscr-comp.dtx (with options: `class,book,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -48,74 +49,80 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@KOMA{#2}% \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% + \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% + \TUD@Class@Info% \fi% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesClass{tudscrbook}{scrbook}{document class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} \AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-base.dtx +%%%% From File: tudscr-base.dtx (no git version info was found) \newcommand*\tud@komafont@set[2]{% \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% \csdef{tud@komafont@#1}{#2\nobreak}% @@ -127,17 +134,23 @@ \newcommand*\tud@komafont@reset[1]{% \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +\AtEndOfClass{\tud@catcodes@restore} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-Script class% }% ]{tudscrfonts} -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -235,14 +248,11 @@ \TUDoptions{cdhead=heavy}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -263,8 +273,8 @@ \tud@locked@bool@preset{@tud@cdmath@active}{false}% \TUD@SpecialOptionAtDocument{tud@math@set}% } -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -297,6 +307,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} \AtEndOfClass% {% \if@tud@cdoldfont@active% @@ -323,12 +334,24 @@ }% \fi% } -\newif\if@tud@x@scr@fontsize@set +\tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } \AtEndOfClass% @@ -336,17 +359,17 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% + \FamilyKeyStateUnknownValue% \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% {% The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% }% } -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -359,7 +382,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } \newcommand*\tud@ttfont@num{0} @@ -432,13 +455,13 @@ } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} \TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} -%%% From File: tudscr-area.dtx -\newif\if@tud@cdgeometry@reset +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@cdgeometry@reset \newcommand*\tud@cdgeometry@reset[1]{% \@tud@cdgeometry@resettrue% \TUDoptions{cdgeometry=#1}% @@ -487,7 +510,7 @@ \or% custom \tud@locked@num@set{tud@cdgeometry@num}{1}% \fi% - \if@atdocument% + \tud@if@preamble{}{% \if@tud@cdgeometry@reset\else% false \ifcase\tud@cdgeometry@num\relax% \tud@loadgeometry{current@typearea}% @@ -498,51 +521,54 @@ \fi% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% - \fi% + }% \fi% } -\newcommand*\tud@dim@extrabottommargin{\z@} +\newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } -\newcommand*\tud@dim@bleedmargin{.2in} +\newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#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% + \tud@length@setabsolute\tud@bleedmargin@dim% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \newcommand*\tud@x@typearea@warnings@off[1][]{% \IfArgIsEmpty{#1}{}{\let#1\@empty}% \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \ifstr{##1}{typearea}{% - \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \ifstrstart{##2}{% + \tud@if@strequal{##1}{typearea}{% + \tud@if@strstart{##2}{% + Bad type area settings!% + }{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Very low DIV value!% + }{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% - \tud@cs@use{PackageWarning}{##1}{##2}% + \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% - \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% + \IfArgIsEmpty{#1}{}{% + \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}% + }% \fi% }% } @@ -555,12 +581,75 @@ \AfterPackage{typearea}{% \tud@x@typearea@warnings@on% } -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) +\tud@newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@bool@numkey,% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@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% +} \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} -\newif\if@tud@head@font@set -\newif\if@tud@head@date +\tud@newif\if@tud@head@font@set +\tud@newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@bool@numkey,% @@ -649,8 +738,10 @@ \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{extrabottommargin=#1}% + \fi% \fi% } \newcommand*\tud@ps@store[1]{% @@ -687,87 +778,20 @@ \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \ifcsundef{@@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@dim@footlogoheight{} -\let\tud@dim@footlogoheight\relax +\newcommand*\tud@footlogoheight@dim{0pt} \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% -} -\newif\if@tud@ddc@internal -\newcommand*\tud@comp@clearpage{}% -\newcommand*\tud@comp@resetpagestyle{}% -\newcommand*\tud@ddc@switch{} -\edef\tud@ddc@switch{% - \TUD@bool@numkey,% - {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% - {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% - {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}% + \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#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% + \tud@length@setabsolute\tud@footlogoheight@dim% \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% } -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cd@switch{} \edef\tud@cd@switch{% \TUD@bool@numkey,% @@ -795,13 +819,13 @@ \TUD@key@preset{cdchapter}{#1}% \TUD@key@preset{cdsection}{#1}% \TUD@SpecialOptionAtDocument{tud@cd@process}% - \if@atdocument\else% + \tud@if@preamble{% \ifcase\tud@cd@num\relax% false \tud@locked@num@preset{tud@cdgeometry@num}{0}% \else% !false \tud@locked@num@preset{tud@cdgeometry@num}{2}% \fi% - \fi% + }{}% \fi% } \newcommand*\tud@cd@cover@num{0} @@ -844,15 +868,15 @@ \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } -\newif\if@tud@parttitle +\tud@newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% } -\newif\if@tud@chapterpage +\tud@newif\if@tud@chapterpage \TUD@key{chapterpage}[true]{% \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } -\newif\if@tud@clearcolor +\tud@newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} \TUD@key{cleardoublespecialpage}[true]{% \TUD@set@numkey{cleardoublespecialpage}{@tempa}{% @@ -877,7 +901,7 @@ \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \fi% \else% - \AfterPreamble{% + \AfterEndPreamble{% \ifcsundef{ps@#1}{% \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% @@ -891,19 +915,28 @@ \fi% } \newcommand*\tud@pagecolor{}% -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +\AfterPackage{xcolor}{% + \apptocmd\normalcolor{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% } -\newcommand*\tud@dim@headingsvskip{0pt} +\newcommand*\tud@headingsvskip@dim{0pt} \TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% + \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% +} +\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% } -\newif\if@tud@heavyheadings +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -918,27 +951,27 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{open}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{chapterprefix}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis +%%%% From File: tudscr-title.dtx (no git version info was found) +\tud@newif\if@tud@subjectthesis \TUD@key{subjectthesis}[true]{% \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% } -\newif\if@tud@titlesignature +\tud@newif\if@tud@titlesignature \TUD@key{titlesignature}[true]{% \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {chapter}{3},{chap}{3},{addchap}{3},% @@ -958,11 +991,11 @@ } \newcommand*\tud@abstract@level@num{3} \tud@locked@newnum{tud@abstract@toc@num}{1} -\newif\if@tud@abstract@multi +\tud@newif\if@tud@abstract@multi \@tud@abstract@multitrue -\newif\if@tud@abstract@fil +\tud@newif\if@tud@abstract@fil \@tud@abstract@filtrue -\newif\if@tud@abstract@markboth +\tud@newif\if@tud@abstract@markboth \TUD@key{abstract}[chapter]{% \edef\@tempb{\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% @@ -1017,15 +1050,16 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{abstract}[true]{% + \FamilyKeyStateUnknownValue% \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{3} \tud@locked@newnum{tud@declaration@toc@num}{1} -\newif\if@tud@declaration@multi +\tud@newif\if@tud@declaration@multi \@tud@declaration@multitrue -\newif\if@tud@declaration@fil +\tud@newif\if@tud@declaration@fil \@tud@declaration@filtrue -\newif\if@tud@declaration@markboth +\tud@newif\if@tud@declaration@markboth \TUD@key{declaration}[chapter]{% \edef\@tempb{\TUD@bool@numkey,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% @@ -1082,8 +1116,8 @@ \fi% \fi% } -%%% From File: tudscr-misc.dtx -\newif\if@tud@bookmarks +%%%% From File: tudscr-misc.dtx (no git version info was found) +\tud@newif\if@tud@bookmarks \TUD@key{tudbookmarks}[true]{% \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% } @@ -1093,7 +1127,7 @@ } \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \tud@if@strequal{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } \newcommand*\tud@atdocument@hook{} \let\tud@atdocument@hook\relax @@ -1110,7 +1144,7 @@ \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \newcommand*\TUD@deprecated@key[2]{% \ClassWarning{\TUD@Class@Name}% {% @@ -1161,16 +1195,23 @@ \tud@res@c% }{}% } -\newcommand*\TUD@deprecated@lengthcs[2][]{% - \ifdim\csuse{#2}<\maxdimen\relax% - \ClassWarning{\TUD@Class@Name}{% - Using the length `\@backslashchar#2' is deprecated. \MessageBreak% - You should use option `#2' instead% - }% - \csxdef{tud@dim@#2}{\the\csuse{#2}}% - \expandafter\setlength\csname #2\endcsname{\maxdimen}% - \global\csuse{#2}=\csuse{#2}% - #1% +\newcommand*\TUD@deprecated@length[1]{% + \ifdim#1<\maxdimen\relax% + \begingroup% + \tud@strlength\tud@res@a{#1}% + \edef\tud@res@b{\expandafter\@gobble\string#1}% + \ClassWarning{\TUD@Class@Name}{% + Setting length `\string#1' is deprecated. \MessageBreak% + The option `\tud@res@b=\tud@res@a'\MessageBreak% + is used instead% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\TUDoption{\tud@res@b}{\tud@res@a}% + \global\noexpand\csletcs{tud@\tud@res@b @dim}{tud@\tud@res@b @dim}% + }% + \tud@res@a% + \global\setlength#1{\maxdimen}% \fi% } \newcommand*\tud@v@comp{\tud@v@last} @@ -1198,88 +1239,35 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% - \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% - `version=3.12' KOMA-Script compatibility option.% - }% - \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, but \KOMAScriptVersion was found.% - }% - }% } \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.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@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \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}% + \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% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% \ClassWarningNoLine{\TUD@Class@Name}% {% @@ -1288,6 +1276,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -1441,7 +1435,7 @@ \fi% } \TUD@key{clearcolour}[true]{\TUDoptions{clearcolor=#1}} -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1456,12 +1450,12 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax \tud@if@v@lower{2.05}{% \TUD@key@preset{relspacing}{false}% }{% @@ -1476,34 +1470,36 @@ \TUD@key@preset{ttfont}{roboto}% \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% cd=true,tudbookmarks=true% } +\DeclareOption*{\tud@x@scr@checkoptions} \TUDProcessOptions\relax -\LoadClass{\TUD@Class@KOMA}[2020/09/21] +\LoadClass{\TUD@Class@KOMA}[% + 2022/05/01 v3.36 KOMA-Script +] \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% \noexpand\ClassError{\noexpand\TUD@Class@Name}% {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% class `\noexpand\TUD@Class@Name'% - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } -%%% From File: tudscr-base.dtx -\RequirePackage{environ}[2013/04/01] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{environ} \newcommand*\tud@x@multicol@num{1} \newcommand*\tud@x@multicol@check{% \ifnum\tud@x@multicol@num>\@ne\relax% @@ -1523,14 +1519,16 @@ which now will be loaded automatically% }% }{}% - \RequirePackage{graphicx}[1999/02/16]% + \RequirePackage{graphicx} }% - \RequirePackage{tudscrcolor}[\TUD@Version]% + \RequirePackage{tudscrcolor}[% + 2022/08/09 v2.06o TUD-Script + ]% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) \newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} \newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -1569,11 +1567,9 @@ }% }% } -\TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\TUD@RecommendPackage{mweights} +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -1586,12 +1582,17 @@ \newcommand*\tud@ttfont@fam{tudtt} \newcommand*\tud@ttfont@rb{tudtt} \newcommand*\tud@ttfont@lm{lmtt} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% \TUD@key@preset{ttfont}{lmodern}% } +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -1599,8 +1600,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% \@ifpackageloaded{opensans}{% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1617,6 +1618,17 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \fi% + \fi% \fi% } \newcommand*\tud@cdfont@@check[5][-]{% @@ -1651,7 +1663,7 @@ \boolfalse{#5}% \fi% } -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -1668,7 +1680,10 @@ }% }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1676,8 +1691,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -1691,7 +1710,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -1709,7 +1728,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% \if@tud@res@swa% \appto\tud@res@a{% @@ -1723,8 +1742,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -1741,40 +1760,12 @@ \fi% \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% - \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% - {\tud@res@a} + \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}% + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -\newif\if@tud@x@bm@requested -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} \newcommand*\tud@x@fontspec@init[2]{% \begingroup% \edef\tud@res@a{% @@ -1804,7 +1795,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -1812,8 +1803,9 @@ }% \tud@res@a% } -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -1838,13 +1830,6 @@ \tud@cs@store{sffamily}% \tud@cs@store{ttfamily}% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \tud@cdfont@set% \tud@cdfont@symbols@set% \tud@ttfont@set% @@ -1893,12 +1878,19 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% \tud@cd@process% \global\@tud@head@font@settrue% } \newcommand*\tud@cdfont@set{% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1912,7 +1904,6 @@ \fi% \tud@cdfont@@set% \fi% - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1980,7 +1971,7 @@ \tud@res@a% \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname% } -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{% \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list% @@ -2001,42 +1992,64 @@ \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}% \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}% } -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@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% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% + \tud@relspacing@@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@cdfont@init{% - \if@tud@cdfont@fam@exist% - \if@tud@x@fontspec@enabled% - \def\tud@res@a{% - UprightFont={OpenSans-Regular},% - FontFace={l}{n}{OpenSans-Light},% - FontFace={m}{n}{OpenSans-Regular},% - FontFace={sb}{n}{OpenSans-SemiBold},% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@restore{columnsep}% + \fi% +} +\newcommand*\tud@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% +} +\newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% + \if@tud@cdfont@fam@exist% + \if@tud@x@fontspec@enabled% + \def\tud@res@a{% + UprightFont={OpenSans-Regular},% + FontFace={l}{n}{OpenSans-Light},% + FontFace={m}{n}{OpenSans-Regular},% + FontFace={sb}{n}{OpenSans-SemiBold},% FontFace={b}{n}{OpenSans-Bold},% FontFace={bx}{n}{OpenSans-Bold},% FontFace={eb}{n}{OpenSans-ExtraBold},% @@ -2070,28 +2083,33 @@ }{}% \tud@cdfont@declare@textsymb% \fi% - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} - \fi% + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% + \fi% +} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -2114,7 +2132,7 @@ \DeclareTextFontCommand\textcdxi{\cdfontxi}% } \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2132,23 +2150,26 @@ }% \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% \fi% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% \newcommand*\textuln{}% \newcommand*\texturn{}% @@ -2176,26 +2197,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% \if@tud@cdfont@db@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2214,7 +2215,7 @@ \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% \fi% \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -2223,7 +2224,7 @@ \newcommand*\tud@db@wrn{% \ClassWarning{\TUD@Class@Name}% {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -2265,7 +2266,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -2273,29 +2274,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2304,20 +2305,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2325,8 +2326,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2335,9 +2335,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -2347,8 +2347,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2391,12 +2390,12 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false \if@tud@x@fontspec@enabled% - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -2481,24 +2480,24 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% }{}% \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% @@ -2513,8 +2512,18 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -2598,7 +2607,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -2626,7 +2635,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2639,7 +2648,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -2738,26 +2747,19 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% \else% - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% @@ -2765,43 +2767,9 @@ \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% \tud@res@c% } -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} \newcommand*\tud@cdmath@init{% \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2847,12 +2815,11 @@ subdued,defaultmathsizes,nosmalldelims,noequal,% defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% - \RequirePackage{mathastext}[2018/08/22]% + \RequirePackage{mathastext} \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% @@ -2862,104 +2829,128 @@ \fi% \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% \tud@cdmath@also@greeks% - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \fi% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } -\newcommand*\tud@x@mathastext@enc{OT1} -\newcommand*\tud@cdmath@@init[2]{% - \tud@cdfont@@set% - \tud@ttfont@@set% +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} +\newcommand*\tud@cdmath@@@init[9]{% \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% - \fi% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% + \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% \AtBeginDocument{% @@ -2968,14 +2959,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% \else% \@ifpackageloaded{mdsymbol}{}{% \appto\tud@cdmath@wrn{% @@ -2988,18 +2979,73 @@ }% \fi% \fi% - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \fi% + }% +} +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% }{}% - \if@tud@cdoldfont@active% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% + }{}% + \AtBeginDocument{% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - \fi% + }% + }% +\fi +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% + \if@tud@cdmath@active% + \tud@if@strequal{#1}{normal}{% + \edef\tud@res@a{\tud@cdmath@normal@name}% + }{% + \tud@if@strequal{#1}{bold}{% + \edef\tud@res@a{\tud@cdmath@bold@name}% + }{}% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% }% } \newcommand*\tud@cdmath@symb@list{} @@ -3028,7 +3074,7 @@ }% \tud@res@a% } -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% @@ -3051,7 +3097,7 @@ } \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% \begingroup% \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% \def\tud@res@b##1"##2\@nil{"##2}% @@ -3154,7 +3200,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% @@ -3163,13 +3209,12 @@ \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% }% } -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% \ifcase\tud@slantedgreek@num\relax% upright \tud@math@loop@greeks@all\tud@math@upright@greeks% @@ -3184,7 +3229,7 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% + \expandafter\mathversion\expandafter{\math@version}% } \newcommand*\tud@math@upright@greeks[1]{% \ifcsundef{up#1}{}{% @@ -3198,49 +3243,7 @@ \csletcs{other#1}{up#1}% }% } -\AtEndPreamble{% - \if@tud@x@mweights@enabled% - \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% - \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% - \fi% - \tud@cdfont@check% - \tud@cdfont@init% - \tud@ttfont@init% - \tud@cdmath@init% - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% - \tud@font@set% - \tud@math@map@greeks% - \tud@math@checkslanted@greeks% - \AtBeginDocument{\tud@math@set}% -} +\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@set{% @@ -3260,14 +3263,14 @@ \if@tud@head@font@set% \if@tud@x@mweights@enabled% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}% \else% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}% \fi% \ifcase\tud@head@font@num\relax\else% true/heavy \tud@head@cdfont@set% @@ -3306,7 +3309,110 @@ \fi% }% \fi -%%% From File: tudscr-fields.dtx +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar} + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterAtEndOfPackage*{siunitx}{% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } +} +\tud@newif\if@tud@x@bm@requested +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \tud@cdmath@set% + \fi% + \RequirePackage{bm} + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +\AtEndPreamble{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@cdfont@check% + \tud@cdfont@init% + \tud@ttfont@init% + \tud@font@set% + \tud@cdmath@init% + \tud@x@bm@delayed% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \AtBeginDocument{\tud@math@set}% +} +%%%% From File: tudscr-fields.dtx (no git version info was found) \newcommand*\getfield[2][\@firstofone]{% \begingroup% \def\tud@res@b{#1}% @@ -3332,20 +3438,26 @@ \newcommand*\@department{} \newcommand*\@institute{} \newcommand*\@chair{} -\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*\faculty{\@dblarg{\tud@head@text@field{faculty}}} +\newcommand*\department{\@dblarg{\tud@head@text@field{department}}} +\newcommand*\institute{\@dblarg{\tud@head@text@field{institute}}} +\newcommand*\chair{\@dblarg{\tud@head@text@field{chair}}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} -\newcommand*\tud@head@text@field[2]{% - \csgdef{@#1}{\trim@spaces{#2}}% +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}[]{#1}} +\newcommand*\tud@head@text@field{} +\def\tud@head@text@field#1[#2]#3{% + \expandafter\tud@trim@field\csname @#1\endcsname{#3}% \global\@tud@head@text@settrue% } +\newcommand*\tud@trim@field[2]{% + \def#1{#2}% + \trim@spaces@in#1% + \global\let#1#1% +} \newcommand*\@@title{} \robustify\@title \renewcommand*\title[1]{% - \gdef\@title{#1}% + \tud@trim@field\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3356,7 +3468,7 @@ } \newcommand*\@@author{} \renewcommand*\author[1]{% - \gdef\@author{#1}% + \tud@trim@field\@author{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3388,128 +3500,160 @@ \endgroup% } \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newrobustcmd*\authormore[1]{\tud@trim@field\@authormore{#1}} \newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +\newrobustcmd*\emailaddress[2][]{% + \kernel@ifstar% + {\tud@emailaddress@simple{#2}}% + {\tud@emailaddress@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\newrobustcmd*\tud@emailaddress@simple[1]{\tud@trim@field\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\tud@trim@field\@emailaddress{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% + \tud@trim@field\@emailaddress{#2}% + \xdef\@emailaddress{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\href% + {mailto:\expandonce\@emailaddress}% + {\noexpand\nolinkurl{\expandonce\@emailaddress}}% \endgroup% }% }% } \newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newrobustcmd*\course[1]{\tud@trim@field\@course{#1}} \newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\newrobustcmd*\discipline[1]{\tud@trim@field\@discipline{#1}} \newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} +\newrobustcmd*\matriculationnumber[1]{\tud@trim@field\@matriculationnumber{#1}} \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newrobustcmd*\matriculationyear[1]{\tud@trim@field\@matriculationyear{#1}} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newrobustcmd*\placeofbirth[1]{\tud@trim@field\@placeofbirth{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} -\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} -\newcommand*\tud@thanks{} -\newcommand*\tud@thesis@do[2]{% +\newcommand*\thesis[1]{\tud@thesis@evaluate{thesis}{#1}} +\CheckCommand*\subject[1]{\gdef\@subject{#1}} +\newcommand*\@@subject{} +\renewcommand*\subject[1]{\tud@thesis@evaluate{subject}{#1}} +\newcommand*\tud@thesis@evaluate[2]{% \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% + \expandafter\tud@trim@field\csname @#1\endcsname{#2}% + \let\tud@res@c\@empty% + \def\thanks##1{\listgadd\tud@res@c{##1}}% \let\footnote\thanks% \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \protected@edef\@tempa{% + \protected@csxdef{@@#1}{\trim@spaces{#2}}% + \letcs\tud@res@a{@@#1}% + \TUD@set@numkey{thesis}{@tempa}{% + {habil}{0}, + {diss}{1},{doctoral}{1},{phd}{1}, + {diploma}{2}, + {master}{3}, + {bachelor}{4}, + {student}{5}, + {evidence}{6}, + {project}{7}, + {seminar}{8}, + {term}{9}, + {research}{10}, + {log}{11}, + {report}{12}, + {internship}{13} + }{\tud@res@a}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% habil + \def\tud@res@a{\habilitationname}% + \or% diss + \def\tud@res@a{\dissertationname}% + \or% diploma + \def\tud@res@a{\diplomathesisname}% + \or% master + \def\tud@res@a{\masterthesisname}% + \or% bachelor + \def\tud@res@a{\bachelorthesisname}% + \or% student + \def\tud@res@a{\studentthesisname}% + \or% evidence + \def\tud@res@a{\studentresearchname}% + \or% project + \def\tud@res@a{\projectpapername}% + \or% seminar + \def\tud@res@a{\seminarpapername}% + \or% term + \def\tud@res@a{\termpapername}% + \or% research + \def\tud@res@a{\researchname}% + \or% log + \def\tud@res@a{\logname}% + \or% report + \def\tud@res@a{\reportname}% + \or% internship + \def\tud@res@a{\internshipname}% + \else% + \FamilyKeyStateUnknownValue% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \global\cslet{@@#1}\tud@res@a% + \tud@if@strequal{#1}{subject}{% + \ifx\@@thesis\@empty\global\let\@@thesis\@@subject\fi% + }{}% + \def\do##1{\appto\tud@res@a{\thanks{##1}}}% + \dolistloop{\tud@res@c}% + \fi% + \edef\tud@res@a{% \endgroup% - \def\noexpand\@tempa{\@tempa}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \noexpand\csgdef{@#1}{\expandonce\tud@res@a}% + \fi% }% - \@tempa% - \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \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{\TUD@Class@Name}{% - Field `thesis' is overwritten by `subject'% - }% - \fi% - \TUD@key@preset{subjectthesis}{true}% - }{% - \TUD@key@preset{subjectthesis}{false}% - }% - \ifx\tud@thanks\relax% - \gdef\@thesis{#2}% - \else% - \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% - \fi% - \protected@xdef\@@thesis{\trim@spaces{#2}}% + \tud@res@a% } \newcommand*\@graduation{} \newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \gdef\@graduationabbreviation{}% - \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% - \gdef\@graduation{#2}% + \tud@trim@field\@graduationabbreviation{#1}% + \tud@trim@field\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professor{#1}} \newcommand*\@supervisor{} -\newcommand*\supervisor[1]{\gdef\@supervisor{#1}} +\newcommand*\supervisor[1]{\tud@trim@field\@supervisor{#1}} \newcommand*\@supporter{} -\newcommand*\supporter[1]{\gdef\@supporter{#1}} +\newcommand*\supporter[1]{\tud@trim@field\@supporter{#1}} \newcommand*\@company{} -\newcommand*\company[1]{\gdef\@company{#1}} +\newcommand*\company[1]{\tud@trim@field\@company{#1}} \newcommand*\@referee{} -\newcommand*\referee[1]{\gdef\@referee{#1}} +\newcommand*\referee[1]{\tud@trim@field\@referee{#1}} \newcommand*\@advisor{} -\newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newlength\tud@len@signatureskip -\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} +\newcommand*\advisor[1]{\tud@trim@field\@advisor{#1}} +\tud@newglue\tud@glue@signaturevskip +\tud@setglue\tud@glue@signaturevskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \begingroup% \let\and\hfil% \@@author\hfil% \endgroup% } -\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} +\newcommand*\confirmationclosing[1]{\tud@trim@field\@confirmationclosing{#1}} \newcommand*\@place{Dresden} -\newcommand*\place[1]{\gdef\@place{#1}} +\newcommand*\place[1]{\tud@trim@field\@place{#1}} +\CheckCommand*\subtitle[1]{\gdef\@subtitle{#1}} +\renewcommand*\subtitle[1]{\tud@trim@field\@subtitle{#1}} +\CheckCommand\publishers[1]{\gdef\@publishers{#1}}% +\renewcommand*\publishers[1]{\tud@trim@field\@publishers{#1}} \providecommand*\publisher[1]{\publishers{#1}} \TUD@UnwindPackage{isodate}{% \@ifpackageloaded{datetime2}{% @@ -3522,9 +3666,10 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \ifxblank{#2}% - {\gdef#1{}}% - {\gdef#1{\printdate{#2}}}% + \tud@trim@field#1{#2}% + \tud@if@strblank{#1}% + {}% + {\xdef#1{\noexpand\printdate{\expandonce#1}}}% \fi% } \newcommand*\tud@date@check{% @@ -3570,26 +3715,43 @@ } \newcommand*\tud@date@print{% \ifx\@date\@empty\else% + \trim@spaces@in\@beforedate% \ifx\@beforedate\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% + \@beforedate\nobreakspace% \fi% \@date% + \trim@spaces@in\@afterdate% \ifx\@afterdate\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% + \nobreakspace\@afterdate% \fi% \fi% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{% - \tud@printdate{\@dateofbirth}{#1}\ignorespaces% +\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@if@field@unset[1]{% + \begingroup% + \edef\tud@res@a{% + \def\noexpand\tud@res@a####1\string\@latex@####2\noexpand\@nil{% + \noexpand\IfArgIsEmpty{####2}% + \unexpanded{\@tud@res@swafalse\@tud@res@swatrue}% + }% + \noexpand\tud@res@a% + \expandafter\strip@prefix\meaning#1% + \string\@latex@\noexpand\@nil% + }% + \tud@res@a% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% - \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line% - }{% + \expandafter\tud@if@field@unset\expandafter{\csname #1\endcsname}{% \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% @@ -3599,20 +3761,27 @@ \let\and\relax% \let\newline\@empty% \let\\\@empty% - \edef\@tempa{\csname#1\endcsname\and}% + \edef\@tempa{\csname #1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% } \newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% + \IfArgIsEmpty{#1}{% \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@cs@store{@##1}}{}}% + \def\@tempa##1{% + \ifcsdef{@##1}{\tud@cs@store{@##1}}{}% + \ifcsdef{##1}{% + \tud@cs@store{##1}% + \expandafter\xapptocmd\csname ##1\endcsname{\ignorespaces}% + {}{\tud@patch@wrn##1}% + }{}% + }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -3628,6 +3797,7 @@ \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% + \ifcsdef{##1}{\tud@cs@restore{##1}}{}% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3636,16 +3806,16 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \ifstr{#2}{*}{% + \if\detokenize{#2*}\relax% \csdef{@##1}{}% - }{% + \else% \begingroup% \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% \ifin@% \ifcsvoid{@##1}{\@tempc{#2}}{}% \fi% \endgroup% - }% + \fi% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3663,7 +3833,7 @@ matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-localization.dtx +%%%% From File: tudscr-localization.dtx (no git version info was found) \newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% @@ -3673,7 +3843,7 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% @@ -3705,6 +3875,7 @@ \tud@localization@define{\disciplinename} \tud@localization@define{\listingname} \tud@localization@define{\listlistingname} +\tud@localization@define{\habilitationname} \tud@localization@define{\dissertationname} \tud@localization@define{\diplomathesisname} \tud@localization@define{\masterthesisname} @@ -3830,6 +4001,7 @@ \tud@localization@german{\disciplinename}{Studienrichtung} \tud@localization@german{\listingname}{Quelltext} \tud@localization@german{\listlistingname}{Quelltextverzeichnis} +\tud@localization@german{\habilitationname}{Habilitation} \tud@localization@german{\dissertationname}{Dissertation} \tud@localization@german{\diplomathesisname}{Diplomarbeit} \tud@localization@german{\masterthesisname}{Master-Arbeit} @@ -3936,6 +4108,7 @@ \tud@localization@english{\disciplinename}{Discipline} \tud@localization@english{\listingname}{Listing} \tud@localization@english{\listlistingname}{List of Listings} +\tud@localization@english{\habilitationname}{Habilitation} \tud@localization@english{\dissertationname}{Dissertation} \tud@localization@english{\diplomathesisname}{Diploma Thesis} \tud@localization@english{\masterthesisname}{Master Thesis} @@ -3959,8 +4132,8 @@ \tud@localization@english{\@commaswap}{\,}% \tud@localization@english{\@dotswap}{.}% } -%%% From File: tudscr-area.dtx -\newif\if@tud@x@crop@center +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@x@crop@center \AfterPackage{crop}{% \CheckCommand*\CROP@center{% \voffset\stockheight @@ -3970,73 +4143,73 @@ \advance\hoffset-\paperwidth \hoffset.5\hoffset }% - \pretocmd{\CROP@center}{% + \pretocmd\CROP@center{% \@tud@x@crop@centertrue% }{}{\tud@patch@wrn{CROP@center}}% } -\newif\if@tud@x@standalone@crop +\tud@newif\if@tud@x@standalone@crop \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} -\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}{} +\tud@newdim\tud@dim@widemargin +\tud@newdim\tud@dim@slimmargin +\tud@newdim\tud@dim@bothmargin +\tud@newdim\tud@dim@topmargin +\tud@newdim\tud@dim@barheight +\tud@newdim\tud@dim@headsep +\tud@newdim\tud@dim@footsep +\tud@newdim\tud@dim@logox +\tud@newdim\tud@dim@logoy +\tud@newdim\tud@dim@logowidth +\tud@newdim\tud@dim@line +\tud@newdim\tud@dim@heavyline +\tud@newdim\tud@dim@thinline +\tud@newdim\tud@dim@areaheadvskip +\tud@newdim\tud@dim@areadiff +\tud@newdim\tud@dim@areavskip +\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{} \newcommand*\tud@head@fontsize{} -\newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutwidth -\newlength\tud@len@layoutheight -\newlength\tud@len@layouthoffset -\newlength\tud@len@layoutvoffset +\tud@newif\if@tud@cdgeometry@adjust +\tud@newdim\tud@dim@layoutwidth +\tud@newdim\tud@dim@layoutheight +\tud@newdim\tud@dim@layouthoffset +\tud@newdim\tud@dim@layoutvoffset \newcommand*\tud@cdgeometry@set{% \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% - \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \else\ifdim\tud@dim@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% + \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% @@ -4059,58 +4232,58 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{0.25pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{4.5pt}% + \tud@setdim\@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}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{21.213203mm}% + \tud@setdim\tud@dim@heavyline{0.707107pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{42.426407mm}% + \tud@setdim\tud@dim@heavyline{1.414214pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{60mm}% + \tud@setdim\tud@dim@heavyline{2pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{84.852814mm}% + \tud@setdim\tud@dim@heavyline{2.828427pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@thinline{2pt}% \renewcommand*\tud@head@fontsize{36}% \else% >A0/B0 \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% @@ -4121,50 +4294,48 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{2pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{36pt}% + \tud@setdim\@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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{\tud@head@fontsize pt}% + \tud@setdim\@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% - }% + \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}% + \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}% + \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}% + \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}% + \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}% + \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}% + \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}% + \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}% + \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% - \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}% + \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}% \fi% \tud@cdgeometry@papersize@store% } \newcommand*\tud@cdgeometry@assignlayout{% - \ifdim\tud@len@layoutwidth<\p@\relax% - \setlength\tud@len@layoutwidth{\paperwidth}% + \ifdim\tud@dim@layoutwidth<\p@\relax% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% \fi% - \ifdim\tud@len@layoutheight<\p@\relax% - \setlength\tud@len@layoutheight{\paperheight}% + \ifdim\tud@dim@layoutheight<\p@\relax% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \fi% } \newcommand*\tud@cdgeometry@papersize@last{} @@ -4180,8 +4351,8 @@ }% \ifx\tud@res@a\tud@cdgeometry@papersize@last\else% \appto\tud@res@b{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% \tud@x@geometry@fixmargins% }% \fi% @@ -4195,11 +4366,11 @@ \expandafter\pagestyle\expandafter{\currentpagestyle}% } \if@tud@x@standalone@crop - \PreventPackageFromLoading{geometry}% - \let\tud@cdgeometry@process\relax% + \PreventPackageFromLoading{geometry} + \let\tud@cdgeometry@process\relax \else - \RequirePackage{geometry}[2010/09/12]% -\fi% + \RequirePackage{geometry} +\fi \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -4337,7 +4508,7 @@ }{\@nameuse{Gm@restore@@#1}% \Gm@changelayout}% }% - \newif\if@tud@x@geometry@enabled% + \tud@newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% \tud@cs@store{geometry}% \tud@cs@store{newgeometry}% @@ -4351,7 +4522,7 @@ }% \renewcommand*\restoregeometry[1][custom]{% \tud@cdgeometry@reset{#1}% - \if@atdocument% + \tud@if@preamble{}{% \ifcase\tud@cdgeometry@num\relax% false \tud@loadgeometry{init@typearea}% \@tud@x@geometry@fixmarginstrue% @@ -4360,11 +4531,11 @@ \@tud@x@geometry@fixmarginstrue% \fi% \tud@cdgeometry@process% - \fi% + }% }% - \apptocmd{\Gm@changelayout}{% + \apptocmd\Gm@changelayout{% \if@tud@x@geometry@enabled% - \if@atdocument% + \tud@if@preamble{}{% \@tud@x@geometry@fixmarginstrue% \ifcase\tud@cdgeometry@num\relax% false \tud@cdgeometry@reset{typearea}% @@ -4372,15 +4543,15 @@ \tud@cdgeometry@reset{custom}% \fi% \tud@cdgeometry@process% - \fi% + }% \fi% }{}{\tud@patch@wrn{Gm@changelayout}}% - \newif\if@tud@x@geometry@fixmargins% + \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% - \addtolength\oddsidemargin{-\tud@len@layouthoffset}% - \addtolength\evensidemargin{-\tud@len@layouthoffset}% - \addtolength\topmargin{-\tud@len@layoutvoffset}% + \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}% \@tud@x@geometry@fixmarginsfalse% \fi% }% @@ -4401,16 +4572,19 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% - \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}% + \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}% }% \tud@res@a% \fi% - \ifstr{#2}{newgeometry}{% - \eappto\Gm@restore@org{% + \tud@if@strequal{#2}{newgeometry}{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \ifcase\tud@cdgeometry@num\relax% \typearea[current]{current}% \ifx\tud@x@geometry@parameter\@empty\else% @@ -4449,11 +4623,11 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \ifstr{#1}{false}{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% - \setlength\tud@len@layouthoffset{\z@}% - \setlength\tud@len@layoutvoffset{\z@}% + \tud@if@strequal{#1}{false}{% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% + \tud@setdim\tud@dim@layouthoffset{\z@}% + \tud@setdim\tud@dim@layoutvoffset{\z@}% }{% \tud@x@geometry@area@def{layout}{#1}% }% @@ -4470,25 +4644,25 @@ \@tempa#1,,\@nil% }% \TUD@parameter@def{layoutwidth}{% - \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}% + \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}% }% \TUD@parameter@def{layoutheight}{% - \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}% + \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}% }% \TUD@parameter@def{layoutoffset}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##1}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##1}% }{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##2}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% - \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% + \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% @@ -4499,20 +4673,24 @@ }% }% \newcommand*\tud@x@geometry@area@def[2]{% - \tud@lowerstring{\@tempa}{#2}% + \tud@strlowercase\@tempa{#2}% \def\@tempb##1paper##2\@nil{% - \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \tud@if@strequal{##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}{}% + \TUD@set@numkey{paper}{@tempc}{% + {seascape}{0},{landscape}{0},{portrait}{0},% + {letter}{0},{executive}{0},{legal}{0}% + }{\@tempa}% + \@tempswafalse% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempc\relax% + \@tempswatrue% + \fi% + \fi% \if@tempswa\else% - \ifx\@tempa\@empty\relax\else% + \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% \if ##1a\@tempswatrue% \else\if ##1b\@tempswatrue% @@ -4521,7 +4699,7 @@ \fi\fi\fi\fi% \if@tempswa% \@tempswafalse% - \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}% \fi% }% \expandafter\@tempb\@tempa\@nil% @@ -4537,7 +4715,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \ifstr{\@tempa}{##1}{% + \tud@if@strequal{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -4572,7 +4750,7 @@ \IfArgIsEmpty{##2}{% \KOMAoption{paper}{##1}% }{% - \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -4587,16 +4765,16 @@ \begingroup% \tud@cdgeometry@assignlayout% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% layoutoffset={% - \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset% }% \if@tud@res@swa% - ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}% \fi% }% }% @@ -4605,24 +4783,25 @@ }% \newcommand*\tud@x@geometry@set[1]{% \@tud@x@geometry@enabledfalse% - \if@atdocument% + \tud@if@preamble{% + \Gm@initnewgm% + \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}% + \def\@tempc{\tud@cs@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa,driver=none}% + }{% \edef\@tempa{#1}% \tud@cs@store{Gm@restore@org}% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \def\@tempc{\tud@cs@use{newgeometry}}% \expandafter\@tempc\expandafter{\@tempa}% \tud@cs@restore{Gm@restore@org}% - \else% - \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% - }% - \def\@tempc{\tud@cs@use{geometry}}% - \expandafter\@tempc\expandafter{\@tempa,driver=none}% - \fi% + }% \@tud@x@geometry@enabledtrue% }% \newcommand*\tud@savegeometry[1]{% @@ -4673,7 +4852,7 @@ \fi% \ifcase\tud@cdgeometry@num\relax% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,% textwidth=\the\textwidth,% \tud@cdgeometry@mpincl,% marginparwidth=\the\marginparwidth,% @@ -4691,8 +4870,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4703,7 +4881,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in% + -\Gm@bindingoffset\relax\relax,% textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% @@ -4725,8 +4904,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4740,37 +4918,43 @@ }% \fi% \fi% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\topmargin-\headheight-\headsep-1in\relax% + \if@twoside% + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\topmargin-\headheight-\headsep-1in% }% - \ifdim\tud@len@areadiff<\z@\relax% - \addtolength\tud@len@headsep{-\tud@len@areadiff}% - \setlength\@tempdima{\z@}% + \ifdim\tud@dim@areadiff<\z@\relax% + \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}% + \tud@setdim\@tempdima{\z@}% \else% - \setlength\@tempdima{\tud@len@areadiff}% + \tud@setdim\@tempdima{\tud@dim@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,% + 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\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% + \tud@setdim\tud@dim@ddcdiff{% + \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4% }% \edef\tud@cdgeometry@ddcmargin{% - textheight=\the\dimexpr\textheight-\tud@len@areadiff% - -\tud@len@ddcdiff\relax,% - footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + textheight=\the\dimexpr\textheight-\tud@dim@areadiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax% }% }{}% - \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else% \begingroup% \edef\tud@res@a{% The key `extrabottommargin' is ineffective\MessageBreak% @@ -4789,45 +4973,43 @@ }% \tud@res@a% \fi% - \else% true/symmetric/twoside - \ifcase\tud@cdgeometry@num\relax\or\or% true - \setlength\@tempdima{\tud@len@widemargin}% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \tud@setdim\@tempdima{\tud@dim@widemargin}% \if@reversemargin% - \setlength\@tempdimc{\tud@len@widemargin}% + \tud@setdim\@tempdimc{\tud@dim@widemargin}% \else% - \setlength\@tempdimc{\tud@len@slimmargin}% + \tud@setdim\@tempdimc{\tud@dim@slimmargin}% \fi% \or% symmetric - \setlength\@tempdima{.5\tud@len@both}% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \or% twoside \if@twoside% - \setlength\@tempdima{.4\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdima{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% \fi% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \if@twoside% \if@reversemargin% - \setlength\@tempdimc{.4\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdimc{.6\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}% \fi% \fi% \fi% - \addtolength\@tempdimc{-\headsep}% - \setlength\@tempdimb{% - \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% - }% + \tud@addtodim\@tempdimc{-\headsep}% + \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}% \if@mincl% - \addtolength\@tempdimb{-\@tempdimc}% + \tud@addtodim\@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,% + marginparsep=\the\dimexpr\headsep/2\relax,% \if@reversemargin% reversemarginpar=true,% \else% @@ -4848,68 +5030,69 @@ \tud@if@v@lower{2.03}{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\dimexpr.5\tud@len@both\relax,% + top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% - headsep=\the\tud@len@headsep,% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4\relax% }% }{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\tud@len@slimmargin,% + top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@len@widemargin% - +\tud@dim@extrabottommargin\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + footskip=\the\dimexpr\tud@dim@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% + 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% }% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\tud@len@slimmargin\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin% }% \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% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@bothmargin/2% }% - \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \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,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4\relax\relax,% \else% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,% \fi% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip+\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% - \global\tud@len@areadiff=\tud@len@areadiff% - \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% + \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi% + \global\tud@dim@areadiff=\tud@dim@areadiff% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@topmargin*11/50}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@areaheadvskip/2}% \fi% - \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \global\tud@dim@areaheadvskip=\tud@dim@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% + \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% }{}% \tud@cdgeometry@@@process% }% @@ -4944,11 +5127,11 @@ \or% custom \tud@savegeometry{current@custom}% \fi% - \if@atdocument% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@preamble{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% - \fi% + }% }% \newcommand*\tud@cdgeometry@hincl{% \if@hincl% @@ -4975,12 +5158,12 @@ \csuse{@ta@usegeometryfalse}% \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% \tud@cs@store{tud@cdgeometry@num}% - \tud@cs@store{tud@dim@extrabottommargin}% - \def\tud@dim@extrabottommargin{\z@}% + \tud@cs@store{tud@extrabottommargin@dim}% + \def\tud@extrabottommargin@dim{0pt}% \tud@cdgeometry@reset{custom}% \begingroup% \epreto\tud@x@geometry@init{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + papersize={\the\paperwidth,\the\paperheight},% \tud@cdgeometry@layout,% \tud@cdgeometry@mpincl,% \if@reversemargin% @@ -5006,14 +5189,14 @@ \tud@x@typearea@warnings@on% \tud@cdgeometry@@process% \tud@savegeometry{init@typearea}% - \def\tud@res@b##1{% - \eappto\Gm@restore@@init@typearea{% - \noexpand\PackageWarningNoLine{typearea}{##1}% - }% + \def\do##1{% + \apptocmd\Gm@restore@@init@typearea{% + ##1% + }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}% }% - \forlistloop\tud@res@b{\tud@res@a}% + \dolistloop{\tud@res@a}% \tud@cs@restore{tud@cdgeometry@num}% - \tud@cs@restore{tud@dim@extrabottommargin}% + \tud@cs@restore{tud@extrabottommargin@dim}% \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% \ifcase\tud@cdgeometry@num\relax% typearea \tud@loadgeometry{init@typearea}% @@ -5024,90 +5207,84 @@ \tud@cdgeometry@process% \let\tud@cdgeometry@@init\relax% }% - \newcommand*\tud@currentgeometry{} + \newcommand*\tud@currentgeometry{}% \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@strequal{#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@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@len@areavskip{\z@}% - \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% - \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@setdim\tud@dim@areavskip{\z@}% }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@len@areavskip{\tud@len@areadiff}% + \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}% \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% - \tud@komafont@unset{pagenumber}% - \tud@komafont@unset{pagefoot}% }% - \global\tud@len@areavskip=\tud@len@areavskip% + \global\tud@dim@areavskip=\tud@dim@areavskip% }{}% - } + }% } \newcommand*\tud@x@typearea@before{% \tud@cdgeometry@resetlayout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% + \tud@cslength@store{paperheight}% + \tud@cslength@store{paperwidth}% \begingroup% \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}% + \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}% }% \tud@res@a% } \newcommand*\tud@x@typearea@after{% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% - \if@atdocument% + \tud@cslength@restore{paperheight}% + \tud@cslength@restore{paperwidth}% + \tud@if@preamble{% + \TUD@key@preset{cdgeometry}{false}% + }{% \tud@cdgeometry@reset{typearea}% \tud@cdgeometry@process% - \else% - \TUD@key@preset{cdgeometry}{false}% - \fi% + }% } \newcommand*\tud@x@typearea@init{\recalctypearea}% \xpretocmd{\typearea}{% \tud@x@typearea@before% - \def\tud@x@typearea@init{\typearea[#1]{#2}}% + \def\tud@x@typearea@init{\typearea[{#1}]{#2}}% }{}{\tud@patch@wrn{typearea}} \xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} \xpretocmd{\areaset}{% \tud@x@typearea@before% \begingroup% - \setlength\@tempdima{#2}% - \setlength\@tempdimb{#3}% + \tud@setdim\@tempdima{#2}% + \tud@setdim\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% - \noexpand\def\noexpand\tud@x@typearea@init{% - \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + \def\noexpand\tud@x@typearea@init{% + \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}% }% }% \tud@res@a% @@ -5115,17 +5292,17 @@ \xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}} \tud@cs@store{storeareas} \renewcommand*\storeareas[1]{% - \begingroup + \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% - \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% + \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% - \tud@res@b{\tud@len@layoutwidth}% - \tud@res@b{\tud@len@layoutheight}% - \tud@res@b{\tud@len@layouthoffset}% - \tud@res@b{\tud@len@layoutvoffset}% + \unexpanded{\def#1}{% + \tud@res@b{\tud@dim@layoutwidth}% + \tud@res@b{\tud@dim@layoutheight}% + \tud@res@b{\tud@dim@layouthoffset}% + \tud@res@b{\tud@dim@layoutvoffset}% \expandonce#1% \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% @@ -5139,8 +5316,8 @@ \let\tud@cdgeometry@@init\relax% }% \newcommand*\tud@cdgeometry@@process{% - \setlength\tud@len@layoutwidth{\paperwidth}% - \setlength\tud@len@layoutheight{\paperheight}% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \tud@cdgeometry@set% }% \newcommand*\tud@x@geometry@fixmargins{}% @@ -5155,41 +5332,52 @@ \fi% }% } -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleoddpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleevenpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\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@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \enlargethispage{-\tud@len@ddcdiff}% + \enlargethispage{-\tud@dim@ddcdiff}% \fi% }% }{}% }% }{} -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) \if@tud@x@standalone@crop \PreventPackageFromLoading{scrlayer-scrpage}% \else \PassOptionsToPackage{automark}{scrlayer-scrpage}% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[% + 2022/05/01 v3.36 KOMA-Script + ]}% \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,% + addhoffset=\tud@dim@logox-\tud@dim@widemargin,% + addwidth=-\tud@dim@logox+\tud@dim@widemargin,% + voffset=\tud@dim@logoy,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@mainlogo@set% \tud@headlogo@option@set% @@ -5198,10 +5386,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -5211,24 +5399,24 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\tud@dim@barheight,% + voffset=\tud@dim@topmargin,% + addvoffset=\tud@dim@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% + \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% + \ifdim\@tempdima<\z@\relax\tud@setdim\@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,% + voffset=\tud@dim@topmargin+\tud@dim@line,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% @@ -5237,8 +5425,8 @@ ]{tudheadings.head.text}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5247,9 +5435,8 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5258,10 +5445,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5270,11 +5457,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5283,16 +5469,16 @@ ]{tudheadings.head.lowlinewide}% \DeclareNewLayer[% foreground,headsep,% - addvoffset=.5\tud@len@headsep,% - height=\baselineskip,% + addvoffset=\tud@dim@headsep/2,% + height=1\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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% \if@tud@foot@colored% @@ -5307,7 +5493,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -5317,7 +5505,7 @@ ]{tudheadings.foot.back}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% @@ -5329,7 +5517,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -5337,7 +5527,7 @@ \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false @@ -5350,13 +5540,9 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset\relax,% + height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% @@ -5364,16 +5550,13 @@ ]{tudheadings.foot.content}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \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% + \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}% + \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax% \fi% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% @@ -5386,7 +5569,7 @@ contents=\tud@head@bar@restore,% ]{tudheadings.last}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5410,7 +5593,7 @@ \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5436,7 +5619,7 @@ \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5458,12 +5641,10 @@ \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}% - ,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -5472,6 +5653,22 @@ },% ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onselect={% + \tud@if@tudheadings{\currentpagestyle}{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + }{% + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% + }% + }% } \newcommand*\tud@ps@list{} \listadd\tud@ps@list{tudheadings} @@ -5480,13 +5677,15 @@ \newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% +\patchcmd\thispagestyle{% + \gdef\@specialstyle{#1}% +}{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} -\pretocmd{\tud@pagestyle}{% +\pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} @@ -5502,26 +5701,21 @@ } \AfterAtEndOfPackage*{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} \TUD@UnwindPackage{scrlayer-scrpage}{% - \ifcsundef{if@chapter}{% + \ifundef{\if@chapter}{% \newif\if@chapter% - \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + \ifundef{\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*\tud@BeforeSelectAnyPageStyle[1]{}% \providecommand*\GetRealPageStyle[1]{#1}% \let\pagestyle\tud@pagestyle% \undef\tud@pagestyle% \tud@cdgeometry@init% } -\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} @@ -5561,7 +5755,7 @@ \fi% }{% \tud@locked@bool@preset{@tud@head@widebar}{true}% - \ifstr{\tud@pagecolor}{HKS41}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -5586,8 +5780,10 @@ \fi% }% }% - \let\tud@len@line\tud@len@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \let\tud@dim@line\tud@dim@thinline% + \tud@if@strequal{\tud@head@fontcolor}{white}% + {\let\tud@dim@line\tud@dim@heavyline}% + {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \newcommand*\tud@head@text@line{} @@ -5595,13 +5791,13 @@ \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@text@add[3][{, }]{% - \ifxblank{#3}{}{% + \tud@if@strblank{#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}% + \unexpanded{#2#3}% }% \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% @@ -5612,7 +5808,7 @@ \fi% }% } -\newif\if@tud@head@text@set +\tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% @@ -5624,7 +5820,7 @@ \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}{}{% + \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% @@ -5638,7 +5834,7 @@ } \newcommand*\tud@head@text@box{% \def\@tempb{\tud@color{\tud@head@fontcolor}}% - \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempc{\depth+\tud@dim@heavyline}% \def\@tempa##1{% \settowidth\@tempdima{##1}% \ifdim\@tempdima>\textwidth\relax% @@ -5650,16 +5846,16 @@ \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% - \def\@tempc{\z@}% + \let\@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}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% \vbox{% \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% + \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% @@ -5667,16 +5863,18 @@ \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}}% + \raisebox{% + \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% + }[% + \dimexpr\tud@dim@barheight-\depth\relax% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}% } \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@len@line}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@layer@#1\endcsname% + \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% @@ -5684,33 +5882,74 @@ \newcommand*\tud@uselayerbox[1]{% \expandafter\usebox\csname tud@layer@#1\endcsname% } -\newcommand*\tud@vlayerbox[3]{% +\newcommand*\tud@vlayerbox[4][]{% \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% + \setbox\z@\vbox{#3}% + \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}% + \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax% + \edef\tud@res@a{% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{% + #4\noexpand\MessageBreak% + The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the% + \noexpand\MessageBreak maximum height (\the\tud@res@glue)% + }% + }% + \IfArgIsEmpty{#1}{\tud@res@a}{% + \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else% + \tud@res@a% + \global\cslet{tud@layer@#1@wrn}\tud@res@a% + \fi% }% \fi% \endgroup% - \vbox to #1{#2}% + \vbox to #2{#3}% +} +\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 +\tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set +\tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \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}}% - \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% - \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight% \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% \ClassWarning{\TUD@Class@Name}{% @@ -5725,14 +5964,18 @@ \fi% }% \tud@headlogo@set% - \@tud@footlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } +\AtBeginDocument{% + \@tud@mainlogo@settrue% + \tud@mainlogo@set% +} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -5742,26 +5985,17 @@ \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]% + \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -5772,18 +6006,19 @@ \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% - ]{##1}% + \includegraphics[{% + keepaspectratio,% + totalheight=\tud@dim@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\tud@headlogo@filename{\tud@headlogo@filename}% + \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% @@ -5802,11 +6037,21 @@ \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% + \ifnum\@tempa>\z@\relax + \ifdefvoid{\tud@headlogo@filename}{}{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\tud@headlogo@filename'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + }% + \fi% \global\@tud@headlogo@option@setfalse% \fi% } +\newcommand*\tud@layer@headlogo@wrn{} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@len@mainlogoheight}{% + \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -5820,57 +6065,59 @@ }{% 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% - }% } -\AtEndOfClass{% - \ifdefvoid{\tud@dim@footlogoheight}{% +\newcommand*\tud@footlogoheight@set{% + \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% - \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% - \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% - }{}% + \fi% } \tud@newlayerbox{foot@black} \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + \tud@savelayerbox{#1}{% + \includegraphics[% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% + ]{#2}% }% } \newcommand*\tud@footlogo@option@set{% + \tud@footlogoheight@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@footlogo@ddc@set{foot@black}{DDC-22}% + \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}% + \tud@footlogo@ddc@set{foot@white}{DDC-28}% \tud@ddc@check% \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color - \tud@footlogo@ddc@set{option}{DDC-01}% + \tud@footlogo@ddc@set{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% + \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray - \tud@footlogo@ddc@set{option}{DDC-19}% + \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black - \tud@footlogo@ddc@set{option}{DDC-22}% + \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue - \tud@footlogo@ddc@set{option}{DDC-25}% + \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white - \tud@footlogo@ddc@set{option}{DDC-28}% + \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% + \global\@tud@footlogo@cmd@settrue% \fi% } +\newcommand*\tud@layer@footlogo@wrn{} \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}{% + \tud@vlayerbox[footlogo]{#1}{% \vss% \hbox to #2{% \hss% @@ -5882,12 +6129,12 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + You should reduce `footlogoheight', because it is\noexpand\MessageBreak% + too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% + Alternatively you could use\noexpand\MessageBreak% + option `extrabottommargin='\noexpand\MessageBreak% + in order to enlarge the bottom margin. % \fi% }% }% @@ -5905,14 +6152,15 @@ \global\@tud@footlogo@cmd@settrue% \tud@comp@resetpagestyle% } -\newif\if@tud@footlogo@cmd@set +\tud@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}}% + \protected@edef\@tempb{\@tempb}% + \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% @@ -5942,11 +6190,14 @@ \DeclareListParser{\@tempc}{:}% \@tempc{#1}% \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@dim@footlogoheight,% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% - \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}% + \noexpand\includegraphics[{% + \expandonce\tud@footlogo@fileoptions% + }]{\@tempa}% }% \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% @@ -5960,26 +6211,27 @@ \usebox\z@\hspace*{-\wd\z@}% } \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} -\newcommand*\tud@footcontent@usefont[1]{% +\newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% - \tud@footcontent@fontsize% - \tud@footcontent@fontface% + \tud@footcontent@font@size% + \tud@footcontent@font@face% \selectfont% #1% }% } -\newcommand*\tud@footcontent@fontsize{} -\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@font@size{} +\newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\tud@footcontent@right{} +\let\tud@footcontent@right\@nnil \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontsize{}% + \renewcommand*\tud@footcontent@font@size{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontsize{% - \setlength\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\@tempdima}{1.25\@tempdima}% + \renewcommand*\tud@footcontent@font@size{% + \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}% + \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}% }% \tud@footcontent@do% }% @@ -5991,22 +6243,22 @@ } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% - \if\detokenize{*#1}\relax\else% - \renewcommand*\tud@footcontent@fontface{#1}% + \if\detokenize{#1*}\relax\else% + \renewcommand*\tud@footcontent@font@face{#1}% \fi% - \if\detokenize{*#2}\relax\else% + \if\detokenize{#2*}\relax\else% \renewcommand*\tud@footcontent@left{#2}% \fi% - \if\detokenize{*#3}\relax\else% + \if\detokenize{#3*}\relax\else% \renewcommand*\tud@footcontent@right{#3}% \fi% } +\newcommand*\tud@layer@footcontent@wrn{} \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% + \ifx\tud@footcontent@left\@empty% + \ifx\tud@footcontent@right\@nnil\else% + \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% @@ -6016,44 +6268,29 @@ \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \tud@addtodim\@tempdimc{\columnsep}% \fi% - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@usefont{% - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% + \tud@footcontent@font@use{% + \tud@setglue\tud@res@glue{#2}% + \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% \vss\vss% }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content\MessageBreak% + The content for the footer (`\string\footcontent')\noexpand\MessageBreak% + is too high. You should either reduce the content\noexpand\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% + \noexpand\MessageBreak% + Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% @@ -6061,39 +6298,25 @@ \hbox to #2{}% \fi% } -\tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% -}{}% -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head@num% - \let\@tempb\tud@ddc@foot@num% - \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% +\newcommand*\tud@footcontent@@use[1]{% + \ifx\tud@footcontent@right\@nnil% + \vtop{% + \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% - \tud@if@v@lower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% - \fi% - }{}% } -\newif\if@tud@parameter@ps@font@set +\tud@newif\if@tud@parameter@ps@font@set \newcommand*\TUD@parameter@ps@def[1]{% \TUD@parameter@def{cdfont}[true]{% \TUDoption{cdfont}{#1}% @@ -6122,13 +6345,13 @@ \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% \expandafter\pagestyle\expandafter{\tud@envir@ps}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% \renewcommand*\partpagestyle{empty}% \renewcommand*\chapterpagestyle{empty}% \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% \renewcommand*\partpagestyle{empty.tudheadings}% \renewcommand*\chapterpagestyle{empty.tudheadings}% @@ -6169,11 +6392,12 @@ \TUD@parameter@def{language}{\selectlanguage{#1}}% \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{% - \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% + \tud@if@tudheadings{#1}{\def\tud@envir@ps{#1}}{% + \def\tud@envir@ps{tudheadings}% + \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{% + \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{% + \tud@if@strequal{#1}{headings}{}{% + \TUD@parameter@err{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% @@ -6189,7 +6413,7 @@ capabilities of package `scrlayer-scrpage' instead% }% ]{fancyhdr} -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cleardoublespecialpage[2][]{% \begingroup% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% @@ -6226,37 +6450,49 @@ }% \global\let\tud@clearcolor@wrn\relax% } -\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}}{}}}}% - }% - \begingroup - \tud@sec@fontsize% - \@tempskipa=\glueexpr% - .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - \relax\relax% +\newcommand*\tud@subtitle@fontsizecmd{\LARGE} +\newcommand*\tud@prefix@fontsizecmd{\huge} +\newcommand*\tud@sec@fontsizecmd{\Huge} +\newcommand*\tud@sec@baselineskip@@dim{} +\newcommand*\tud@sec@baselineskip@set{% + \begingroup% + \tud@sec@fontsizecmd% \edef\tud@res@a{% \endgroup% - \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + \unexpanded{\def\tud@sec@baselineskip@@dim}{% + \the\dimexpr\glueexpr\f@baselineskip\relax\relax% + }% }% \tud@res@a% } -\AtEndPreamble{\tud@x@scr@headings@set} +\tud@sec@baselineskip@set +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempb##1##2##3{% + \renewcommand*\tud@sec@fontsizecmd{##1}% + \renewcommand*\tud@prefix@fontsizecmd{##2}% + \renewcommand*\tud@subtitle@fontsizecmd{##3}% + \tud@sec@baselineskip@set% + #1% + }% + \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempc\do{% + \TUD@set@numkey{headings}{@tempa}{% + {standardclasses}{0},{big}{1},{normal}{2},{small}{3}% + }{\@tempc}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% standardclasses + \@tempb{\Huge} {\LARGE}{\Large}% + \or% big + \@tempb{\Huge} {\huge} {\LARGE}% + \or% normal + \@tempb{\huge} {\LARGE}{\Large}% + \or% small + \@tempb{\LARGE}{\Large}{\large}% + \fi% + \fi% + }% +} +\AfterEndPreamble{\tud@x@scr@headings@set} \newcommand*\tud@x@scr@headings@reset{% \tud@cd@process% \tud@x@scr@headings@set[% @@ -6278,15 +6514,25 @@ \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseriesforce{\tud@cdfont@ebf}% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% + \fi% + \fontseriesforce{\bfdefault}% + \fi% \selectfont% } \if@tud@cdoldfont@active @@ -6298,46 +6544,35 @@ \fi% }% \fi -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% } -\if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% - }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% - }% -\fi -\newrobustcmd*\tud@sec@strut{% +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]#3{% \begingroup% - \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% \endgroup% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} +\if@tud@cdoldfont@active + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% +\fi +\newcommand*\tud@part@hook{} +\let\tud@part@hook\relax +\AddtoDoHook{heading/begingroup/part}{\tud@part@hook} \newcommand*\tud@title@fontcolor{} \newcommand*\tud@part@fontcolor{} \newcommand*\tud@chapter@fontcolor{} @@ -6361,16 +6596,17 @@ \usekomafont{disposition}% \raggedtitle% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{subtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% - \sffamily% \usesizeofkomafont{section}% + \sffamily% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{author}{\usekomafont{subject}}% @@ -6378,6 +6614,7 @@ \tud@komafont@set{date}{\usekomafont{titlepage}}% \fi% \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{partlineswithprefixformat}% \tud@cs@restore{scr@part@beforeskip}% \tud@cs@restore{scr@part@innerskip}% \tud@cs@restore{scr@part@afterskip}% @@ -6385,17 +6622,19 @@ \tud@cs@restore{partheadendvskip}% \tud@cs@restore{partheademptypage}% \tud@cs@restore{partpagestyle}% - \tud@cs@restore{partlineswithprefixformat}% + \let\tud@part@hook\relax% \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% \tud@cs@restore{raggedpart}% \else% !false + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% - \renewcommand*\scr@part@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@@dim}% \tud@cs@store{scr@part@innerskip}% - \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@@dim}% \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% \tud@cs@store{partheadendvskip}% @@ -6404,51 +6643,51 @@ \let\partheademptypage\tud@partheademptypage% \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% - \tud@cs@store{partlineswithprefixformat}% - \let\partlineswithprefixformat\tud@partlineswithprefixformat% + \def\tud@part@hook{\let\setparsizes\@gobblefour}% \tud@komafont@set{part}{% \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% \tud@komafont@set{partnumber}{% \tud@sec@fontface% + \tud@prefix@fontsizecmd% \tud@color{\tud@part@fontcolor}% }% \tud@cs@store{raggedpart}% \renewcommand*\raggedpart{\tud@raggedright}% \fi% \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{scr@chapter@beforeskip}% \tud@cs@restore{scr@chapter@innerskip}% \tud@cs@restore{scr@chapter@afterskip}% \tud@cs@restore{chapterheadstartvskip}% - \tud@cs@restore{chapterlineswithprefixformat}% - \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{tud@chapter@before@hook}% \tud@cs@restore{tud@chapter@after@hook}% \tud@komafont@unset{chapter}% \tud@komafont@unset{chapterprefix}% \tud@cs@restore{raggedchapter}% \else% !false + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{scr@chapter@beforeskip}% - \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@@dim}% \tud@cs@store{scr@chapter@innerskip}% - \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@@dim}% \tud@cs@store{scr@chapter@afterskip}% - \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cs@store{chapterlineswithprefixformat}% - \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% - \tud@cs@store{chapterlinesformat}% - \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{tud@chapter@before@hook}% \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% \tud@cs@store{tud@chapter@after@hook}% \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% \tud@komafont@set{chapter}{% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@chapter@fontcolor}% }% \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% @@ -6493,12 +6732,12 @@ \renewcommand*\raggedsection{\tud@raggedright}% \tud@cs@store{minisec}% \renewcommand\minisec[1]{% - \tud@cs@use{minisec}{\tud@sec@format{##1}}% + \tud@cs@use{minisec}{\tud@sec@format*{##1}}% }% \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -6518,35 +6757,64 @@ \tud@komafont@unset{footnote}% \tud@cs@restore{footnoterule}% } -\newcommand*\tud@cd@beforeskip{% - \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +\newcommand*\tud@cd@beforevskip@@dim{% + \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innerskip{.25\baselineskip}% -\newcommand*\tud@cd@afterskip{% - .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +\newcommand*\tud@cd@innervskip@@dim{% + \dimexpr(\tud@sec@baselineskip@@dim)/5\relax% +}% +\newcommand*\tud@cd@aftervskip@@glue{% + \glueexpr + \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax + \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax + \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax + \relax } -\newcommand*\tud@cd@headstartvskip{% - \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% - \null\vskip-\baselineskip\vskip\@tempskipa% +\newcommand*\tud@cd@headstart@vskip{% + \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}% + \tud@length@setabsolute\@tempdima% + \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax% } \newcommand*\tud@cd@vphantom{% \begingroup% - \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \setlength\@tempskipa{\tud@cd@innerskip}% - \par\nobreak\vskip\@tempskipa% + \usekomafont{partnumber}{% + \tud@sec@format{\vskip\tud@cd@innervskip@@dim}% + }% \endgroup% } +\patchcmd\scr@startpart{% + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak +}{% + \ifcase\tud@cd@part@num\relax% false + \partheadstartvskip% + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \else% + {% + \setbox\z@\vbox{% + \vskip\dimexpr% + \tud@cd@innervskip@@dim-\tud@sec@baselineskip@@dim-\baselineskip% + \relax% + \use@preamble{#1@o}\strut\par% + }% + \vbox to \z@{\box\z@\vss}% + \vskip\dimexpr\parskip-\baselineskip\relax% + }% + \partheadstartvskip% + \fi% +}{}{\tud@patch@wrn{scr@startpart}} \newcommand*\tud@preamble@fontcolor{} \newcommand*\tud@partpreamble{% - \@tempskipa=\glueexpr\tud@cd@afterskip\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \tud@setglue\@tempskipa{\tud@cd@aftervskip@@glue}% + \tud@length@setabsolute\@tempskipa% \vskip\@tempskipa% \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% \let\tud@preamble@fontcolor\tud@part@fontcolor% @@ -6557,7 +6825,7 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% \if@tud@chapterpage% \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% @@ -6570,7 +6838,7 @@ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }% } -\patchcmd{\set@@@@preamble}{% +\patchcmd\set@@@@preamble{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% \def\@tempa####1@####2{% @@ -6586,24 +6854,30 @@ \newcommand*\tud@part@subtitle{} \newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}} \newkomafont{partsubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } \aliaskomafont{parttitle}{partsubtitle} \newcommand*\tud@chapter@subtitle{} \newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}} \newkomafont{chaptersubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@chapter@fontcolor}% } \newcommand*\tud@sec@subtitle[1]{% \ifcsvoid{tud@#1@subtitle}{}{% - {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + {\usekomafont{#1subtitle}{% + \vskip-1\parskip% + \tud@sec@format{\csuse{tud@#1@subtitle}}% + }}\par% \global\cslet{tud@#1@subtitle}{\@empty}% }% } +\AddtoDoHook{heading/preinit/part}{ + \TUD@deprecated@length\pageheadingsvskip% +} \newcommand*\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\or% litecolor @@ -6618,9 +6892,8 @@ \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% \tud@cd@specialpage@set{part}% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% } \newcommand*\tud@partheademptypage{% \tud@cleardoublespecialpage{% @@ -6646,6 +6919,7 @@ } \newcommand*\tud@partformat{}% \newcommand*\tud@partlineswithprefixformat[3]{% + \vskip-2\parskip% \if@tud@parttitle% \ifx\@@title\@empty% \ClassWarning{\TUD@Class@Name}{% @@ -6654,48 +6928,59 @@ }% \fi% \tud@cd@vphantom% - \tud@sec@format[#1]{% - \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + \usekomafont{#1}{% + \tud@sec@format{\nobreak\interlinepenalty\@M\@@title\strut\@@par}% }% - \setpartsubtitle{% - \setkomafont{part}{}% - \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% + \def\tud@partformat##1\nobreak\interlinepenalty\@M##2\strut\@@par##3\@nil{% + \def\tud@partformat{\IfUseNumber{\partformat\enskip}{}##2}% }% + \expandafter\expandafter\expandafter\tud@partformat% + \expandafter\@firstofone\@gobbletwo#3\@nil% + \expandafter\setpartsubtitle\expandafter{\tud@partformat}% \else% \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% \let\partformat\tud@partformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \fi% \tud@sec@subtitle{#1}% } +\if@tud@cdoldfont@active + \patchcmd\tud@partlineswithprefixformat + {#2\tud@sec@format[{#1}]{#3}} + {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3} + {}{\tud@patch@wrn{tud@partlineswithprefixformat}} +\fi +\AddtoDoHook{heading/preinit/chapter}{ + \if@tud@chapterpage% + \TUD@deprecated@length\pageheadingsvskip% + \else% + \TUD@deprecated@length\headingsvskip% + \fi% +} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% \if@tud@chapterpage% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \else% - \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \fi% } \newcommand*\tud@chapterformat{}% \newcommand*\tud@chapterlineswithprefixformat[3]{% - \edef\tud@chapterformat{% - \noexpand\tud@sec@format{\expandonce\chapterformat}% - }% + \edef\tud@chapterformat{\noexpand\tud@sec@format{\expandonce\chapterformat}}% \let\chapterformat\tud@chapterformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \tud@sec@subtitle{#1}% } \newcommand*\tud@chapterlinesformat[3]{% \tud@cd@vphantom% - \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \@hangfrom{#2}{\tud@sec@format[{#1}]{#3}}% \tud@sec@subtitle{#1}% } \newcommand*\tud@chapter@pre{% @@ -6757,34 +7042,33 @@ } \newcommand*\tud@chapter@before@hook{} \newcommand*\tud@chapter@after@hook{} -\pretocmd{\scr@startchapter}{% +\pretocmd\scr@startchapter{% \tud@chapter@before@hook% }{}{\tud@patch@wrn{scr@startchapter}} -\apptocmd{\scr@@startchapter}{% +\apptocmd\scr@@startchapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startchapter}} -\apptocmd{\scr@@startschapter}{% +\apptocmd\scr@@startschapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startschapter}} \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% } \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}% } \newcommand*\tud@sectioncatchphraseformat[4]{% - \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[#1]{#4}% + \hskip #2#3\tud@sec@format*[{#1}]{#4}% } -%%% From File: tudscr-title.dtx +%%%% From File: tudscr-title.dtx (no git version info was found) \newkomafont{thesis}{% \usekomafont{title}% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% } \newkomafont{titlepage}{% \raggedtitle% @@ -6798,6 +7082,8 @@ \newcommand*\tud@title@pagenumber{} \let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% + \TUD@deprecated@length\pageheadingsvskip% + \TUD@deprecated@length\headingsvskip% \begingroup% \cleardoublepage% \TUD@parameter@set{title}{#1}% @@ -6811,7 +7097,9 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \tud@if@strequal{\titlepagestyle}{empty}% + {\thispagestyle{empty.tudheadings}}% + {}% }{}% \else% !false \if@tud@parameter@ps@font@set\else% @@ -6845,7 +7133,9 @@ } \tud@cs@store{maketitle} \let\maketitle\tud@maketitle -\patchcmd{\titlepage}{\thispagestyle{empty}}{% +\patchcmd\titlepage{% + \thispagestyle{empty}% +}{% \tud@if@tudheadings{\currentpagestyle}{% \thispagestyle{empty.tudheadings}% }{% @@ -6915,19 +7205,18 @@ \fi% \next@tdpage% \fi% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% @@ -6950,7 +7239,7 @@ \def\@tempc{% \@graduation% \ifx\@graduationabbreviation\@empty\else% - \nobreakspace\@graduationabbreviation% + \nobreakspace(\@graduationabbreviation)% \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% @@ -6970,10 +7259,10 @@ \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + \tud@if@strblank{\datetext}{}{\datetext\tud@title@delimiter}% {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifxblank{\defensedatetext}{}{% + \tud@if@strblank{\defensedatetext}{}{% \defensedatetext\tud@title@delimiter% }% {\usekomafont{date}{\@defensedate\par}}% @@ -6982,7 +7271,7 @@ \fi% \if@tud@titlesignature% \let\tud@split@@author@do\tud@split@author@signature% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \tud@ifin@and{\@@author}{}{\hfill}% \tud@multiple@split{@@author}% \fi% @@ -7060,7 +7349,9 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {}% + {\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -7084,7 +7375,7 @@ \ifx\@extratitle\@empty% \ifx\@frontispiece\@empty\else% \if@twoside\null\fi% - \fi + \fi% \else% \tud@res@a{\@makeextratitle}% \fi% @@ -7100,9 +7391,9 @@ } \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% @@ -7111,11 +7402,10 @@ \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% - \vskip 2\bigskipamount% + \vskip\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \ifx\@date\@empty\else% @@ -7135,11 +7425,9 @@ \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% + \vskip\bigskipamount% \ifnum\col@number>\@ne\relax% - \ifdefvoid{\multicolsep}{}{% - \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% - }% + \tud@if@lengthregister{\multicolsep}{\vspace{-\multicolsep}}{}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% }}% @@ -7147,43 +7435,27 @@ \newcommand*\tud@maketitle@head{% \setbox\z@\vbox{% \ifx\@titlehead\@empty\else% - {\usekomafont{titlehead}{% - \begin{minipage}[t]{\textwidth}% - \@titlehead\tud@sec@strut% - \end{minipage}% - }}% + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\strut\par}% + \end{minipage}% \fi% \tud@thesis@tosubject% \ifx\@subject\@empty\else% \par\medskip% - {\usekomafont{subject}{% - \@subject\tud@sec@strut% - }}% + {\usekomafont{subject}{\tud@sec@format[partnumber]{\@subject}}}% \fi% }% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% - \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% + \vskip\dimexpr-\@tempdima-\p@-1\medskipamount\relax% \usebox\z@\par\medskip% \fi% } -\newcommand*\tud@title@format[1]{% +\newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% - \let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@sec@format{#1}% - \edef\tud@res@a{% - \endgroup% - \ifx\tud@thanks\relax\else% - \noexpand\thanks{\expandonce\tud@thanks}% - \fi% - }% - \tud@res@a% + \tud@sec@format[{#1}]{#2}% + \endgroup% } \newcommand*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -7234,7 +7506,9 @@ \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% - \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \tud@if@strblank{\dateofbirthtext}% + {}% + {\dateofbirthtext\tud@title@delimiter}% \@dateofbirth% \ifx\@placeofbirth\@empty\else% \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% @@ -7244,15 +7518,17 @@ \fi% \fi% \def\@tempc##1{% - \ifstr{\csuse{@##1}}{}{}{% + \expandafter\ifx\csname @##1\endcsname\@empty\else% \if@titlepage% \tud@newline@title% - \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \tud@if@strblank{\csuse{##1name}}% + {}% + {\csuse{##1name}\tud@title@delimiter}% \csuse{@##1}% \else% \tud@title@wrn{##1}% \fi% - }% + \fi% }% \@tempc{course}% \@tempc{discipline}% @@ -7271,9 +7547,9 @@ \newcommand*\tud@split@author@signature[2]{% \tud@multiple@fields@store{@author}{#1}% \vbox{% - \hsize=.3\textwidth% + \hsize=\dimexpr\textwidth*3/10\relax% \centering% - \rule{.3\textwidth}{.05pt}\newline% + \rule{\dimexpr\textwidth*3/10\relax}{.05pt}\newline% \ignorespaces#1\strut\unskip% }% \tud@multiple@fields@restore{@author}% @@ -7282,15 +7558,16 @@ \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \tud@maketitle[#1]% - \onecolumn{#2}\twocolumn% + \tud@maketitle[{#1}]% + \onecolumn#2\twocolumn% \else% - \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[{#1}]#2}% \fi% \else% \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% - }{}% + }{You should use `\string\maketitle' instead.}% + \tud@maketitle[{#1}]#2% \fi% } \newsavebox\tud@title@box @@ -7300,14 +7577,14 @@ \let\clearpage\relax% \let\newpage\relax% \global\setbox\tud@title@box\vbox{% - \vspace*{.9\baselineskip}#1\bigskip% + \vspace*{\dimexpr1\baselineskip*9/10\relax}#1\bigskip% }% \endgroup% - \setlength\@tempdima{\textheight}% + \tud@setdim\@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}% + \tud@setdim\@tempdima{\textheight-\tud@dim@ddcdiff}% \@tempswatrue% \fi% }{}% @@ -7317,7 +7594,7 @@ \splitmaxdepth\maxdepth% \vsplit\tud@title@box to \@tempdima% \clearpage% - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% \else% @@ -7330,13 +7607,13 @@ 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% + use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } -\newif\if@tud@coverpage +\tud@newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -7373,23 +7650,22 @@ \if@tud@cdgeometry@cover% \if@tud@coverpage% \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% }% \else% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagetopmargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagetopmargin{\tud@len@slimmargin}% + \def\coverpagetopmargin{\tud@dim@slimmargin}% }% \fi% \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% + \def\coverpagebottommargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagebottommargin{\tud@len@widemargin}% + \def\coverpagebottommargin{\tud@dim@widemargin}% }% - \def\coverpageleftmargin{\tud@len@widemargin}% - \def\coverpagerightmargin{\tud@len@slimmargin}% + \def\coverpageleftmargin{\tud@dim@widemargin}% + \def\coverpagerightmargin{\tud@dim@slimmargin}% \fi% \if@tud@coverpage% \edef\titlepage@restore{% @@ -7402,7 +7678,7 @@ }% \begingroup% \tud@cover@setmargins% - \tud@len@areavskip=\z@% + \tud@setdim\tud@dim@areavskip{\z@}% \tud@maketitle% \clearpage% \titlepage@restore% @@ -7433,41 +7709,37 @@ \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } -\renewcommand*{\coverpagetopmargin}{% +\renewcommand*\coverpagetopmargin{% \if@tud@coverpage% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% \else% - \dimexpr\topmargin+1in\relax% + \topmargin+1in% \fi% } -\renewcommand*{\coverpagebottommargin}{% +\renewcommand*\coverpagebottommargin{% \if@tud@coverpage% - \dimexpr\tud@len@widemargin\relax% + \tud@dim@widemargin% \else% - 2\dimexpr\coverpagetopmargin\relax% + \coverpagetopmargin*2% \fi% } \newcommand*\tud@cover@fixmargins{% \begingroup% \tud@cdgeometry@assignlayout% \tud@x@geometry@fixmargins% - \setlength\@tempdima{% - \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset - +\paperheight-\tud@len@layoutheight\relax% + \tud@setdim\@tempdima{% + \coverpagebottommargin-\tud@dim@layoutvoffset% + +\paperheight-\tud@dim@layoutheight% }% \edef\coverpagebottommargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% - }% + \tud@setdim\@tempdima{\coverpagetopmargin+\tud@dim@layoutvoffset}% \edef\coverpagetopmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagerightmargin-\tud@len@layouthoffset - +\paperwidth-\tud@len@layoutwidth\relax% + \tud@setdim\@tempdima{% + \coverpagerightmargin-\tud@dim@layouthoffset% + +\paperwidth-\tud@dim@layoutwidth% }% \edef\coverpagerightmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% - }% + \tud@setdim\@tempdima{\coverpageleftmargin+\tud@dim@layouthoffset}% \edef\coverpageleftmargin{\the\@tempdima}% \edef\tud@res@a{% \endgroup% @@ -7489,7 +7761,7 @@ -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\baselineskip% + \footskip=1\baselineskip% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% @@ -7497,10 +7769,10 @@ \hsize=\columnwidth% \linewidth=\hsize% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifnum\csuse{tud@#1@level@num}<3\relax% false/true/section \ifboolexpr{% bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% }{% @@ -7519,10 +7791,10 @@ \boolfalse{@tud@#1@fil}% \fi% }{}% - }{% chapter + \else% chapter \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% - }% + \fi% \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% \tud@fm@toc{#1}{#2}% \fi% @@ -7530,26 +7802,27 @@ #2% } \newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} \newcommand*\tud@fm@toc[2]{% \ifbool{@tud@#1@multi}{% \begingroup% - \let\tud@fm@@@toc\@empty% + \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/}% + \protected@xdef\tud@fm@@toc{% + \ifx\tud@fm@@toc\@empty\else\tud@fm@@toc/\fi##2% + }% }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% \csuse{phantomsection}% \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% - \noexpand\addchaptertocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }% + \endgroup% + \ifx\tud@fm@@toc\@empty\else% + \ifodd\csuse{tud@#1@toc@num}\relax + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + \else + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + \fi + \fi% }% \@tempa% }{% @@ -7626,19 +7899,20 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + \vskip\smallskipamount% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount% \fi% + \vskip-\parskip% }% \or% true \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% + \vskip\bigskipamount\vskip-\parskip% }% \begingroup% \noindent\centering% @@ -7647,7 +7921,7 @@ \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% + \vskip\medskipamount\vskip-\parskip% \@afterheading% \or% section \section*{#2}% @@ -7716,7 +7990,7 @@ \clearpage% \else% \ifnum\tud@abstract@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7725,7 +7999,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7746,7 +8020,7 @@ the environment `abstract'.% }% } -\newif\if@tud@declarations +\tud@newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter @@ -7775,7 +8049,7 @@ \clearpage% \else% \ifnum\tud@declaration@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7784,7 +8058,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7815,29 +8089,29 @@ }% } \newcommand*\tud@fm@declaration[1][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \begingroup% - \tud@fm@@confirmation[\tud@fm@supporter,#1]% - \tud@fm@blocking[#1]% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \tud@fm@blocking[{#1}]% \endgroup% - }{% - \begin{declarations}[\tud@fm@supporter,#1]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \tud@fm@blocking% \end{declarations}% - }% + \fi% } \newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \tud@fm@body@start{declaration}{#1}{#2}% #3% \tud@fm@body@end{declaration}% - }{% + \else% \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% The command `\string\nextdeclaration' can only be used\MessageBreak% within the environment `declarations'.% }% - }% + \fi% } \newcommand*\confirmation{% \kernel@ifstar{% @@ -7852,18 +8126,18 @@ \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]% + \if@tud@declarations% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@@confirmation[1][]{% \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% + \confirmationtext\vskip\z@skip\@confirmationclosing% \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% @@ -7872,13 +8146,13 @@ \undef\KV@declaration@supporter% \undef\KV@declaration@closing% \undef\KV@declaration@confirmationclosing% - \ifbool{@tud@declarations}{% - \tud@fm@blocking[#1]% - }{% - \begin{declarations}[#1]% + \if@tud@declarations% + \tud@fm@blocking[{#1}]% + \else% + \begin{declarations}[{#1}]% \tud@fm@blocking% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@blocking[1][]{% @@ -7886,76 +8160,15 @@ \blockingtext% \tud@fm@body@end{declaration}% } -%%% From File: tudscr-comp.dtx -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} -\newlength\pageheadingsvskip -\setlength\pageheadingsvskip{\maxdimen} -\newlength\headingsvskip -\setlength\headingsvskip{\maxdimen} -\newcommand*\chapterheadingvskip{} -\let\chapterheadingvskip\headingsvskip -\TUD@deprecated@cs{professorship}{chair} -\TUD@deprecated@cs{studentid}{matriculationnumber} -\TUD@deprecated@cs{matriculationid}{matriculationnumber} -\TUD@deprecated@cs{enrolmentyear}{matriculationyear} -\TUD@deprecated@cs{birthplace}{placeofbirth} -\TUD@deprecated@cs{submissiondate}{date} -\TUD@deprecated@cs{oralexaminationdate}{defensedate} -\TUD@deprecated@cs{birthday}{dateofbirth} -\TUD@deprecated@cs{location}{place} -\TUD@deprecated@cs{logofile}{headlogo} -\TUD@deprecated@cs{logofilename}{headlogo} -\AfterPackage{tudscrsupervisor}{% - \TUD@deprecated@cs{startdate}{issuedate}% - \TUD@deprecated@cs{finaldate}{duedate}% - \TUD@deprecated@cs{maturitydate}{duedate}% -} -\TUD@deprecated@cs{textcdfont}{textcd}% -\TUD@deprecated@cs{tudfont}{cdfont}% -\TUD@deprecated@cs{univln}{cdfontln}% -\TUD@deprecated@cs{univrn}{cdfontrn}% -\TUD@deprecated@cs{univbn}{cdfontsn}% -\TUD@deprecated@cs{univxn}{cdfontbn}% -\TUD@deprecated@cs{univls}{cdfontli}% -\TUD@deprecated@cs{univrs}{cdfontri}% -\TUD@deprecated@cs{univbs}{cdfontsi}% -\TUD@deprecated@cs{univxs}{cdfontbi}% -\TUD@deprecated@cs{textuln}{textcdln}% -\TUD@deprecated@cs{texturn}{textcdrn}% -\TUD@deprecated@cs{textubn}{textcdsn}% -\TUD@deprecated@cs{textuxn}{textcdbn}% -\TUD@deprecated@cs{textuls}{textcdli}% -\TUD@deprecated@cs{texturs}{textcdri}% -\TUD@deprecated@cs{textubs}{textcdsi}% -\TUD@deprecated@cs{textuxs}{textcdbi}% -\TUD@deprecated@cs{dinbn}{cdfontxn}% -\TUD@deprecated@cs{textdbn}{textcdxn}% -\TUD@deprecated@cs{ifdin}{@secondoftwo} -\newrobustcmd*\tud@ifdin{% - \ifx\f@family\tud@cdfont@db% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -\if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% -\fi -\def\tud@res@a#1{% - \TUD@deprecated@cs{var#1}{it#1}% -} -\tud@math@loop@greeks@uc\tud@res@a% -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% - \renewcommand*\tudbookmark[3][]{% + \renewcommand*\tudbookmark[3][0]{% \relax% \if@tud@bookmarks% - \phantomsection% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \csuse{phantomsection}% + \pdfbookmark[{#1}]{#2}{#3}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -7964,7 +8177,6 @@ \let\@footnotemark\H@@footnotemark% \let\@footnotetext\H@@footnotetext% }% - \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } \newcommand*\tud@x@bookmark@startatroot{\relax} \AfterPackage{bookmark}{% @@ -7972,7 +8184,7 @@ \if@tud@bookmarks\bookmarksetup{startatroot}\fi% }% } -\apptocmd{\titlepage}{% +\apptocmd\titlepage{% \tud@x@bookmark@startatroot% \@tud@res@swafalse% \if@tud@coverpage\@tud@res@swatrue\fi% @@ -7987,13 +8199,13 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\pretocmd{\tud@maketitle@inpage}{% +\pretocmd\tud@maketitle@inpage{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% ]{\titlename}{title}% }{}{\tud@patch@wrn{tud@maketitle@inpage}} -\pretocmd{\@maketitle}{% +\pretocmd\@maketitle{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% @@ -8020,10 +8232,10 @@ \AtBeginDocument{% \if@tud@x@scr@fontsize@set\else% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight>299mm\relax\@tud@res@swatrue\fi% \if@tud@res@swa% \ClassWarningNoLine{\TUD@Class@Name}{% You've set a layout size, which is different from\MessageBreak% @@ -8034,22 +8246,22 @@ \fi% \fi% } -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@cd@process -\newif\if@tud@cdgeometry@process +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@relspacing@set +\tud@newif\if@tud@x@scr@headings@reset +\tud@newif\if@tud@cd@process +\tud@newif\if@tud@cdgeometry@process \newcommand*\tud@atdocument@process{% \if@tud@font@set% \tud@font@set% \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% + \global\@tud@relspacing@setfalse% \global\@tud@cd@processfalse% \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% \fi% \if@tud@math@set% \tud@math@set% @@ -8069,22 +8281,67 @@ \global\@tud@cdgeometry@processfalse% \fi% } +%%%% From File: tudscr-comp.dtx (no git version info was found) +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} +\tud@newglue\pageheadingsvskip +\tud@setdim\pageheadingsvskip{\maxdimen} +\tud@newglue\headingsvskip +\tud@setdim\headingsvskip{\maxdimen} +\newcommand*\chapterheadingvskip{} +\let\chapterheadingvskip\headingsvskip +\TUD@deprecated@cs{professorship}{chair} +\TUD@deprecated@cs{studentid}{matriculationnumber} +\TUD@deprecated@cs{matriculationid}{matriculationnumber} +\TUD@deprecated@cs{enrolmentyear}{matriculationyear} +\TUD@deprecated@cs{birthplace}{placeofbirth} +\TUD@deprecated@cs{submissiondate}{date} +\TUD@deprecated@cs{oralexaminationdate}{defensedate} +\TUD@deprecated@cs{birthday}{dateofbirth} +\TUD@deprecated@cs{location}{place} +\TUD@deprecated@cs{logofile}{headlogo} +\TUD@deprecated@cs{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \TUD@deprecated@cs{startdate}{issuedate}% + \TUD@deprecated@cs{finaldate}{duedate}% + \TUD@deprecated@cs{maturitydate}{duedate}% +} +\TUD@deprecated@cs{textcdfont}{textcd}% +\TUD@deprecated@cs{tudfont}{cdfont}% +\TUD@deprecated@cs{univln}{cdfontln}% +\TUD@deprecated@cs{univrn}{cdfontrn}% +\TUD@deprecated@cs{univbn}{cdfontsn}% +\TUD@deprecated@cs{univxn}{cdfontbn}% +\TUD@deprecated@cs{univls}{cdfontli}% +\TUD@deprecated@cs{univrs}{cdfontri}% +\TUD@deprecated@cs{univbs}{cdfontsi}% +\TUD@deprecated@cs{univxs}{cdfontbi}% +\TUD@deprecated@cs{textuln}{textcdln}% +\TUD@deprecated@cs{texturn}{textcdrn}% +\TUD@deprecated@cs{textubn}{textcdsn}% +\TUD@deprecated@cs{textuxn}{textcdbn}% +\TUD@deprecated@cs{textuls}{textcdli}% +\TUD@deprecated@cs{texturs}{textcdri}% +\TUD@deprecated@cs{textubs}{textcdsi}% +\TUD@deprecated@cs{textuxs}{textcdbi}% +\TUD@deprecated@cs{dinbn}{cdfontxn}% +\TUD@deprecated@cs{textdbn}{textcdxn}% +\TUD@deprecated@cs{ifdin}{@secondoftwo} +\newrobustcmd*\tud@ifdin{% + \ifx\f@family\tud@cdfont@db% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} \if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} +\def\tud@res@a#1{% + \TUD@deprecated@cs{var#1}{it#1}% +} +\tud@math@loop@greeks@uc\tud@res@a% \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 06b4320a364..36d9ef4bf1c 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty @@ -4,14 +4,15 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,color') +%% tudscr-version.dtx (with options: `package,color,identify') %% tudscr-color.dtx (with options: `package,color') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -27,54 +28,57 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-color.dtx +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +%%%% From File: tudscr-color.dtx (no git version info was found) \ProvidesPackage{tudscrcolor}[% - 2021/07/15 v2.06n TUD-Script - package - (corporate design colors)% + 2022/08/09 v2.06o TUD-Script + package (corporate design colors)% ] \DeclareOption{newcolors}{\let\tud@setcolors@add\relax} \DeclareOption{reduced}{\let\tud@setcolors@add\relax} \DeclareOption{oldcolors}{\let\tud@setcolors@add\tud@setcolors@old} +\DeclareOption{extended}{\let\tud@setcolors@add\tud@setcolors@old} \DeclareOption{full}{\let\tud@setcolors@add\tud@setcolors@old} \newcommand*\setcdcolors[1]{% \selectcolormodel{#1}% @@ -119,171 +123,25 @@ } \newcommand*\tud@setcolors@add{} \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}% + \def\tud@res@a##1{% + \@for\tud@res@b:={10,20,30,40,50,60,70,80,90,100}\do{% + \colorlet{##1K\tud@res@b}{##1!\tud@res@b}% + \colorlet{##1-\tud@res@b}{##1!\tud@res@b}% + }% + }% + \tud@res@a{HKS41}% + \tud@res@a{HKS92}% + \tud@res@a{HKS44}% + \tud@res@a{HKS36}% + \tud@res@a{HKS33}% + \tud@res@a{HKS57}% + \tud@res@a{HKS65}% + \tud@res@a{HKS07}% } \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} \ExecuteOptions{reduced} \ProcessOptions\relax -\RequirePackage{xcolor}[2007/01/21] +\RequirePackage{xcolor} \tud@setcolors@do% \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty deleted file mode 100644 index 7265c422432..00000000000 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-book.sty +++ /dev/null @@ -1,198 +0,0 @@ -%% -%% 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-Script -- Corporate Design of Technische Universitaet Dresden -%% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 -%% -%% This file was generated from file(s) of the TUD-Script bundle. -%% ---------------------------------------------------------------------------- -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, either version 1.3c of this license or -%% any later version. 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 version 2008-05-04 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% The current maintainer and author of this work is 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.32}% - } - \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-Script-Bundle versions% - }% - \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} -\endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\ifx\TUD@Class@Name\@undefined - \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% -\fi -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-comp.dtx -\ProvidesPackage{tudscrcomp-book}[% - 2021/07/15 v2.06n TUD-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*{\expandafter\TUDoptions\expandafter{\CurrentOption}} -\TUDExecuteOptions{% -} -\TUDProcessOptions\relax -%%% From File: tudscr-comp.dtx -\newcommand*\einrichtung{\faculty} -\newcommand*\fachrichtung{\department} -\newcommand*\institut{\institute} -\newcommand*\professur{\chair} -\newcommand*\dinBold{\dinbn} -\newcommand*\dinfamily{\dinbn} -\newcommand*\moreauthor{\authormore} -\newcommand*\submitdate{\date} -\newcommand*\supervisorII[1]{\g@addto@macro\@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{% - \if@tud@comp@chapterpage% - \if@tud@chapterpage% - \TUDoptions{chapterpage=false}% - \else% - \TUDoptions{chapterpage=true}% - \fi% - \fi% -} -\newcommand*\tud@comp@chapterpage@unset{% - \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@pre}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@chapter@pre}}% - \apptocmd{\tud@chapter@app}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@chapter@app}}% - \fi% -} -\endinput -%% -%% 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 deleted file mode 100644 index 6f28d71b4b9..00000000000 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp-poster.sty +++ /dev/null @@ -1,353 +0,0 @@ -%% -%% 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-Script -- Corporate Design of Technische Universitaet Dresden -%% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 -%% -%% This file was generated from file(s) of the TUD-Script bundle. -%% ---------------------------------------------------------------------------- -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, either version 1.3c of this license or -%% any later version. 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 version 2008-05-04 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% The current maintainer and author of this work is 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.32}% - } - \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-Script-Bundle versions% - }% - \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} -\endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\ifx\TUD@Class@Name\@undefined - \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% -\fi -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-comp.dtx -\ProvidesPackage{tudscrcomp-poster}[% - 2021/07/15 v2.06n TUD-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{backcolor=true}% - \else% - \TUDoptions{backcolor=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*{\expandafter\TUDoptions\expandafter{\CurrentOption}} -\TUDExecuteOptions{% -} -\TUDProcessOptions\relax -%%% From File: tudscr-comp.dtx -\newcommand*\einrichtung{\faculty} -\newcommand*\fachrichtung{\department} -\newcommand*\institut{\institute} -\newcommand*\professur{\chair} -\newcommand*\dinBold{\dinbn} -\newcommand*\dinfamily{\dinbn} -\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'% - }% -} -\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} -\let\c@topsection\c@section -\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} -\let\c@topsubsection\c@subsection -\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@cs@store{raggedsection}% - \let\raggedsection\centering% - \ifx#2\@nil\relax% - \csuse{#1}{#3}% - \else% - \csuse{#1}[#2]{#3}% - \fi% - \tud@cs@restore{raggedsection}% -} -\newcommand\sectiontopskip{\scr@section@beforeskip} -\newcommand\subsectiontopskip{\scr@subsection@beforeskip} -\setcounter{secnumdepth}{\m@ne} -\newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} -\newcommand*\footcolumn[2]{% - \ifnumber{#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}{}{% - \ifisdimension{\schnittrand}{% - \edef\@tempa{% - paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% - paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% - layout=\the\paperwidth:\the\paperheight,% - layoutoffset=\the\dimexpr\schnittrand\relax,% - showcrop% - }% - \expandafter\geometry\expandafter{\@tempa}% - }{% - \PackageErrorNoLine{tudscrcomp}{% - 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 b2890d7f443..54966933eac 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty @@ -4,14 +4,18 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,comp,base') -%% tudscr-comp.dtx (with options: `package,comp,base,identify') +%% tudscr-version.dtx (with options: `package,comp,identify') +%% tudscr-comp.dtx (with options: `package,comp,identify') +%% tudscr-comp.dtx (with options: `package,comp,option') +%% tudscr-misc.dtx (with options: `package,comp,execute') +%% tudscr-comp.dtx (with options: `package,comp,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -27,65 +31,447 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\ifx\TUD@Class@Name\@undefined - \PackageError{% - tudscrcomp% - }{Unsupported class found}{% - This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% - }% - \endinput% -\fi \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-comp.dtx -\ProvidesPackage{tudscrcomp}[% - 2021/07/15 v2.06n TUD-Script +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\providecommand*\TUD@Class@Check[1]{% + \ifx\TUD@Class@Name\@undefined% + \PackageError{#1}{TUD-Script class not loaded}{% + This package requires a class of the TUD-Script bundle\MessageBreak% + (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \DeclareOption*{}% + \ProcessOptions\relax% + \expandafter\endinput% + \fi% +}% +%%%% From File: tudscr-comp.dtx (no git version info was found) +\ProvidesPackage{tudscrcomp}% +[% + 2022/08/09 v2.06o TUD-Script package (compatibility for old tud(scr) classes)% ] -\PassOptionsToPackage{oldcolors}{tudscrcolor} +\TUD@Class@Check{tudscrcomp} +\@tud@res@swafalse% +\newcommand*\tud@comp@on@main@class{\@gobble} +\@tfor\tud@res@a:={tudscrbook}{tudscrreprt}{tudscrartcl}\do{% + \@ifclassloaded{\tud@res@a}{\@tud@res@swatrue}{}% + \if@tud@res@swa% + \renewcommand*\tud@comp@on@main@class{\@firstofone}% + \@break@tfor% + \fi% +}% +\newcommand*\tud@comp@on@poster@class{\@gobble} \@ifclassloaded{tudscrposter}{% - \RequirePackageWithOptions{tudscrcomp-poster}[\TUD@Version]% + \renewcommand*\tud@comp@on@poster@class{\@firstofone}% +}{}% +%%%% From File: tudscr-comp.dtx (no git version info was found) +\PassOptionsToPackage{extended}{tudscrcolor} +\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% +} +\tud@comp@on@poster@class{% +\tud@newif\if@tud@comp@loadpackages +\TUD@key{loadpackages}[true]{% + \TUD@set@ifkey{loadpackages}{@tud@comp@loadpackages}{#1}% +} +\AtEndPreamble{\TUD@key@toolate{loadpackages}} +} +\tud@comp@on@poster@class{% +\TUD@key{bluebg}[true]{% + \TUD@set@ifkey{bluebg}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{backcolor=true}% + \else% + \TUDoptions{backcolor=false}% + \fi% + \fi% +} +} +\tud@comp@on@poster@class{% +\PassOptionsToPackage{table}{xcolor} +} +\tud@comp@on@poster@class{% +\newcommand*\tud@cropmargin@set{}% +\preto\tud@cdgeometry@@init{\tud@cropmargin@set}% +\TUD@key{cropmargin}[5mm]{% + \TUD@set@dimkey[mm]{cropmargin}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \edef\tud@cropmargin@set{% + \noexpand\geometry{% + papersize={% + \the\dimexpr(\@tempa)*2+\paperwidth\relax,% + \the\dimexpr(\@tempa)*2+\paperheight\relax% + },% + layoutsize={\the\paperwidth,\the\paperheight},% + layoutoffset=\the\dimexpr\@tempa\relax,% + showcrop% + }% + }% + \fi% +} +\AtEndPreamble{\TUD@key@toolate{cropmargin}}% +\preto\tud@cdgeometry@init{% + \ifundef{\schnittrand}{}{% + \TUDoptions{cropmargin=\schnittrand}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed\else% + \PackageErrorNoLine{tudscrcomp}{% + Wrong definition for `\string\schnittrand'% + }{% + The definition of `\string\schnittrand' does not expand\MessageBreak% + to a valid dimension expression.% + }% + \fi% + }% +} +} +\tud@comp@on@poster@class{% +\tud@newif\if@tud@mathfoot +\TUD@key{tudmathfoot}[true]{% + \TUD@set@ifkey{tudmathfoot}{@tud@mathfoot}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@mathfoot% + \footcontent[\small]{% + \tud@footcontent@@left{}% + }[% + \tud@footcontent@@right{}{}% + ]% + \else% + \footcontent{% + \tud@footcontent@@left{\contactname}% + }[% + \tud@footcontent@@right{\authorname}{\contactpersonname}% + ]% + \fi% + \fi% +} +\TUD@key{tudmathposterfoot}[true]{\TUDoptions{tudmathfoot=#1}}% +\TUD@key{cdfoot}{% + \TUD@set@numkey{cdfoot}{@tempa}{% + {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{tudscr}{0},% + {tudmathposter}{1},{tudmathfoot}{1},{tudmathposterfoot}{1},{tudmath}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% tudscrposter + \TUDoptions{tudmathfoot=false}% + \else% tudmathposter + \TUDoptions{tudmathfoot=true}% + \fi% + \fi% +} +} +%%%% From File: tudscr-misc.dtx (no git version info was found) +\TUDExecuteOptions{% +} +\DeclareOption*{\expandafter\TUDoptions\expandafter{\CurrentOption}} +\TUDProcessOptions\relax +%%%% From File: tudscr-comp.dtx (no git version info was found) +\newcommand*\einrichtung{\faculty} +\newcommand*\fachrichtung{\department} +\newcommand*\institut{\institute} +\newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} +\newcommand*\tudfont{\cdfont} +\newcommand*\dinBold{\dinbn} +\newcommand*\dinfamily{\dinbn} +\tud@comp@on@main@class{% +\newcommand*\submitdate{\date} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} +\newcommand*\supervisorII[1]{\g@addto@macro\@supervisor{\and\space#1}} +\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} +\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} +\newcommand*\dissertation{% + \thesis{\dissertationname}% + \let\supervisorname\refereename% + \let\supervisorothername\refereeothername% +} +\tud@newif\if@tud@comp@chapterpage +\newcommand*\chapterpage{% + \global\@tud@comp@chapterpagetrue% + \tud@comp@chapterpage@wrn% +} +\newcommand*\tud@comp@chapterpage@set{% + \if@tud@comp@chapterpage% + \if@tud@chapterpage% + \TUDoptions{chapterpage=false}% + \else% + \TUDoptions{chapterpage=true}% + \fi% + \fi% +} +\newcommand*\tud@comp@chapterpage@unset{% + \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{% + \ifundef{\if@chapter}{% + \newif\if@chapter% + \ifundef{\chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \if@chapter% + \pretocmd\tud@chapter@pre{% + \tud@comp@chapterpage@set% + }{}{\tud@patch@wrn{tud@chapter@pre}}% + \apptocmd\tud@chapter@app{% + \tud@comp@chapterpage@unset% + }{}{\tud@patch@wrn{tud@chapter@app}}% + \else% + \renewcommand*\tud@comp@chapterpage@wrn{% + \PackageWarning{tudscrcomp}{% + The command `\string\chapterpage'\space is not\MessageBreak% + active as the used document class does not provide\MessageBreak% + any chapters via `\string\chapter'% + }% + \global\let\tud@comp@chapterpage@wrn\relax% + }% + \fi% +} +\AfterEndPreamble{% + \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}% + }{}% +} +} +\tud@comp@on@poster@class{% +\AtEndPreamble{% + \if@tud@comp@loadpackages% + \RequirePackage{calc} + \RequirePackage{textcomp} + \RequirePackage{tabularx} + \fi% +} +} +\tud@comp@on@poster@class{% +\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'% + }% +} +\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} +\let\c@topsection\c@section +\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} +\let\c@topsubsection\c@subsection +\NewDocumentCommand\centersection{o m}{% + \tud@comp@centersection{section}{#1}{#2}% +} +\NewDocumentCommand\centersubsection{o m}{% + \tud@comp@centersection{subsection}{#1}{#2}% +} +\NewDocumentCommand\topcentersection{o m}{% + \tud@comp@centersection{topsection}{#1}{#2}% +} +\NewDocumentCommand\topcentersubsection{o m}{% + \tud@comp@centersection{topsubsection}{#1}{#2}% +} +\newcommand*\tud@comp@centersection[3]{% + \tud@cs@store{raggedsection}% + \let\raggedsection\centering% + \IfValueTF{#2}{% + \csuse{#1}[{#2}]{#3}% + }{% + \csuse{#1}{#3}% + } + \tud@cs@restore{raggedsection}% +} +\newcommand\sectiontopskip{\scr@section@beforeskip} +\newcommand\subsectiontopskip{\scr@subsection@beforeskip} +\setcounter{secnumdepth}{\m@ne} +\tud@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% +}{} +} +\tud@comp@on@poster@class{% +\newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} +\newcommand*\footcolumn[2]{% + \Ifnumber{#1}{% + \ifcase#1\relax% + \footcontent{#2}% + \or% + \footcontent{#2}[*]% + \or% + \footcontent{*}[{#2}]% + \fi% + }{}% +} +\patchcmd\tud@footcontent@use{% + \tud@footcontent@@use{\tud@res@glue}% }{% - \RequirePackageWithOptions{tudscrcomp-book}[\TUD@Version]% + \if@tud@mathfoot% + \tud@footcontent@@use{\glueexpr\tud@dim@widemargin*21/5\relax}% + \else% + \tud@footcontent@@use{\@tud@res@glue}% + \fi% +}{}{\tud@patch@wrn{tud@footcontent@use}} } \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls index 2a54c9987d2..88f3e7e0b6c 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls @@ -4,19 +4,21 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,doc') +%% tudscr-version.dtx (with options: `class,doc,identify') %% tudscr-base.dtx (with options: `class,doc,load') +%% tudscr-misc.dtx (with options: `class,doc,option') %% tudscr-doc.dtx (with options: `class,doc,option') %% tudscr-localization.dtx (with options: `class,doc') -%% tudscr-manual.dtx (with options: `class,doc') +%% tudscr-misc.dtx (with options: `class,doc,body') %% tudscr-doc.dtx (with options: `class,doc,body') %% tudscr-texindy.dtx (with options: `class,doc') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -32,92 +34,180 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@KOMA{#2}% \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% + \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% + \TUD@Class@Info% \fi% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesClass{tudscrdoc}{scrartcl}{source code documentation class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} \AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-doc.dtx -\newcommand*\scr@maketitle{}% -\PassOptionsToClass{toc=left,fontsize=10pt}{scrartcl}% -\AfterClass{scrartcl}{\let\scr@maketitle\@maketitle}% -\newcommand*\sd@saved@LoadClass{} -\let\sd@saved@LoadClass=\LoadClass +%%%% From File: tudscr-misc.dtx (no git version info was found) +\RequirePackage{scrhack}[% + 2022/05/01 v3.36 KOMA-Script +] +\RequirePackage{xspace} +\xspaceaddexceptions{"=} +\PassOptionsToPackage{quiet}{marginnote} +\RequirePackage{marginnote} +\RequirePackage{shellesc} +\RequirePackage{pdftexcmds} +\PassOptionsToPackage{hyperindex=false}{hyperref} +\AfterPackage*{bookmark}{\bookmarksetup{open,openlevel=1}} +\AfterAtEndOfPackage*{hyperref}{% + \@ifpackageloaded{bookmark}{}{\RequirePackage{bookmark}}% + \hypersetup{colorlinks,linkcolor=blue}% +} +\newcommand*\hrfn[2]{% + \href{#1}{\trim@spaces{#2}}% + \footnote{\strut\url{#1}}% +} +\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}} +\TUD@UnwindPackage{hyperref}{% + \RequirePackage{url} + \providerobustcmd*\url[1]{\texttt{\detokenize{#1}}}% + \providerobustcmd*\nolinkurl[1]{\url{#1}}% + \providerobustcmd*\href[3][]{#3}% + \providecommand*\hypersetup[1]{}% + \providecommand*\phantomsection{}% + \providecommand*\pdfbookmark[3][]{}% + \providecommand*\currentpdfbookmark[2]{}% + \providecommand*\subpdfbookmark[2]{}% + \providecommand*\belowpdfbookmark[2]{}% +} +\AfterPackage*{babel}{\RequirePackage{csquotes}} +\TUD@UnwindPackage{babel}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `babel' not loaded}% + \providecommand*\selectlanguage[1]{}% + \providecommand*\glqq{\quotedblbase}% + \providecommand*\grqq{\textquotedblleft}% + \providecommand*\seename{see}% + \providecommand*\alsoname{see\nobreakspace also}% +} +\TUD@UnwindPackage{csquotes}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `csquotes' not loaded}% + \providecommand\enquote[1]{\emph{#1}}% +} +\newcommand*\tud@replace@in[3]{% + \begingroup% + \edef\tud@res@a{\expandonce{#1}}% + \let\tud@res@c\@empty% + \def\tud@res@b##1#2##2\@nil{% + \IfArgIsEmpty{##2}{% + \appto\tud@res@c{##1}% + }{% + \appto\tud@res@c{##1#3}% + \tud@res@b##2\@nil% + }% + }% + \expandafter\tud@res@b\tud@res@a#2\@nil% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\expandonce\tud@res@c}% + }% + \tud@res@a% +} +\newcommand*\tud@replace@@in[3]{% + \begingroup% + \protected@edef\tud@res@a{#1}% + \edef\tud@res@a{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@b{% + \unexpanded{\tud@replace@in\tud@res@a}{\detokenize{#2}}{\detokenize{#3}}% + }% + \tud@res@b% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +%%%% From File: tudscr-doc.dtx (no git version info was found) +\newcommand*\scr@maketitle{} +\PassOptionsToClass{toc=left,fontsize=10pt,parskip=half-}{scrartcl} +\AfterClass{scrartcl}{\let\scr@maketitle\@maketitle} +\AfterClass{ltxdoc}{\let\@maketitle\scr@maketitle} +\newcommand*\tud@saved@LoadClass{} +\let\tud@saved@LoadClass=\LoadClass \renewcommand*\LoadClass[2][]{% \begingroup% \edef\@tempc{#2}\def\@tempb{article}% \ifx\@tempc\@tempb% - \let\LoadClass\sd@saved@LoadClass% + \let\LoadClass\tud@saved@LoadClass% \def\@tempc{scrartcl}% \fi% \edef\@tempc{% - \noexpand\endgroup\noexpand\sd@saved@LoadClass[{#1}]{\@tempc}}% + \endgroup% + \noexpand\tud@saved@LoadClass[{#1}]{\@tempc}% + }% \@tempc% } -\newcommand*\sd@saved@PassOptionsToClass{} -\let\sd@saved@PassOptionsToClass=\PassOptionsToClass +\newcommand*\tud@saved@PassOptionsToClass{} +\let\tud@saved@PassOptionsToClass=\PassOptionsToClass \renewcommand*\PassOptionsToClass[2]{% \begingroup% \edef\@tempc{#2}\def\@tempb{article}% @@ -125,21 +215,30 @@ \def\@tempc{scrartcl}% \fi% \edef\@tempc{% - \noexpand\endgroup\noexpand\sd@saved@PassOptionsToClass{#1}{% - \@tempc}}% + \endgroup% + \noexpand\tud@saved@PassOptionsToClass{#1}{\@tempc}% + }% \@tempc% } \LoadClassWithOptions{ltxdoc}[2015/03/26] \setcounter{IndexColumns}{2} \setcounter{StandardModuleDepth}{2} +\newcommand*\DisableCrossrefsForced{} +\let\DisableCrossrefsForced\DisableCrossrefs \DeclareOption{final}{\let\tudfinalflag\relax} \DeclareOption{texindy}{\let\tudxdyflag\relax} \DeclareOption{xindy}{\let\tudxdyflag\relax} \DeclareOption{xdy}{\let\tudxdyflag\relax} \ProcessOptions\relax -\newcommand*\DisableCrossrefsForced{} -\let\DisableCrossrefsForced\DisableCrossrefs -%%% From File: tudscr-localization.dtx +\PassOptionsToPackage{ttfont=lmtt}{tudscrfonts} +\AfterPackage{tudscrfonts}{% + \AtEndPreamble{% + \ifnum\tud@ttfont@num>\z@\relax% + \edef\mdseries@tt{\tud@ttfont@bf}% + \fi% + }% +} +%%%% From File: tudscr-localization.dtx (no git version info was found) \newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% @@ -149,13 +248,14 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% } \tud@localization@define{\tud@general@name} \tud@localization@define{\tud@implementation@name} +\tud@localization@define{\tud@symbols@name} \tud@localization@define{\tud@changes@name} \tud@localization@define{\tud@todo@name} \tud@localization@define{\tud@environment@name} @@ -188,8 +288,9 @@ } \tud@localization@german{\tud@general@name}{Allgemein} \tud@localization@german{\tud@implementation@name}{Implementierung} +\tud@localization@german{\tud@symbols@name}{Symbole} \tud@localization@german{\tud@changes@name}{\"Anderungsliste} -\tud@localization@german{\tud@todo@name}{Liste der noch zu erledigenden Punkte} +\tud@localization@german{\tud@todo@name}{Anstehende Aufgaben} \tud@localization@german{\tud@environment@name}{Umg.} \tud@localization@german{\tud@environments@name}{Umgebungen} \tud@localization@german{\tud@option@name}{Opt.} @@ -229,8 +330,9 @@ } \tud@localization@english{\tud@general@name}{General} \tud@localization@english{\tud@implementation@name}{Implementation} +\tud@localization@english{\tud@symbols@name}{Symbols} \tud@localization@english{\tud@changes@name}{Change History} -\tud@localization@english{\tud@todo@name}{List of ToDos} +\tud@localization@english{\tud@todo@name}{Pending tasks} \tud@localization@english{\tud@environment@name}{env.} \tud@localization@english{\tud@environments@name}{environments} \tud@localization@english{\tud@option@name}{opt.} @@ -263,116 +365,43 @@ where the entry is used.% \fi% } -%%% From File: tudscr-manual.dtx -\RequirePackage{scrhack}[2014/02/27] -\PassOptionsToPackage{quiet}{marginnote} -\RequirePackage{marginnote}[2012/03/29] -\RequirePackage{xspace}[2009/10/20] -\xspaceaddexceptions{"=} -\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}}% - }{}% +%%%% From File: tudscr-misc.dtx (no git version info was found) +\renewcommand*\@pnumwidth{2.1em} +\renewcommand*\@tocrmarg{3.1em} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbi{} +\newrobustcmd*\sbifont{\sffamily\bfseries\itshape} +\DeclareTextFontCommand\textsbi{\sbifont} +\newcommand*\textttit{} +\newrobustcmd*\ttitfont{\ttfamily\itshape} +\DeclareTextFontCommand\textttit{\ttitfont} +\newcommand*\tud@english[1]{% + \iflanguageloaded{english}{\foreignlanguage{english}{#1}}{#1}% } -\RequirePackage{shellesc}[2016/06/07] -\RequirePackage{pdftexcmds}[2016/05/21] -\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} -\PassOptionsToPackage{open,openlevel=0}{bookmark} -\AfterPackage*{hyperref}{% - \newcommand*\hypersource@def{} - \newcommand*\hypersourcedef[1]{% - \ifstr{#1}{\hypersource@def}{}{% - \Hy@raisedlink{\hyperdef{}{source:#1}{}}% - \xdef\hypersource@def{#1}% - }% - }% - \newcommand*\hypersource@ref@codeline[2][\@firstofone]{% - \begingroup% - \def\@tempa##1{\hyperref{}{}{source:##1}{#1{##1}}}% - \forcsvlist\@tempa{#2}% - \endgroup% - }% - \newcommand*\hypersource@ref@page[2][\@firstofone]{% - \begingroup% - \def\@tempa##1{\hyperlink{page.##1}{#1{##1}}}% - \forcsvlist\@tempa{#2}% - \endgroup% - }% - \renewcommand*\main[1]{% - \ifcodeline@index% - \hypersource@ref@codeline[\underline]{#1}% - \else% - \hypersource@ref@page[\underline]{#1}% - \fi% - }% - \renewcommand*\usage[1]{\hypersource@ref@page[\textit]{#1}}% +\AfterPackage*{babel}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% } -\TUD@UnwindPackage{hyperref}{% - \providecommand*\hypersetup[1]{}% - \providecommand*\href[3][]{#3}% - \providecommand*\phantomsection{}% - \providecommand*\texorpdfstring[2]{#1}% - \RequirePackage{url}[2013/09/16]% - \providecommand*\nolinkurl[1]{\url{#1}}% - \providecommand*\hypersourcedef[1]{} - \providecommand*\hypersource@def{} - \providecommand*\hypersource@ref@codeline[2][]{} - \providecommand*\hypersource@ref@page[2][]{} -} -\newcommand*\hrfn[2]{% - \href{#1}{\trim@spaces{#2}}% - \footnote{% - \begingroup% - \def\_{_}% - \edef\@tempa{#1}% - \strut\expandafter\url\expandafter{\@tempa}% - \endgroup% - }% -} -\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}}% +\kernel@make@fragile\KOMAScript +\edef\KOMAScript{\noexpand\mbox{\expandonce\KOMAScript}\noexpand\xspace} +\robustify\KOMAScript +\robustify\TUDScript \AfterPackage*{hyperref}{% - \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% - \let\bbl@info\@gobble\csname HyPsd@babel@% - }{}{\tud@patch@wrn{pdfstringdef}}% -} -\RequirePackage{csquotes}[2011/10/22] -\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% + \pdfstringdefDisableCommands{% + \def\KOMAScript{KOMA-Script{}}% + \def\TUDScript{TUD-Script{}}% + }% } -\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*\vTUDScript{v\TUDScriptVersionNumber} +\newcommand*\vKOMAScript{v\TUD@KOMAVersionNumber} +\newrobustcmd*\CD{\tud@english{Corporate Design}\xspace} +\newrobustcmd*\CDs{\tud@english{Corporate Designs}\xspace} +\newrobustcmd*\TUD{Technische Universit\"at Dresden\xspace} +\newrobustcmd*\TnUD{Technischen Universit\"at Dresden\xspace} \newcommand*\TUDCD{\CD der \TnUD} \newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\TUDForum{\mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace} \newrobustcmd*\DDC{% \mbox{% D\kern.05em R\kern.05em E\kern.05em S\kern.05em % @@ -381,444 +410,654 @@ } \AfterPackage*{hyperref}{% \pdfstringdefDisableCommands{% - \def\DDC{DRESDEN-concept}% - \def\TUDScript{TUD-Script}% - \def\KOMAScript{KOMA-Script}% + \def\CD{Corporate Design{}}% + \def\CDs{Corporate Designs{}}% + \def\TUD{Technische Universit\"at Dresden{}}% + \def\TnUD{Technischen Universit\"at Dresden{}}% + \def\TUDForum{TUD-LaTeX-Forum{}}% + \def\DDC{DRESDEN-concept{}}% }% } -\DeclareTextFontCommand\tud@cdfont@texteb{% - \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% -} -\newrobustcmd*\OpenSans{% - \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% -} -\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} -\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} -\renewcommand*\@pnumwidth{2.1em}% -\renewcommand*\@tocrmarg{3.1em}% -%%% From File: tudscr-doc.dtx -\RequirePackage{dox}[2010/12/16] -\@ifpackagelater{dox}{2017/12/07}{% - \ClassWarning{\TUD@Class@Name}{% - Package `dox' was updated so some patches\MessageBreak% - are maybe outdated% +\newrobustcmd*\OpenSans{\textcdbn{Open\nobreakspace Sans}\xspace} +\newrobustcmd*\Univers{\textcdbi{Univers}\xspace} +\newrobustcmd*\DIN{\textcdbi{DIN\nobreakspace Bold}\xspace} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\OpenSans{Open Sans{}}% + \def\Univers{Univers{}}% + \def\DIN{DIN Bold{}}% }% -}{}% -\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\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} - \ifdox@macrolike - \expandafter\let\csname @Save#2IndexName\endcsname% - \@doxsavemacrolikeindexname% - \else - \expandafter\let\csname @Save#2IndexName\endcsname\@doxsaveindexname% - \fi } -\renewcommand*\doxitem[4][]{% - \@nameuse{dox@macrolike\dox@macrolikedefault}% - \def\dox@idxtype{#3}% - \setkeys{dox}{#1}% - \ifdox@macrolike% - \def\@doxexpr{\@doxcreatespecialmainmacrolikeindex{#2}}% - \else% - \def\@doxexpr{\@doxcreatespecialmainindex{#2}}% - \fi% - \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% - \ifdox@macrolike% - \def\@doxexpr{\@doxcreatespecialmacrolikeindex{#2}}% - \else% - \def\@doxexpr{\@doxcreatespecialindex{#2}}% - \fi% - \expandafter\@doxexpr\expandafter{\dox@idxtype}{#4}% - \ifdox@macrolike% - \def\@doxexpr{\@doxcreatemacrolikeprintname{#2}}% - \else% - \def\@doxexpr{\@doxcreateprintname{#2}}% - \fi% - \expandafter\@doxexpr\expandafter{\dox@idxtype}% - \ifdox@macrolike% - \def\@doxexpr{\@doxcreatemacrolikeindexname{#2}}% - \else% - \def\@doxexpr{\@doxcreateindexname{#2}}% - \fi% - \expandafter\@doxexpr\expandafter{\dox@idxtype}% - \@doxcreatedescribe{#2}% - \@doxcreatedescribes{#2}% - \@doxcreateenv{#2}{#3}% -} -\newlength\marginnotevskip -\newcommand*\@doxcreatedescribes[1]{% - \expandafter\def\csname Describe#1s\endcsname##1{% - \setlength\marginnotevskip{\z@}% - \def\@tempc{##1}% - \@for\@tempa:=\@tempc\do{% - \expandafter\ifblank\expandafter{\@tempa}{}{% - \edef\@tempb{% - \expandonce{\csname Describe#1\endcsname}{\expandonce{\@tempa}}% - }% - \@tempb% - \addtolength\marginnotevskip{\baselineskip}% - }% +\newcommand*\GitHubBase[1]{} +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !D(){tud-cd/tudscr} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{https://github.com/#4/}% + \edef\@tempa{{\@tempa\IfValueTF{#5}{issues/#5}{#3}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{#4}}}}% + }% + \the\toks@\xspace% +} +\NewDocumentCommand\CTAN{!s !o !g}{% + \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\Forum{!s !t' !O{\TUDForum} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% + \the\toks@\xspace% +} +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \tud@setdim\fboxsep{0.25em}% + \fbox{Achtung!}% + }[{#1}]% + \emph{\trim@spaces{#2}}% +} +\newrobustcmd*\TUDScriptContactTitle{% + \ifundef{\emailaddress}{% + \qquad\expandafter\mailto\expandafter{\TUDScriptContact}% + }{% + \expandafter\emailaddress\expandafter{\TUDScriptContact}% + }% +} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{\let\TUDScriptContactTitle\relax}% +} +%%%% From File: tudscr-doc.dtx (no git version info was found) +\AtEndOfClass{% + \@ifpackageloaded{tudscr-gitinfo}{% + \GetFileInfo{\jobname}% + \title{\file{\filename}}% + \date{% + \filedate% + \ifdefvoid{\fileversion}{}{\nobreakspace\fileversion}% + \ifdefvoid{\filerevision}{}{\nobreakspace\texttt{\filerevision}}% }% - \setlength\marginnotevskip{\z@}% - \ignorespaces% + }{}% + \CodelineIndex% + \RecordChanges% +} +\AtBeginDocument{% + \ifdefvoid{\filename}{% + \IfFileExists{\jobname.dtx}{% + \edef\filename{\jobname.dtx}% + }{% + \edef\filename{\jobname.tex}% + }% + \undef\filedate% + \undef\fileversion% + \undef\filerevision% + \undef\fileinfo% + \expandafter\GetFileInfo\expandafter{\filename}% + }{}% + \ifdefvoid{\filerevision}{\let\filerevision\@empty}{}% +} +\pretocmd\@docinclude{% + \GetFileInfo{#1}\pagestyle{tudscrdoc}% +}{}{\tud@patch@wrn{@docinclude}} +\def\ps@tudscrdoc{% + \let\@mkboth\@gobbletwo% + \let\@oddhead\@empty% + \let\@evenhead\@empty% + \def\@oddfoot{% + File\ifnum\c@part>\z@\nobreakspace\thepart\fi:% + \nobreakspace\texttt{\ifdefvoid{\filename}{?}{\filename}}% + \enskip Version:\nobreakspace\ifdefvoid{\filedate}{?}{\filedate}% + \ifdefvoid{\fileversion}{}{\nobreakspace\fileversion}% + \ifdefvoid{\filerevision}{}{\enskip\texttt{\filerevision}}% + \hfill\thepage% }% + \def\@evenfoot{\@oddfoot}% } -\@doxcreatedescribes{Macro} +\pagestyle{tudscrdoc}% +\let\ps@titlepage\ps@tudscrdoc% +\tud@newdim\tud@dim@marginnotevskip \AfterPackage*{marginnote}{% \renewcommand*\marginpar[2][]{% \IfArgIsEmpty{#1}{% - \marginnote{#2}[\marginnotevskip]% + \marginnote{#2}[\tud@dim@marginnotevskip]% }{% - \marginnote[{#1}]{#2}[\marginnotevskip]% + \marginnote[{#1}]{#2}[\tud@dim@marginnotevskip]% }% }% } -\newrobustcmd*\index@type[1]{% +\newcommand*\doc@createdescribes[1]{% + \expandafter\newcommand\expandafter*\csname Describe#1s\endcsname[2][]{% + \tud@setdim\tud@dim@marginnotevskip{\z@}% + \def\@tempc{##2}% + \@for\@tempa:=\@tempc\do{% + \trim@spaces@in\@tempa% + \ifx\@tempa\@empty\else% + \def\@tempb{\@nameuse{Describe#1}[{##1}]}% + \expandafter\@tempb\expandafter{\@tempa}% + \tud@addtodim\tud@dim@marginnotevskip{1\baselineskip}% + \fi% + }% + \tud@setdim\tud@dim@marginnotevskip{\z@}% + \ignorespaces% + }% +} +\NewDocumentCommand{\tud@idx@typemarkup}{r()}{% \begingroup% \normalfont\scriptsize\space(#1)% \endgroup% } -\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% - }% -} -\renewcommand*\@doxcreatespecialmainmacrolikeindex[3]{% - \expandafter\def\csname SpecialMain#1Index\endcsname##1{% - \@SpecialIndexHelper@##1\@nil% - \@bsphack% - \protected@edef\tud@reserved{#2}% - \special@index{% - \@gtempa\space\expandonce\tud@reserved\actualchar% - \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar% - \index@type{\expandonce\tud@reserved}\encapchar main% +\AtBeginDocument{\let\PrintMacroName\@@PrintMacroName} +\apptocmd\@NewDocElement{% + \doc@createdescribes{#2}% + \csletcs{@@PrintDescribe#2}{PrintDescribe#2}% + \csletcs{@@Print#2Name}{Print#2Name}% + \csletcs{@@SpecialMain#2Index}{SpecialMain#2Index}% + \csletcs{@@Special#2Index}{Special#2Index}% +}{}{\tud@patch@wrn{@NewDocElement}} +\patchcmd\@NewDocElement{% + \@temptokena\expandafter{% + \expandafter\textnormal\expandafter{% + \expandafter\space\expandafter(\doc@printtype)% }% - \protected@edef\tud@reserved{#3}% - \special@index{% - \expandonce\tud@reserved:\levelchar\@gtempa\actualchar% - \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar% - \encapchar main% + }% +}{% + \@temptokena\expandafter{% + \expandafter\textnormal\expandafter{% + \expandafter\tud@idx@typemarkup\expandafter(\doc@printtype)\strut% }% - \@esphack% - \let\parameter@parent@changes\relax% - \hypersourcedef{\filesep\number\c@CodelineNo}% }% -} -\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% +}{}{\tud@patch@wrn{@NewDocElement}} +\newcommand*\tud@idx@sortkey{} +\let\tud@idx@sortkey\relax +\newcommand*\tud@idx@format{} +\let\tud@idx@format\relax +\newcommand*\tud@idx@element{} +\let\tud@idx@element\relax +\newcommand*\tud@idx@parent{} +\let\tud@idx@parent\relax +\CheckCommand*\doc@createspecialindexes[3]{% + \@temptokena{\space (#2)}% + \@temptokenb{#3:}% + \@nameedef{SpecialMain#1Index}##1{% + \noexpand\@bsphack + \ifdoc@toplevel + \noexpand\special@index{% + ##1\noexpand\actualchar{\string\ttfamily\space##1}% + \ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\encapchar main% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\special@index{% + \the\@temptokenb\noexpand\levelchar + ##1\noexpand\actualchar{\string\ttfamily\space##1}% + \noexpand\encapchar main% + }% + \fi + \noexpand\@esphack% + }% + \@nameedef{Special#1Index}##1{% + \noexpand\@bsphack + \ifdoc@toplevel + \noexpand\doc@providetarget + \noexpand\index{% + ##1\noexpand\actualchar{\string\ttfamily\space##1}% + \ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\doc@handleencap{usage}% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\index{% + \the\@temptokenb\noexpand\levelchar + ##1\noexpand\actualchar{\string\ttfamily\space##1}% + \noexpand\doc@handleencap{usage}% + }% + \fi + \noexpand\@esphack% }% } -\renewcommand*\@doxcreatespecialmainindex[3]{% - \expandafter\def\csname SpecialMain#1Index\endcsname##1{% - \@bsphack% - \protected@edef\tud@reserved{#2}% - \special@index{% - ##1\space\expandonce\tud@reserved\actualchar% - {\string\ttfamily\space##1}\index@type{\expandonce\tud@reserved}% - \encapchar main% +\renewcommand*\doc@createspecialindexes[3]{% + \@temptokena{\space (#2)}% + \@temptokenb{#3:}% + \@nameedef{SpecialMain#1Index}##1{% + \noexpand\@bsphack + \ifdoc@toplevel + \noexpand\special@index{% + % PATCH: add `\the\@temptokena' to sorting argument + ##1\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar{\string\ttfamily\space##1}% + % PATCH: add `\tud@idx@typemarkup' for markup + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi + \noexpand\encapchar main% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\special@index{% + \the\@temptokenb\noexpand\levelchar + % PATCH: add `\the\@temptokena' to sorting argument + ##1\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar{\string\ttfamily\space##1}% + \noexpand\encapchar main% + }% + \fi + \noexpand\@esphack% + % PATCH: assign used sort key and formatted entry to dedicated macros + \gdef\noexpand\tud@idx@sortkey{##1\ifx\@nil#2\@nil\else\the\@temptokena\fi}% + \gdef\noexpand\tud@idx@format{% + {\string\ttfamily\space##1}% + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi }% - \protected@edef\tud@reserved{#3}% - \special@index{% - \expandonce\tud@reserved:\levelchar##1\actualchar% - {\string\ttfamily\space##1}\encapchar main% + % PATCH: reset settings for nested index and changelog entries + \gdef\noexpand\tud@idx@element{#1}% + \global\let\noexpand\tud@idx@parent\relax% + }% + \@nameedef{Special#1Index}##1{% + \noexpand\@bsphack + \ifdoc@toplevel + \noexpand\doc@providetarget + \noexpand\index{% + % PATCH: add `\the\@temptokena' to sorting argument + ##1\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar{\string\ttfamily\space##1}% + % PATCH: add `\tud@idx@typemarkup' for markup + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi + \noexpand\doc@handleencap{usage}% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\index{% + \the\@temptokenb\noexpand\levelchar + % PATCH: add `\the\@temptokena' to sorting argument + ##1\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar{\string\ttfamily\space##1}% + \noexpand\doc@handleencap{usage}% + }% + \fi + \noexpand\@esphack% + % PATCH: assign used sort key and formatted entry to dedicated macros + \gdef\noexpand\tud@idx@sortkey{##1\ifx\@nil#2\@nil\else\the\@temptokena\fi}% + \gdef\noexpand\tud@idx@format{% + {\string\ttfamily\space##1}% + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi }% - \@esphack% - \let\parameter@parent@changes\relax% - \hypersourcedef{\filesep\number\c@CodelineNo}% + % PATCH: reset settings for nested index and changelog entries + \gdef\noexpand\tud@idx@element{#1}% + \global\let\noexpand\tud@idx@parent\relax% }% } -\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% +\CheckCommand*\doc@createspecialmacrolikeindexes[3]{% + \@temptokena{\space (#2)}% + \@temptokenb{#3:}% + \@nameedef{Code#1Index}##1##2{% + \noexpand\@SpecialIndexHelper@##2\noexpand\@nil + \noexpand\@bsphack + \noexpand\ifdoc@noindex\noexpand\else + \ifdoc@toplevel + \noexpand\special@index{% + \noexpand\@gtempa\noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \ifx\@nil#2\@nil\else \the\@temptokena \fi + \noexpand\encapchar ##1% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\special@index{% + \the\@temptokenb\noexpand\levelchar + \noexpand\@gtempa\noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \noexpand\encapchar ##1% + }% + \fi + \noexpand\fi + \noexpand\@esphack% }% -} -\renewcommand*\@doxcreatespecialmacrolikeindex[3]{% - \expandafter\def\csname Special#1Index\endcsname##1{% - \@SpecialIndexHelper@##1\@nil% - \@bsphack% - \protected@edef\tud@reserved{#2}% - \index{% - \@gtempa\space\expandonce\tud@reserved\actualchar% - \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar% - \index@type{\expandonce\tud@reserved}\encapchar usage% - }% - \protected@edef\tud@reserved{#3}% - \index{% - \expandonce\tud@reserved:\levelchar\@gtempa\actualchar% - \string\verb\quotechar*\verbatimchar\bslash\@gtempa\verbatimchar% - \encapchar usage% - }% - \@esphack% + \@nameedef{SpecialMain#1Index}##1{% + \expandafter\noexpand\csname Code#1Index\endcsname{main}{##1}% }% -} -\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% + \@nameedef{Special#1Index}##1{% + \noexpand\@SpecialIndexHelper@##1\noexpand\@nil + \noexpand\@bsphack + \noexpand\ifdoc@noindex\noexpand\else + \ifdoc@toplevel + \noexpand\doc@providetarget + \noexpand\index{% + \noexpand\@gtempa\noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \ifx\@nil#2\@nil\else \the\@temptokena \fi + \noexpand\doc@handleencap{usage}% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\index{% + \the\@temptokenb\noexpand\levelchar + \noexpand\@gtempa\noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \noexpand\doc@handleencap{usage}% + }% + \fi + \noexpand\fi + \noexpand\@esphack% }% } -\renewcommand*\@doxcreatespecialindex[3]{% - \expandafter\def\csname Special#1Index\endcsname##1{% - \@bsphack% - \protected@edef\tud@reserved{#2}% - \index{% - ##1\space\expandonce\tud@reserved\actualchar% - {\protect\ttfamily##1}\index@type{\expandonce\tud@reserved}% - \encapchar usage% +\renewcommand*\doc@createspecialmacrolikeindexes[3]{% + \@temptokena{\space (#2)}% + \@temptokenb{#3:}% + \@nameedef{Code#1Index}##1##2{% + \noexpand\@SpecialIndexHelper@##2\noexpand\@nil + \noexpand\@bsphack + \noexpand\ifdoc@noindex\noexpand\else + \ifdoc@toplevel + \noexpand\special@index{% + % PATCH: add `\the\@temptokena' to sorting argument + \noexpand\@gtempa\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + % PATCH: add `\tud@idx@typemarkup' for markup + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi + \noexpand\encapchar ##1% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\special@index{% + \the\@temptokenb\noexpand\levelchar + % PATCH: add `\the\@temptokena' to sorting argument + \noexpand\@gtempa\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \noexpand\encapchar ##1% + }% + \fi + \noexpand\fi + \noexpand\@esphack% + }% + \@nameedef{SpecialMain#1Index}##1{% + \expandafter\noexpand\csname Code#1Index\endcsname{main}{##1}% + % PATCH: assign used sort key and formatted entry to dedicated macros + \xdef\noexpand\tud@idx@sortkey{% + \noexpand\expandonce\noexpand\@gtempa% + \ifx\@nil#2\@nil\else\noexpand\unexpanded{\the\@temptokena}\fi% }% - \protected@edef\tud@reserved{#3}% - \index{% - \expandonce\tud@reserved:\levelchar##1\actualchar% - {\protect\ttfamily##1}\encapchar usage% + \xdef\noexpand\tud@idx@format{% + \unexpanded{\noexpand\string\noexpand\verb}% + \unexpanded{\noexpand\quotechar*\noexpand\verbatimchar}% + \unexpanded{\noexpand\bslash}\noexpand\expandonce\noexpand\@gtempa% + \unexpanded{\noexpand\verbatimchar}% + \ifx\@nil#2\@nil\else + \noexpand\unexpanded{\noexpand\tud@idx@typemarkup\the\@temptokena}% + \fi }% - \@esphack% + % PATCH: reset settings for nested index and changelog entries + \gdef\noexpand\tud@idx@element{#1}% + \global\let\noexpand\tud@idx@parent\relax }% -} -\def\@doxcreatemacrolikeprintname#1#2{% - \ifcsundef{Print#1Name}{% - \expandafter\def\csname Print#1Name\endcsname##1{% - \MacroFont\string##1\index@type{#2}\strut\ % + \@nameedef{Special#1Index}##1{% + \noexpand\@SpecialIndexHelper@##1\noexpand\@nil + \noexpand\@bsphack + \noexpand\ifdoc@noindex\noexpand\else + \ifdoc@toplevel + \noexpand\doc@providetarget + \noexpand\index{% + % PATCH: add `\the\@temptokena' to sorting argument + \noexpand\@gtempa\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + % PATCH: add `\tud@idx@typemarkup' for markup + \ifx\@nil#2\@nil\else\noexpand\tud@idx@typemarkup\the\@temptokena\fi + \noexpand\doc@handleencap{usage}% + }% + \fi + \ifx\@nil#3\@nil\else + \noexpand\index{% + \the\@temptokenb\noexpand\levelchar + % PATCH: add `\the\@temptokena' to sorting argument + \noexpand\@gtempa\ifx\@nil#2\@nil\else\the\@temptokena\fi + \noexpand\actualchar + \string\verb% % to fool emacs highlighting + \noexpand\quotechar*\noexpand\verbatimchar + \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar + \noexpand\doc@handleencap{usage}% + }% + \fi + \noexpand\fi + \noexpand\@esphack% + % PATCH: assign used sort key and formatted entry to dedicated macros + \xdef\noexpand\tud@idx@sortkey{% + \noexpand\expandonce\noexpand\@gtempa% + \ifx\@nil#2\@nil\else\noexpand\unexpanded{\the\@temptokena}\fi% }% - }{}% - \ifcsundef{PrintDescribe#1}{% - \expandafter\def\csname PrintDescribe#1\endcsname##1{% - \MacroFont\string##1\index@type{#2}\strut\ % + \xdef\noexpand\tud@idx@format{% + \unexpanded{\noexpand\string\noexpand\verb}% + \unexpanded{\noexpand\quotechar*\noexpand\verbatimchar}% + \unexpanded{\noexpand\bslash}\noexpand\expandonce\noexpand\@gtempa% + \unexpanded{\noexpand\verbatimchar}% + \ifx\@nil#2\@nil\else + \noexpand\unexpanded{\noexpand\tud@idx@typemarkup\the\@temptokena}% + \fi }% - }{}% + % PATCH: reset settings for nested index and changelog entries + \gdef\noexpand\tud@idx@element{#1}% + \global\let\noexpand\tud@idx@parent\relax + }% } -\def\@doxcreateprintname#1#2{% - \ifcsundef{Print#1Name}{% - \expandafter\def\csname Print#1Name\endcsname##1{% - \MacroFont##1\index@type{#2}\strut\ % - }% - }{}% - \ifcsundef{PrintDescribe#1}{% - \expandafter\def\csname PrintDescribe#1\endcsname##1{% - \MacroFont##1\index@type{#2}\strut\ % - }% - }{}% +\def\tud@res@a#1{% + \kernel@ifnextchar[%] + {\tud@res@b{#1}}{\tud@res@b{#1}[]}% } -\newcommand*\saved@indextype{} -\def\@doxcreatemacrolikeindexname#1#2{% - \expandafter\def\csname @Save#1IndexName\endcsname##1{% - \edef\saved@indexname{\expandafter\@gobble##1}% - \protected@edef\saved@indextype{#2}% - }% +\def\tud@res@b#1[#2]#3#4{% + #1[{% + idxgroup=\csname tud@#4s@name\endcsname,% + idxtype=\csname tud@#4@name\endcsname,% + printtype=\csname tud@#4@name\endcsname,% + #2% + }]{#3}{#4}% } -\def\@doxcreateindexname#1#2{% - \expandafter\def\csname @Save#1IndexName\endcsname##1{% - \let\saved@indexname##1% - \protected@edef\saved@indextype{#2}% - }% +\tud@res@a\RenewDocElement[macrolike,idxgroup,idxtype,printtype]{Macro}{macro} +\tud@res@a\RenewDocElement{Env}{environment} +\tud@res@a\NewDocElement{Option}{option} +\tud@res@a\NewDocElement{LayerPageStyle}{layerpagestyle} +\tud@res@a\NewDocElement{Layer}{layer} +\tud@res@a\NewDocElement[macrolike]{Length}{length} +\tud@res@a\NewDocElement{Counter}{counter} +\tud@res@a\NewDocElement{Color}{TUDcolor} +\tud@res@a\NewDocElement[macrolike]{Localization}{localization} +\tud@res@a\NewDocElement[macrolike]{Field}{field} +\tud@res@a\NewDocElement{Font}{KOMAfont} +\tud@res@a\NewDocElement{Parameter}{parameter} +\newcommand*\DescribeMacroParameters{} +\def\DescribeMacroParameters{% + \kernel@ifnextchar[%] + {\Describe@Parameters{Macro}}{\Describe@Parameters{Macro}[]}% } -\CheckCommand*\@SaveMacroIndexName[1]{% - \edef\saved@indexname{\expandafter\@gobble#1}% -} -\CheckCommand*\@SaveEnvIndexName[1]{\let\saved@indexname#1} -\apptocmd{\@SaveMacroIndexName}{% - \let\saved@indextype\@empty% -}{}{\tud@patch@wrn{@SaveMacroIndexName}} -\CheckCommand*\SpecialMainMacroIndex[1]{% - \SpecialMainIndex{#1}\nobreak% - \DoNotIndex{#1}% -} -\apptocmd{\SpecialMainMacroIndex}{% - \let\parameter@parent@changes\relax% - \hypersourcedef{\filesep\number\c@CodelineNo}% -}{}{\tud@patch@wrn{SpecialMainMacroIndex}} -\renewcommand*\tud@reserved[3][]{% - \doxitem[#1,idxtype=\csname tud@#3@name\endcsname]{#2}{#3}{% - \csname tud@#3s@name\endcsname% - }% +\newcommand*\DescribeEnvParameters{} +\def\DescribeEnvParameters{% + \kernel@ifnextchar[%] + {\Describe@Parameters{Env}}{\Describe@Parameters{Env}[]}% } -\undef\PrintEnvName -\undef\PrintDescribeEnv -\tud@reserved{Env}{environment} -\tud@reserved{Option}{option} -\tud@reserved{LayerPageStyle}{layerpagestyle} -\tud@reserved{Layer}{layer} -\tud@reserved[macrolike]{Length}{length} -\tud@reserved{Counter}{counter} -\tud@reserved{Color}{TUDcolor} -\tud@reserved[macrolike]{Localization}{localization} -\tud@reserved[macrolike]{Field}{field} -\tud@reserved{Font}{KOMAfont} -\tud@reserved{Parameter}{parameter} -\newcommand*\parameter@parent@changes{} -\let\parameter@parent@changes\relax -\newcommand*\parameter@parent@indexname{} -\let\parameter@parent@indexname\relax -\newcommand*\parameter@parent@indexformat{} -\let\parameter@parent@indexformat\relax -\apptocmd{\@SaveMacroIndexName}{% - \edef\parameter@parent@indexname{\expandafter\@gobble#1}% - \edef\parameter@parent@indexformat{% - \string\verb\quotechar*\verbatimchar#1\verbatimchar% +\newcommand*\Describe@Parameters{} +\def\Describe@Parameters#1[#2]#3#4{% + \begingroup% + \csname keys_set:nn\endcsname{doc}{#2}% + \ifdoc@noindex% + \aftergroup\@gobble% + \else% + \aftergroup\@firstofone% + \fi% + \endgroup{% + \def\@tempc{#3}% + \@for\@tempa:=\@tempc\do{% + \trim@spaces@in\@tempa% + \ifx\@tempa\@empty\else% + \begingroup% + \let\index\@gobble% + \def\@tempb{\@nameuse{Describe#1}[noprint]}% + \expandafter\@tempb\expandafter{\@tempa}% + \xdef\tud@idx@parent{% + {\expandonce\tud@idx@sortkey}{\expandonce\tud@idx@format}% + }% + \endgroup% + \DescribeParameters[{#2,noprint}]{#4}% + \fi% + }% }% -}{}{\tud@patch@wrn{@SaveMacroIndexName}} -\apptocmd{\@SaveEnvIndexName}{% - \protected@edef\parameter@parent@indexname{#1\space\saved@indextype}% - \protected@edef\parameter@parent@indexformat{% - \string\verb\quotechar*\verbatimchar#1\verbatimchar% - \index@type{\saved@indextype}% + \begingroup% + \csname keys_set:nn\endcsname{doc}{#2}% + \ifdoc@noprint% + \aftergroup\@gobble% + \else% + \aftergroup\@firstofone% + \fi% + \endgroup{% + \DescribeParameters[{#2,noindex}]{#4}% }% -}{}{\tud@patch@wrn{@SaveEnvIndexName}} + \global\let\tud@idx@parent\relax% +} \renewcommand*\SpecialMainParameterIndex[1]{% - \ifx\parameter@parent@indexname\relax% - \ClassError{\TUD@Class@Name}{No previous macro or environment}{% - Since parameters can only be used for macros or\MessageBreak% - environments, you have to use `parameter' within\MessageBreak% - `macro' or `environment'.% + \ifx\tud@idx@parent\relax% + \@expandtwoargs\in@{\tud@idx@element}{Macro,Env}% + \ifin@% + \xdef\tud@idx@parent{% + {\expandonce\tud@idx@sortkey}{\expandonce\tud@idx@format}% + }% + \else% + \ClassError{\TUD@Class@Name}{No previous macro or environment}{% + Since parameters can only be used for macros or\MessageBreak% + environments, you have to use `parameter' within\MessageBreak% + `macro' or `environment'.% + }% + \fi% + \fi% + \ifx\tud@idx@parent\relax\else% + \gdef\tud@idx@sortkey{#1\space(\tud@parameter@name)}% + \gdef\tud@idx@format{% + {\string\ttfamily\space#1}% + \tud@idx@typemarkup\space(\tud@parameter@name)% }% + \@bsphack% + \special@index{% + \expandafter\@firstoftwo\tud@idx@parent\actualchar% + \expandafter\@secondoftwo\tud@idx@parent\levelchar% + \tud@idx@sortkey\actualchar\tud@idx@format% + \encapchar main% + }% + \@esphack% \fi% - \protected@edef\parameter@parent@changes{% - \parameter@parent@indexname\actualchar% - \parameter@parent@indexformat:\levelchar% - }% - \@bsphack% - \special@index{% - \parameter@parent@indexname\actualchar% - \parameter@parent@indexformat\levelchar% - #1\space\tud@parameter@name\actualchar% - {\string\ttfamily\space#1}\index@type{\tud@parameter@name}% - \encapchar main% - }% - \special@index{% - \tud@parameters@name:\levelchar% - #1\space\parameter@parent@indexname% - \actualchar{\string\ttfamily\space#1}% - \noexpand\,--\noexpand\,\parameter@parent@indexformat% - \encapchar main% - }% - \@esphack% - \hypersourcedef{\filesep\number\c@CodelineNo}% } -\newenvironment{DescribeParameterParent}[2]{% - \@nameuse{@Save#1IndexName}{\string#2}% -}{} \renewcommand*\SpecialParameterIndex[1]{% - \ifx\parameter@parent@indexname\relax% - \ClassError{\TUD@Class@Name}{No previous macro or environment}{% + \ifx\tud@idx@parent\relax% + \ClassError{\TUD@Class@Name}{No macro or environment given}{% Since parameters can only be used for macros or\MessageBreak% - environments, you have to use macro\MessageBreak% - `\string\DescribeParameter' only within the environment\MessageBreak% - `DescribeParameterParent'.% + environments, you have to use an appropriate command like\MessageBreak% + `\string\DescribeMacroParameters' or `\string\DescribeEnvParameters'.% + }% + \else% + \gdef\tud@idx@sortkey{#1\space(\tud@parameter@name)}% + \gdef\tud@idx@format{% + {\string\ttfamily\space#1}% + \tud@idx@typemarkup\space(\tud@parameter@name)% + }% + \@bsphack% + \index{% + \expandafter\@firstoftwo\tud@idx@parent\actualchar% + \expandafter\@secondoftwo\tud@idx@parent\levelchar% + \tud@idx@sortkey\actualchar\tud@idx@format% + \encapchar usage% }% + \@esphack% \fi% - \@bsphack% - \index{% - \parameter@parent@indexname\actualchar% - \parameter@parent@indexformat\levelchar% - #1\space\tud@parameter@name\actualchar% - {\protect\ttfamily#1}\index@type{\tud@parameter@name}% - \encapchar usage% - }% - \index{% - \tud@parameters@name:\levelchar#1\space\parameter@parent@indexname% - \actualchar{\protect\ttfamily#1}% - \noexpand\,--\noexpand\,\parameter@parent@indexformat% - \encapchar usage% +} +\ifdefined\tudxdyflag +\newcommand*\tud@xdy@filesep{?-} +\newcommand*\tud@xdy@reference[1]{0:\filesep#1:\thepage} +\newcommand*\tud@xdy@destination[3]{% + #1\if#2\expandafter\@car\tud@xdy@filesep\@nil\else\mbox{--}#2\fi% + \ifnum#3>\z@\textsubscript{\kern.1em#3}\fi% +} +\newcommand*\tud@xdy@mapping[2]{\tud@xdy@@mapping{#1}#2\@nil} +\newcommand*\tud@xdy@@mapping{} +\def\tud@xdy@@mapping#1#2:#3-#4:#5\@nil{% + \begingroup% + \ifundef{\hyperlink}{\let\tud@res@a\@gobble}{\let\tud@res@a\@firstofone}% + \csname\ifx\\#1\\relax\else#1\fi\endcsname{% + \tud@res@a{\hyperlink{page.#5}}{\tud@xdy@destination{#5}{#3}{#4}}% + }% + \endgroup% +} +\AfterPackage*{hypdoc}{% + \renewcommand*\tud@xdy@reference[1]{\the\c@HD@hypercount:\filesep#1:\thepage}% + \def\tud@xdy@@mapping#1#2:#3-#4:#5\@nil{% + \ifnum#2>\z@\relax + \hdclindex{#2}{#1}{\tud@xdy@destination{#5}{#3}{#4}}% + \else + \csname\ifx\\#1\\relax\else#1\fi\endcsname{% + \hyperlink{page.#5}{\tud@xdy@destination{#5}{#3}{#4}}% + }% + \fi }% +} +\fi +\ifdefined\tudxdyflag +\newcommand*\tud@xdy@wrindex[1]{% + \protected@write\@indexfile{}{% + \string\indexentry{#1}{\tud@xdy@reference{0}}% + }% + \endgroup% \@esphack% } +\newcommand*\tud@xdy@page@wrindex[1]{% + \begingroup + \let\@wrindex\tud@xdy@wrindex% + \index{#1}% + \endgroup +} +\AfterPackage*{hypdoc}{% + \renewcommand*\tud@xdy@page@wrindex[1]{% + \begingroup + \let\@wrindex\tud@xdy@wrindex% + \HDorg@index{#1}% + \endgroup + } +} +\newcommand*\tud@xdy@codeline@wrindex[1]{% + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@indexfile{% + \string\indexentry{#1}{\tud@xdy@reference{\number\c@CodelineNo}}% + }% + \endgroup + \fi +} +\fi +\def\changehistoryname{\tud@changes@name} \CheckCommand*\changes@[3]{% \protected@edef\@tempa{% \noexpand\glossary{% - #1\levelchar + #1% + \ifdoc@reportchangedates\space -- #2\fi + \levelchar \ifx\saved@macroname\@empty - \space + \quotechar!% \actualchar \generalname \else @@ -833,146 +1072,93 @@ }% \@tempa\endgroup\@esphack% } -\ifdefined\tudxdyflag% - \renewcommand*\changes@[3]{% - \@tempswatrue% - \ifblank{#1}{\@tempswafalse}{}% - \ifblank{#3}{\@tempswafalse}{}% - \if@tempswa% - \ifx\parameter@parent@changes\relax% - \protected@edef\@tempb{% - \saved@indexname% - \ifx\saved@indextype\@empty\else% - \space\saved@indextype% - \fi% - \actualchar% - \string\verb\quotechar*% - \verbatimchar\saved@macroname% - \verbatimchar% - \ifx\saved@indextype\@empty\else% - \index@type{\saved@indextype}% - \fi% - :\levelchar% - }% - \else% - \protected@edef\@tempb{% - \parameter@parent@changes% - \saved@indexname% - \ifx\saved@indextype\@empty\else% - \space\saved@indextype% - \fi% - \actualchar% - {\noexpand\ttfamily\saved@macroname}% - \ifx\saved@indextype\@empty\else% - \index@type{\saved@indextype}% - \fi% - :\levelchar% - }% - \fi% - \protected@edef\@tempa{% - \noexpand\glossary{% - #1\levelchar% - \ifx\saved@macroname\@empty% - \tud@general@name% - \else% - \tud@implementation@name% - \fi% - \levelchar% - \ifx\saved@macroname\@empty\else% - \@tempb% - \fi% - #2 #3% - \actualchar% - #3% (#2)% - }% +\renewcommand*\changes@[3]{% + \ifnum\@parse@version@1993/01/01\@nil<\expandafter\@parse@version@#2//00\@nil% + \expandafter\@gobble% + \else% + \expandafter\@firstofone% + \fi{\ClassWarning{\TUD@Class@Name}{The given date `#2' seems to be invalid}}% + \changes@@{#1}{#2}{#3}% +} +\ifdefined\tudxdyflag + \newcommand*\changes@@[3]{% + \protected@edef\@tempa{% + \noexpand\glossary{% + #1\ifdoc@reportchangedates\space -- #2\fi + \levelchar + \ifx\saved@macroname\@empty + \string~\actualchar\tud@general@name% + \else + \ifx\tud@idx@parent\relax\else + \expandafter\@firstoftwo\tud@idx@parent\actualchar + \expandafter\@secondoftwo\tud@idx@parent:\levelchar + \fi + \tud@idx@sortkey\actualchar\tud@idx@format% + \fi + :\levelchar + #2\space\protecting{#3}\actualchar\protecting{#3}% }% - \else% - \let\@tempa\relax% - \fi% + }% \@tempa\endgroup\@esphack% }% -\else% +\else \renewcommand*\changes@[3]{% \protected@edef\@tempa{% \noexpand\glossary{% - #1\levelchar% - \ifx\saved@macroname\@empty% - \quotechar!% - \actualchar% - \tud@general@name% - :\levelchar% - \else% - \ifx\parameter@parent@changes\relax\else% - \parameter@parent@changes zzz\space% - \fi% - \saved@indexname% - \ifx\saved@indextype\@empty\else% - \space\saved@indextype% - \fi% - \actualchar% - \string\verb\quotechar*% - \verbatimchar\saved@macroname% - \verbatimchar% - \ifx\saved@indextype\@empty\else% - \index@type{\saved@indextype}% - \fi% - \ifx\parameter@parent@changes\relax% - :\levelchar% - \else% - :\space% - \fi% - \fi% - #3% + #1\ifdoc@reportchangedates\space -- #2\fi + \levelchar + \ifx\saved@macroname\@empty + \quotechar!\actualchar\tud@general@name% + \else + \ifx\tud@idx@parent\relax\else + \expandafter\@firstoftwo\tud@idx@parent\space--\space% + \fi + \tud@idx@sortkey\actualchar + \ifx\tud@idx@parent\relax\else + \expandafter\@secondoftwo\tud@idx@parent\noexpand\,--\noexpand\,% + \fi + \tud@idx@format% + \fi + :\levelchar + #2\space\protecting{#3}\actualchar\protecting{#3}% }% }% \@tempa\endgroup\@esphack% }% -\fi% -\CheckCommand*\@wrglossary[1]{% - \protected@write\@glossaryfile{}% - {\string\glossaryentry{#1}{\thepage}}% - \endgroup - \@esphack% -} -\def\@wrglossary#1{% - \ifx\saved@macroname\@empty% +\fi +\ifdefined\tudxdyflag +\newcommand*\tud@xdy@wrglossary[1]{% + \@tud@res@swafalse% + \ifx\special@index\@gobble\else\ifcodeline@index + \ifx\saved@macroname\@empty\else\@tud@res@swatrue\fi + \fi\fi + \global\advance\c@CodelineNo\@ne% \protected@write\@glossaryfile{}{% - \string\glossaryentry{#1|usage}{\thepage}% + \string\glossaryentry{#1|change}% + {\tud@xdy@reference{\if@tud@res@swa\number\c@CodelineNo\else0\fi}}% }% - \else% - \ifcodeline@index% - \global\advance\c@CodelineNo\@ne% - \protected@write\@glossaryfile{}{% - \string\glossaryentry{#1|main}{\filesep\number\c@CodelineNo}% - }% - \global\advance\c@CodelineNo\m@ne% - \else% - \protected@write\@glossaryfile{}{% - \string\glossaryentry{#1|main}{\thepage}% - }% - \fi% - \fi% + \global\advance\c@CodelineNo\m@ne% \endgroup% \@esphack% } -\newcommand*\tud@lst@subsub{} -\newcommand*\tud@lst@subsubsub{} -\newcommand*\subsubsubitem{\@idxitem\hspace*{35\p@}} +\fi +\newcommand*\tud@lst@@sub{} +\newcommand*\tud@lst@@@sub{} \newcommand*\efil{\hfil\nopagebreak}% \newcommand*\tud@lst@def{% \newcommand*\tud@lst@values{}% - \newif\if@tud@lst@multi% + \tud@newif\if@tud@lst@multi% \newcommand*\tud@lst@init{% \let\tud@lst@values\relax% - \let\tud@lst@subsub\relax% + \let\tud@lst@@sub\relax% \@tud@lst@multifalse% }% \newcommand*\tud@lst@add[1]{% \ifx\tud@lst@values\relax\else% \@tud@lst@multitrue% - \def\tud@lst@subsub{\subsubitem}% + \def\tud@lst@@sub{\subitem}% \fi% - \listadd\tud@lst@values{\tud@lst@subsub ##1}% + \listadd\tud@lst@values{\tud@lst@@sub ##1}% }% \newcommand*\tud@lst@process{% \if@tud@lst@multi% @@ -982,18 +1168,18 @@ \tud@lst@init% }% \newcommand*\tud@lst@@values{}% - \newif\if@tud@lst@@multi% + \tud@newif\if@tud@lst@@multi% \newcommand*\tud@lst@@init{% \let\tud@lst@@values\relax% - \def\tud@lst@subsub{\subsubitem}% - \def\tud@lst@subsubsub{\space}% + \def\tud@lst@@sub{\subitem}% + \def\tud@lst@@@sub{\space}% \@tud@lst@@multifalse% }% \newcommand*\tud@lst@@add[1]{% \@tud@lst@multitrue% \ifx\tud@lst@@values\relax\else% \@tud@lst@@multitrue% - \def\tud@lst@subsubsub{\subsubsubitem}% + \def\tud@lst@@@sub{\subsubitem}% \fi% \listadd\tud@lst@@values{##1}% }% @@ -1001,20 +1187,100 @@ \if@tud@lst@@multi% \appto\tud@lst@values{\efill}% \fi% - \edef\tud@reserved####1{% + \protected@edef\tud@reserved####1{% \noexpand\listadd\noexpand\tud@lst@values{% - \expandonce\tud@lst@subsubsub####1% + \expandonce\tud@lst@@@sub####1% }% }% \forlistloop{\tud@reserved}{\tud@lst@@values}% \tud@lst@@init% }% } +\DeclareHookRule{begindocument/before}{doc/hyperref}{<}{.} +\AddToHook{begindocument/before}{% + \CheckCommand*\@wrindex[1]{% + \protected@write\@indexfile{}{\string\indexentry{#1}{\thepage}}% + \endgroup + \@esphack% + } + \CheckCommand*\codeline@wrindex[1]{% ltxdoc + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@indexfile{% + \string\indexentry{#1}{\filesep\number\c@CodelineNo}% + }% + \endgroup + \fi + } + \@ifpackageloaded{hypdoc}{% + \CheckCommand*\filesep{} + \CheckCommand*\doc@handleencap[1]{% + \encapchar hdclindex{\the\c@HD@hypercount}{#1}% + } + \CheckCommand*\HD@codeline@wrindex[1]{% + \begingroup + \let\HDorg@encapchar\encapchar + \def\encapchar##1\encapchar##2\@nil{% + \HDorg@encapchar + hdclindex{\the\c@HD@hypercount}{##1}% + }% + \codeline@wrindex{#1\encapchar\encapchar\@nil}% + \endgroup + } + \CheckCommand*\HD@page@wrindex[1]{% + \begingroup + \let\HDorg@encapchar\encapchar + \def\encapchar##1\encapchar##2\@nil{% + \HDorg@encapchar + hdpindex{##1}% + }% + \HDorg@index{#1\encapchar\encapchar\@nil}% + \endgroup + } + \CheckCommand*\@wrglossary[1]{% + \let\HDorg@encapchar\encapchar + \def\encapchar##1\encapchar##2\@nil{% + \HDorg@encapchar + hdpindex{##1}% + }% + \HDorg@wrglossary{#1\encapchar\encapchar\@nil}% + } + \CheckCommand*\HDorg@wrglossary[1]{% + \protected@write\@glossaryfile{}% + {\string\glossaryentry{#1}{\thepage}}% + \endgroup + \@esphack% + } + }{% + \CheckCommand*\@wrglossary[1]{% + \protected@write\@glossaryfile{}% + {\string\glossaryentry{#1}{\thepage}}% + \endgroup + \@esphack% + } + } + \ifdefined\tudxdyflag + \ifx\special@index\@gobble\else + \ifcodeline@index + \let\special@index\tud@xdy@codeline@wrindex + \else + \let\special@index\tud@xdy@page@wrindex + \fi + \@ifpackageloaded{hypdoc}{% + \let\HD@codeline@wrindex\tud@xdy@codeline@wrindex + \let\HD@page@wrindex\tud@xdy@page@wrindex + }{}% + \fi + \let\filesep\tud@xdy@filesep + \def\doc@handleencap#1{\encapchar #1} + \let\@wrindex\tud@xdy@wrindex + \let\@wrglossary\tud@xdy@wrglossary + \fi +} \ifdefined\tudxdyflag - \newcommand*\tud@write@replace{}% - \newwrite\tud@write@replace% - \newcommand*\tud@read@replace{}% - \newread\tud@read@replace% + \tud@newwrite\tud@xdy@write% + \tud@newread\tud@xdy@read% \def\actualchar{<|1|>}% \def\quotechar{<|2|>}% \def\levelchar{<|3|>}% @@ -1022,44 +1288,57 @@ \endlinechar=\m@ne\relax% \def\tud@reserved#1#2{% \IfFileExists{\jobname.#1}{% - \immediate\openin\tud@read@replace=\jobname.#1\relax% - \immediate\openout\tud@write@replace=\jobname-xdy.#1\relax% + \immediate\openin\tud@xdy@read=\jobname.#1\relax% + \immediate\openout\tud@xdy@write=\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% + \loop\unless\ifeof\tud@xdy@read% + \readline\tud@xdy@read to\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% + \expandafter{\quotechar"}{"}% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% + \expandafter{\quotechar!}{!}% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% + \expandafter{\quotechar:}{:}% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% + \expandafter{\quotechar @}{@}% + \tud@replace@@in\tud@line@replace{"}{""}% + \tud@replace@@in\tud@line@replace{!}{"!}% + \tud@replace@@in\tud@line@replace{:}{":}% + \tud@replace@@in\tud@line@replace{@}{"@}% + \tud@replace@@in\tud@line@replace{\"@}{"\"@}% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\actualchar}{@}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar}{"}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\levelchar}{!}% - \tud@replace\tud@line@replace{" @}{}% - \ifeof\tud@read@replace\else% - \immediate\write\tud@write@replace{% + \tud@replace@@in\tud@line@replace{" @}{}% + \ifeof\tud@xdy@read\else% + \immediate\write\tud@xdy@write{% \unexpanded\expandafter{\tud@line@replace}% }% \@tempswatrue% \fi% \repeat% - \immediate\closein\tud@read@replace% - \immediate\closeout\tud@write@replace% + \immediate\closein\tud@xdy@read% + \immediate\closeout\tud@xdy@write% \ifnum\pdf@shellescape=\@ne\relax% \if@tempswa% \ShellEscape{% texindy\space% - -o \jobname.#2\space% - -M \@currname-#2.xdy\space% - -t \jobname-#2.xlg\space% + -M \@currname-#2.xdy\space% + \ifdefvoid{\inputencodingname}{% + -C\space utf8% + }{% + -C\space\inputencodingname% + }\space% + -t \jobname-#2.xlg\space% + -o \jobname.#2\space% \jobname-xdy.#1% }% \else% - \immediate\openout\tud@write@replace=\jobname.#2\relax% - \immediate\closeout\tud@write@replace% + \immediate\openout\tud@xdy@write=\jobname.#2\relax% + \immediate\closeout\tud@xdy@write% \fi% \fi% }{}% @@ -1077,18 +1356,59 @@ }% \fi% \fi -\IndexPrologue{\addsec{\indexname}\tud@index@text} -\GlossaryPrologue{\addsec{\tud@changes@name}} \DeclareNewTOC[% - type=todo,% listname={\tud@todo@name},% - name=ToDo,% - tocentryindent=\z@,% owner=\@currname,% ]{tdo} -\setuptoc{tdo}{totoc} -\newcommand*\PrintToDos{\ifdefined\tudfinalflag\else\listoftodos\fi} -\patchcmd{\@docinclude}{% +\setuptoc{tdo}{totoc,noindent} +\newcommand*\PrintToDos{\ifdefined\tudfinalflag\else\listoftoc{tdo}\fi} +\ifdefined\tudfinalflag +\NewDocumentCommand\ToDo{mo}{} +\else% +\NewDocumentCommand\ToDo{mo}{% + \begingroup% + \csuse{phantomsection}% + \IfValueTF{#2}{% + \def\tud@reserved{#2}% + }{% + \def\tud@reserved{??}% + }% + \endgraf\ifdim\parskip>\z@\else\smallskip\fi\noindent% + \hfuzz0.8pt% + \leavevmode% + \def\@tempa{\raggedleft\fbox{ToDo:\space\tud@reserved\strut}}% + \ifundef{\marginnote}{% + \expandafter\marginpar\expandafter{\@tempa}% + }{% + \expandafter\marginnote\expandafter{\@tempa}[% + \dimexpr-\fboxsep-\fboxrule\relax% + ]% + }% + \fbox{\parbox{\dimexpr\linewidth-\fboxsep*2\relax}{#1\strut}}% + \endgraf\ifdim\parskip>\z@\else\bigskip\fi\noindent% + \let\@tempa\@empty% + \ifdefvoid{\currentfile}{}{% + \def\@tempa{\,--\,\texttt{\currentfile}}% + }% + \addxcontentsline{tdo}{subsection}{\tud@reserved\@tempa:\space#1}% + \endgroup% + \ignorespaces% +} +\fi +\newcommand*\tud@index@heading{\addsec} +\IndexPrologue{\tud@index@heading{\indexname}\tud@index@text} +\GlossaryPrologue{\tud@index@heading{\tud@changes@name}} +\NewDocumentCommand\PrintBackMatter{s}{% + \begingroup% + \@ifpackageloaded{bookmark}{\bookmarksetup{startatroot,open=false}}{}% + \IfBooleanT{#1}{\renewcommand*\tud@index@heading{\addpart}}% + \deftocheading{tdo}{\tud@index@heading{##1}}% + \IfBooleanT{#1}{\cleardoublepage}\PrintIndex% + \IfBooleanT{#1}{\cleardoublepage}\PrintChanges% + \IfBooleanT{#1}{\cleardoublepage}\PrintToDos% + \endgroup% +} +\patchcmd\@docinclude{% \let\@ltxdoc@PrintIndex\PrintIndex \let\PrintIndex\relax \let\@ltxdoc@PrintChanges\PrintChanges @@ -1101,7 +1421,7 @@ \let\@ltxdoc@PrintToDos\PrintToDos \let\PrintToDos\relax }{}{\tud@patch@wrn{@docinclude}} -\patchcmd{\@docinclude}{% +\patchcmd\@docinclude{% \let\PrintIndex\@ltxdoc@PrintIndex \let\PrintChanges\@ltxdoc@PrintChanges }{% @@ -1109,53 +1429,19 @@ \let\PrintChanges\@ltxdoc@PrintChanges \let\PrintToDos\@ltxdoc@PrintToDos }{}{\tud@patch@wrn{@docinclude}} -\newcommand*\ToDo[2][]{% - \kernel@ifnextchar[{\@ToDo{#2}}{\@ToDo{#2}[]}% -} -\newcommand*\@ToDo{} -\def\@ToDo#1[#2]{% - \ifdefined\tudfinalflag\else% - \begingroup% - \csuse{phantomsection}% - \IfArgIsEmpty{#2}{% - \def\tud@reserved{??}% - }{% - \def\tud@reserved{#2}% - }% - \endgraf% - \hfuzz0.8pt% - \leavevmode% - \def\@tempa{\raggedleft\fbox{ToDo:\space\tud@reserved\strut}}% - \ifdefined\marginnote% - \expandafter\marginnote\expandafter{\@tempa}[% - \dimexpr-\fboxsep-\fboxrule\relax% - ]% - \else% - \expandafter\marginpar\expandafter{\@tempa}% - \fi% - \fbox{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1\strut}}% - \endgraf% - \let\@tempa\@empty% - \ifdefined\currentfile% - \def\@tempa{\,--\,\texttt{\currentfile}}% - \fi% - \addxcontentsline{tdo}{todo}{\tud@reserved\@tempa:\space#1}% - \endgroup% - \fi% -} -\AfterPackage{mweights}{% +\AfterPackage*{mweights}{% \CheckCommand*\MacroFont{% \fontencoding\encodingdefault% \fontfamily\ttdefault% \fontseries\mddefault% - \fontshape\updefault% + \fontshape\shapedefault% \small% }% \renewcommand*\MacroFont{% \fontencoding\encodingdefault% \fontfamily\ttdefault% \fontseries\mdseries@tt% - \fontshape\updefault% + \fontshape\shapedefault% \small% }% \CheckCommand*\AltMacroFont{% @@ -1176,20 +1462,12 @@ \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% }% } -\PassOptionsToPackage{ttfont=lmtt}{tudscrfonts} -\AfterPackage{tudscrfonts}{% - \AtEndPreamble{% - \ifnum\tud@ttfont@num>\z@\relax% - \edef\mdseries@tt{\tud@ttfont@bf}% - \fi% - }% -} \newcommand*\tud@setarea{% - \setlength\topmargin{-1in}% - \setlength\headheight{0pt}% - \setlength\headsep{3em}% - \setlength\footskip{1.5\headsep}% - \setlength\textheight{\dimexpr\paperheight-2.5\headsep-\footskip\relax}% + \tud@setdim\topmargin{-1in}% + \tud@setdim\headheight{0pt}% + \tud@setdim\headsep{3em}% + \tud@setdim\footskip{\headsep}% + \tud@setdim\textheight{\paperheight-\headsep*5/2-\footskip*3/2}% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% @@ -1197,254 +1475,220 @@ \begingroup% \MacroFont\selectfont% \settowidth\@tempdima{\space}% - \setlength\@tempdima{80\@tempdima}% - \addtolength\@tempdima{\MacroIndent}% + \tud@setdim\@tempdima{80\@tempdima}% + \tud@addtodim\@tempdima{\MacroIndent}% \edef\@tempa{% \endgroup% - \noexpand\setlength\noexpand\textwidth{\the\@tempdima}% + \unexpanded{\tud@setdim\textwidth}{\the\@tempdima}% }% \@tempa% \columnwidth=\textwidth% \hsize=\columnwidth% \linewidth=\hsize% - \setlength\columnsep{1em}% - \setlength\marginparsep{1em}% - \setlength\marginparwidth{% - \dimexpr\paperwidth-\textwidth-2\marginparsep\relax% - }% - \setlength\oddsidemargin{\dimexpr\marginparwidth+\marginparsep-1in\relax}% + \tud@setdim\columnsep{1em}% + \tud@setdim\labelsep{1em}% + \tud@setdim\marginparsep{\labelsep}% + \tud@setdim\oddsidemargin{\paperwidth-\textwidth-\labelsep-1in}% + \tud@setdim\marginparwidth{\oddsidemargin+1in-\labelsep-\marginparsep}% } \AtBeginDocument{\tud@setarea} +\TUD@UnwindPackage{tudscrfonts}{% + \RequirePackage{lmodern} + \providecommand*\textcdln[1]{\textsf{#1}}% + \providecommand*\textcdrn[1]{\textcdln{#1}}% + \providecommand*\textcdsn[1]{\textcdln{#1}}% + \providecommand*\textcdbn[1]{\textbf{\textcdln{#1}}}% + \providecommand*\textcdxn[1]{\textcdbn{#1}}% + \providecommand*\textcdli[1]{\textsl{\textcdln{#1}}}% + \providecommand*\textcdri[1]{\textcdli{#1}}% + \providecommand*\textcdsi[1]{\textcdli{#1}}% + \providecommand*\textcdbi[1]{\textbf{\textcdli{#1}}}% + \providecommand*\textcdxi[1]{\textcdbi{#1}}% +} \newrobustcmd*\app[1]{\mbox{\textsl{\textbf{#1}}}} +\newrobustcmd*\bdl[1]{\mbox{\textsf{\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*\default[1]{\val{\textit{#1}}} \newrobustcmd*\pgs[1]{\mbox{\texttt{#1}}} \newrobustcmd*\env[1]{\mbox{\texttt{#1}}} \newrobustcmd*\prm[1]{\mbox{\texttt{#1}}} \newrobustcmd*\cnt[1]{\mbox{\texttt{#1}}} \newrobustcmd*\file[1]{\mbox{\texttt{#1}}} -\AfterPackage{hyperref}{% +\AfterPackage*{hyperref}{% \pdfstringdefDisableCommands{% \let\app\@firstofone% + \let\bdl\@firstofone% \let\cls\@firstofone% \let\pkg\@firstofone% \let\opt\@firstofone% \let\val\@firstofone% + \let\default\@firstofone% \let\pgs\@firstofone% \let\env\@firstofone% \let\prm\@firstofone% \let\file\@firstofone% }% } -\AtEndPreamble{% - \@ifpackageloaded{babel}{}{% - \ClassWarning{\TUD@Class@Name}{Package `babel' not loaded}% - \providecommand*\selectlanguage[1]{}% - \providecommand*\glqq{}% - \providecommand*\grqq{}% - }% - \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\TUD@Class@Name}{Package `csquotes' not loaded}% - \providecommand\enquote[1]{\emph{#1}}% - }% - \@ifpackageloaded{tudscrfonts}{}{% - \RequirePackage{lmodern}[2009/10/30]% - \providecommand*\textcdln[1]{\textsf{#1}}% - \providecommand*\textcdrn[1]{\textcdln{#1}}% - \providecommand*\textcdsn[1]{\textcdln{#1}}% - \providecommand*\textcdbn[1]{\textbf{\textcdln{#1}}}% - \providecommand*\textcdxn[1]{\textcdbn{#1}}% - \providecommand*\textcdli[1]{\textsl{\textcdln{#1}}}% - \providecommand*\textcdri[1]{\textcdli{#1}}% - \providecommand*\textcdsi[1]{\textcdli{#1}}% - \providecommand*\textcdbi[1]{\textbf{\textcdli{#1}}}% - \providecommand*\textcdxi[1]{\textcdbi{#1}}% - }% -} -%%% From File: tudscr-texindy.dtx -\catcode`\#=12 +%%%% From File: tudscr-texindy.dtx (no git version info was found) +\edef\tud@res@a{\catcode`\noexpand\#=\the\catcode`\#\relax}% +\@makeother\# \newcommand*\@hashchar{#} -\catcode`\#=6 -\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{% +\tud@res@a +\ifdefined\tudxdyflag +\NewDocumentCommand\tud@xdy@create{s}{% + \begingroup% + \edef\tud@res@a{\@currname-\IfBooleanTF{#1}{gls}{ind}.xdy}% + \expandafter\IfFileExists\expandafter{\tud@res@a}{}{% + \IfBooleanTF{#1}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \edef\tud@res@b{the\if@tud@res@swa glossary\else index\fi}% + \edef\tud@res@a{\noexpand\tud@xdy@@create{\tud@res@b}{\tud@res@a}}% + \tud@res@a% + }% + \endgroup% +} +\newcommand*\tud@xdy@@create[2]{% + \immediate\openout\tud@xdy@write=#2\relax% + \immediate\write\tud@xdy@write{(require "texindy.xdy")}% + \immediate\write\tud@xdy@write{% (markup-index^^J% - \space\space:open^^J% + \@spaces: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\providecommand*\string\lettergroupDefault[1]% + {\string\lettergroup{\string\tud@symbols@name}}\@percentchar^^J% + \space\space\string\providecommand*\string\lettergroup[1]{\@percentchar^^J% + \@spaces\string\belowpdfbookmark% + {\@hashchar1}{#1/\@hashchar1}\@percentchar^^J% + \@spaces\string\par\string\centerline% + {\string\normalsize\string\textbf{\string\textsf{\@hashchar1}}}% + \@percentchar^^J% + \@spaces\string\par\string\smallskip\string\nopagebreak\@percentchar^^J% + \space\space}\@percentchar^^J% + \space\space\string\scan@allowedfalse\@percentchar^^J% +\if@tud@res@swa \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% - \if@tud@xdy@glo% - \write\tud@write@xdy{% - "^^J% - \space\space:close "\string~n\string~n\string\end{#1}\string~n"^^J% - \space\space:hierdepth 4^^J% - )% - }% - \else% - \write\tud@write@xdy{% - "^^J% - \space\space:close "\string~n\string~n\string\end{#1}\string~n"^^J% - \space\space:hierdepth 3^^J% - )% - }% - \fi% - \write\tud@write@xdy{% - (define-location-class^^J% - \space\space"arabic-page-numbers" ("arabic-numbers")% - \space:min-range-length 1^^J% + \space\space\string\def\string\@lettergroup\@hashchar1\string\relax% + {\string\lettergroup{\@hashchar1}}\@percentchar^^J% + \space\space\string\tud@lst@def\@percentchar^^J% +\fi + \space\space\string\providecommand*\string\seesep{/}\@percentchar^^J% + "^^J% Ende des Umgebungsbeginns + \@spaces:close "\string~n\string~n\string\end{#1}\string~n"^^J% + \@spaces:hierdepth 3^^J% + )^^J% + (define-sort-rule-orientations (forward backward forward forward))^^J% + (use-rule-set :run 0^^J% + \@spaces:rule-set ("xy-alphabetize" "xy-resolve-special")^^J% + )^^J% + (use-rule-set :run 1^^J% + \@spaces:rule-set ("xy-resolve-diacritics" "xy-resolve-special")^^J% + )^^J% + (use-rule-set :run 2^^J% + \@spaces:rule-set ("xy-resolve-case" "xy-resolve-special")^^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% + \@spaces(^^J% + \@spaces\@spaces"A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"^^J% + \@spaces\@spaces"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"^^J% + \@spaces\@spaces"a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"^^J% + \@spaces\@spaces"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"^^J% + \@spaces\@spaces"?"^^J% + \@spaces)^^J% )^^J% - (define-location-class^^J% - \space\space"codeline" ("AlphaExtended" :sep "-" "arabic-numbers")% - \space:min-range-length 2^^J% + (define-location-class "hypdoc"^^J% + \@spaces(^^J% + \@spaces\@spaces"arabic-numbers" :sep ":"^^J% + \@spaces\@spaces"AlphaExtended" \space:sep "-" "arabic-numbers" :sep ":"^^J% + \@spaces\@spaces"arabic-numbers"^^J% + \@spaces)^^J% + \@spaces:min-range-length 2^^J% )^^J% - (define-location-class-order ("arabic-page-numbers" "codeline"))^^J% - (markup-range :sep "--")% - }% - \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% + (define-location-class "arabic-page-numbers"^^J% + \@spaces("arabic-numbers")^^J% + \@spaces:min-range-length 2^^J% )^^J% - (merge-rule% - \space"(.*)(@@@@)([\string^@~n]*)"% - \space"\string\1@@@\string\3\string~e"% - \space:again :eregexp% + (define-location-class-order ("hypdoc" "arabic-page-numbers"))^^J% + (markup-range :sep "--")^^J% + (merge-rule :again^^J% + \@spaces"(.*)@(.*)"^^J% + \@spaces"\string\1\string\2\space\string~e"^^J% )^^J% - (merge-rule% - \space"(.*)(@@@)([\string^@~n]*)"% - \space"\string\1@@\string\3\string~e"% - \space:again :eregexp% + (merge-rule :eregexp^^J% + \@spaces"\string\[(.*)\string\]"^^J% + \@spaces""^^J% )^^J% - (merge-rule% - \space"(.*)(@@)([\string^@~n]*)"% - \space"\string\1@\string\3\string~e"% - \space:eregexp :again% +\if@tud@res@swa + (markup-letter-group^^J% + \@spaces:open-head\space\space"\string~n\space\space\string\@gobble{"^^J% + \@spaces:close-head "}"^^J% )^^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 "}"% + (markup-indexentry-list :depth 0^^J% + \@spaces:sep\space\space\space% + "\string~n\string~n\space\space\string\indexspace\string~n"^^J% )^^J% - (markup-indexentry-list% - \space:sep "\string~n\string~n\space\space\string\indexspace\string~n"% - \space:depth 0% + (markup-indexentry \@spaces\space:depth 0^^J% + \@spaces:open\space\space% + "\string~n\space\space\string\@lettergroup\space"^^J% )^^J% - (markup-indexentry\@spaces\space\space% - :open "\string~n\space\space\string\@lettergroup\space"\space:depth 0% + (markup-indexentry-list :depth 1^^J% + \@spaces:open\space\space"\string\relax"^^J% )^^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% + (markup-indexentry \@spaces\space:depth 1^^J% + \@spaces:open\space\space"\string~n\space\space\string\item\space"^^J% )^^J% - (markup-indexentry-list :open "\string\efill" :depth 2)^^J% - (markup-indexentry\@spaces\space\space% - :open "\string~n\@spaces\string\subitem\space" :depth 2% + (markup-indexentry-list :depth 2^^J% + \@spaces:open\space\space"\string\tud@lst@init"^^J% + \@spaces:close "\string~n \@spaces\space\string\tud@lst@process"^^J% )^^J% - (markup-indexentry-list^^J% - \space\space:open\space\space"\string\tud@lst@init"^^J% - \space\space:close "\string~n \@spaces\space\string\tud@lst@process"^^J% - \space\space:depth 3^^J% + (markup-indexentry \@spaces\space:depth 2^^J% + \@spaces:open% + \space\space"\string~n\@spaces\space\space\string\tud@lst@add{"^^J% + \@spaces:close "}"^^J% )^^J% - (markup-indexentry^^J% - \space\space:open% - \space\space"\string~n\@spaces\space\space\string\tud@lst@add{"^^J% - \space\space:close "}"^^J% - \space\space:depth 3^^J% + (markup-indexentry-list :depth 3^^J% + \@spaces:close "\string~n\@spaces\@spaces\string\tud@lst@@process{"^^J% + \@spaces:open\space\space"}\string\tud@lst@@init"^^J% )^^J% - (markup-indexentry-list^^J% - \space\space:close "\string~n\@spaces\@spaces\string\tud@lst@@process{"^^J% - \space\space:open\space\space"}\string\tud@lst@@init"^^J% - \space\space:depth 4^^J% + (markup-indexentry \@spaces\space:depth 3^^J% + \@spaces:open% + \space\space"\string~n\@spaces\@spaces\string\tud@lst@@add{"^^J% + \@spaces:close "}"^^J% + )^^J% +\else + (markup-indexentry-list :open "\string\efil" :depth 1)^^J% +\fi + (markup-locclass-list^^J% + \@spaces:open\space\space"\string\pfill\space"^^J% + \@spaces:close "\string\relax"^^J% + \@spaces:sep\space\space\space",\space"^^J% )^^J% - (markup-indexentry^^J% - \space\space:open% - \space\space"\string~n\@spaces\@spaces\string\tud@lst@@add{"^^J% - \space\space:close "}"^^J% - \space\space:depth 4^^J% - )% - }% - \else% - \write\tud@write@xdy{% - (markup-indexentry-list :open "\string\efil" :depth 1)% - }% - \fi% - \write\tud@write@xdy{% - (markup-locclass-list% - \space:open "\string\pfill\space"% - \space:close "\string\relax"% - \space:sep ",\space"% - )% - }% - \write\tud@write@xdy{% (markup-attribute-group-list :sep ", ")^^J% - (define-attributes (("usage") ("main") ("default")))^^J% - (markup-locref :attr "usage"% - \space:open "\string\usage{"\space:close "}"% + (define-attributes (("usage") ("main") ("code") ("change") ("default")))^^J% + (markup-locref :attr "change"^^J% + \@spaces:open"\string\tud@xdy@mapping{change}{"^^J + \@spaces:close "}"^^J% + )^^J% + (markup-locref :attr "code"^^J% + \@spaces:open "\string\tud@xdy@mapping{code}{"^^J% + \@spaces:close "}"^^J% + )^^J% + (markup-locref :attr "usage"^^J% + \@spaces:open "\string\tud@xdy@mapping{usage}{"^^J% + \@spaces:close "}"^^J% + )^^J% + (markup-locref :attr "main"^^J% + \@spaces:open "\string\tud@xdy@mapping{main}{"^^J% + \@spaces:close "}"^^J% )^^J% - (markup-locref :attr "main"% - \space\space:open "\string\main{"\space\space:close "}"% - )% - }% - \closeout\tud@write@xdy% }% + \immediate\closeout\tud@xdy@write% } -\tud@xdy@create{ind} -\tud@xdy@create[theglossary]{gls} -}{} -\endgroup +\tud@xdy@create +\tud@xdy@create* +\fi \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 330fc11396b..4ba262389fe 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,fonts') +%% tudscr-version.dtx (with options: `package,fonts,identify') %% tudscr-fonts.dtx (with options: `package,fonts,identify') %% tudscr-base.dtx (with options: `package,fonts,load') %% tudscr-fonts.dtx (with options: `package,fonts,option') @@ -12,14 +12,15 @@ %% 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') +%% tudscr-comp.dtx (with options: `package,fonts,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -35,61 +36,76 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-fonts.dtx +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +%%%% From File: tudscr-fonts.dtx (no git version info was found) \ProvidesPackage{tudscrfonts}[% - 2021/07/15 v2.06n TUD-Script - package - (corporate design fonts)% + 2022/08/09 v2.06o TUD-Script + package (corporate design fonts)% ] -\ifcsname KOMAClassName\endcsname\else - \RequirePackage{scrextend}[2020/09/21] -\fi +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] +%%%% From File: tudscr-fonts.dtx (no git version info was found) +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +\AtEndOfPackage{\tud@catcodes@restore} +\ifundef{\KOMAClassName}{% + \RequirePackage{scrextend}[% + 2022/05/01 v3.36 KOMA-Script + ]% +}{} \@tempswafalse% \@for\@tempa:={% tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,tudposter,tudmathposter% }\do{% - \@ifclassloaded{\@tempa}{% - \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi% - }{}% + \if@tempswa\else + \@ifclassloaded{\@tempa}{\@tempswatrue\let\@tempb\@tempa}{}% + \fi }% \if@tempswa% \@ifpackageloaded{fix-tudscrfonts}{}{% @@ -100,13 +116,10 @@ }% }% \fi% -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] -%%% From File: tudscr-fonts.dtx -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -170,14 +183,11 @@ \TUDoptions{fontspec=false}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -192,8 +202,8 @@ \tud@locked@bool@preset{@tud@cdmath@active}{false}% \TUD@SpecialOptionAtDocument{tud@math@set}% } -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -226,6 +236,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} \AtEndOfPackage% {% \if@tud@cdoldfont@active% @@ -252,23 +263,33 @@ }% \fi% } -\newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}% - \ifin@\else% - \edef\tud@res@a{% - \noexpand\PackageWarning{tudscrfonts}% - {% - The key `\CurrentOption' should only be\MessageBreak% - used as class option% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% + \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}% + \ifin@\else% + \edef\tud@res@a{% + \noexpand\PackageWarning{tudscrfonts}% + {% + The key `\CurrentOption' should only be\MessageBreak% + used as class option% + }% }% - }% - \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% - \fi - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% + \fi% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% + \PackageWarningNoLine{tudscrfonts}% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } \AtEndOfPackage% @@ -276,17 +297,16 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% - \@tud@x@scr@fontsize@settrue% + \FamilyKeyStateUnknownValue% \PackageWarning{tudscrfonts}% {% The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% }% } -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -299,7 +319,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } \newcommand*\tud@ttfont@num{0} @@ -372,12 +392,12 @@ } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} \TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \newcommand*\tud@atdocument@hook{} \let\tud@atdocument@hook\relax \newcommand*\TUD@SpecialOptionAtDocument[1]{} @@ -393,7 +413,7 @@ \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \newcommand*\TUD@deprecated@key[2]{% \PackageWarning{tudscrfonts}% {% @@ -473,67 +493,31 @@ \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.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@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \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}% + \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% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% \PackageWarningNoLine{tudscrfonts}% {% @@ -542,6 +526,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -617,7 +607,7 @@ \fi% \fi% } -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -632,12 +622,12 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax \tud@if@v@lower{2.05}{% \TUD@key@preset{relspacing}{false}% }{% @@ -650,34 +640,34 @@ \TUD@key@preset{cdfont}{true}% \TUD@key@preset{ttfont}{roboto}% } -\DeclareOption*{\expandafter\KOMAoptions\expandafter{\CurrentOption}} \TUDExecuteOptions{% } +\DeclareOption*{\expandafter\TUD@KOMAoptions\expandafter{\CurrentOption}} \TUDProcessOptions\relax \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% \noexpand\PackageError{tudscrfonts}% {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% package `tudscrfonts'% - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) \newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} \newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -716,11 +706,9 @@ }% }% } -\TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\TUD@RecommendPackage{mweights} +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -733,12 +721,17 @@ \newcommand*\tud@ttfont@fam{tudtt} \newcommand*\tud@ttfont@rb{tudtt} \newcommand*\tud@ttfont@lm{lmtt} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% \TUD@key@preset{ttfont}{lmodern}% } +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -746,8 +739,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% \@ifpackageloaded{opensans}{% \PackageWarningNoLine{tudscrfonts}% @@ -764,6 +757,17 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \fi% + \fi% \fi% } \newcommand*\tud@cdfont@@check[5][-]{% @@ -798,7 +802,7 @@ \boolfalse{#5}% \fi% } -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -815,7 +819,10 @@ }% }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% \PackageWarningNoLine{tudscrfonts}% @@ -823,8 +830,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -838,7 +849,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -856,7 +867,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% \if@tud@res@swa% \appto\tud@res@a{% @@ -870,8 +881,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -888,48 +899,12 @@ \fi% \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% - \etex@unexpanded{\PackageWarning{tudscrfonts}}% - {\tud@res@a} + \unexpanded{\PackageWarningNoLine{tudscrfonts}}% + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} -\newif\if@tud@x@bm@requested -\@ifpackageloaded{bm}{% - \PackageWarning{tudscrfonts}{% - Package `bm' must be loaded after `tudscrfonts'. \MessageBreak% - Otherwise the functionality can not be guaranteed% - }% -}{% -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} -} \newcommand*\tud@x@fontspec@init[2]{% \begingroup% \edef\tud@res@a{% @@ -959,7 +934,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -967,8 +942,9 @@ }% \tud@res@a% } -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -993,13 +969,6 @@ \tud@cs@store{sffamily}% \tud@cs@store{ttfamily}% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \tud@cdfont@set% \tud@cdfont@symbols@set% \tud@ttfont@set% @@ -1048,10 +1017,17 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% } \newcommand*\tud@cdfont@set{% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1065,7 +1041,6 @@ \fi% \tud@cdfont@@set% \fi% - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1133,7 +1108,7 @@ \tud@res@a% \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname% } -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{% \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list% @@ -1154,35 +1129,57 @@ \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}% \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}% } -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@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% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% + \tud@relspacing@@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}% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@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@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% } \newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1223,28 +1220,33 @@ }{}% \tud@cdfont@declare@textsymb% \fi% - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% \fi% +} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -1267,7 +1269,7 @@ \DeclareTextFontCommand\textcdxi{\cdfontxi}% } \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1285,23 +1287,26 @@ }% \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% \fi% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% \newcommand*\textuln{}% \newcommand*\texturn{}% @@ -1329,26 +1334,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% \if@tud@cdfont@db@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1367,7 +1352,7 @@ \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% \fi% \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -1376,7 +1361,7 @@ \newcommand*\tud@db@wrn{% \PackageWarning{tudscrfonts}% {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -1418,7 +1403,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -1426,29 +1411,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% \PackageWarning{tudscrfonts}% {The font `#1' is unknown}% @@ -1457,20 +1442,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% \PackageWarning{tudscrfonts}% {The font `#1' is unknown}% @@ -1478,8 +1463,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -1488,9 +1472,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -1500,8 +1484,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -1544,12 +1527,12 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false \if@tud@x@fontspec@enabled% - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -1634,24 +1617,24 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% }{}% \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% @@ -1666,8 +1649,18 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% + \PackageWarningNoLine{tudscrfonts}% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -1751,7 +1744,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -1779,7 +1772,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -1792,7 +1785,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -1891,26 +1884,19 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% \else% - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% @@ -1918,43 +1904,9 @@ \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% \tud@res@c% } -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} \newcommand*\tud@cdmath@init{% \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2000,12 +1952,11 @@ subdued,defaultmathsizes,nosmalldelims,noequal,% defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% - \RequirePackage{mathastext}[2018/08/22]% + \RequirePackage{mathastext} \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% @@ -2015,104 +1966,128 @@ \fi% \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% \tud@cdmath@also@greeks% - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \fi% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } -\newcommand*\tud@x@mathastext@enc{OT1} -\newcommand*\tud@cdmath@@init[2]{% - \tud@cdfont@@set% - \tud@ttfont@@set% +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} +\newcommand*\tud@cdmath@@@init[9]{% \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% \AtBeginDocument{% @@ -2121,14 +2096,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% \else% \@ifpackageloaded{mdsymbol}{}{% \appto\tud@cdmath@wrn{% @@ -2141,18 +2116,73 @@ }% \fi% \fi% - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \fi% + }% +} +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% }{}% - \if@tud@cdoldfont@active% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% + }{}% + \AtBeginDocument{% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - \fi% + }% + }% +\fi +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% + \if@tud@cdmath@active% + \tud@if@strequal{#1}{normal}{% + \edef\tud@res@a{\tud@cdmath@normal@name}% + }{% + \tud@if@strequal{#1}{bold}{% + \edef\tud@res@a{\tud@cdmath@bold@name}% + }{}% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% }% } \newcommand*\tud@cdmath@symb@list{} @@ -2181,7 +2211,7 @@ }% \tud@res@a% } -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% @@ -2204,7 +2234,7 @@ } \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% \begingroup% \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% \def\tud@res@b##1"##2\@nil{"##2}% @@ -2307,7 +2337,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% @@ -2316,13 +2346,12 @@ \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% }% } -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% \ifcase\tud@slantedgreek@num\relax% upright \tud@math@loop@greeks@all\tud@math@upright@greeks% @@ -2337,7 +2366,7 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% + \expandafter\mathversion\expandafter{\math@version}% } \newcommand*\tud@math@upright@greeks[1]{% \ifcsundef{up#1}{}{% @@ -2351,6 +2380,98 @@ \csletcs{other#1}{up#1}% }% } +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar} + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterAtEndOfPackage*{siunitx}{% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } +} +\tud@newif\if@tud@x@bm@requested +\@ifpackageloaded{bm}{% + \PackageWarning{tudscrfonts}{% + Package `bm' must be loaded after `tudscrfonts'. \MessageBreak% + Otherwise the functionality can not be guaranteed% + }% +}{% +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \tud@cdmath@set% + \fi% + \RequirePackage{bm} + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} \AtEndPreamble{% \if@tud@x@mweights@enabled% \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% @@ -2361,41 +2482,35 @@ \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% \fi% \tud@cdfont@check% - \ifdef{\sectfont}{}{\let\sectfont\relax}% \tud@cdfont@init% \tud@ttfont@init% - \tud@cdmath@init% - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% \tud@font@set% + \tud@cdmath@init% + \tud@x@bm@delayed% \tud@math@map@greeks% \tud@math@checkslanted@greeks% \AtBeginDocument{\tud@math@set}% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@relspacing@set +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@relspacing@setfalse% + \fi% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% + \fi% + \if@tud@math@set% + \tud@math@set% + \global\@tud@math@setfalse% + \fi% +} +%%%% From File: tudscr-comp.dtx (no git version info was found) \TUD@deprecated@cs{textcdfont}{textcd}% \TUD@deprecated@cs{tudfont}{cdfont}% \TUD@deprecated@cs{univln}{cdfontln}% @@ -2425,48 +2540,13 @@ \fi% } \if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi \def\tud@res@a#1{% \TUD@deprecated@cs{var#1}{it#1}% } \tud@math@loop@greeks@uc\tud@res@a% -%%% From File: tudscr-misc.dtx -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set -\newcommand*\tud@atdocument@process{% - \if@tud@font@set% - \tud@font@set% - \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% - \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% - \fi% - \if@tud@math@set% - \tud@math@set% - \global\@tud@math@setfalse% - \fi% -} -\if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% -\fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} \endinput %% %% End of file `tudscrfonts.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls index 5e6a281e05e..688abca437e 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.cls @@ -4,21 +4,23 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,manual,inherit') -%% tudscr-manual.dtx (with options: `class,manual') +%% tudscr-version.dtx (with options: `class,manual,identify,inherit') %% tudscr-base.dtx (with options: `class,manual,inherit,load') +%% tudscr-misc.dtx (with options: `class,manual,option') %% tudscr-manual.dtx (with options: `class,manual,option') %% tudscr-misc.dtx (with options: `class,manual,inherit,execute') +%% tudscr-misc.dtx (with options: `class,manual,body') %% tudscr-manual.dtx (with options: `class,manual,body') %% tudscr-fields.dtx (with options: `class,manual,body') %% tudscr-localization.dtx (with options: `class,manual,body') %% tudscr-texindy.dtx (with options: `class,manual') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -34,73 +36,212 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesWrapperClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesWrapperClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@Parent{#2}% \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% \TUD@Class@Info% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesWrapperClass{tudscrmanual}{tudscrreprt}{manual class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-manual.dtx -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@Parent}} \AfterClass{\TUD@Class@Parent}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-manual.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) +\RequirePackage{scrhack}[% + 2022/05/01 v3.36 KOMA-Script +] +\RequirePackage{xspace} +\xspaceaddexceptions{"=} +\PassOptionsToPackage{quiet}{marginnote} +\RequirePackage{marginnote} +\reversemarginpar +\RequirePackage{shellesc} +\RequirePackage{pdftexcmds} +\PassOptionsToPackage{hyperindex=false}{hyperref} +\AfterPackage*{bookmark}{\bookmarksetup{open,openlevel=1}} +\AfterAtEndOfPackage*{hyperref}{% + \@ifpackageloaded{bookmark}{}{\RequirePackage{bookmark}}% + \hypersetup{colorlinks,linkcolor=blue}% +} +\newcommand*\hrfn[2]{% + \href{#1}{\trim@spaces{#2}}% + \footnote{\strut\url{#1}}% +} +\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}} +\TUD@UnwindPackage{hyperref}{% + \RequirePackage{url} + \providerobustcmd*\url[1]{\texttt{\detokenize{#1}}}% + \providerobustcmd*\nolinkurl[1]{\url{#1}}% + \providerobustcmd*\href[3][]{#3}% + \providecommand*\hypersetup[1]{}% + \providecommand*\phantomsection{}% + \providecommand*\pdfbookmark[3][]{}% + \providecommand*\currentpdfbookmark[2]{}% + \providecommand*\subpdfbookmark[2]{}% + \providecommand*\belowpdfbookmark[2]{}% +} +\AfterPackage*{babel}{\RequirePackage{csquotes}} +\TUD@UnwindPackage{babel}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `babel' not loaded}% + \providecommand*\selectlanguage[1]{}% + \providecommand*\glqq{\quotedblbase}% + \providecommand*\grqq{\textquotedblleft}% + \providecommand*\seename{see}% + \providecommand*\alsoname{see\nobreakspace also}% +} +\TUD@UnwindPackage{csquotes}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `csquotes' not loaded}% + \providecommand\enquote[1]{\emph{#1}}% +} +\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% + }% +} +\tud@newif\if@tud@list@sorted +\newcommand*\tud@list@@sort[1]{% + \ifx\tud@templist\relax% + \def\tud@templist{#1}% + \else% + \@tud@list@sortedfalse% + \let\@tempb\@empty% + \@for\@tempa:=\tud@templist\do{% + \if@tud@list@sorted% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \else% + \expandafter\ifnum\pdf@strcmp{#1}{\@tempa}<\z@\relax% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{% + #1,\@tempa% + }% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{% + \@tempb,#1,\@tempa% + }% + \fi% + \@tud@list@sortedtrue% + \else% + \ifx\@tempb\@empty% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% + \else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% + \fi% + \fi% + \fi% + }% + \if@tud@list@sorted\else% + \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% + \fi% + \let\tud@templist\@tempb% + \fi% +} +\newcommand*\tud@replace@in[3]{% + \begingroup% + \edef\tud@res@a{\expandonce{#1}}% + \let\tud@res@c\@empty% + \def\tud@res@b##1#2##2\@nil{% + \IfArgIsEmpty{##2}{% + \appto\tud@res@c{##1}% + }{% + \appto\tud@res@c{##1#3}% + \tud@res@b##2\@nil% + }% + }% + \expandafter\tud@res@b\tud@res@a#2\@nil% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\expandonce\tud@res@c}% + }% + \tud@res@a% +} +\newcommand*\tud@replace@@in[3]{% + \begingroup% + \protected@edef\tud@res@a{#1}% + \edef\tud@res@a{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@b{% + \unexpanded{\tud@replace@in\tud@res@a}{\detokenize{#2}}{\detokenize{#3}}% + }% + \tud@res@b% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +%%%% From File: tudscr-manual.dtx (no git version info was found) \TUD@key{final}[true]{% \TUD@set@ifkey{final}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -142,7 +283,7 @@ cd=color,% }{\TUD@Class@Parent} \PassOptionsToPackage{automark}{scrlayer-scrpage} -\newif\if@tud@todo +\tud@newif\if@tud@todo \newcommand*\tud@todo@type@pos{} \let\tud@todo@type@pos\relax \newcommand*\tud@todo@type@neg{} @@ -154,7 +295,7 @@ \let\tud@todo@type@neg\relax% \else% \def\@tempa not##1##2##3##4\@nil{% - \ifstr{##1##2##3}{not}{% + \tud@if@strequal{##1##2##3}{not}{% \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% @@ -172,104 +313,136 @@ \expandafter\@tempa\@tempb\@empty\@empty\@empty\@nil% \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{% \expandafter\PassOptionsToClass\expandafter{\CurrentOption}% {\TUD@Class@Parent}% } -\TUDExecuteOptions{% -} \TUDProcessOptions\relax -\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent} -\LoadClass{\TUD@Class@Parent} -%%% From File: tudscr-manual.dtx -\PassOptionsToPackage{log-declarations=false}{xparse} -\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}{2018/04/17}{% - \ClassWarning{\TUD@Class@Name}{% - Package `geometry' was updated so some patches\MessageBreak% - are maybe outdated% +\LoadClass{\TUD@Class@Parent}[% + 2022/08/09 v2.06o TUD-Script +] +%%%% From File: tudscr-misc.dtx (no git version info was found) +\renewcommand*\@pnumwidth{2.1em} +\renewcommand*\@tocrmarg{3.1em} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbi{} +\newrobustcmd*\sbifont{\sffamily\bfseries\itshape} +\DeclareTextFontCommand\textsbi{\sbifont} +\newcommand*\textttit{} +\newrobustcmd*\ttitfont{\ttfamily\itshape} +\DeclareTextFontCommand\textttit{\ttitfont} +\newcommand*\tud@english[1]{% + \iflanguageloaded{english}{\foreignlanguage{english}{#1}}{#1}% +} +\AfterPackage*{babel}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% +} +\kernel@make@fragile\KOMAScript +\edef\KOMAScript{\noexpand\mbox{\expandonce\KOMAScript}\noexpand\xspace} +\robustify\KOMAScript +\robustify\TUDScript +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\KOMAScript{KOMA-Script{}}% + \def\TUDScript{TUD-Script{}}% }% -}{}% +} \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}}% - }{}% +\newcommand*\vKOMAScript{v\TUD@KOMAVersionNumber} +\newrobustcmd*\CD{\tud@english{Corporate Design}\xspace} +\newrobustcmd*\CDs{\tud@english{Corporate Designs}\xspace} +\newrobustcmd*\TUD{Technische Universit\"at Dresden\xspace} +\newrobustcmd*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\TUDForum{\mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace} +\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% } -\RequirePackage{shellesc}[2016/06/07] -\RequirePackage{pdftexcmds}[2016/05/21] -\newcommand*\tud@templist{} -\let\tud@templist\relax -\newcommand*\tud@list@sort[1]{% - \ifdefvoid{#1}{% - \ClassWarning{tudscrmanual}{% - The given list \string#1\space\MessageBreak% - is empty, nothing to sort here% - }% +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\CD{Corporate Design{}}% + \def\CDs{Corporate Designs{}}% + \def\TUD{Technische Universit\"at Dresden{}}% + \def\TnUD{Technischen Universit\"at Dresden{}}% + \def\TUDForum{TUD-LaTeX-Forum{}}% + \def\DDC{DRESDEN-concept{}}% + }% +} +\newrobustcmd*\OpenSans{\textcdbn{Open\nobreakspace Sans}\xspace} +\newrobustcmd*\Univers{\textcdbi{Univers}\xspace} +\newrobustcmd*\DIN{\textcdbi{DIN\nobreakspace Bold}\xspace} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\OpenSans{Open Sans{}}% + \def\Univers{Univers{}}% + \def\DIN{DIN Bold{}}% + }% +} +\newcommand*\GitHubBase[1]{} +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !D(){tud-cd/tudscr} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{https://github.com/#4/}% + \edef\@tempa{{\@tempa\IfValueTF{#5}{issues/#5}{#3}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{#4}}}}% + }% + \the\toks@\xspace% +} +\newcommand*\Download[1]{% + https://github.com/tud-cd/tudscr/releases/download/#1% +} +\NewDocumentCommand\CTAN{!s !o !g}{% + \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\Forum{!s !t' !O{\TUDForum} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% + \the\toks@\xspace% +} +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \tud@setdim\fboxsep{0.25em}% + \fbox{Achtung!}% + }[{#1}]% + \emph{\trim@spaces{#2}}% +} +\newrobustcmd*\TUDScriptContactTitle{% + \ifundef{\emailaddress}{% + \qquad\expandafter\mailto\expandafter{\TUDScriptContact}% }{% - \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% + \expandafter\emailaddress\expandafter{\TUDScriptContact}% }% } -\newif\if@tud@list@sorted -\newcommand*\tud@list@@sort[1]{% - \ifx\tud@templist\relax% - \def\tud@templist{#1}% - \else% - \@tud@list@sortedfalse% - \let\@tempb\@empty% - \@for\@tempa:=\tud@templist\do{% - \if@tud@list@sorted% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \else% - \expandafter\ifnum\pdf@strcmp{#1}{\@tempa}<\z@\relax% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{% - #1,\@tempa% - }% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{% - \@tempb,#1,\@tempa% - }% - \fi% - \@tud@list@sortedtrue% - \else% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \fi% - \fi% - \fi% - }% - \if@tud@list@sorted\else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% - \fi% - \let\tud@templist\@tempb% - \fi% +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{\let\TUDScriptContactTitle\relax}% } +%%%% From File: tudscr-manual.dtx (no git version info was found) \newcommand*\tud@trace@lbl@created@add[1]{} \newcommand*\tud@trace@lbl@missing@add[1]{} \NewDocumentCommand\tracinglabels{!s !O{missing}}{% \newcommand*\tud@trace@lbl@created@list{}% \newcommand*\tud@trace@lbl@missing@list{}% \@tempswafalse% - \ifstr{#2}{created}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \tud@if@strequal{#2}{created}{\@tempswatrue}{}% + \tud@if@strequal{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@created@add[1]{% \typeout{% @@ -288,8 +461,8 @@ }% \fi% \@tempswafalse% - \ifstr{#2}{missing}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \tud@if@strequal{#2}{missing}{\@tempswatrue}{}% + \tud@if@strequal{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@missing@add[1]{% \typeout{% @@ -334,8 +507,6 @@ }% } \@onlypreamble\tracingbundle -\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} -\PassOptionsToPackage{open,openlevel=0}{bookmark} \AfterPackage*{hyperref}{% \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}% \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% @@ -343,11 +514,11 @@ \newcommand*\tud@manualname{tudscr}% \NewDocumentCommand\tudhyperdef{s t' m}{% \@tempswafalse% - \IfBooleanT{#1}{\@tempswatrue\setlength\@tempdima{3\baselineskip}}% - \IfBooleanT{#2}{\@tempswatrue\setlength\@tempdima{15\baselineskip}}% + \IfBooleanT{#1}{\@tempswatrue\tud@setdim\@tempdima{3\baselineskip}}% + \IfBooleanT{#2}{\@tempswatrue\tud@setdim\@tempdima{15\baselineskip}}% \if@tempswa% \raisebox{\@tempdima}[0pt][0pt]{\hyperdef{\tud@manualname}{#3}{}}% - \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax% + \par\nobreak\vskip-\parskip\vskip-\baselineskip% \@afterindentfalse\@afterheading% \else% \Hy@raisedlink{\hyperdef{\tud@manualname}{#3}{}}\ignorespaces% @@ -357,7 +528,7 @@ }% \newcommand*\tudhyperref[2]{\hyperref{}{\tud@manualname}{#1}{#2}}% \newcommand*\autorefname[1][current]{% - \ifstr{#1}{current}{% + \tud@if@strequal{#1}{current}{% \expandafter\HyPsd@@autorefname\@currentHref\@nil% }{% \auto@refname\HyPsd@@autorefname{#1}% @@ -382,12 +553,6 @@ Nevertheless, essential commands are rudimentarily\MessageBreak% defined. At least the package `url' is loaded% }% - \providecommand*\hypersetup[1]{}% - \providecommand*\href[3][]{#3}% - \providecommand*\phantomsection{}% - \providecommand*\texorpdfstring[2]{#1}% - \RequirePackage{url}[2013/09/16]% - \providecommand*\nolinkurl[1]{\url{#1}}% \providecommand*\hyperpage[1]{#1}% \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}% \providecommand*\hyperdef[3]{\label{#1.#2}#3}% @@ -410,28 +575,10 @@ \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% } -\newcommand*\hrfn[2]{% - \href{#1}{\trim@spaces{#2}}% - \footnote{% - \begingroup% - \def\_{_}% - \edef\@tempa{#1}% - \strut\expandafter\url\expandafter{\@tempa}% - \endgroup% - }% -} -\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}}% -\AfterPackage*{hyperref}{% - \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% - \let\bbl@info\@gobble\csname HyPsd@babel@% - }{}{\tud@patch@wrn{pdfstringdef}}% -} -\RequirePackage{varioref}[2011/10/02] -\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} -\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -\TUD@UnwindPackage{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -\newif\if@tud@declare -\newif\if@openindex +\RequirePackage{varioref} +\renewcommand*\fullref[1]{\hyperref[{#1}]{\autoref*{#1} \vpageref{#1}}} +\tud@newif\if@tud@declare +\tud@newif\if@openindex \newcommand*\tud@declare@num{0} \newcommand*\tud@declaration@list{} \let\tud@declaration@list\relax @@ -441,10 +588,10 @@ }{% \tud@declare@end{#2}{\printdeclarationlist}% } -\newif\if@tud@obsolete +\tud@newif\if@tud@obsolete \NewDocumentEnvironment{Obsolete}{momoog}{% \@tud@obsoletetrue% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% \listadd\tud@declaration@list{% \def\tud@declare@num{1}% #3% @@ -472,7 +619,7 @@ }% \@tempb#1\@nil% \fi% - \eaddto@hook\toks@{\expandafter{\@tempa}}% + \addto@hook@expandafter\toks@{\expandafter{\@tempa}}% \the\toks@% }% }% @@ -484,10 +631,10 @@ } \newcommand*\tud@preset@list{} \let\tud@preset@list\relax -\newif\if@tud@preset@list +\tud@newif\if@tud@preset@list \newcommand*\tud@additional@list{} \let\tud@additional@list\relax -\newif\if@tud@additional@list +\tud@newif\if@tud@additional@list \NewDocumentCommand\tud@declare@start{omr[]r[]m}{% \Changed@At@CreateList[#2]{#1}% \IfValueTF{#3}{% @@ -554,15 +701,19 @@ \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}} +\tud@newglue\tud@lastskip +\pretocmd\index{% + \tud@lastskip=\lastskip% +}{}{\tud@patch@wrn{index}} +\pretocmd\label{% + \tud@lastskip=\lastskip% +}{}{\tud@patch@wrn{label}} \NewDocumentCommand\printdeclarationlist{!s !d()}{% \ifx\tud@declaration@list\relax\else% \ifhmode% \vskip\medskipamount% \else% - \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax% + \tud@setglue\@tempskipa{\medskipamount-\tud@lastskip}% \ifdim\@tempskipa>\z@\relax% \addpenalty{\@beginparpenalty}% \addvspace{\@tempskipa}% @@ -619,6 +770,7 @@ \print@changedatlist{#1}{#2}% } \newrobustcmd*\bsc{\@backslashchar} +\newrobustcmd*\txb{{\raise.05em\hbox{\kern.05em\textbar\kern.05em}}} \newrobustcmd*\suffix[1]{\begingroup~\scriptsize(#1)\endgroup} \providecommand*\NewExpandableDocumentCommand[3]{% \NewDocumentCommand#1{#2}{}% @@ -662,10 +814,12 @@ \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}} +\newcommand*\tud@if@bdl[2]{% + \tud@if@strequal{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}% +} \NewExpandableDocumentCommand\@Application{sm}{#2} \NewDocumentCommand\Application{s m !d() !d<> !d||}{% - \Markup@SetFormat{\sbsfont}% + \Markup@SetFormat{\sbifont}% \IfValueTF{#4}{% \Process@Markup{\Application{#2}}(#3)<#4>% }{% @@ -901,7 +1055,7 @@ \let\textOR\relax% \let\emph\@firstofone% #1% - \ifxblank{#2}{% + \tud@if@strblank{#2}{% \let\tud@reserved\endgroup% }{% \protected@edef\tud@reserved{\noexpand\endgroup#3}% @@ -987,18 +1141,17 @@ \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@if@strequal{#2}{\tud@bdl@dflt}{}{% \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% - }{% + \ifcsundef{r@#1}{% \expandafter\@secondoftwo% + }{% + \expandafter\@firstoftwo% }% } \NewDocumentCommand\tud@lbl@create{m}{\tud@lbl@@create#1} @@ -1012,7 +1165,7 @@ \IfValueTF{#2}{% \tud@attr@get\@tempb{#2}% \IfValueTF{#1}{% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% \edef\@tempa{\tud@bdl@dflt:\@tempb:#2}% }{% \edef\@tempa{#1:\@tempb:#2}% @@ -1032,7 +1185,7 @@ }% \@tempc% } -\newif\if@tud@disposition +\tud@newif\if@tud@disposition \newcommand*\ifdisposition{% \if@tud@disposition% \expandafter\@firstoftwo% @@ -1040,7 +1193,7 @@ \expandafter\@secondoftwo% \fi% } -\pretocmd{\tud@sec@format}{% +\pretocmd\tud@sec@format{% \@tud@dispositiontrue% }{}{\tud@patch@wrn{tud@sec@format}} \newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} @@ -1057,7 +1210,7 @@ \tud@toks@{\Process@@MarkupInline}% \tud@lbl@get@curr\tud@lbl@tmp{#4:#1}=#2=% \fi% - \eaddto@hook\tud@toks@{\expandafter{\tud@lbl@tmp}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\tud@lbl@tmp}}% \begingroup% \Markup@Gobble*% \protected@edef\tud@reserved{% @@ -1065,7 +1218,7 @@ \def\noexpand\tud@reserved{#1}% }% \tud@reserved% - \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\tud@reserved}}% \IfValueT{#2}{\addto@hook\tud@toks@{=#2=}}% \IfValueT{#3}{\addto@hook\tud@toks@{[#3]}}% \if@tud@declare% @@ -1084,7 +1237,9 @@ \else% \if@tud@index\else% \IfValueT{#5}{% - \ifxblank{#5}{}{\addto@hook\tud@toks@{}}% + \tud@if@strblank{#5}% + {}% + {\addto@hook\tud@toks@{}}% }% \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}% \fi% @@ -1092,9 +1247,9 @@ \fi% \if@tud@index\else% \IfValueT{#4}{% - \ifxblank{#4}{}{% + \tud@if@strblank{#4}{}{% \tud@trace@bdl@add{#4}% - \ifstr{#6}{none}{}{% + \tud@if@strequal{#6}{none}{}{% \tud@if@lbl@exists{\tud@lbl@tmp}{}{% \ClassWarning{tudscrmanual}{% No existing label \tud@lbl@tmp\space for #4% @@ -1131,20 +1286,21 @@ \let\@tempb\relax% \IfValueT{#6}{% \def\@tempb{% - \ClassWarning{tudscrmanual}% - {% + \ClassWarning{tudscrmanual}{% You've used the unknown cross-reference\MessageBreak% shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak% as well as 'none' \IfValueT{#5}{or 'url' }are valid% }% }% - \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}{}}}}}% + \tud@if@strequal{#6}{auto} {\def\@tempb{ in \autoref{#1}}}{% + \tud@if@strequal{#6}{page} {\def\@tempb{ \vpageref{#1}}}{% + \tud@if@strequal{#6}{ppage}{\def\@tempb{ \reftextfaraway{#1}}}{% + \tud@if@strequal{#6}{full} {\def\@tempb{ in \fullref{#1}}}{% + \tud@if@strequal{#6}{none} {\let\@tempa\@tempc\let\@tempb\relax}{}}}}}% \IfValueT{#5}{% - \ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}% + \tud@if@strequal{#6}{url}% + {\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}% + {}% }% }% }{% @@ -1152,7 +1308,7 @@ \IfValueT{#5}{\def\@tempa{\href{#5}{\@tempc}}}% \let\@tempb\relax% \IfValueT{#6}{% - \ifstr{#6}{none}{\let\@tempa\@tempc}{% + \tud@if@strequal{#6}{none}{\let\@tempa\@tempc}{% \def\@tempb{% \ClassWarning{tudscrmanual}% {% @@ -1184,7 +1340,7 @@ }% \IfValueT{#3}{\appto\@tempa{=#3}}% \IfValueT{#4}{\appto\@tempa{#4}}% - \eaddto@hook\tud@toks@{\expandafter{\@tempa}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\@tempa}}% \the\tud@toks@% } \newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} @@ -1194,11 +1350,7 @@ \undef\Markup@Format \newcommand*\Markup@Suffix{} \NewDocumentCommand\Markup@SetFormat{omod()}{% - \def\Markup@Format##1{% - \def\tud@res@a{#2}% - \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% - \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% - }% + \def\Markup@Format##1{\begingroup#2{\IfValueT{#1}{#1}##1}\endgroup}% \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% \IfValueT{#4}{\renewcommand*\Markup@Declare[1]{#4\Markup@Suffix}}% } @@ -1215,37 +1367,8 @@ {It seems you have forgotten to use \string\Markup@SetFormat.}% }{}% } -\ifundef{\tud@x@textcase@uclcnotmath}{}{% - \NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% - }% - } - \apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% - \DeclareExpandableDocumentCommand\Key{smm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}{##3}}% - }% - \tud@nonchangecase\Term% - \tud@nonchangecase\PageStyle% - \tud@nonchangecase\Font% - \tud@nonchangecase\Color% - }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} -} \PassOptionsToPackage{xindy,splitindex}{imakeidx} -\RequirePackage{imakeidx}[2013/07/11] +\RequirePackage{imakeidx} \indexsetup{% level=\addsec,% noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname},% @@ -1274,12 +1397,12 @@ \let\item\@idxitem \imki@othercode% }% - \patchcmd{\theindex}{% + \patchcmd\theindex{% \imki@indexlevel{\indexname}\imki@indexheaders% }{% \imki@indexheaders% }{}{\tud@patch@wrn{theindex}}% - \patchcmd{\theindex}{% + \patchcmd\theindex{% \ifnum\imki@columns>\@ne \columnsep \imki@columnsep \ifx\imki@idxprologue\relax @@ -1306,25 +1429,30 @@ \fi% }{}{\tud@patch@wrn{theindex}}% \fi% +\newcommand*\tud@xdy@settings{} +\edef\tud@xdy@settings{-M \@currname-ind.xdy -L german-din} \NewDocumentCommand\makexdyindex{s o m !o}{% \let\@tempb\@empty% \IfBooleanT{#1}{% \def\@tempc{\jobname-#4-declare.idx}% - \makeindex[name={#4-declare}]% + \makeindex[name=#4-declare]% \IfFileExists{\@tempc}{% \edef\@tempb{-o \jobname-#4.ind \@tempc}% }{% \ClassWarning{tudscrmanual}{File \@tempc\space not found}% }% }% + \ifundef{\inputencodingname}{}{% + \eappto\tud@xdy@settings{\space-C\space\inputencodingname}% + }% \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={\tud@xdy@settings\space-t \jobname-#4.xlg \@tempb},% }{% - options={-M \@currname-ind.xdy -L german-din -t \jobname.xlg},% + options={\tud@xdy@settings\space-t \jobname.xlg},% }% \IfValueT{#2}{#2}% }% @@ -1339,7 +1467,7 @@ \makexdyindex*{Klassen, Pakete und Dateien}[files] \makexdyindex[columns=1]{\"Anderungsliste}[changelog] \undef\makexdyindex -\newif\if@tud@index +\tud@newif\if@tud@index \addtoeachtocfile{\protect\@tud@indextrue} \newcommand*\tud@idx@key{} \newcommand*\tud@idx@fmt{} @@ -1370,8 +1498,8 @@ }% \tud@reserved% \def#3{#5}% - \tud@replace#2{@}{"@}% - \tud@replace#3{@}{"@}% + \tud@replace@@in#2{@}{"@}% + \tud@replace@@in#3{@}{"@}% \let\tud@idx@bdl\tud@bdl@dflt% \IfValueTF{#8}{% \def\tud@idx@bdl{#8}% @@ -1414,8 +1542,10 @@ \fi% \@tempswafalse% \IfBooleanT{#1}{\@tempswatrue}% - \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% - \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% + \IfValueT{#9}{% + \tud@if@strequal{#9}{declare}{\@tempswatrue}{}% + \tud@if@strequal{#9}{default}{\@tempswatrue}{}% + }% \if@tempswa% \protected@eappto#2{\expandonce\@tempa}% \tud@doifPValue{#6}{\noexpand\appto\noexpand#2{=#6}}% @@ -1451,20 +1581,38 @@ \tud@cleversee{\alsoname}% } \newcommand*\tud@cleversee{} -\def\tud@cleversee#1#2#3\relax{% - \IfArgIsEmpty{#3}{% - \emph{#1}\space#2% - }{% - \begingroup% - \def\@tempa, ##1\@nil{##1,\space\emph{\alsoname}\space#2}% - \@tempa#3\@nil% - \endgroup% - }% +\def\tud@cleversee#1#2\relax{% + \begingroup% + \let\cleversee\@empty% + \let\cleverseealso\@empty% + \let\tud@res@a\@empty% + \def\tud@res@b{#2}% + \def\tud@res@c##1\\##2\@nil{% + \appto\tud@res@a{##1}% + \def\tud@res@b{##2}% + \trim@spaces@in\tud@res@b% + \in@{\\}{##2}% + }% + \in@true% + \@whilesw\ifin@\fi{% + \expandafter\tud@res@c\tud@res@b\@nil% + }% + \ifx\tud@res@b\@empty% + \mbox{\emph{#1}}% + \else% + \def\tud@res@c##1 ##2\@nil{% + ##2##1\space\mbox{\emph{\alsoname}}% + }% + \expandafter\tud@res@c\tud@res@b\@nil% + \fi% + \space\tud@res@a% + \endgroup% } +\newrobustcmd*\seesep{\txb}% \NewDocumentCommand\seeref{s m}{% \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% } -\newcommand*\seeidx[2]{\pageref{idx:#1}} +\newrobustcmd*\seeidx[2]{\pageref{idx:#1}} \NewDocumentCommand\Process@Index{mmd==od()d||}{% \ifboolexpr{% bool {@tud@index} or bool {@tud@obsolete}% @@ -1507,7 +1655,7 @@ \fi% \else% \IfValueT{#5}{% - \ifstr{#5}{declare}{% + \tud@if@strequal{#5}{declare}{% \appto\tud@lbl@tmp{-declare}% \appto\tud@idx@fmt{|declare}% }{% @@ -1590,7 +1738,7 @@ \newcommand*\print@index[1][]{% \pagebreak[3]% \@tud@indextrue% - \ifblank{#1}{% + \tud@if@strblank{#1}{% \def\tud@reserved{\tudhyperdef*{idx:main}}% }{% \def\tud@reserved{\tudhyperdef*{idx:#1}}% @@ -1604,15 +1752,15 @@ \tud@idx@skip% }% \fi% - \ifblank{#1}{\printindex}{\printindex[#1]}% + \tud@if@strblank{#1}{\printindex}{\printindex[{#1}]}% \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% \let\tud@indexprologue\@empty% } -\newif\if@tud@changedat +\tud@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 +\tud@newdim\changedatskip \NewDocumentCommand\ChangedAt{s o d() m !O{\changedatskip}}{% \IfValueTF{#2}{% \Changed@At@CreateList[#2](#3){#4}% @@ -1662,7 +1810,7 @@ }% \IfValueTF{#1}{% \toks@{#3!Implementierung }% - \eaddto@hook\toks@{\@tempb}% + \addto@hook@expandafter\toks@{\@tempb}% \addto@hook\toks@{!#1!}% \IfValueT{#4}{\addto@hook\toks@{#4}}% \addto@hook\toks@{!}% @@ -1673,14 +1821,14 @@ \toks@{#3!Allgemein }% \IfValueTF{#2}{% \addto@hook\toks@{!}% - \eaddto@hook\toks@{\@tempb:\space}% + \addto@hook@expandafter\toks@{\@tempb:\space}% \IfValueTF{#5}{% \addto@hook\toks@{#5}% }{% \addto@hook\toks@{\emph{neu}}% }% }{% - \eaddto@hook\toks@{\@tempb}% + \addto@hook@expandafter\toks@{\@tempb}% \addto@hook\toks@{!}% \addto@hook\toks@{#5}% }% @@ -1701,7 +1849,7 @@ \@tud@changedattrue% #3% \@tud@changedatfalse% - \ifxblank{#4}{}{% + \tud@if@strblank{#4}{}{% \eappto\tud@idx@val{% \expandonce\tud@idx@key: Werte angepasst@% \expandonce\tud@idx@fmt: Werte angepasst!% @@ -1718,7 +1866,7 @@ }% \tud@reserved% }% - \ifxblank{#5}{% + \tud@if@strblank{#5}{% \if@tud@obsolete% \appto\tud@idx@fmt{: \emph{entf\"allt}}% \else% @@ -1738,7 +1886,7 @@ \newcommand*\PrintChangelog{% \begingroup% \let\lettergroup\@gobble% - \apptocmd{\theindex}{% + \apptocmd\theindex{% \let\subsubsubitem\subsubitem% \let\subsubitem\subitem% \let\subitem\item% @@ -1756,11 +1904,9 @@ \expandafter\def\csname\string\item\endcsname##1~% }{% \endgroup% - \let\@tempb\@firstofone% - \if@tud@cdoldfont@active\def\@tempb##1{\NoCaseChange{##1}}\fi% - \addsec[##1]{\TUDScript \@tempb{##1}}% + \addsec[{##1}]{\TUDScript ##1}% \tudhyperdef*{idx:changelog:##1}% - \def\@tempa{\indexname: \TUDScript \@tempb{##1}}% + \def\@tempa{\indexname: \TUDScript ##1}% \@mkboth{\@tempa}{\@tempa}% }% }{}{\tud@patch@wrn{theindex}}% @@ -1788,25 +1934,25 @@ \forlistloop\@tempa{\tud@templist}% \hline% \end{tabular}% - }[#2]% + }[{#2}]% \ignorespaces% }% \fi% } -\RequirePackage{enumitem}[2011/09/28] +\RequirePackage{enumitem} \setlist{before*={\endgraf\tud@RaggedRight},partopsep=0pt,noitemsep} \newcommand*\stditem{} \newcommand*\tud@before@item[1]{% \ifdefvoid{\stditem}{% \let\stditem\item% \letcs\item{tud@item@#1}% - \setlength\changedatskip{-\baselineskip}% + \tud@setdim\changedatskip{-1\baselineskip}% }{}% } \newcommand*\tud@values{} \NewDocumentEnvironment{values}{mo}{% \def\tud@values{#1}% - \IfValueTF{#2}{\@values[#2]}{\@values}% + \IfValueTF{#2}{\@values[{#2}]}{\@values}% }{% \end@values% } @@ -1863,7 +2009,7 @@ \toks@{\item}% \IfBooleanT{#1}{\addto@hook\toks@{*}}% \protected@edef\@tempa{#2\IfValueT{#3}{/#3}}% - \eaddto@hook\toks@{\expandafter[\@tempa]}% + \addto@hook@expandafter\toks@{\expandafter[\@tempa]}% \IfValueT{#4}{\addto@hook\toks@{[#4]}}% \IfValueT{#5}{\addto@hook\toks@{(#5)}}% \the\toks@% @@ -1895,16 +2041,16 @@ }% }]% } -\newlength\tempdim +\tud@newglue\tempdim \newsavebox\tabularm@box -\newlength\tabularm@wd +\tud@newdim\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}% + \tud@setdim\tabularm@wd{\wd\tabularm@box}% \def\tabularm@num{#1}% \let\allcolumnpar\tabularm@allcolumnpar% \begin{tabular}{*{#1}l}\BODY\end{tabular}% @@ -1912,7 +2058,7 @@ \newcommand*\tabularm@allcolumnpar[1]{% \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% } -\RequirePackage{tabularx}[1999/01/07] +\RequirePackage{tabularx} \NewDocumentCommand\TermTable{s m !g}{% \let\tud@templist\relax% \forcsvlist{\listadd\tud@templist}{#2}% @@ -1920,11 +2066,11 @@ \vskip\medskipamount% \@afterindentfalse\@afterheading% \IfBooleanTF{#1}{% - \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% - \setlength\@tempdimc{-.7\baselineskip}% + \tud@setdim\@tempdima{\IfValueTF{#3}{#3}{\linewidth}}% + \tud@setdim\@tempdimc{-.7\baselineskip}% \begin{tabularx}{\@tempdima}{lXX}\Term@Table\end{tabularx}% }{% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \begin{tabular}{lll}\Term@Table\end{tabular}% }% \par\addvspace{\medskipamount}% @@ -1938,9 +2084,9 @@ } \newcommand*\Term@@Table[1]{% \Term{#1}'none' & % - \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % + \tud@if@strempty{\csuse{#1}}{\PName{leer}}{\csuse{#1}} & % \selectlanguage{english}\vspace*{\@tempdimc}% - \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% + \tud@if@strempty{\csuse{#1}}{\PName{empty}}{\csuse{#1}}\tabularnewline% } \newenvironment{Example}{\csuse{Example*}}{% \csuse{endExample*}% @@ -1952,11 +2098,10 @@ }{% \endlabeling% } -\newcommand*\tud@write@a{} -\newwrite\tud@write@a -\RequirePackage{listings}[2014/03/04] +\tud@newwrite\tud@write@a +\RequirePackage{listings} \lstdefinestyle{tudscr}{% - basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},% + basicstyle=\ttfamily\ifundef{\setstretch}{}{\setstretch{1}},% keywordstyle=,% columns=fullflexible,keepspaces,% aboveskip=\smallskipamount,% @@ -1968,8 +2113,8 @@ \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] +\RequirePackage{filemod} +\RequirePackage{ifplatform} \newcommand*\tud@shellescape@wrn[1]{% \ClassWarning{tudscrmanual}% {% @@ -2066,16 +2211,16 @@ }{% \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% } -\RequirePackage{todonotes}[2012/07/25] +\RequirePackage{todonotes} \AtEndPreamble{% \ifdim\marginparwidth<2cm\relax% - \setlength\marginparwidth{2cm}% + \tud@setdim\marginparwidth{2cm}% \fi% } \AfterPackage*{todonotes}{% \newcommand*\tud@todo@type@use{}% \NewDocumentCommand\ToDo{s o m !o}{% - \ifbool{@tud@todo}{% + \if@tud@todo% \global\let\tud@currentHref\@currentHref% \begingroup% \let\tud@todo@type@use\@empty% @@ -2124,7 +2269,7 @@ \tud@v@get\tud@res@a{#4}% \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% - \ifnumber{\tud@res@b}{% + \Ifnumber{\tud@res@b}{% \edef\tud@res@c{% \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% }% @@ -2160,11 +2305,11 @@ \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]% + \marginnote[{##1}]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% }% \toks@\expandafter{\tud@res@a noline,nolist}% \settowidth\marginparwidth{\tud@res@c}% - \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% + \tud@addtodim\marginparwidth{1.6ex+1pt}% \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% \aftergroup\par\aftergroup\noindent% \listremove{\tud@todo@type@use}{rls}% @@ -2173,9 +2318,7 @@ \ifx\tud@todo@type@use\@empty\else% \begingroup% \let\tud@res@c\@empty% - \renewcommand*{\do}[1]{% - \appto\tud@res@c{,##1}% - }% + \def\do##1{\appto\tud@res@c{,##1}}% \dolistloop{\tud@todo@type@use}% \edef\tud@res@c{% \endgroup% @@ -2189,7 +2332,7 @@ \fi% \endgroup% \global\let\@currentHref\tud@currentHref% - }{}% + \fi% \ignorespaces% }% \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% @@ -2198,20 +2341,19 @@ \NewDocumentCommand\ToDo{s o m !o}{}% \newcommand*\ListOfToDo{}% } -\RequirePackage{csquotes}[2011/10/22] -\RequirePackage{textcomp}[2005/09/27] -\RequirePackage{setspace}[2011/12/19] +\RequirePackage{textcomp} +\RequirePackage{setspace} \setstretch{1.1} \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{quoting} +\RequirePackage{isodate} +\RequirePackage{hologo} +\RequirePackage{ragged2e} \@removefromreset{footnote}{chapter} \renewcommand*\raggedfootnote{\tud@RaggedRight}% -\RequirePackage{booktabs}[2005/04/14] -\RequirePackage{caption}[2015/09/17] -\RequirePackage{floatrow}[2008/08/02] +\RequirePackage{booktabs} +\RequirePackage{caption} +\RequirePackage{floatrow} \DeclareCaptionSubType[alph]{figure} \DeclareCaptionSubType[alph]{table} \captionsetup{font=sf,labelfont=bf,labelsep=space} @@ -2219,75 +2361,13 @@ \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] +\RequirePackage{tikz} +\RequirePackage{pdfpages} +\RequirePackage{units} \AtEndPreamble{% - \RequirePackage{ellipsis}[2004/9/28]% + \RequirePackage{ellipsis} \let\ellipsispunctuation\relax% } -\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% -} -\newcommand*\Attention[2][\z@]{% - \marginnote{% - \setlength\fboxsep{0.25em}% - \fbox{Achtung!}% - }[#1]% - \emph{\trim@spaces{#2}}% -} -\NewDocumentCommand\Forum{!s !t'}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% - \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% - \the\toks@\xspace% -} -\NewDocumentCommand\CTAN{!s !o !g}{% - \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 !t' !O{releases}}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{https://github.com/tud-cd/tudscr/#3}}% - \IfBooleanF{#2}{% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% - }% - \the\toks@\xspace% -} -\newcommand*\Download[1]{% - https://github.com/tud-cd/tudscr/releases/download/#1% -} \newcommand*\notudscrartcl{% F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese Option nicht verf\"ugbar.% @@ -2300,60 +2380,24 @@ \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% -} -\AfterPackage*{hyperref}{% - \pdfstringdefDisableCommands{% - \def\DDC{DRESDEN-concept}% - \def\TUDScript{TUD-Script}% - \def\KOMAScript{KOMA-Script}% - }% -} -\DeclareTextFontCommand\tud@cdfont@texteb{% - \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% -} -\newrobustcmd*\OpenSans{% - \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% -} -\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} -\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} -\renewcommand*\@pnumwidth{2.1em}% -\renewcommand*\@tocrmarg{3.1em}% -\newcommand*\textsbn{} -\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbn{\sbnfont} -\newcommand*\textsbs{} -\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape} -\DeclareTextFontCommand\textsbs{\sbsfont} -%%% From File: tudscr-fields.dtx +%%%% From File: tudscr-fields.dtx (no git version info was found) \newcommand*\@chairman{} -\newcommand*\chairman[1]{\gdef\@chairman{#1}} +\newcommand*\chairman[1]{\tud@trim@field\@chairman{#1}} \newcommand*\@grade{} -\newcommand*\grade[1]{\gdef\@grade{#1}} -\newcommand*\@headline{} +\newcommand*\grade[1]{\tud@trim@field\@grade{#1}} \newcommand*\@issuedate{} \newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} \newcommand*\@duedate{} \newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} \newcommand*\@contactperson{} -\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\newcommand*\contactperson[1]{\tud@trim@field\@contactperson{#1}} \newcommand*\@office{} -\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newrobustcmd*\office[1]{\tud@trim@field\@office{#1}} \newcommand*\@telephone{} -\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} +\newrobustcmd*\telephone[1]{\tud@trim@field\@telephone{#1}} \newcommand*\@telefax{} -\newrobustcmd*\telefax[1]{\gdef\@telefax{#1}} -%%% From File: tudscr-localization.dtx +\newrobustcmd*\telefax[1]{\tud@trim@field\@telefax{#1}} +%%%% From File: tudscr-localization.dtx (no git version info was found) \tud@localization@define{\authorname} \tud@localization@define{\contactname} \tud@localization@define{\contactpersonname} @@ -2409,107 +2453,105 @@ The thesis is evaluated with a grade of \textbf{\@grade}.% } \tud@localization@english{\noticename}{Notice} -%%% From File: tudscr-texindy.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% +%%%% From File: tudscr-texindy.dtx (no git version info was found) +\edef\tud@res@a{\catcode`\noexpand\#=\the\catcode`\#\relax}% +\@makeother\# +\newcommand*\@hashchar{#} +\tud@res@a +\tud@newwrite\tud@xdy@write +\NewDocumentCommand\tud@xdy@create{s}{% + \begingroup% + \edef\tud@res@a{\@currname-\IfBooleanTF{#1}{gls}{ind}.xdy}% + \expandafter\IfFileExists\expandafter{\tud@res@a}{}{% + \IfBooleanTF{#1}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \edef\tud@res@b{the\if@tud@res@swa glossary\else index\fi}% + \edef\tud@res@a{\noexpand\tud@xdy@@create{\tud@res@b}{\tud@res@a}}% + \tud@res@a% + }% + \endgroup% +} +\newcommand*\tud@xdy@@create[2]{% + \immediate\openout\tud@xdy@write=#2\relax% + \immediate\write\tud@xdy@write{(require "texindy.xdy")}% + \immediate\write\tud@xdy@write{% + (markup-index^^J% + \@spaces:open^^J% + "\string\begin{#1}^^J% + \space\space\string\providecommand*\string\seesep{/}\@percentchar^^J% + "^^J% Ende des Umgebungsbeginns + \@spaces:close "\string~n\string~n\string\end{#1}\string~n"^^J% + \@spaces:hierdepth 3^^J% )^^J% - (markup-range :sep "--")% - }% - \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{% - (markup-locclass-list% - \space:open "\string\,\string\dotfill\string\,"% - \space:close "\string\relax"% - \space:sep ",\space"% - )% - }% - \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 "}}"% + (define-location-class "arabic-page-numbers"^^J% + \@spaces("arabic-numbers")^^J% + \@spaces:min-range-length 2^^J% )^^J% - (markup-locref% - \space:attr "!"\@spaces\@spaces% - \space:open "\string\textbf{\string\hyperpage{"% - \space:close "}}"% + (markup-range :sep "--")^^J% + (merge-rule :eregexp^^J% + \@spaces"\string\[(.*)\string\]"^^J% + \@spaces""^^J% )^^J% - (markup-locref% - \space:attr "important"% - \space:open "\string\textsl{\string\hyperpage{"% - \space:close "}}"% + (markup-indexentry :depth 3^^J% + \@spaces:open\space\space"\string~n\string\subsubsubitem\space"^^J% )^^J% - (markup-locref% - \space:attr "?"\@spaces\@spaces% - \space:open "\string\textsl{\string\hyperpage{"% - \space:close "}}"% + (markup-locclass-list^^J% + \@spaces:open\space\space"\string\,\string\dotfill\string\,"^^J% + \@spaces:close "\string\relax"^^J% + \@spaces:sep\space\space\space",\space"^^J% + )^^J% + (define-attributes (("!" "default") ("?" "default") ("default")))^^J% + (markup-attribute-group-list :sep ", ")^^J% + (markup-locref :attr "!"^^J% + \@spaces:open\space\space"\string\textbf{\string\hyperpage{"^^J% + \@spaces:close "}}"^^J% + )^^J% + (markup-locref :attr "?"^^J% + \@spaces:open\space\space"\string\textit{\string\hyperpage{"^^J% + \@spaces:close "}}"^^J% + )^^J% + (markup-locref :attr "default"^^J% + \@spaces:open\space\space"\string\hyperpage{"^^J% + \@spaces:close "}" ^^J% )^^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% + \@spaces:open\space\space"\string\cleversee\space"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "\@backslashchar\@backslashchar"^^J% )^^J% (markup-crossref-list :class "seealso"^^J% - \space\space:open "\string\cleverseealso{" :sep "; " :close "}"^^J% - )% - }% - \write\tud@write@xdy{% + \@spaces:open\space\space"\string\cleverseealso\space"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "\@backslashchar\@backslashchar"^^J% + )^^J% (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{% + \@spaces:open\space\space"\string\cleversee\space"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "\@backslashchar\@backslashchar"^^J% + )^^J% (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{% + \@spaces:open\space\space"\string\seeidx{"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "}{}"^^J% + )^^J% + (markup-crossref-layer-list :class "see"% + \@spaces\space:sep "\string\seesep{}"% + )^^J% + (markup-crossref-layer-list :class "seealso"% + \space:sep "\string\seesep{}"% + )^^J% (define-location-class-order^^J% - \space\space(^^J% + \@spaces(^^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\,"% + \@spaces)^^J% )^^J% - (markup-crossref-layer-list :class "seealso"% - \space:sep "\string\,\string\textbar\string\,"% - )% - }% - \closeout\tud@write@xdy% }% + \immediate\closeout\tud@xdy@write% } -\tud@xdy@create{ind} -\endgroup +\tud@xdy@create \endinput %% %% End of file `tudscrmanual.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.sty new file mode 100644 index 00000000000..8fe34bda39e --- /dev/null +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrmanual.sty @@ -0,0 +1,1689 @@ +%% +%% This is file `tudscrmanual.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tudscr-version.dtx (with options: `package,manual,identify') +%% tudscr-manual.dtx (with options: `package,manual,identify') +%% tudscr-base.dtx (with options: `package,manual,load') +%% tudscr-misc.dtx (with options: `package,manual,option') +%% tudscr-manual.dtx (with options: `package,manual,option') +%% tudscr-misc.dtx (with options: `package,manual,execute') +%% tudscr-misc.dtx (with options: `package,manual,body') +%% tudscr-manual.dtx (with options: `package,manual,body') +%% tudscr-texindy.dtx (with options: `package,manual') +%% +%% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script +%% +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ +%% +%% This file was generated from file(s) of the TUD-Script bundle. +%% ---------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License, either version 1.3c of this license or +%% any later version. 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 version 2008-05-04 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The current maintainer and author of this work is Falk Hanisch. +%% +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] +\begingroup + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% + \gdef\TUD@Version{#1}% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% + \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-Script bundle versions% + }% + \fi% + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% +\endgroup +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\providecommand*\TUD@Class@Check[1]{% + \ifx\TUD@Class@Name\@undefined% + \PackageError{#1}{TUD-Script class not loaded}{% + This package requires a class of the TUD-Script bundle\MessageBreak% + (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \DeclareOption*{}% + \ProcessOptions\relax% + \expandafter\endinput% + \fi% +}% +%%%% From File: tudscr-manual.dtx (no git version info was found) +\ProvidesPackage{tudscrmanual}[% + 2022/08/09 v2.06o TUD-Script + package (tudscr tutorials)% +] +\TUD@Class@Check{tudscrtutorial} +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] +%%%% From File: tudscr-misc.dtx (no git version info was found) +\RequirePackage{scrhack}[% + 2022/05/01 v3.36 KOMA-Script +] +\RequirePackage{xspace} +\xspaceaddexceptions{"=} +\PassOptionsToPackage{quiet}{marginnote} +\RequirePackage{marginnote} +\reversemarginpar +\RequirePackage{shellesc} +\RequirePackage{pdftexcmds} +\PassOptionsToPackage{hyperindex=false}{hyperref} +\AfterPackage*{bookmark}{\bookmarksetup{open,openlevel=1}} +\AfterAtEndOfPackage*{hyperref}{% + \@ifpackageloaded{bookmark}{}{\RequirePackage{bookmark}}% + \hypersetup{colorlinks,linkcolor=blue}% +} +\newcommand*\hrfn[2]{% + \href{#1}{\trim@spaces{#2}}% + \footnote{\strut\url{#1}}% +} +\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}} +\TUD@UnwindPackage{hyperref}{% + \RequirePackage{url} + \providerobustcmd*\url[1]{\texttt{\detokenize{#1}}}% + \providerobustcmd*\nolinkurl[1]{\url{#1}}% + \providerobustcmd*\href[3][]{#3}% + \providecommand*\hypersetup[1]{}% + \providecommand*\phantomsection{}% + \providecommand*\pdfbookmark[3][]{}% + \providecommand*\currentpdfbookmark[2]{}% + \providecommand*\subpdfbookmark[2]{}% + \providecommand*\belowpdfbookmark[2]{}% +} +\AfterPackage*{babel}{\RequirePackage{csquotes}} +\TUD@UnwindPackage{babel}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `babel' not loaded}% + \providecommand*\selectlanguage[1]{}% + \providecommand*\glqq{\quotedblbase}% + \providecommand*\grqq{\textquotedblleft}% + \providecommand*\seename{see}% + \providecommand*\alsoname{see\nobreakspace also}% +} +\TUD@UnwindPackage{csquotes}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `csquotes' not loaded}% + \providecommand\enquote[1]{\emph{#1}}% +} +\newcommand*\tud@replace@in[3]{% + \begingroup% + \edef\tud@res@a{\expandonce{#1}}% + \let\tud@res@c\@empty% + \def\tud@res@b##1#2##2\@nil{% + \IfArgIsEmpty{##2}{% + \appto\tud@res@c{##1}% + }{% + \appto\tud@res@c{##1#3}% + \tud@res@b##2\@nil% + }% + }% + \expandafter\tud@res@b\tud@res@a#2\@nil% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\expandonce\tud@res@c}% + }% + \tud@res@a% +} +\newcommand*\tud@replace@@in[3]{% + \begingroup% + \protected@edef\tud@res@a{#1}% + \edef\tud@res@a{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@b{% + \unexpanded{\tud@replace@in\tud@res@a}{\detokenize{#2}}{\detokenize{#3}}% + }% + \tud@res@b% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +%%%% From File: tudscr-manual.dtx (no git version info was found) +\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}{\FamilyKeyStateProcessed}% + }{% + \KOMAoptions{overfullrule}% + }% + \ifdef{\tudprintflag}{% + \ifnum\tud@cd@num>\z@\relax% + \TUDoptions{cd=true}% + \fi% + \TUD@key{cd}{\FamilyKeyStateProcessed}% + \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}% + }{}% +} +\tud@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{% + \tud@if@strequal{##1##2##3}{not}{% + \IfArgIsEmpty{##4}{}{% + \listeadd\tud@todo@type@neg{##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + }% + }{% + \IfArgIsEmpty{##1}{}{% + \listeadd\tud@todo@type@pos{##1##2##3##4}% + \@tud@todotrue% + \FamilyKeyStateProcessed% + }% + }% + }% + \edef\@tempb{not\trim@spaces{#1}}% + \expandafter\@tempa\@tempb\@empty\@empty\@empty\@nil% + \fi% +} +%%%% From File: tudscr-misc.dtx (no git version info was found) +\KOMAoptions{headings=small} +\TUDoptions{cdfoot=true} +\TUDExecuteOptions{% +} +\TUDProcessOptions\relax +%%%% From File: tudscr-misc.dtx (no git version info was found) +\renewcommand*\@pnumwidth{2.1em} +\renewcommand*\@tocrmarg{3.1em} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbi{} +\newrobustcmd*\sbifont{\sffamily\bfseries\itshape} +\DeclareTextFontCommand\textsbi{\sbifont} +\newcommand*\textttit{} +\newrobustcmd*\ttitfont{\ttfamily\itshape} +\DeclareTextFontCommand\textttit{\ttitfont} +\newcommand*\tud@english[1]{% + \iflanguageloaded{english}{\foreignlanguage{english}{#1}}{#1}% +} +\AfterPackage*{babel}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% +} +\kernel@make@fragile\KOMAScript +\edef\KOMAScript{\noexpand\mbox{\expandonce\KOMAScript}\noexpand\xspace} +\robustify\KOMAScript +\robustify\TUDScript +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\KOMAScript{KOMA-Script{}}% + \def\TUDScript{TUD-Script{}}% + }% +} +\newcommand*\vTUDScript{v\TUDScriptVersionNumber} +\newcommand*\vKOMAScript{v\TUD@KOMAVersionNumber} +\newrobustcmd*\CD{\tud@english{Corporate Design}\xspace} +\newrobustcmd*\CDs{\tud@english{Corporate Designs}\xspace} +\newrobustcmd*\TUD{Technische Universit\"at Dresden\xspace} +\newrobustcmd*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\TUDForum{\mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace} +\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% +} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\CD{Corporate Design{}}% + \def\CDs{Corporate Designs{}}% + \def\TUD{Technische Universit\"at Dresden{}}% + \def\TnUD{Technischen Universit\"at Dresden{}}% + \def\TUDForum{TUD-LaTeX-Forum{}}% + \def\DDC{DRESDEN-concept{}}% + }% +} +\newrobustcmd*\OpenSans{\textcdbn{Open\nobreakspace Sans}\xspace} +\newrobustcmd*\Univers{\textcdbi{Univers}\xspace} +\newrobustcmd*\DIN{\textcdbi{DIN\nobreakspace Bold}\xspace} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\OpenSans{Open Sans{}}% + \def\Univers{Univers{}}% + \def\DIN{DIN Bold{}}% + }% +} +\newcommand*\GitHubBase[1]{} +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !D(){tud-cd/tudscr} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{https://github.com/#4/}% + \edef\@tempa{{\@tempa\IfValueTF{#5}{issues/#5}{#3}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{#4}}}}% + }% + \the\toks@\xspace% +} +\newcommand*\Download[1]{% + https://github.com/tud-cd/tudscr/releases/download/#1% +} +\NewDocumentCommand\CTAN{!s !o !g}{% + \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\Forum{!s !t' !O{\TUDForum} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% + \addto@hook@expandafter\toks@{\@tempa}% + \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% + \the\toks@\xspace% +} +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \tud@setdim\fboxsep{0.25em}% + \fbox{Achtung!}% + }[{#1}]% + \emph{\trim@spaces{#2}}% +} +\newrobustcmd*\TUDScriptContactTitle{% + \ifundef{\emailaddress}{% + \qquad\expandafter\mailto\expandafter{\TUDScriptContact}% + }{% + \expandafter\emailaddress\expandafter{\TUDScriptContact}% + }% +} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{\let\TUDScriptContactTitle\relax}% +} +%%%% From File: tudscr-manual.dtx (no git version info was found) +\RequirePackage{scrwfile} +\AfterPackage*{hyperref}{% + \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}% + \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% + \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}% + \newcommand*\tud@manualname{tudscr}% + \newcommand*\tudhyperref[2]{% + \hyperref{../\tud@manualname.pdf}{\tud@manualname}{#1}{#2}% + }% + \newcommand*\autorefname[1][current]{% + \tud@if@strequal{#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{tudscrmanual}% + {% + It is strongly recommended to load package `hyperref'. \MessageBreak% + Nevertheless, essential commands are rudimentarily\MessageBreak% + defined. At least the package `url' is loaded% + }% + \providecommand*\hyperpage[1]{#1}% + \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}% + \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} + \tud@localization@german{\partautorefname}{Teil}% + \tud@localization@german{\chapterautorefname}{Kapitel}% + \tud@localization@german{\sectionautorefname}{Unterkapitel}% + \tud@localization@german{\subsectionautorefname}{Abschnitt}% + \tud@localization@german{\subsubsectionautorefname}{Unterabschnitt}% + \tud@localization@english{\partautorefname}{Part}% + \tud@localization@english{\chapterautorefname}{chapter}% + \tud@localization@english{\sectionautorefname}{section}% + \tud@localization@english{\subsectionautorefname}{subsection}% + \tud@localization@english{\subsubsectionautorefname}{subsubsection}% + \providecommand*\tudhyperref[2]{#2}% + \providecommand*\autorefname[1][]{??\xspace}% +} +\RequirePackage{varioref} +\renewcommand*\fullref[1]{\hyperref[{#1}]{\autoref*{#1} \vpageref{#1}}} +\newrobustcmd*\bsc{\@backslashchar} +\newrobustcmd*\txb{{\raise.05em\hbox{\kern.05em\textbar\kern.05em}}} +\newrobustcmd*\suffix[1]{\begingroup~\scriptsize(#1)\endgroup} +\providecommand*\NewExpandableDocumentCommand[3]{% + \NewDocumentCommand#1{#2}{}% + \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{tudscrmanual}% + {Wrong usage of optional argument for value}% + {There are two optional arguments for a value given!}% +} +\newenvironment{Bundle}[1]{% + \tud@if@bdl{% + \PackageError{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]{% + \tud@if@strequal{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}% +} +\NewExpandableDocumentCommand\@Application{sm}{#2} +\NewDocumentCommand\Application{s m !d() !d<> !d||}{% + \Markup@SetFormat{\sbifont}% + \IfValueTF{#4}{% + \Process@Markup{\Application{#2}}(#3)<#4>% + }{% + \Process@Markup{\Application{#2}}(#3)% + }% + \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#5|% +} +\NewExpandableDocumentCommand\@Distribution{sm}{#2} +\NewDocumentCommand\Distribution{s m !o !d() !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{s m !d() !d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Engine{\hologo{#2}}}(#3)% + \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% +} +\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} +\NewExpandableDocumentCommand\@File{sm}{#2} +\NewDocumentCommand\File{s m !d() !d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\File{#2}}(#3)% + \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% +} +\NewExpandableDocumentCommand\@Class{sm}{#2} +\NewDocumentCommand\Class{s m !d() !d'' !d||}{% + \Markup@SetFormat{\sbnfont}% + \Process@Markup{\Class{#2}}(#3)'#4'% + \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|% +} +\NewExpandableDocumentCommand\@Package{sm}{#2} +\NewDocumentCommand\Package{s m !d() !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}m !d== !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{s m !o !d() !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{s m !o !d() !d'' !d||}{% + \Markup@SetFormat[\bsc]{\ttfamily}% + \Process@Markup{\Macro{#2}}[#3](#4)'#5'% + \Process@Index{#1}{\Macro{#2}}(#4)|#6|% +} +\NewExpandableDocumentCommand\@Length{sm}{#2} +\NewDocumentCommand\Length{s m !d() !d'' !d||}{% + \Markup@SetFormat[\bsc]{\ttfamily}[L\"ange]% + \Process@Markup{\Length{#2}}(#3)'#4'% + \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% +} +\NewExpandableDocumentCommand\@Counter{sm}{#2} +\NewDocumentCommand\Counter{s m !d() !d'' !d||}{% + \Markup@SetFormat{\ttfamily}[Z\"ahler]% + \Process@Markup{\Counter{#2}}(#3)'#4'% + \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|% +} +\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*\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% + \tud@if@strblank{#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\_{-}% + \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}% + \def\dots{...}% + \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==}{% + \tud@if@strequal{#2}{\tud@bdl@dflt}{}{% + \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}{% + \tud@if@strblank{#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% +} +\tud@newif\if@tud@disposition +\newcommand*\ifdisposition{% + \if@tud@disposition% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +\pretocmd\tud@sec@format{% + \@tud@dispositiontrue% +}{}{\tud@patch@wrn{tud@sec@format}} +\newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} +\NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} +\NewDocumentCommand\Process@Markup{md==od()d<>d''}{% + \tud@toks@{\Process@@MarkupInline}% + \tud@lbl@get@curr\tud@lbl@tmp{#4:#1}=#2=% + \addto@hook@expandafter\tud@toks@{\expandafter{\tud@lbl@tmp}}% + \begingroup% + \Markup@Gobble*% + \protected@edef\tud@reserved{% + \noexpand\endgroup% + \def\noexpand\tud@reserved{#1}% + }% + \tud@reserved% + \addto@hook@expandafter\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}{% + \tud@if@strblank{#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}{% + \tud@if@strequal{#6}{none}{\let\@tempa\@tempc}{% + \tud@if@strequal{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% + \def\@tempb{% + \PackageWarning{tudscrmanual}% + {% + You've used the unknown cross-reference\MessageBreak% + shorthand '#6'. Only 'none' and 'manual'\MessageBreak% + are valid% + }% + }% + }% + }% + }% + \ifdisposition{\@tempc}{\@tempa\@tempb}% + \endgroup% + \Markup@ClearFormat% +} +\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}mr==r[]}{% + \Markup@@Output#1=#2=[#3]% +} +\NewDocumentCommand\Markup@@Output{mmr==r[]}{% + \tud@toks@{\Markup@Inline}% + \IfValueTF{#2}{% + \def\@tempa{#2}% + }{% + \def\@tempa{#1}% + }% + \IfValueT{#3}{\appto\@tempa{=#3}}% + \IfValueT{#4}{\appto\@tempa{#4}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\@tempa}}% + \the\tud@toks@% +} +\newcommand*\Markup@Inline[1]{\mbox{\Markup@Format{#1}}} +\newcommand*\Markup@Format{} +\undef\Markup@Format +\newcommand*\Markup@Suffix{} +\NewDocumentCommand\Markup@SetFormat{omod()}{% + \def\Markup@Format##1{\begingroup#2{\IfValueT{#1}{#1}##1}\endgroup}% + \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% +} +\newcommand*\Markup@ClearFormat{% + \undef\Markup@Format% + \let\Markup@Declare\Markup@@Declare% + \let\Markup@Suffix\relax% +} +\Markup@ClearFormat +\newcommand*\Markup@CheckFormat{% + \ifundef\Markup@Format{% + \PackageError{tudscrmanual}% + {\string\Markup@SetFormat\space unused}% + {It seems you have forgotten to use \string\Markup@SetFormat.}% + }{}% +} +\PassOptionsToPackage{xindy,splitindex}{imakeidx} +\RequirePackage{imakeidx} +\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% +\newcommand*\tud@xdy@settings{} +\edef\tud@xdy@settings{-M \@currname-ind.xdy -L german-din} +\NewDocumentCommand\makexdyindex{s o m !o}{% + \let\@tempb\@empty% + \ifundef{\inputencodingname}{}{% + \eappto\tud@xdy@settings{\space-C\space\inputencodingname}% + }% + \protected@edef\@tempa{% + title={#3},% + columnsep=\noexpand\f@size\noexpand\p@,% + \IfValueTF{#4}{% + name={#4},% + options={\tud@xdy@settings\space-t \jobname-#4.xlg \@tempb},% + }{% + options={\tud@xdy@settings\space-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 +\tud@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@@in#2{@}{"@}% + \tud@replace@@in#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}{% + \tud@if@strequal{#9}{declare}{\@tempswatrue}{}% + \tud@if@strequal{#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% +} +\newrobustcmd*\cleversee{\tud@cleversee{\seename}} +\newrobustcmd*\cleverseealso{% + \PackageWarning{tudscrmanual}% + {You should use `|see' instead of `|seealso'}% + \tud@cleversee{\alsoname}% +} +\newcommand*\tud@cleversee{} +\def\tud@cleversee#1#2\relax{% + \begingroup% + \let\cleversee\@empty% + \let\cleverseealso\@empty% + \let\tud@res@a\@empty% + \def\tud@res@b{#2}% + \def\tud@res@c##1\\##2\@nil{% + \appto\tud@res@a{##1}% + \def\tud@res@b{##2}% + \trim@spaces@in\tud@res@b% + \in@{\\}{##2}% + }% + \in@true% + \@whilesw\ifin@\fi{% + \expandafter\tud@res@c\tud@res@b\@nil% + }% + \ifx\tud@res@b\@empty% + \mbox{\emph{#1}}% + \else% + \def\tud@res@c##1 ##2\@nil{% + ##2##1\space\mbox{\emph{\alsoname}}% + }% + \expandafter\tud@res@c\tud@res@b\@nil% + \fi% + \space\tud@res@a% + \endgroup% +} +\newrobustcmd*\seesep{\txb}% +\NewDocumentCommand\seeref{s m}{% + \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% +} +\NewDocumentCommand\Process@Index{mmd==od()d||}{% + \ifboolexpr{% + bool {@tud@index}% + }{}{% + \IfBooleanTF{#1}{% + \IfValueT{#6}{% + \PackageWarning{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]{}% + \tud@if@strblank{#1}{\printindex}{\printindex[{#1}]}% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} +\tud@newwrite\tud@write@a +\tud@newwrite\tud@write@b +\tud@newread\tud@read +\RequirePackage{listings} +\lstdefinestyle{tudscr}{% + basicstyle=\ttfamily\ifundef{\setstretch}{}{\setstretch{1}},% + keywordstyle=,% + columns=fullflexible,keepspaces,% + aboveskip=\smallskipamount,% + belowskip=\smallskipamount,% + language=[LaTeX]TeX,% + texcl,% +} +\RequirePackage{filemod} +\RequirePackage{ifplatform} +\newcommand*\tud@shellescape@wrn[1]{% + \PackageWarning{tudscrmanual}% + {% + File `#1' is missing!\MessageBreak% + You have to recompile this document with\MessageBreak% + activated shell escape option% + }% +} +\newcommand*\tud@latex@ext{pdflatex\space} +\iftutex + \ifxetex + \renewcommand*\tud@latex@ext{xelatex\space} + \else + \renewcommand*\tud@latex@ext{lualatex\space} + \fi +\fi +\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=\m@ne\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]{% + \tud@if@strequal{#1}{preamble}{% + \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@a}% + }{% + \tud@if@strequal{#1}{trunk}{% + \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@b}% + }{% + \tud@tut@readtostream{\tud@tut@temp.tex}{#1}% + }% + }% +} +\TUDoptions{headingsvskip=-6ex} +\newcommand\StartTutorial[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}% + \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% + \faculty{}% + \maketitle% + \IfArgIsEmpty{#1}{}{% + \noindent% + \begin{abstract}% + \noindent#1% + \end{abstract}% + \medskip% + }% + \noindent\ignorespaces% +} +\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}% + \thispagestyle{empty}% + \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\pdf@shellescape=\@ne\relax% + \ifwindows% + \def\@tempa{del}% + \else% + \def\@tempa{rm}% + \fi% + \ShellEscape{\@tempa\space\tud@tut@temp*.*}% + \fi% +} +\newcommand\Code@Preamble{} +\let\Code@Preamble\relax +\newcommand\CodePreamble[1]{% + \long\gdef\Code@Preamble{% + \hskip.5\leftmargin\textit{Die resultierende Ausgabe:}\space#1% + }% +} +\newcommand*\Code@Hook{} +\let\Code@Hook\relax +\newcommand*\CodeHook[1]{\gdef\Code@Hook{#1}} +\newcommand*\StandaloneFile{} +\let\StandaloneFile\relax +\newcommand*\StandaloneDate{} +\providecommand*\filec@ntents@silent{% + \let\@latex@warning@no@line\@gobble% +} +\newcommand*\tud@tut@pre{% + \csuse{filecontents*}[force,silent,nosearch]{\tud@tut@temp.tex}% +} +\newcommand*\tud@tut@post{% + \csuse{endfilecontents*}% +} +\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}{}% + \tud@setdim\@tempdimc{\leftskip}% + \tud@setdim\leftskip{\leftmargin}% + \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% + \global\let\Code@Hook\relax% + \tud@setdim\leftskip{\@tempdimc}% + \noindent\ignorespaces% +} +\newcommand*\InputCode{\input{\tud@tut@temp.tex}} +\IfFileExists{\tud@tut@temp-standalone.tex}{\@tempswafalse}{\@tempswatrue} +\if@tempswa% +\begin{filecontents*}{\tud@tut@temp-standalone.tex} +\documentclass[english,ngerman]{tudscrreprt} +\iftutex + \usepackage{fontspec} +\else + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +\fi +\usepackage{babel} +\usepackage{tudscrsupervisor} +\usepackage{isodate} +\usepackage{enumitem} +\setlist{noitemsep} +\begin{document} +\ifdefvoid{\StandaloneDate}{}{\date{\StandaloneDate}}% +\input{\jobname.tex}% +\end{document} +\end{filecontents*} +\fi +\newcommand*\tud@tut@pdf{% + \ifnum\pdf@shellescape=\@ne\relax% + \filemodCmp{\jobname-standalone-\StandaloneFile.pdf}{\jobname.tex}{}{% + \begingroup% + \let\printdate\@firstofone% + \edef\@tempa{\expandonce\@date}% + \def\@tempb{\today}% + \ifx\@tempa\@tempb\relax% + \let\@tempb\@empty% + \else% + \edef\@tempb{\unexpanded{\def\StandaloneDate}{\@date}}% + \fi% + \edef\@tempa{% + \tud@latex@ext -jobname=\tud@tut@temp\space% + "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}% + {\tud@tut@temp-standalone.tex}"% + }% + \ShellEscape{\@tempa^^J\@tempa^^J\@tempa}% + \ifwindows% + \def\@tempa{rename}% + \else% + \def\@tempa{mv}% + \fi% + \ShellEscape{% + \@tempa\space\tud@tut@temp.pdf\space% + \jobname-standalone-\StandaloneFile.pdf% + }% + \endgroup% + }% + \fi% + \global\let\StandaloneFile\relax% +} +\NewDocumentCommand\IncludeStandalone{o m !O{1}}{% + \IfFileExists{\jobname-standalone-#2.pdf}{% + \@tempcnta\z@% + \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% + \ifnum\@tempcnta>\z@\relax% + \tud@setdim\@tempdima{\textwidth}% + \divide\@tempdima\@tempcnta% + \advance\@tempcnta\m@ne% + \multiply\@tempcnta 2% + \tud@addtodim\@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\pdf@shellescape=\@ne\relax% + \filemodCmp{\jobname-pics.pdf}{\jobname.tex}{% + \PassOptionsToPackage{off}{auto-pst-pdf}% + }{}% + \else% + \PassOptionsToPackage{off}{auto-pst-pdf}% + \fi% + \RequirePackage{auto-pst-pdf} + \ifnum\pdf@shellescape=\@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} +\AtEndPreamble{% + \ifdim\marginparwidth<2cm\relax% + \tud@setdim\marginparwidth{2cm}% + \fi% +} +\AfterPackage*{todonotes}{% + \newcommand*\tud@todo@type@use{}% + \NewDocumentCommand\ToDo{s o m !o}{% + \if@tud@todo% + \global\let\tud@currentHref\@currentHref% + \begingroup% + \let\tud@todo@type@use\@empty% + \IfValueTF{#2}{% + \IfArgIsEmpty{#2}{}{% + \let\tud@todo@type@use\relax% + \ifx\tud@todo@type@pos\relax% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@neg}{}{% + \listadd\tud@todo@type@use{##1}% + }% + }% + }% + \else% + \def\tud@res@a##1{% + \ifinlist{##1}{\tud@todo@type@use}{}{% + \ifinlist{##1}{\tud@todo@type@pos}{% + \listadd\tud@todo@type@use{##1}% + }{}% + }% + }% + \fi% + \forcsvlist\tud@res@a{#2}% + }% + }{}% + \ifx\tud@todo@type@use\relax\else% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + \let\tud@res@c\@empty% + \ifinlist{rls}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS44!30,}% + \def\tud@res@b{color=HKS44!30,}% + \edef\tud@res@c{v\TUDScriptVersionNumber}% + }{% + \ifinlist{imp}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS57!50,}% + }{% + \ifinlist{doc}{\tud@todo@type@use}{% + \def\tud@res@a{color=HKS41!30,}% + }{}% + }% + \def\tud@res@c{ToDo}% + \IfValueT{#4}{% + \begingroup% + \tud@v@get\tud@res@a{#4}% + \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% + \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% + \Ifnumber{\tud@res@b}{% + \edef\tud@res@c{% + \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% + }% + \ifnum\tud@res@b>\tud@res@c\relax% + \def\tud@res@b{color=HKS92!30,}% + \else% + \ifnum\tud@res@b<\tud@res@c\relax% + \def\tud@res@b{color=HKS07!50,}% + \else% + \def\tud@res@b{color=HKS41!30,}% + \fi% + \fi% + \def\tud@res@c{v\tud@res@a}% + }{% + \let\tud@res@b\@empty% + \def\tud@res@c{#4}% + }% + \edef\tud@res@c{% + \endgroup% + \def\noexpand\tud@res@b{\tud@res@b}% + \def\noexpand\tud@res@c{\tud@res@c}% + }% + \tud@res@c% + }% + }% + \ifhmode\par\fi% + \let\par\relax% + \vskip\medskipamount% + \noindent% + \toks@\expandafter{\tud@res@b 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{\tud@res@a noline,nolist}% + \settowidth\marginparwidth{\tud@res@c}% + \tud@addtodim\marginparwidth{1.6ex+1pt}% + \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% + \aftergroup\par\aftergroup\noindent% + \listremove{\tud@todo@type@use}{rls}% + \listremove{\tud@todo@type@use}{imp}% + \listremove{\tud@todo@type@use}{doc}% + \ifx\tud@todo@type@use\@empty\else% + \begingroup% + \let\tud@res@c\@empty% + \def\do##1{\appto\tud@res@c{,##1}}% + \dolistloop{\tud@todo@type@use}% + \edef\tud@res@c{% + \endgroup% + \edef\noexpand\tud@res@c{\expandafter\@gobble\tud@res@c}% + }% + \tud@res@c% + \ClassWarning{tudscrmanual}{% + Unknown key(s) `\string\ToDo[\tud@res@c]'% + }% + \fi% + \fi% + \endgroup% + \global\let\@currentHref\tud@currentHref% + \fi% + \ignorespaces% + }% + \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% +} +\TUD@UnwindPackage{todonotes}{% + \NewDocumentCommand\ToDo{s o m !o}{}% + \newcommand*\ListOfToDo{}% +} +\RequirePackage{textcomp} +\RequirePackage{setspace} +\setstretch{1.1} +\PassOptionsToPackage{vskip=\smallskipamount}{quoting} +\RequirePackage{quoting} +\RequirePackage{isodate} +\RequirePackage{hologo} +\newcommand*\notudscrartcl{% + F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese + Option nicht verf\"ugbar.% +} +\NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \addto@hook\toks@{% + {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% + }% + \addto@hook\toks@{{#2}}% + \the\toks@\xspace% +} +%%%% From File: tudscr-texindy.dtx (no git version info was found) +\edef\tud@res@a{\catcode`\noexpand\#=\the\catcode`\#\relax}% +\@makeother\# +\newcommand*\@hashchar{#} +\tud@res@a +\tud@newwrite\tud@xdy@write +\NewDocumentCommand\tud@xdy@create{s}{% + \begingroup% + \edef\tud@res@a{\@currname-\IfBooleanTF{#1}{gls}{ind}.xdy}% + \expandafter\IfFileExists\expandafter{\tud@res@a}{}{% + \IfBooleanTF{#1}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \edef\tud@res@b{the\if@tud@res@swa glossary\else index\fi}% + \edef\tud@res@a{\noexpand\tud@xdy@@create{\tud@res@b}{\tud@res@a}}% + \tud@res@a% + }% + \endgroup% +} +\newcommand*\tud@xdy@@create[2]{% + \immediate\openout\tud@xdy@write=#2\relax% + \immediate\write\tud@xdy@write{(require "texindy.xdy")}% + \immediate\write\tud@xdy@write{% + (markup-index^^J% + \@spaces:open^^J% + "\string\begin{#1}^^J% + \space\space\string\providecommand*\string\seesep{/}\@percentchar^^J% + "^^J% Ende des Umgebungsbeginns + \@spaces:close "\string~n\string~n\string\end{#1}\string~n"^^J% + \@spaces:hierdepth 3^^J% + )^^J% + (define-location-class "arabic-page-numbers"^^J% + \@spaces("arabic-numbers")^^J% + \@spaces:min-range-length 2^^J% + )^^J% + (markup-range :sep "--")^^J% + (merge-rule :eregexp^^J% + \@spaces"\string\[(.*)\string\]"^^J% + \@spaces""^^J% + )^^J% + (markup-indexentry :depth 3^^J% + \@spaces:open\space\space"\string~n\string\subsubsubitem\space"^^J% + )^^J% + (markup-locclass-list^^J% + \@spaces:open\space\space"\string\,\string\dotfill\string\,"^^J% + \@spaces:close "\string\relax"^^J% + \@spaces:sep\space\space\space",\space"^^J% + )^^J% + (define-attributes (("!" "default") ("?" "default") ("default")))^^J% + (markup-attribute-group-list :sep ", ")^^J% + (markup-locref :attr "!"^^J% + \@spaces:open\space\space"\string\textbf{\string\hyperpage{"^^J% + \@spaces:close "}}"^^J% + )^^J% + (markup-locref :attr "?"^^J% + \@spaces:open\space\space"\string\textit{\string\hyperpage{"^^J% + \@spaces:close "}}"^^J% + )^^J% + (markup-locref :attr "default"^^J% + \@spaces:open\space\space"\string\hyperpage{"^^J% + \@spaces:close "}" ^^J% + )^^J% + (markup-crossref-list :class "see"^^J% + \@spaces:open\space\space"\string\cleversee\space"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "\@backslashchar\@backslashchar"^^J% + )^^J% + (markup-crossref-list :class "seealso"^^J% + \@spaces:open\space\space"\string\cleverseealso\space"^^J% + \@spaces:sep\space\space\space"; "^^J% + \@spaces:close "\@backslashchar\@backslashchar"^^J% + )^^J% + (markup-crossref-layer-list :class "see"% + \@spaces\space:sep "\string\seesep{}"% + )^^J% + (markup-crossref-layer-list :class "seealso"% + \space:sep "\string\seesep{}"% + )^^J% + (define-location-class-order^^J% + \@spaces(^^J% + \@spaces"see" "seealso"^^J% + \@spaces"roman-page-numbers" "arabic-page-numbers" "alpha-page-numbers"^^J% + \@spaces"Roman-page-numbers" "Alpha-page-numbers"^^J% + \@spaces)^^J% + )^^J% + }% + \immediate\closeout\tud@xdy@write% +} +\tud@xdy@create +\endinput +%% +%% End of file `tudscrmanual.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls index 0b6158d1662..17f0aa0c659 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrposter.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,poster') +%% tudscr-version.dtx (with options: `class,poster,identify') %% tudscr-base.dtx (with options: `class,poster,load') %% tudscr-base.dtx (with options: `class,poster,option') %% tudscr-fonts.dtx (with options: `class,poster,option') @@ -25,14 +25,15 @@ %% 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') +%% tudscr-comp.dtx (with options: `class,poster,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -48,74 +49,80 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@KOMA{#2}% \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% + \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% + \TUD@Class@Info% \fi% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesClass{tudscrposter}{scrartcl}{poster class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} \AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-base.dtx +%%%% From File: tudscr-base.dtx (no git version info was found) \newcommand*\tud@komafont@set[2]{% \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% \csdef{tud@komafont@#1}{#2\nobreak}% @@ -127,17 +134,23 @@ \newcommand*\tud@komafont@reset[1]{% \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +\AtEndOfClass{\tud@catcodes@restore} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-Script class% }% ]{tudscrfonts} -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -235,14 +248,11 @@ \TUDoptions{cdhead=heavy}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -263,8 +273,8 @@ \tud@locked@bool@preset{@tud@cdmath@active}{false}% \TUD@SpecialOptionAtDocument{tud@math@set}% } -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -297,6 +307,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} \AtEndOfClass% {% \if@tud@cdoldfont@active% @@ -323,12 +334,24 @@ }% \fi% } -\newif\if@tud@x@scr@fontsize@set +\tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } \AtEndOfClass% @@ -336,17 +359,17 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% + \FamilyKeyStateUnknownValue% \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% {% The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% }% } -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -359,7 +382,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } \newcommand*\tud@ttfont@num{0} @@ -432,13 +455,13 @@ } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} \TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} -%%% From File: tudscr-area.dtx -\newif\if@tud@cdgeometry@reset +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@cdgeometry@reset \newcommand*\tud@cdgeometry@reset[1]{% \@tud@cdgeometry@resettrue% \TUDoptions{cdgeometry=#1}% @@ -487,7 +510,7 @@ \or% custom \tud@locked@num@set{tud@cdgeometry@num}{1}% \fi% - \if@atdocument% + \tud@if@preamble{}{% \if@tud@cdgeometry@reset\else% false \ifcase\tud@cdgeometry@num\relax% \tud@loadgeometry{current@typearea}% @@ -498,51 +521,54 @@ \fi% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% - \fi% + }% \fi% } -\newcommand*\tud@dim@extrabottommargin{\z@} +\newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } -\newcommand*\tud@dim@bleedmargin{.2in} +\newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#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% + \tud@length@setabsolute\tud@bleedmargin@dim% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \newcommand*\tud@x@typearea@warnings@off[1][]{% \IfArgIsEmpty{#1}{}{\let#1\@empty}% \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \ifstr{##1}{typearea}{% - \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \ifstrstart{##2}{% + \tud@if@strequal{##1}{typearea}{% + \tud@if@strstart{##2}{% + Bad type area settings!% + }{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Very low DIV value!% + }{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% - \tud@cs@use{PackageWarning}{##1}{##2}% + \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% - \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% + \IfArgIsEmpty{#1}{}{% + \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}% + }% \fi% }% } @@ -555,12 +581,75 @@ \AfterPackage{typearea}{% \tud@x@typearea@warnings@on% } -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) +\tud@newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@bool@numkey,% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@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% +} \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} -\newif\if@tud@head@font@set -\newif\if@tud@head@date +\tud@newif\if@tud@head@font@set +\tud@newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@bool@numkey,% @@ -649,8 +738,10 @@ \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{extrabottommargin=#1}% + \fi% \fi% } \newcommand*\tud@ps@store[1]{% @@ -687,87 +778,20 @@ \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \ifcsundef{@@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@dim@footlogoheight{} -\let\tud@dim@footlogoheight\relax +\newcommand*\tud@footlogoheight@dim{0pt} \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% -} -\newif\if@tud@ddc@internal -\newcommand*\tud@comp@clearpage{}% -\newcommand*\tud@comp@resetpagestyle{}% -\newcommand*\tud@ddc@switch{} -\edef\tud@ddc@switch{% - \TUD@bool@numkey,% - {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% - {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% - {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}% + \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#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% + \tud@length@setabsolute\tud@footlogoheight@dim% \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% } -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cd@switch{} \edef\tud@cd@switch{% \TUD@bool@numkey,% @@ -789,13 +813,13 @@ \TUD@key@preset{cdpart}{#1}% \TUD@key@preset{cdsection}{#1}% \TUD@SpecialOptionAtDocument{tud@cd@process}% - \if@atdocument\else% + \tud@if@preamble{% \ifcase\tud@cd@num\relax% false \tud@locked@num@preset{tud@cdgeometry@num}{0}% \else% !false \tud@locked@num@preset{tud@cdgeometry@num}{2}% \fi% - \fi% + }{}% \fi% } \newcommand*\tud@cd@title@num{0} @@ -820,6 +844,15 @@ \fi% } \newcommand*\tud@pagecolor{}% +\AfterPackage{xcolor}{% + \apptocmd\normalcolor{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% +} \TUD@key{backcolor}[true]{% \TUD@set@numkey{backcolor}{@tempa}{% \TUD@bool@numkey,% @@ -836,28 +869,18 @@ \renewcommand*\tud@pagecolor{#1}% \FamilyKeyStateProcessed% \fi% - \if@atdocument% + \tud@if@preamble{}{% \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% \normalcolor% - \fi% + }% } \TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}} \TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}} -\AfterPackage{xcolor}{% - \CheckCommand*\normalcolor{\let\current@color\default@color\set@color}% - \apptocmd{\normalcolor}{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% - }{}{\tud@patch@wrn{normalcolor}}% - \AtBeginDocument{% - \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% - \normalcolor% - }% -} -\newif\if@tud@heavyheadings +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -872,16 +895,14 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } -%%% From File: tudscr-title.dtx +%%%% From File: tudscr-title.dtx (no git version info was found) \DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{titlepage}[true]{% - \TUD@set@numkey{titlepage}{@tempa}{\TUD@bool@numkey,{firstiscover}{2}}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% - \fi% +\DefineFamilyKey{KOMA}{titlepage}{% + \FamilyKeyStateUnknownValue% + \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% } \newcommand*\tud@titlepage@deactivate{% \if@titlepage% @@ -897,7 +918,7 @@ \fi% } \AtBeginDocument{\tud@titlepage@deactivate} -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {new}{2},{standard}{2},{heading}{2},% @@ -918,10 +939,11 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{abstract}[true]{% + \FamilyKeyStateUnknownValue% \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } -%%% From File: tudscr-misc.dtx -\newif\if@tud@bookmarks +%%%% From File: tudscr-misc.dtx (no git version info was found) +\tud@newif\if@tud@bookmarks \TUD@key{tudbookmarks}[true]{% \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% } @@ -931,7 +953,7 @@ } \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \tud@if@strequal{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } \newcommand*\tud@atdocument@hook{} \let\tud@atdocument@hook\relax @@ -948,7 +970,7 @@ \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \newcommand*\TUD@deprecated@key[2]{% \ClassWarning{\TUD@Class@Name}% {% @@ -999,16 +1021,23 @@ \tud@res@c% }{}% } -\newcommand*\TUD@deprecated@lengthcs[2][]{% - \ifdim\csuse{#2}<\maxdimen\relax% - \ClassWarning{\TUD@Class@Name}{% - Using the length `\@backslashchar#2' is deprecated. \MessageBreak% - You should use option `#2' instead% - }% - \csxdef{tud@dim@#2}{\the\csuse{#2}}% - \expandafter\setlength\csname #2\endcsname{\maxdimen}% - \global\csuse{#2}=\csuse{#2}% - #1% +\newcommand*\TUD@deprecated@length[1]{% + \ifdim#1<\maxdimen\relax% + \begingroup% + \tud@strlength\tud@res@a{#1}% + \edef\tud@res@b{\expandafter\@gobble\string#1}% + \ClassWarning{\TUD@Class@Name}{% + Setting length `\string#1' is deprecated. \MessageBreak% + The option `\tud@res@b=\tud@res@a'\MessageBreak% + is used instead% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\TUDoption{\tud@res@b}{\tud@res@a}% + \global\noexpand\csletcs{tud@\tud@res@b @dim}{tud@\tud@res@b @dim}% + }% + \tud@res@a% + \global\setlength#1{\maxdimen}% \fi% } \newcommand*\tud@v@comp{\tud@v@last} @@ -1036,88 +1065,35 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% - \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% - `version=3.12' KOMA-Script compatibility option.% - }% - \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, but \KOMAScriptVersion was found.% - }% - }% } \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.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@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \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}% + \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% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% \ClassWarningNoLine{\TUD@Class@Name}% {% @@ -1126,6 +1102,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -1268,7 +1250,7 @@ \fi% } \TUD@key{colour}[true]{\TUDoptions{color=#1}} -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1283,12 +1265,12 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax \tud@if@v@lower{2.05}{% \TUD@key@preset{relspacing}{false}% }{% @@ -1303,34 +1285,36 @@ \TUD@key@preset{ttfont}{roboto}% \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% cd=bicolor,tudbookmarks=false% } +\DeclareOption*{\tud@x@scr@checkoptions} \TUDProcessOptions\relax -\LoadClass{\TUD@Class@KOMA}[2020/09/21] +\LoadClass{\TUD@Class@KOMA}[% + 2022/05/01 v3.36 KOMA-Script +] \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% \noexpand\ClassError{\noexpand\TUD@Class@Name}% {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% class `\noexpand\TUD@Class@Name'% - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } -%%% From File: tudscr-base.dtx -\RequirePackage{environ}[2013/04/01] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{environ} \newcommand*\tud@x@multicol@num{1} \newcommand*\tud@x@multicol@check{% \ifnum\tud@x@multicol@num>\@ne\relax% @@ -1350,14 +1334,16 @@ which now will be loaded automatically% }% }{}% - \RequirePackage{graphicx}[1999/02/16]% + \RequirePackage{graphicx} }% - \RequirePackage{tudscrcolor}[\TUD@Version]% + \RequirePackage{tudscrcolor}[% + 2022/08/09 v2.06o TUD-Script + ]% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) \newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} \newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -1396,11 +1382,9 @@ }% }% } -\TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\TUD@RecommendPackage{mweights} +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -1413,12 +1397,17 @@ \newcommand*\tud@ttfont@fam{tudtt} \newcommand*\tud@ttfont@rb{tudtt} \newcommand*\tud@ttfont@lm{lmtt} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% \TUD@key@preset{ttfont}{lmodern}% } +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -1426,8 +1415,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% \@ifpackageloaded{opensans}{% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1444,6 +1433,17 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \fi% + \fi% \fi% } \newcommand*\tud@cdfont@@check[5][-]{% @@ -1478,7 +1478,7 @@ \boolfalse{#5}% \fi% } -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -1495,7 +1495,10 @@ }% }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1503,8 +1506,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -1518,7 +1525,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -1536,7 +1543,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% \if@tud@res@swa% \appto\tud@res@a{% @@ -1550,8 +1557,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -1568,40 +1575,12 @@ \fi% \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% - \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% - {\tud@res@a} + \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}% + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -\newif\if@tud@x@bm@requested -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} \newcommand*\tud@x@fontspec@init[2]{% \begingroup% \edef\tud@res@a{% @@ -1631,7 +1610,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -1639,8 +1618,9 @@ }% \tud@res@a% } -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -1665,13 +1645,6 @@ \tud@cs@store{sffamily}% \tud@cs@store{ttfamily}% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \tud@cdfont@set% \tud@cdfont@symbols@set% \tud@ttfont@set% @@ -1720,12 +1693,19 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% \tud@cd@process% \global\@tud@head@font@settrue% } \newcommand*\tud@cdfont@set{% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1739,7 +1719,6 @@ \fi% \tud@cdfont@@set% \fi% - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1807,7 +1786,7 @@ \tud@res@a% \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname% } -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{% \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list% @@ -1828,35 +1807,57 @@ \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}% \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}% } -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@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% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% + \tud@relspacing@@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}% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@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@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% } \newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1897,28 +1898,33 @@ }{}% \tud@cdfont@declare@textsymb% \fi% - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% \fi% +} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -1941,7 +1947,7 @@ \DeclareTextFontCommand\textcdxi{\cdfontxi}% } \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1959,23 +1965,26 @@ }% \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% \fi% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% \newcommand*\textuln{}% \newcommand*\texturn{}% @@ -2003,26 +2012,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% \if@tud@cdfont@db@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2041,7 +2030,7 @@ \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% \fi% \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -2050,7 +2039,7 @@ \newcommand*\tud@db@wrn{% \ClassWarning{\TUD@Class@Name}% {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -2092,7 +2081,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -2100,29 +2089,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2131,20 +2120,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2152,8 +2141,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2162,9 +2150,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -2174,8 +2162,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2218,12 +2205,12 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false \if@tud@x@fontspec@enabled% - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -2308,24 +2295,24 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% }{}% \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% @@ -2340,8 +2327,18 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -2425,7 +2422,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -2453,7 +2450,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2466,7 +2463,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -2565,26 +2562,19 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% \else% - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% @@ -2592,43 +2582,9 @@ \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% \tud@res@c% } -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} \newcommand*\tud@cdmath@init{% \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2674,12 +2630,11 @@ subdued,defaultmathsizes,nosmalldelims,noequal,% defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% - \RequirePackage{mathastext}[2018/08/22]% + \RequirePackage{mathastext} \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% @@ -2689,104 +2644,128 @@ \fi% \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% \tud@cdmath@also@greeks% - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \fi% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } -\newcommand*\tud@x@mathastext@enc{OT1} -\newcommand*\tud@cdmath@@init[2]{% - \tud@cdfont@@set% - \tud@ttfont@@set% +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} +\newcommand*\tud@cdmath@@@init[9]{% \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% \AtBeginDocument{% @@ -2795,14 +2774,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% \else% \@ifpackageloaded{mdsymbol}{}{% \appto\tud@cdmath@wrn{% @@ -2815,18 +2794,73 @@ }% \fi% \fi% - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \fi% + }% +} +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% }{}% - \if@tud@cdoldfont@active% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% + }{}% + \AtBeginDocument{% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - \fi% + }% + }% +\fi +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% + \if@tud@cdmath@active% + \tud@if@strequal{#1}{normal}{% + \edef\tud@res@a{\tud@cdmath@normal@name}% + }{% + \tud@if@strequal{#1}{bold}{% + \edef\tud@res@a{\tud@cdmath@bold@name}% + }{}% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% }% } \newcommand*\tud@cdmath@symb@list{} @@ -2855,7 +2889,7 @@ }% \tud@res@a% } -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% @@ -2878,7 +2912,7 @@ } \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% \begingroup% \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% \def\tud@res@b##1"##2\@nil{"##2}% @@ -2981,7 +3015,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% @@ -2990,13 +3024,12 @@ \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% }% } -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% \ifcase\tud@slantedgreek@num\relax% upright \tud@math@loop@greeks@all\tud@math@upright@greeks% @@ -3011,7 +3044,7 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% + \expandafter\mathversion\expandafter{\math@version}% } \newcommand*\tud@math@upright@greeks[1]{% \ifcsundef{up#1}{}{% @@ -3025,49 +3058,7 @@ \csletcs{other#1}{up#1}% }% } -\AtEndPreamble{% - \if@tud@x@mweights@enabled% - \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% - \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% - \fi% - \tud@cdfont@check% - \tud@cdfont@init% - \tud@ttfont@init% - \tud@cdmath@init% - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% - \tud@font@set% - \tud@math@map@greeks% - \tud@math@checkslanted@greeks% - \AtBeginDocument{\tud@math@set}% -} +\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@@bold{} @@ -3088,19 +3079,19 @@ \if@tud@head@font@set% \if@tud@x@mweights@enabled% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}% \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}% + \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\shapedefault}% }% \else% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}% \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\shapedefault}% }% \fi% \ifcase\tud@head@font@num\relax\else% true/heavy @@ -3149,7 +3140,110 @@ \fi% }% \fi -%%% From File: tudscr-fields.dtx +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar} + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterAtEndOfPackage*{siunitx}{% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } +} +\tud@newif\if@tud@x@bm@requested +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \tud@cdmath@set% + \fi% + \RequirePackage{bm} + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +\AtEndPreamble{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@cdfont@check% + \tud@cdfont@init% + \tud@ttfont@init% + \tud@font@set% + \tud@cdmath@init% + \tud@x@bm@delayed% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \AtBeginDocument{\tud@math@set}% +} +%%%% From File: tudscr-fields.dtx (no git version info was found) \newcommand*\getfield[2][\@firstofone]{% \begingroup% \def\tud@res@b{#1}% @@ -3179,32 +3273,31 @@ \newcommand*\@departmentfoot{} \newcommand*\@institutefoot{} \newcommand*\@chairfoot{} -\newcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}} -\newcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}} -\newcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}} -\newcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}} +\newcommand*\faculty{\@dblarg{\tud@head@text@field{faculty}}} +\newcommand*\department{\@dblarg{\tud@head@text@field{department}}} +\newcommand*\institute{\@dblarg{\tud@head@text@field{institute}}} +\newcommand*\chair{\@dblarg{\tud@head@text@field{chair}}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} -\newcommand*\tud@head@text@field[2]{% - \csgdef{@#1}{\trim@spaces{#2}}% +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}[]{#1}} +\newcommand*\tud@head@text@field{} +\def\tud@head@text@field#1[#2]#3{% + \expandafter\tud@trim@field\csname @#1\endcsname{#3}% + \expandafter\tud@trim@field\csname @#1foot\endcsname{#2}% \global\@tud@head@text@settrue% } -\newcommand*\tud@foot@line@add[3]{% - \tud@head@text@field{#1}{#2}% - \ifx\@empty#3\relax% - \global\csletcs{@#1foot}{@#1}% - \else% - \csgdef{@#1foot}{\trim@spaces{#3}}% - \fi% -} \newcommand*\tud@foot@line@write[1]{% \protected@edef\@tempa{\csuse{@#1foot}}% \ifx\@tempa\@empty\else\newline\mbox{\csuse{@#1foot}}\fi% } +\newcommand*\tud@trim@field[2]{% + \def#1{#2}% + \trim@spaces@in#1% + \global\let#1#1% +} \newcommand*\@@title{} \robustify\@title \renewcommand*\title[1]{% - \gdef\@title{#1}% + \tud@trim@field\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3215,7 +3308,7 @@ } \newcommand*\@@author{} \renewcommand*\author[1]{% - \gdef\@author{#1}% + \tud@trim@field\@author{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3247,45 +3340,57 @@ \endgroup% } \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newrobustcmd*\authormore[1]{\tud@trim@field\@authormore{#1}} \newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +\newrobustcmd*\emailaddress[2][]{% + \kernel@ifstar% + {\tud@emailaddress@simple{#2}}% + {\tud@emailaddress@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\newrobustcmd*\tud@emailaddress@simple[1]{\tud@trim@field\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\tud@trim@field\@emailaddress{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% + \tud@trim@field\@emailaddress{#2}% + \xdef\@emailaddress{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\href% + {mailto:\expandonce\@emailaddress}% + {\noexpand\nolinkurl{\expandonce\@emailaddress}}% \endgroup% }% }% } \newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newrobustcmd*\course[1]{\tud@trim@field\@course{#1}} \newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\newrobustcmd*\discipline[1]{\tud@trim@field\@discipline{#1}} \newcommand*\@professorfoot{} -\newcommand*\professor[1]{\gdef\@professorfoot{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professorfoot{#1}} \newcommand*\supervisor[1]{} +\CheckCommand*\subtitle[1]{\gdef\@subtitle{#1}} +\renewcommand*\subtitle[1]{\tud@trim@field\@subtitle{#1}} +\CheckCommand\publishers[1]{\gdef\@publishers{#1}}% +\renewcommand*\publishers[1]{\tud@trim@field\@publishers{#1}} \providecommand*\publisher[1]{\publishers{#1}} \newcommand*\@webpage{} -\newrobustcmd*\webpage{% - \kernel@ifstar{\tud@webpage@simple}{\tud@webpage@hyper}% +\newrobustcmd*\webpage[2][]{% + \kernel@ifstar% + {\tud@webpage@simple{#2}}% + {\tud@webpage@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@webpage@simple[1]{\gdef\@webpage{#1}} -\newrobustcmd*\tud@webpage@hyper[2][]{\gdef\@webpage{#2}} +\newrobustcmd*\tud@webpage@simple[1]{\tud@trim@field\@webpage{#1}} +\newrobustcmd*\tud@webpage@hyper[2][]{\tud@trim@field\@webpage{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@webpage@hyper[2][hidelinks]{% - \gdef\@webpage{% + \tud@trim@field\@webpage{#2}% + \xdef\@webpage{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \url{#2}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\url{\expandonce\@webpage}% \endgroup% }% }% @@ -3301,9 +3406,10 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \ifxblank{#2}% - {\gdef#1{}}% - {\gdef#1{\printdate{#2}}}% + \tud@trim@field#1{#2}% + \tud@if@strblank{#1}% + {}% + {\xdef#1{\noexpand\printdate{\expandonce#1}}}% \fi% } \newcommand*\tud@date@check{% @@ -3349,29 +3455,48 @@ } \newcommand*\tud@date@print{% \ifx\@date\@empty\else% + \trim@spaces@in\@beforedate% \ifx\@beforedate\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% + \@beforedate\nobreakspace% \fi% \@date% + \trim@spaces@in\@afterdate% \ifx\@afterdate\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% + \nobreakspace\@afterdate% \fi% \fi% } \newcommand*\@contactperson{} -\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\newcommand*\contactperson[1]{\tud@trim@field\@contactperson{#1}} \let\supervisor\contactperson \newcommand*\@office{} -\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newrobustcmd*\office[1]{\tud@trim@field\@office{#1}} \newcommand*\@telephone{} -\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} +\newrobustcmd*\telephone[1]{\tud@trim@field\@telephone{#1}} \newcommand*\@telefax{} -\newrobustcmd*\telefax[1]{\gdef\@telefax{#1}} +\newrobustcmd*\telefax[1]{\tud@trim@field\@telefax{#1}} +\newcommand*\tud@if@field@unset[1]{% + \begingroup% + \edef\tud@res@a{% + \def\noexpand\tud@res@a####1\string\@latex@####2\noexpand\@nil{% + \noexpand\IfArgIsEmpty{####2}% + \unexpanded{\@tud@res@swafalse\@tud@res@swatrue}% + }% + \noexpand\tud@res@a% + \expandafter\strip@prefix\meaning#1% + \string\@latex@\noexpand\@nil% + }% + \tud@res@a% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% - \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line% - }{% + \expandafter\tud@if@field@unset\expandafter{\csname #1\endcsname}{% \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% @@ -3381,20 +3506,27 @@ \let\and\relax% \let\newline\@empty% \let\\\@empty% - \edef\@tempa{\csname#1\endcsname\and}% + \edef\@tempa{\csname #1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% } \newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% + \IfArgIsEmpty{#1}{% \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@cs@store{@##1}}{}}% + \def\@tempa##1{% + \ifcsdef{@##1}{\tud@cs@store{@##1}}{}% + \ifcsdef{##1}{% + \tud@cs@store{##1}% + \expandafter\xapptocmd\csname ##1\endcsname{\ignorespaces}% + {}{\tud@patch@wrn##1}% + }{}% + }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -3410,6 +3542,7 @@ \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% + \ifcsdef{##1}{\tud@cs@restore{##1}}{}% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3418,16 +3551,16 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \ifstr{#2}{*}{% + \if\detokenize{#2*}\relax% \csdef{@##1}{}% - }{% + \else% \begingroup% \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% \ifin@% \ifcsvoid{@##1}{\@tempc{#2}}{}% \fi% \endgroup% - }% + \fi% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3444,7 +3577,7 @@ } \newcommand*\tud@split@contactperson@do[2]{} \newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax} -%%% From File: tudscr-localization.dtx +%%%% From File: tudscr-localization.dtx (no git version info was found) \newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% @@ -3454,7 +3587,7 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% @@ -3463,6 +3596,7 @@ \tud@localization@define{\disciplinename} \tud@localization@define{\listingname} \tud@localization@define{\listlistingname} +\tud@localization@define{\habilitationname} \tud@localization@define{\dissertationname} \tud@localization@define{\diplomathesisname} \tud@localization@define{\masterthesisname} @@ -3503,6 +3637,7 @@ \tud@localization@german{\disciplinename}{Studienrichtung} \tud@localization@german{\listingname}{Quelltext} \tud@localization@german{\listlistingname}{Quelltextverzeichnis} +\tud@localization@german{\habilitationname}{Habilitation} \tud@localization@german{\dissertationname}{Dissertation} \tud@localization@german{\diplomathesisname}{Diplomarbeit} \tud@localization@german{\masterthesisname}{Master-Arbeit} @@ -3528,6 +3663,7 @@ \tud@localization@english{\disciplinename}{Discipline} \tud@localization@english{\listingname}{Listing} \tud@localization@english{\listlistingname}{List of Listings} +\tud@localization@english{\habilitationname}{Habilitation} \tud@localization@english{\dissertationname}{Dissertation} \tud@localization@english{\diplomathesisname}{Diploma Thesis} \tud@localization@english{\masterthesisname}{Master Thesis} @@ -3554,8 +3690,8 @@ \tud@localization@english{\@commaswap}{\,}% \tud@localization@english{\@dotswap}{.}% } -%%% From File: tudscr-area.dtx -\newif\if@tud@x@crop@center +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@x@crop@center \AfterPackage{crop}{% \CheckCommand*\CROP@center{% \voffset\stockheight @@ -3565,73 +3701,73 @@ \advance\hoffset-\paperwidth \hoffset.5\hoffset }% - \pretocmd{\CROP@center}{% + \pretocmd\CROP@center{% \@tud@x@crop@centertrue% }{}{\tud@patch@wrn{CROP@center}}% } -\newif\if@tud@x@standalone@crop +\tud@newif\if@tud@x@standalone@crop \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} -\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}{} +\tud@newdim\tud@dim@widemargin +\tud@newdim\tud@dim@slimmargin +\tud@newdim\tud@dim@bothmargin +\tud@newdim\tud@dim@topmargin +\tud@newdim\tud@dim@barheight +\tud@newdim\tud@dim@headsep +\tud@newdim\tud@dim@footsep +\tud@newdim\tud@dim@logox +\tud@newdim\tud@dim@logoy +\tud@newdim\tud@dim@logowidth +\tud@newdim\tud@dim@line +\tud@newdim\tud@dim@heavyline +\tud@newdim\tud@dim@thinline +\tud@newdim\tud@dim@areaheadvskip +\tud@newdim\tud@dim@areadiff +\tud@newdim\tud@dim@areavskip +\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{} \newcommand*\tud@head@fontsize{} -\newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutwidth -\newlength\tud@len@layoutheight -\newlength\tud@len@layouthoffset -\newlength\tud@len@layoutvoffset +\tud@newif\if@tud@cdgeometry@adjust +\tud@newdim\tud@dim@layoutwidth +\tud@newdim\tud@dim@layoutheight +\tud@newdim\tud@dim@layouthoffset +\tud@newdim\tud@dim@layoutvoffset \newcommand*\tud@cdgeometry@set{% \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% - \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \else\ifdim\tud@dim@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% + \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% @@ -3654,58 +3790,58 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{0.25pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{4.5pt}% + \tud@setdim\@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}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{21.213203mm}% + \tud@setdim\tud@dim@heavyline{0.707107pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{42.426407mm}% + \tud@setdim\tud@dim@heavyline{1.414214pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{60mm}% + \tud@setdim\tud@dim@heavyline{2pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{84.852814mm}% + \tud@setdim\tud@dim@heavyline{2.828427pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@thinline{2pt}% \renewcommand*\tud@head@fontsize{36}% \else% >A0/B0 \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% @@ -3716,50 +3852,48 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{2pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{36pt}% + \tud@setdim\@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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{\tud@head@fontsize pt}% + \tud@setdim\@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% - }% + \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}% + \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}% + \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}% + \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}% + \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}% + \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}% + \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}% + \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}% + \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% - \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}% + \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}% \fi% \tud@cdgeometry@papersize@store% } \newcommand*\tud@cdgeometry@assignlayout{% - \ifdim\tud@len@layoutwidth<\p@\relax% - \setlength\tud@len@layoutwidth{\paperwidth}% + \ifdim\tud@dim@layoutwidth<\p@\relax% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% \fi% - \ifdim\tud@len@layoutheight<\p@\relax% - \setlength\tud@len@layoutheight{\paperheight}% + \ifdim\tud@dim@layoutheight<\p@\relax% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \fi% } \newcommand*\tud@cdgeometry@papersize@last{} @@ -3775,8 +3909,8 @@ }% \ifx\tud@res@a\tud@cdgeometry@papersize@last\else% \appto\tud@res@b{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% \tud@x@geometry@fixmargins% }% \fi% @@ -3790,11 +3924,11 @@ \expandafter\pagestyle\expandafter{\currentpagestyle}% } \if@tud@x@standalone@crop - \PreventPackageFromLoading{geometry}% - \let\tud@cdgeometry@process\relax% + \PreventPackageFromLoading{geometry} + \let\tud@cdgeometry@process\relax \else - \RequirePackage{geometry}[2010/09/12]% -\fi% + \RequirePackage{geometry} +\fi \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -3932,7 +4066,7 @@ }{\@nameuse{Gm@restore@@#1}% \Gm@changelayout}% }% - \newif\if@tud@x@geometry@enabled% + \tud@newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% \tud@cs@store{geometry}% \tud@cs@store{newgeometry}% @@ -3946,7 +4080,7 @@ }% \renewcommand*\restoregeometry[1][custom]{% \tud@cdgeometry@reset{#1}% - \if@atdocument% + \tud@if@preamble{}{% \ifcase\tud@cdgeometry@num\relax% false \tud@loadgeometry{init@typearea}% \@tud@x@geometry@fixmarginstrue% @@ -3955,11 +4089,11 @@ \@tud@x@geometry@fixmarginstrue% \fi% \tud@cdgeometry@process% - \fi% + }% }% - \apptocmd{\Gm@changelayout}{% + \apptocmd\Gm@changelayout{% \if@tud@x@geometry@enabled% - \if@atdocument% + \tud@if@preamble{}{% \@tud@x@geometry@fixmarginstrue% \ifcase\tud@cdgeometry@num\relax% false \tud@cdgeometry@reset{typearea}% @@ -3967,15 +4101,15 @@ \tud@cdgeometry@reset{custom}% \fi% \tud@cdgeometry@process% - \fi% + }% \fi% }{}{\tud@patch@wrn{Gm@changelayout}}% - \newif\if@tud@x@geometry@fixmargins% + \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% - \addtolength\oddsidemargin{-\tud@len@layouthoffset}% - \addtolength\evensidemargin{-\tud@len@layouthoffset}% - \addtolength\topmargin{-\tud@len@layoutvoffset}% + \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}% \@tud@x@geometry@fixmarginsfalse% \fi% }% @@ -3996,16 +4130,19 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% - \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}% + \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}% }% \tud@res@a% \fi% - \ifstr{#2}{newgeometry}{% - \eappto\Gm@restore@org{% + \tud@if@strequal{#2}{newgeometry}{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \ifcase\tud@cdgeometry@num\relax% \typearea[current]{current}% \ifx\tud@x@geometry@parameter\@empty\else% @@ -4044,11 +4181,11 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \ifstr{#1}{false}{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% - \setlength\tud@len@layouthoffset{\z@}% - \setlength\tud@len@layoutvoffset{\z@}% + \tud@if@strequal{#1}{false}{% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% + \tud@setdim\tud@dim@layouthoffset{\z@}% + \tud@setdim\tud@dim@layoutvoffset{\z@}% }{% \tud@x@geometry@area@def{layout}{#1}% }% @@ -4065,25 +4202,25 @@ \@tempa#1,,\@nil% }% \TUD@parameter@def{layoutwidth}{% - \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}% + \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}% }% \TUD@parameter@def{layoutheight}{% - \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}% + \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}% }% \TUD@parameter@def{layoutoffset}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##1}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##1}% }{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##2}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% - \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% + \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% @@ -4094,20 +4231,24 @@ }% }% \newcommand*\tud@x@geometry@area@def[2]{% - \tud@lowerstring{\@tempa}{#2}% + \tud@strlowercase\@tempa{#2}% \def\@tempb##1paper##2\@nil{% - \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \tud@if@strequal{##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}{}% + \TUD@set@numkey{paper}{@tempc}{% + {seascape}{0},{landscape}{0},{portrait}{0},% + {letter}{0},{executive}{0},{legal}{0}% + }{\@tempa}% + \@tempswafalse% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempc\relax% + \@tempswatrue% + \fi% + \fi% \if@tempswa\else% - \ifx\@tempa\@empty\relax\else% + \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% \if ##1a\@tempswatrue% \else\if ##1b\@tempswatrue% @@ -4116,7 +4257,7 @@ \fi\fi\fi\fi% \if@tempswa% \@tempswafalse% - \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}% \fi% }% \expandafter\@tempb\@tempa\@nil% @@ -4132,7 +4273,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \ifstr{\@tempa}{##1}{% + \tud@if@strequal{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -4167,7 +4308,7 @@ \IfArgIsEmpty{##2}{% \KOMAoption{paper}{##1}% }{% - \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -4182,16 +4323,16 @@ \begingroup% \tud@cdgeometry@assignlayout% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% layoutoffset={% - \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset% }% \if@tud@res@swa% - ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}% \fi% }% }% @@ -4200,24 +4341,25 @@ }% \newcommand*\tud@x@geometry@set[1]{% \@tud@x@geometry@enabledfalse% - \if@atdocument% + \tud@if@preamble{% + \Gm@initnewgm% + \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}% + \def\@tempc{\tud@cs@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa,driver=none}% + }{% \edef\@tempa{#1}% \tud@cs@store{Gm@restore@org}% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \def\@tempc{\tud@cs@use{newgeometry}}% \expandafter\@tempc\expandafter{\@tempa}% \tud@cs@restore{Gm@restore@org}% - \else% - \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% - }% - \def\@tempc{\tud@cs@use{geometry}}% - \expandafter\@tempc\expandafter{\@tempa,driver=none}% - \fi% + }% \@tud@x@geometry@enabledtrue% }% \newcommand*\tud@savegeometry[1]{% @@ -4268,7 +4410,7 @@ \fi% \ifcase\tud@cdgeometry@num\relax% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,% textwidth=\the\textwidth,% \tud@cdgeometry@mpincl,% marginparwidth=\the\marginparwidth,% @@ -4286,8 +4428,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4298,7 +4439,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in% + -\Gm@bindingoffset\relax\relax,% textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% @@ -4320,8 +4462,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4335,37 +4476,43 @@ }% \fi% \fi% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\topmargin-\headheight-\headsep-1in\relax% + \if@twoside% + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\topmargin-\headheight-\headsep-1in% }% - \ifdim\tud@len@areadiff<\z@\relax% - \addtolength\tud@len@headsep{-\tud@len@areadiff}% - \setlength\@tempdima{\z@}% + \ifdim\tud@dim@areadiff<\z@\relax% + \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}% + \tud@setdim\@tempdima{\z@}% \else% - \setlength\@tempdima{\tud@len@areadiff}% + \tud@setdim\@tempdima{\tud@dim@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,% + 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\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% + \tud@setdim\tud@dim@ddcdiff{% + \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4% }% \edef\tud@cdgeometry@ddcmargin{% - textheight=\the\dimexpr\textheight-\tud@len@areadiff% - -\tud@len@ddcdiff\relax,% - footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + textheight=\the\dimexpr\textheight-\tud@dim@areadiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax% }% }{}% - \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else% \begingroup% \edef\tud@res@a{% The key `extrabottommargin' is ineffective\MessageBreak% @@ -4384,45 +4531,43 @@ }% \tud@res@a% \fi% - \else% true/symmetric/twoside - \ifcase\tud@cdgeometry@num\relax\or\or% true - \setlength\@tempdima{\tud@len@widemargin}% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \tud@setdim\@tempdima{\tud@dim@widemargin}% \if@reversemargin% - \setlength\@tempdimc{\tud@len@widemargin}% + \tud@setdim\@tempdimc{\tud@dim@widemargin}% \else% - \setlength\@tempdimc{\tud@len@slimmargin}% + \tud@setdim\@tempdimc{\tud@dim@slimmargin}% \fi% \or% symmetric - \setlength\@tempdima{.5\tud@len@both}% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \or% twoside \if@twoside% - \setlength\@tempdima{.4\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdima{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% \fi% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \if@twoside% \if@reversemargin% - \setlength\@tempdimc{.4\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdimc{.6\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}% \fi% \fi% \fi% - \addtolength\@tempdimc{-\headsep}% - \setlength\@tempdimb{% - \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% - }% + \tud@addtodim\@tempdimc{-\headsep}% + \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}% \if@mincl% - \addtolength\@tempdimb{-\@tempdimc}% + \tud@addtodim\@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,% + marginparsep=\the\dimexpr\headsep/2\relax,% \if@reversemargin% reversemarginpar=true,% \else% @@ -4443,63 +4588,64 @@ \tud@if@v@lower{2.03}{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\dimexpr.5\tud@len@both\relax,% + top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% - headsep=\the\tud@len@headsep,% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4\relax% }% }{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\tud@len@slimmargin,% + top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@len@widemargin% - +\tud@dim@extrabottommargin\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + footskip=\the\dimexpr\tud@dim@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% + 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% }% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\tud@len@slimmargin\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin% }% \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% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@bothmargin/2% }% - \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \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,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4\relax\relax,% \else% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,% \fi% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip+\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% - \global\tud@len@areadiff=\tud@len@areadiff% + \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi% + \global\tud@dim@areadiff=\tud@dim@areadiff% \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% + \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% }{}% \tud@cdgeometry@@@process% }% @@ -4534,11 +4680,11 @@ \or% custom \tud@savegeometry{current@custom}% \fi% - \if@atdocument% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@preamble{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% - \fi% + }% }% \newcommand*\tud@cdgeometry@hincl{% \if@hincl% @@ -4565,12 +4711,12 @@ \csuse{@ta@usegeometryfalse}% \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% \tud@cs@store{tud@cdgeometry@num}% - \tud@cs@store{tud@dim@extrabottommargin}% - \def\tud@dim@extrabottommargin{\z@}% + \tud@cs@store{tud@extrabottommargin@dim}% + \def\tud@extrabottommargin@dim{0pt}% \tud@cdgeometry@reset{custom}% \begingroup% \epreto\tud@x@geometry@init{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + papersize={\the\paperwidth,\the\paperheight},% \tud@cdgeometry@layout,% \tud@cdgeometry@mpincl,% \if@reversemargin% @@ -4596,14 +4742,14 @@ \tud@x@typearea@warnings@on% \tud@cdgeometry@@process% \tud@savegeometry{init@typearea}% - \def\tud@res@b##1{% - \eappto\Gm@restore@@init@typearea{% - \noexpand\PackageWarningNoLine{typearea}{##1}% - }% + \def\do##1{% + \apptocmd\Gm@restore@@init@typearea{% + ##1% + }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}% }% - \forlistloop\tud@res@b{\tud@res@a}% + \dolistloop{\tud@res@a}% \tud@cs@restore{tud@cdgeometry@num}% - \tud@cs@restore{tud@dim@extrabottommargin}% + \tud@cs@restore{tud@extrabottommargin@dim}% \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% \ifcase\tud@cdgeometry@num\relax% typearea \tud@loadgeometry{init@typearea}% @@ -4614,90 +4760,84 @@ \tud@cdgeometry@process% \let\tud@cdgeometry@@init\relax% }% - \newcommand*\tud@currentgeometry{} + \newcommand*\tud@currentgeometry{}% \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@strequal{#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@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@len@areavskip{\z@}% - \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% - \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@setdim\tud@dim@areavskip{\z@}% }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@len@areavskip{\tud@len@areadiff}% + \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}% \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% - \tud@komafont@unset{pagenumber}% - \tud@komafont@unset{pagefoot}% }% - \global\tud@len@areavskip=\tud@len@areavskip% + \global\tud@dim@areavskip=\tud@dim@areavskip% }{}% - } + }% } \newcommand*\tud@x@typearea@before{% \tud@cdgeometry@resetlayout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% + \tud@cslength@store{paperheight}% + \tud@cslength@store{paperwidth}% \begingroup% \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}% + \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}% }% \tud@res@a% } \newcommand*\tud@x@typearea@after{% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% - \if@atdocument% + \tud@cslength@restore{paperheight}% + \tud@cslength@restore{paperwidth}% + \tud@if@preamble{% + \TUD@key@preset{cdgeometry}{false}% + }{% \tud@cdgeometry@reset{typearea}% \tud@cdgeometry@process% - \else% - \TUD@key@preset{cdgeometry}{false}% - \fi% + }% } \newcommand*\tud@x@typearea@init{\recalctypearea}% \xpretocmd{\typearea}{% \tud@x@typearea@before% - \def\tud@x@typearea@init{\typearea[#1]{#2}}% + \def\tud@x@typearea@init{\typearea[{#1}]{#2}}% }{}{\tud@patch@wrn{typearea}} \xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} \xpretocmd{\areaset}{% \tud@x@typearea@before% \begingroup% - \setlength\@tempdima{#2}% - \setlength\@tempdimb{#3}% + \tud@setdim\@tempdima{#2}% + \tud@setdim\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% - \noexpand\def\noexpand\tud@x@typearea@init{% - \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + \def\noexpand\tud@x@typearea@init{% + \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}% }% }% \tud@res@a% @@ -4705,17 +4845,17 @@ \xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}} \tud@cs@store{storeareas} \renewcommand*\storeareas[1]{% - \begingroup + \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% - \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% + \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% - \tud@res@b{\tud@len@layoutwidth}% - \tud@res@b{\tud@len@layoutheight}% - \tud@res@b{\tud@len@layouthoffset}% - \tud@res@b{\tud@len@layoutvoffset}% + \unexpanded{\def#1}{% + \tud@res@b{\tud@dim@layoutwidth}% + \tud@res@b{\tud@dim@layoutheight}% + \tud@res@b{\tud@dim@layouthoffset}% + \tud@res@b{\tud@dim@layoutvoffset}% \expandonce#1% \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% @@ -4729,8 +4869,8 @@ \let\tud@cdgeometry@@init\relax% }% \newcommand*\tud@cdgeometry@@process{% - \setlength\tud@len@layoutwidth{\paperwidth}% - \setlength\tud@len@layoutheight{\paperheight}% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \tud@cdgeometry@set% }% \newcommand*\tud@x@geometry@fixmargins{}% @@ -4745,41 +4885,52 @@ \fi% }% } -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleoddpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleevenpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\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@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \enlargethispage{-\tud@len@ddcdiff}% + \enlargethispage{-\tud@dim@ddcdiff}% \fi% }% }{}% }% }{} -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) \if@tud@x@standalone@crop \PreventPackageFromLoading{scrlayer-scrpage}% \else \PassOptionsToPackage{automark}{scrlayer-scrpage}% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[% + 2022/05/01 v3.36 KOMA-Script + ]}% \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,% + addhoffset=\tud@dim@logox-\tud@dim@widemargin,% + addwidth=-\tud@dim@logox+\tud@dim@widemargin,% + voffset=\tud@dim@logoy,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@mainlogo@set% \tud@headlogo@option@set% @@ -4788,10 +4939,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -4801,24 +4952,24 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\tud@dim@barheight,% + voffset=\tud@dim@topmargin,% + addvoffset=\tud@dim@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% + \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% + \ifdim\@tempdima<\z@\relax\tud@setdim\@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,% + voffset=\tud@dim@topmargin+\tud@dim@line,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% @@ -4827,8 +4978,8 @@ ]{tudheadings.head.text}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -4837,9 +4988,8 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -4848,10 +4998,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -4860,11 +5010,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -4873,16 +5022,16 @@ ]{tudheadings.head.lowlinewide}% \DeclareNewLayer[% foreground,headsep,% - addvoffset=.5\tud@len@headsep,% - height=\baselineskip,% + addvoffset=\tud@dim@headsep/2,% + height=1\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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% \if@tud@foot@colored% @@ -4897,7 +5046,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -4907,7 +5058,7 @@ ]{tudheadings.foot.back}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% @@ -4919,7 +5070,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -4927,7 +5080,7 @@ \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false @@ -4940,13 +5093,9 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset\relax,% + height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% @@ -4954,16 +5103,13 @@ ]{tudheadings.foot.content}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \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% + \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}% + \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax% \fi% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% @@ -4975,7 +5121,7 @@ background,% ]{tudheadings.last}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -4999,7 +5145,7 @@ \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5025,7 +5171,7 @@ \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5047,12 +5193,10 @@ \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}% - ,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -5061,6 +5205,22 @@ },% ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onselect={% + \tud@if@tudheadings{\currentpagestyle}{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + }{% + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% + }% + }% } \newcommand*\tud@ps@list{} \listadd\tud@ps@list{tudheadings} @@ -5069,13 +5229,15 @@ \newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% +\patchcmd\thispagestyle{% + \gdef\@specialstyle{#1}% +}{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} -\pretocmd{\tud@pagestyle}{% +\pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} @@ -5091,26 +5253,21 @@ } \AfterAtEndOfPackage*{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} \TUD@UnwindPackage{scrlayer-scrpage}{% - \ifcsundef{if@chapter}{% + \ifundef{\if@chapter}{% \newif\if@chapter% - \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + \ifundef{\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*\tud@BeforeSelectAnyPageStyle[1]{}% \providecommand*\GetRealPageStyle[1]{#1}% \let\pagestyle\tud@pagestyle% \undef\tud@pagestyle% \tud@cdgeometry@init% } -\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} @@ -5150,7 +5307,7 @@ \fi% }{% \tud@locked@bool@preset{@tud@head@widebar}{true}% - \ifstr{\tud@pagecolor}{HKS41}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -5171,8 +5328,10 @@ \fi% }% }% - \let\tud@len@line\tud@len@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \let\tud@dim@line\tud@dim@thinline% + \tud@if@strequal{\tud@head@fontcolor}{white}% + {\let\tud@dim@line\tud@dim@heavyline}% + {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \newcommand*\tud@head@text@line{} @@ -5180,13 +5339,13 @@ \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@text@add[3][{, }]{% - \ifxblank{#3}{}{% + \tud@if@strblank{#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}% + \unexpanded{#2#3}% }% \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% @@ -5197,7 +5356,7 @@ \fi% }% } -\newif\if@tud@head@text@set +\tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% @@ -5209,7 +5368,7 @@ \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}{}{% + \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% @@ -5223,7 +5382,7 @@ } \newcommand*\tud@head@text@box{% \def\@tempb{\tud@color{\tud@head@fontcolor}}% - \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempc{\depth+\tud@dim@heavyline}% \def\@tempa##1{% \settowidth\@tempdima{##1}% \ifdim\@tempdima>\textwidth\relax% @@ -5235,16 +5394,16 @@ \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% - \def\@tempc{\z@}% + \let\@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}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% \vbox{% \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% + \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% @@ -5252,16 +5411,18 @@ \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}}% + \raisebox{% + \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% + }[% + \dimexpr\tud@dim@barheight-\depth\relax% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}% } \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@len@line}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@layer@#1\endcsname% + \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% @@ -5269,33 +5430,74 @@ \newcommand*\tud@uselayerbox[1]{% \expandafter\usebox\csname tud@layer@#1\endcsname% } -\newcommand*\tud@vlayerbox[3]{% +\newcommand*\tud@vlayerbox[4][]{% \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% + \setbox\z@\vbox{#3}% + \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}% + \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax% + \edef\tud@res@a{% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{% + #4\noexpand\MessageBreak% + The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the% + \noexpand\MessageBreak maximum height (\the\tud@res@glue)% + }% + }% + \IfArgIsEmpty{#1}{\tud@res@a}{% + \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else% + \tud@res@a% + \global\cslet{tud@layer@#1@wrn}\tud@res@a% + \fi% }% \fi% \endgroup% - \vbox to #1{#2}% + \vbox to #2{#3}% +} +\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 +\tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set +\tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \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}}% - \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% - \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight% \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% \ClassWarning{\TUD@Class@Name}{% @@ -5310,14 +5512,18 @@ \fi% }% \tud@headlogo@set% - \@tud@footlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } +\AtBeginDocument{% + \@tud@mainlogo@settrue% + \tud@mainlogo@set% +} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -5327,26 +5533,17 @@ \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]% + \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -5357,18 +5554,19 @@ \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% - ]{##1}% + \includegraphics[{% + keepaspectratio,% + totalheight=\tud@dim@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\tud@headlogo@filename{\tud@headlogo@filename}% + \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% @@ -5387,11 +5585,21 @@ \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% + \ifnum\@tempa>\z@\relax + \ifdefvoid{\tud@headlogo@filename}{}{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\tud@headlogo@filename'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + }% + \fi% \global\@tud@headlogo@option@setfalse% \fi% } +\newcommand*\tud@layer@headlogo@wrn{} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@len@mainlogoheight}{% + \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -5405,57 +5613,59 @@ }{% 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% - }% } -\AtEndOfClass{% - \ifdefvoid{\tud@dim@footlogoheight}{% +\newcommand*\tud@footlogoheight@set{% + \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% - \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% - \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% - }{}% + \fi% } \tud@newlayerbox{foot@black} \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + \tud@savelayerbox{#1}{% + \includegraphics[% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% + ]{#2}% }% } \newcommand*\tud@footlogo@option@set{% + \tud@footlogoheight@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@footlogo@ddc@set{foot@black}{DDC-22}% + \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}% + \tud@footlogo@ddc@set{foot@white}{DDC-28}% \tud@ddc@check% \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color - \tud@footlogo@ddc@set{option}{DDC-01}% + \tud@footlogo@ddc@set{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% + \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray - \tud@footlogo@ddc@set{option}{DDC-19}% + \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black - \tud@footlogo@ddc@set{option}{DDC-22}% + \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue - \tud@footlogo@ddc@set{option}{DDC-25}% + \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white - \tud@footlogo@ddc@set{option}{DDC-28}% + \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% + \global\@tud@footlogo@cmd@settrue% \fi% } +\newcommand*\tud@layer@footlogo@wrn{} \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}{% + \tud@vlayerbox[footlogo]{#1}{% \vss% \hbox to #2{% \hss% @@ -5467,12 +5677,12 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + You should reduce `footlogoheight', because it is\noexpand\MessageBreak% + too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% + Alternatively you could use\noexpand\MessageBreak% + option `extrabottommargin='\noexpand\MessageBreak% + in order to enlarge the bottom margin. % \fi% }% }% @@ -5490,14 +5700,15 @@ \global\@tud@footlogo@cmd@settrue% \tud@comp@resetpagestyle% } -\newif\if@tud@footlogo@cmd@set +\tud@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}}% + \protected@edef\@tempb{\@tempb}% + \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% @@ -5527,11 +5738,14 @@ \DeclareListParser{\@tempc}{:}% \@tempc{#1}% \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@dim@footlogoheight,% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% - \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}% + \noexpand\includegraphics[{% + \expandonce\tud@footlogo@fileoptions% + }]{\@tempa}% }% \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% @@ -5545,26 +5759,27 @@ \usebox\z@\hspace*{-\wd\z@}% } \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} -\newcommand*\tud@footcontent@usefont[1]{% +\newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% - \tud@footcontent@fontsize% - \tud@footcontent@fontface% + \tud@footcontent@font@size% + \tud@footcontent@font@face% \selectfont% #1% }% } -\newcommand*\tud@footcontent@fontsize{} -\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@font@size{} +\newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\tud@footcontent@right{} +\let\tud@footcontent@right\@nnil \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontsize{}% + \renewcommand*\tud@footcontent@font@size{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontsize{% - \setlength\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\@tempdima}{1.25\@tempdima}% + \renewcommand*\tud@footcontent@font@size{% + \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}% + \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}% }% \tud@footcontent@do% }% @@ -5576,19 +5791,19 @@ } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% - \if\detokenize{*#1}\relax\else% - \renewcommand*\tud@footcontent@fontface{#1}% + \if\detokenize{#1*}\relax\else% + \renewcommand*\tud@footcontent@font@face{#1}% \fi% - \if\detokenize{*#2}\relax\else% + \if\detokenize{#2*}\relax\else% \renewcommand*\tud@footcontent@left{#2}% \fi% - \if\detokenize{*#3}\relax\else% + \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}}% + \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}% Technische Universit\"at Dresden% \tud@foot@line@write{faculty}% \tud@foot@line@write{department}% @@ -5607,18 +5822,18 @@ \nobreakspace(\@discipline)% \fi% \fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\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}{% + \tud@if@field@unset{\@author}{% \let\@tempa\@empty% }{% \let\@tempa\@author% }% \ifx\@tempa\@empty\else% - \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + \tud@if@strblank{#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}% @@ -5632,13 +5847,13 @@ \ifx\@contactperson\@empty\else\newline\fi% \fi% \def\tud@newline@poster{% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\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% }% \ifx\@contactperson\@empty\else% - \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}% + \tud@if@strblank{#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}% @@ -5657,12 +5872,12 @@ }[% \tud@footcontent@@right{\authorname}{\contactpersonname}% ] +\newcommand*\tud@layer@footcontent@wrn{} \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% + \ifx\tud@footcontent@left\@empty% + \ifx\tud@footcontent@right\@nnil\else% + \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% @@ -5672,44 +5887,29 @@ \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \tud@addtodim\@tempdimc{\columnsep}% \fi% - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@usefont{% - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% + \tud@footcontent@font@use{% + \tud@setglue\tud@res@glue{#2}% + \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% \vss\vss% }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content\MessageBreak% + The content for the footer (`\string\footcontent')\noexpand\MessageBreak% + is too high. You should either reduce the content\noexpand\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% + \noexpand\MessageBreak% + Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% @@ -5717,39 +5917,25 @@ \hbox to #2{}% \fi% } -\tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% -}{}% -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head@num% - \let\@tempb\tud@ddc@foot@num% - \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% +\newcommand*\tud@footcontent@@use[1]{% + \ifx\tud@footcontent@right\@nnil% + \vtop{% + \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% - \tud@if@v@lower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% - \fi% - }{}% } -\newif\if@tud@parameter@ps@font@set +\tud@newif\if@tud@parameter@ps@font@set \newcommand*\TUD@parameter@ps@def[1]{% \TUD@parameter@def{cdfont}[true]{% \TUDoption{cdfont}{#1}% @@ -5782,38 +5968,50 @@ capabilities of package `scrlayer-scrpage' instead% }% ]{fancyhdr} -%%% 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}}{}}}}% - }% - \begingroup - \tud@sec@fontsize% - \@tempskipa=\glueexpr% - .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - \relax\relax% +%%%% From File: tudscr-layout.dtx (no git version info was found) +\newcommand*\tud@subtitle@fontsizecmd{\LARGE} +\newcommand*\tud@prefix@fontsizecmd{\huge} +\newcommand*\tud@sec@fontsizecmd{\Huge} +\newcommand*\tud@sec@baselineskip@@dim{} +\newcommand*\tud@sec@baselineskip@set{% + \begingroup% + \tud@sec@fontsizecmd% \edef\tud@res@a{% \endgroup% - \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + \unexpanded{\def\tud@sec@baselineskip@@dim}{% + \the\dimexpr\glueexpr\f@baselineskip\relax\relax% + }% }% \tud@res@a% } -\AtEndPreamble{\tud@x@scr@headings@set} +\tud@sec@baselineskip@set +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempb##1##2##3{% + \renewcommand*\tud@sec@fontsizecmd{##1}% + \renewcommand*\tud@prefix@fontsizecmd{##2}% + \renewcommand*\tud@subtitle@fontsizecmd{##3}% + \tud@sec@baselineskip@set% + #1% + }% + \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempc\do{% + \TUD@set@numkey{headings}{@tempa}{% + {standardclasses}{0},{big}{1},{normal}{2},{small}{3}% + }{\@tempc}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% standardclasses + \@tempb{\Huge} {\LARGE}{\Large}% + \or% big + \@tempb{\Huge} {\huge} {\LARGE}% + \or% normal + \@tempb{\huge} {\LARGE}{\Large}% + \or% small + \@tempb{\LARGE}{\Large}{\large}% + \fi% + \fi% + }% +} +\AfterEndPreamble{\tud@x@scr@headings@set} \newcommand*\tud@x@scr@headings@reset{% \tud@cd@process% \tud@x@scr@headings@set[% @@ -5831,15 +6029,25 @@ \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseriesforce{\tud@cdfont@ebf}% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% + \fi% + \fontseriesforce{\bfdefault}% + \fi% \selectfont% } \if@tud@cdoldfont@active @@ -5851,46 +6059,32 @@ \fi% }% \fi -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% } -\if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% - }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% - }% -\fi -\newrobustcmd*\tud@sec@strut{% +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]#3{% \begingroup% - \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% \endgroup% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} +\if@tud@cdoldfont@active + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% +\fi \newcommand*\tud@title@fontcolor{} \newcommand*\tud@part@fontcolor{} \newcommand*\tud@section@fontcolor{} @@ -5909,42 +6103,46 @@ \usekomafont{disposition}% \raggedtitle% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{subtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% - \sffamily% \usesizeofkomafont{section}% + \sffamily% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@title@fontcolor}% }% \fi% \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{partlineswithprefixformat}% \tud@cs@restore{scr@part@beforeskip}% \tud@cs@restore{scr@part@afterskip}% \tud@cs@restore{partheadstartvskip}% - \tud@cs@restore{partlineswithprefixformat}% \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% \tud@cs@restore{raggedpart}% \else% !false + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% - \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}% + \renewcommand*\scr@part@beforeskip{% + \glueexpr\tud@cd@aftervskip@@glue+\baselineskip\relax% + }% \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% - \tud@cs@store{partlineswithprefixformat}% - \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@komafont@set{part}{% \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% \tud@komafont@set{partnumber}{% \tud@sec@fontface% + \tud@prefix@fontsizecmd% \tud@color{\tud@part@fontcolor}% }% \tud@cs@store{raggedpart}% @@ -5988,12 +6186,12 @@ \renewcommand*\raggedsection{\tud@raggedright}% \tud@cs@store{minisec}% \renewcommand\minisec[1]{% - \tud@cs@use{minisec}{\tud@sec@format{##1}}% + \tud@cs@use{minisec}{\tud@sec@format*{##1}}% }% \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -6021,42 +6219,51 @@ \fi% \fi% } -\newcommand*\tud@cd@beforeskip{% - \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +\newcommand*\tud@cd@beforevskip@@dim{% + \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innerskip{.25\baselineskip}% -\newcommand*\tud@cd@afterskip{% - .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +\newcommand*\tud@cd@innervskip@@dim{% + \dimexpr(\tud@sec@baselineskip@@dim)/5\relax% +}% +\newcommand*\tud@cd@aftervskip@@glue{% + \glueexpr + \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax + \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax + \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax + \relax } -\newcommand*\tud@cd@headstartvskip{% - \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% - \null\vskip-\baselineskip\vskip\@tempskipa% +\newcommand*\tud@cd@headstart@vskip{% + \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}% + \tud@length@setabsolute\@tempdima% + \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax% } \newcommand*\tud@cd@vphantom{% \begingroup% - \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \setlength\@tempskipa{\tud@cd@innerskip}% - \par\nobreak\vskip\@tempskipa% + \usekomafont{partnumber}{% + \tud@sec@format{\vskip\tud@cd@innervskip@@dim}% + }% \endgroup% } \newcommand*\tud@part@subtitle{} \newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}} \newkomafont{partsubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } \aliaskomafont{parttitle}{partsubtitle} \newcommand*\tud@sec@subtitle[1]{% \ifcsvoid{tud@#1@subtitle}{}{% - {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + {\usekomafont{#1subtitle}{% + \vskip-1\parskip% + \tud@sec@format{\csuse{tud@#1@subtitle}}% + }}\par% \global\cslet{tud@#1@subtitle}{\@empty}% }% } \newcommand*\tud@partheadstartvskip{} \let\tud@partheadstartvskip\partheadstartvskip -\pretocmd{\tud@partheadstartvskip}{% +\pretocmd\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\else% *color \renewcommand*\tud@part@fontcolor{HKS41}% @@ -6067,25 +6274,30 @@ \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% \let\partformat\tud@partformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \tud@sec@subtitle{#1}% } +\if@tud@cdoldfont@active + \patchcmd\tud@partlineswithprefixformat + {#2\tud@sec@format[{#1}]{#3}} + {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3} + {}{\tud@patch@wrn{tud@partlineswithprefixformat}} +\fi \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% } \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}% } \newcommand*\tud@sectioncatchphraseformat[4]{% - \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[#1]{#4}% + \hskip #2#3\tud@sec@format*[{#1}]{#4}% } -%%% From File: tudscr-title.dtx +%%%% From File: tudscr-title.dtx (no git version info was found) \newkomafont{titlepage}{% \raggedtitle% \sffamily% @@ -6111,7 +6323,9 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \tud@if@strequal{\titlepagestyle}{empty}% + {\thispagestyle{empty.tudheadings}}% + {}% }{}% \else% !false \if@tud@parameter@ps@font@set\else% @@ -6139,7 +6353,9 @@ } \tud@cs@store{maketitle} \let\maketitle\tud@maketitle -\patchcmd{\titlepage}{\thispagestyle{empty}}{% +\patchcmd\titlepage{% + \thispagestyle{empty}% +}{% \tud@if@tudheadings{\currentpagestyle}{% \thispagestyle{empty.tudheadings}% }{% @@ -6149,7 +6365,9 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {}% + {\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -6173,7 +6391,7 @@ \ifx\@extratitle\@empty% \ifx\@frontispiece\@empty\else% \if@twoside\null\fi% - \fi + \fi% \else% \tud@res@a{\@makeextratitle}% \fi% @@ -6189,21 +6407,19 @@ } \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% - \tud@cd@headstartvskip% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% \tud@x@hyperref@realfootnotes% \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% \ifnum\col@number>\@ne\relax% - \ifdefvoid{\multicolsep}{}{% - \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% - }% + \tud@if@lengthregister{\multicolsep}{\vspace{-\multicolsep}}{}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% }}% @@ -6211,49 +6427,34 @@ \newcommand*\tud@maketitle@head{% \setbox\z@\vbox{% \ifx\@titlehead\@empty\else% - {\usekomafont{titlehead}{% - \begin{minipage}[t]{\textwidth}% - \@titlehead\tud@sec@strut% - \end{minipage}% - }}% + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\strut\par}% + \end{minipage}% \fi% \ifx\@subject\@empty\else% \par\medskip% - {\usekomafont{subject}{% - \@subject\tud@sec@strut% - }}% + {\usekomafont{subject}{\tud@sec@format[partnumber]{\@subject}}}% \fi% }% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% \usebox\z@\par\medskip% \fi% } -\newcommand*\tud@title@format[1]{% +\newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% - \let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@sec@format{#1}% - \edef\tud@res@a{% - \endgroup% - \ifx\tud@thanks\relax\else% - \noexpand\thanks{\expandonce\tud@thanks}% - \fi% - }% - \tud@res@a% + \tud@sec@format[{#1}]{#2}% + \endgroup% } \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% - \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[{#1}]#2}% \else% \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% - }{}% + }{You should use `\string\maketitle' instead.}% + \tud@maketitle[{#1}]#2% \fi% } \newsavebox\tud@title@box @@ -6263,14 +6464,14 @@ \let\clearpage\relax% \let\newpage\relax% \global\setbox\tud@title@box\vbox{% - \vspace*{.9\baselineskip}#1\bigskip% + \vspace*{\dimexpr1\baselineskip*9/10\relax}#1\bigskip% }% \endgroup% - \setlength\@tempdima{\textheight}% + \tud@setdim\@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}% + \tud@setdim\@tempdima{\textheight-\tud@dim@ddcdiff}% \@tempswatrue% \fi% }{}% @@ -6280,7 +6481,7 @@ \splitmaxdepth\maxdepth% \vsplit\tud@title@box to \@tempdima% \clearpage% - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% \else% @@ -6293,13 +6494,13 @@ 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% + use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% #2% @@ -6351,19 +6552,20 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + \vskip\smallskipamount% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount% \fi% + \vskip-\parskip% }% \or% true \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% + \vskip\bigskipamount\vskip-\parskip% }% \begingroup% \noindent\centering% @@ -6372,7 +6574,7 @@ \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% + \vskip\medskipamount\vskip-\parskip% \@afterheading% \or% section \section*{#2}% @@ -6396,7 +6598,7 @@ }% }[% \ifnum\tud@abstract@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% ] \TUD@parameter@family{abstract}{% @@ -6412,63 +6614,15 @@ the environment `abstract'.% }% } -%%% From File: tudscr-comp.dtx -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} -\TUD@deprecated@cs{professorship}{chair} -\TUD@deprecated@cs{location}{place} -\TUD@deprecated@cs{logofile}{headlogo} -\TUD@deprecated@cs{logofilename}{headlogo} -\AfterPackage{tudscrsupervisor}{% - \TUD@deprecated@cs{startdate}{issuedate}% - \TUD@deprecated@cs{finaldate}{duedate}% - \TUD@deprecated@cs{maturitydate}{duedate}% -} -\TUD@deprecated@cs{textcdfont}{textcd}% -\TUD@deprecated@cs{tudfont}{cdfont}% -\TUD@deprecated@cs{univln}{cdfontln}% -\TUD@deprecated@cs{univrn}{cdfontrn}% -\TUD@deprecated@cs{univbn}{cdfontsn}% -\TUD@deprecated@cs{univxn}{cdfontbn}% -\TUD@deprecated@cs{univls}{cdfontli}% -\TUD@deprecated@cs{univrs}{cdfontri}% -\TUD@deprecated@cs{univbs}{cdfontsi}% -\TUD@deprecated@cs{univxs}{cdfontbi}% -\TUD@deprecated@cs{textuln}{textcdln}% -\TUD@deprecated@cs{texturn}{textcdrn}% -\TUD@deprecated@cs{textubn}{textcdsn}% -\TUD@deprecated@cs{textuxn}{textcdbn}% -\TUD@deprecated@cs{textuls}{textcdli}% -\TUD@deprecated@cs{texturs}{textcdri}% -\TUD@deprecated@cs{textubs}{textcdsi}% -\TUD@deprecated@cs{textuxs}{textcdbi}% -\TUD@deprecated@cs{dinbn}{cdfontxn}% -\TUD@deprecated@cs{textdbn}{textcdxn}% -\TUD@deprecated@cs{ifdin}{@secondoftwo} -\newrobustcmd*\tud@ifdin{% - \ifx\f@family\tud@cdfont@db% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -\if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% -\fi -\def\tud@res@a#1{% - \TUD@deprecated@cs{var#1}{it#1}% -} -\tud@math@loop@greeks@uc\tud@res@a% -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% - \renewcommand*\tudbookmark[3][]{% + \renewcommand*\tudbookmark[3][0]{% \relax% \if@tud@bookmarks% - \phantomsection% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \csuse{phantomsection}% + \pdfbookmark[{#1}]{#2}{#3}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -6477,7 +6631,6 @@ \let\@footnotemark\H@@footnotemark% \let\@footnotetext\H@@footnotetext% }% - \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } \newcommand*\tud@x@bookmark@startatroot{\relax} \AfterPackage{bookmark}{% @@ -6485,13 +6638,13 @@ \if@tud@bookmarks\bookmarksetup{startatroot}\fi% }% } -\pretocmd{\tud@maketitle@inpage}{% +\pretocmd\tud@maketitle@inpage{% \tud@x@bookmark@startatroot% \tudbookmark[% 1% ]{\titlename}{title}% }{}{\tud@patch@wrn{tud@maketitle@inpage}} -\pretocmd{\@maketitle}{% +\pretocmd\@maketitle{% \tud@x@bookmark@startatroot% \tudbookmark[% 1% @@ -6518,10 +6671,10 @@ \AtBeginDocument{% \if@tud@x@scr@fontsize@set\else% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight>299mm\relax\@tud@res@swatrue\fi% \if@tud@res@swa% \ClassWarningNoLine{\TUD@Class@Name}{% You've set a layout size, which is different from\MessageBreak% @@ -6532,22 +6685,43 @@ \fi% \fi% } -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@cd@process -\newif\if@tud@cdgeometry@process +\newcommand*\tud@here@begin[1]{% + \def\@captype{#1}% + \vskip\intextsep% + \color@vbox% + \normalcolor% + \vbox\bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \@floatboxreset% + \@setnobreak% + \ignorespaces% +} +\newcommand*\tud@here@end{% + \vskip\intextsep% + \@minipagefalse% + \outer@nobreak% + \egroup% + \color@endbox% +} +\newenvironment{figurehere}{\tud@here@begin{figure}}{\tud@here@end} +\newenvironment{tablehere}{\tud@here@begin{table}}{\tud@here@end} +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@relspacing@set +\tud@newif\if@tud@x@scr@headings@reset +\tud@newif\if@tud@cd@process +\tud@newif\if@tud@cdgeometry@process \newcommand*\tud@atdocument@process{% \if@tud@font@set% \tud@font@set% \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% + \global\@tud@relspacing@setfalse% \global\@tud@cd@processfalse% \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% \fi% \if@tud@math@set% \tud@math@set% @@ -6567,22 +6741,54 @@ \global\@tud@cdgeometry@processfalse% \fi% } +%%%% From File: tudscr-comp.dtx (no git version info was found) +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} +\TUD@deprecated@cs{professorship}{chair} +\TUD@deprecated@cs{location}{place} +\TUD@deprecated@cs{logofile}{headlogo} +\TUD@deprecated@cs{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \TUD@deprecated@cs{startdate}{issuedate}% + \TUD@deprecated@cs{finaldate}{duedate}% + \TUD@deprecated@cs{maturitydate}{duedate}% +} +\TUD@deprecated@cs{textcdfont}{textcd}% +\TUD@deprecated@cs{tudfont}{cdfont}% +\TUD@deprecated@cs{univln}{cdfontln}% +\TUD@deprecated@cs{univrn}{cdfontrn}% +\TUD@deprecated@cs{univbn}{cdfontsn}% +\TUD@deprecated@cs{univxn}{cdfontbn}% +\TUD@deprecated@cs{univls}{cdfontli}% +\TUD@deprecated@cs{univrs}{cdfontri}% +\TUD@deprecated@cs{univbs}{cdfontsi}% +\TUD@deprecated@cs{univxs}{cdfontbi}% +\TUD@deprecated@cs{textuln}{textcdln}% +\TUD@deprecated@cs{texturn}{textcdrn}% +\TUD@deprecated@cs{textubn}{textcdsn}% +\TUD@deprecated@cs{textuxn}{textcdbn}% +\TUD@deprecated@cs{textuls}{textcdli}% +\TUD@deprecated@cs{texturs}{textcdri}% +\TUD@deprecated@cs{textubs}{textcdsi}% +\TUD@deprecated@cs{textuxs}{textcdbi}% +\TUD@deprecated@cs{dinbn}{cdfontxn}% +\TUD@deprecated@cs{textdbn}{textcdxn}% +\TUD@deprecated@cs{ifdin}{@secondoftwo} +\newrobustcmd*\tud@ifdin{% + \ifx\f@family\tud@cdfont@db% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} \if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} +\def\tud@res@a#1{% + \TUD@deprecated@cs{var#1}{it#1}% +} +\tud@math@loop@greeks@uc\tud@res@a% \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 c89aa909f66..ce7e4457c86 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,report') +%% tudscr-version.dtx (with options: `class,report,identify') %% tudscr-base.dtx (with options: `class,report,load') %% tudscr-base.dtx (with options: `class,report,option') %% tudscr-fonts.dtx (with options: `class,report,option') @@ -25,14 +25,15 @@ %% tudscr-layout.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') +%% tudscr-comp.dtx (with options: `class,report,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -48,74 +49,80 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\newcommand*\TUD@ProvidesClass[3]{% +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\newcommand*\TUD@ProvidesClass[3] +{% \ProvidesClass{#1}[% - 2021/07/15 v2.06n TUD-Script + 2022/08/09 v2.06o TUD-Script #3 (#2)% ]% \newcommand*\TUD@Class@KOMA{#2}% \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% + \newcommand*\TUD@Class@Name{#1}% + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% + \TUD@Class@Info% \fi% } \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } \TUD@ProvidesClass{tudscrreprt}{scrreprt}{document class} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUD@Version] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{tudscrbase}[% + 2022/08/09 v2.06o TUD-Script +] \renewcommand*\TUD@KOMAoptions[1]{\PassOptionsToClass{#1}{\TUD@Class@KOMA}} \AfterClass{\TUD@Class@KOMA}{\let\TUD@KOMAoptions\KOMAoptions} -%%% From File: tudscr-base.dtx +%%%% From File: tudscr-base.dtx (no git version info was found) \newcommand*\tud@komafont@set[2]{% \ifcsdef{tud@komafont@#1}{}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}% \csdef{tud@komafont@#1}{#2\nobreak}% @@ -127,17 +134,23 @@ \newcommand*\tud@komafont@reset[1]{% \ifcsdef{tud@komafont@#1}{\addtokomafont{#1}{\csuse{tud@komafont@#1}}}{}% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +\AtEndOfClass{\tud@catcodes@restore} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-Script class% }% ]{tudscrfonts} -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -235,14 +248,11 @@ \TUDoptions{cdhead=heavy}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -263,8 +273,8 @@ \tud@locked@bool@preset{@tud@cdmath@active}{false}% \TUD@SpecialOptionAtDocument{tud@math@set}% } -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -297,6 +307,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} \AtEndOfClass% {% \if@tud@cdoldfont@active% @@ -323,12 +334,24 @@ }% \fi% } -\newif\if@tud@x@scr@fontsize@set +\tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% + \ClassWarningNoLine{\TUD@Class@Name}% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } \AtEndOfClass% @@ -336,17 +359,17 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% + \FamilyKeyStateUnknownValue% \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% {% The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% - \FamilyKeyStateProcessed% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% }% } -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -359,7 +382,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } \newcommand*\tud@ttfont@num{0} @@ -432,13 +455,13 @@ } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} \TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}} -%%% From File: tudscr-area.dtx -\newif\if@tud@cdgeometry@reset +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@cdgeometry@reset \newcommand*\tud@cdgeometry@reset[1]{% \@tud@cdgeometry@resettrue% \TUDoptions{cdgeometry=#1}% @@ -487,7 +510,7 @@ \or% custom \tud@locked@num@set{tud@cdgeometry@num}{1}% \fi% - \if@atdocument% + \tud@if@preamble{}{% \if@tud@cdgeometry@reset\else% false \ifcase\tud@cdgeometry@num\relax% \tud@loadgeometry{current@typearea}% @@ -498,51 +521,54 @@ \fi% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% - \fi% + }% \fi% } -\newcommand*\tud@dim@extrabottommargin{\z@} +\newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } -\newcommand*\tud@dim@bleedmargin{.2in} +\newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#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% + \tud@length@setabsolute\tud@bleedmargin@dim% \fi% } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \newcommand*\tud@x@typearea@warnings@off[1][]{% \IfArgIsEmpty{#1}{}{\let#1\@empty}% \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \ifstr{##1}{typearea}{% - \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \ifstrstart{##2}{% + \tud@if@strequal{##1}{typearea}{% + \tud@if@strstart{##2}{% + Bad type area settings!% + }{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Very low DIV value!% + }{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% - \tud@cs@use{PackageWarning}{##1}{##2}% + \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% - \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% + \IfArgIsEmpty{#1}{}{% + \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}% + }% \fi% }% } @@ -555,12 +581,75 @@ \AfterPackage{typearea}{% \tud@x@typearea@warnings@on% } -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) +\tud@newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@bool@numkey,% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@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% +} \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} -\newif\if@tud@head@font@set -\newif\if@tud@head@date +\tud@newif\if@tud@head@font@set +\tud@newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@bool@numkey,% @@ -649,8 +738,10 @@ \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% \else% - \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{extrabottommargin=#1}% + \fi% \fi% } \newcommand*\tud@ps@store[1]{% @@ -687,87 +778,20 @@ \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \ifcsundef{@@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@dim@footlogoheight{} -\let\tud@dim@footlogoheight\relax +\newcommand*\tud@footlogoheight@dim{0pt} \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% -} -\newif\if@tud@ddc@internal -\newcommand*\tud@comp@clearpage{}% -\newcommand*\tud@comp@resetpagestyle{}% -\newcommand*\tud@ddc@switch{} -\edef\tud@ddc@switch{% - \TUD@bool@numkey,% - {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% - {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% - {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}% + \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#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% + \tud@length@setabsolute\tud@footlogoheight@dim% \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% } -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cd@switch{} \edef\tud@cd@switch{% \TUD@bool@numkey,% @@ -795,13 +819,13 @@ \TUD@key@preset{cdchapter}{#1}% \TUD@key@preset{cdsection}{#1}% \TUD@SpecialOptionAtDocument{tud@cd@process}% - \if@atdocument\else% + \tud@if@preamble{% \ifcase\tud@cd@num\relax% false \tud@locked@num@preset{tud@cdgeometry@num}{0}% \else% !false \tud@locked@num@preset{tud@cdgeometry@num}{2}% \fi% - \fi% + }{}% \fi% } \newcommand*\tud@cd@cover@num{0} @@ -844,15 +868,15 @@ \TUD@SpecialOptionAtDocument{tud@cd@process}% \fi% } -\newif\if@tud@parttitle +\tud@newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% } -\newif\if@tud@chapterpage +\tud@newif\if@tud@chapterpage \TUD@key{chapterpage}[true]{% \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } -\newif\if@tud@clearcolor +\tud@newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} \TUD@key{cleardoublespecialpage}[true]{% \TUD@set@numkey{cleardoublespecialpage}{@tempa}{% @@ -877,7 +901,7 @@ \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}% \fi% \else% - \AfterPreamble{% + \AfterEndPreamble{% \ifcsundef{ps@#1}{% \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% @@ -891,19 +915,28 @@ \fi% } \newcommand*\tud@pagecolor{}% -\newcommand*\tud@dim@pageheadingsvskip{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% +\AfterPackage{xcolor}{% + \apptocmd\normalcolor{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% } -\newcommand*\tud@dim@headingsvskip{0pt} +\newcommand*\tud@headingsvskip@dim{0pt} \TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% + \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% +} +\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% } -\newif\if@tud@heavyheadings +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -918,27 +951,27 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{open}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{chapterprefix}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } -%%% From File: tudscr-title.dtx -\newif\if@tud@subjectthesis +%%%% From File: tudscr-title.dtx (no git version info was found) +\tud@newif\if@tud@subjectthesis \TUD@key{subjectthesis}[true]{% \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% } -\newif\if@tud@titlesignature +\tud@newif\if@tud@titlesignature \TUD@key{titlesignature}[true]{% \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {chapter}{3},{chap}{3},{addchap}{3},% @@ -958,11 +991,11 @@ } \newcommand*\tud@abstract@level@num{0} \tud@locked@newnum{tud@abstract@toc@num}{0} -\newif\if@tud@abstract@multi +\tud@newif\if@tud@abstract@multi \@tud@abstract@multitrue -\newif\if@tud@abstract@fil +\tud@newif\if@tud@abstract@fil \@tud@abstract@filtrue -\newif\if@tud@abstract@markboth +\tud@newif\if@tud@abstract@markboth \TUD@key{abstract}[true]{% \edef\@tempb{\TUD@bool@numkey,\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% @@ -1021,15 +1054,16 @@ } \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{abstract}[true]{% + \FamilyKeyStateUnknownValue% \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } \newcommand*\tud@declaration@level@num{1} \tud@locked@newnum{tud@declaration@toc@num}{0} -\newif\if@tud@declaration@multi +\tud@newif\if@tud@declaration@multi \@tud@declaration@multitrue -\newif\if@tud@declaration@fil +\tud@newif\if@tud@declaration@fil \@tud@declaration@filtrue -\newif\if@tud@declaration@markboth +\tud@newif\if@tud@declaration@markboth \TUD@key{declaration}[true]{% \edef\@tempb{\TUD@bool@numkey,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% @@ -1086,8 +1120,8 @@ \fi% \fi% } -%%% From File: tudscr-misc.dtx -\newif\if@tud@bookmarks +%%%% From File: tudscr-misc.dtx (no git version info was found) +\tud@newif\if@tud@bookmarks \TUD@key{tudbookmarks}[true]{% \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% } @@ -1097,7 +1131,7 @@ } \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \tud@if@strequal{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } \newcommand*\tud@atdocument@hook{} \let\tud@atdocument@hook\relax @@ -1114,7 +1148,7 @@ \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% }% } -%%% From File: tudscr-comp.dtx +%%%% From File: tudscr-comp.dtx (no git version info was found) \newcommand*\TUD@deprecated@key[2]{% \ClassWarning{\TUD@Class@Name}% {% @@ -1165,16 +1199,23 @@ \tud@res@c% }{}% } -\newcommand*\TUD@deprecated@lengthcs[2][]{% - \ifdim\csuse{#2}<\maxdimen\relax% - \ClassWarning{\TUD@Class@Name}{% - Using the length `\@backslashchar#2' is deprecated. \MessageBreak% - You should use option `#2' instead% - }% - \csxdef{tud@dim@#2}{\the\csuse{#2}}% - \expandafter\setlength\csname #2\endcsname{\maxdimen}% - \global\csuse{#2}=\csuse{#2}% - #1% +\newcommand*\TUD@deprecated@length[1]{% + \ifdim#1<\maxdimen\relax% + \begingroup% + \tud@strlength\tud@res@a{#1}% + \edef\tud@res@b{\expandafter\@gobble\string#1}% + \ClassWarning{\TUD@Class@Name}{% + Setting length `\string#1' is deprecated. \MessageBreak% + The option `\tud@res@b=\tud@res@a'\MessageBreak% + is used instead% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\TUDoption{\tud@res@b}{\tud@res@a}% + \global\noexpand\csletcs{tud@\tud@res@b @dim}{tud@\tud@res@b @dim}% + }% + \tud@res@a% + \global\setlength#1{\maxdimen}% \fi% } \newcommand*\tud@v@comp{\tud@v@last} @@ -1202,88 +1243,35 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% - \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% - `version=3.12' KOMA-Script compatibility option.% - }% - \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, but \KOMAScriptVersion was found.% - }% - }% } \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.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@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \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}% + \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% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% \ClassWarningNoLine{\TUD@Class@Name}% {% @@ -1292,6 +1280,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -1445,7 +1439,7 @@ \fi% } \TUD@key{clearcolour}[true]{\TUDoptions{clearcolor=#1}} -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1460,12 +1454,12 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax \tud@if@v@lower{2.05}{% \TUD@key@preset{relspacing}{false}% }{% @@ -1480,34 +1474,36 @@ \TUD@key@preset{ttfont}{roboto}% \TUD@key@preset{headings}{heavy}% } -\DeclareOption*{\tud@x@scr@checkoptions} \TUDExecuteOptions{% cd=true,tudbookmarks=true% } +\DeclareOption*{\tud@x@scr@checkoptions} \TUDProcessOptions\relax -\LoadClass{\TUD@Class@KOMA}[2020/09/21] +\LoadClass{\TUD@Class@KOMA}[% + 2022/05/01 v3.36 KOMA-Script +] \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% \noexpand\ClassError{\noexpand\TUD@Class@Name}% {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% class `\noexpand\TUD@Class@Name'% - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } -%%% From File: tudscr-base.dtx -\RequirePackage{environ}[2013/04/01] +%%%% From File: tudscr-base.dtx (no git version info was found) +\RequirePackage{environ} \newcommand*\tud@x@multicol@num{1} \newcommand*\tud@x@multicol@check{% \ifnum\tud@x@multicol@num>\@ne\relax% @@ -1527,14 +1523,16 @@ which now will be loaded automatically% }% }{}% - \RequirePackage{graphicx}[1999/02/16]% + \RequirePackage{graphicx} }% - \RequirePackage{tudscrcolor}[\TUD@Version]% + \RequirePackage{tudscrcolor}[% + 2022/08/09 v2.06o TUD-Script + ]% } -%%% From File: tudscr-fonts.dtx +%%%% From File: tudscr-fonts.dtx (no git version info was found) \newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax} \newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -1573,11 +1571,9 @@ }% }% } -\TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\TUD@RecommendPackage{mweights} +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -1590,12 +1586,17 @@ \newcommand*\tud@ttfont@fam{tudtt} \newcommand*\tud@ttfont@rb{tudtt} \newcommand*\tud@ttfont@lm{lmtt} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% \TUD@key@preset{ttfont}{lmodern}% } +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -1603,8 +1604,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% \@ifpackageloaded{opensans}{% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1621,6 +1622,17 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \fi% + \fi% \fi% } \newcommand*\tud@cdfont@@check[5][-]{% @@ -1655,7 +1667,7 @@ \boolfalse{#5}% \fi% } -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -1672,7 +1684,10 @@ }% }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% \ClassWarningNoLine{\TUD@Class@Name}% @@ -1680,8 +1695,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -1695,7 +1714,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -1713,7 +1732,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% \if@tud@res@swa% \appto\tud@res@a{% @@ -1727,8 +1746,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -1745,40 +1764,12 @@ \fi% \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% - \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% - {\tud@res@a} + \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}% + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% } -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -\newif\if@tud@x@bm@requested -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} \newcommand*\tud@x@fontspec@init[2]{% \begingroup% \edef\tud@res@a{% @@ -1808,7 +1799,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -1816,8 +1807,9 @@ }% \tud@res@a% } -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -1842,13 +1834,6 @@ \tud@cs@store{sffamily}% \tud@cs@store{ttfamily}% \fi% - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% \tud@cdfont@set% \tud@cdfont@symbols@set% \tud@ttfont@set% @@ -1897,12 +1882,19 @@ \edef\mddef@ult{\mddefault}% \edef\famdef@ult{\familydefault}% \fi% - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% \tud@cd@process% \global\@tud@head@font@settrue% } \newcommand*\tud@cdfont@set{% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1916,7 +1908,6 @@ \fi% \tud@cdfont@@set% \fi% - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1984,7 +1975,7 @@ \tud@res@a% \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname% } -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{% \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list% @@ -2005,42 +1996,64 @@ \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}% \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}% } -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@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% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% + \tud@relspacing@@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@cdfont@init{% - \if@tud@cdfont@fam@exist% - \if@tud@x@fontspec@enabled% - \def\tud@res@a{% - UprightFont={OpenSans-Regular},% - FontFace={l}{n}{OpenSans-Light},% - FontFace={m}{n}{OpenSans-Regular},% - FontFace={sb}{n}{OpenSans-SemiBold},% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@restore{columnsep}% + \fi% +} +\newcommand*\tud@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% +} +\newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% + \if@tud@cdfont@fam@exist% + \if@tud@x@fontspec@enabled% + \def\tud@res@a{% + UprightFont={OpenSans-Regular},% + FontFace={l}{n}{OpenSans-Light},% + FontFace={m}{n}{OpenSans-Regular},% + FontFace={sb}{n}{OpenSans-SemiBold},% FontFace={b}{n}{OpenSans-Bold},% FontFace={bx}{n}{OpenSans-Bold},% FontFace={eb}{n}{OpenSans-ExtraBold},% @@ -2074,28 +2087,33 @@ }{}% \tud@cdfont@declare@textsymb% \fi% - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} - \fi% + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% + \fi% +} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -2118,7 +2136,7 @@ \DeclareTextFontCommand\textcdxi{\cdfontxi}% } \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2136,23 +2154,26 @@ }% \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}% \fi% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% \newcommand*\textuln{}% \newcommand*\texturn{}% @@ -2180,26 +2201,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% \if@tud@cdfont@db@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -2218,7 +2219,7 @@ \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}% \fi% \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -2227,7 +2228,7 @@ \newcommand*\tud@db@wrn{% \ClassWarning{\TUD@Class@Name}% {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -2269,7 +2270,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -2277,29 +2278,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2308,20 +2309,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% \ClassWarning{\TUD@Class@Name}% {The font `#1' is unknown}% @@ -2329,8 +2330,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2339,9 +2339,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -2351,8 +2351,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2395,12 +2394,12 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false \if@tud@x@fontspec@enabled% - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -2485,24 +2484,24 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% }{}% \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% @@ -2517,8 +2516,18 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% + \ClassWarningNoLine{\TUD@Class@Name}% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -2602,7 +2611,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -2630,7 +2639,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2643,7 +2652,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -2742,26 +2751,19 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}% \else% - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% \if@tud@res@swa% \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}% \fi% @@ -2769,43 +2771,9 @@ \edef\tud@res@c{\endgroup\expandonce\tud@res@c}% \tud@res@c% } -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} \newcommand*\tud@cdmath@init{% \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2851,12 +2819,11 @@ subdued,defaultmathsizes,nosmalldelims,noequal,% defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% - \RequirePackage{mathastext}[2018/08/22]% + \RequirePackage{mathastext} \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc% @@ -2866,104 +2833,128 @@ \fi% \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% \tud@cdmath@also@greeks% - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \fi% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } -\newcommand*\tud@x@mathastext@enc{OT1} -\newcommand*\tud@cdmath@@init[2]{% - \tud@cdfont@@set% - \tud@ttfont@@set% +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} +\newcommand*\tud@cdmath@@@init[9]{% \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% - \fi% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% + \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% \AtBeginDocument{% @@ -2972,14 +2963,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% \else% \@ifpackageloaded{mdsymbol}{}{% \appto\tud@cdmath@wrn{% @@ -2992,18 +2983,73 @@ }% \fi% \fi% - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \fi% + }% +} +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% }{}% - \if@tud@cdoldfont@active% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% + }{}% + \AtBeginDocument{% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - \fi% + }% + }% +\fi +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% + \if@tud@cdmath@active% + \tud@if@strequal{#1}{normal}{% + \edef\tud@res@a{\tud@cdmath@normal@name}% + }{% + \tud@if@strequal{#1}{bold}{% + \edef\tud@res@a{\tud@cdmath@bold@name}% + }{}% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% }% } \newcommand*\tud@cdmath@symb@list{} @@ -3032,7 +3078,7 @@ }% \tud@res@a% } -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{% \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list% @@ -3055,7 +3101,7 @@ } \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% \begingroup% \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}% \def\tud@res@b##1"##2\@nil{"##2}% @@ -3158,7 +3204,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% @@ -3167,13 +3213,12 @@ \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}% }% } -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% \ifcase\tud@slantedgreek@num\relax% upright \tud@math@loop@greeks@all\tud@math@upright@greeks% @@ -3188,7 +3233,7 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% + \expandafter\mathversion\expandafter{\math@version}% } \newcommand*\tud@math@upright@greeks[1]{% \ifcsundef{up#1}{}{% @@ -3202,49 +3247,7 @@ \csletcs{other#1}{up#1}% }% } -\AtEndPreamble{% - \if@tud@x@mweights@enabled% - \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% - \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% - \fi% - \tud@cdfont@check% - \tud@cdfont@init% - \tud@ttfont@init% - \tud@cdmath@init% - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% - \tud@font@set% - \tud@math@map@greeks% - \tud@math@checkslanted@greeks% - \AtBeginDocument{\tud@math@set}% -} +\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@set{% @@ -3264,14 +3267,14 @@ \if@tud@head@font@set% \if@tud@x@mweights@enabled% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}% \else% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}% \fi% \ifcase\tud@head@font@num\relax\else% true/heavy \tud@head@cdfont@set% @@ -3310,7 +3313,110 @@ \fi% }% \fi -%%% From File: tudscr-fields.dtx +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar} + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterAtEndOfPackage*{siunitx}{% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } +} +\tud@newif\if@tud@x@bm@requested +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \tud@cdmath@set% + \fi% + \RequirePackage{bm} + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +\AtEndPreamble{% + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@cdfont@check% + \tud@cdfont@init% + \tud@ttfont@init% + \tud@font@set% + \tud@cdmath@init% + \tud@x@bm@delayed% + \tud@math@map@greeks% + \tud@math@checkslanted@greeks% + \AtBeginDocument{\tud@math@set}% +} +%%%% From File: tudscr-fields.dtx (no git version info was found) \newcommand*\getfield[2][\@firstofone]{% \begingroup% \def\tud@res@b{#1}% @@ -3336,20 +3442,26 @@ \newcommand*\@department{} \newcommand*\@institute{} \newcommand*\@chair{} -\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*\faculty{\@dblarg{\tud@head@text@field{faculty}}} +\newcommand*\department{\@dblarg{\tud@head@text@field{department}}} +\newcommand*\institute{\@dblarg{\tud@head@text@field{institute}}} +\newcommand*\chair{\@dblarg{\tud@head@text@field{chair}}} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} -\newcommand*\tud@head@text@field[2]{% - \csgdef{@#1}{\trim@spaces{#2}}% +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}[]{#1}} +\newcommand*\tud@head@text@field{} +\def\tud@head@text@field#1[#2]#3{% + \expandafter\tud@trim@field\csname @#1\endcsname{#3}% \global\@tud@head@text@settrue% } +\newcommand*\tud@trim@field[2]{% + \def#1{#2}% + \trim@spaces@in#1% + \global\let#1#1% +} \newcommand*\@@title{} \robustify\@title \renewcommand*\title[1]{% - \gdef\@title{#1}% + \tud@trim@field\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3360,7 +3472,7 @@ } \newcommand*\@@author{} \renewcommand*\author[1]{% - \gdef\@author{#1}% + \tud@trim@field\@author{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -3392,128 +3504,160 @@ \endgroup% } \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newrobustcmd*\authormore[1]{\tud@trim@field\@authormore{#1}} \newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% +\newrobustcmd*\emailaddress[2][]{% + \kernel@ifstar% + {\tud@emailaddress@simple{#2}}% + {\tud@emailaddress@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\newrobustcmd*\tud@emailaddress@simple[1]{\tud@trim@field\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\tud@trim@field\@emailaddress{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% + \tud@trim@field\@emailaddress{#2}% + \xdef\@emailaddress{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\href% + {mailto:\expandonce\@emailaddress}% + {\noexpand\nolinkurl{\expandonce\@emailaddress}}% \endgroup% }% }% } \newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newrobustcmd*\course[1]{\tud@trim@field\@course{#1}} \newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\newrobustcmd*\discipline[1]{\tud@trim@field\@discipline{#1}} \newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} +\newrobustcmd*\matriculationnumber[1]{\tud@trim@field\@matriculationnumber{#1}} \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newrobustcmd*\matriculationyear[1]{\tud@trim@field\@matriculationyear{#1}} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newrobustcmd*\placeofbirth[1]{\tud@trim@field\@placeofbirth{#1}} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} -\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} -\newcommand*\tud@thanks{} -\newcommand*\tud@thesis@do[2]{% +\newcommand*\thesis[1]{\tud@thesis@evaluate{thesis}{#1}} +\CheckCommand*\subject[1]{\gdef\@subject{#1}} +\newcommand*\@@subject{} +\renewcommand*\subject[1]{\tud@thesis@evaluate{subject}{#1}} +\newcommand*\tud@thesis@evaluate[2]{% \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% + \expandafter\tud@trim@field\csname @#1\endcsname{#2}% + \let\tud@res@c\@empty% + \def\thanks##1{\listgadd\tud@res@c{##1}}% \let\footnote\thanks% \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \protected@edef\@tempa{% + \protected@csxdef{@@#1}{\trim@spaces{#2}}% + \letcs\tud@res@a{@@#1}% + \TUD@set@numkey{thesis}{@tempa}{% + {habil}{0}, + {diss}{1},{doctoral}{1},{phd}{1}, + {diploma}{2}, + {master}{3}, + {bachelor}{4}, + {student}{5}, + {evidence}{6}, + {project}{7}, + {seminar}{8}, + {term}{9}, + {research}{10}, + {log}{11}, + {report}{12}, + {internship}{13} + }{\tud@res@a}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% habil + \def\tud@res@a{\habilitationname}% + \or% diss + \def\tud@res@a{\dissertationname}% + \or% diploma + \def\tud@res@a{\diplomathesisname}% + \or% master + \def\tud@res@a{\masterthesisname}% + \or% bachelor + \def\tud@res@a{\bachelorthesisname}% + \or% student + \def\tud@res@a{\studentthesisname}% + \or% evidence + \def\tud@res@a{\studentresearchname}% + \or% project + \def\tud@res@a{\projectpapername}% + \or% seminar + \def\tud@res@a{\seminarpapername}% + \or% term + \def\tud@res@a{\termpapername}% + \or% research + \def\tud@res@a{\researchname}% + \or% log + \def\tud@res@a{\logname}% + \or% report + \def\tud@res@a{\reportname}% + \or% internship + \def\tud@res@a{\internshipname}% + \else% + \FamilyKeyStateUnknownValue% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \global\cslet{@@#1}\tud@res@a% + \tud@if@strequal{#1}{subject}{% + \ifx\@@thesis\@empty\global\let\@@thesis\@@subject\fi% + }{}% + \def\do##1{\appto\tud@res@a{\thanks{##1}}}% + \dolistloop{\tud@res@c}% + \fi% + \edef\tud@res@a{% \endgroup% - \def\noexpand\@tempa{\@tempa}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \noexpand\csgdef{@#1}{\expandonce\tud@res@a}% + \fi% }% - \@tempa% - \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \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{\TUD@Class@Name}{% - Field `thesis' is overwritten by `subject'% - }% - \fi% - \TUD@key@preset{subjectthesis}{true}% - }{% - \TUD@key@preset{subjectthesis}{false}% - }% - \ifx\tud@thanks\relax% - \gdef\@thesis{#2}% - \else% - \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% - \fi% - \protected@xdef\@@thesis{\trim@spaces{#2}}% + \tud@res@a% } \newcommand*\@graduation{} \newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \gdef\@graduationabbreviation{}% - \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% - \gdef\@graduation{#2}% + \tud@trim@field\@graduationabbreviation{#1}% + \tud@trim@field\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professor{#1}} \newcommand*\@supervisor{} -\newcommand*\supervisor[1]{\gdef\@supervisor{#1}} +\newcommand*\supervisor[1]{\tud@trim@field\@supervisor{#1}} \newcommand*\@supporter{} -\newcommand*\supporter[1]{\gdef\@supporter{#1}} +\newcommand*\supporter[1]{\tud@trim@field\@supporter{#1}} \newcommand*\@company{} -\newcommand*\company[1]{\gdef\@company{#1}} +\newcommand*\company[1]{\tud@trim@field\@company{#1}} \newcommand*\@referee{} -\newcommand*\referee[1]{\gdef\@referee{#1}} +\newcommand*\referee[1]{\tud@trim@field\@referee{#1}} \newcommand*\@advisor{} -\newcommand*\advisor[1]{\gdef\@advisor{#1}} -\newlength\tud@len@signatureskip -\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} +\newcommand*\advisor[1]{\tud@trim@field\@advisor{#1}} +\tud@newglue\tud@glue@signaturevskip +\tud@setglue\tud@glue@signaturevskip{8ex plus 6ex minus 6ex} \newcommand*\@confirmationclosing{% \tud@date@check% \ifx\@date\@empty\else% \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \begingroup% \let\and\hfil% \@@author\hfil% \endgroup% } -\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} +\newcommand*\confirmationclosing[1]{\tud@trim@field\@confirmationclosing{#1}} \newcommand*\@place{Dresden} -\newcommand*\place[1]{\gdef\@place{#1}} +\newcommand*\place[1]{\tud@trim@field\@place{#1}} +\CheckCommand*\subtitle[1]{\gdef\@subtitle{#1}} +\renewcommand*\subtitle[1]{\tud@trim@field\@subtitle{#1}} +\CheckCommand\publishers[1]{\gdef\@publishers{#1}}% +\renewcommand*\publishers[1]{\tud@trim@field\@publishers{#1}} \providecommand*\publisher[1]{\publishers{#1}} \TUD@UnwindPackage{isodate}{% \@ifpackageloaded{datetime2}{% @@ -3526,9 +3670,10 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \ifxblank{#2}% - {\gdef#1{}}% - {\gdef#1{\printdate{#2}}}% + \tud@trim@field#1{#2}% + \tud@if@strblank{#1}% + {}% + {\xdef#1{\noexpand\printdate{\expandonce#1}}}% \fi% } \newcommand*\tud@date@check{% @@ -3574,26 +3719,43 @@ } \newcommand*\tud@date@print{% \ifx\@date\@empty\else% + \trim@spaces@in\@beforedate% \ifx\@beforedate\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% + \@beforedate\nobreakspace% \fi% \@date% + \trim@spaces@in\@afterdate% \ifx\@afterdate\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% + \nobreakspace\@afterdate% \fi% \fi% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{% - \tud@printdate{\@dateofbirth}{#1}\ignorespaces% +\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@if@field@unset[1]{% + \begingroup% + \edef\tud@res@a{% + \def\noexpand\tud@res@a####1\string\@latex@####2\noexpand\@nil{% + \noexpand\IfArgIsEmpty{####2}% + \unexpanded{\@tud@res@swafalse\@tud@res@swatrue}% + }% + \noexpand\tud@res@a% + \expandafter\strip@prefix\meaning#1% + \string\@latex@\noexpand\@nil% + }% + \tud@res@a% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% } \newcommand*\tud@multiple@@split{} \newcommand*\tud@multiple@split[1]{% - \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% - \@latex@warning@no@line% - }{% + \expandafter\tud@if@field@unset\expandafter{\csname #1\endcsname}{% \csuse{#1}\csgdef{#1}{}% }{}% \def\tud@multiple@@split##1\and##2\relax{% @@ -3603,20 +3765,27 @@ \let\and\relax% \let\newline\@empty% \let\\\@empty% - \edef\@tempa{\csname#1\endcsname\and}% + \edef\@tempa{\csname #1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% } \newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% + \IfArgIsEmpty{#1}{% \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@cs@store{@##1}}{}}% + \def\@tempa##1{% + \ifcsdef{@##1}{\tud@cs@store{@##1}}{}% + \ifcsdef{##1}{% + \tud@cs@store{##1}% + \expandafter\xapptocmd\csname ##1\endcsname{\ignorespaces}% + {}{\tud@patch@wrn##1}% + }{}% + }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -3632,6 +3801,7 @@ \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% + \ifcsdef{##1}{\tud@cs@restore{##1}}{}% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3640,16 +3810,16 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \ifstr{#2}{*}{% + \if\detokenize{#2*}\relax% \csdef{@##1}{}% - }{% + \else% \begingroup% \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% \ifin@% \ifcsvoid{@##1}{\@tempc{#2}}{}% \fi% \endgroup% - }% + \fi% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% @@ -3667,7 +3837,7 @@ matriculationnumber,studentid,matriculationid,% placeofbirth,birthplace,dateofbirth,birthday,% } -%%% From File: tudscr-localization.dtx +%%%% From File: tudscr-localization.dtx (no git version info was found) \newcommand*\tud@localization@define[1]{% \providecommand*#1{% \ClassError{\TUD@Class@Name}{% @@ -3677,7 +3847,7 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% @@ -3708,6 +3878,7 @@ \tud@localization@define{\disciplinename} \tud@localization@define{\listingname} \tud@localization@define{\listlistingname} +\tud@localization@define{\habilitationname} \tud@localization@define{\dissertationname} \tud@localization@define{\diplomathesisname} \tud@localization@define{\masterthesisname} @@ -3832,6 +4003,7 @@ \tud@localization@german{\disciplinename}{Studienrichtung} \tud@localization@german{\listingname}{Quelltext} \tud@localization@german{\listlistingname}{Quelltextverzeichnis} +\tud@localization@german{\habilitationname}{Habilitation} \tud@localization@german{\dissertationname}{Dissertation} \tud@localization@german{\diplomathesisname}{Diplomarbeit} \tud@localization@german{\masterthesisname}{Master-Arbeit} @@ -3937,6 +4109,7 @@ \tud@localization@english{\disciplinename}{Discipline} \tud@localization@english{\listingname}{Listing} \tud@localization@english{\listlistingname}{List of Listings} +\tud@localization@english{\habilitationname}{Habilitation} \tud@localization@english{\dissertationname}{Dissertation} \tud@localization@english{\diplomathesisname}{Diploma Thesis} \tud@localization@english{\masterthesisname}{Master Thesis} @@ -3960,8 +4133,8 @@ \tud@localization@english{\@commaswap}{\,}% \tud@localization@english{\@dotswap}{.}% } -%%% From File: tudscr-area.dtx -\newif\if@tud@x@crop@center +%%%% From File: tudscr-area.dtx (no git version info was found) +\tud@newif\if@tud@x@crop@center \AfterPackage{crop}{% \CheckCommand*\CROP@center{% \voffset\stockheight @@ -3971,73 +4144,73 @@ \advance\hoffset-\paperwidth \hoffset.5\hoffset }% - \pretocmd{\CROP@center}{% + \pretocmd\CROP@center{% \@tud@x@crop@centertrue% }{}{\tud@patch@wrn{CROP@center}}% } -\newif\if@tud@x@standalone@crop +\tud@newif\if@tud@x@standalone@crop \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} -\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}{} +\tud@newdim\tud@dim@widemargin +\tud@newdim\tud@dim@slimmargin +\tud@newdim\tud@dim@bothmargin +\tud@newdim\tud@dim@topmargin +\tud@newdim\tud@dim@barheight +\tud@newdim\tud@dim@headsep +\tud@newdim\tud@dim@footsep +\tud@newdim\tud@dim@logox +\tud@newdim\tud@dim@logoy +\tud@newdim\tud@dim@logowidth +\tud@newdim\tud@dim@line +\tud@newdim\tud@dim@heavyline +\tud@newdim\tud@dim@thinline +\tud@newdim\tud@dim@areaheadvskip +\tud@newdim\tud@dim@areadiff +\tud@newdim\tud@dim@areavskip +\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{} \newcommand*\tud@head@fontsize{} -\newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutwidth -\newlength\tud@len@layoutheight -\newlength\tud@len@layouthoffset -\newlength\tud@len@layoutvoffset +\tud@newif\if@tud@cdgeometry@adjust +\tud@newdim\tud@dim@layoutwidth +\tud@newdim\tud@dim@layoutheight +\tud@newdim\tud@dim@layouthoffset +\tud@newdim\tud@dim@layoutvoffset \newcommand*\tud@cdgeometry@set{% \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% - \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \else\ifdim\tud@dim@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% + \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% @@ -4060,58 +4233,58 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{0.25pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{4.5pt}% + \tud@setdim\@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}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{21.213203mm}% + \tud@setdim\tud@dim@heavyline{0.707107pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{42.426407mm}% + \tud@setdim\tud@dim@heavyline{1.414214pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{60mm}% + \tud@setdim\tud@dim@heavyline{2pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{84.852814mm}% + \tud@setdim\tud@dim@heavyline{2.828427pt}% + \tud@setdim\tud@dim@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}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@thinline{2pt}% \renewcommand*\tud@head@fontsize{36}% \else% >A0/B0 \ifnum\tud@cdgeometry@calc@num=\tw@\relax\else% @@ -4122,50 +4295,48 @@ 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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{2pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{36pt}% + \tud@setdim\@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}% + \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{\tud@head@fontsize pt}% + \tud@setdim\@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% - }% + \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}% + \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}% + \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}% + \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}% + \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}% + \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}% + \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}% + \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}% + \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% - \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}% + \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}% \fi% \tud@cdgeometry@papersize@store% } \newcommand*\tud@cdgeometry@assignlayout{% - \ifdim\tud@len@layoutwidth<\p@\relax% - \setlength\tud@len@layoutwidth{\paperwidth}% + \ifdim\tud@dim@layoutwidth<\p@\relax% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% \fi% - \ifdim\tud@len@layoutheight<\p@\relax% - \setlength\tud@len@layoutheight{\paperheight}% + \ifdim\tud@dim@layoutheight<\p@\relax% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \fi% } \newcommand*\tud@cdgeometry@papersize@last{} @@ -4181,8 +4352,8 @@ }% \ifx\tud@res@a\tud@cdgeometry@papersize@last\else% \appto\tud@res@b{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% \tud@x@geometry@fixmargins% }% \fi% @@ -4196,11 +4367,11 @@ \expandafter\pagestyle\expandafter{\currentpagestyle}% } \if@tud@x@standalone@crop - \PreventPackageFromLoading{geometry}% - \let\tud@cdgeometry@process\relax% + \PreventPackageFromLoading{geometry} + \let\tud@cdgeometry@process\relax \else - \RequirePackage{geometry}[2010/09/12]% -\fi% + \RequirePackage{geometry} +\fi \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -4338,7 +4509,7 @@ }{\@nameuse{Gm@restore@@#1}% \Gm@changelayout}% }% - \newif\if@tud@x@geometry@enabled% + \tud@newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% \tud@cs@store{geometry}% \tud@cs@store{newgeometry}% @@ -4352,7 +4523,7 @@ }% \renewcommand*\restoregeometry[1][custom]{% \tud@cdgeometry@reset{#1}% - \if@atdocument% + \tud@if@preamble{}{% \ifcase\tud@cdgeometry@num\relax% false \tud@loadgeometry{init@typearea}% \@tud@x@geometry@fixmarginstrue% @@ -4361,11 +4532,11 @@ \@tud@x@geometry@fixmarginstrue% \fi% \tud@cdgeometry@process% - \fi% + }% }% - \apptocmd{\Gm@changelayout}{% + \apptocmd\Gm@changelayout{% \if@tud@x@geometry@enabled% - \if@atdocument% + \tud@if@preamble{}{% \@tud@x@geometry@fixmarginstrue% \ifcase\tud@cdgeometry@num\relax% false \tud@cdgeometry@reset{typearea}% @@ -4373,15 +4544,15 @@ \tud@cdgeometry@reset{custom}% \fi% \tud@cdgeometry@process% - \fi% + }% \fi% }{}{\tud@patch@wrn{Gm@changelayout}}% - \newif\if@tud@x@geometry@fixmargins% + \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% - \addtolength\oddsidemargin{-\tud@len@layouthoffset}% - \addtolength\evensidemargin{-\tud@len@layouthoffset}% - \addtolength\topmargin{-\tud@len@layoutvoffset}% + \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}% \@tud@x@geometry@fixmarginsfalse% \fi% }% @@ -4402,16 +4573,19 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% - \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}% + \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}% }% \tud@res@a% \fi% - \ifstr{#2}{newgeometry}{% - \eappto\Gm@restore@org{% + \tud@if@strequal{#2}{newgeometry}{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \ifcase\tud@cdgeometry@num\relax% \typearea[current]{current}% \ifx\tud@x@geometry@parameter\@empty\else% @@ -4450,11 +4624,11 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \ifstr{#1}{false}{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% - \setlength\tud@len@layouthoffset{\z@}% - \setlength\tud@len@layoutvoffset{\z@}% + \tud@if@strequal{#1}{false}{% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% + \tud@setdim\tud@dim@layouthoffset{\z@}% + \tud@setdim\tud@dim@layoutvoffset{\z@}% }{% \tud@x@geometry@area@def{layout}{#1}% }% @@ -4471,25 +4645,25 @@ \@tempa#1,,\@nil% }% \TUD@parameter@def{layoutwidth}{% - \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}% + \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}% }% \TUD@parameter@def{layoutheight}{% - \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}% + \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}% }% \TUD@parameter@def{layoutoffset}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##1}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##1}% }{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##2}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% - \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% + \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% @@ -4500,20 +4674,24 @@ }% }% \newcommand*\tud@x@geometry@area@def[2]{% - \tud@lowerstring{\@tempa}{#2}% + \tud@strlowercase\@tempa{#2}% \def\@tempb##1paper##2\@nil{% - \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \tud@if@strequal{##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}{}% + \TUD@set@numkey{paper}{@tempc}{% + {seascape}{0},{landscape}{0},{portrait}{0},% + {letter}{0},{executive}{0},{legal}{0}% + }{\@tempa}% + \@tempswafalse% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempc\relax% + \@tempswatrue% + \fi% + \fi% \if@tempswa\else% - \ifx\@tempa\@empty\relax\else% + \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% \if ##1a\@tempswatrue% \else\if ##1b\@tempswatrue% @@ -4522,7 +4700,7 @@ \fi\fi\fi\fi% \if@tempswa% \@tempswafalse% - \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}% \fi% }% \expandafter\@tempb\@tempa\@nil% @@ -4538,7 +4716,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \ifstr{\@tempa}{##1}{% + \tud@if@strequal{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -4573,7 +4751,7 @@ \IfArgIsEmpty{##2}{% \KOMAoption{paper}{##1}% }{% - \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -4588,16 +4766,16 @@ \begingroup% \tud@cdgeometry@assignlayout% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% layoutoffset={% - \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset% }% \if@tud@res@swa% - ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}% \fi% }% }% @@ -4606,24 +4784,25 @@ }% \newcommand*\tud@x@geometry@set[1]{% \@tud@x@geometry@enabledfalse% - \if@atdocument% + \tud@if@preamble{% + \Gm@initnewgm% + \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}% + \def\@tempc{\tud@cs@use{geometry}}% + \expandafter\@tempc\expandafter{\@tempa,driver=none}% + }{% \edef\@tempa{#1}% \tud@cs@store{Gm@restore@org}% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \def\@tempc{\tud@cs@use{newgeometry}}% \expandafter\@tempc\expandafter{\@tempa}% \tud@cs@restore{Gm@restore@org}% - \else% - \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% - }% - \def\@tempc{\tud@cs@use{geometry}}% - \expandafter\@tempc\expandafter{\@tempa,driver=none}% - \fi% + }% \@tud@x@geometry@enabledtrue% }% \newcommand*\tud@savegeometry[1]{% @@ -4674,7 +4853,7 @@ \fi% \ifcase\tud@cdgeometry@num\relax% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,% textwidth=\the\textwidth,% \tud@cdgeometry@mpincl,% marginparwidth=\the\marginparwidth,% @@ -4692,8 +4871,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4704,7 +4882,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in% + -\Gm@bindingoffset\relax\relax,% textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% @@ -4726,8 +4905,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -4741,37 +4919,43 @@ }% \fi% \fi% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\topmargin-\headheight-\headsep-1in\relax% + \if@twoside% + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\topmargin-\headheight-\headsep-1in% }% - \ifdim\tud@len@areadiff<\z@\relax% - \addtolength\tud@len@headsep{-\tud@len@areadiff}% - \setlength\@tempdima{\z@}% + \ifdim\tud@dim@areadiff<\z@\relax% + \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}% + \tud@setdim\@tempdima{\z@}% \else% - \setlength\@tempdima{\tud@len@areadiff}% + \tud@setdim\@tempdima{\tud@dim@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,% + 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\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% + \tud@setdim\tud@dim@ddcdiff{% + \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4% }% \edef\tud@cdgeometry@ddcmargin{% - textheight=\the\dimexpr\textheight-\tud@len@areadiff% - -\tud@len@ddcdiff\relax,% - footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + textheight=\the\dimexpr\textheight-\tud@dim@areadiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax% }% }{}% - \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else% \begingroup% \edef\tud@res@a{% The key `extrabottommargin' is ineffective\MessageBreak% @@ -4790,45 +4974,43 @@ }% \tud@res@a% \fi% - \else% true/symmetric/twoside - \ifcase\tud@cdgeometry@num\relax\or\or% true - \setlength\@tempdima{\tud@len@widemargin}% + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true + \tud@setdim\@tempdima{\tud@dim@widemargin}% \if@reversemargin% - \setlength\@tempdimc{\tud@len@widemargin}% + \tud@setdim\@tempdimc{\tud@dim@widemargin}% \else% - \setlength\@tempdimc{\tud@len@slimmargin}% + \tud@setdim\@tempdimc{\tud@dim@slimmargin}% \fi% \or% symmetric - \setlength\@tempdima{.5\tud@len@both}% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \or% twoside \if@twoside% - \setlength\@tempdima{.4\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdima{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% \fi% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \if@twoside% \if@reversemargin% - \setlength\@tempdimc{.4\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdimc{.6\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}% \fi% \fi% \fi% - \addtolength\@tempdimc{-\headsep}% - \setlength\@tempdimb{% - \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% - }% + \tud@addtodim\@tempdimc{-\headsep}% + \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}% \if@mincl% - \addtolength\@tempdimb{-\@tempdimc}% + \tud@addtodim\@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,% + marginparsep=\the\dimexpr\headsep/2\relax,% \if@reversemargin% reversemarginpar=true,% \else% @@ -4849,68 +5031,69 @@ \tud@if@v@lower{2.03}{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\dimexpr.5\tud@len@both\relax,% + top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% - headsep=\the\tud@len@headsep,% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4\relax% }% }{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\tud@len@slimmargin,% + top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@len@widemargin% - +\tud@dim@extrabottommargin\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + footskip=\the\dimexpr\tud@dim@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% + 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% }% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\tud@len@slimmargin\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin% }% \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% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@bothmargin/2% }% - \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \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,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4\relax\relax,% \else% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,% \fi% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip+\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% }% }{}% \fi% - \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% - \global\tud@len@areadiff=\tud@len@areadiff% - \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% + \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi% + \global\tud@dim@areadiff=\tud@dim@areadiff% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@topmargin*11/50}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@areaheadvskip/2}% \fi% - \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \global\tud@dim@areaheadvskip=\tud@dim@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% + \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% }{}% \tud@cdgeometry@@@process% }% @@ -4945,11 +5128,11 @@ \or% custom \tud@savegeometry{current@custom}% \fi% - \if@atdocument% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@preamble{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% - \fi% + }% }% \newcommand*\tud@cdgeometry@hincl{% \if@hincl% @@ -4976,12 +5159,12 @@ \csuse{@ta@usegeometryfalse}% \tud@x@geometry@getlayout{\tud@cdgeometry@layout}% \tud@cs@store{tud@cdgeometry@num}% - \tud@cs@store{tud@dim@extrabottommargin}% - \def\tud@dim@extrabottommargin{\z@}% + \tud@cs@store{tud@extrabottommargin@dim}% + \def\tud@extrabottommargin@dim{0pt}% \tud@cdgeometry@reset{custom}% \begingroup% \epreto\tud@x@geometry@init{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + papersize={\the\paperwidth,\the\paperheight},% \tud@cdgeometry@layout,% \tud@cdgeometry@mpincl,% \if@reversemargin% @@ -5007,14 +5190,14 @@ \tud@x@typearea@warnings@on% \tud@cdgeometry@@process% \tud@savegeometry{init@typearea}% - \def\tud@res@b##1{% - \eappto\Gm@restore@@init@typearea{% - \noexpand\PackageWarningNoLine{typearea}{##1}% - }% + \def\do##1{% + \apptocmd\Gm@restore@@init@typearea{% + ##1% + }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}% }% - \forlistloop\tud@res@b{\tud@res@a}% + \dolistloop{\tud@res@a}% \tud@cs@restore{tud@cdgeometry@num}% - \tud@cs@restore{tud@dim@extrabottommargin}% + \tud@cs@restore{tud@extrabottommargin@dim}% \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}% \ifcase\tud@cdgeometry@num\relax% typearea \tud@loadgeometry{init@typearea}% @@ -5025,90 +5208,84 @@ \tud@cdgeometry@process% \let\tud@cdgeometry@@init\relax% }% - \newcommand*\tud@currentgeometry{} + \newcommand*\tud@currentgeometry{}% \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@strequal{#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@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% \fi% }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% }% - \setlength\tud@len@areavskip{\z@}% - \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% - \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@setdim\tud@dim@areavskip{\z@}% }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% - \setlength\tud@len@areavskip{\tud@len@areadiff}% + \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}% \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% - \tud@komafont@unset{pagenumber}% - \tud@komafont@unset{pagefoot}% }% - \global\tud@len@areavskip=\tud@len@areavskip% + \global\tud@dim@areavskip=\tud@dim@areavskip% }{}% - } + }% } \newcommand*\tud@x@typearea@before{% \tud@cdgeometry@resetlayout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% + \tud@cslength@store{paperheight}% + \tud@cslength@store{paperwidth}% \begingroup% \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}% + \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}% }% \tud@res@a% } \newcommand*\tud@x@typearea@after{% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% - \if@atdocument% + \tud@cslength@restore{paperheight}% + \tud@cslength@restore{paperwidth}% + \tud@if@preamble{% + \TUD@key@preset{cdgeometry}{false}% + }{% \tud@cdgeometry@reset{typearea}% \tud@cdgeometry@process% - \else% - \TUD@key@preset{cdgeometry}{false}% - \fi% + }% } \newcommand*\tud@x@typearea@init{\recalctypearea}% \xpretocmd{\typearea}{% \tud@x@typearea@before% - \def\tud@x@typearea@init{\typearea[#1]{#2}}% + \def\tud@x@typearea@init{\typearea[{#1}]{#2}}% }{}{\tud@patch@wrn{typearea}} \xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} \xpretocmd{\areaset}{% \tud@x@typearea@before% \begingroup% - \setlength\@tempdima{#2}% - \setlength\@tempdimb{#3}% + \tud@setdim\@tempdima{#2}% + \tud@setdim\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% - \noexpand\def\noexpand\tud@x@typearea@init{% - \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + \def\noexpand\tud@x@typearea@init{% + \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}% }% }% \tud@res@a% @@ -5116,17 +5293,17 @@ \xapptocmd{\areaset}{\tud@x@typearea@after}{}{\tud@patch@wrn{areaset}} \tud@cs@store{storeareas} \renewcommand*\storeareas[1]{% - \begingroup + \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% - \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% + \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% - \tud@res@b{\tud@len@layoutwidth}% - \tud@res@b{\tud@len@layoutheight}% - \tud@res@b{\tud@len@layouthoffset}% - \tud@res@b{\tud@len@layoutvoffset}% + \unexpanded{\def#1}{% + \tud@res@b{\tud@dim@layoutwidth}% + \tud@res@b{\tud@dim@layoutheight}% + \tud@res@b{\tud@dim@layouthoffset}% + \tud@res@b{\tud@dim@layoutvoffset}% \expandonce#1% \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% @@ -5140,8 +5317,8 @@ \let\tud@cdgeometry@@init\relax% }% \newcommand*\tud@cdgeometry@@process{% - \setlength\tud@len@layoutwidth{\paperwidth}% - \setlength\tud@len@layoutheight{\paperheight}% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \tud@cdgeometry@set% }% \newcommand*\tud@x@geometry@fixmargins{}% @@ -5156,41 +5333,52 @@ \fi% }% } -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleoddpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleevenpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\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@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \enlargethispage{-\tud@len@ddcdiff}% + \enlargethispage{-\tud@dim@ddcdiff}% \fi% }% }{}% }% }{} -%%% From File: tudscr-pagestyle.dtx +%%%% From File: tudscr-pagestyle.dtx (no git version info was found) \if@tud@x@standalone@crop \PreventPackageFromLoading{scrlayer-scrpage}% \else \PassOptionsToPackage{automark}{scrlayer-scrpage}% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[% + 2022/05/01 v3.36 KOMA-Script + ]}% \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,% + addhoffset=\tud@dim@logox-\tud@dim@widemargin,% + addwidth=-\tud@dim@logox+\tud@dim@widemargin,% + voffset=\tud@dim@logoy,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@mainlogo@set% \tud@headlogo@option@set% @@ -5199,10 +5387,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -5212,24 +5400,24 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\tud@dim@barheight,% + voffset=\tud@dim@topmargin,% + addvoffset=\tud@dim@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% + \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% + \ifdim\@tempdima<\z@\relax\tud@setdim\@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,% + voffset=\tud@dim@topmargin+\tud@dim@line,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% @@ -5238,8 +5426,8 @@ ]{tudheadings.head.text}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5248,9 +5436,8 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -5259,10 +5446,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5271,11 +5458,10 @@ ]{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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -5284,16 +5470,16 @@ ]{tudheadings.head.lowlinewide}% \DeclareNewLayer[% foreground,headsep,% - addvoffset=.5\tud@len@headsep,% - height=\baselineskip,% + addvoffset=\tud@dim@headsep/2,% + height=1\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,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% \if@tud@foot@colored% @@ -5308,7 +5494,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -5318,7 +5506,7 @@ ]{tudheadings.foot.back}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% @@ -5330,7 +5518,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -5338,7 +5528,7 @@ \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false @@ -5351,13 +5541,9 @@ }{}% \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset\relax,% + height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% @@ -5365,16 +5551,13 @@ ]{tudheadings.foot.content}% \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \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% + \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}% + \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax% \fi% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% @@ -5387,7 +5570,7 @@ contents=\tud@head@bar@restore,% ]{tudheadings.last}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5411,7 +5594,7 @@ \DeclareNewPageStyleAlias{tudscr}{tudheadings}% \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5437,7 +5620,7 @@ \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -5459,12 +5642,10 @@ \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}% - ,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -5473,6 +5654,22 @@ },% ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% + \AddToLayerPageStyleOptions{@everystyle@}{% + onselect={% + \tud@if@tudheadings{\currentpagestyle}{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + }{% + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% + }% + }% } \newcommand*\tud@ps@list{} \listadd\tud@ps@list{tudheadings} @@ -5481,13 +5678,15 @@ \newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% +\patchcmd\thispagestyle{% + \gdef\@specialstyle{#1}% +}{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} -\pretocmd{\tud@pagestyle}{% +\pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} @@ -5503,26 +5702,21 @@ } \AfterAtEndOfPackage*{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} \TUD@UnwindPackage{scrlayer-scrpage}{% - \ifcsundef{if@chapter}{% + \ifundef{\if@chapter}{% \newif\if@chapter% - \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + \ifundef{\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*\tud@BeforeSelectAnyPageStyle[1]{}% \providecommand*\GetRealPageStyle[1]{#1}% \let\pagestyle\tud@pagestyle% \undef\tud@pagestyle% \tud@cdgeometry@init% } -\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} @@ -5562,7 +5756,7 @@ \fi% }{% \tud@locked@bool@preset{@tud@head@widebar}{true}% - \ifstr{\tud@pagecolor}{HKS41}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -5587,8 +5781,10 @@ \fi% }% }% - \let\tud@len@line\tud@len@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \let\tud@dim@line\tud@dim@thinline% + \tud@if@strequal{\tud@head@fontcolor}{white}% + {\let\tud@dim@line\tud@dim@heavyline}% + {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \newcommand*\tud@head@text@line{} @@ -5596,13 +5792,13 @@ \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@text@add[3][{, }]{% - \ifxblank{#3}{}{% + \tud@if@strblank{#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}% + \unexpanded{#2#3}% }% \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% @@ -5613,7 +5809,7 @@ \fi% }% } -\newif\if@tud@head@text@set +\tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% @@ -5625,7 +5821,7 @@ \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}{}{% + \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% @@ -5639,7 +5835,7 @@ } \newcommand*\tud@head@text@box{% \def\@tempb{\tud@color{\tud@head@fontcolor}}% - \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempc{\depth+\tud@dim@heavyline}% \def\@tempa##1{% \settowidth\@tempdima{##1}% \ifdim\@tempdima>\textwidth\relax% @@ -5651,16 +5847,16 @@ \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% - \def\@tempc{\z@}% + \let\@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}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% \vbox{% \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% + \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% @@ -5668,16 +5864,18 @@ \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}}% + \raisebox{% + \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% + }[% + \dimexpr\tud@dim@barheight-\depth\relax% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}% } \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@len@line}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@layer@#1\endcsname% + \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% @@ -5685,33 +5883,74 @@ \newcommand*\tud@uselayerbox[1]{% \expandafter\usebox\csname tud@layer@#1\endcsname% } -\newcommand*\tud@vlayerbox[3]{% +\newcommand*\tud@vlayerbox[4][]{% \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% + \setbox\z@\vbox{#3}% + \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}% + \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax% + \edef\tud@res@a{% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{% + #4\noexpand\MessageBreak% + The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the% + \noexpand\MessageBreak maximum height (\the\tud@res@glue)% + }% + }% + \IfArgIsEmpty{#1}{\tud@res@a}{% + \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else% + \tud@res@a% + \global\cslet{tud@layer@#1@wrn}\tud@res@a% + \fi% }% \fi% \endgroup% - \vbox to #1{#2}% + \vbox to #2{#3}% +} +\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 +\tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set +\tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \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}}% - \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% - \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight% \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% \ClassWarning{\TUD@Class@Name}{% @@ -5726,14 +5965,18 @@ \fi% }% \tud@headlogo@set% - \@tud@footlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } +\AtBeginDocument{% + \@tud@mainlogo@settrue% + \tud@mainlogo@set% +} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -5743,26 +5986,17 @@ \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]% + \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -5773,18 +6007,19 @@ \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% - \includegraphics[% - keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% - ]{##1}% + \includegraphics[{% + keepaspectratio,% + totalheight=\tud@dim@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\tud@headlogo@filename{\tud@headlogo@filename}% + \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% @@ -5803,11 +6038,21 @@ \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% + \ifnum\@tempa>\z@\relax + \ifdefvoid{\tud@headlogo@filename}{}{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\tud@headlogo@filename'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + }% + \fi% \global\@tud@headlogo@option@setfalse% \fi% } +\newcommand*\tud@layer@headlogo@wrn{} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@len@mainlogoheight}{% + \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -5821,57 +6066,59 @@ }{% 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% - }% } -\AtEndOfClass{% - \ifdefvoid{\tud@dim@footlogoheight}{% +\newcommand*\tud@footlogoheight@set{% + \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% - \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% - \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% - }{}% + \fi% } \tud@newlayerbox{foot@black} \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + \tud@savelayerbox{#1}{% + \includegraphics[% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% + ]{#2}% }% } \newcommand*\tud@footlogo@option@set{% + \tud@footlogoheight@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@footlogo@ddc@set{foot@black}{DDC-22}% + \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}% + \tud@footlogo@ddc@set{foot@white}{DDC-28}% \tud@ddc@check% \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color - \tud@footlogo@ddc@set{option}{DDC-01}% + \tud@footlogo@ddc@set{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% + \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray - \tud@footlogo@ddc@set{option}{DDC-19}% + \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black - \tud@footlogo@ddc@set{option}{DDC-22}% + \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue - \tud@footlogo@ddc@set{option}{DDC-25}% + \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white - \tud@footlogo@ddc@set{option}{DDC-28}% + \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% + \global\@tud@footlogo@cmd@settrue% \fi% } +\newcommand*\tud@layer@footlogo@wrn{} \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}{% + \tud@vlayerbox[footlogo]{#1}{% \vss% \hbox to #2{% \hss% @@ -5883,12 +6130,12 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + You should reduce `footlogoheight', because it is\noexpand\MessageBreak% + too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% + Alternatively you could use\noexpand\MessageBreak% + option `extrabottommargin='\noexpand\MessageBreak% + in order to enlarge the bottom margin. % \fi% }% }% @@ -5906,14 +6153,15 @@ \global\@tud@footlogo@cmd@settrue% \tud@comp@resetpagestyle% } -\newif\if@tud@footlogo@cmd@set +\tud@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}}% + \protected@edef\@tempb{\@tempb}% + \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% @@ -5943,11 +6191,14 @@ \DeclareListParser{\@tempc}{:}% \@tempc{#1}% \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@dim@footlogoheight,% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% - \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}% + \noexpand\includegraphics[{% + \expandonce\tud@footlogo@fileoptions% + }]{\@tempa}% }% \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% @@ -5961,26 +6212,27 @@ \usebox\z@\hspace*{-\wd\z@}% } \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} -\newcommand*\tud@footcontent@usefont[1]{% +\newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% - \tud@footcontent@fontsize% - \tud@footcontent@fontface% + \tud@footcontent@font@size% + \tud@footcontent@font@face% \selectfont% #1% }% } -\newcommand*\tud@footcontent@fontsize{} -\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@font@size{} +\newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\tud@footcontent@right{} +\let\tud@footcontent@right\@nnil \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontsize{}% + \renewcommand*\tud@footcontent@font@size{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontsize{% - \setlength\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\@tempdima}{1.25\@tempdima}% + \renewcommand*\tud@footcontent@font@size{% + \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}% + \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}% }% \tud@footcontent@do% }% @@ -5992,22 +6244,22 @@ } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% - \if\detokenize{*#1}\relax\else% - \renewcommand*\tud@footcontent@fontface{#1}% + \if\detokenize{#1*}\relax\else% + \renewcommand*\tud@footcontent@font@face{#1}% \fi% - \if\detokenize{*#2}\relax\else% + \if\detokenize{#2*}\relax\else% \renewcommand*\tud@footcontent@left{#2}% \fi% - \if\detokenize{*#3}\relax\else% + \if\detokenize{#3*}\relax\else% \renewcommand*\tud@footcontent@right{#3}% \fi% } +\newcommand*\tud@layer@footcontent@wrn{} \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% + \ifx\tud@footcontent@left\@empty% + \ifx\tud@footcontent@right\@nnil\else% + \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% @@ -6017,44 +6269,29 @@ \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \tud@addtodim\@tempdimc{\columnsep}% \fi% - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@usefont{% - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% + \tud@footcontent@font@use{% + \tud@setglue\tud@res@glue{#2}% + \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% \vss\vss% }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content\MessageBreak% + The content for the footer (`\string\footcontent')\noexpand\MessageBreak% + is too high. You should either reduce the content\noexpand\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% + \noexpand\MessageBreak% + Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% @@ -6062,39 +6299,25 @@ \hbox to #2{}% \fi% } -\tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% -}{}% -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head@num% - \let\@tempb\tud@ddc@foot@num% - \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% +\newcommand*\tud@footcontent@@use[1]{% + \ifx\tud@footcontent@right\@nnil% + \vtop{% + \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% - \tud@if@v@lower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% - \fi% - }{}% } -\newif\if@tud@parameter@ps@font@set +\tud@newif\if@tud@parameter@ps@font@set \newcommand*\TUD@parameter@ps@def[1]{% \TUD@parameter@def{cdfont}[true]{% \TUDoption{cdfont}{#1}% @@ -6123,13 +6346,13 @@ \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% \expandafter\pagestyle\expandafter{\tud@envir@ps}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% \renewcommand*\partpagestyle{empty}% \renewcommand*\chapterpagestyle{empty}% \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% \renewcommand*\partpagestyle{empty.tudheadings}% \renewcommand*\chapterpagestyle{empty.tudheadings}% @@ -6170,11 +6393,12 @@ \TUD@parameter@def{language}{\selectlanguage{#1}}% \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{% - \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% - \TUD@parameter@error{pagestyle}{% + \tud@if@tudheadings{#1}{\def\tud@envir@ps{#1}}{% + \def\tud@envir@ps{tudheadings}% + \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{% + \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{% + \tud@if@strequal{#1}{headings}{}{% + \TUD@parameter@err{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% @@ -6190,7 +6414,7 @@ capabilities of package `scrlayer-scrpage' instead% }% ]{fancyhdr} -%%% From File: tudscr-layout.dtx +%%%% From File: tudscr-layout.dtx (no git version info was found) \newcommand*\tud@cleardoublespecialpage[2][]{% \begingroup% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% @@ -6227,37 +6451,49 @@ }% \global\let\tud@clearcolor@wrn\relax% } -\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}}{}}}}% - }% - \begingroup - \tud@sec@fontsize% - \@tempskipa=\glueexpr% - .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - \relax\relax% +\newcommand*\tud@subtitle@fontsizecmd{\LARGE} +\newcommand*\tud@prefix@fontsizecmd{\huge} +\newcommand*\tud@sec@fontsizecmd{\Huge} +\newcommand*\tud@sec@baselineskip@@dim{} +\newcommand*\tud@sec@baselineskip@set{% + \begingroup% + \tud@sec@fontsizecmd% \edef\tud@res@a{% \endgroup% - \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + \unexpanded{\def\tud@sec@baselineskip@@dim}{% + \the\dimexpr\glueexpr\f@baselineskip\relax\relax% + }% }% \tud@res@a% } -\AtEndPreamble{\tud@x@scr@headings@set} +\tud@sec@baselineskip@set +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempb##1##2##3{% + \renewcommand*\tud@sec@fontsizecmd{##1}% + \renewcommand*\tud@prefix@fontsizecmd{##2}% + \renewcommand*\tud@subtitle@fontsizecmd{##3}% + \tud@sec@baselineskip@set% + #1% + }% + \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempc\do{% + \TUD@set@numkey{headings}{@tempa}{% + {standardclasses}{0},{big}{1},{normal}{2},{small}{3}% + }{\@tempc}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% standardclasses + \@tempb{\Huge} {\LARGE}{\Large}% + \or% big + \@tempb{\Huge} {\huge} {\LARGE}% + \or% normal + \@tempb{\huge} {\LARGE}{\Large}% + \or% small + \@tempb{\LARGE}{\Large}{\large}% + \fi% + \fi% + }% +} +\AfterEndPreamble{\tud@x@scr@headings@set} \newcommand*\tud@x@scr@headings@reset{% \tud@cd@process% \tud@x@scr@headings@set[% @@ -6279,15 +6515,25 @@ \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseriesforce{\tud@cdfont@ebf}% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% + \fi% + \fontseriesforce{\bfdefault}% + \fi% \selectfont% } \if@tud@cdoldfont@active @@ -6299,46 +6545,35 @@ \fi% }% \fi -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% } -\if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% - }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% - }% -\fi -\newrobustcmd*\tud@sec@strut{% +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]#3{% \begingroup% - \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% \endgroup% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} +\if@tud@cdoldfont@active + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% +\fi +\newcommand*\tud@part@hook{} +\let\tud@part@hook\relax +\AddtoDoHook{heading/begingroup/part}{\tud@part@hook} \newcommand*\tud@title@fontcolor{} \newcommand*\tud@part@fontcolor{} \newcommand*\tud@chapter@fontcolor{} @@ -6362,16 +6597,17 @@ \usekomafont{disposition}% \raggedtitle% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{subtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% - \sffamily% \usesizeofkomafont{section}% + \sffamily% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{author}{\usekomafont{subject}}% @@ -6379,6 +6615,7 @@ \tud@komafont@set{date}{\usekomafont{titlepage}}% \fi% \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{partlineswithprefixformat}% \tud@cs@restore{scr@part@beforeskip}% \tud@cs@restore{scr@part@innerskip}% \tud@cs@restore{scr@part@afterskip}% @@ -6386,17 +6623,19 @@ \tud@cs@restore{partheadendvskip}% \tud@cs@restore{partheademptypage}% \tud@cs@restore{partpagestyle}% - \tud@cs@restore{partlineswithprefixformat}% + \let\tud@part@hook\relax% \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% \tud@cs@restore{raggedpart}% \else% !false + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% - \renewcommand*\scr@part@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@@dim}% \tud@cs@store{scr@part@innerskip}% - \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@@dim}% \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% \tud@cs@store{partheadendvskip}% @@ -6405,51 +6644,51 @@ \let\partheademptypage\tud@partheademptypage% \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% - \tud@cs@store{partlineswithprefixformat}% - \let\partlineswithprefixformat\tud@partlineswithprefixformat% + \def\tud@part@hook{\let\setparsizes\@gobblefour}% \tud@komafont@set{part}{% \tud@sec@fontface% \tud@color{\tud@part@fontcolor}% }% \tud@komafont@set{partnumber}{% \tud@sec@fontface% + \tud@prefix@fontsizecmd% \tud@color{\tud@part@fontcolor}% }% \tud@cs@store{raggedpart}% \renewcommand*\raggedpart{\tud@raggedright}% \fi% \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{scr@chapter@beforeskip}% \tud@cs@restore{scr@chapter@innerskip}% \tud@cs@restore{scr@chapter@afterskip}% \tud@cs@restore{chapterheadstartvskip}% - \tud@cs@restore{chapterlineswithprefixformat}% - \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{tud@chapter@before@hook}% \tud@cs@restore{tud@chapter@after@hook}% \tud@komafont@unset{chapter}% \tud@komafont@unset{chapterprefix}% \tud@cs@restore{raggedchapter}% \else% !false + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{scr@chapter@beforeskip}% - \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@@dim}% \tud@cs@store{scr@chapter@innerskip}% - \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@@dim}% \tud@cs@store{scr@chapter@afterskip}% - \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cs@store{chapterlineswithprefixformat}% - \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% - \tud@cs@store{chapterlinesformat}% - \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{tud@chapter@before@hook}% \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% \tud@cs@store{tud@chapter@after@hook}% \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% \tud@komafont@set{chapter}{% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@chapter@fontcolor}% }% \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% @@ -6494,12 +6733,12 @@ \renewcommand*\raggedsection{\tud@raggedright}% \tud@cs@store{minisec}% \renewcommand\minisec[1]{% - \tud@cs@use{minisec}{\tud@sec@format{##1}}% + \tud@cs@use{minisec}{\tud@sec@format*{##1}}% }% \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -6519,35 +6758,64 @@ \tud@komafont@unset{footnote}% \tud@cs@restore{footnoterule}% } -\newcommand*\tud@cd@beforeskip{% - \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +\newcommand*\tud@cd@beforevskip@@dim{% + \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innerskip{.25\baselineskip}% -\newcommand*\tud@cd@afterskip{% - .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +\newcommand*\tud@cd@innervskip@@dim{% + \dimexpr(\tud@sec@baselineskip@@dim)/5\relax% +}% +\newcommand*\tud@cd@aftervskip@@glue{% + \glueexpr + \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax + \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax + \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax + \relax } -\newcommand*\tud@cd@headstartvskip{% - \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% - \null\vskip-\baselineskip\vskip\@tempskipa% +\newcommand*\tud@cd@headstart@vskip{% + \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}% + \tud@length@setabsolute\@tempdima% + \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax% } \newcommand*\tud@cd@vphantom{% \begingroup% - \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \setlength\@tempskipa{\tud@cd@innerskip}% - \par\nobreak\vskip\@tempskipa% + \usekomafont{partnumber}{% + \tud@sec@format{\vskip\tud@cd@innervskip@@dim}% + }% \endgroup% } +\patchcmd\scr@startpart{% + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak +}{% + \ifcase\tud@cd@part@num\relax% false + \partheadstartvskip% + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \else% + {% + \setbox\z@\vbox{% + \vskip\dimexpr% + \tud@cd@innervskip@@dim-\tud@sec@baselineskip@@dim-\baselineskip% + \relax% + \use@preamble{#1@o}\strut\par% + }% + \vbox to \z@{\box\z@\vss}% + \vskip\dimexpr\parskip-\baselineskip\relax% + }% + \partheadstartvskip% + \fi% +}{}{\tud@patch@wrn{scr@startpart}} \newcommand*\tud@preamble@fontcolor{} \newcommand*\tud@partpreamble{% - \@tempskipa=\glueexpr\tud@cd@afterskip\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \tud@setglue\@tempskipa{\tud@cd@aftervskip@@glue}% + \tud@length@setabsolute\@tempskipa% \vskip\@tempskipa% \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% \let\tud@preamble@fontcolor\tud@part@fontcolor% @@ -6558,7 +6826,7 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% \if@tud@chapterpage% \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}% @@ -6571,7 +6839,7 @@ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }% } -\patchcmd{\set@@@@preamble}{% +\patchcmd\set@@@@preamble{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% \def\@tempa####1@####2{% @@ -6587,24 +6855,30 @@ \newcommand*\tud@part@subtitle{} \newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}} \newkomafont{partsubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } \aliaskomafont{parttitle}{partsubtitle} \newcommand*\tud@chapter@subtitle{} \newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}} \newkomafont{chaptersubtitle}{% - \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \tud@subtitle@fontsizecmd% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@chapter@fontcolor}% } \newcommand*\tud@sec@subtitle[1]{% \ifcsvoid{tud@#1@subtitle}{}{% - {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + {\usekomafont{#1subtitle}{% + \vskip-1\parskip% + \tud@sec@format{\csuse{tud@#1@subtitle}}% + }}\par% \global\cslet{tud@#1@subtitle}{\@empty}% }% } +\AddtoDoHook{heading/preinit/part}{ + \TUD@deprecated@length\pageheadingsvskip% +} \newcommand*\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\or% litecolor @@ -6619,9 +6893,8 @@ \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% \tud@cd@specialpage@set{part}% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% } \newcommand*\tud@partheademptypage{% \tud@cleardoublespecialpage{% @@ -6647,6 +6920,7 @@ } \newcommand*\tud@partformat{}% \newcommand*\tud@partlineswithprefixformat[3]{% + \vskip-2\parskip% \if@tud@parttitle% \ifx\@@title\@empty% \ClassWarning{\TUD@Class@Name}{% @@ -6655,48 +6929,59 @@ }% \fi% \tud@cd@vphantom% - \tud@sec@format[#1]{% - \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + \usekomafont{#1}{% + \tud@sec@format{\nobreak\interlinepenalty\@M\@@title\strut\@@par}% }% - \setpartsubtitle{% - \setkomafont{part}{}% - \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% + \def\tud@partformat##1\nobreak\interlinepenalty\@M##2\strut\@@par##3\@nil{% + \def\tud@partformat{\IfUseNumber{\partformat\enskip}{}##2}% }% + \expandafter\expandafter\expandafter\tud@partformat% + \expandafter\@firstofone\@gobbletwo#3\@nil% + \expandafter\setpartsubtitle\expandafter{\tud@partformat}% \else% \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% \let\partformat\tud@partformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \fi% \tud@sec@subtitle{#1}% } +\if@tud@cdoldfont@active + \patchcmd\tud@partlineswithprefixformat + {#2\tud@sec@format[{#1}]{#3}} + {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3} + {}{\tud@patch@wrn{tud@partlineswithprefixformat}} +\fi +\AddtoDoHook{heading/preinit/chapter}{ + \if@tud@chapterpage% + \TUD@deprecated@length\pageheadingsvskip% + \else% + \TUD@deprecated@length\headingsvskip% + \fi% +} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% \if@tud@chapterpage% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \else% - \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \fi% } \newcommand*\tud@chapterformat{}% \newcommand*\tud@chapterlineswithprefixformat[3]{% - \edef\tud@chapterformat{% - \noexpand\tud@sec@format{\expandonce\chapterformat}% - }% + \edef\tud@chapterformat{\noexpand\tud@sec@format{\expandonce\chapterformat}}% \let\chapterformat\tud@chapterformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \tud@sec@subtitle{#1}% } \newcommand*\tud@chapterlinesformat[3]{% \tud@cd@vphantom% - \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \@hangfrom{#2}{\tud@sec@format[{#1}]{#3}}% \tud@sec@subtitle{#1}% } \newcommand*\tud@chapter@pre{% @@ -6758,34 +7043,33 @@ } \newcommand*\tud@chapter@before@hook{} \newcommand*\tud@chapter@after@hook{} -\pretocmd{\scr@startchapter}{% +\pretocmd\scr@startchapter{% \tud@chapter@before@hook% }{}{\tud@patch@wrn{scr@startchapter}} -\apptocmd{\scr@@startchapter}{% +\apptocmd\scr@@startchapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startchapter}} -\apptocmd{\scr@@startschapter}{% +\apptocmd\scr@@startschapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startschapter}} \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% } \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}% } \newcommand*\tud@sectioncatchphraseformat[4]{% - \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[#1]{#4}% + \hskip #2#3\tud@sec@format*[{#1}]{#4}% } -%%% From File: tudscr-title.dtx +%%%% From File: tudscr-title.dtx (no git version info was found) \newkomafont{thesis}{% \usekomafont{title}% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% } \newkomafont{titlepage}{% \raggedtitle% @@ -6799,6 +7083,8 @@ \newcommand*\tud@title@pagenumber{} \let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% + \TUD@deprecated@length\pageheadingsvskip% + \TUD@deprecated@length\headingsvskip% \begingroup% \cleardoublepage% \TUD@parameter@set{title}{#1}% @@ -6812,7 +7098,9 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \tud@if@strequal{\titlepagestyle}{empty}% + {\thispagestyle{empty.tudheadings}}% + {}% }{}% \else% !false \if@tud@parameter@ps@font@set\else% @@ -6846,7 +7134,9 @@ } \tud@cs@store{maketitle} \let\maketitle\tud@maketitle -\patchcmd{\titlepage}{\thispagestyle{empty}}{% +\patchcmd\titlepage{% + \thispagestyle{empty}% +}{% \tud@if@tudheadings{\currentpagestyle}{% \thispagestyle{empty.tudheadings}% }{% @@ -6916,19 +7206,18 @@ \fi% \next@tdpage% \fi% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% @@ -6951,7 +7240,7 @@ \def\@tempc{% \@graduation% \ifx\@graduationabbreviation\@empty\else% - \nobreakspace\@graduationabbreviation% + \nobreakspace(\@graduationabbreviation)% \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% @@ -6971,10 +7260,10 @@ \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + \tud@if@strblank{\datetext}{}{\datetext\tud@title@delimiter}% {\usekomafont{date}{\tud@date@print\par}}% \ifx\@defensedate\@empty\else% - \ifxblank{\defensedatetext}{}{% + \tud@if@strblank{\defensedatetext}{}{% \defensedatetext\tud@title@delimiter% }% {\usekomafont{date}{\@defensedate\par}}% @@ -6983,7 +7272,7 @@ \fi% \if@tud@titlesignature% \let\tud@split@@author@do\tud@split@author@signature% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \tud@ifin@and{\@@author}{}{\hfill}% \tud@multiple@split{@@author}% \fi% @@ -7061,7 +7350,9 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {}% + {\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -7085,7 +7376,7 @@ \ifx\@extratitle\@empty% \ifx\@frontispiece\@empty\else% \if@twoside\null\fi% - \fi + \fi% \else% \tud@res@a{\@makeextratitle}% \fi% @@ -7101,9 +7392,9 @@ } \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% - \tud@cd@headstartvskip% - \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{-\baselineskip}% + \tud@cd@headstart@vskip% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% {\usekomafont{titlepage}{% @@ -7112,11 +7403,10 @@ \tud@maketitle@head% {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% - \vskip 2\bigskipamount% + \vskip\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \ifx\@date\@empty\else% @@ -7136,11 +7426,9 @@ \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% + \vskip\bigskipamount% \ifnum\col@number>\@ne\relax% - \ifdefvoid{\multicolsep}{}{% - \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% - }% + \tud@if@lengthregister{\multicolsep}{\vspace{-\multicolsep}}{}% \fi% \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% }}% @@ -7148,43 +7436,27 @@ \newcommand*\tud@maketitle@head{% \setbox\z@\vbox{% \ifx\@titlehead\@empty\else% - {\usekomafont{titlehead}{% - \begin{minipage}[t]{\textwidth}% - \@titlehead\tud@sec@strut% - \end{minipage}% - }}% + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\strut\par}% + \end{minipage}% \fi% \tud@thesis@tosubject% \ifx\@subject\@empty\else% \par\medskip% - {\usekomafont{subject}{% - \@subject\tud@sec@strut% - }}% + {\usekomafont{subject}{\tud@sec@format[partnumber]{\@subject}}}% \fi% }% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% - \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% + \vskip\dimexpr-\@tempdima-\p@-1\medskipamount\relax% \usebox\z@\par\medskip% \fi% } -\newcommand*\tud@title@format[1]{% +\newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% - \let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@sec@format{#1}% - \edef\tud@res@a{% - \endgroup% - \ifx\tud@thanks\relax\else% - \noexpand\thanks{\expandonce\tud@thanks}% - \fi% - }% - \tud@res@a% + \tud@sec@format[{#1}]{#2}% + \endgroup% } \newcommand*\tud@thesis@tosubject{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% @@ -7235,7 +7507,9 @@ \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% - \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \tud@if@strblank{\dateofbirthtext}% + {}% + {\dateofbirthtext\tud@title@delimiter}% \@dateofbirth% \ifx\@placeofbirth\@empty\else% \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% @@ -7245,15 +7519,17 @@ \fi% \fi% \def\@tempc##1{% - \ifstr{\csuse{@##1}}{}{}{% + \expandafter\ifx\csname @##1\endcsname\@empty\else% \if@titlepage% \tud@newline@title% - \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \tud@if@strblank{\csuse{##1name}}% + {}% + {\csuse{##1name}\tud@title@delimiter}% \csuse{@##1}% \else% \tud@title@wrn{##1}% \fi% - }% + \fi% }% \@tempc{course}% \@tempc{discipline}% @@ -7272,9 +7548,9 @@ \newcommand*\tud@split@author@signature[2]{% \tud@multiple@fields@store{@author}{#1}% \vbox{% - \hsize=.3\textwidth% + \hsize=\dimexpr\textwidth*3/10\relax% \centering% - \rule{.3\textwidth}{.05pt}\newline% + \rule{\dimexpr\textwidth*3/10\relax}{.05pt}\newline% \ignorespaces#1\strut\unskip% }% \tud@multiple@fields@restore{@author}% @@ -7283,15 +7559,16 @@ \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% - \tud@maketitle[#1]% - \onecolumn{#2}\twocolumn% + \tud@maketitle[{#1}]% + \onecolumn#2\twocolumn% \else% - \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[{#1}]#2}% \fi% \else% \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% - }{}% + }{You should use `\string\maketitle' instead.}% + \tud@maketitle[{#1}]#2% \fi% } \newsavebox\tud@title@box @@ -7301,14 +7578,14 @@ \let\clearpage\relax% \let\newpage\relax% \global\setbox\tud@title@box\vbox{% - \vspace*{.9\baselineskip}#1\bigskip% + \vspace*{\dimexpr1\baselineskip*9/10\relax}#1\bigskip% }% \endgroup% - \setlength\@tempdima{\textheight}% + \tud@setdim\@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}% + \tud@setdim\@tempdima{\textheight-\tud@dim@ddcdiff}% \@tempswatrue% \fi% }{}% @@ -7318,7 +7595,7 @@ \splitmaxdepth\maxdepth% \vsplit\tud@title@box to \@tempdima% \clearpage% - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% \else% @@ -7331,13 +7608,13 @@ 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% + use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } -\newif\if@tud@coverpage +\tud@newif\if@tud@coverpage \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% \ClassWarning{\TUD@Class@Name}{% @@ -7374,23 +7651,22 @@ \if@tud@cdgeometry@cover% \if@tud@coverpage% \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% }% \else% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagetopmargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagetopmargin{\tud@len@slimmargin}% + \def\coverpagetopmargin{\tud@dim@slimmargin}% }% \fi% \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% + \def\coverpagebottommargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagebottommargin{\tud@len@widemargin}% + \def\coverpagebottommargin{\tud@dim@widemargin}% }% - \def\coverpageleftmargin{\tud@len@widemargin}% - \def\coverpagerightmargin{\tud@len@slimmargin}% + \def\coverpageleftmargin{\tud@dim@widemargin}% + \def\coverpagerightmargin{\tud@dim@slimmargin}% \fi% \if@tud@coverpage% \edef\titlepage@restore{% @@ -7403,7 +7679,7 @@ }% \begingroup% \tud@cover@setmargins% - \tud@len@areavskip=\z@% + \tud@setdim\tud@dim@areavskip{\z@}% \tud@maketitle% \clearpage% \titlepage@restore% @@ -7434,41 +7710,37 @@ \TUD@parameter@ps@def{#1}% \TUD@parameter@handler@value{pagenumber}% } -\renewcommand*{\coverpagetopmargin}{% +\renewcommand*\coverpagetopmargin{% \if@tud@coverpage% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% \else% - \dimexpr\topmargin+1in\relax% + \topmargin+1in% \fi% } -\renewcommand*{\coverpagebottommargin}{% +\renewcommand*\coverpagebottommargin{% \if@tud@coverpage% - \dimexpr\tud@len@widemargin\relax% + \tud@dim@widemargin% \else% - 2\dimexpr\coverpagetopmargin\relax% + \coverpagetopmargin*2% \fi% } \newcommand*\tud@cover@fixmargins{% \begingroup% \tud@cdgeometry@assignlayout% \tud@x@geometry@fixmargins% - \setlength\@tempdima{% - \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset - +\paperheight-\tud@len@layoutheight\relax% + \tud@setdim\@tempdima{% + \coverpagebottommargin-\tud@dim@layoutvoffset% + +\paperheight-\tud@dim@layoutheight% }% \edef\coverpagebottommargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% - }% + \tud@setdim\@tempdima{\coverpagetopmargin+\tud@dim@layoutvoffset}% \edef\coverpagetopmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagerightmargin-\tud@len@layouthoffset - +\paperwidth-\tud@len@layoutwidth\relax% + \tud@setdim\@tempdima{% + \coverpagerightmargin-\tud@dim@layouthoffset% + +\paperwidth-\tud@dim@layoutwidth% }% \edef\coverpagerightmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% - }% + \tud@setdim\@tempdima{\coverpageleftmargin+\tud@dim@layouthoffset}% \edef\coverpageleftmargin{\the\@tempdima}% \edef\tud@res@a{% \endgroup% @@ -7490,7 +7762,7 @@ -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\baselineskip% + \footskip=1\baselineskip% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% @@ -7498,10 +7770,10 @@ \hsize=\columnwidth% \linewidth=\hsize% } -%%% From File: tudscr-frontmatter.dtx +%%%% From File: tudscr-frontmatter.dtx (no git version info was found) \newcommand*\tud@fm@check[2]{% \global\let\tud@fm@set\tud@fm@first% - \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifnum\csuse{tud@#1@level@num}<3\relax% false/true/section \ifboolexpr{% bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% }{% @@ -7520,10 +7792,10 @@ \boolfalse{@tud@#1@fil}% \fi% }{}% - }{% chapter + \else% chapter \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% - }% + \fi% \ifnum\csuse{tud@#1@toc@num}>\tw@\relax% \tud@fm@toc{#1}{#2}% \fi% @@ -7531,26 +7803,27 @@ #2% } \newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} \newcommand*\tud@fm@toc[2]{% \ifbool{@tud@#1@multi}{% \begingroup% - \let\tud@fm@@@toc\@empty% + \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/}% + \protected@xdef\tud@fm@@toc{% + \ifx\tud@fm@@toc\@empty\else\tud@fm@@toc/\fi##2% + }% }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% \csuse{phantomsection}% \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% - \noexpand\addchaptertocentry{}{\tud@fm@@toc}% - }{% - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% - }% + \endgroup% + \ifx\tud@fm@@toc\@empty\else% + \ifodd\csuse{tud@#1@toc@num}\relax + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + \else + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + \fi + \fi% }% \@tempa% }{% @@ -7627,19 +7900,20 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + \vskip\smallskipamount% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount% \fi% + \vskip-\parskip% }% \or% true \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% + \vskip\bigskipamount\vskip-\parskip% }% \begingroup% \noindent\centering% @@ -7648,7 +7922,7 @@ \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% + \vskip\medskipamount\vskip-\parskip% \@afterheading% \or% section \section*{#2}% @@ -7719,7 +7993,7 @@ \clearpage% \else% \ifnum\tud@abstract@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7728,7 +8002,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7749,7 +8023,7 @@ the environment `abstract'.% }% } -\newif\if@tud@declarations +\tud@newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% \ifnum\tud@declaration@level@num>\tw@\relax\@titlepagetrue\fi% chapter @@ -7778,7 +8052,7 @@ \clearpage% \else% \ifnum\tud@declaration@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] @@ -7787,7 +8061,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -7818,29 +8092,29 @@ }% } \newcommand*\tud@fm@declaration[1][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \begingroup% - \tud@fm@@confirmation[\tud@fm@supporter,#1]% - \tud@fm@blocking[#1]% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \tud@fm@blocking[{#1}]% \endgroup% - }{% - \begin{declarations}[\tud@fm@supporter,#1]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \tud@fm@blocking% \end{declarations}% - }% + \fi% } \newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \tud@fm@body@start{declaration}{#1}{#2}% #3% \tud@fm@body@end{declaration}% - }{% + \else% \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% The command `\string\nextdeclaration' can only be used\MessageBreak% within the environment `declarations'.% }% - }% + \fi% } \newcommand*\confirmation{% \kernel@ifstar{% @@ -7855,18 +8129,18 @@ \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]% + \if@tud@declarations% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@@confirmation[1][]{% \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% + \confirmationtext\vskip\z@skip\@confirmationclosing% \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% @@ -7875,13 +8149,13 @@ \undef\KV@declaration@supporter% \undef\KV@declaration@closing% \undef\KV@declaration@confirmationclosing% - \ifbool{@tud@declarations}{% - \tud@fm@blocking[#1]% - }{% - \begin{declarations}[#1]% + \if@tud@declarations% + \tud@fm@blocking[{#1}]% + \else% + \begin{declarations}[{#1}]% \tud@fm@blocking% \end{declarations}% - }% + \fi% \endgroup% } \newcommand*\tud@fm@blocking[1][]{% @@ -7889,76 +8163,15 @@ \blockingtext% \tud@fm@body@end{declaration}% } -%%% From File: tudscr-comp.dtx -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} -\newlength\pageheadingsvskip -\setlength\pageheadingsvskip{\maxdimen} -\newlength\headingsvskip -\setlength\headingsvskip{\maxdimen} -\newcommand*\chapterheadingvskip{} -\let\chapterheadingvskip\headingsvskip -\TUD@deprecated@cs{professorship}{chair} -\TUD@deprecated@cs{studentid}{matriculationnumber} -\TUD@deprecated@cs{matriculationid}{matriculationnumber} -\TUD@deprecated@cs{enrolmentyear}{matriculationyear} -\TUD@deprecated@cs{birthplace}{placeofbirth} -\TUD@deprecated@cs{submissiondate}{date} -\TUD@deprecated@cs{oralexaminationdate}{defensedate} -\TUD@deprecated@cs{birthday}{dateofbirth} -\TUD@deprecated@cs{location}{place} -\TUD@deprecated@cs{logofile}{headlogo} -\TUD@deprecated@cs{logofilename}{headlogo} -\AfterPackage{tudscrsupervisor}{% - \TUD@deprecated@cs{startdate}{issuedate}% - \TUD@deprecated@cs{finaldate}{duedate}% - \TUD@deprecated@cs{maturitydate}{duedate}% -} -\TUD@deprecated@cs{textcdfont}{textcd}% -\TUD@deprecated@cs{tudfont}{cdfont}% -\TUD@deprecated@cs{univln}{cdfontln}% -\TUD@deprecated@cs{univrn}{cdfontrn}% -\TUD@deprecated@cs{univbn}{cdfontsn}% -\TUD@deprecated@cs{univxn}{cdfontbn}% -\TUD@deprecated@cs{univls}{cdfontli}% -\TUD@deprecated@cs{univrs}{cdfontri}% -\TUD@deprecated@cs{univbs}{cdfontsi}% -\TUD@deprecated@cs{univxs}{cdfontbi}% -\TUD@deprecated@cs{textuln}{textcdln}% -\TUD@deprecated@cs{texturn}{textcdrn}% -\TUD@deprecated@cs{textubn}{textcdsn}% -\TUD@deprecated@cs{textuxn}{textcdbn}% -\TUD@deprecated@cs{textuls}{textcdli}% -\TUD@deprecated@cs{texturs}{textcdri}% -\TUD@deprecated@cs{textubs}{textcdsi}% -\TUD@deprecated@cs{textuxs}{textcdbi}% -\TUD@deprecated@cs{dinbn}{cdfontxn}% -\TUD@deprecated@cs{textdbn}{textcdxn}% -\TUD@deprecated@cs{ifdin}{@secondoftwo} -\newrobustcmd*\tud@ifdin{% - \ifx\f@family\tud@cdfont@db% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -\if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% -\fi -\def\tud@res@a#1{% - \TUD@deprecated@cs{var#1}{it#1}% -} -\tud@math@loop@greeks@uc\tud@res@a% -%%% From File: tudscr-misc.dtx +%%%% From File: tudscr-misc.dtx (no git version info was found) \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% - \renewcommand*\tudbookmark[3][]{% + \renewcommand*\tudbookmark[3][0]{% \relax% \if@tud@bookmarks% - \phantomsection% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \csuse{phantomsection}% + \pdfbookmark[{#1}]{#2}{#3}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -7967,7 +8180,6 @@ \let\@footnotemark\H@@footnotemark% \let\@footnotetext\H@@footnotetext% }% - \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } \newcommand*\tud@x@bookmark@startatroot{\relax} \AfterPackage{bookmark}{% @@ -7975,7 +8187,7 @@ \if@tud@bookmarks\bookmarksetup{startatroot}\fi% }% } -\apptocmd{\titlepage}{% +\apptocmd\titlepage{% \tud@x@bookmark@startatroot% \@tud@res@swafalse% \if@tud@coverpage\@tud@res@swatrue\fi% @@ -7990,13 +8202,13 @@ ]{\titlepagename}{title}% \fi% }{}{\tud@patch@wrn{titlepage}} -\pretocmd{\tud@maketitle@inpage}{% +\pretocmd\tud@maketitle@inpage{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% ]{\titlename}{title}% }{}{\tud@patch@wrn{tud@maketitle@inpage}} -\pretocmd{\@maketitle}{% +\pretocmd\@maketitle{% \tud@x@bookmark@startatroot% \tudbookmark[% 0% @@ -8023,10 +8235,10 @@ \AtBeginDocument{% \if@tud@x@scr@fontsize@set\else% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight>299mm\relax\@tud@res@swatrue\fi% \if@tud@res@swa% \ClassWarningNoLine{\TUD@Class@Name}{% You've set a layout size, which is different from\MessageBreak% @@ -8037,22 +8249,22 @@ \fi% \fi% } -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@cd@process -\newif\if@tud@cdgeometry@process +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@relspacing@set +\tud@newif\if@tud@x@scr@headings@reset +\tud@newif\if@tud@cd@process +\tud@newif\if@tud@cdgeometry@process \newcommand*\tud@atdocument@process{% \if@tud@font@set% \tud@font@set% \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% + \global\@tud@relspacing@setfalse% \global\@tud@cd@processfalse% \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% \fi% \if@tud@math@set% \tud@math@set% @@ -8072,22 +8284,67 @@ \global\@tud@cdgeometry@processfalse% \fi% } +%%%% From File: tudscr-comp.dtx (no git version info was found) +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} +\tud@newglue\pageheadingsvskip +\tud@setdim\pageheadingsvskip{\maxdimen} +\tud@newglue\headingsvskip +\tud@setdim\headingsvskip{\maxdimen} +\newcommand*\chapterheadingvskip{} +\let\chapterheadingvskip\headingsvskip +\TUD@deprecated@cs{professorship}{chair} +\TUD@deprecated@cs{studentid}{matriculationnumber} +\TUD@deprecated@cs{matriculationid}{matriculationnumber} +\TUD@deprecated@cs{enrolmentyear}{matriculationyear} +\TUD@deprecated@cs{birthplace}{placeofbirth} +\TUD@deprecated@cs{submissiondate}{date} +\TUD@deprecated@cs{oralexaminationdate}{defensedate} +\TUD@deprecated@cs{birthday}{dateofbirth} +\TUD@deprecated@cs{location}{place} +\TUD@deprecated@cs{logofile}{headlogo} +\TUD@deprecated@cs{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \TUD@deprecated@cs{startdate}{issuedate}% + \TUD@deprecated@cs{finaldate}{duedate}% + \TUD@deprecated@cs{maturitydate}{duedate}% +} +\TUD@deprecated@cs{textcdfont}{textcd}% +\TUD@deprecated@cs{tudfont}{cdfont}% +\TUD@deprecated@cs{univln}{cdfontln}% +\TUD@deprecated@cs{univrn}{cdfontrn}% +\TUD@deprecated@cs{univbn}{cdfontsn}% +\TUD@deprecated@cs{univxn}{cdfontbn}% +\TUD@deprecated@cs{univls}{cdfontli}% +\TUD@deprecated@cs{univrs}{cdfontri}% +\TUD@deprecated@cs{univbs}{cdfontsi}% +\TUD@deprecated@cs{univxs}{cdfontbi}% +\TUD@deprecated@cs{textuln}{textcdln}% +\TUD@deprecated@cs{texturn}{textcdrn}% +\TUD@deprecated@cs{textubn}{textcdsn}% +\TUD@deprecated@cs{textuxn}{textcdbn}% +\TUD@deprecated@cs{textuls}{textcdli}% +\TUD@deprecated@cs{texturs}{textcdri}% +\TUD@deprecated@cs{textubs}{textcdsi}% +\TUD@deprecated@cs{textuxs}{textcdbi}% +\TUD@deprecated@cs{dinbn}{cdfontxn}% +\TUD@deprecated@cs{textdbn}{textcdxn}% +\TUD@deprecated@cs{ifdin}{@secondoftwo} +\newrobustcmd*\tud@ifdin{% + \ifx\f@family\tud@cdfont@db% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} \if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} +\def\tud@res@a#1{% + \TUD@deprecated@cs{var#1}{it#1}% +} +\tud@math@loop@greeks@uc\tud@res@a% \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 f6ba53ee5ef..3e03df69d2b 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty @@ -4,16 +4,18 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,supervisor') -%% tudscr-supervisor.dtx (with options: `package,supervisor') -%% tudscr-fields.dtx (with options: `package,supervisor') -%% tudscr-localization.dtx (with options: `package,supervisor') +%% tudscr-version.dtx (with options: `package,supervisor,identify') +%% tudscr-supervisor.dtx (with options: `package,supervisor,identify') +%% tudscr-fields.dtx (with options: `package,supervisor,body') +%% tudscr-localization.dtx (with options: `package,supervisor,body') +%% tudscr-supervisor.dtx (with options: `package,supervisor,body') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -29,77 +31,159 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-version.dtx +%%%% From File: tudscr-version.dtx (no git version info was found) +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \catcode`\@11\relax% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \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.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \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-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\ifx\TUD@Class@Name\@undefined - \PackageError{% - tudscrsupervisor% - }{Unsupported class found}{% - This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% - }% - \endinput% -\fi \@ifundefined{TUDScript}{% \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% }% }{} -%%% From File: tudscr-supervisor.dtx +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} +\providecommand*\TUD@Class@Check[1]{% + \ifx\TUD@Class@Name\@undefined% + \PackageError{#1}{TUD-Script class not loaded}{% + This package requires a class of the TUD-Script bundle\MessageBreak% + (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \DeclareOption*{}% + \ProcessOptions\relax% + \expandafter\endinput% + \fi% +}% +%%%% From File: tudscr-supervisor.dtx (no git version info was found) \ProvidesPackage{tudscrsupervisor}[% - 2021/07/15 v2.06n TUD-Script - package - (commands for supervisors)% + 2022/08/09 v2.06o TUD-Script + package (commands for supervisors)% ] +\TUD@Class@Check{tudscrsupervisor} +%%%% From File: tudscr-fields.dtx (no git version info was found) +\newcommand*\@chairman{} +\newcommand*\chairman[1]{\tud@trim@field\@chairman{#1}} +\newcommand*\@grade{} +\newcommand*\grade[1]{\tud@trim@field\@grade{#1}} +\newcommand*\@issuedate{} +\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} +\newcommand*\@duedate{} +\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} +\@ifclassloaded{tudscrposter}{\@tempswafalse}{\@tempswatrue} +\if@tempswa +\newcommand*\@contactperson{} +\newcommand*\contactperson[1]{\tud@trim@field\@contactperson{#1}} +\newcommand*\@office{} +\newrobustcmd*\office[1]{\tud@trim@field\@office{#1}} +\newcommand*\@telephone{} +\newrobustcmd*\telephone[1]{\tud@trim@field\@telephone{#1}} +\newcommand*\@telefax{} +\newrobustcmd*\telefax[1]{\tud@trim@field\@telefax{#1}} +\newcommand*\tud@split@contactperson@do[2]{} +\newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax} +\fi +%%%% From File: tudscr-localization.dtx (no git version info was found) +\tud@localization@define{\authorname} +\tud@localization@define{\contactname} +\tud@localization@define{\contactpersonname} +\tud@localization@define{\taskname} +\tud@localization@define{\tasktext} +\tud@localization@define{\namesname} +\tud@localization@define{\issuedatetext} +\tud@localization@define{\duedatetext} +\tud@localization@define{\chairmanname} +\tud@localization@define{\focusname} +\tud@localization@define{\objectivesname} +\tud@localization@define{\evaluationname} +\tud@localization@define{\evaluationtext} +\tud@localization@define{\contentname} +\tud@localization@define{\assessmentname} +\tud@localization@define{\gradetext} +\tud@localization@define{\noticename} +\tud@localization@german{\authorname}{Autor} +\tud@localization@german{\contactname}{Kontakt} +\tud@localization@german{\contactpersonname}{Ansprechpartner} +\tud@localization@german{\taskname}{Aufgabenstellung} +\tud@localization@german{\tasktext}{f\"ur die Anfertigung einer} +\tud@localization@german{\namesname}{Name} +\tud@localization@german{\issuedatetext}{Ausgeh\"andigt am} +\tud@localization@german{\duedatetext}{Einzureichen am} +\tud@localization@german{\chairmanname}{Pr\"ufungsausschussvorsitzender} +\tud@localization@german{\focusname}{Schwerpunkte der Arbeit} +\tud@localization@german{\objectivesname}{Ziele der Arbeit} +\tud@localization@german{\evaluationname}{Gutachten} +\tud@localization@german{\evaluationtext}{f\"ur die} +\tud@localization@german{\contentname}{Inhalt} +\tud@localization@german{\assessmentname}{Bewertung} +\tud@localization@german{\gradetext}{% + Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% +} +\tud@localization@german{\noticename}{Aushang} +\tud@localization@english{\authorname}{Author} +\tud@localization@english{\contactname}{Contact} +\tud@localization@english{\contactpersonname}{Counterpart} +\tud@localization@english{\taskname}{Task} +\tud@localization@english{\tasktext}{for the preparation of a} +\tud@localization@english{\namesname}{Name} +\tud@localization@english{\issuedatetext}{Issued on} +\tud@localization@english{\duedatetext}{Due date for submission} +\tud@localization@english{\chairmanname}{Chairman of the Audit Committee} +\tud@localization@english{\focusname}{Focus of work} +\tud@localization@english{\objectivesname}{Objectives of work} +\tud@localization@english{\evaluationname}{Evaluation} +\tud@localization@english{\evaluationtext}{for the} +\tud@localization@english{\contentname}{Content} +\tud@localization@english{\assessmentname}{Assessment} +\tud@localization@english{\gradetext}{% + The thesis is evaluated with a grade of \textbf{\@grade}.% +} +\tud@localization@english{\noticename}{Notice} +%%%% From File: tudscr-supervisor.dtx (no git version info was found) \newcommand*\tud@multiple@fields@output{} \newcommand*\tud@multiple@fields@style{table} \newcommand*\student{\author} -\newlength\tud@len@authortable +\tud@newdim\tud@dim@authortable \newcommand*\tud@authortable@set{% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% \tud@multiple@split{@author}% \tud@multiple@fields@preset{@author}{\null}{}% - \setlength\tud@len@authortable{2em}% + \tud@setdim\tud@dim@authortable{2em}% \def\@tempb##1{% - \expandafter\ifx\csname @##1\endcsname\@empty\else% - \expandafter\appto\expandafter\@tempa\expandafter{% - \expandafter,\csname ##1name\endcsname% - }% - \fi% + \tud@if@strempty{\csname @##1\endcsname}{}{% + \eappto\@tempa{,\expandafter\noexpand\csname ##1name\endcsname}% + }% }% \def\@tempa{% \namesname,\titlename,\issuedatetext,\duedatetext,\supervisorname% @@ -113,14 +197,14 @@ \@tempb{discipline}% \@for\@tempb:=\@tempa\do{% \settowidth\@tempdima{\@tempb\tud@title@delimiter}% - \ifdim\@tempdima>\tud@len@authortable\relax% - \setlength\tud@len@authortable{\@tempdima}% + \ifdim\@tempdima>\tud@dim@authortable\relax% + \tud@setdim\tud@dim@authortable{\@tempdima}% \fi% }% - \global\tud@len@authortable=\tud@len@authortable% + \global\tud@dim@authortable=\tud@dim@authortable% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@len@authortable}}% + \begin{tabular}{@{}p{\tud@dim@authortable}}% \ifx\@course\@empty\else% \coursename\tud@title@delimiter\tabularnewline% \fi% @@ -154,8 +238,8 @@ }% \tud@multiple@split{@author}% \vskip\smallskipamount% - \begin{tabular}{@{}p{\tud@len@authortable}% - p{\dimexpr\textwidth-\tud@len@authortable-2\tabcolsep\relax}@{}}% + \begin{tabular}{@{}p{\tud@dim@authortable}% + p{\dimexpr\textwidth-\tabcolsep*2-\tud@dim@authortable\relax}@{}}% \titlename\tud@title@delimiter & \tud@RaggedRight\textsf{\textbf{\@@title}}% \end{tabular}% \par% @@ -164,17 +248,18 @@ \endgroup% \noindent\ignorespaces% } +\newcommand*\@headline{} \newenvironment{task}[1][]{% \cleardoubleoddpage% \let\@headline\@empty% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@def{style}{\def\tud@multiple@fields@style{##1}}% \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,#1]% + \tudpage[{pagestyle=empty,#1}]% \tudbookmark{\taskname}{task}% \subsection*{% \ifx\@headline\@empty% @@ -187,10 +272,10 @@ \tud@authortable@set% }{% \def\tud@multiple@fields@output##1{% - \ifstr{\tud@multiple@fields@style}{table}{% + \tud@if@strequal{\tud@multiple@fields@style}{table}{% \def\and{% \tabularnewline% - \ifstr{\csuse{##1othername}}{}{}{% + \tud@if@strempty{\csuse{##1othername}}{}{% \csuse{##1othername}\tud@title@delimiter% }% & \def\and{\tabularnewline &}% @@ -204,17 +289,17 @@ \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@len@authortable}l@{}}% + \begin{tabular}{@{}p{\tud@dim@authortable}l@{}}% \ifx\@referee\@empty\else% \refereename\tud@title@delimiter & % - \tud@multiple@fields@output{referee}\tabularnewline[\smallskipamount]% + \tud@multiple@fields@output{referee}\tabularnewline[1\smallskipamount]% \fi% \supervisorname\tud@title@delimiter & % - \tud@multiple@fields@output{supervisor}\tabularnewline[\smallskipamount]% + \tud@multiple@fields@output{supervisor}\tabularnewline[1\smallskipamount]% \issuedatetext\tud@title@delimiter & \@issuedate\tabularnewline% \duedatetext\tud@title@delimiter & \@duedate\tabularnewline% \end{tabular}% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \ifx\@chairman\@empty\else% \begin{tabular}{@{}l@{}}% \@chairman\tabularnewline% @@ -234,7 +319,7 @@ \aftergroup\cleardoublepage% } \newcommand\taskform[3][]{% - \begin{task}[#1]% + \begin{task}[{#1}]% \ifblank{#2}{}{\minisec{\objectivesname}\smallskip#2}% \ifblank{#3}{}{% \minisec{\focusname}\smallskip% @@ -248,13 +333,13 @@ \cleardoubleoddpage% \let\@headline\@empty% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@def{grade}{\def\@grade{##1}}% \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,#1]% + \tudpage[{pagestyle=empty,#1}]% \tudbookmark{\evaluationname}{evaluation}% \subsection*{% \ifx\@headline\@empty% @@ -268,17 +353,17 @@ }{% \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \setlength\@tempskipa{\smallskipamount}% + \tud@setglue\@tempskipa{\smallskipamount}% \ifx\@grade\@empty\else% \vskip\@tempskipa\noindent% \gradetext% - \setlength\@tempskipa{\bigskipamount}% + \tud@setglue\@tempskipa{\bigskipamount}% \fi% \ifx\@date\@empty\else% \vskip\@tempskipa\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \ifx\@referee\@empty\let\@referee\@supervisor\fi% \let\@tempa\refereename% \def\and{% @@ -299,7 +384,7 @@ \aftergroup\cleardoublepage% } \newcommand\evaluationform[5][]{% - \begin{evaluation}[#1]% + \begin{evaluation}[{#1}]% \ifblank{#2}{}{\minisec{\taskname}\smallskip#2}% \ifblank{#3}{}{\minisec{\contentname}\smallskip#3}% \ifblank{#4}{}{\minisec{\assessmentname}\smallskip#4}% @@ -310,12 +395,12 @@ \cleardoubleoddpage% \def\@headline{\noticename}% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,cdhead=date,#1]% + \tudpage[{pagestyle=empty,cdhead=date,#1}]% \tudbookmark{\noticename}{notice}% \ifx\@headline\@empty\else% \section*{\@headline}% @@ -330,10 +415,10 @@ \tud@multiple@fields@preset{@contactperson}{}{##1}% \begin{tabular}[t]{@{}l@{}}% \ignorespaces##1\tabularnewline% + \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% \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}% \tud@multiple@@@split{##2}{\hfill}% @@ -345,7 +430,7 @@ \aftergroup\cleardoublepage% } \newcommand\noticeform[3][]{% - \begin{notice}[#1]% + \begin{notice}[{#1}]% \ifblank{#2}{}{% \ifx\@@title\@empty\else% \minisec{\expandonce{\@@title}}\medskip% @@ -360,85 +445,6 @@ }% \end{notice}% } -%%% 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@printdate{\@issuedate}{#1}} -\newcommand*\@duedate{} -\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} -\@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*\tud@split@contactperson@do[2]{} -\newcommand*\tud@split@contactperson@list{emailaddress,office,telephone,telefax} -\fi -%%% From File: tudscr-localization.dtx -\tud@localization@define{\authorname} -\tud@localization@define{\contactname} -\tud@localization@define{\contactpersonname} -\tud@localization@define{\taskname} -\tud@localization@define{\tasktext} -\tud@localization@define{\namesname} -\tud@localization@define{\issuedatetext} -\tud@localization@define{\duedatetext} -\tud@localization@define{\chairmanname} -\tud@localization@define{\focusname} -\tud@localization@define{\objectivesname} -\tud@localization@define{\evaluationname} -\tud@localization@define{\evaluationtext} -\tud@localization@define{\contentname} -\tud@localization@define{\assessmentname} -\tud@localization@define{\gradetext} -\tud@localization@define{\noticename} -\tud@localization@german{\authorname}{Autor} -\tud@localization@german{\contactname}{Kontakt} -\tud@localization@german{\contactpersonname}{Ansprechpartner} -\tud@localization@german{\taskname}{Aufgabenstellung} -\tud@localization@german{\tasktext}{f\"ur die Anfertigung einer} -\tud@localization@german{\namesname}{Name} -\tud@localization@german{\issuedatetext}{Ausgeh\"andigt am} -\tud@localization@german{\duedatetext}{Einzureichen am} -\tud@localization@german{\chairmanname}{Pr\"ufungsausschussvorsitzender} -\tud@localization@german{\focusname}{Schwerpunkte der Arbeit} -\tud@localization@german{\objectivesname}{Ziele der Arbeit} -\tud@localization@german{\evaluationname}{Gutachten} -\tud@localization@german{\evaluationtext}{f\"ur die} -\tud@localization@german{\contentname}{Inhalt} -\tud@localization@german{\assessmentname}{Bewertung} -\tud@localization@german{\gradetext}{% - Die Arbeit wird mit der Note \textbf{\@grade} bewertet.% -} -\tud@localization@german{\noticename}{Aushang} -\tud@localization@english{\authorname}{Author} -\tud@localization@english{\contactname}{Contact} -\tud@localization@english{\contactpersonname}{Counterpart} -\tud@localization@english{\taskname}{Task} -\tud@localization@english{\tasktext}{for the preparation of a} -\tud@localization@english{\namesname}{Name} -\tud@localization@english{\issuedatetext}{Issued on} -\tud@localization@english{\duedatetext}{Due date for submission} -\tud@localization@english{\chairmanname}{Chairman of the Audit Committee} -\tud@localization@english{\focusname}{Focus of work} -\tud@localization@english{\objectivesname}{Objectives of work} -\tud@localization@english{\evaluationname}{Evaluation} -\tud@localization@english{\evaluationtext}{for the} -\tud@localization@english{\contentname}{Content} -\tud@localization@english{\assessmentname}{Assessment} -\tud@localization@english{\gradetext}{% - The thesis is evaluated with a grade of \textbf{\@grade}.% -} -\tud@localization@english{\noticename}{Notice} \endinput %% %% End of file `tudscrsupervisor.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty deleted file mode 100644 index 7323baa6070..00000000000 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrtutorial.sty +++ /dev/null @@ -1,1602 +0,0 @@ -%% -%% 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-texindy.dtx (with options: `package,tutorial') -%% -%% TUD-Script -- Corporate Design of Technische Universitaet Dresden -%% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 -%% -%% This file was generated from file(s) of the TUD-Script bundle. -%% ---------------------------------------------------------------------------- -%% -%% This work may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License, either version 1.3c of this license or -%% any later version. 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 version 2008-05-04 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% The current maintainer and author of this work is 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.32}% - } - \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-Script-Bundle versions% - }% - \fi% - } - \fi - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} -\endgroup -\NeedsTeXFormat{LaTeX2e}[2019/10/01] -\providecommand*\tudscrmail{hanisch.latex@outlook.com} -\ifx\TUD@Class@Name\@undefined - \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% -\fi -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -%%% From File: tudscr-manual.dtx -\ProvidesPackage{tudscrtutorial}[% - 2021/07/15 v2.06n TUD-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}{\FamilyKeyStateProcessed}% - }{% - \KOMAoptions{overfullrule}% - }% - \ifdef{\tudprintflag}{% - \ifnum\tud@cd@num>\z@\relax% - \TUDoptions{cd=true}% - \fi% - \TUD@key{cd}{\FamilyKeyStateProcessed}% - \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}{% - \IfArgIsEmpty{##4}{}{% - \listeadd\tud@todo@type@neg{##4}% - \@tud@todotrue% - \FamilyKeyStateProcessed% - }% - }{% - \IfArgIsEmpty{##1}{}{% - \listeadd\tud@todo@type@pos{##1##2##3##4}% - \@tud@todotrue% - \FamilyKeyStateProcessed% - }% - }% - }% - \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{"=} -\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{shellesc}[2016/06/07] -\RequirePackage{pdftexcmds}[2016/05/21] -\RequirePackage{scrwfile}[2013/08/05] -\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*\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% - }% - \providecommand*\hypersetup[1]{}% - \providecommand*\href[3][]{#3}% - \providecommand*\phantomsection{}% - \providecommand*\texorpdfstring[2]{#1}% - \RequirePackage{url}[2013/09/16]% - \providecommand*\nolinkurl[1]{\url{#1}}% - \providecommand*\hyperpage[1]{#1}% - \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}% - \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} - \tud@localization@german{\partautorefname}{Teil}% - \tud@localization@german{\chapterautorefname}{Kapitel}% - \tud@localization@german{\sectionautorefname}{Unterkapitel}% - \tud@localization@german{\subsectionautorefname}{Abschnitt}% - \tud@localization@german{\subsubsectionautorefname}{Unterabschnitt}% - \tud@localization@english{\partautorefname}{Part}% - \tud@localization@english{\chapterautorefname}{chapter}% - \tud@localization@english{\sectionautorefname}{section}% - \tud@localization@english{\subsectionautorefname}{subsection}% - \tud@localization@english{\subsubsectionautorefname}{subsubsection}% - \providecommand*\tudhyperref[2]{#2}% - \providecommand*\autorefname[1][]{??\xspace}% -} -\newcommand*\hrfn[2]{% - \href{#1}{\trim@spaces{#2}}% - \footnote{% - \begingroup% - \def\_{_}% - \edef\@tempa{#1}% - \strut\expandafter\url\expandafter{\@tempa}% - \endgroup% - }% -} -\newrobustcmd*\mailto[1]{\mbox{\href{mailto:#1}{\nolinkurl{#1}}}}% -\AfterPackage*{hyperref}{% - \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% - \let\bbl@info\@gobble\csname HyPsd@babel@% - }{}{\tud@patch@wrn{pdfstringdef}}% -} -\RequirePackage{varioref}[2011/10/02] -\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} -\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} -\providecommand*\NewExpandableDocumentCommand[3]{% - \NewDocumentCommand#1{#2}{}% - \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{s m !d() !d<> !d||}{% - \Markup@SetFormat{\sbsfont}% - \IfValueTF{#4}{% - \Process@Markup{\Application{#2}}(#3)<#4>% - }{% - \Process@Markup{\Application{#2}}(#3)% - }% - \Process@Index{#1}{\Application{#2}}[Anwendungssoftware](#3)|#5|% -} -\NewExpandableDocumentCommand\@Distribution{sm}{#2} -\NewDocumentCommand\Distribution{s m !o !d() !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{s m !d() !d||}{% - \Markup@SetFormat{\sbnfont}% - \Process@Markup{\Engine{\hologo{#2}}}(#3)% - \Process@Index{#1}{\Engine{#2}}[Textsatzsystem](#3)|#4|% -} -\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} -\NewExpandableDocumentCommand\@File{sm}{#2} -\NewDocumentCommand\File{s m !d() !d||}{% - \Markup@SetFormat{\sbnfont}% - \Process@Markup{\File{#2}}(#3)% - \Process@Index{#1}{\File{#2}}[Datei](#3)|#4|% -} -\NewExpandableDocumentCommand\@Class{sm}{#2} -\NewDocumentCommand\Class{s m !d() !d'' !d||}{% - \Markup@SetFormat{\sbnfont}% - \Process@Markup{\Class{#2}}(#3)'#4'% - \Process@Index{#1}{\Class{#2}}[Klasse](#3)|#5|% -} -\NewExpandableDocumentCommand\@Package{sm}{#2} -\NewDocumentCommand\Package{s m !d() !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}m !d== !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{s m !o !d() !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{s m !o !d() !d'' !d||}{% - \Markup@SetFormat[\bsc]{\ttfamily}% - \Process@Markup{\Macro{#2}}[#3](#4)'#5'% - \Process@Index{#1}{\Macro{#2}}(#4)|#6|% -} -\NewExpandableDocumentCommand\@Length{sm}{#2} -\NewDocumentCommand\Length{s m !d() !d'' !d||}{% - \Markup@SetFormat[\bsc]{\ttfamily}[L\"ange]% - \Process@Markup{\Length{#2}}(#3)'#4'% - \Process@Index{#1}{\Length{#2}}[L\"ange](#3)|#5|% -} -\NewExpandableDocumentCommand\@Counter{sm}{#2} -\NewDocumentCommand\Counter{s m !d() !d'' !d||}{% - \Markup@SetFormat{\ttfamily}[Z\"ahler]% - \Process@Markup{\Counter{#2}}(#3)'#4'% - \Process@Index{#1}{\Counter{#2}}[Z\"ahler](#3)|#5|% -} -\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*\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\_{-}% - \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}% - \def\dots{...}% - \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% -} -\newif\if@tud@disposition -\newcommand*\ifdisposition{% - \if@tud@disposition% - \expandafter\@firstoftwo% - \else% - \expandafter\@secondoftwo% - \fi% -} -\pretocmd{\tud@sec@format}{% - \@tud@dispositiontrue% -}{}{\tud@patch@wrn{tud@sec@format}} -\newcommand*\Markup@Suppress{\let\Process@Markup\Markup@@Suppress} -\NewDocumentCommand\Markup@@Suppress{md==od()d<>d''}{} -\NewDocumentCommand\Process@Markup{md==od()d<>d''}{% - \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{% - \PackageWarning{tudscrtutorial}% - {% - You've used the unknown cross-reference\MessageBreak% - shorthand '#6'. Only 'none' and 'manual'\MessageBreak% - are valid% - }% - }% - }% - }% - }% - \ifdisposition{\@tempc}{\@tempa\@tempb}% - \endgroup% - \Markup@ClearFormat% -} -\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}mr==r[]}{% - \Markup@@Output#1=#2=[#3]% -} -\NewDocumentCommand\Markup@@Output{mmr==r[]}{% - \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{} -\undef\Markup@Format -\newcommand*\Markup@Suffix{} -\NewDocumentCommand\Markup@SetFormat{omod()}{% - \def\Markup@Format##1{% - \def\tud@res@a{#2}% - \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% - \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% - }% - \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% -} -\newcommand*\Markup@ClearFormat{% - \undef\Markup@Format% - \let\Markup@Declare\Markup@@Declare% - \let\Markup@Suffix\relax% -} -\Markup@ClearFormat -\newcommand*\Markup@CheckFormat{% - \ifundef\Markup@Format{% - \PackageError{tudscrtutorial}% - {\string\Markup@SetFormat\space unused}% - {It seems you have forgotten to use \string\Markup@SetFormat.}% - }{}% -} -\ifundef{\tud@x@textcase@uclcnotmath}{}{% - \NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% - }% - } - \apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% - }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} -} -\PassOptionsToPackage{xindy,splitindex}{imakeidx} -\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% -\NewDocumentCommand\makexdyindex{s o m !o}{% - \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% -} -\newrobustcmd*\cleversee{\tud@cleversee{\seename}} -\newrobustcmd*\cleverseealso{% - \PackageWarning{tudscrtutorial}% - {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% - }{% - \begingroup% - \def\@tempa, ##1\@nil{##1,\space\emph{\alsoname}\space#2}% - \@tempa#3\@nil% - \endgroup% - }% -} -\NewDocumentCommand\Process@Index{mmd==od()d||}{% - \ifboolexpr{% - bool {@tud@index}% - }{}{% - \IfBooleanTF{#1}{% - \IfValueT{#6}{% - \PackageWarning{tudscrtutorial}% - {% - 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*\tud@latex@ext{pdflatex\space} -\iftutex - \ifxetex - \renewcommand*\tud@latex@ext{xelatex\space} - \else - \renewcommand*\tud@latex@ext{lualatex\space} - \fi -\fi -\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=\m@ne\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][]{% - \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}% - \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% - \faculty{}% - \maketitle% - \ifblank{#1}{}{% - \noindent% - \begin{abstract}% - \noindent#1% - \end{abstract}% - \medskip% - }% - \noindent\ignorespaces% -} -\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}% - \thispagestyle{empty}% - \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\pdf@shellescape=\@ne\relax% - \ifwindows% - \def\@tempa{del}% - \else% - \def\@tempa{rm}% - \fi% - \ShellEscape{\@tempa\space\tud@tut@temp*.*}% - \fi% -} -\newcommand\Code@Preamble{} -\let\Code@Preamble\relax -\newcommand\CodePreamble[1]{% - \long\gdef\Code@Preamble{% - \hskip.5\leftmargin\textit{Die resultierende Ausgabe:}\space#1% - }% -} -\newcommand*\Code@Hook{} -\let\Code@Hook\relax -\newcommand*\CodeHook[1]{\gdef\Code@Hook{#1}} -\newcommand*\StandaloneFile{} -\let\StandaloneFile\relax -\newcommand*\StandaloneDate{} -\providecommand*\filec@ntents@silent{% - \let\@latex@warning@no@line\@gobble% -} -\newcommand*\tud@tut@pre{% - \csuse{filecontents*}[force,silent,nosearch]{\tud@tut@temp.tex}% -} -\newcommand*\tud@tut@post{% - \csuse{endfilecontents*}% -} -\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}% - \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% - \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% -\begin{filecontents*}{\tud@tut@temp-standalone.tex} -\documentclass[english,ngerman]{tudscrreprt} -\iftutex - \usepackage{fontspec} -\else - \usepackage[T1]{fontenc} - \usepackage[ngerman=ngerman-x-latest]{hyphsubst} -\fi -\usepackage{babel} -\usepackage{tudscrsupervisor} -\usepackage{isodate} -\usepackage{enumitem} -\setlist{noitemsep} -\begin{document} -\ifdefvoid{\StandaloneDate}{}{\date{\StandaloneDate}}% -\input{\jobname.tex}% -\end{document} -\end{filecontents*} -\fi -\newcommand*\tud@tut@pdf{% - \ifnum\pdf@shellescape=\@ne\relax% - \filemodCmp{\jobname-standalone-\StandaloneFile.pdf}{\jobname.tex}{}{% - \begingroup% - \let\printdate\@firstofone% - \edef\@tempa{\expandonce\@date}% - \def\@tempb{\today}% - \ifx\@tempa\@tempb\relax% - \let\@tempb\@empty% - \else% - \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}% - \fi% - \edef\@tempa{% - \tud@latex@ext -jobname=\tud@tut@temp\space% - "\noexpand\unexpanded{\expandonce\@tempb\noexpand\input}% - {\tud@tut@temp-standalone.tex}"% - }% - \ShellEscape{\@tempa^^J\@tempa^^J\@tempa}% - \ifwindows% - \def\@tempa{rename}% - \else% - \def\@tempa{mv}% - \fi% - \ShellEscape{% - \@tempa\space\tud@tut@temp.pdf\space% - \jobname-standalone-\StandaloneFile.pdf% - }% - \endgroup% - }% - \fi% - \global\let\StandaloneFile\relax% -} -\NewDocumentCommand\IncludeStandalone{o m !O{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\pdf@shellescape=\@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\pdf@shellescape=\@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] -\AtEndPreamble{% - \ifdim\marginparwidth<2cm\relax% - \setlength\marginparwidth{2cm}% - \fi% -} -\AfterPackage*{todonotes}{% - \newcommand*\tud@todo@type@use{}% - \NewDocumentCommand\ToDo{s o m !o}{% - \ifbool{@tud@todo}{% - \global\let\tud@currentHref\@currentHref% - \begingroup% - \let\tud@todo@type@use\@empty% - \IfValueTF{#2}{% - \IfArgIsEmpty{#2}{}{% - \let\tud@todo@type@use\relax% - \ifx\tud@todo@type@pos\relax% - \def\tud@res@a##1{% - \ifinlist{##1}{\tud@todo@type@use}{}{% - \ifinlist{##1}{\tud@todo@type@neg}{}{% - \listadd\tud@todo@type@use{##1}% - }% - }% - }% - \else% - \def\tud@res@a##1{% - \ifinlist{##1}{\tud@todo@type@use}{}{% - \ifinlist{##1}{\tud@todo@type@pos}{% - \listadd\tud@todo@type@use{##1}% - }{}% - }% - }% - \fi% - \forcsvlist\tud@res@a{#2}% - }% - }{}% - \ifx\tud@todo@type@use\relax\else% - \let\tud@res@a\@empty% - \let\tud@res@b\@empty% - \let\tud@res@c\@empty% - \ifinlist{rls}{\tud@todo@type@use}{% - \def\tud@res@a{color=HKS44!30,}% - \def\tud@res@b{color=HKS44!30,}% - \edef\tud@res@c{v\TUDScriptVersionNumber}% - }{% - \ifinlist{imp}{\tud@todo@type@use}{% - \def\tud@res@a{color=HKS57!50,}% - }{% - \ifinlist{doc}{\tud@todo@type@use}{% - \def\tud@res@a{color=HKS41!30,}% - }{}% - }% - \def\tud@res@c{ToDo}% - \IfValueT{#4}{% - \begingroup% - \tud@v@get\tud@res@a{#4}% - \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% - \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% - \ifnumber{\tud@res@b}{% - \edef\tud@res@c{% - \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% - }% - \ifnum\tud@res@b>\tud@res@c\relax% - \def\tud@res@b{color=HKS92!30,}% - \else% - \ifnum\tud@res@b<\tud@res@c\relax% - \def\tud@res@b{color=HKS07!50,}% - \else% - \def\tud@res@b{color=HKS41!30,}% - \fi% - \fi% - \def\tud@res@c{v\tud@res@a}% - }{% - \let\tud@res@b\@empty% - \def\tud@res@c{#4}% - }% - \edef\tud@res@c{% - \endgroup% - \def\noexpand\tud@res@b{\tud@res@b}% - \def\noexpand\tud@res@c{\tud@res@c}% - }% - \tud@res@c% - }% - }% - \ifhmode\par\fi% - \let\par\relax% - \vskip\medskipamount% - \noindent% - \toks@\expandafter{\tud@res@b 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{\tud@res@a noline,nolist}% - \settowidth\marginparwidth{\tud@res@c}% - \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% - \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% - \aftergroup\par\aftergroup\noindent% - \listremove{\tud@todo@type@use}{rls}% - \listremove{\tud@todo@type@use}{imp}% - \listremove{\tud@todo@type@use}{doc}% - \ifx\tud@todo@type@use\@empty\else% - \begingroup% - \let\tud@res@c\@empty% - \renewcommand*{\do}[1]{% - \appto\tud@res@c{,##1}% - }% - \dolistloop{\tud@todo@type@use}% - \edef\tud@res@c{% - \endgroup% - \edef\noexpand\tud@res@c{\expandafter\@gobble\tud@res@c}% - }% - \tud@res@c% - \ClassWarning{tudscrmanual}{% - Unknown key(s) `\string\ToDo[\tud@res@c]'% - }% - \fi% - \fi% - \endgroup% - \global\let\@currentHref\tud@currentHref% - }{}% - \ignorespaces% - }% - \newcommand*\ListOfToDo{\if@tud@todo\clearpage\listoftodos\fi}% -} -\TUD@UnwindPackage{todonotes}{% - \NewDocumentCommand\ToDo{s o m !o}{}% - \newcommand*\ListOfToDo{}% -} -\RequirePackage{csquotes}[2011/10/22] -\RequirePackage{textcomp}[2005/09/27] -\RequirePackage{setspace}[2011/12/19] -\setstretch{1.1} -\PassOptionsToPackage{vskip=\smallskipamount}{quoting} -\RequirePackage{quoting}[2014/01/28] -\RequirePackage{isodate}[2010/01/03] -\RequirePackage{hologo}[2012/04/26] -\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% -} -\newcommand*\Attention[2][\z@]{% - \marginnote{% - \setlength\fboxsep{0.25em}% - \fbox{Achtung!}% - }[#1]% - \emph{\trim@spaces{#2}}% -} -\NewDocumentCommand\Forum{!s !t'}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% - \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% - \the\toks@\xspace% -} -\NewDocumentCommand\CTAN{!s !o !g}{% - \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{!s !O{\KOMAScript-Handbuch}}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \addto@hook\toks@{% - {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf}% - }% - \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% -} -\AfterPackage*{hyperref}{% - \pdfstringdefDisableCommands{% - \def\DDC{DRESDEN-concept}% - \def\TUDScript{TUD-Script}% - \def\KOMAScript{KOMA-Script}% - }% -} -\DeclareTextFontCommand\tud@cdfont@texteb{% - \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% -} -\newrobustcmd*\OpenSans{% - \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% -} -\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} -\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} -\renewcommand*\@pnumwidth{2.1em}% -\renewcommand*\@tocrmarg{3.1em}% -\newcommand*\textsbn{} -\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbn{\sbnfont} -\newcommand*\textsbs{} -\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape} -\DeclareTextFontCommand\textsbs{\sbsfont} -%%% From File: tudscr-texindy.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{% - (merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% - }% - \write\tud@write@xdy{% - (markup-locclass-list% - \space:open "\string\,\string\dotfill\string\,"% - \space:close "\string\relax"% - \space:sep ",\space"% - )% - }% - \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 d1328fd1411..9d3f755df31 100644 --- a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty +++ b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty @@ -7,10 +7,11 @@ %% tudscr-twocolfix.dtx (with options: `package') %% %% TUD-Script -- Corporate Design of Technische Universitaet Dresden +%% 2022/08/09 v2.06o TUD-Script %% -%% 2021/07/15 v2.06n TUD-Script -%% -%% Copyright (C) Falk Hanisch , 2012-2021 +%% Copyright (C) Falk Hanisch , 2012-2022 +%% https://github.com/tud-cd/tudscr +%% https://latex.wcms-file3.tu-dresden.de/phpBB3/ %% %% This file was generated from file(s) of the TUD-Script bundle. %% ---------------------------------------------------------------------------- @@ -26,12 +27,11 @@ %% %% The current maintainer and author of this work is Falk Hanisch. %% -%%% From File: tudscr-twocolfix.dtx +%%%% From File: tudscr-twocolfix.dtx (no git version info was found) \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{twocolfix}[% - 2021/07/15 v2.06n TUD-Script - package - (twocolumn layout bugfix)% + 2022/08/09 v2.06o TUD-Script + package (twocolumn layout bugfix)% ] \long\def \@tempa [#1]{% \@nodocument% -- cgit v1.2.3