summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx')
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx1371
1 files changed, 1371 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
new file mode 100644
index 00000000000..f3264e41b05
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
@@ -0,0 +1,1371 @@
+% \CheckSum{1099}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-fonts.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-fonts.dtx}[%
+ 2014/12/04 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package&identify>\ProvidesPackage{tudscrfonts}[%
+%<*driver|package&identify>
+%!TUDVersion
+%<package> package
+ (corporate design fonts)%
+]
+%</driver|package&identify>
+%<*driver>
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\documentclass[english,ngerman]{tudscrdoc}
+\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
+\usepackage[T1]{fontenc}
+\usepackage{babel}
+\usepackage{tudscrfonts} % only load this package, if the fonts are installed
+\KOMAoptions{parskip=half-}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{tudscr-fonts.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A
+% \changes{v2.02}{2014/07/08}{Verwendung \cs{FamilyKeyState}}%^^A
+% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}%^^A
+% \changes{v2.02}{2014/09/30}{Nutzung alter tud-Klassen ermöglicht}%^^A
+%
+% \section{Schriften des \CDs}
+%
+% Für das \CD der Technischen Universität Dresden werden die Schriften Univers
+% und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen
+% sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur
+% Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in
+% einer anderen Schrift als der restliche Text gesetzt werden, so sollten
+% anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die
+% Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \subsection{Verwendbarkeit des Paketes \pkg{tudscrfonts}}
+%
+% \begin{macrocode}
+\PreventPackageFromLoading[%
+ \ClassWarning{\tudcls@name}{%
+ The package `tudscrfonts' must not be used with\MessageBreak%
+ a TUD-KOMA-Script class%
+ }
+]{tudscrfonts}
+% \end{macrocode}
+%
+% \iffalse
+%</class&option>
+%<*package&identify>
+% \fi
+%
+% \subsection{Verwendung alter TUD-Klassen oder \TUDScript~v1.0}
+%
+% Das Paket kann genutzt werden, um alle möglichen veralteten Klassen mit den
+% neuen Schriftfamilien zu verwenden.
+% \begin{macro}{\if@tud@oldclass}
+% \changes{v2.02}{2014/08/29}{neu}%^^A
+% \begin{macro}{\if@tud@oldscrclass}
+% \changes{v2.02}{2014/08/29}{neu}%^^A
+% \begin{macrocode}
+\newif\if@tud@oldclass
+\newif\if@tud@oldscrclass
+% \end{macrocode}
+% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen
+% wurde, wird dies für spätere Anpassungen registriert.
+% \begin{macrocode}
+\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}%
+\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}%
+\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}%
+\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}%
+\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}%
+\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}%
+% \end{macrocode}
+% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0
+% genutzt werden, muss Sorge dafür getragen werden, dass einige veraltete
+% Befehle aktualisiert werden. Hierfür müssen diese \enquote{unschädlich}
+% gemacht werden, noch bevor das Paket selbst in Erscheinung tritt.
+% \begin{macrocode}
+\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}%
+\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}%
+\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}%
+\if@tud@oldscrclass
+ \let\TUDoptions\relax
+ \let\TUDoption\relax
+ \let\univln\relax
+ \let\univrn\relax
+ \let\univbn\relax
+ \let\univxn\relax
+ \let\univls\relax
+ \let\univrs\relax
+ \let\univbs\relax
+ \let\univxs\relax
+ \let\dinbn\relax
+\fi
+% \end{macrocode}
+% \end{macro}^^A if@tud@oldscrclass
+% \end{macro}^^A if@tud@oldclass
+% \iffalse
+%</package&identify>
+%<*(class|package)&option>
+% \fi
+%
+% \subsection{Schriftauswahl im \TUDScript-Bundle}
+%
+% Das \TUDScript-Bundle unterstützt sowohl die Schriftauswahl im klassischen
+% New Font Selection Scheme (NFSS) als auch das Einbinden der Schriften im
+% OpenType"=Format aus dem System über das Paket \pkg{fontspec} für Lua\LaTeX
+% bzw. Xe\LaTeX, wobei die letztere Variante nicht ideal ist. Zum einen
+% funktioniert das Kerning nicht sonderlich gut und zum anderen sind keine
+% Schriften für den mathematischen Satz vorhanden. Da die skriptbasierte
+% Installation der PostScript"=Schriften gut funktioniert, ist diese Variante
+% zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs
+% für den Fließtext und die Überschriften zu verwenden, angeboten.
+% \begin{option}{fontspec}
+% \changes{v2.02}{2014/08/29}{neu}%^^A
+% \begin{macro}{\if@tud@fontspec}
+% \changes{v2.02}{2014/08/29}{neu}%^^A
+% \begin{macro}{\if@tud@univers}
+% \begin{macro}{\if@tud@dinbold}
+% \changes{v2.02}{2014/08/29}{neu}%^^A
+% \begin{macro}{\tud@univers}
+% \begin{macro}{\tud@dinbold}
+% \begin{macro}{\tud@mathenc}
+% Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes
+% \pkg{fontspec} aktiviert werden. Nur so ist eine vollständige Anpassung der
+% Schriften an die Funktionalitäten des Paketes möglich. Zu Beginn werden
+% Schalter und Hilfsmakros definiert.
+% \begin{macrocode}
+\newif\if@tud@univers
+\newif\if@tud@dinbold
+\newcommand*\tud@univers{lun}
+\newcommand*\tud@dinbold{0m6}
+\newcommand*\tud@mathenc{OT1}
+% \end{macrocode}
+% Hier kommt die eigentliche Option.
+% \begin{macrocode}
+\newif\if@tud@fontspec
+\TUD@key@lock{fontspec}[true]{%
+ \TUD@set@ifkey@lock{fontspec}{@tud@fontspec}{#1}%
+}
+% \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 zugelassen.
+% \begin{macrocode}
+%<*class>
+\AtEndOfClass{%
+ \TUD@key{fontspec}[]{%
+ \ClassError{\tudcls@name}{Option `fontspec' too late}{%
+ Option `fontspec' can only be set while loading the\MessageBreak%
+ class `\tudcls@name' but you have tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed%
+ }%
+%</class>
+%<*package>
+\AtEndOfPackage{%
+ \TUD@key{fontspec}[]{%
+ \PackageError{tudscrfonts}{Option `fontspec' too late}{%
+ Option `fontspec' can only be set while loading the\MessageBreak%
+ package `tudscrfonts' but you have tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed%
+ }%
+ \@ifpackageloaded{fontspec}{%
+ \PackageError{tudscrfonts}{Package `fontspec' too early}{%
+ When using the option `fontspec' you must not load\MessageBreak%
+ the package `fontspec' before `tudscrfonts'.%
+ }%
+ }{}
+%</package>
+}
+% \end{macrocode}
+% Anschließend erfolgt die Verarbeitung der Option am Ende der Klasse. Zu
+% allererst wird die Kodierung der Mathematikschriften für den weiteren Verlauf
+% festgelegt. Da es so gut wie keine freien OpenType"=Schriften für den
+% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option
+% \opt{fontspec} \emph{immer} die PostScript"=Schriften verwendet, falls diese
+% installiert sind. Dabei wird die Kodierung der Mathematikschriften abhängig
+% von der Eingabekodierung gewählt.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@expandtwoargs\in@{OT}{\encodingdefault}%
+ \ifin@%
+ \def\tud@mathenc{OT1}%
+ \else%
+ \def\tud@mathenc{T1}%
+ \fi%
+% \end{macrocode}
+% Nun wird überprüft, ob die PostScript"=Schriften installiert sind. Wird das
+% Paket \pkg{fontspec} verwendet, werden diese nur für die Mathematikschriften
+% verwendet. Sollte diese nicht vorhanden sein, wird eine Warnung ausgegeben.
+% Ist die Option nicht aktiviert, wird beim Nichtvorhandensein der Schriften
+% eine Warnung ausgegeben und eine Rückfallebene definiert.
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \edef\@tempa{%
+ \lowercase{\noexpand\InputIfFileExists{\tud@mathenc\tud@univers.fd}}%
+ }%
+ \def\@tempb#1{%
+%<*class>
+ \ClassInfoNoLine{\tudcls@name}{%
+%</class>
+%<*package>
+ \PackageInfoNoLine{tudscrfonts}{%
+%</package>
+ `#1' fonts not found for math typesetting%
+ }%
+ }%
+ \else%
+ \edef\@tempa{%
+ \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}%
+ }%
+ \def\@tempb#1{%
+%<*class>
+ \ClassWarningNoLine{\tudcls@name}{%
+%</class>
+%<*package>
+ \PackageWarningNoLine{tudscrfonts}{%
+%</package>
+ `#1' fonts not found. Please use on of the\MessageBreak%
+ installation scripts out of the tudscr-bundle,\MessageBreak%
+ which suits to your OS. A fallback layout is used%
+ }%
+ }%
+ \fi%
+ \@tempa{\@tud@universtrue}{\@tempb{Univers}}%
+% \end{macrocode}
+% Ebenso wie bei der Univers"=Schriftfamilie wird auch bei DIN~Bold verfahren.
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \edef\@tempa{%
+ \lowercase{\noexpand\InputIfFileExists{\tud@mathenc\tud@dinbold.fd}}%
+ }%
+ \else%
+ \edef\@tempa{%
+ \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}%
+ }%
+ \fi%
+ \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}%
+% \end{macrocode}
+% Nachdem auf die Schriften geprüft wurde, kommt nun die Umsetzung der Option.
+% Sollten die PostScript"=Schriften installiert sein, wird \pkg{fontspec} darin
+% gehindert, die Mathematikschriften von sich aus anzupassen.
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \if@tud@univers\if@tud@dinbold%
+ \PassOptionsToPackage{no-math}{fontspec}%
+ \fi\fi%
+ \RequirePackage{fontspec}[2014/06/21]%
+ \fi%
+% \end{macrocode}
+% Damit ist die Verarbeitung der Option \opt{fontspec} abgeschlossen.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@mathenc
+% \end{macro}^^A \tud@dinbold
+% \end{macro}^^A \tud@univers
+% \end{macro}^^A if@tud@dinbold
+% \end{macro}^^A if@tud@univers
+% \end{macro}^^A \if@tud@fontspec
+% \end{option}^^A fontspec
+%
+% \iffalse
+%</(class|package)&option>
+%<*(class|package)&body>
+% \fi
+%
+% \begin{macro}{\univln}
+% \begin{macro}{\univrn}
+% \begin{macro}{\univbn}
+% \begin{macro}{\univxn}
+% \begin{macro}{\univls}
+% \begin{macro}{\univrs}
+% \begin{macro}{\univbs}
+% \begin{macro}{\univxs}
+% Sollte die Univers installiert sein, werden mehrere Schalter zur expliziten
+% Auswahl für die Schriftschnitte Univers~45~Light, Univers~55~Regular,
+% Univers~65~Bold, Univers~75~Black, Univers~45~Light~Oblique,
+% Univers~55~Regular~Oblique, Univers~65~Bold~Oblique sowie
+% Univers~75~Black~Oblique definiert. Diese können so im Dokument unabhängig
+% von der Option \opt{cdfont} genutzt werden
+% \begin{macrocode}
+\AtEndPreamble{%
+% \end{macrocode}
+% Dies geschieht abhängig von der Option \opt{fontspec}.
+% \begin{macrocode}
+ \if@tud@fontspec%
+% \end{macrocode}
+% Für die ersten drei Schriften werden hierfür feste NFSS-Namen vergeben, um
+% diese beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können.
+% \begin{macrocode}
+ \newfontface\univln[NFSSFamily=UniversLight]{Univers Light}%
+ \newfontface\univrn[NFSSFamily=UniversRegular]{Univers}%
+ \newfontface\univbn[NFSSFamily=UniversBold]{Univers Bold}%
+ \newfontface\univxn[NFSSFamily=UniversBlack]{Univers Black}%
+ \newfontface\univls[NFSSFamily=UniversLightOblique]{Univers Light Oblique}%
+ \newfontface\univrs[NFSSFamily=UniversRegularOblique]{Univers Oblique}%
+ \newfontface\univbs[NFSSFamily=UniversBoldOblique]{Univers Bold Oblique}%
+ \newfontface\univxs[NFSSFamily=UniversBlackOblique]{Univers Black Oblique}%
+ \newcommand*\textuln[1]{{\univln#1}}
+ \newcommand*\texturn[1]{{\univrn#1}}
+ \newcommand*\textubn[1]{{\univbn#1}}
+ \newcommand*\textuxn[1]{{\univxn#1}}
+ \newcommand*\textuls[1]{{\univls#1}}
+ \newcommand*\texturs[1]{{\univrs#1}}
+ \newcommand*\textubs[1]{{\univbs#1}}
+ \newcommand*\textuxs[1]{{\univxs#1}}
+% \end{macrocode}
+% Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem
+% NFSS definiert.
+% \begin{macrocode}
+ \else%
+ \if@tud@univers%
+ \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
+ \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
+ \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
+ \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
+ \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
+ \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
+ \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
+ \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
+% \end{macrocode}
+% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese
+% einfach nichts machen.
+% \begin{macrocode}
+ \else%
+ \newcommand*\univln{}%
+ \newcommand*\univrn{}%
+ \newcommand*\univbn{}%
+ \newcommand*\univxn{}%
+ \newcommand*\univls{}%
+ \newcommand*\univrs{}%
+ \newcommand*\univbs{}%
+ \newcommand*\univxs{}%
+ \fi%
+% \end{macrocode}
+% \end{macro}^^A \univxs
+% \end{macro}^^A \univbs
+% \end{macro}^^A \univrs
+% \end{macro}^^A \univls
+% \end{macro}^^A \univxn
+% \end{macro}^^A \univbn
+% \end{macro}^^A \univrn
+% \end{macro}^^A \univln
+% \begin{macro}{\textuln}
+% \begin{macro}{\texturn}
+% \begin{macro}{\textubn}
+% \begin{macro}{\textuxn}
+% \begin{macro}{\textuls}
+% \begin{macro}{\texturs}
+% \begin{macro}{\textubs}
+% \begin{macro}{\textuxs}
+% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
+% bereitgestellt.
+% \begin{macrocode}
+ \newcommand*\textuln{}%
+ \newcommand*\texturn{}%
+ \newcommand*\textubn{}%
+ \newcommand*\textuxn{}%
+ \newcommand*\textuls{}%
+ \newcommand*\texturs{}%
+ \newcommand*\textubs{}%
+ \newcommand*\textuxs{}%
+ \DeclareTextFontCommand{\textuln}{\univln}%
+ \DeclareTextFontCommand{\texturn}{\univrn}%
+ \DeclareTextFontCommand{\textubn}{\univbn}%
+ \DeclareTextFontCommand{\textuxn}{\univxn}%
+ \DeclareTextFontCommand{\textuls}{\univls}%
+ \DeclareTextFontCommand{\texturs}{\univrs}%
+ \DeclareTextFontCommand{\textubs}{\univbs}%
+ \DeclareTextFontCommand{\textuxs}{\univxs}%
+ \fi%
+% \end{macrocode}
+% \end{macro}^^A \textuxs
+% \end{macro}^^A \textubs
+% \end{macro}^^A \texturs
+% \end{macro}^^A \textuls
+% \end{macro}^^A \textuxn
+% \end{macro}^^A \textubn
+% \end{macro}^^A \texturn
+% \end{macro}^^A \textuln
+% \begin{macro}{\dinbn}
+% \begin{macro}{\textdbn}
+% Schalter bzw. Befehl für die Auszeichnung in DIN~Bold. Bei der Schriftauswahl
+% wird neben dieser noch die entsprechende Mathematikschrift aktiviert. Auch
+% hier geschieht dies abhängig von der Option \opt{fontspec}.
+% \begin{macrocode}
+%<*package>
+ \ifdef{\sectfont}{}{\let\sectfont\relax}%
+%</package>
+ \if@tud@fontspec%
+ \newfontface\@dinbn{DIN Bold}[BoldFont = DIN Bold]%
+ \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}%
+ \newcommand*\textdbn[1]{{\dinbn#1}}
+ \else%
+ \if@tud@dinbold%
+ \newcommand*\dinbn{%
+ \usefont{\encodingdefault}{\tud@dinbold}{b}{n}%
+ \mathversion{dinbold}%
+ }%
+ \else%
+ \let\dinbn\sectfont%
+ \fi%
+ \newcommand*\textdbn{}%
+ \DeclareTextFontCommand{\textdbn}{\dinbn}
+ \fi%
+% \end{macrocode}
+% \end{macro}^^A \textdbn
+% \end{macro}^^A \dinbn
+% \begin{macro}{\mv@univers}
+% \begin{macro}{\mv@universbold}
+% Für die Mathematikschriften im FLießtext werden für die lateineischen Lettern
+% die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die
+% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus
+% dem \pkg{iwona}"~Paket die mathematische Symbole verwendet. Es werden zwei
+% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt.
+% \begin{macrocode}
+ \DeclareMathVersion{univers}
+ \DeclareMathVersion{universbold}
+ \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}
+ \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}
+ \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}
+ \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}
+ \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}
+ \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}
+ \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}
+ \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}
+ \SetMathAlphabet{\mathbf}{univers}{\tud@mathenc}{\tud@univers}{b}{n}
+ \SetMathAlphabet{\mathsf}{univers}{\tud@mathenc}{\tud@univers}{l}{n}
+ \SetMathAlphabet{\mathit}{univers}{\tud@mathenc}{\tud@univers}{l}{sl}
+ \SetMathAlphabet{\mathtt}{univers}{\tud@mathenc}{\tud@univers t}{l}{n}
+ \SetMathAlphabet{\mathbf}{universbold}{\tud@mathenc}{\tud@univers}{eb}{n}
+ \SetMathAlphabet{\mathsf}{universbold}{\tud@mathenc}{\tud@univers}{b}{n}
+ \SetMathAlphabet{\mathit}{universbold}{\tud@mathenc}{\tud@univers}{b}{sl}
+ \SetMathAlphabet{\mathtt}{universbold}{\tud@mathenc}{\tud@univers t}{b}{n}
+% \end{macrocode}
+% \end{macro}^^A \mv@universbold
+% \end{macro}^^A \mv@univers
+% \begin{macro}{\mv@dinbold}
+% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart
+% DIN~Bold verwendet}%^^A
+% Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt.
+% Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten
+% Symbole stammen aus diesem Paket.
+% \begin{macrocode}
+ \DeclareMathVersion{dinbold}
+ \SetSymbolFont{operators}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n}
+ \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}
+ \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}
+ \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}
+ \SetMathAlphabet{\mathbf}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n}
+ \SetMathAlphabet{\mathsf}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n}
+ \SetMathAlphabet{\mathit}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{sl}
+% \end{macrocode}
+% \end{macro}^^A \mv@dinbold
+% \begin{macro}{\upGamma}
+% \begin{macro}{\upDelta}
+% \begin{macro}{\upTheta}
+% \begin{macro}{\upLambda}
+% \begin{macro}{\upXi}
+% \begin{macro}{\upPi}
+% \begin{macro}{\upSigma}
+% \begin{macro}{\upUpsilon}
+% \begin{macro}{\upPhi}
+% \begin{macro}{\upPsi}
+% \begin{macro}{\upOmega}
+% \begin{macro}{\varGamma}
+% \begin{macro}{\varDelta}
+% \begin{macro}{\varTheta}
+% \begin{macro}{\varLambda}
+% \begin{macro}{\varXi}
+% \begin{macro}{\varPi}
+% \begin{macro}{\varSigma}
+% \begin{macro}{\varUpsilon}
+% \begin{macro}{\varPhi}
+% \begin{macro}{\varPsi}
+% \begin{macro}{\varOmega}
+% In Anlehnung an verschiedene Pakete für Mathematikschriften werden die
+% Symbole für aufrechte und kursive Majuskeln der griechischen Lettern separat
+% definiert.
+% \begin{macrocode}
+ \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}
+ \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}
+ \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}
+ \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}
+ \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}
+ \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}
+ \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}
+ \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}
+ \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}
+ \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}
+ \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}
+ \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}
+ \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}
+ \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}
+ \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}
+ \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}
+ \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}
+ \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}
+ \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}
+ \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}
+ \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}
+ \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}
+ \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}
+ \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}
+}
+% \end{macrocode}
+% \end{macro}^^A \varOmega
+% \end{macro}^^A \varPsi
+% \end{macro}^^A \varPhi
+% \end{macro}^^A \varUpsilon
+% \end{macro}^^A \varSigma
+% \end{macro}^^A \varPi
+% \end{macro}^^A \varXi
+% \end{macro}^^A \varLambda
+% \end{macro}^^A \varTheta
+% \end{macro}^^A \varDelta
+% \end{macro}^^A \varGamma
+% \end{macro}^^A \upOmega
+% \end{macro}^^A \upPsi
+% \end{macro}^^A \upPhi
+% \end{macro}^^A \upUpsilon
+% \end{macro}^^A \upSigma
+% \end{macro}^^A \upPi
+% \end{macro}^^A \upXi
+% \end{macro}^^A \upLambda
+% \end{macro}^^A \upTheta
+% \end{macro}^^A \upDelta
+% \end{macro}^^A \upGamma
+%
+% \iffalse
+%</(class|package)&body>
+%<*(class|package)&option>
+% \fi
+%
+% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit
+% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
+% verbessert, wird das Paket \pkg{textcase} genutzt. Damit Fußnoten nicht
+% automatisch in Majuskeln gesetzt werden, wird außerdem der interne Befehl
+% \cs{@uclcnotmath} aus diesem Paket angepasst.
+% \changes{v2.02}{2014/06/27}{Ignorieren von Fußnoten im Befehl
+% \cs{MakeTextUppercase}}%^^A
+% \begin{macrocode}
+\RequirePackage{textcase}[2004/10/07]
+\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
+ \@nonchangecase\ensuremath%
+ \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
+ \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
+}{}{\tud@patch@wrn{@uclcnotmath}}%
+% \end{macrocode}
+% \begin{option}{cdfont}
+% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{barfont}}%^^A
+% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}%^^A
+% \begin{macro}{\tud@cdfont}
+% Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen
+% Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option
+% können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke
+% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von
+% DIN~Bold für die Überschriften deaktivieren. Außerdem kann eingestellt
+% werden, ob für den Mathematiksatz serifenlose Schriften zum Einsatz kommen
+% sollen.
+% \begin{macrocode}
+\newcommand*\tud@cdfont{0}
+\TUD@key{cdfont}[true]{%
+ \TUD@set@numkey{cdfont}{tud@cdfont}{%
+ \TUD@numkey@bool,%
+ {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
+ {heavy}{2},{heavyfont}{2},%
+ {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},%
+ {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},%
+%<*class>
+ {barfont}{5},{litebar}{5},{barlite}{5},{lightbar}{5},{barlight}{5},%
+ {barfontlite}{5},{litebarfont}{5},{barfontlight}{5},{lightbarfont}{5},%
+ {noheavybarfont}{5},{barfontnoheavy}{5},%
+ {heavybar}{6},{barheavy}{6},{barfontheavy}{6},{heavybarfont}{6},%
+%</class>
+ {serifmath}{7},{serif}{7},{nosansmath}{7},{nosans}{7},%
+ {sansmath}{8},{sans}{8},%
+ {upgreek}{9},{uprightgreek}{9},{uprightGreek}{9},%
+ {slgreek}{10},{slantedgreek}{10},{slantedGreek}{10},%
+ {fontspec}{11},{luatex}{11},{lualatex}{11}{xetex}{11},{xelatex}{11},%
+ {nofontspec}{12},{pdftex}{12},{pdflatex}{12}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \tud@cdfont\relax%
+ \TUDoptions{cdfonts=false}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{false}%
+%</class>
+ \or%
+ \TUDoptions{cdfonts=true}%
+ \TUDoptions{heavyfont=false}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{true}%
+%</class>
+ \or%
+ \TUDoptions{cdfonts=true}%
+ \TUDoptions{heavyfont=true}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{heavy}%
+%</class>
+ \or%
+ \TUDoptions{din=false}%
+ \or%
+ \TUDoptions{din=true}%
+ \or%
+%<*class>
+ \TUDoptions{barfont=true}%
+%</class>
+ \or%
+%<*class>
+ \TUDoptions{barfont=heavy}%
+%</class>
+ \or%
+ \TUDoptions{sansmath=false}%
+ \or%
+ \TUDoptions{sansmath=true}%
+ \or%
+ \TUDoptions{slantedgreek=false}%
+ \or%
+ \TUDoptions{slantedgreek=true}%
+ \or%
+ \TUDoptions{fontspec=true}%
+ \or%
+ \TUDoptions{fontspec=false}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cdfont
+% \end{option}^^A cdfont
+% \begin{option}{cdfonts}
+% \begin{macro}{\if@tud@cdfonts}
+% Diese Option dient zum Umschalten auf die Schriften des \CDs für den
+% Fließtext.
+% \begin{macrocode}
+\newif\if@tud@cdfonts
+\TUD@key{cdfonts}[true]{%
+ \TUD@set@ifkey{cdfonts}{@tud@cdfonts}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+% \end{macrocode}
+% Wird die Option innerhalb nach der Präambel angewendet, erfolgt die Umsetzung
+% sofort. Ist die Verwendung der Schriften des \CDs gewünscht, werden diese mit
+% \cs{tud@font@cdfonts} aktiviert.
+% \begin{macrocode}
+ \if@tud@cdfonts%
+ \if@atdocument\tud@font@cdfonts\fi%
+% \end{macrocode}
+% Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs~--
+% falls nicht anders durch den Anwender definiert~-- auf Serifenlose gesetzt.
+% \begin{macrocode}
+ \TUD@std@ifkey@lock{sansmath}{true}%
+ \TUD@std@ifkey@lock{slantedgreek}{true}%
+% \end{macrocode}
+% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
+% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
+% \begin{macrocode}
+ \else%
+ \if@atdocument%
+ \tud@cmd@restore{rmdefault}%
+ \tud@cmd@restore{sfdefault}%
+ \tud@cmd@restore{ttdefault}%
+ \tud@cmd@restore{bfdefault}%
+ \tud@cmd@restore{mddefault}%
+ \tud@cmd@restore{itdefault}%
+ \tud@cmd@restore{familydefault}%
+ \tud@cmd@restore{seriesdefault}%
+ \tud@cmd@restore{shapedefault}%
+ \normalfont\selectfont%
+ \fi%
+% \end{macrocode}
+% Die Mathematikschriften werden auf ihr Stanardverhalten zurückgesetzt.
+% \begin{macrocode}
+ \TUD@std@ifkey@lock{sansmath}{false}%
+ \TUD@std@ifkey@lock{slantedgreek}{false}%
+ \fi%
+% \end{macrocode}
+% Da der Befehl \cs{tud@layout@process} auf jeden Fall mit \cs{AfterEndPreamble}
+% verzögert ausgeführt wird, muss dies bei der Wahl der Option nur nach der
+% Präambel, also im Dokument selbst neuerlich erfolgen.
+% \begin{macrocode}
+%<*class>
+ \if@atdocument\tud@layout@process\fi%
+%</class>
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@cdfonts
+% \end{option}^^A cdfonts
+%
+% \iffalse
+%</(class|package)&option>
+%<*(class|package)&body>
+% \fi
+%
+% \begin{macro}{\tud@font@cdfonts}
+% Mit diesem Befehl werden die Schriften des \CDs aktiviert. Dabei wird die
+% Option \opt{fontspec} beachtet.
+% \begin{macrocode}
+\newcommand*\tud@font@cdfonts{%
+% \end{macrocode}
+% Schnitte der Schriften vorher vorher gesichert, um diese später vollständig
+% wiederherstellen zu können..
+% \begin{macrocode}
+ \tud@cmd@store{rmdefault}%
+ \tud@cmd@store{sfdefault}%
+ \tud@cmd@store{ttdefault}%
+ \tud@cmd@store{bfdefault}%
+ \tud@cmd@store{mddefault}%
+ \tud@cmd@store{itdefault}%
+ \tud@cmd@store{familydefault}%
+ \tud@cmd@store{seriesdefault}%
+ \tud@cmd@store{shapedefault}%
+% \end{macrocode}
+% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket
+% \pkg{fontspec} oder\dots
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \if@tud@heavyfont%
+ \setsansfont{Univers}[%
+ BoldFont = Univers Bold,%
+ ItalicFont = Univers Oblique,%
+ BoldItalicFont = Univers Bold Oblique,%
+ ]%
+ \setmonofont{LMMono10-Regular}[%
+ BoldFont = LMMonoLt10-Bold,%
+ ItalicFont = LMMonoSlant10-Regular,%
+ BoldItalicFont = LMMonoLt10-BoldOblique,%
+ ]
+ \else%
+ \setsansfont{Univers Light}[%
+ BoldFont = Univers,%
+ ItalicFont = Univers Light Oblique,%
+ BoldItalicFont = Univers Oblique,%
+ ]%
+ \setmonofont{LMMonoLt10-Regular}[%
+ BoldFont = LMMono10-Regular,%
+ ItalicFont = LMMonoLt10-Oblique,%
+ BoldItalicFont = LMMonoSlant10-Regular,%
+ ]%
+% \end{macrocode}
+% Für die alten Klassen von Klaus Bergmann sowie \TUDScript in der Version~v1.0
+% werden die fetten Schriften in einem stärkeren Schriftschnitt gesetzt.
+% \begin{macrocode}
+%<*package>
+ \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
+ \setsansfont{Univers Light}[%
+ BoldFont = Univers Bold,%
+ ItalicFont = Univers Light Oblique,%
+ BoldItalicFont = Univers Bold Oblique,%
+ ]%
+ }{}%
+%</package>
+ \fi%
+% \end{macrocode}
+% \dots nach dem NFSS.
+% \begin{macrocode}
+ \else%
+ \if@tud@univers%
+ \renewcommand*\sfdefault{\tud@univers}%
+ \renewcommand*\ttdefault{\tud@univers t}%
+ \if@tud@heavyfont%
+ \renewcommand*\bfdefault{b}%
+ \renewcommand*\mddefault{m}%
+ \else%
+ \renewcommand*\bfdefault{m}%
+% \end{macrocode}
+% Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten
+% Schriften stärker.
+% \begin{macrocode}
+%<*package>
+ \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
+ \renewcommand*\bfdefault{b}%
+ }{}%
+%</package>
+ \renewcommand*\mddefault{l}%
+ \fi%
+ \fi%
+ \fi%
+ \renewcommand*\rmdefault{\sfdefault}%
+ \renewcommand*\familydefault{\sfdefault}%
+ \renewcommand*\seriesdefault{\mddefault}%
+ \renewcommand*\shapedefault{\updefault}%
+% \end{macrocode}
+% Zum Abschluss wird die gewählte Standardschrift aktiviert.
+% \begin{macrocode}
+ \normalfont\selectfont%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@cdfonts
+% \begin{macro}{\tud@font@mathfonts}
+% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
+% \begin{macrocode}
+\newcommand*\tud@font@mathfonts{%
+ \if@tud@sansmath\tud@sansmath\else\tud@serifmath\fi%
+ \if@tud@slantedgreek\tud@greek@slanted\else\tud@greek@upright\fi%
+ \mathversion{normal}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@mathfonts
+% \begin{macro}{\tud@sansmath}
+% \begin{macro}{\tud@serifmath}
+% Die Befehle werden von der Option \opt{sansmath} verwendet, um zwischen dem
+% Standard"~ und neuem Mathematiksatz hin"~ und herschalten zu können. Dabei
+% wird zum einen das Mapping der griechischen Glyphen geändert, zum anderen
+% werden die originalen Mathematikversionen überschrieben beziehungsweise
+% wiederhergestellt.
+% \begin{macrocode}
+\newcommand*\tud@sansmath{%
+ \if@tud@univers%
+ \tud@cmd@store{mv@normal}%
+ \tud@cmd@store{mv@bold}%
+ \let\mv@normal\mv@univers%
+ \let\mv@bold\mv@universbold%
+ \mathversion{normal}%
+ \fi%
+}
+\newcommand*\tud@serifmath{%
+ \if@tud@univers%
+ \tud@cmd@restore{mv@normal}%
+ \tud@cmd@restore{mv@bold}%
+ \mathversion{normal}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@serifmath
+% \end{macro}^^A \tud@sansmath
+% \begin{macro}{\tud@greek@upGamma}
+% \begin{macro}{\tud@greek@offset}
+% Damit innerhalb des Dokumentes problemlos zwischen aufrechten und kursiven
+% griechischen Buchstaben für den Mathematiksatz gewechselt werden kann, wurden
+% die folgenden beiden Befehle definiert, welche vom Prinzip aus dem Paket
+% \pkg{sansmath} abgekupfert sind. Es wird der Offset der Kodierung zwischen den
+% kursiven und den aufrechten Glyphen in \cs{tud@greek@offset} gespeichert.
+% \begin{macrocode}
+\newcount\tud@greek@upGamma
+\tud@greek@upGamma\Gamma
+\newcount\tud@greek@offset
+\let\@tempa\relax
+\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0}
+\tud@greek@offset\@tempa
+\advance\tud@greek@offset-\Gamma
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@offset
+% \end{macro}^^A \tud@greek@upGamma
+% \begin{macro}{\tud@greek@slanted}
+% \begin{macro}{\tud@greek@upright}
+% Mit \cs{tud@greek@slanted} wird die Kodierung der griechischen Majuskeln von
+% \texttt{operator} auf \texttt{letter} geändert\dots
+% \begin{macrocode}
+\newcommand*\tud@greek@slanted{%
+ \ifnum\Gamma=\tud@greek@upGamma\relax\tud@greek@changeshape\fi%
+}
+% \end{macrocode}
+% \dots und \cs{tud@greek@upright} macht alles wieder rückgängig. Dabei wird
+% bei beiden Befehlen vor der Ausführung geprüft, ob dies überhauot notwendig
+% ist.
+% \begin{macrocode}
+\newcommand*\tud@greek@upright{%
+ \ifnum\Gamma>\tud@greek@upGamma%
+ \tud@greek@offset=-\tud@greek@offset%
+ \tud@greek@changeshape%
+ \tud@greek@offset=-\tud@greek@offset%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@upright
+% \end{macro}^^A \tud@greek@slanted
+% \begin{macro}{\tud@greek@def}
+% \begin{macro}{\tud@greek@uc}
+% \begin{macro}{\tud@greek@changeshape}
+% Mit \cs{tud@greek@def} erfolgt die Umkodierung einer einzelnen griechischen
+% Glyphe. Das Makro \cs{tud@greek@changeshape} arbeitet die Liste
+% \cs{tud@greek@uc} ab.
+% \begin{macrocode}
+\newcommand*\tud@greek@def[2]{%
+ \expandafter\@tempcnta\csname #1\endcsname%
+ \advance\@tempcnta#2%
+ \expandafter\mathchardef\csname #1\endcsname\@tempcnta%
+}
+% \end{macrocode}
+% Die Liste enthält die Namen der Befehle für große griechische Buchstaben.
+% Diese wird von \cs{tud@greek@changeshape} genutzt wird.
+% \begin{macrocode}
+\newcommand*\tud@greek@uc{%
+ Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
+}
+\newcommand*\tud@greek@changeshape{%
+ \@for\@tempa:=\tud@greek@uc\do{%
+ \@expandtwoargs\tud@greek@def{\@tempa}{\tud@greek@offset}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@changeshape
+% \end{macro}^^A \tud@greek@uc
+% \end{macro}^^A \tud@greek@def
+%
+% \iffalse
+%</(class|package)&body>
+%<*(class|package)&option>
+% \fi
+%
+% \begin{option}{heavyfont}
+% \begin{macro}{\if@tud@heavyfont}
+% Hiermit lässt sich die Schriftstärke im Dokument beeinflussen.
+% \begin{macrocode}
+\newif\if@tud@heavyfont
+\TUD@key{heavyfont}[true]{%
+ \TUD@set@ifkey{heavyfont}{@tud@heavyfont}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@font@cdfonts\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@heavyfont
+% \end{option}^^A heavyfont
+% \begin{option}{barfont}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% \begin{macro}{\tud@barfont}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% Mit dieser Option kann die Schrift des \CDs und deren Schriftstärke in der
+% TUD-Kopfzeile unabhängig von der gewählten Schriftart für den Fließtext
+% aktiviert werden.
+% \begin{macrocode}
+%<*class>
+\newcommand*\tud@barfont{0}
+\TUD@key@lock{barfont}[true]{%
+ \TUD@set@numkey@lock{barfont}{tud@barfont}{%
+ \TUD@numkey@bool,%
+ {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},%
+ {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
+ {heavy}{2},{heavyfont}{2}%
+ }{#1}%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \tud@barfont
+% \end{option}^^A barfont
+% \begin{option}{din}
+% \begin{macro}{\if@tud@din}
+% Diese Option dient zur Auswahl, ob die Schrift DIN~Bold für die Überschriften
+% verwendet werden soll.
+% \begin{macrocode}
+\newif\if@tud@din\@tud@dintrue
+\TUD@ifkey{din}{@tud@din}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@din
+% \end{option}^^A din
+%
+% \subsection{Schriften für den Mathematiksatz}
+%
+% Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~--
+% insbesondere für griechische Symbole~-- eine passende Alternative gefunden
+% werden. Die Auswahl an Mathematikschriften für \LaTeX{} ist relativ gering.
+% Dennoch schien das \pkg{cmbright}-Paket dafür geeignet, weshalb dieses direkt
+% bei der Installation der Schriften eingebunden wurde.
+% \begin{option}{sansmath}
+% \begin{macro}{\if@tud@sansmath}
+% \begin{macro}{\if@tud@sansmath@locked}
+% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz
+% für das gesamte Dokument umgestellt werden.
+% \begin{macrocode}
+\newif\if@tud@sansmath
+\TUD@key@lock{sansmath}[true]{%
+ \TUD@set@ifkey@lock{sansmath}{@tud@sansmath}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@font@mathfonts\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@sansmath@locked
+% \end{macro}^^A \if@tud@sansmath
+% \end{option}^^A sansmath
+% \begin{option}{slantedgreek}
+% \begin{macro}{\if@tud@slantedgreek}
+% \begin{macro}{\if@tud@slantedgreek@locked}
+% Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden.
+% \begin{macrocode}
+\newif\if@tud@slantedgreek
+\TUD@key@lock{slantedgreek}[true]{%
+ \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@font@mathfonts\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@slantedgreek@locked
+% \end{macro}^^A \if@tud@slantedgreek
+% \end{option}^^A slantedgreek
+%
+% \iffalse
+%</(class|package)&option>
+%<*package&option>
+% \fi
+%
+% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert und~-- aus
+% Kompatibilitätsgründen zur \cls{tudbook}-Klasse~-- die Option \opt{serifmath}
+% definiert. Die an das Paket übergebenen Optionen werden daran anschließend
+% ausgeführt.
+% \begin{macrocode}
+\TUDoptions{cdfont=true}
+\DeclareOption*{\TUDoptions{\CurrentOption}}
+\TUDProcessOptions\relax
+% \end{macrocode}
+%
+% \iffalse
+%</package&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@head@font@set}
+% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{barfont} hinzugefügt}%^^A
+% \begin{macro}{\tud@head@font@bold}
+% \begin{macro}{\tud@head@font@light}
+% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber
+% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten
+% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die
+% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im
+% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und
+% in \cs{tud@head@font@size} gespeichert.
+% \begin{macrocode}
+\newcommand*\tud@head@font@bold{}
+\newcommand*\tud@head@font@light{}
+\newcommand*\tud@head@font@set{%
+% \end{macrocode}
+% Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet
+% werden.
+% \begin{macrocode}
+ \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+ {\sfdefault}{bx}{n}{\tud@head@font@size}%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {\sfdefault}{\mddefault}{n}{\tud@head@font@size}%
+% \end{macrocode}
+% Die Option \opt{barfont} wird ausgewertet.
+% \begin{macrocode}
+ \ifcase \tud@barfont\relax%
+ \if@tud@cdfonts%
+ \ClassWarning{\tudcls@name}{%
+ It isn't possible to use `barfont=false'\MessageBreak%
+ together with `cdfont=true'%
+ }%
+ \fi%
+ \or%
+ \@tud@cdfontstrue%
+ \def\mddefault{l}%
+ \or%
+ \@tud@cdfontstrue%
+ \def\mddefault{m}%
+ \fi%
+% \end{macrocode}
+% Die Schriften für den Kopf im \CD werden aktiviert.
+% \begin{macrocode}
+ \if@tud@cdfonts%
+% \end{macrocode}
+% Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden
+% kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der
+% Univers spezielle Namen zugewiesen, die hier verwendet werden.
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+ {UniversBold}{m}{n}{\tud@head@font@size}%
+ \ifstr{\mddefault}{m}{%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {UniversRegular}{m}{n}{\tud@head@font@size}%
+ }{%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {UniversLight}{m}{n}{\tud@head@font@size}%
+ }%
+% \end{macrocode}
+% Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}.
+% \begin{macrocode}
+ \else%
+ \if@tud@univers%
+ \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
+ {\tud@univers}{b}{n}{\tud@head@font@size}%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {\tud@univers}{\mddefault}{n}{\tud@head@font@size}%
+ \fi%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@font@light
+% \end{macro}^^A \tud@head@font@bold
+% \end{macro}^^A \tud@head@font@set
+%
+% \iffalse
+%</class&body>
+%<*(class|package)&body>
+% \fi
+%
+% \begin{macro}{\ifdin}
+% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A
+% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig
+% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für
+% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe
+% im Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden.
+% \begin{macrocode}
+\newrobustcmd*\ifdin{%
+ \@tempswafalse
+ \@expandtwoargs\in@{DINBold}{\f@family}%
+ \ifin@\@tempswatrue\fi%
+ \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi%
+ \if@tempswa
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \ifdin
+% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen oder \TUDScript in
+% der Version~v1.0 verwendet, müssen einige Kompatibilitätseinstellungen
+% vorgenmommen werden. Dies betrifft insbesondere allerhand darin definierter,
+% fixer Schriften sowie die Mathematikschriften.
+% \begin{macrocode}
+%<*package>
+\AtBeginDocument{%
+ \ifbool{@tud@oldclass}{%
+ \if@tud@fontspec%
+ \DeclareFixedFont{\univLightVII}{\encodingdefault}%
+ {UniversLight}{m}{n}{7}%
+ \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
+ {UniversLightOblique}{m}{n}{7}%
+ \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
+ {UniversBold}{m}{n}{7}%
+ \DeclareFixedFont{\univLightIX}{\encodingdefault}%
+ {UniversLight}{m}{n}{9}%
+ \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
+ {UniversLightOblique}{m}{n}{9}%
+ \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
+ {UniversBold}{m}{n}{9}%
+ \DeclareFixedFont{\univLightXI}{\encodingdefault}%
+ {UniversLight}{m}{n}{11}%
+ \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
+ {UniversLightOblique}{m}{n}{11}%
+ \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
+ {UniversBold}{m}{n}{11}%
+ \DeclareFixedFont{\univLightXV}{\encodingdefault}%
+ {UniversLight}{m}{n}{15}%
+ \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
+ {UniversLightOblique}{m}{n}{15}%
+ \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
+ {UniversBold}{m}{n}{15}%
+ \else%
+ \if@tud@univers%
+ \DeclareFixedFont{\univLightVII}{\encodingdefault}%
+ {\tud@univers}{l}{n}{7}%
+ \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
+ {\tud@univers}{l}{sl}{7}%
+ \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
+ {\tud@univers}{b}{n}{7}%
+ \DeclareFixedFont{\univLightIX}{\encodingdefault}%
+ {\tud@univers}{l}{n}{9}%
+ \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
+ {\tud@univers}{l}{sl}{9}%
+ \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
+ {\tud@univers}{b}{n}{9}%
+ \DeclareFixedFont{\univLightXI}{\encodingdefault}%
+ {\tud@univers}{l}{n}{11}%
+ \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
+ {\tud@univers}{l}{sl}{11}%
+ \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
+ {\tud@univers}{b}{n}{11}%
+ \DeclareFixedFont{\univLightXV}{\encodingdefault}%
+ {\tud@univers}{l}{n}{15}%
+ \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
+ {\tud@univers}{l}{sl}{15}%
+ \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
+ {\tud@univers}{b}{n}{15}%
+ \fi%
+ \fi%
+ \if@sansmath%
+ \DeclareSymbolFont{aunLetters}{\tud@mathenc}{\tud@univers}{l}{sl}%
+ \SetSymbolFont{aunLetters}{bold}{\tud@mathenc}{\tud@univers}{b}{sl}%
+ \DeclareSymbolFont{aunOperators}{\tud@mathenc}{\tud@univers}{l}{n}%
+ \SetSymbolFont{aunOperators}{bold}{\tud@mathenc}{\tud@univers}{b}{n}%
+ \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}%
+ \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}%
+ \DeclareMathAlphabet\mathbf{\tud@mathenc}{\tud@univers}{b}{n}%
+ \SetMathAlphabet\mathbf{bold}{\tud@mathenc}{\tud@univers}{b}{n}%
+ \DeclareMathAlphabet\mathit{\tud@mathenc}{\tud@univers}{l}{sl}%
+ \SetMathAlphabet\mathit{bold}{\tud@mathenc}{\tud@univers}{l}{sl}%
+ \fi%
+ \let\dinBold\dinbn%
+ \let\dinfamily\dinbn%
+ }{}%
+ \ifbool{@tud@oldscrclass}{%
+ \cmd@restore{rmdefault}%
+ \cmd@restore{sfdefault}%
+ \cmd@restore{bfdefault}%
+ \cmd@restore{mddefault}%
+ \cmd@restore{familydefault}%
+ \cmd@restore{seriesdefault}%
+ \cmd@restore{shapedefault}%
+ \cmd@restore{rmfamily}%
+ \cmd@restore{sffamily}%
+ \cmd@restore{ttfamily}%
+ \DeclareSymbolFontAlphabet{\mathrm}{operators}
+ \if@tud@fontspec%
+ \DeclareFixedFont{\univLightHead}{\encodingdefault}%
+ {UniversLight}{m}{n}{\tud@head@fntsz}%
+ \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
+ {UniversBold}{m}{n}{\tud@head@fntsz}%
+ \else%
+ \if@tud@univers%
+ \DeclareFixedFont{\univLightHead}{\encodingdefault}%
+ {\tud@univers}{l}{n}{\tud@head@fntsz}%
+ \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
+ {\tud@univers}{b}{n}{\tud@head@fntsz}%
+ \fi%
+ \fi%
+ }{}%
+}
+%</package>
+% \end{macrocode}
+% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
+% sämtliche Einstellungen erst zu Beginn des Dokumentes gesichert. Deshalb wird
+% der dafür verantwortliche Befehl \cs{tud@font@cdfonts} hier zum ersten Mal
+% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
+% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
+% aktivieren. Auch die Einstellungen für den Mathematiksatz werden erstmalig
+% durch \cs{tud@font@mathfonts} gesetzt.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@tud@cdfonts\tud@font@cdfonts\fi%
+ \tud@font@mathfonts%
+}
+% \end{macrocode}
+% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
+% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen.
+% \begin{macrocode}
+\AfterPackage*{amsfonts}{%
+ \DeclareFontFamily{U}{msa}{}%
+ \DeclareFontShape{U}{msa}{m}{n}{%
+ <-9>cmbras8%
+ <9-10>cmbras9%
+ <10->cmbras10%
+ }{}%
+ \DeclareFontFamily{U}{msb}{}%
+ \DeclareFontShape{U}{msb}{m}{n}{%
+ <-9>cmbrbs8%
+ <9-10>cmbrbs9%
+ <10->cmbrbs10%
+ }{}%
+}
+% \end{macrocode}
+%
+% \subsection{Anpassungen für das Paket \pkg{ragged2e}}
+%
+% \begin{macro}{\tud@raggedright}
+% \begin{macro}{\tud@RaggedRight}
+% Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit
+% Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen
+% Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e}
+% möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung
+% zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen
+% Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Dieses
+% Makro dient dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung
+% von \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu
+% setzen.
+% \begin{macrocode}
+\newcommand*\tud@raggedright{\raggedright}
+%<*class>
+\newcommand*\tud@RaggedRight{\raggedright}
+%</class>
+\AfterPackage*{ragged2e}{%
+ \ifdef{\LaTeXraggedright}{%
+ \renewcommand*\tud@raggedright{\LaTeXraggedright}%
+ }{}%
+%<*class>
+ \renewcommand*\tud@RaggedRight{\RaggedRight}%
+%</class>
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ragged2e
+% \end{macro}^^A \tud@raggedright
+%
+% \iffalse
+%</(class|package)&body>
+%<*package&body>
+% \fi
+% Ganz zum Schluss merden für das Paket \pkg{tudscrfonts} noch ein paar
+% Anpassungen für die \cls{tudbook}-Klasse gemacht.
+% \begin{macrocode}
+\@ifclassloaded{tudbook}{%
+ \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{@makechapterhead}}%
+ \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{@makeschapterhead}}%
+ \patchcmd{\section}{\dinBold\Large\bfseries}%
+ {\if@tud@din\dinbn\fi\Large}{}{\tud@patch@wrn{section}}%
+ \patchcmd{\showtitle}{\dinBold\Huge\bfseries}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{showtitle}}%
+}{}
+% \end{macrocode}
+%
+% \iffalse
+%</package&body>
+% \fi
+%
+% \Finale
+%
+\endinput