diff options
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-misc.dtx')
-rw-r--r-- | macros/latex/contrib/tudscr/source/tudscr-misc.dtx | 715 |
1 files changed, 715 insertions, 0 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-misc.dtx b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx new file mode 100644 index 0000000000..72beb47c8a --- /dev/null +++ b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx @@ -0,0 +1,715 @@ +% \CheckSum{324} +% \iffalse meta-comment +% +% TUD-Script -- Corporate Design of Technische Universität Dresden +% ---------------------------------------------------------------------------- +% +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019 +% +% ---------------------------------------------------------------------------- +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, version 1.3c of the license. The latest +% version of this license is in http://www.latex-project.org/lppl.txt and +% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +% or later and of this work. This work has the LPPL maintenance status +% "author-maintained". The current maintainer and author of this work +% is Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +% in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% \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-misc.dtx +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-misc.dtx}[2019/08/20 v2.06c TUD-Script\space% + (miscellaneous)% +] +% +% \iffalse +\documentclass[english,ngerman,xindy]{tudscrdoc} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} +\usepackage{babel} +\usepackage{tudscrfonts} +\KOMAoptions{parskip=half-} +\usepackage{bookmark} +\usepackage[babel]{microtype} + +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-misc.dtx} +\title{\file{\filename}} +\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} +\date{\fileversion\nobreakspace(\filedate)} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</dtx> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A +% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A +% +% \section{Verschiedenes für das \TUDScript-Bundle} +% +% Alles, wofür sich eine separate Datei nicht lohnt, landet hier. +% +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} +% +% \iffalse +%<*class&option> +% \fi +% +% \subsection{Sprungmarken} +% +% \begin{option}{tudbookmarks} +% \begin{macro}{\if@tud@bookmarks} +% Wird das Paket \pkg{hyperref} geladen, so kann die Option \opt{tudbookmarks} +% genutzt werden, um zu steuern, ob für Titel und Inhaltsverzeichnis +% automatisch ein Eintrag für die Sprungmarken erzeugt werden soll. +% \begin{macrocode} +\newif\if@tud@bookmarks +\TUD@key{tudbookmarks}[true]{% + \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@bookmarks +% \end{option}^^A tudbookmarks +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% \begin{macro}{\tudbookmark} +% \begin{macro}{\tud@x@hyperref@realfootnotes} +% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann \cs{tudbookmark} +% auch vom Anwender genutzt werden, um weitere Lesezeichen abhängig von der +% Option \opt{tudbookmarks} manuell zu erzeugen. +% +% Für die Titelseite werden~-- wie auch durch das Paket \pkg{hyperref}~-- die +% Fußnoten mit dem Befehl \cs{tud@x@hyperref@realfootnotes} auf den originalen +% Zustand zurückgesetzt. +% \begin{macrocode} +\newcommand*\tudbookmark[1][]{\@gobbletwo} +\newcommand*\tud@x@hyperref@realfootnotes{} +\AfterPackage{hyperref}{% + \renewcommand*\tudbookmark[3][]{% + \relax% + \if@tud@bookmarks% + \phantomsection% + \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \fi% + }% + \renewcommand*\tud@x@hyperref@realfootnotes{% + \let\Hy@saved@footnotemark\@footnotemark% + \let\Hy@saved@footnotetext\@footnotetext% + \let\@footnotemark\H@@footnotemark% + \let\@footnotetext\H@@footnotetext% + }% + \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@hyperref@realfootnotes +% \end{macro}^^A \tudbookmark +% \begin{macro}{\tud@x@bookmark@startatroot} +% \changes{v2.05}{2015/08/05}{neu}^^A +% Wird das Paket \pkg{bookmark} geladen, können die erzeugten Outlines gezielt +% auf der obersten Ebene erzeugt werden. +% \begin{macrocode} +\newcommand*\tud@x@bookmark@startatroot{\relax} +\AfterPackage{bookmark}{% + \renewcommand*\tud@x@bookmark@startatroot{% + \if@tud@bookmarks\bookmarksetup{startatroot}\fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@bookmark@startatroot +% \begin{environment}{titlepage} +% \changes{v2.05}{2015/08/05}{neu}^^A +% \begin{macro}{\@maketitle} +% \changes{v2.05}{2015/08/05}{neu}^^A +% \begin{macro}{\tud@maketitle@inpage} +% \changes{v2.05}{2015/08/05}{neu}^^A +% Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und +% Titelseite PDF"=Lesezeichen bzw. Outline-Einträge erzeugt. +% \begin{macrocode} +%<*book|report|article> +\apptocmd{\titlepage}{% + \tud@x@bookmark@startatroot% + \@tud@res@swafalse% + \if@tud@coverpage\@tud@res@swatrue\fi% + \if@titlepageiscoverpage\@tud@res@swatrue\fi% + \if@tud@res@swa% + \tudbookmark[% +%<book|report> 0% +%<article> 1% + ]{\coverpagename}{cover}% + \else% + \tudbookmark[% +%<book|report> 0% +%<article> 1% + ]{\titlepagename}{title}% + \fi% +}{}{\tud@patch@wrn{titlepage}} +%</book|report|article> +% \end{macrocode} +% Dies geschieht außerdem auch für die Titelköpfe. +% \begin{macrocode} +\pretocmd{\tud@maketitle@inpage}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% +%<book|report> 0% +%<article|poster> 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{tud@maketitle@inpage}} +\pretocmd{\@maketitle}{% + \tud@x@bookmark@startatroot% + \tudbookmark[% +%<book|report> 0% +%<article|poster> 1% + ]{\titlename}{title}% +}{}{\tud@patch@wrn{@maketitle}} +% \end{macrocode} +% \end{macro}^^A \tud@maketitle@inpage +% \end{macro}^^A \@maketitle +% \end{environment}^^A titlepage +% \begin{macro}{\tableofcontents} +% \begin{macro}{\listoffigures} +% \begin{macro}{\listoftables} +% Für die Verzeichnisse geschieht dies auch. Für das Inhaltsverzeichnis ist +% hierfür etwas mehr Aufwand notwendig. Für dieses wird im Normalfall keine +% PDF-Outline erzeugt. Deshalb ist hier ein wenig Trickserei notwendig, um zwar +% einen Outline-Eintrag für das Inhaltsverzeichnis zu erzeugen, dieses dabei +% aber nicht in sich selbst einzutragen. +% \begin{macrocode} +\BeforeTOCHead[toc]{% + \tud@x@bookmark@startatroot% + \let\@tempc\relax% + \iftocfeature{toc}{totoc}{}{% + \if@tud@bookmarks% + \setuptoc{toc}{totoc}% + \tud@cs@store{addtocontents}% + \def\@tempc{% + \unsettoc{toc}{totoc}% + \tud@cs@restore{addtocontents}% + }% + \let\addtocontents\@gobbletwo% + \fi% + }% +} +\AfterTOCHead[toc]{\@tempc} +\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot} +\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot} +% \end{macrocode} +% \end{macro}^^A \listoftables +% \end{macro}^^A \listoffigures +% \end{macro}^^A \tableofcontents +% +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \subsection{Fußnoten in Überschriften} +% +% Eigentlich sollte die Option \opt{footnotes}|=|\val{symbolheadings} es +% ermöglichen, Fußnoten mit Symbolen in Überschriften zu verwenden. Umgesetzt +% werden sollte dies mit dem Paket \pkg{footmisc}. Da dieses aber mit +% Inkompatibilitäten zu \pkg{hyperref} und \KOMAScript{} aufwartet, wird darauf +% leider verzichtet. +%^^A% \begin{option}{footnotes} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{macro}{\if@tud@symbolheadings} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{macro}{\tud@sec@note} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% \begin{counter}{symbolheadings} +%^^A% \changes{v2.02}{2014/06/27}{neu}^^A +%^^A% Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel +%^^A% \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob +%^^A% in den Überschriften Symbole für die Fußnoten anstelle von Zahlen +%^^A% verwendet werden sollen. +%^^A% \begin{macrocode} +%^^A\newif\if@tud@symbolheadings +%^^A\TUD@key{footnotes}{% +%^^A \TUD@set@numkey{footnotes}{@tempa}{% +%^^A {nosymbolheadings}{0},{numberheadings}{0},% +%^^A {symbolheadings}{1}% +%^^A }{#1}% +%^^A \ifx\FamilyKeyState\FamilyKeyStateProcessed% +%^^A \ifcase\@tempa\relax% nosymbolheadings +%^^A \@tud@symbolheadingsfalse% +%^^A \or% symbolheadings +%^^A \@tud@symbolheadingstrue% +%^^A \fi% +%^^A \fi% +%^^A} +%^^A% \end{macrocode} +%^^A% Mit \cs{tud@sec@note} wird die Option \opt{footnotes=symbolheadings} +%^^A% umgesetzt. Hierfür wird das Paket \pkg{footmisc} benötigt. +%^^A% \begin{macrocode} +%^^A\newcommand*\tud@sec@note[1]{% +%^^A \ClassWarning{\TUD@Class@Name}{% +%^^A You have to load package `footmisc' with\MessageBreak% +%^^A option `stable' in order to use\MessageBreak% +%^^A footnotes with symbols in headings% +%^^A }% +%^^A} +%^^A\AfterPackage{footmisc}{% +%^^A \@ifpackagewith{footmisc}{stable}{% +%^^A \renewcommand*\tud@sec@note[1]{% +%^^A \begingroup% +%^^A \if@tud@symbolheadings% +%^^A \let\c@footnote\c@symbolheadings% +%^^A \def\thefootnote{\fnsymbol{symbolheadings}}% +%^^A \fi% +%^^A \footnote{#1}% +%^^A \endgroup% +%^^A }% +%^^A }{}% +%^^A} +%^^A% \end{macrocode} +%^^A% Bei aktivierter Option \opt{footnotes}|=|\val{symbolheadings} wird +%^^A% dieser Zähler für die Symboleauswahl von Fußnoten in Überschirften +%^^A% inkrementiert. +%^^A% \begin{macrocode} +%^^A\AtEndOfClass{% +%^^A%<book|report> \newcounter{symbolheadings}[chapter] +%^^A%<article|poster> \newcounter{symbolheadings} +%^^A} +%^^A% \end{macrocode} +%^^A% \end{counter}^^A symbolheadings +%^^A% \end{macro}^^A \tud@sec@note +%^^A% \end{macro}^^A \if@tud@symbolheadings +%^^A% \end{option}^^A footnotes +% +% \subsection{Papierformat und Schriftgröße} +% +% Insbesondere für Poster aber auch für alle anderen \TUDScript-Klassen wird +% überprüft, ob nach einer Änderung des Standardpapierformates auch die +% Schriftgröße durch den Anwender angepasst wurde. Diese wird jedoch nicht auf +% Plausibilität geprüft, da der Aufwand hierfür relativ hoch wäre. Vielmehr +% wird davon ausgegangen, dass die explizite Angabe der Schriftgröße bewusst +% und dem Papierformat sowie den verwendeten Textspalten entsprechend erfolgt. +% +% \begin{macro}{\tud@x@scr@checkoptions} +% \changes{v2.06}{2018/07/31}{neu}^^A +% \begin{macro}{\tud@x@scr@pt} +% \changes{v2.06}{2018/07/31}{neu}^^A +% Das Makro \cs{tud@x@scr@checkoptions} wird mit \cs{DeclareOption*} für alle +% Optionen aufgerufen, welche kein Mitglied der Familie~\val{TUD} sind. Damit +% kann auf nicht definierte Schlüssel reagiert werden. Anschließend werden diese +% an die zugrundeliegende \KOMAScript-Klasse weitergereicht. +% \begin{macrocode} +\newcommand*\tud@x@scr@checkoptions{% + \expandafter\tud@x@scr@pt\CurrentOption pt\@nil% + \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}% +} +% \end{macrocode} +% Wird die Schriftgröße im veralteten Format \val{\dots pt} übergeben, so wird +% der Schalter \cs{if@tud@x@scr@fontsize@set} auf \val{true} gesetzt. +% \begin{macrocode} +\newcommand*\tud@x@scr@pt{} +\def\tud@x@scr@pt #1pt#2\@nil{% + \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@scr@pt +% \end{macro}^^A \tud@x@scr@checkoptions +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% Wurde das Papierformat jedoch nicht die Schriftgröße geändert, wird eine +% Warnung erzeugt. +% \begin{macrocode} +\AtBeginDocument{% + \if@tud@x@scr@fontsize@set\else% + \@tud@res@swafalse% + \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \if@tud@res@swa% + \ClassWarningNoLine{\TUD@Class@Name}{% + You've set a layout size, which is different from\MessageBreak% + default (paper=a4, paper=portrait). Therefore you\MessageBreak% + should additionally specify an explicit font size. \MessageBreak% + See the manual for further information% + }% + \fi% + \fi% +} +% \end{macrocode} +% +% \iffalse +%</class&body> +%<*class&!inherit|package&fonts> +%<*option> +% \fi +% +% \subsection{Sukkzessives Abarbeiten von Optionen im Dokument} +% +% Werden mit \cs{TUDoptions} nach \cs{begin\{document\}} mehrere Layoutoptionen +% gleichzeitig angegeben, muss dafür Sorge getragen werden, dass diese in der +% korrekten Reihenfolge abgearbeitet werden. +% +% Das Makro \cs{TUD@SpecialOptionAtDocument} kann innerhalb von \cs{TUD@key} +% verwendet werden, um einen im obligatorischen Argument angegebenen Schalter +% zu aktivieren. Dabei wird über \cs{tud@atdocument@hook} garantiert, dass der +% Befehl \cs{tud@atdocument@process}, welcher für die Abarbeitung der einzelnen +% Makros in der richtigen Reihenfolge verantwortlich ist, lediglich einmal über +% \cs{AtEndOfFamilyOptions*} ausgeführt wird. +% +% \begin{macro}{\TUD@SpecialOptionAtDocument} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\tud@atdocument@hook} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macrocode} +\newcommand*\tud@atdocument@hook{} +\let\tud@atdocument@hook\relax +\newcommand*\TUD@SpecialOptionAtDocument[1]{} +\AfterEndPreamble{% + \renewcommand*\TUD@SpecialOptionAtDocument[1]{% + \ifx\tud@atdocument@hook\relax% + \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}% + \AtEndOfFamilyOptions*{% + \tud@atdocument@hook% + \tud@atdocument@process% + }% + \fi% + \gappto\tud@atdocument@hook{\global\booltrue{@#1}}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@atdocument@hook +% \end{macro}^^A \TUD@SpecialOptionAtDocument +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \begin{macro}{\tud@atdocument@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@font@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@math@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@font@skip@set} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@x@scr@headings@reset} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@cd@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% \begin{macro}{\if@tud@cdgeometry@process} +% \changes{v2.05}{2016/06/14}{neu}^^A +% Das Makro \cs{tud@atdocument@process} wird im Dokument ausgeführt, wenn +% mindestens eine Option gesetzt wurde, welche \cs{TUD@SpecialOptionAtDocument} +% verwendet. Je nachdem, welche Schalter insgesamt aktiviert wurden, werden die +% dazugehörigen Befehle für die Einstellungen von Schriften, Layout und/oder +% Satzspiegel in der richtigen Reihenfolge ausgeführt. +% \begin{macrocode} +\newif\if@tud@font@set +\newif\if@tud@math@set +\newif\if@tud@font@skip@set +%<*class> +\newif\if@tud@x@scr@headings@reset +\newif\if@tud@cd@process +\newif\if@tud@cdgeometry@process +%</class> +\newcommand*\tud@atdocument@process{% + \if@tud@font@set% + \tud@font@set% + \global\@tud@font@setfalse% + \global\@tud@font@skip@setfalse% +%<class> \global\@tud@cd@processfalse% + \fi% + \if@tud@font@skip@set% + \tud@font@skip@set% + \global\@tud@font@skip@setfalse% + \fi% + \if@tud@math@set% + \tud@math@set% + \global\@tud@math@setfalse% + \fi% +%<*class> + \if@tud@x@scr@headings@reset% + \tud@x@scr@headings@reset% + \global\@tud@x@scr@headings@resetfalse% + \global\@tud@cd@processfalse% + \fi% + \if@tud@cd@process% + \tud@cd@process% + \global\@tud@cd@processfalse% + \fi% + \if@tud@cdgeometry@process% + \tud@cdgeometry@process% + \global\@tud@cdgeometry@processfalse% + \fi% +%</class> +} +% \end{macrocode} +% \end{macro}^^A \if@tud@cdgeometry@process +% \end{macro}^^A \if@tud@cd@process +% \end{macro}^^A \if@tud@x@scr@headings@reset +% \end{macro}^^A \if@tud@font@skip@set +% \end{macro}^^A \if@tud@math@set +% \end{macro}^^A \if@tud@font@set +% \end{macro}^^A \tud@atdocument@process +% +% \iffalse +%</body> +%</class&!inherit|package&fonts> +%<*execute> +%<*class&!inherit|package&fonts> +% \fi +% +% \subsection{Versionsabhängige Voreinstellungen} +% +% Voreinstellungen von neu eingeführten Optionen, welche die resultierende +% Ausgabe entscheidend verändern könnten, werden hier versionsabhängig gesetzt. +% Hierfür wird der Schlüssel \opt{tudscrver} des Mitglieds \val{.comp} vor +% allen anderen Schlüsseln ausgewertet. Danach kann mit \cs{tud@if@v@lower} auf +% die gewählte Kompatibilitäsversion getestet werden. +% \begin{macrocode} +\DeclareOption*{} +\FamilyProcessOptions[.comp]{TUD}\relax +% \end{macrocode} +% Ab der \TUDScript-Version~v2.05 werden einige vertikale Abstände abhängig von +% der Schriftgröße definiert. Sollte eine frühere Kompatibilitätseinstellung +% angegeben worden sein, wird dieses verhalten deaktiviert. +% \begin{macrocode} +\tud@if@v@lower{2.05}{% + \TUD@key@preset{relspacing}{false}% +}{% + \TUD@key@preset{relspacing}{true}% +} +% \end{macrocode} +% Ab \TUDScript-Version~v2.06 werden die verwendeten Schriften auf \OpenSans +% gesetzt, für die Komptibilität zu vorherigen Versionen auf \Univers und \DIN. +% \begin{macrocode} +\tud@if@v@lower{2.06}{% +%<!(class&poster)> \TUD@key@preset{cdoldfont}{true}% +%<class&poster> \TUD@key@preset{cdoldfont}{ultrabold}% + \TUD@key@preset{ttfont}{lmodern}% +%<class> \TUD@key@preset{headings}{light}% +}{% +%<!(class&poster)> \TUD@key@preset{cdfont}{true}% +%<class&poster> \TUD@key@preset{cdfont}{ultrabold}% + \TUD@key@preset{ttfont}{roboto}% +%<class> \TUD@key@preset{headings}{heavy}% +} +% \end{macrocode} +% +% \iffalse +%</class&!inherit|package&fonts> +% \fi +% +% \subsection{Durchreichen von Optionen und Standardoptionen} +% +% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die +% genutzte \TUDScript-Elternklasse. Für Klassen wird vor dem Durchreichen noch +% geprüft, ob ein spezielles Papierformat angegeben wurde. +% \begin{macrocode} +%<*package> +%<*fonts> +\DeclareOption*{\KOMAoptions{\CurrentOption}} +%</fonts> +%<*fixfonts> +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}} +%</fixfonts> +%<*comp> +\DeclareOption*{\TUDoptions{\CurrentOption}} +%</comp> +%</package> +%<*class> +%<*!inherit> +\DeclareOption*{\tud@x@scr@checkoptions} +%</!inherit> +%<*inherit> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}} +%</inherit> +%</class> +% \end{macrocode} +% Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} +% werden die Farben aktiviert. +% \begin{macrocode} +%<*package&tutorial> +\KOMAoptions{headings=small} +\TUDoptions{cdfoot=true} +%</package&tutorial> +\TUDExecuteOptions{% +%<*package> +%<*fixfonts> + headings=heavy% +%</fixfonts> +%<*tutorial> + ToDo=true% +%</tutorial> +%</package> +%<*class&!inherit> +%<*book|report|article> + cd=true,tudbookmarks=true% +%</book|report|article> +%<*poster> + cd=bicolor,tudbookmarks=false% +%</poster> +%</class&!inherit> +} +\TUDProcessOptions\relax +% \end{macrocode} +% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird +% geladen. +% \begin{macrocode} +%<*class&!inherit> +\LoadClass{\TUD@Class@KOMA}[2018/03/30] +%</class&!inherit> +%<*class&inherit> +%<manual>\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent} +\LoadClass{\TUD@Class@Parent} +%</class&inherit> +% \end{macrocode} +% +% \iffalse +%<*class&!inherit|package&fonts> +% \fi +% +% \subsection{Optionen ohne späte Wahlmöglichkeit} +% +% Einige Optionen können nur zum Zeitpunkt des Ladens einer Klasse oder eines +% Paketes respektive in der Präambel gesetzt werden. Diese müssen \emph{nach} +% \cs{TUDProcessOptions} mit \cs{TUD@key@toolate} redefiniert werden. +% +% \begin{macro}{\TUD@key@toolate} +% \changes{v2.06c}{2019/08/20}{neu}^^A +% Dieser Befehl definiert eine Fehlermeldung für Schlüssel respektive Optionen, +% die zu spät verwendet wurden, wobei er innerhalb der Makros \cs{AtEndOfClass}, +% \cs{AtEndOfClass}, \cs{AtEndPreamble} etc. genutzt werden sollte. Wird dieser +% noch im Kontext von Klasse oder Paket (\verb=\@currname.\@currext-h@@k=) +% verwendet, wird gemeldet, dass der Schlüssel allein beim Laden der Klasse +% respektive des Paketes genutzt werden darf. Andernfalls wird die zwingende +% Verwendung in der Präambel angemerkt. +% \begin{macrocode} +\newcommand*\TUD@key@toolate[1]{% + \csedef{tud@key@#1@error}{% +%<*class> + \noexpand\ClassError{\noexpand\TUD@Class@Name}% +%</class> +%<*package&fonts> + \noexpand\PackageError{tudscrfonts}% +%</package&fonts> + {Option `#1' too late}{% + Option `#1' can only be set\space% + \ifcsname \@currname.\@currext-h@@k\endcsname% + as optional \MessageBreak argument while loading\space% +%<*class> + class `\noexpand\TUD@Class@Name'% +%</class> +%<*package&fonts> + package `tudscrfonts'% +%</package&fonts> + \else% + in the preamble + \fi% + \MessageBreak but you have tried to set it up later.% + }% + }% + \TUD@key{#1}[]% + {% + \csuse{tud@key@#1@error} + \FamilyKeyStateProcessed% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@key@toolate +% +% +% \iffalse +%</class&!inherit|package&fonts> +%</execute> +%<*body> +% \fi +% +% \subsection{Anpassungen für das Paket \pkg{textcase}} +% +% \begin{macro}{\@uclcnotmath} +% \begin{macro}{\tud@x@textcase@uclcnotmath} +% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im +% Argument des Befehls \cs{MakeTextUppercase}}^^A +% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls +% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A +% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln +% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket +% \pkg{textcase} angepasst. +% \begin{macrocode} +\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} +% \end{macrocode} +% \end{macro}^^A \tud@x@textcase@uclcnotmath +% \end{macro}^^A \@uclcnotmath +% +% \iffalse +%</body> +% \fi +% +% \Finale +% +\endinput |