diff options
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-comp.dtx')
-rw-r--r-- | macros/latex/contrib/tudscr/source/tudscr-comp.dtx | 1018 |
1 files changed, 464 insertions, 554 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx index add1e062fa..1f97ed6b9b 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx @@ -1,10 +1,10 @@ -% \CheckSum{1461} % \iffalse meta-comment +%/GitFileInfo=tudscr-comp.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022 % % ---------------------------------------------------------------------------- % @@ -23,48 +23,19 @@ % % \fi % -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \iffalse -%%% From File: tudscr-comp.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-comp.dtx}[2021/07/15 v2.06n TUD-Script\space% -% -% \iffalse -%</dtx> -%<*package&identify> -%<comp&base>\ProvidesPackage{tudscrcomp}[% -%<comp&book>\ProvidesPackage{tudscrcomp-book}[% -%<comp&poster>\ProvidesPackage{tudscrcomp-poster}[% -%<fixfonts>\ProvidesPackage{fix-tudscrfonts}[% -%!TUD@Version -%<comp> package -%<fixfonts> package for font fixes -%</package&identify> -%<*dtx|package&identify> -% \fi - (compatibility for old tud(scr) classes)% -] -% \iffalse -%</dtx|package&identify> +% \iffalse ins:batch + dtx:driver +%<*ins> +\ifx\documentclass\undefined + \input docstrip.tex + \ifToplevel{\batchinput{tudscr.ins}} +\else + \let\endbatchfile\relax +\fi +\endbatchfile +%</ins> %<*dtx> +\ProvidesFile{tudscr-comp.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -74,18 +45,11 @@ \fi \usepackage{babel} \usepackage{tudscrfonts} -\KOMAoptions{parskip=half-} -\usepackage{bookmark} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-comp.dtx} -\title{\file{\filename}} -\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} -\date{\fileversion\nobreakspace(\filedate)} - +\GitHubBase{\TUDScriptRepository} \begin{document} + \author{Falk Hanisch\TUDScriptContactTitle} \maketitle \tableofcontents \DocInput{\filename} @@ -100,6 +64,8 @@ % \changes{v2.04}{2015/04/22}{\pkg{tudscrfonts}: Unterstützung veralteter % Posterklassen}^^A % +% +% % \section{Kompatibilität zu früheren \TUDScript-Versionen} % % Mit der Version v2.02 wurde eine Menge~-- teilweise sehr tiefgreifend~-- an @@ -110,7 +76,19 @@ % betreffen sowohl die Klassen selber als auch die zusätzlich bereitgestellten % Pakete. % -% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} +% \begin{macrocode} +%<*package&identify> +%<comp>\ProvidesPackage{tudscrcomp}% +%<fixfonts>\ProvidesPackage{fix-tudscrfonts}% +[% +%!TUD@Version +%<comp> package +%<fixfonts> package for font fixes + (compatibility for old tud(scr) classes)% +] +%<comp>\TUD@Class@Check{tudscrcomp} +%</package&identify> +% \end{macrocode} % % \iffalse %<*class|package&fonts> @@ -123,7 +101,7 @@ % \changes{v2.03}{2015/02/05}{neu}^^A % \begin{macro}{\TUD@deprecated@@cs} % \changes{v2.06}{2018/08/07}{neu}^^A -% \begin{macro}{\TUD@deprecated@lengthcs} +% \begin{macro}{\TUD@deprecated@length} % \changes{v2.05}{2016/06/20}{neu}^^A % Um alte Optionen und Befehle dem Anwender bei der Verwendung kenntlich zu % machen, werden entsprechende Warnungen definiert. Für Optionen wird dabei @@ -195,21 +173,28 @@ }{}% } %<*class> -\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% } %</class> % \end{macrocode} -% \end{macro}^^A \TUD@deprecated@lengthcs +% \end{macro}^^A \TUD@deprecated@length % \end{macro}^^A \TUD@deprecated@@cs % \end{macro}^^A \TUD@deprecated@cs % \end{macro}^^A \TUD@deprecated@key @@ -223,8 +208,8 @@ % Standardmäßig werden die Klassen in der aktuellen Version geladen. Mit % \opt{tudscrver}|=|\val{\meta{Version}} kann auf das Verhalten einer früheren % Version geschaltet werden. Die eingestellte Kompatibilität wird als Zahl in -% \cs{tud@v@comp} gespeichert. In den Makros \cs{tud@v@\meta{Version}} werden -% die zugehörigen Nummern gespeichert. +% \cs{tud@v@comp} gespeichert. In den Makros |\tud@v@|\meta{Version} werden die +% zugehörigen Nummern gespeichert. % \begin{macrocode} \newcommand*\tud@v@comp{\tud@v@last} % \end{macrocode} @@ -279,30 +264,6 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% -% \end{macrocode} -% Außerdem wird darauf geachtet, dass die mindestens benötigte Version von -% \KOMAScript{} installiert ist. (\cs{\TUD@Version@KOMA}: \TUD@Version@KOMA). -% Sollte dies nicht der Fall sein, wird ein Fehler erzeugt. -% \begin{macrocode} -%<*class> - \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.% - }% - }% -%</class> } % \end{macrocode} % \end{macro}^^A \tud@v@comp @@ -314,84 +275,16 @@ % \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.01} % \changes{v2.02}{2014/08/22}{neu}^^A -% \begin{macro}{\tud@v@2.01a} -% \changes{v2.02}{2014/08/22}{neu}^^A -% \begin{macro}{\tud@v@2.01b} -% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.02} % \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.03} % \changes{v2.03}{2015/01/13}{neu}^^A -% \begin{macro}{\tud@v@2.03a} -% \changes{v2.03a}{2015/06/12}{neu}^^A % \begin{macro}{\tud@v@2.04} % \changes{v2.04}{2015/02/18}{neu}^^A -% \begin{macro}{\tud@v@2.04a} -% \changes{v2.04a}{2015/07/24}{neu}^^A -% \begin{macro}{\tud@v@2.04b} -% \changes{v2.04b}{2015/10/06}{neu}^^A -% \begin{macro}{\tud@v@2.04c} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% \begin{macro}{\tud@v@2.04d} -% \changes{v2.04d}{2016/03/26}{neu}^^A -% \begin{macro}{\tud@v@2.04e} -% \changes{v2.04e}{2016/06/17}{neu}^^A % \begin{macro}{\tud@v@2.05} % \changes{v2.05}{2015/07/03}{neu}^^A -% \begin{macro}{\tud@v@2.05a} -% \changes{v2.05a}{2015/08/24}{neu}^^A -% \begin{macro}{\tud@v@2.05b} -% \changes{v2.05b}{2015/09/09}{neu}^^A -% \begin{macro}{\tud@v@2.05c} -% \changes{v2.05c}{2015/09/15}{neu}^^A -% \begin{macro}{\tud@v@2.05d} -% \changes{v2.05d}{2015/09/21}{neu}^^A -% \begin{macro}{\tud@v@2.05e} -% \changes{v2.05e}{2016/10/10}{neu}^^A -% \begin{macro}{\tud@v@2.05f} -% \changes{v2.05f}{2016/10/12}{neu}^^A -% \begin{macro}{\tud@v@2.05g} -% \changes{v2.05g}{2017/01/26}{neu}^^A -% \begin{macro}{\tud@v@2.05h} -% \changes{v2.05h}{2017/02/04}{neu}^^A -% \begin{macro}{\tud@v@2.05i} -% \changes{v2.05i}{2017/02/17}{neu}^^A -% \begin{macro}{\tud@v@2.05k} -% \changes{v2.05k}{2017/03/27}{neu}^^A -% \begin{macro}{\tud@v@2.05l} -% \changes{v2.05l}{2017/03/29}{neu}^^A -% \begin{macro}{\tud@v@2.05m} -% \changes{v2.05m}{2017/05/30}{neu}^^A % \begin{macro}{\tud@v@2.06} % \changes{v2.06}{2018/06/26}{neu}^^A -% \begin{macro}{\tud@v@2.06a} -% \changes{v2.06a}{2019/07/09}{neu}^^A -% \begin{macro}{\tud@v@2.06b} -% \changes{v2.06b}{2019/07/17}{neu}^^A -% \begin{macro}{\tud@v@2.06c} -% \changes{v2.06c}{2019/08/20}{neu}^^A -% \begin{macro}{\tud@v@2.06d} -% \changes{v2.06d}{2019/08/27}{neu}^^A -% \begin{macro}{\tud@v@2.06e} -% \changes{v2.06e}{2019/10/23}{neu}^^A -% \begin{macro}{\tud@v@2.06f} -% \changes{v2.06f}{2020/01/14}{neu}^^A -% \begin{macro}{\tud@v@2.06g} -% \changes{v2.06g}{2020/06/18}{neu}^^A -% \begin{macro}{\tud@v@2.06h} -% \changes{v2.06h}{2020/06/25}{neu}^^A -% \begin{macro}{\tud@v@2.06i} -% \changes{v2.06i}{2020/07/27}{neu}^^A -% \begin{macro}{\tud@v@2.06j} -% \changes{v2.06j}{2020/09/29}{neu}^^A -% \begin{macro}{\tud@v@2.06k} -% \changes{v2.06k}{2020/11/10}{neu}^^A -% \begin{macro}{\tud@v@2.06l} -% \changes{v2.06l}{2021/03/30}{neu}^^A -% \begin{macro}{\tud@v@2.06m} -% \changes{v2.06m}{2021/07/06}{neu}^^A -% \begin{macro}{\tud@v@2.06n} -% \changes{v2.06n}{2021/07/15}{neu}^^A % \begin{macro}{\tud@v@last} % \changes{v2.02}{2014/08/22}{neu}^^A % \changes{v2.03}{2015/01/13}{angepasst}^^A @@ -403,87 +296,19 @@ \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} % \end{macrocode} % \end{macro}^^A \tud@v@last -% \end{macro}^^A \tud@v@2.06n -% \end{macro}^^A \tud@v@2.06m -% \end{macro}^^A \tud@v@2.06l -% \end{macro}^^A \tud@v@2.06k -% \end{macro}^^A \tud@v@2.06j -% \end{macro}^^A \tud@v@2.06i -% \end{macro}^^A \tud@v@2.06h -% \end{macro}^^A \tud@v@2.06g -% \end{macro}^^A \tud@v@2.06f -% \end{macro}^^A \tud@v@2.06e -% \end{macro}^^A \tud@v@2.06d -% \end{macro}^^A \tud@v@2.06c -% \end{macro}^^A \tud@v@2.06b -% \end{macro}^^A \tud@v@2.06a % \end{macro}^^A \tud@v@2.06 -% \end{macro}^^A \tud@v@2.05m -% \end{macro}^^A \tud@v@2.05l -% \end{macro}^^A \tud@v@2.05k -% \end{macro}^^A \tud@v@2.05i -% \end{macro}^^A \tud@v@2.05h -% \end{macro}^^A \tud@v@2.05g -% \end{macro}^^A \tud@v@2.05f -% \end{macro}^^A \tud@v@2.05e -% \end{macro}^^A \tud@v@2.05d -% \end{macro}^^A \tud@v@2.05c -% \end{macro}^^A \tud@v@2.05b -% \end{macro}^^A \tud@v@2.05a % \end{macro}^^A \tud@v@2.05 -% \end{macro}^^A \tud@v@2.04e -% \end{macro}^^A \tud@v@2.04d -% \end{macro}^^A \tud@v@2.04c -% \end{macro}^^A \tud@v@2.04b -% \end{macro}^^A \tud@v@2.04a % \end{macro}^^A \tud@v@2.04 -% \end{macro}^^A \tud@v@2.03a % \end{macro}^^A \tud@v@2.03 % \end{macro}^^A \tud@v@2.02 -% \end{macro}^^A \tud@v@2.01b -% \end{macro}^^A \tud@v@2.01a % \end{macro}^^A \tud@v@2.01 % \end{macro}^^A \tud@v@2.00 % \end{macro}^^A \tud@v@first @@ -496,12 +321,16 @@ % \begin{macrocode} \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% } @@ -515,13 +344,7 @@ \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{% %<*class> \ClassWarningNoLine{\TUD@Class@Name}% @@ -535,6 +358,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% } @@ -790,7 +619,7 @@ % Früher musste die Unterstützung für die Schriftauswahl via \pkg{fontspec} % manuell über die folgende Option aktiviert werden. % \begin{macrocode} -\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% @@ -809,7 +638,7 @@ % \end{macrocode} % Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des % Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese -% Option nur beim Laden der Klasse dzw. des Paketes zugelassen. +% Option nur beim Laden der Klasse bzw. des Paketes zugelassen. % \begin{macrocode} %<*class> \AtEndOfClass% @@ -820,7 +649,7 @@ {% \TUD@key@toolate{fontspec}% \if@tud@x@fontspec@requested% - \RequirePackage{fontspec}[2017/01/24]% + \RequirePackage{fontspec} \fi% } % \end{macrocode} @@ -841,11 +670,12 @@ % Um die Höhe von Logos im Fußbereich der \pgs{tudheadings}-Seitenstile % einheitlich festzulegen, gab es bis einschließlich der Version~v2.04 die % Länge \cs{footlogoheight} anstelle der Option \opt{footlogoheight}. Sollte -% der Anwender diese anpassen, wird \cs{tud@dim@footlogoheight} auf diesen Wert -% gesetzt und eine Warnung erzeugt. +% der Anwender die Länge anpassen, wird dies mit \cs{TUD@deprecated@length} an +% der entsprechenden Stelle geprüft und die korrespondierende Option auf +% diesen Wert gesetzt, wobei eine Warnung erzeugt wird. % \begin{macrocode} -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} % \end{macrocode} % \end{length}^^A \footlogoheight % \begin{length}{\pageheadingsvskip} @@ -855,13 +685,14 @@ % Mit diesen Längen konnte der Anwender vor der Version~v2.05 die Überschriften % von Titel, Teilen und Kapiteln vertikal verschieben. Diese Funktionalität % wird seitdem mit den Optionen \opt{headingsvskip} und \opt{pageheadingsvskip} -% abgedeckt. +% abgedeckt. Auch hier wird eine Warnung erzeugt, falls der Anwender diesen +% Wert ändern sollte. % \begin{macrocode} %<*book|report|article> -\newlength\pageheadingsvskip -\setlength\pageheadingsvskip{\maxdimen} -\newlength\headingsvskip -\setlength\headingsvskip{\maxdimen} +\tud@newglue\pageheadingsvskip +\tud@setdim\pageheadingsvskip{\maxdimen} +\tud@newglue\headingsvskip +\tud@setdim\headingsvskip{\maxdimen} %</book|report|article> % \end{macrocode} % \end{length}^^A \headingsvskip @@ -1041,6 +872,7 @@ % \begin{macro}{\tud@ifdin} % \changes{v2.06}{2018/08/02}{neu}^^A % Der Befehl \cs{ifdin} ist für \OpenSans hinfällig. +% \ToDo{ifdin nicht mehr definieren, Alternativ (IfDIN[active][TF])?}[v2.07] % \begin{macrocode} \TUD@deprecated@cs{ifdin}{@secondoftwo} % \end{macrocode} @@ -1060,8 +892,8 @@ \fi% } \if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi % \end{macrocode} % \end{macro}^^A \tud@ifdin @@ -1103,9 +935,9 @@ % % \section{Das Paket \pkg{tudscrcomp} -- Kompatibilität veralteter Klassen} % -% Neben den \TUDScript-Klassen gibt es zahlreiche andere \LaTeX-Umsetzungen des -% \CDs der \TnUD. Um eine Migration von diesen \enquote{veralteten} Klassen -% zu erleichtern, wird das Paket \pkg{tudscrcomp} bereitgestellt. Mit diesem +% Neben den \TUDScript-Klassen gibt es zahlreiche andere \LaTeX-Umsetzungen +% des \TUDCDs. Um eine Migration von diesen \enquote{veralteten} Klassen zu +% erleichtern, wird das Paket \pkg{tudscrcomp} bereitgestellt. Mit diesem % können bei der Verwendung von \TUDScript die meisten Optionen und Befehle % genutzt werden, welche durch die Klasse \cls{tudbook} und teilweise vormals % durch die Klassen die \TUDScript-Klassen in der Version~v1.0 sowie die @@ -1113,27 +945,36 @@ % % \iffalse %<*package&comp> -%<*base> +%<*identify> % \fi % % \subsection{Erkennen der geladenen Klasse} % % Damit je nach geladener Klasse die passenden Kompatibilitätseinstellungen und % -befehle bereitgestellt werden können, wird auf die geladene Klasse geprüft. -% Danach wird das dazu passende Paket geladen. -% \begin{macrocode} -\PassOptionsToPackage{oldcolors}{tudscrcolor} +% \begin{macro}{\tud@comp@on@main@class} +% \begin{macro}{\tud@comp@on@poster@class} +% \begin{macrocode} +\@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]% -}{% - \RequirePackageWithOptions{tudscrcomp-book}[\TUD@Version]% -} + \renewcommand*\tud@comp@on@poster@class{\@firstofone}% +}{}% % \end{macrocode} +% \end{macro}^^A \tud@comp@on@poster@class +% \end{macro}^^A \tud@comp@on@main@class % % \iffalse -%</base> -%<*!base> -%<*body> +%</identify> +%<*option> % \fi % % \subsection{Gemeinsame Optionen und Befehle für alle Klassen} @@ -1141,36 +982,51 @@ % Zunächst werden alle Optionen und Befehle definiert, die unabhängig von der % geladenen Klasse generell bereitgestellt werden. % +% \begin{macrocode} +\PassOptionsToPackage{extended}{tudscrcolor} +% \end{macrocode} +% +% \iffalse +%</option> +%<*body> +% \fi +% % \begin{macro}{\einrichtung} % \begin{macro}{\fachrichtung} % \begin{macro}{\institut} % \begin{macro}{\professur} +% \begin{macro}{\moreauthor} % Es werden Aliasbefehle für die Eingabefelder definiert. % \begin{macrocode} \newcommand*\einrichtung{\faculty} \newcommand*\fachrichtung{\department} \newcommand*\institut{\institute} \newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} % \end{macrocode} +% \end{macro}^^A \moreauthor % \end{macro}^^A \professur % \end{macro}^^A \institut % \end{macro}^^A \fachrichtung % \end{macro}^^A \einrichtung +% \begin{macro}{\tudfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % \begin{macro}{\dinBold} % \changes{v2.05}{2015/07/13}{neu}^^A % \begin{macro}{\dinfamily} % \changes{v2.05}{2015/07/13}{neu}^^A % Für die explizite Schriftauswahl gibt es ebenfalls zwei ältere Befehle. % \begin{macrocode} +\newcommand*\tudfont{\cdfont} \newcommand*\dinBold{\dinbn} \newcommand*\dinfamily{\dinbn} % \end{macrocode} % \end{macro}^^A \dinfamily % \end{macro}^^A \dinBold +% \end{macro}^^A \tudfont % % \iffalse %</body> -%<*book> %<*option> % \fi % @@ -1231,28 +1087,30 @@ %<*body> % \fi % -% \begin{macro}{\moreauthor} +% Die folgenden Makros werden für die Hauptklassen definiert. +% \begin{macrocode} +\tud@comp@on@main@class{% +% \end{macrocode} +% % \begin{macro}{\submitdate} +% \begin{macro}{\submittedon} % \begin{macro}{\supervisorII} % \begin{macro}{\supervisedby} % \begin{macro}{\supervisedIIby} -% \begin{macro}{\submittedon} % Es werden weitere Aliasbefehle für die Eingabefelder der \cls{tudbook}-Klasse % definiert. % \begin{macrocode} -\newcommand*\moreauthor{\authormore} \newcommand*\submitdate{\date} -\newcommand*\supervisorII[1]{\g@addto@macro\@supervisor{\and #1}} +\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*\submittedon[1]{\gdef\datetext{#1}} % \end{macrocode} -% \end{macro}^^A \submittedon % \end{macro}^^A \supervisedIIby % \end{macro}^^A \supervisedby % \end{macro}^^A \supervisorII +% \end{macro}^^A \submittedon % \end{macro}^^A \submitdate -% \end{macro}^^A \moreauthor % \begin{macro}{\dissertation} % Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird % die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen @@ -1265,41 +1123,13 @@ } % \end{macrocode} % \end{macro}^^A \dissertation -% \begin{environment}{theglossary} -% \begin{macro}{\glossaryname} -% \begin{macro}{\glossitem} -% Eine rudimentäre Umgebung für ein Glossar. -% \begin{macrocode} -\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}% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \glossitem -% \end{macro}^^A \glossaryname -% \end{environment}^^A theglossary % \begin{macro}{\chapterpage} % \begin{macro}{\if@tud@comp@chapterpage} % \begin{macro}{\tud@comp@chapterpage@set} % \begin{macro}{\tud@comp@chapterpage@unset} % \begin{macro}{\tud@comp@chapterpage@wrn} +% \begin{macro}{\tud@chapter@pre} +% \begin{macro}{\tud@chapter@app} % Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit. % Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch % die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also @@ -1314,7 +1144,7 @@ % ursprünglichen Zustand geschaltet und der globale Schalter % \cs{if@tud@comp@chapterpage} zurückgesetzt. % \begin{macrocode} -\newif\if@tud@comp@chapterpage +\tud@newif\if@tud@comp@chapterpage \newcommand*\chapterpage{% \global\@tud@comp@chapterpagetrue% \tud@comp@chapterpage@wrn% @@ -1338,39 +1168,85 @@ % \begin{macrocode} \newcommand*\tud@comp@chapterpage@wrn{% \PackageWarning{tudscrcomp}{% - The command \string\chapterpage\space is not\MessageBreak% + 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% } % \end{macrocode} -% \end{macro}^^A \tud@comp@chapterpage@wrn -% \end{macro}^^A \tud@comp@chapterpage@unset -% \end{macro}^^A \tud@comp@chapterpage@set -% \end{macro}^^A \if@tud@comp@chapterpage -% \end{macro}^^A \chapterpage -% \begin{macro}{\tud@chapter@pre} -% \begin{macro}{\tud@chapter@app} % Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. % \begin{macrocode} \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}}% + \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% } % \end{macrocode} % \end{macro}^^A \tud@chapter@app % \end{macro}^^A \tud@chapter@pre +% \end{macro}^^A \tud@comp@chapterpage@wrn +% \end{macro}^^A \tud@comp@chapterpage@unset +% \end{macro}^^A \tud@comp@chapterpage@set +% \end{macro}^^A \if@tud@comp@chapterpage +% \end{macro}^^A \chapterpage +% \begin{environment}{theglossary} +% \begin{macro}{\glossaryname} +% \begin{macro}{\glossitem} +% Eine rudimentäre Umgebung für ein Glossar. +% \begin{macrocode} +\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}% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \glossitem +% \end{macro}^^A \glossaryname +% \end{environment}^^A theglossary +% +% Das waren die Makros für die Hauptklassen. +% \begin{macrocode} +} +% \end{macrocode} % % % \iffalse %</body> -%</book> -%<*poster> %<*option> % \fi % @@ -1379,11 +1255,53 @@ % Die hier bereitgestellten Optionen und Befehle werden durch die Klasse % \cls{tudmathposter} bzw. \cls{tudposter} definiert. % +% \begin{option}{loadpackages} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den +% Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte +% mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß, +% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch wird aus +% Kompatibilitätsgründen diese Option bereitgestellt, um die Pakete ggf. Ende +% der Präambel zu laden. +% \begin{macrocode} +\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}} +} +% \end{macrocode} +% \end{option}^^A loadpackages +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \begin{macrocode} +\tud@comp@on@poster@class{% +\AtEndPreamble{% + \if@tud@comp@loadpackages% + \RequirePackage{calc} + \RequirePackage{textcomp} + \RequirePackage{tabularx} + \fi% +} +} +% \end{macrocode} +% +% \iffalse +%</body> +%<*option> +% \fi +% % \begin{option}{bluebg} % \changes{v2.05}{2016/04/17}{neu}^^A % Mit der Option \opt{bluebg} kann der Hintergrund des Posters in \val{HKS41} % gesetzt werden. % \begin{macrocode} +\tud@comp@on@poster@class{% \TUD@key{bluebg}[true]{% \TUD@set@ifkey{bluebg}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1394,6 +1312,7 @@ \fi% \fi% } +} % \end{macrocode} % \end{option}^^A bluebg % @@ -1402,6 +1321,11 @@ %<*body> % \fi % +% Die folgenden Makros werden für die Posterklasse definiert. +% \begin{macrocode} +\tud@comp@on@poster@class{% +% \end{macrocode} +% % \begin{layerpagestyle}{tudposter} % \changes{v2.05}{2016/07/26}{neu}^^A % Der Seitenstil \pgs{tudposter} wird als Alias für \pgs{empty.tudheadings} @@ -1425,17 +1349,20 @@ % das Makro \cs{tud@split@author@list} um diese Befehle erweitert. % \begin{macrocode} \newrobustcmd*\telefon{\telephone} -\patchcmd{\tud@split@author@list}{telephone}{% - telephone,telefon% -}{}{\tud@patch@wrn{tud@split@author@list}} +\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}} +\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}} +\patchcmd\tud@split@author@list + {emailaddress} + {emailaddress,email} + {}{\tud@patch@wrn{tud@split@author@list}} % \end{macrocode} % \end{macro}^^A \tud@split@author@list % \end{macro}^^A \email @@ -1461,12 +1388,12 @@ % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\drittlogo} % \changes{v2.05}{2016/04/17}{neu}^^A -% Die Makros zur Angabe von Logo-Dateien (\cs{\dots{}logofile}) werden auf die -% passenden \TUDScript-Befehle gelegt. Die Änderung der Makros, welche für die -% Einbindung der Logos verantwortlich sind (\cs{\dots{}logo}), wird allerdings -% nicht unterstützt. +% Die Makros zur Angabe von Logo-Dateien (|\...logofile|) werden auf die +% passenden \TUDScript-Befehle gelegt. Die Änderung der Makros, welche für die +% Einbindung der Logos verantwortlich sind (|\...logo|), wird allerdings nicht +% unterstützt. % \begin{macrocode} -\newcommand*\zweitlogofile[2][]{\headlogo[#1]{#2}} +\newcommand*\zweitlogofile[2][]{\headlogo[{#1}]{#2}} \newcommand*\zweitlogo[1]{% \PackageWarning{tudscrcomp}{% It isn't possible to redefine the definition for\MessageBreak% @@ -1474,7 +1401,7 @@ documentation of \string\headlogo% }% } -\newcommand*\institutslogofile[2][]{\footlogo[#1]{,,,,,,,#2,}} +\newcommand*\institutslogofile[2][]{\footlogo[{#1}]{,,,,,,,#2,}} \newcommand*\institutslogo[1]{% \PackageWarning{tudscrcomp}{% It isn't possible to redefine the definition for\MessageBreak% @@ -1526,7 +1453,7 @@ % zu umgehen. Sei's drum. Für die Umsetzung werden die Basisgliederungsbefehle % geklont und anschließend der gewünschte vertikale Abstand vor der Überschrift % entfernt. -% \ToDo{Klonen Gliederungsebenen über Makro (Markus fragen?!)}[v2.??] +% \ToDo{Klonen Gliederungsebenen über Makro (Markus fragen?!)}[v2.08] % \begin{macrocode} \newcommand*\topsectionnumdepth{\sectionnumdepth} \newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent} @@ -1575,16 +1502,16 @@ % Layout zentriert gesetzt werden. Eine Mischung von unterschiedlichen Stilen % gleichartiger Ebenen ist aus sicht von Typographie und Layout eher fraglich. % \begin{macrocode} -\newcommand*\centersection[2][\@nil]{% +\NewDocumentCommand\centersection{o m}{% \tud@comp@centersection{section}{#1}{#2}% } -\newcommand*\centersubsection[2][\@nil]{% +\NewDocumentCommand\centersubsection{o m}{% \tud@comp@centersection{subsection}{#1}{#2}% } -\newcommand*\topcentersection[2][\@nil]{% +\NewDocumentCommand\topcentersection{o m}{% \tud@comp@centersection{topsection}{#1}{#2}% } -\newcommand*\topcentersubsection[2][\@nil]{% +\NewDocumentCommand\topcentersubsection{o m}{% \tud@comp@centersection{topsubsection}{#1}{#2}% } % \end{macrocode} @@ -1595,11 +1522,11 @@ \newcommand*\tud@comp@centersection[3]{% \tud@cs@store{raggedsection}% \let\raggedsection\centering% - \ifx#2\@nil\relax% + \IfValueTF{#2}{% + \csuse{#1}[{#2}]{#3}% + }{% \csuse{#1}{#3}% - \else% - \csuse{#1}[#2]{#3}% - \fi% + } \tud@cs@restore{raggedsection}% } % \end{macrocode} @@ -1631,49 +1558,125 @@ \setcounter{secnumdepth}{\m@ne} % \end{macrocode} % \end{counter}^^A secnumdepth -% \begin{macro}{\fusszeile} +% \begin{environment}{farbtabellen} % \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\footcolumn} +% \begin{macro}{\if@tud@comp@graytable} % \changes{v2.05}{2016/04/17}{neu}^^A -% Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird -% in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} -% verwendet, so bleibt der bisherige Inhalt erhalten. +% \begin{macro}{\blautabelle} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\grautabelle} +% \changes{v2.05}{2016/04/17}{neu}^^A +% Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle +% für die farbliche Ausprägung der Tabellenzeilen definiert. +% \begin{macrocode} +\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% +}{} +% \end{macrocode} +% \end{macro}^^A \grautabelle +% \end{macro}^^A \blautabelle +% \end{macro}^^A \if@tud@comp@graytable +% \end{environment}^^A farbtabellen +% +% Das waren die Makros für die Posterklassen. % \begin{macrocode} -\newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} -\newcommand*\footcolumn[2]{% - \ifnumber{#1}{% - \ifcase#1\relax% - \footcontent{#2}% - \or% - \footcontent{#2}[*]% - \or% - \footcontent{*}[#2]% - \fi% - }{}% } % \end{macrocode} -% \end{macro}^^A \footcolumn -% \end{macro}^^A \fusszeile % % \iffalse %</body> %<*option> % \fi % -% \begin{option}{tudmathposterfoot} +% Zuletzt wir die Option für das Laden von \pkg{colortbl} durchgereicht. +% \begin{macrocode} +\tud@comp@on@poster@class{% +\PassOptionsToPackage{table}{xcolor} +} +% \end{macrocode} +% +% \begin{option}{cropmargin} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% \begin{macro}{\tud@cropmargin@set} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% \begin{macro}{\schnittrand} +% \changes{v2.05}{2016/04/17}{neu}^^A +% Nun geht es an das Makro \cs{schnittrand}. Zur Intension dieses Befehls gab +% es im \GitHubRepo(tud-cd/tud-cd)<6> bereits eine angeregte Diskussion. +% \ToDo{Für \cls{tudscrposter} bzw alle Klassen übernehmen?}[v2.07] +% \begin{macrocode} +\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% +} +% \end{macrocode} +% Da die Option direkt auf das Seitenlayout zugreift und mehrmalige Aufrufe +% sich beeinflussen würden, werden diese zum Ende der Präambel unterbunden. +% \begin{macrocode} +\AtEndPreamble{\TUD@key@toolate{cropmargin}}% +% \end{macrocode} +% Nachdem die passende Option definiert wurde, wird noch \cs{schnittrand} +% ausgewertet und verarbeitet. Dies geschieht zum spätestmöglichen Zeitpunkt, +% damit dieser Befehl irgendwo innerhalb der Präambel definiert werden kann. +% \begin{macrocode} +\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% + }% +} +} +% \end{macrocode} +% \end{macro}^^A \schnittrand +% \end{macro}^^A \tud@cropmargin@set +% \end{option}^^A cropmargin +% +% \begin{option}{tudmathfoot} % \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\if@tud@mathposterfoot} +% \begin{option}{tudmathposterfoot} +% \begin{option}{cdfoot} +% \begin{macro}{\if@tud@mathfoot} % \changes{v2.05}{2016/04/17}{neu}^^A -% Mit der Option \opt{tudmathposterfoot} kann die Darstellung des Fußes im -% Poster angepasst werden. Die Klasse \cls{tudmathposter} setzt den Fußbereich -% in zwei asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen -% zentriert und symmetrisch zum Satzspiegel platzieren. -% \begin{macrocode} -\newif\if@tud@mathposterfoot -\TUD@key{tudmathposterfoot}[true]{% - \TUD@set@ifkey{tudmathposterfoot}{@tud@mathposterfoot}{#1}% +% Mit der Option \opt{tudmathfoot} kann die Darstellung des Fußes im Poster +% angepasst werden. Die Klasse \cls{tudmathposter} setzt den Fußbereich in zwei +% asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen zentriert +% und symmetrisch zum Satzspiegel platzieren. +% \begin{macrocode} +\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@mathposterfoot% + \if@tud@mathfoot% \footcontent[\small]{% \tud@footcontent@@left{}% }[% @@ -1688,197 +1691,85 @@ \fi% \fi% } +\TUD@key{tudmathposterfoot}[true]{\TUDoptions{tudmathfoot=#1}}% % \end{macrocode} % Die Option \opt{cdfoot} wird um Werte für die Einstellung des Posterfußes % erweitert. % \begin{macrocode} -\TUD@key{cdfoot}[true]{% +\TUD@key{cdfoot}{% \TUD@set@numkey{cdfoot}{@tempa}{% - {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{poster}{0},% - {tudmathposter}{1},{tudmathposterfoot}{1},{mathposter}{1},{tudposter}{1}% + {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{tudmathposterfoot=false}% + \TUDoptions{tudmathfoot=false}% \else% tudmathposter - \TUDoptions{tudmathposterfoot=true}% + \TUDoptions{tudmathfoot=true}% \fi% \fi% } +} % \end{macrocode} -% \end{macro}^^A \if@tud@mathposterfoot +% \end{macro}^^A \if@tud@mathfoot +% \end{option}^^A cdfoot % \end{option}^^A tudmathposterfoot +% \end{option}^^A tudmathfoot % % \iffalse %</option> %<*body> % \fi % -% \begin{macro}{\tud@footcontent@use} -% \begin{macro}{\tud@comp@mathposterwidth} +% \begin{macro}{\fusszeile} % \changes{v2.05}{2016/04/17}{neu}^^A -% Um die Option \opt{tudmathposterfoot} umzusetzen, muss für die Ausgabe des +% \begin{macro}{\footcolumn} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\tud@footcontent@use} +% Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird +% in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} +% verwendet, so bleibt der bisherige Inhalt erhalten. +% \begin{macrocode} +\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% + }{}% +} +% \end{macrocode} +% Um die Option \opt{tudmathfoot} umzusetzen, muss für die Ausgabe des % Fußbereichs eine Anpassung des Makros \cs{tud@footcontent@use} erfolgen. % Normalerweise wird der Fußbereich in zwei gleichbreite Spalten über die % komplette Textbreite aufgeteilt. Dahingegen werden durch die Klasse % \cls{tudmathposter} beide Fußspalten nicht über den kompletten Textbereich % verteilt, sondern es verbleibt etwas ungenutzter Platz rechts davon, welcher % für ein etwaiges Logo verwendet wird. Dieses Verhalten kann über die Option -% \opt{tudmathposterfoot} aktiviert werden und wird hier nachgebildet. +% \opt{tudmathfoot} aktiviert werden und wird hier nachgebildet. % \begin{macrocode} -\newcommand*\tud@comp@mathposterwidth{4.2\tud@len@widemargin} -\patchcmd{\tud@footcontent@use}{% - \hsize=\dimexpr#2-\@tempdimc\relax% +\patchcmd\tud@footcontent@use{% + \tud@footcontent@@use{\tud@res@glue}% }{% - \if@tud@mathposterfoot% - \hsize=\dimexpr\tud@comp@mathposterwidth\relax% + \if@tud@mathfoot% + \tud@footcontent@@use{\glueexpr\tud@dim@widemargin*21/5\relax}% \else% - \hsize=\dimexpr#2-\@tempdimc\relax% + \tud@footcontent@@use{\@tud@res@glue}% \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}} -% \end{macrocode} -% \end{macro}^^A \tud@comp@mathposterwidth -% \end{macro}^^A \tud@footcontent@use -% \begin{environment}{figurehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{environment}{tablehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Weiterhin stellt die Klasse \cls{tudmathposter} zwei Umgebungen bereit, mit -% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren -% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz -% kommen. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] -% \begin{macrocode} -\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% -} -% \end{macrocode} -% \end{environment}^^A tablehere -% \end{environment}^^A figurehere -% \begin{environment}{farbtabellen} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\if@tud@comp@graytable} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\blautabelle} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\grautabelle} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle -% für die farbliche Ausprägung der Tabellenzeilen definiert. -% \begin{macrocode} -\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% -}{} -% \end{macrocode} -% \end{macro}^^A \grautabelle -% \end{macro}^^A \blautabelle -% \end{macro}^^A \if@tud@comp@graytable -% \end{environment}^^A farbtabellen -% \begin{macro}{\schnittrand} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Zu guter Letzt geht es an das Makro \cs{schnittrand}. Zur Intension dieses -% Befehls gab es auf \hrfn{https://github.com/tud-cd/tud-cd/issues/6}{GitHub} -% bereits eine angeregte Diskussion. Deshalb wird das Makro als Wertzuweisung -% für die Option \opt{bleedmargin} genutzt. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] -% \begin{macrocode} -\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.% - }% - }% -}% -% \end{macrocode} -% \end{macro}^^A \schnittrand -% -% Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den -% Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte -% mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß, -% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch werden -% aus Kompatibilitätsgründen einige Pakete geladen, um bestehende Dokumente -% trotz alledem nach der Portierung kompiliert werden können. Um den Nutzer die -% Möglichkeit zu geben, die Pakete selber ggf. mit Optionen zu laden, erfolgt -% die Anforderung der Pakete erst am ende der Präambel. -% \begin{macrocode} -\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]% } % \end{macrocode} +% \end{macro}^^A \tud@footcontent@use +% \end{macro}^^A \footcolumn +% \end{macro}^^A \fusszeile % % \iffalse %</body> -%</poster> -%</!base> %</package&comp> % \fi % @@ -1888,7 +1779,7 @@ % Bereitstellung der Schriften für veraltete Klassen}^^A % % Das Paket \pkg{fix-tudscrfonts} bietet die Schriftfamilien des \TUDCDs im -% \TUDScript-Stil für die \enquote{veralteten} Klassen von Klaus Bergmann sowie +% \TUDScript-Stil für die \enquote{veralteten} Klassen von Klaus~Bergmann sowie % die Posterklassen an. % % \iffalse @@ -1901,22 +1792,24 @@ % \begin{macrocode} \AtEndPreamble{% \tud@fixfonts@class@check% - \RequirePackage{tudscrfonts}[\TUD@Version]% + \RequirePackage{tudscrfonts}[% +%!TUD@Version + ]% } % \end{macrocode} % % \subsection{Verwendbarkeit und Ladezeitpunkt von \pkg{fix-tudscrfonts}} % % Da das Paket eine Vielzahl an Anpassungen der Schriftbefehle vornimmt sowie -% die Definition von \LaTeXe-Standardbefehlen bereits vor dem Laden der -% eigentlichen Dokumentklasse sichern muss, kann dieses Paket ausschließlich -% vor \cs{documentclass} mit \cs{RequirePackage} geladen werden. +% die Definition von \LaTeX-Standardbefehlen bereits vor dem Laden der +% eigentlichen Klasse sichern muss, kann dieses Paket ausschließlich vor +% \cs{documentclass} mit \cs{RequirePackage} geladen werden. % % \begin{macro}{\tud@fixfonts@class@check} % \changes{v2.05}{2016/01/02}{neu}^^A % Dieser Befehl wird nach dem Laden einer unterstützten Klasse zu \cs{relax} -% gesetzt. Sollte das Paket jedoch erst nach einer Dokumentklasse geladen -% werden, so wird ein Fehler ausgegeben. +% gesetzt. Sollte das Paket jedoch erst nach einer Klasse geladen werden, so +% wird ein Fehler ausgegeben. % \begin{macrocode} \ifx\usepackage\RequirePackage \newcommand*\tud@fixfonts@class@check{% @@ -1926,8 +1819,8 @@ }% }% % \end{macrocode} -% Wird das Paket mit einer nicht unterstützten Dokumentklasse verwendet, wird -% ebenfalls ein Fehler ausgegeben. +% Wird das Paket mit einer nicht unterstützten Klasse verwendet, wird ebenfalls +% ein Fehler ausgegeben. % \begin{macrocode} \else \newcommand*\tud@fixfonts@class@check{% @@ -1999,6 +1892,8 @@ \tud@cs@store{shapedefault}% \tud@cs@store{normalfont}% \let\normalfont\relax% + \let\abovecaptionskip\relax% + \let\belowcaptionskip\relax% \PassOptionsToClass{serifmath}{#1}% }% \AfterClass{#1}{% @@ -2019,6 +1914,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}% @@ -2151,29 +2050,41 @@ % zwingend in \DIN gesetzt werden. % \begin{macrocode} \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% @@ -2208,6 +2119,7 @@ % Es werden einige Einstellungen für die Überschriften angepasst. % \begin{macrocode} \tud@fixfonts@class@adapt{tudmathposter}{% + \ifunivers\PassOptionsToPackage{cdoldfont}{tudscrfonts}\fi% \def\raggedtitle{\tud@raggedright}% \renewcommand*\raggedpart{\tud@raggedright}% \renewcommand*\raggedsection{\tud@raggedright}% @@ -2235,25 +2147,25 @@ \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}% + \def\sectionfont{\tud@sec@fontface\LARGE}% + \def\subsectionfont{\tud@sec@fontface\large}% % \end{macrocode} % Für die Schriftstärke in der Kopfzeile muss der Seitenstil angepasst und % anschließend nochmals akiviert werden. % \begin{macrocode} - \patchcmd{\ps@tudposter}{\textbf{\@einrichtung}}{% - \textbf{\fontseries{b}\selectfont\@einrichtung}% + \patchcmd\ps@tudposter{% + \textbf{\@einrichtung}% + }{% + {\fontseries{b}\selectfont\@einrichtung}% }{}{\tud@patch@wrn{ps@tudposter}}% \pagestyle{tudposter}% } @@ -2267,23 +2179,21 @@ % \end{KOMAfont}^^A title % % \begin{macro}{\tud@x@tudfonts@prevent} -% \changes{v2.06}{2018/02/14}{% -% neu, nur einmaliges Ausführen des Fixes für \pkg{tudfonts}% -% }^^A +% \changes{v2.06}{2018/02/14}{neu}^^A % \begin{macro}{\if@tudfonts@nodin} % \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % Die Klasse \cls{tudmathposter} lädt für die Einstellungen der Schriften das % Paket \pkg{tudfonts}. Wenn \pkg{tudscrfonts} zum Einsatz kommen soll, ist das % unerwünscht, weshalb das Laden hiermit unterbunden wird. +% \ToDo{opensans nur durch Dokumentklasse nicht laden}[v2.07] % \begin{macrocode} \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} % \end{macrocode} % \end{macro}^^A \if@tudfonts@nodin % \end{macro}^^A \tud@x@tudfonts@prevent @@ -2293,6 +2203,6 @@ %</package&fixfonts> % \fi % -% \Finale +% \PrintBackMatter % \endinput |